REST API · Bridge
List bridged ads
The ads already bridged from a source ad account (the app's Bridged tab), newest first
GEThttps://api.apogee.ad/api/v1/bridged-ads
What it does
Your own transfers, and another Apogee user's from the same source account when their destination account is yours too.
Request
GET /bridged-ads on https://api.apogee.ad/api/v1.
Query parameters
-
limitinteger query optionalPage size
-
cursorstring query optionalnext_cursor of the previous page
-
source_platformstring query optionalDefault meta
-
source_ad_account_idstring query requiredThe ad account (list_ad_accounts): Meta act_…, a TikTok advertiser id, a Snapchat ad account id
Headers
-
Authorizationstring header requiredBearer apk_…: an API key with the scope of this route.
Response
200. A page of results: pass next_cursor as cursor for the next one, limit from 1 to 200 (default 50).
-
dataarray of objectsFields of each item (5)
-
source_ad_idstring -
namestring or null -
last_atstring or null -
countnumber or null -
targetsarray of objectsFields of each item (6)
-
platformstring -
ad_account_idstring or null -
ad_idstring or null -
adset_idstring or null -
smart_plusboolean -
atstring or null
-
-
-
has_moreboolean -
next_cursorstring or null
Every answer carries X-Request-Id (give it to support), Apogee-Version: 2026-10-06, and the RateLimit and RateLimit-Policy headers.
Errors
Errors are application/problem+json with a stable code to switch on (all the codes).
| Status | Possible codes |
|---|---|
| 400 Bad request | idempotency_key_required, not_supported, request_refused, validation_failed |
| 401 Unauthorized | invalid_api_key |
| 403 Forbidden | account_not_connected, forbidden, insufficient_scope, meta_permission_denied, platform_permission_denied, upgrade_required |
| 404 Not found | not_found |
| 429 Too many requests | daily_read_cap, meta_rate_limited, platform_rate_limited, quota_exceeded, rate_limited |
| 500 Internal server error | internal_error |
Example
With your key in APOGEE_API_KEY (create one):
curl 'https://api.apogee.ad/api/v1/bridged-ads?source_ad_account_id=act_1234567890' \
-H "Authorization: Bearer $APOGEE_API_KEY" {
"data": [
{
"source_ad_id": "120200000000000003",
"name": "Nordlicht | Spring launch",
"last_at": "2026-10-23T09:00:00.000Z",
"count": 3,
"targets": [
{
"platform": "meta",
"ad_account_id": "act_1234567890",
"ad_id": "120200000000000003",
"adset_id": "120200000000000002",
"smart_plus": false,
"at": "2026-10-23T09:00:00.000Z"
}
]
}
],
"has_more": false,
"next_cursor": null
} Access and cost
| Plans | Pro and Scale. |
|---|---|
| Scope | read (scopes). |
| Credits | Free up to the daily free reads (5,000 a day on Pro, 10,000 on Scale), then 1 credit per read. A request that fails costs nothing, a replayed one neither (credits). |
| Rate limit | Read: 600 per 15 minutes on Pro, 1,200 on Scale (rate limits). |
| Daily cap | Counts 1 unit toward the 2,000 units one API key can use in 24 hours. |
In the MCP
An AI assistant does the same with this tool of the MCP server:
list_bridge_transfers: The ads already bridged from a source ad account, newest first, with where each one went.
Related operations
- Create bridge transfer:
POST /bridge-transfers - Confirm bridge transfer:
POST /bridge-transfers/{id}/confirm - Get bridge transfer:
GET /bridge-transfers/{id} - Get bridge stats:
GET /bridged-ads/stats - Get bridge daily stats:
GET /bridged-ads/daily-stats