REST API · Bridge
Get bridge daily stats
The Bridge's Daily tab: per platform and per day, the numbers of every creative bridged from a Meta ad account
GEThttps://api.apogee.ad/api/v1/bridged-ads/daily-stats
What it does
Day by day over since → until (366 days at most): spend, revenue, ROAS, impressions, link clicks and purchases summed over the Meta source ads and, separately, over their TikTok and Snapchat copies, with each platform's totals, status and currency. Platforms are never summed together.
Request
GET /bridged-ads/daily-stats on https://api.apogee.ad/api/v1.
Query parameters
-
source_ad_account_idstring query requiredThe Meta ad account the ads were bridged from (act_…)
-
sincestring query requiredFirst day, YYYY-MM-DD
-
untilstring query requiredLast day, YYYY-MM-DD
Headers
-
Authorizationstring header requiredBearer apk_…: an API key with the scope of this route.
Response
200.
-
rangeobjectFields (2)
-
sincestring -
untilstring
-
-
platformsobjectFields (3)
-
metaobjectFields (6)
-
statusstring -
currencystring or null -
totalsobject or nullFields (6)
-
spendnumber or null -
revenuenumber or null -
impressionsnumber or null -
link_clicksnumber or null -
purchasesnumber or null -
roasnumber or null
-
-
daysarray of objects or nullEvery day of the range (zeros when nothing delivered); null when status is not ok
Fields of each item (7)
-
datestring -
spendnumber or null -
revenuenumber or null -
impressionsnumber or null -
link_clicksnumber or null -
purchasesnumber or null -
roasnumber or null
-
-
hintstring or null -
errorstring or null
-
-
tiktokobjectFields (6)
-
statusstring -
currencystring or null -
totalsobject or nullFields (6)
-
spendnumber or null -
revenuenumber or null -
impressionsnumber or null -
link_clicksnumber or null -
purchasesnumber or null -
roasnumber or null
-
-
daysarray of objects or nullEvery day of the range (zeros when nothing delivered); null when status is not ok
Fields of each item (7)
-
datestring -
spendnumber or null -
revenuenumber or null -
impressionsnumber or null -
link_clicksnumber or null -
purchasesnumber or null -
roasnumber or null
-
-
hintstring or null -
errorstring or null
-
-
snapchatobjectFields (6)
-
statusstring -
currencystring or null -
totalsobject or nullFields (6)
-
spendnumber or null -
revenuenumber or null -
impressionsnumber or null -
link_clicksnumber or null -
purchasesnumber or null -
roasnumber or null
-
-
daysarray of objects or nullEvery day of the range (zeros when nothing delivered); null when status is not ok
Fields of each item (7)
-
datestring -
spendnumber or null -
revenuenumber or null -
impressionsnumber or null -
link_clicksnumber or null -
purchasesnumber or null -
roasnumber or null
-
-
hintstring or null -
errorstring or null
-
-
-
source_ad_account_idstring
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 |
| 412 Precondition failed | drive_not_connected, meta_not_connected, platform_not_connected |
| 429 Too many requests | daily_read_cap, meta_rate_limited, platform_rate_limited, quota_exceeded, rate_limited |
| 500 Internal server error | internal_error |
| 502 Bad gateway | drive_error, launch_failed, meta_error, platform_error, upstream_error |
Example
With your key in APOGEE_API_KEY (create one):
curl 'https://api.apogee.ad/api/v1/bridged-ads/daily-stats?source_ad_account_id=act_1234567890&since=2026-10-01&until=2026-10-21' \
-H "Authorization: Bearer $APOGEE_API_KEY" {
"range": {
"since": "2026-10-01",
"until": "2026-10-21"
},
"source_ad_account_id": "120200000000000001",
"platforms": {
"meta": {
"status": "ok",
"currency": "EUR",
"totals": {
"spend": 125.4,
"revenue": 612.5,
"impressions": 18250,
"link_clicks": 1,
"purchases": 9,
"roas": 4.88
},
"days": [
{
"date": "2026-10-21",
"spend": 125.4,
"revenue": 612.5,
"impressions": 18250,
"link_clicks": 1,
"purchases": 9,
"roas": 4.88
}
],
"hint": "120200000000000001",
"error": "120200000000000001"
},
"tiktok": {
"status": "ok",
"currency": "EUR",
"totals": {
"spend": 125.4,
"revenue": 612.5,
"impressions": 18250,
"link_clicks": 1,
"purchases": 9,
"roas": 4.88
},
"days": [
{
"date": "2026-10-21",
"spend": 125.4,
"revenue": 612.5,
"impressions": 18250,
"link_clicks": 1,
"purchases": 9,
"roas": 4.88
}
],
"hint": "120200000000000001",
"error": "120200000000000001"
},
"snapchat": {
"status": "ok",
"currency": "EUR",
"totals": {
"spend": 125.4,
"revenue": 612.5,
"impressions": 18250,
"link_clicks": 1,
"purchases": 9,
"roas": 4.88
},
"days": [
{
"date": "2026-10-21",
"spend": 125.4,
"revenue": 612.5,
"impressions": 18250,
"link_clicks": 1,
"purchases": 9,
"roas": 4.88
}
],
"hint": "120200000000000001",
"error": "120200000000000001"
}
}
} 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). |
| Meta budget | Reads Meta: spends 1 unit of the account's Meta budget (1,800 per 15 minutes, 900 per ad account). |
| 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:
get_bridge_daily_stats: The Bridge's Daily tab: day by day, per platform, the spend, revenue, ROAS, impressions, link clicks and purchases of every creative bridged from a Meta ad account (366 days at most). Platforms are never added up.
Related operations
- Create bridge transfer:
POST /bridge-transfers - Confirm bridge transfer:
POST /bridge-transfers/{id}/confirm - Get bridge transfer:
GET /bridge-transfers/{id} - List bridged ads:
GET /bridged-ads - Get bridge stats:
GET /bridged-ads/stats