{"sourceDefinitionId": "4bfac00d-ce15-44ff-95b9-9e3c3e8fbd35", "name": "TikTok Marketing", "dockerRepository": "airbyte/source-tiktok-marketing", "dockerImageTag": "5.0.2-preview.d81b8e9", "documentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing", "icon": "tiktok.svg", "iconUrl": "https://connectors.airbyte.com/files/metadata/airbyte/source-tiktok-marketing/latest/icon.svg", "sourceType": "api", "spec": {"connectionSpecification": {"$schema": "http://json-schema.org/draft-07/schema#", "title": "TikTok Marketing Source Spec", "additionalProperties": true, "type": "object", "properties": {"credentials": {"title": "Authentication Method", "description": "Authentication method", "default": {}, "order": 0, "type": "object", "oneOf": [{"title": "OAuth2.0", "type": "object", "properties": {"auth_type": {"title": "Auth Type", "const": "oauth2.0", "order": 0, "type": "string"}, "app_id": {"title": "App ID", "description": "The Developer Application App ID.", "airbyte_secret": true, "type": "string"}, "secret": {"title": "Secret", "description": "The Developer Application Secret.", "airbyte_secret": true, "type": "string"}, "access_token": {"title": "Access Token", "description": "Long-term Authorized Access Token.", "airbyte_secret": true, "type": "string"}, "advertiser_id": {"title": "Advertiser ID", "description": "The Advertiser ID to filter reports and streams. Let this empty to retrieve all.", "type": "string"}}, "required": ["app_id", "secret", "access_token"]}, {"title": "Sandbox Access Token", "type": "object", "properties": {"auth_type": {"title": "Auth Type", "const": "sandbox_access_token", "order": 0, "type": "string"}, "advertiser_id": {"title": "Advertiser ID", "description": "The Advertiser ID which generated for the developer's Sandbox application.", "type": "string"}, "access_token": {"title": "Access Token", "description": "The long-term authorized access token.", "airbyte_secret": true, "type": "string"}}, "required": ["advertiser_id", "access_token"]}]}, "start_date": {"title": "Replication Start Date", "description": "The Start Date in format: YYYY-MM-DD. Any data before this date will not be replicated. If this parameter is not set, all data will be replicated.", "default": "2016-09-01", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "order": 1, "type": "string", "format": "date"}, "end_date": {"title": "End Date", "description": "The date until which you'd like to replicate data for all incremental streams, in the format YYYY-MM-DD. All data generated between start_date and this date will be replicated. Not setting this option will result in always syncing the data till the current date.", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "order": 2, "type": "string", "format": "date"}, "attribution_window": {"title": "Attribution Window", "description": "The attribution window in days.", "minimum": 0, "maximum": 364, "default": 3, "order": 3, "type": "integer"}, "include_deleted": {"title": "Include Deleted Data in Reports and Ads, Ad Groups and Campaign streams.", "description": "Set to active if you want to include deleted data in report based streams and Ads, Ad Groups and Campaign streams.", "default": false, "order": 4, "type": "boolean"}}}, "documentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing", "supportsNormalization": false, "supportsDBT": false, "advanced_auth": {"auth_flow_type": "oauth2.0", "predicate_key": ["credentials", "auth_type"], "predicate_value": "oauth2.0", "oauth_config_specification": {"complete_oauth_output_specification": {"title": "CompleteOauthOutputSpecification", "type": "object", "properties": {"access_token": {"title": "Access Token", "path_in_connector_config": ["credentials", "access_token"], "type": "string"}}, "required": ["access_token"]}, "complete_oauth_server_input_specification": {"title": "CompleteOauthServerInputSpecification", "type": "object", "properties": {"app_id": {"title": "App Id", "type": "string"}, "secret": {"title": "Secret", "type": "string"}}, "required": ["app_id", "secret"]}, "complete_oauth_server_output_specification": {"title": "CompleteOauthServerOutputSpecification", "type": "object", "properties": {"app_id": {"title": "App Id", "path_in_connector_config": ["credentials", "app_id"], "type": "string"}, "secret": {"title": "Secret", "path_in_connector_config": ["credentials", "secret"], "type": "string"}}, "required": ["app_id", "secret"]}}}}, "tombstone": false, "public": true, "custom": false, "releaseStage": "generally_available", "supportLevel": "certified", "allowedHosts": {"hosts": ["sandbox-ads.tiktok.com", "business-api.tiktok.com"]}, "suggestedStreams": {"streams": ["ads_reports_daily", "ads", "campaigns", "campaigns_reports_daily", "ad_groups", "ad_groups_reports_daily", "advertisers_reports_daily"]}, "maxSecondsBetweenMessages": 86400, "releases": {"rolloutConfiguration": {"enableProgressiveRollout": false, "initialPercentage": 0, "maxPercentage": 50, "advanceDelayMinutes": 10}, "breakingChanges": {"4.0.0": {"upgradeDeadline": "2024-07-15", "message": "The source TikTok Marketing connector is being migrated from the Python CDK to our declarative low-code CDK. Due to changes in the handling of state format for incremental substreams, this migration constitutes a breaking change for the following streams - ad_groups, ads, campaigns, creative_assets_images, creative_assets_videos, *_reports_daily, *_reports_hourly, *_reports_by_country_daily, *_reports_by_platform_daily. Also the schema for advertiser_ids stream was changed to use string type of advertiser_id field as API docs declares it. Users will need to reset source configuration, refresh the source schema and reset the impacted streams after upgrading. For more information, see our migration documentation for source TikTok Marketing.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing-migrations#4.0.0", "scopedImpact": [{"scopeType": "stream", "impactedScopes": ["advertiser_ids", "ad_group_audience_reports_by_country_daily", "ad_group_audience_reports_by_platform_daily", "ad_group_audience_reports_daily", "ad_groups", "ad_groups_reports_daily", "ad_groups_reports_hourly", "ads", "ads_audience_reports_by_country_daily", "ads_audience_reports_by_platform_daily", "ads_audience_reports_by_province_daily", "ads_audience_reports_daily", "ads_reports_daily", "ads_reports_hourly", "ads_reports_by_country_daily", "ads_reports_by_country_hourly", "advertisers_audience_reports_by_country_daily", "advertisers_audience_reports_by_platform_daily", "advertisers_audience_reports_daily", "advertisers_reports_daily", "advertisers_reports_hourly", "campaigns", "campaigns_audience_reports_by_country_daily", "campaigns_audience_reports_by_platform_daily", "campaigns_audience_reports_daily", "campaigns_reports_daily", "campaigns_reports_hourly", "creative_assets_images", "creative_assets_videos"]}]}, "5.0.0": {"upgradeDeadline": "2026-03-03", "message": "The `currency` field in the `pixels` stream's `events` array has been corrected from `boolean` to `string` type. Users syncing the `pixels` stream will need to refresh the source schema and reset the stream after upgrading. For more information, see our migration documentation for source TikTok Marketing.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing-migrations#5.0.0", "scopedImpact": [{"scopeType": "stream", "impactedScopes": ["pixels"]}]}}, "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/tiktok-marketing-migrations"}, "ab_internal": {"sl": 300, "ql": 400, "isEnterprise": false, "requireVersionIncrementsInPullRequests": true}, "generated": {"git": {"commit_sha": "6ab9ea09f0f35d6eb9d6ae765db5067c49f5dd2d", "commit_timestamp": "2026-02-27T14:16:21-08:00", "commit_author": "Sophie Cui", "commit_author_email": "sophie.cui@airbyte.io"}, "source_file_info": {"metadata_file_path": "metadata/airbyte/source-tiktok-marketing/5.0.2-preview.d81b8e9/metadata.yaml", "metadata_bucket_name": "prod-airbyte-cloud-connector-metadata-service", "metadata_last_modified": "2026-02-27T23:22:29.972000+00:00", "registry_entry_generated_at": "2026-02-27T23:23:34.202067"}, "sbomUrl": "https://connectors.airbyte.com/files/sbom/airbyte/source-tiktok-marketing/5.0.2-preview.d81b8e9.spdx.json"}, "packageInfo": {}, "language": "manifest-only", "supportsFileTransfer": false, "supportsDataActivation": false, "license": "ELv2", "remoteRegistries": {"pypi": {"enabled": false, "packageName": "airbyte-source-tiktok-marketing"}}, "connectorBuildOptions": {"baseImage": "docker.io/airbyte/source-declarative-manifest:7.6.5@sha256:a5ef859b9f6dde52bd914fbcddb088d4f1ccae4887ffb58b2282b80f119fdcbe"}, "connectorTestSuitesOptions": [{"suite": "liveTests", "testConnections": [{"id": "2a53fa01-351c-45af-84d8-a9f200a0c988", "name": "tiktok-marketing_prod_config_with_lifetime_granularity_dev_null"}, {"id": "35e62f0f-903a-4fcd-afc6-98259a4f2fea", "name": "tiktok-marketing_prod_config_with_day_granularity_dev_null"}, {"id": "36e6778b-a04d-4356-a670-e41123fe9596", "name": "tiktok-marketing_sandbox_config_dev_null"}, {"id": "4da9b9c1-10bd-46c1-915b-bb3d1651153b", "name": "tiktok-marketing_config_dev_null"}, {"id": "59935970-bbee-4122-88c9-219e97dae272", "name": "tiktok-marketing_new_config_prod_dev_null"}, {"id": "5b364ce8-b98d-4ccf-9a43-56ebd53d481a", "name": "tiktok-marketing_prod_config_dev_null"}, {"id": "60c12fbb-bc41-4df1-9b33-9a5455312b0e", "name": "tiktok-marketing_config_oauth_dev_null"}, {"id": "9aab8bf6-b4cd-4bad-b319-ed39bcddfe2a", "name": "tiktok-marketing_new_config_sandbox_dev_null"}, {"id": "bb8311bf-6def-4119-bf32-38c001a1e549", "name": "tiktok-marketing_prod_config_day_dev_null"}]}, {"suite": "unitTests", "testSecrets": [{"fileName": "sandbox_config.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_SANDBOX_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "prod_config.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_PROD_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "config.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}]}, {"suite": "acceptanceTests", "testSecrets": [{"fileName": "config.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "new_config_sandbox.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_NEW_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "new_config_prod.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_NEW_PROD_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "config_oauth.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_OAUTH_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "prod_config.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_PROD_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "prod_config_with_day_granularity.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_PROD_CREDS_WITH_DAY_GRANULARITY", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "prod_config_with_lifetime_granularity.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_PROD_CREDS_WITH_LIFETIME_GRANULARITY", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "prod_config_day.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_PROD_DAY_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "sandbox_config.json", "name": "SECRET_SOURCE-TIKTOK-MARKETING_SANDBOX_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}]}], "externalDocumentationUrls": [{"title": "Versioning docs", "type": "api_reference", "url": "https://business-api.tiktok.com/portal/docs?id=1740029169927169"}, {"title": "Changelog", "type": "api_release_history", "url": "https://business-api.tiktok.com/portal/docs?id=1740029165513730"}, {"title": "TikTok Business API Documentation", "type": "api_release_history", "url": "https://business-api.tiktok.com/portal/docs?id=1740302848670722"}], "githubIssueLabel": "source-tiktok-marketing", "tags": ["cdk:low-code", "language:manifest-only"]}