Skip to main content

GraphQL Source Connector

The GraphQL source connector lets DataSync retrieve data from a GraphQL API and load it into your data warehouse. DataSync supports four authentication modes for GraphQL: OAuth 2.0, OAuth PKCE, Basic, and NoAuth.

Once your source connection is ready, configure your destination connection to finish the setup.

Create a source connection in DataSync

  1. Log in to DataSync.
  2. From the welcome screen, select Connections.
  3. Next to Source Connections, click New.
  4. Select GraphQL.
  5. Enter all required connection properties.
  6. (Optional) In the Additional Connection Properties panel, click Add property and enter any extra parameters you need.
  7. Configure the advanced settings to match your environment, including Tracking Type.
  8. Click Save.

Connection properties

PropertyWhat to enter
DescriptionUnique name for the connection. Example: GraphQL.
URLAddress of the GraphQL API endpoint. This must point to the specific GraphQL service endpoint, which may differ from the base API URL. Example: https://api.example.com/graphql.
Authentication ModeAuthentication method used to access the API.
  • OAuth2 for the standard OAuth 2.0 flow.
  • OAuthPKCE for the OAuth PKCE flow.
  • Basic for username and password authentication.
  • NoAuth for APIs that require no authentication.
Callback URLOAuth only Redirect URL automatically generated by DataSync. Some APIs require this to be added to an authorized list of callback URLs in your application settings.
Client IDOAuth only Application identifier assigned during registration. Found in your application settings or configuration portal. Example: client-id-987654.
Client SecretOAuth only Confidential value known only to the client and the authorization server. Found in your application settings or configuration portal. Example: mySuperSecretValue.
Authorization URLOAuth only URL that starts the authorization process. Available in the API documentation. Example: https://auth.example.com/oauth2/authorize.
Access Token URLOAuth only URL used to exchange an authorization code for an access token. Available in the API documentation. Example: https://auth.example.com/oauth2/token.
Refresh Token URLOAuth only URL used to exchange a refresh token for a new access token. Available in the API documentation. Example: https://auth.example.com/oauth2/refresh.
ScopeAccess permissions requested during authentication. Verify the required scopes in your application settings. Example: read:users write:projects.
UsernameBasic only Login account with the required API permissions. Example: User123.
PasswordBasic only Password for this account. Example: P@ssw0rd!.
Convert all dates and times to GMTConverts all date and time values returned by the API to GMT. Recommended when your GraphQL service runs in a different time zone and you need consistent timestamps across your data.
Page sizeMaximum number of results returned per page. Larger values return more rows per page but may increase timeout risk.
Enable PoolingEnables connection pooling, which keeps a set of database connections open and reuses them across extractions instead of opening a new connection each time. This reduces overhead and improves performance when multiple extractions run at the same time.
Pool idle timeoutTime in seconds a connection can stay idle before returning to the pool.
Max Pool SizeMaximum number of connections allowed in the pool at the same time.
Pool wait timeTime in seconds DataSync waits for an available connection before throwing an error.
VerbosityControls how much detail the connector writes to the log. Each level includes everything from the level below it, plus additional detail.

  • 1 logs queries, row counts, execution start and end times, and errors.
  • 2 adds cache queries and HTTP headers.
  • 3 adds request and response bodies.
  • 4 adds transport-level communication.
  • 5 adds all interface commands.
TimeoutTime in seconds to wait before a connection attempt or query execution times out.

Additional connection properties

Use this panel to enter connection string properties not available in the Connection Properties panel. For sensitive values such as passwords, set the type to Encrypted. The value is hidden in the interface and stored encrypted in the back end.

PropertyWhat to enter
HTTPHeadersCustom HTTP headers required by the API. Add a separate entry for each header. When you add that select HTTP Headers as type. Example: Authorization: Bearer <token>.
ExpandTablesDepthControls how many levels of nested lists are expanded during table discovery.
  • 0 no nested lists are expanded.
  • 1 expands lists at the same level, but not nested ones.
  • n expands lists to the specified depth.
Set this to match the nesting level of your GraphQL data model.

Advanced settings

These settings control how the connector tracks data changes, handles time and regional configuration, and processes records during extraction. Configure them to match your GraphQL environment so that results stay accurate and consistent.

SettingWhat to select
Tracking TypeMethod for tracking data changes: None or Date.
RegionRegion setting for the connector, if required by your setup.
Time ZoneTime zone matching your GraphQL environment.
Time OffsetRefresh offset in seconds to compensate for timing issues in record selection. Minimum 0, maximum 3600.
Batch SizeNumber of records processed per batch during extraction. Larger batches can improve performance but use more memory. Default is 2000, maximum is 10000. Adjust based on your network speed and disk performance. The default works well in most cases.

Basic authentication example setup

GraphQL Basic authentication source connection in DataSync
Completed GraphQL source connection in DataSync using Basic authentication, with all properties and settings filled in.

OAuth PKCE example setup

GraphQL OAuth PKCE source connection in DataSync
Completed GraphQL source connection in DataSync using OAuth PKCE authentication, with all properties and settings filled in.