Skip to content
AdCrunch
Esc
↑↓navigate↵open⌘Jpreview

List an advertiser’s Meta Custom Audiences

Available on: Meta

Live read. Asks Meta now for the Custom Audiences of one ad account. Send the id of an audience in customAudiences or excludedCustomAudiences when you create an ad set, or as originAudienceId when you create a lookalike.

usable is false when an ad set cannot use the audience: Meta flagged it for integrity reasons, or it is too small or cannot deliver. operationStatus gives the words of Meta. source tells a website audience, a customer list and a lookalike apart. When no page holds an audience, up to the page with no nextCursor, the ad account has none.

An advertiser that your organization does not own answers 404, with error of not_found. An advertiser that does not exist, and one that is not a Meta ad account, answer the same.

AdCrunch stores nothing from this read. Each request counts against the rate limits of Meta.

limit and cursor page the answer. Send nextCursor back as cursor to get the next page. A page can hold no row and still carry nextCursor.

GET/observe/{advertiserId}/custom-audiences
Authorization
AuthorizationBearer token · headerrequired

Send 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.

Path parameters
advertiserIdstringrequired
matches ^(acc_)[\s\S]{0,}$
Query parameters
cursorstring
min length 1
limitinteger
min 1 · max 500 · default: 100
Responses
200

The Custom Audiences of this advertiser.

dataobject[]required

The Custom Audiences of the ad account, in the order of Meta. An empty array can carry nextCursor: then more rows can exist.

Show properties
Array of object
approximateCountobject | nullrequired

The bounds of the number of people in the audience, as Meta estimates them. Null when Meta gives none, as for a lookalike that is not active yet.

Show properties
lowerBoundintegerrequired

The lower bound of the size that Meta estimates.

min -9007199254740991 · max 9007199254740991
upperBoundintegerrequired

The upper bound of the size that Meta estimates.

min -9007199254740991 · max 9007199254740991
idstringrequired

The Meta id of the Custom Audience. Send it in customAudiences or excludedCustomAudiences when you create an ad set, or as originAudienceId of a lookalike.

namestringrequired

The name of the Custom Audience in Meta.

operationStatusstring | nullrequired

The words of Meta about the state of the audience, for example that Meta still populates it. Null when Meta sends none.

sourcestringrequired

Where the people of the audience come from: website (the visitors that a Pixel saw), customer_list (a list of customers), lookalike (people like those of another audience), or other (a source that AdCrunch cannot create).

Allowed:websitecustomer_listlookalikeother
usablebooleanrequired

False when an ad set cannot use the audience: Meta flagged it for integrity reasons, or it is too small or cannot deliver.

nextCursorstring

Send this value as cursor to get the next page. It is absent on the last page.

400

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.

Any of:
object
issuesobject[]required

One entry for each field that does not match.

Show properties
Array of object
instringrequired

The part of the request that holds the field.

Allowed:bodycookieheadersparamsquery
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.

pathstringrequired

A JSON Pointer into that part of the request, such as /filename. An empty string is the whole part.

errorstringrequired

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

Allowed:invalid_request
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.

object
errorstringrequired

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

Allowed:invalid_cursor
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.

401

No API key, or one that does not resolve. 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.

402

The organization has no active subscription. An owner subscribes at paywallUrl. error is organization_unentitled.

paywallUrlstring<uri>required

The page where an owner of the organization subscribes. Show it to the person.

errorstringrequired

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

Allowed:organization_unentitled
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 observe:read. 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

Your organization does not own the advertiser in the path, it does not exist, or it is not a Meta ad account. The answer does not tell them apart. error is not_found. AdCrunch asks Meta nothing.

errorstringrequired

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

Allowed:not_found
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.

409

This advertiser has no usable connection to Meta. A person must reconnect it.

providerstringrequired

The ad platform this failure came from: meta.

errorstringrequired

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

Allowed:provider_not_connected
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.

502

The provider refused the request, or could not answer it. This failure is often transient. Send the request again.

platformErroranyrequired

The provider’s own error object, unchanged. For Meta it carries code, error_subcode, type, error_user_title and error_user_msg — branch on the subcode for anything AdCrunch does not model. It never holds the request AdCrunch sent.

providerstringrequired

The ad platform this failure came from: meta.

errorstringrequired

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

Allowed:provider_error
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 GET 'https://api.pr-1108.adcrunch.dev/observe/string/custom-audiences' \
  -H 'Authorization: Bearer YOUR_TOKEN'
Response
{
  "data": [
    {
      "approximateCount": {
        "lowerBound": 12400,
        "upperBound": 14600
      },
      "id": "238000000000001",
      "name": "Visitors 30 days, no trial",
      "operationStatus": "Normal",
      "source": "website",
      "usable": true
    },
    {
      "approximateCount": null,
      "id": "238000000000002",
      "name": "Lookalike 1% US of Visitors 30 days",
      "operationStatus": "This audience is being populated.",
      "source": "lookalike",
      "usable": false
    }
  ]
}