{
  "ab_internal": {
    "isEnterprise": false,
    "ql": 200,
    "requireVersionIncrementsInPullRequests": true,
    "sl": 200
  },
  "allowedHosts": {
    "hosts": [
      "api.twilio.com",
      "monitor.twilio.com",
      "conversations.twilio.com",
      "studio.twilio.com",
      "trunking.twilio.com"
    ]
  },
  "connectorBuildOptions": {
    "baseImage": "docker.io/airbyte/source-declarative-manifest:7.17.4@sha256:f85ae668c118cc9a42dae007325b916d63c2df72d6809677582b4fa8a1c65bbb"
  },
  "connectorTestSuitesOptions": [
    {
      "suite": "liveTests",
      "testConnections": [
        {
          "id": "57c28219-3a06-48db-9aec-df3cd20be9f6",
          "name": "twilio_config_with_lookback_dev_null"
        },
        {
          "id": "91aac9a6-6ece-42e2-9ed5-c6f6a226cc3e",
          "name": "twilio_config_dev_null"
        }
      ]
    },
    {
      "suite": "unitTests"
    },
    {
      "suite": "acceptanceTests",
      "testSecrets": [
        {
          "fileName": "config_with_lookback.json",
          "name": "SECRET_SOURCE-TWILIO_LOOKBACK_WINDOW__CREDS",
          "secretStore": {
            "alias": "airbyte-connector-testing-secret-store",
            "type": "GSM"
          }
        },
        {
          "fileName": "config.json",
          "name": "SECRET_SOURCE-TWILIO__CREDS",
          "secretStore": {
            "alias": "airbyte-connector-testing-secret-store",
            "type": "GSM"
          }
        }
      ]
    }
  ],
  "custom": false,
  "dockerImageTag": "1.0.1-preview.f32b099",
  "dockerRepository": "airbyte/source-twilio",
  "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
  "externalDocumentationUrls": [
    {
      "title": "Twilio API reference",
      "type": "api_reference",
      "url": "https://www.twilio.com/docs/usage/api"
    },
    {
      "title": "Twilio Changelog",
      "type": "api_release_history",
      "url": "https://www.twilio.com/en-us/changelog"
    },
    {
      "title": "Twilio authentication",
      "type": "authentication_guide",
      "url": "https://www.twilio.com/docs/iam/api-keys"
    },
    {
      "title": "Twilio API OpenAPI specification",
      "type": "openapi_spec",
      "url": "https://github.com/twilio/twilio-oai"
    },
    {
      "title": "Twilio rate limits",
      "type": "rate_limits",
      "url": "https://www.twilio.com/docs/usage/api#rate-limiting"
    },
    {
      "title": "Twilio Status",
      "type": "status_page",
      "url": "https://status.twilio.com/"
    }
  ],
  "generated": {
    "git": {
      "commit_author": "Devin AI",
      "commit_author_email": "158243242+devin-ai-integration[bot]@users.noreply.github.com",
      "commit_sha": "69e0bba570cb720b84f2d5806489dfe02457c0a5",
      "commit_timestamp": "2026-05-22T10:49:13+00:00"
    },
    "sbomUrl": "https://connectors.airbyte.com/files/sbom/airbyte/source-twilio/1.0.1-preview.f32b099.spdx.json",
    "source_file_info": {
      "metadata_bucket_name": "prod-airbyte-cloud-connector-metadata-service",
      "metadata_file_path": "metadata/airbyte/source-twilio/1.0.1-preview.f32b099/metadata.yaml",
      "metadata_last_modified": "2026-05-22T12:17:36.922423+00:00",
      "registry_entry_generated_at": "2026-05-22T12:17:36.922423+00:00"
    }
  },
  "githubIssueLabel": "source-twilio",
  "icon": "twilio.svg",
  "iconUrl": "https://connectors.airbyte.com/files/metadata/airbyte/source-twilio/latest/icon.svg",
  "language": "manifest-only",
  "license": "ELv2",
  "maxSecondsBetweenMessages": 5400,
  "name": "Twilio",
  "packageInfo": {},
  "public": true,
  "releaseStage": "generally_available",
  "releases": {
    "breakingChanges": {
      "1.0.0": {
        "message": "The `services` and `roles` streams have been migrated from Twilio's deprecated Programmable Chat API (`chat.twilio.com/v2`) to the Twilio Conversations API (`conversations.twilio.com/v1`). Twilio is retiring Programmable Chat on June 1, 2026. Existing Service and Role SIDs carry over automatically, but the record schema for these two streams has been simplified to match the Conversations API response and the `service_sid` field on `roles` records is renamed to `chat_service_sid`. Users of the `services` and `roles` streams should refresh the source schema and clear data for those streams after upgrading.",
        "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/twilio-migrations#1.0.0",
        "scopedImpact": [
          {
            "impactedScopes": [
              "services",
              "roles"
            ],
            "scopeType": "stream"
          }
        ],
        "upgradeDeadline": "2026-05-30"
      }
    },
    "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/twilio-migrations",
    "rolloutConfiguration": {
      "advanceDelayMinutes": 10,
      "enableProgressiveRollout": false,
      "initialPercentage": 0,
      "maxPercentage": 50
    }
  },
  "remoteRegistries": {
    "pypi": {
      "enabled": false,
      "packageName": "airbyte-source-twilio"
    }
  },
  "sourceDefinitionId": "b9dc6155-672e-42ea-b10d-9f1f1fb95ab1",
  "sourceType": "api",
  "spec": {
    "connectionSpecification": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "account_sid": {
          "airbyte_secret": true,
          "description": "Twilio account SID",
          "order": 1,
          "title": "Account ID",
          "type": "string"
        },
        "auth_token": {
          "airbyte_secret": true,
          "description": "Twilio Auth Token.",
          "order": 2,
          "title": "Auth Token",
          "type": "string"
        },
        "lookback_window": {
          "default": 0,
          "description": "How far into the past to look for records. (in minutes)",
          "examples": [
            60
          ],
          "maximum": 576000,
          "minimum": 0,
          "order": 4,
          "title": "Lookback window",
          "type": "integer"
        },
        "num_workers": {
          "default": 3,
          "description": "The number of worker threads to use for the sync.",
          "examples": [
            1,
            2,
            3
          ],
          "maximum": 40,
          "minimum": 1,
          "order": 5,
          "title": "Number of concurrent threads",
          "type": "integer"
        },
        "slice_step_duration": {
          "default": "P1M",
          "description": "The time window size for each data slice when syncing incremental streams. Smaller windows may help avoid timeouts for accounts with large data volumes.",
          "enum": [
            "P1D",
            "P1W",
            "P1M",
            "P1Y"
          ],
          "enum_labels": {
            "P1D": "1 Day",
            "P1M": "1 Month",
            "P1W": "1 Week",
            "P1Y": "1 Year"
          },
          "order": 6,
          "title": "Slice Step Duration",
          "type": "string"
        },
        "start_date": {
          "description": "UTC date and time in the format 2020-10-01T00:00:00Z. Any data before this date will not be replicated.",
          "examples": [
            "2020-10-01T00:00:00Z"
          ],
          "format": "date-time",
          "order": 3,
          "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
          "title": "Replication Start Date",
          "type": "string"
        }
      },
      "required": [
        "account_sid",
        "auth_token",
        "start_date"
      ],
      "title": "Twilio Spec",
      "type": "object"
    },
    "documentationUrl": "https://docs.airbyte.com/integrations/sources/twilio",
    "supportsDBT": false,
    "supportsNormalization": false
  },
  "suggestedStreams": {
    "streams": [
      "calls",
      "messages"
    ]
  },
  "supportLevel": "certified",
  "supportsDataActivation": false,
  "supportsFileTransfer": false,
  "tags": [
    "language:manifest-only",
    "cdk:low-code"
  ],
  "tombstone": false
}
