Skip to main content

Snapchat Marketing

This page guides you through setting up the Snapchat Marketing source connector.

Prerequisites

For Airbyte Cloud:

For Airbyte Open Source:

Setup guide

Step 1: Set up Snapchat

  1. Set up a Snapchat Business account.

For Airbyte Open Source:

  1. Activate access to the Snapchat Marketing API.

  2. Create an OAuth2 app in the Snap Business Manager:

    • Provide a redirect_uri. If you don't have an endpoint that handles the OAuth callback, use any valid URL. See this discussion for details.
    • Save the Client ID and Client Secret.
  3. Obtain a refresh token using the OAuth2 authorization code flow:

    1. Open the authorize link in a browser:

      https://accounts.snapchat.com/login/oauth2/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=snapchat-marketing-api&state=wmKkg0TWgppW8PTBZ20sldUwerf-m
    2. Log in and authorize the app.

    3. Copy the code query parameter from the redirect URL.

    4. Exchange the code for tokens:

      curl -X POST \
      -d "code={one_time_use_code}" \
      -d "client_id={client_id}" \
      -d "client_secret={client_secret}" \
      -d "grant_type=authorization_code" \
      -d "redirect_uri={redirect_uri}" \
      https://accounts.snapchat.com/login/oauth2/access_token

    Use the refresh_token from the response when configuring the connector.

    For more details, see the Snapchat authentication documentation.

Step 2: Set up the source connector in Airbyte

For Airbyte Cloud:

  1. Log into your Airbyte Cloud account.
  2. In the left navigation bar, click Sources. In the top-right corner, click + new source.
  3. Select Snapchat Marketing from the Source type dropdown and enter a name for this connector.
  4. Click Authenticate your account.
  5. Log in and authorize access to your Snapchat account.
  6. (Optional) Enter a Start Date in YYYY-MM-DD format. Only data created on or after this date will be synced. Defaults to 2022-01-01.
tip

Start Date is required for all stats streams that use start_time as a key (see the supported streams table below).

  1. (Optional) Enter an End Date in YYYY-MM-DD format. Only data created on or before this date will be synced. If left blank, the connector syncs up through today.
  2. (Optional) Choose the Action Report Time. This controls whether conversions are reported at the time of conversion (default) or impression.
  3. (Optional) Choose the Swipe Up Attribution Window. Options: 1_DAY, 7_DAY, 28_DAY (default).
  4. (Optional) Choose the View Attribution Window. Options: none, 1_HOUR, 3_HOUR, 6_HOUR, 1_DAY (default), 7_DAY.
  5. (Optional) Enter Organization IDs to limit syncing to specific organizations. If left blank, all organizations accessible to the authenticated user are synced.
  6. (Optional) Enter Ad Account IDs to limit syncing to specific ad accounts. If left blank, all ad accounts under the synced organizations are included.
  7. Click Set up source.

For Airbyte Open Source:

  1. Open the Airbyte UI.
  2. In the left navigation bar, click Sources. In the top-right corner, click + new source.
  3. Select Snapchat Marketing from the Source type dropdown and enter a name for this connector.
  4. Enter the Client ID, Client Secret, and Refresh Token from Step 1.
  5. (Optional) Enter a Start Date in YYYY-MM-DD format. Only data created on or after this date will be synced. Defaults to 2022-01-01.
tip

Start Date is required for all stats streams that use start_time as a key (see the supported streams table below).

  1. (Optional) Enter an End Date in YYYY-MM-DD format. Only data created on or before this date will be synced.
  2. (Optional) Choose the Action Report Time. This controls whether conversions are reported at the time of conversion (default) or impression.
  3. (Optional) Choose the Swipe Up Attribution Window. Options: 1_DAY, 7_DAY, 28_DAY (default).
  4. (Optional) Choose the View Attribution Window. Options: none, 1_HOUR, 3_HOUR, 6_HOUR, 1_DAY (default), 7_DAY.
  5. (Optional) Enter Organization IDs to limit syncing to specific organizations. If left blank, all organizations accessible to the authenticated user are synced.
  6. (Optional) Enter Ad Account IDs to limit syncing to specific ad accounts. If left blank, all ad accounts under the synced organizations are included.
  7. Click Set up source.

Supported streams and sync modes

StreamIncrementalKey
AdAccountsYesid
AdsYesid
AdSquadsYesid
CampaignsYesid
CreativesYesid
MediaYesid
OrganizationsYesid
SegmentsYesid
AdAccounts_Stats_HourlyYesid, granularity, start_time
AdAccounts_Stats_DailyYesid, granularity, start_time
AdAccounts_Stats_LifetimeNoid, granularity
Ads_Stats_HourlyYesid, granularity, start_time
Ads_Stats_DailyYesid, granularity, start_time
Ads_Stats_LifetimeNoid, granularity
AdSquads_Stats_HourlyYesid, granularity, start_time
AdSquads_Stats_DailyYesid, granularity, start_time
AdSquads_Stats_LifetimeNoid, granularity
Campaigns_Stats_HourlyYesid, granularity, start_time
Campaigns_Stats_DailyYesid, granularity, start_time
Campaigns_Stats_LifetimeNoid, granularity

Performance considerations

The Snapchat Marketing API enforces rate limits of 20 requests per second at the app level and 10 requests per second per access token. The connector handles HTTP 429 responses with automatic retries and backoff.

Pagination is limited to 1,000 items per page.

Syncing stats streams at hourly granularity generates large data volumes and takes longer. Daily granularity is recommended unless you need hour-level breakdowns.

IP allow list

If you use Airbyte Cloud and your organization restricts access to specific IPs, add the Airbyte Cloud IP addresses to your allow list.

Reference

Config fields reference

Field
Type
Property name
string
client_id
string
client_secret
string
refresh_token
string
action_report_time
array
ad_account_ids
string
end_date
array
organization_ids
string
start_date
string
swipe_up_attribution_window
string
view_attribution_window

Changelog

Expand to review
VersionDatePull RequestSubject
1.5.402026-06-2380650Update dependencies
1.5.392026-06-1780208Fix OAuth re-authentication failure caused by masked client_id/client_secret in consent URL
1.5.382026-06-1680030Update dependencies
1.5.372026-06-0979506Update dependencies
1.5.362026-06-0278950Update dependencies
1.5.352026-05-2674289Add none option to view_attribution_window enum to support disabling view attribution tracking
1.5.342026-04-2876758Update dependencies
1.5.332026-04-2477006Promoted release candidate to GA
1.5.33-rc.52026-04-2376950Re-enable api_budget at 100/10s with concurrency 4 for tuning iteration 5
1.5.33-rc.42026-04-2176875Revert to concurrency 4 without api_budget for tuning iteration 4
1.5.33-rc.32026-04-1676416Increase api_budget from 80 to 100 calls per 10s for tuning iteration 3
1.5.33-rc.22026-04-1376255Increase default_concurrency to 5 for tuning iteration 2
1.5.33-rc.12026-04-1070866Add HTTPAPIBudget and concurrency_level for progressive rollout tuning
1.5.322026-03-2475098Update dependencies
1.5.312026-03-1074573Update dependencies
1.5.302026-03-0372736Update dependencies
1.5.292026-02-2473634fix(source-snapchat-marketing): add lookback_window P2D to mitigate UTC timezone mismatch (AI-Triage PR)
1.5.282026-01-2070672Update dependencies
1.5.272025-11-2570083Update dependencies
1.5.262025-11-1869489Update dependencies
1.5.252025-10-2968815Update dependencies
1.5.242025-10-2268591Add suggestedStreams
1.5.232025-10-2168234Update dependencies
1.5.222025-10-1467746Update dependencies
1.5.212025-10-0767447Update dependencies
1.5.202025-09-3066898Update dependencies
1.5.192025-09-2466264Update dependencies
1.5.182025-09-0965393Update dependencies
1.5.172025-08-1864940Re-release connector with fixed docker image entrypoint
1.5.162025-08-1163276Fix start time for stats streams
1.5.152025-08-1064480Update dependencies
1.5.142025-07-2663088Update dependencies
1.5.132025-07-0262488Fix end datetime to include today
1.5.122025-06-2860513Update dependencies
1.5.112025-05-1060113Update dependencies
1.5.102025-05-0459625Update dependencies
1.5.92025-04-2758395Update dependencies
1.5.82025-04-1257957Update dependencies
1.5.72025-04-0557412Update dependencies
1.5.62025-03-2956907Update dependencies
1.5.52025-03-2256300Update dependencies
1.5.42025-03-0855595Update dependencies
1.5.32025-03-0154546Update dependencies
1.5.22025-02-1554091Update dependencies
1.5.12025-02-0853569Update dependencies
1.5.02024-11-2644170Added Optional filters - Organization & Ad Account IDs
1.4.22025-02-0153083Update dependencies
1.4.12025-01-2552403Update dependencies
1.4.02025-01-2352110Make incremental per-partition streams concurrent
1.3.72025-01-1851999Update dependencies
1.3.62025-01-1151431Update dependencies
1.3.52024-12-2850796Update dependencies
1.3.42024-12-2150308Update dependencies
1.3.32024-12-1449414Update dependencies
1.3.22024-11-0548375Re-implement advanced_auth in connector spec
1.3.12024-10-2947837Update dependencies
1.3.02024-10-1546927Promoting release candidate 1.3.0-rc.1 to a main version.
1.3.0-rc.12024-10-0846570Migrate to Manifest-only
1.2.122024-10-1246800Update dependencies
1.2.112024-10-0546419Update dependencies
1.2.102024-09-2846106Update dependencies
1.2.92024-09-2145780Update dependencies
1.2.82024-09-1445477Update dependencies
1.2.72024-09-0745278Update dependencies
1.2.62024-08-3144998Update dependencies
1.2.52024-08-2444735Update dependencies
1.2.42024-08-1743859Update dependencies
1.2.32024-08-1243826Fixed the bug with the missing spend field to supported *_stats_* streams
1.2.22024-08-1043539Update dependencies
1.2.12024-08-0343174Update dependencies
1.2.02024-07-3142010Migrate to CDK v4.1.0
1.1.22024-07-2742680Update dependencies
1.1.12024-07-2042366Update dependencies
1.1.02024-07-1642009Migrate to CDK v2.4.0
1.0.32024-07-1341855Update dependencies
1.0.22024-07-1041547Update dependencies
1.0.12024-07-0940132Update dependencies
1.0.02024-06-2039507Migrate to low-code CDK and add incremental functionality to organizations
0.6.22024-05-2238574Update authenticator package
0.6.12024-04-2436662Schema descriptions
0.6.02024-04-1030586Add attribution_windows,action_report_time as optional configurable params
0.5.02024-03-1936267Pin airbyte-cdk version to ^0
0.4.02024-02-2735660Add new fields to streams ads, adsquads, creatives, and media
0.3.22024-02-1235171Manage dependencies with Poetry.
0.3.02023-05-2226358Remove deprecated authSpecification in favour of advancedAuth
0.2.02023-05-1025948Introduce new field in the Campaigns stream schema
0.1.162023-04-2020897Add missing fields to Basic Stats schema
0.1.152023-03-0222869Specified date formatting in specification
0.1.142023-02-1022808Enable default AvailabilityStrategy
0.1.132023-01-2722023Set AvailabilityStrategy for streams explicitly to None
0.1.122023-01-1121267Fix parse empty error response
0.1.112022-12-2320865Handle 403 permission error
0.1.102022-12-1520537Run on CDK 0.15.0
0.1.92022-12-1420498Fix output state when no records are read
0.1.82022-10-0517596Retry 429 and 5xx errors when refreshing access token
0.1.62022-07-2114924Remove additionalProperties field from specs
0.1.52022-07-1314577Added stats streams hourly, daily, lifetime
0.1.42021-12-078429Update titles and descriptions
0.1.32021-11-107811Add oauth2.0, fix stream_state
0.1.22021-11-087499Remove base-python dependencies
0.1.12021-07-295072Fix bug with incorrect stream_state value
0.1.02021-07-264843Initial release supporting the Snapchat Marketing API