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
- Log in to DataSync.
- From the welcome screen, select Connections.
- Next to Source Connections, click New.
- Select GraphQL.
- Enter all required connection properties.
- (Optional) In the Additional Connection Properties panel, click Add property and enter any extra parameters you need.
- Configure the advanced settings to match your environment, including Tracking Type.
- Click Save.
Connection properties
| Property | What to enter |
|---|---|
| Description | Unique name for the connection. Example: GraphQL. |
| URL | Address 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 Mode | Authentication method used to access the API.
|
| Callback URL | OAuth 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 ID | OAuth only Application identifier assigned during registration. Found in your application settings or configuration portal. Example: client-id-987654. |
| Client Secret | OAuth only Confidential value known only to the client and the authorization server. Found in your application settings or configuration portal. Example: mySuperSecretValue. |
| Authorization URL | OAuth only URL that starts the authorization process. Available in the API documentation. Example: https://auth.example.com/oauth2/authorize. |
| Access Token URL | OAuth 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 URL | OAuth 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. |
| Scope | Access permissions requested during authentication. Verify the required scopes in your application settings. Example: read:users write:projects. |
| Username | Basic only Login account with the required API permissions. Example: User123. |
| Password | Basic only Password for this account. Example: P@ssw0rd!. |
| Convert all dates and times to GMT | Converts 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 size | Maximum number of results returned per page. Larger values return more rows per page but may increase timeout risk. |
| Enable Pooling | Enables 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 timeout | Time in seconds a connection can stay idle before returning to the pool. |
| Max Pool Size | Maximum number of connections allowed in the pool at the same time. |
| Pool wait time | Time in seconds DataSync waits for an available connection before throwing an error. |
| Verbosity | Controls how much detail the connector writes to the log. Each level includes everything from the level below it, plus additional detail.
|
| Timeout | Time 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.
| Property | What to enter |
|---|---|
HTTPHeaders | Custom 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>. |
ExpandTablesDepth | Controls how many levels of nested lists are expanded during table discovery.
|
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.
| Setting | What to select |
|---|---|
| Tracking Type | Method for tracking data changes: None or Date. |
| Region | Region setting for the connector, if required by your setup. |
| Time Zone | Time zone matching your GraphQL environment. |
| Time Offset | Refresh offset in seconds to compensate for timing issues in record selection. Minimum 0, maximum 3600. |
| Batch Size | Number 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

OAuth PKCE example setup
