List the Campaign Plans
Lists the Campaign Plans of your organization, newest first. Each row gives the figures you compare plans by: the budget envelope, the allocated sum and whether that sum is comparable, the window, the number of lines, and the channels the Campaign Plan uses. This call does not give the Line Items. To read them, read one plan. Deleted plans are not in the list.
One page at a time: limit rows at most, 100 by default. When the answer holds nextCursor, more rows exist: send it back as cursor to get the next page.
/context/campaign-plansAuthorizationBearer token · headerrequiredSend Authorization: Bearer <credential>.
Use an API key (acr_…), from the AdCrunch console under Settings → API keys.
The credential names the organization, and no operation takes an organization parameter.
See https://docs.adcrunch.dev/api/authentication.
cursorstringlimitintegerrequiredOne page of the Campaign Plans of the organization, newest first, with the money of each summarized and its channels named, but without its rows. Where the rows mix totals and daily rates, allocation.comparable is false and allocation.allocated is null — there is no meaningful sum to show. This page is the last one, so it carries no nextCursor.
dataobject[]requiredShow propertiesHide properties
objectallocationobjectrequiredDerived on every read. Never stored.
Show propertiesHide properties
allocatednumber | nullrequiredThe sum of the Line Item budgets. null when the lines mix units, because that sum would be meaningless.
comparablebooleanrequiredFalse when the lines mix totals and daily rates. A surface must then print "not comparable" rather than a plausible-looking wrong total.
unallocatednumber | nullrequiredThe envelope less the allocated, where both are known.
unitstring | nullrequiredThe shared unit, when the lines agree on one.
totaldailybrandIdstring | nullrequiredchannelsstring[]requiredEvery channel its Line Items name, deduplicated.
currencystringrequireddescriptionstringrequiredendDatestring | nullrequiredA calendar date, YYYY-MM-DD.
lineItemCountnumberrequirednamestringrequiredrevisionnumberrequiredIncrements on every write. Send it back as base_revision to edit; a stale one answers 409.
slugstringrequiredstartDatestring | nullrequiredA calendar date, YYYY-MM-DD.
statusstringrequireddraftapprovedtotalBudgetnumber | nullrequiredThe envelope. Whole units of currency.
nextCursorstringSend this value as cursor to get the next page. It is absent on the last page.
The request does not match the schema of this operation: a field is missing or has the wrong type, or the body is not valid JSON. error is invalid_request, and issues names each field. Nothing was changed. Or AdCrunch cannot use the cursor: it cannot read it, or the cursor belongs to a different query. Then error is invalid_cursor. Send the nextCursor of the previous page with no change, or omit cursor to get the first page.
issuesobject[]requiredOne entry for each field that does not match.
Show propertiesHide properties
objectinstringrequiredThe part of the request that holds the field.
bodycookieheadersparamsquerymessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
pathstringrequiredA JSON Pointer into that part of the request, such as /filename. An empty string is the whole part.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
invalid_requestmessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
invalid_cursormessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
No API key, or one that does not resolve. See the security scheme. error is unauthorized.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
unauthorizedmessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
The caller does not hold campaign_plan:read. error is forbidden.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
forbiddenmessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.