Skip to main content

Sendgrid

This page contains the setup guide and reference information for the Sendgrid source connector.

Prerequisites

Setup guide

Step 1: Set up SendGrid

Create a SendGrid API Key with the permissions required for the streams you want to sync. The connector uses the SendGrid v3 API.

The following API key scopes are required depending on which streams you enable:

StreamsRequired Scopes
Bounces, Blocks, Spam Reports, Invalid Emails, Global Suppressionssuppression.read or the specific suppression.{type}.read scopes
Suppression Groups, Suppression Group Membersasm.groups.read
Templatestemplates.read
Contacts, Lists, Segments, Single Sends, Single Send Stats, Stats Automations, Campaignsmarketing.read

For simplicity, you can create an API key with Full Access to ensure all streams work correctly. If you prefer more granular permissions, enable only the scopes listed above for the streams you need.

Step 2: Set up the Sendgrid connector in Airbyte

  1. Log into your Airbyte Cloud account or navigate to the Airbyte Open Source dashboard.
  2. In the left navigation bar, click Sources. In the top-right corner, click + New source.
  3. On the Set up the source page, enter the name for the Sendgrid connector and select Sendgrid from the Source type dropdown.
  4. Enter your api_key.
  5. Enter your start_date.
  6. Click Set up source.

Supported sync modes

The Sendgrid source connector supports the following sync modes:

Supported Streams

Create a read-only API key (Optional)

While you can set up the SendGrid connector using any API key with read permission, we recommend creating a dedicated read-only API key for Airbyte. This allows you to granularly control which resources Airbyte can read.

The API key should have read-only access to the resources you want to sync. For marketing streams (Contacts, Lists, Segments, Single Sends, Campaigns), the API key needs the marketing.read scope.

Limitations & Troubleshooting

Expand to see details about Sendgrid connector limitations and troubleshooting.

Connector limitations

Rate limiting

The connector is restricted by normal Sendgrid requests limitation.

Troubleshooting

403 Forbidden errors

If you encounter 403 errors, check the following:

  1. Verify API key permissions: Ensure your API key has the required scopes for the streams you're trying to sync. See the Setup guide for the specific scopes needed for each stream.

  2. Legacy vs. New Marketing Campaigns: This connector uses the New Marketing Campaigns API (/v3/marketing/*), which requires the marketing.read scope. If your SendGrid account uses Legacy Marketing Campaigns, you will receive 403 errors when syncing marketing streams. Legacy Marketing Campaigns use different API endpoints and permission scopes (marketing_campaigns.read) that are not compatible with this connector.

  3. Account type limitations: Some SendGrid account types may not have access to all API endpoints. Verify that your SendGrid plan includes access to the features you're trying to sync.

Reference

Config fields reference

Field
Type
Property name
string
api_key
string
start_date

Changelog

Expand to review
VersionDatePull RequestSubject
1.3.202025-11-2569988Update dependencies
1.3.192025-11-1869685Update dependencies
1.3.182025-10-2968852Update dependencies
1.3.172025-10-2268591Add suggestedStreams
1.3.162025-10-2168410Update dependencies
1.3.152025-10-1467931Update dependencies
1.3.142025-10-0767227Update dependencies
1.3.132025-09-3066871Update dependencies
1.3.122025-09-2362286Update dependencies
1.3.112025-09-1166078Update to CDK v7
1.3.102025-06-2161826Update dependencies
1.3.92025-06-1461314Update dependencies
1.3.82025-05-2560199Update dependencies
1.3.72025-05-0458982Update dependencies
1.3.62025-04-1958405Update dependencies
1.3.52025-04-1257952Update dependencies
1.3.42025-04-0557415Update dependencies
1.3.32025-03-2956746Update dependencies
1.3.22025-03-2255038Update dependencies
1.3.12025-03-1355744Increase max concurrent async job count to 2
1.3.02025-03-0455185Update manifest for adapting changes with AsyncRetriever
1.2.92025-02-2354625Update dependencies
1.2.82025-02-1554013Update dependencies
1.2.72025-02-0853508Update dependencies
1.2.62025-02-0152995Update dependencies
1.2.52025-01-2552535Update dependencies
1.2.42025-01-1851892Update dependencies
1.2.32025-01-1148238Update dependencies
1.2.22024-10-2947836Update dependencies
1.2.12024-10-2847588Update dependencies
1.2.02024-10-1346870Migrate to Manifest-only
1.1.52024-10-1246781Update dependencies
1.1.42024-10-0546460Update dependencies
1.1.32024-09-2846105Update dependencies
1.1.22024-09-2145782Update dependencies
1.1.12024-09-1445525Update dependencies
1.1.02024-09-1145191Move Contacts stream to declarative async job
1.0.182024-09-0745239Update dependencies
1.0.172024-08-3144953Update dependencies
1.0.162024-08-2444753Update dependencies
1.0.152024-08-1744233Update dependencies
1.0.142024-08-1243751Update dependencies
1.0.132024-08-1043635Update dependencies
1.0.122024-08-0343269Update dependencies
1.0.112024-07-2742729Update dependencies
1.0.102024-07-2042310Update dependencies
1.0.92024-07-1341753Update dependencies
1.0.82024-07-1041531Update dependencies
1.0.72024-07-0941137Update dependencies
1.0.62024-07-0640898Update dependencies
1.0.52024-06-2540356Update dependencies
1.0.42024-06-2240155Update dependencies
1.0.32024-06-0639197[autopull] Upgrade base image to v1.2.2
1.0.22024-05-2138478Update deprecated authenticator package
1.0.12024-05-2038264Replace AirbyteLogger with logging.Logger
1.0.02024-04-1535776Migration to low-code CDK. Breaking change that updates configuration keys, removes unsubscribe_groups stream, renames a stream to singlesend_stats, and adds the singlesends stream.
0.5.02024-03-2636455Unpin CDK version, add record counts to state messages
0.4.32024-02-2135181Handle uncompressed contacts downloads.
0.4.22024-02-1235181Manage dependencies with Poetry.
0.4.12023-10-1831543Base image migration: remove Dockerfile and use the python-connector-base image
0.4.02023-05-1923959Add unsubscribe_groupsstream
0.3.12023-01-2721939Fix contacts missing records; Remove Messages stream
0.3.02023-01-2521587Make sure spec works as expected in UI - make start_time parameter an ISO string instead of an integer interpreted as timestamp (breaking, update your existing connections and set the start_time parameter to ISO 8601 date time string in UTC)
0.2.162022-11-0218847Skip the stream on 400, 401 - authorization required with log message
0.2.152022-10-1918182Mark the sendgrid api key secret in the spec
0.2.142022-09-0716400Change Start Time config parameter to datetime string
0.2.132022-08-2916112Revert back to Python CDK
0.2.122022-08-2415911Bugfix to allowing reading schemas at runtime
0.2.112022-08-1915800Bugfix to allow reading sentry.yaml at runtime
0.2.102022-08-1715734Fix yaml based on the new schema validator
0.2.92022-08-1115257Migrate to config-based framework
0.2.82022-06-0713571Add Message stream
0.2.72021-09-085910Add Single Sends Stats stream
0.2.62021-07-194839Gracefully handle malformed responses from the API