Get an ad launch
https://api.norreach.app/v1/ad-launches/{id}One ad launch: its status, budget (minor units), daily cap, schedule, landing page, what publishing creates and, when something went wrong, a plain sentence about it (the details are in the app).
curl -X GET "https://api.norreach.app/v1/ad-launches/{id}" \
-H "Authorization: Bearer $NORREACH_API_KEY"{
"id": "3c4d5e6f-7a8b-4c9d-8e0f-1a2b3c4d5e6f",
"object": "ad_launch",
"name": "Nurses in Stockholm — lead ads",
"network": "meta",
"network_name": "Meta",
"status": "ready",
"plan_id": "6a7b8c9d-0e1f-4a2b-8c3d-4e5f6a7b8c9d",
"ad_account_id": "7d8e9f0a-1b2c-4d3e-8f4a-5b6c7d8e9f0a",
"objective": "leads",
"landing_url": "https://example-care.norreach.dev/nurses",
"budget": {
"daily_per_ad_set": {
"amount_minor": 15000,
"currency": "SEK"
},
"daily_cap": {
"amount_minor": 50000,
"currency": "SEK"
},
"campaign": null
},
"ad_sets": 3,
"ads": 6,
"schedule": {
"mode": "range",
"start": "2026-11-10",
"end": "2026-11-24"
},
"published_at": null,
"problem": null,
"created_at": "2026-11-04T09:12:33.120Z",
"updated_at": "2026-11-04T10:02:11.000Z"
}Authorizations
Bearer authentication: send Authorization: Bearer <key>, with an API key or an OAuth access token. The key needs the scope ads:read. API keys and scopes
Path parameters
An id (UUID).
Response
200application/json— Get an ad launch
An id (UUID).
metatiktokredditchatgptdraft → generating → ready → publishing → published (or failed). Only ready waits for a person's yes.
draftgeneratingreadypublishingpublishedfailedThe plan whose cards Nora built this launch from.
Show child attributesHide child attributes
Per ad set (ad group) per day. Editable with PATCH while draft, ready or failed.
The most the whole launch may spend per day (set by the plan). A budget above it is refused.
A campaign-level budget, on networks that use one.
How many ad sets (ad groups) publishing creates.
How many ads publishing creates.
When the ads run once switched on.
Show child attributesHide child attributes
continuous = runs until switched off; range = between start and end.
continuousrangeYYYY-MM-DD (range only).
YYYY-MM-DD, or null for no end date.
A plain sentence when something went wrong (details are in the app).
Errors
Errors are application/problem+json with a stable code.
| Status | Code | Meaning |
|---|---|---|
| 400 | bad_request | The request couldn't be read. |
| 400 | unknown_field | The request has a field this operation doesn't know. |
| 401 | unauthorized | A valid API key is required. |
| 403 | insufficient_scope | This API key doesn't have the scope this operation needs. |
| 403 | feature_not_enabled | The API isn't switched on for this workspace. |
| 404 | not_found | That doesn't exist. |
| 429 | rate_limited | Too many requests. Slow down and try again. |
| 500 | server_error | Something went wrong on our side. |
| 503 | unavailable | The API isn't available right now. Try again shortly. |