Spend, impressions and clicks from the connected ad platforms, joined to the conversions they produced.
| Endpoint | Method | Path | Permission |
|---|---|---|---|
| Get ad performance Ad platform spend and delivery | GET | /v1/ads/performance | metrics:read |
Base URL https://app.sourceloop.ai/api/v1
Get ad performance
Ad platform spend and delivery
GET /v1/ads/performance
Requires metrics:read
`level` is REQUIRED. Spend is stored once per breakdown grain, so a query that does not pin one, or that mixes two, multiplies it.
Metrics named `platform_*` are what the ad platform reports under its own attribution window and view-through rules. They will not match Sourceloop attributed conversions, and that difference is expected.
Amounts are in the AD ACCOUNT currency, which may differ from the workspace currency; `meta.currency_source` says which you got.
curl -s -X GET "https://app.sourceloop.ai/api/v1/ads/performance?website=acme.com&period=last%2030%20days" \
-H "Authorization: Bearer $SOURCELOOP_API_KEY" const res = await fetch(
"https://app.sourceloop.ai/api/v1/ads/performance?website=acme.com&period=last%2030%20days",
{
method: "GET",
headers: {
Authorization: `Bearer ${process.env.SOURCELOOP_API_KEY}`,
},
},
);
const data = await res.json(); import os, requests
res = requests.get(
"https://app.sourceloop.ai/api/v1/ads/performance?website=acme.com&period=last%2030%20days",
headers={"Authorization": f"Bearer {os.environ['SOURCELOOP_API_KEY']}"},
)
data = res.json() Query parameters
websitestringWebsite domain, e.g. acme.com. Required only when the key covers more than one.
periodstringPlain-language period: "last 30 days", "yesterday", "July 2026", or "2026-07-01..2026-07-31". Ignored when from/to are given.
Example
last 30 dayslevelstringrequiredGrain to report at. "campaign" is the usual view.
Allowed values 16
accountcampaignad_setadkeywordsearch_termplacementaudienceage_gendergeodeviceassetasset_groupproductlisting_groupnetwork
metricsstringComma-separated.
Allowed values10
spendimpressionsclicksplatform_conversionsplatform_revenuectrcpccpmplatform_roasplatform_conversion_rate
breakdownbooleanOne row per item at that level.
platformstringExample
google_ads
Responses
-
200Ad rows -
400Something was wrong with the request or the credential. -
429Too many requests for this workspace in the current minute. Wait Retry-After seconds and repeat the request unchanged.