Skip to main content

Amazon-Ads authentication

This page documents the authentication and configuration options for the Amazon-Ads agent connector.

Authentication

Open source execution

In open source mode, you provide API credentials directly to the connector.

OAuth

credentials fields you need:

Field NameTypeRequiredDescription
client_idstrNoThe client ID of your Amazon Ads API application
client_secretstrNoThe client secret of your Amazon Ads API application
refresh_tokenstrYesThe refresh token obtained from the OAuth authorization flow

Example request:

from airbyte_agent_amazon_ads import AmazonAdsConnector
from airbyte_agent_amazon_ads.models import AmazonAdsAuthConfig

connector = AmazonAdsConnector(
auth_config=AmazonAdsAuthConfig(
client_id="<The client ID of your Amazon Ads API application>",
client_secret="<The client secret of your Amazon Ads API application>",
refresh_token="<The refresh token obtained from the OAuth authorization flow>"
)
)

Token

This authentication method isn't available for this connector.

Hosted execution

In hosted mode, you first create a connector via the Airbyte API (providing your OAuth or Token credentials), then execute operations using either the Python SDK or API. If you need a step-by-step guide, see the hosted execution tutorial.

OAuth

Create a connector with OAuth credentials.

credentials fields you need:

Field NameTypeRequiredDescription
client_idstrNoThe client ID of your Amazon Ads API application
client_secretstrNoThe client secret of your Amazon Ads API application
refresh_tokenstrYesThe refresh token obtained from the OAuth authorization flow

Example request:

curl -X POST "https://api.airbyte.ai/api/v1/integrations/connectors" \
-H "Authorization: Bearer <YOUR_BEARER_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"external_user_id": "<EXTERNAL_USER_ID>",
"connector_type": "Amazon-Ads",
"name": "My Amazon-Ads Connector",
"credentials": {
"client_id": "<The client ID of your Amazon Ads API application>",
"client_secret": "<The client secret of your Amazon Ads API application>",
"refresh_token": "<The refresh token obtained from the OAuth authorization flow>"
}
}'

Bring your own OAuth flow

To implement your own OAuth flow, use Airbyte's server-side OAuth API endpoints. For a complete guide, see Implement your own OAuth flow.

Step 1: Initiate the OAuth flow

Request a consent URL for your user.

Field NameTypeRequiredDescription
external_user_idstringYesYour unique identifier for the end user
connector_typestringYesThe connector type (e.g., "Amazon-Ads")
redirect_urlstringYesURL to redirect to after OAuth authorization

Example request:

curl -X POST "https://api.airbyte.ai/api/v1/integrations/connectors/oauth/initiate" \
-H "Authorization: Bearer <YOUR_BEARER_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"external_user_id": "<EXTERNAL_USER_ID>",
"connector_type": "Amazon-Ads",
"redirect_url": "https://yourapp.com/oauth/callback"
}'

Redirect your user to the consent_url from the response. After they authorize, they'll be redirected back to your app with a secret_id query parameter.

Step 2: Create a connector with the secret ID

Field NameTypeRequiredDescription
external_user_idstringYesYour unique identifier for the end user
connector_typestringYesThe connector type (e.g., "Amazon-Ads")
namestringYesA name for this connector instance
server_side_oauth_secret_idstringYesThe secret_id from the OAuth callback

Example request:

curl -X POST "https://api.airbyte.ai/api/v1/integrations/connectors" \
-H "Authorization: Bearer <YOUR_BEARER_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"external_user_id": "<EXTERNAL_USER_ID>",
"connector_type": "Amazon-Ads",
"name": "My Amazon-Ads Connector",
"server_side_oauth_secret_id": "<secret_id_from_callback>"
}'

Token

This authentication method isn't available for this connector.

Execution

After creating the connector, execute operations using either the Python SDK or API.

Python SDK

from airbyte_agent_amazon_ads import AmazonAdsConnector, AirbyteAuthConfig

connector = AmazonAdsConnector(
auth_config=AirbyteAuthConfig(
external_user_id="<your_external_user_id>",
airbyte_client_id="<your-client-id>",
airbyte_client_secret="<your-client-secret>"
)
)

@agent.tool_plain # assumes you're using Pydantic AI
@AmazonAdsConnector.tool_utils
async def amazon_ads_execute(entity: str, action: str, params: dict | None = None):
return await connector.execute(entity, action, params or {})

API

curl -X POST 'https://api.airbyte.ai/api/v1/integrations/connectors/<connector_id>/execute' \
-H 'Authorization: Bearer <YOUR_BEARER_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{"entity": "<entity>", "action": "<action>", "params": {}}'

Configuration

The Amazon-Ads connector requires the following configuration variables. These variables are used to construct the base API URL. Pass them via the config parameter when initializing the connector.

VariableTypeRequiredDefaultDescription
regionstringYeshttps://advertising-api.amazon.comThe Amazon Ads API endpoint URL based on region: