GET /v1/campaigns endpoint returns campaigns from all connected platforms in a unified format. You can filter by platform, status, and paginate through results using cursors.
Basic Request
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
platform | string | all | Filter by platform: google_ads, meta_ads, tiktok_ads |
status | string | all | Filter by status: ACTIVE, PAUSED, REMOVED, ENDED |
limit | integer | 25 | Number of results per page (max 100) |
cursor | string | — | Cursor for the next page of results |
Filtering by Platform
Fetch only Google Ads campaigns:Filtering by Status
Fetch only active campaigns across all platforms:Cursor Pagination
AdRelay uses cursor-based pagination. Each response includes apagination object indicating whether more results are available and providing a cursor for the next page.
Response Shape
Paginating Through Results
To fetch the next page, pass thenext_cursor value as the cursor query parameter:
has_more is false, you have reached the last page.
Full Pagination Example (Node.js)
Campaign Object Fields
| Field | Type | Description |
|---|---|---|
id | string | AdRelay’s unique identifier for the campaign |
platform | string | Source platform (google_ads, meta_ads, tiktok_ads) |
remote_id | string | The campaign ID on the original platform |
name | string | Campaign name |
status | string | ACTIVE, PAUSED, REMOVED, or ENDED |
goal | string | Campaign objective (e.g., CONVERSIONS, AWARENESS, TRAFFIC) |
budget_amount | number | Budget amount in the campaign’s currency |
budget_period | string | DAILY or LIFETIME |
currency | string | ISO 4217 currency code |
created_at | string | ISO 8601 timestamp |
updated_at | string | ISO 8601 timestamp |