Skip to content
AdCrunch
Esc
navigateopen⌘Jpreview

Attach an advertiser

Attaches an ad account to a Brand. An agent that works on that account can then find this brand context. Send the same call again for the same result. AdCrunch reads the provider from the advertiser. It does not take the provider from you.

POST/context/brands/{slug}/advertisers/
Authorization
AuthorizationBearer token · headerrequired

Send Authorization: Bearer <credential>. Two credentials work.

An API key (acr_…) is what a server integration uses. Create one in the AdCrunch console under Settings → API keys — see https://docs.adcrunch.dev/account/api-keys. A key is bound to the organization that was active when you created it, and it keeps acting on that organization whatever you do later. It carries the permissions of the member who created it.

A session issued by the AdCrunch sign-in flow also works, which is how the console calls this service from the browser.

Either way the organization comes from the credential. There is no organization parameter.

Path parameters
slugstringrequired
Request body
requiredapplication/json
advertiser_idstringrequired
matches ^acc_[\s\S]{0,}$
Responses
201

Attached. Idempotent: attaching an account that is already attached answers the same way.

advertiserIdstringrequired
providerstringrequired

Resolved from the ad account, never taken from the caller. That resolution is also the ownership check.

401

No credential, or one that does not resolve. Send an API key or a session. See the security scheme. error is unauthorized.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

Allowed:unauthorized
messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

403

The caller does not hold brand:write. error is forbidden.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

Allowed:forbidden
messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

404

No Brand with that slug. error is not_found.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

422

That ad account is not connected to this organization. error is advertiser_not_owned. Ownership is checked against the integration database at write time, because there is no foreign key across databases.

errorstringrequired

A stable code for the failure. This is the field to branch on. It does not change for a given failure.

messagestringrequired

A sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.

Request
curl -X POST "https://api.adcrunch.dev/context/brands/string/advertisers/" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "advertiser_id": "string"
}'
Response
{
  "advertiserId": "string",
  "provider": "string"
}