Search the Meta interests and job titles
Live read. Asks Meta now for the interests or the job titles whose name matches q, as this ad account can target them. Send the id of each option that you choose in interests or workPositions when you create an ad set.
Keep the id, not the name: Meta can rename an option. audienceSizeLowerBound and audienceSizeUpperBound give the size of the audience that Meta estimates for the option alone. path gives the category of an interest. A field that Meta does not give is null. Meta gives at most 45 options on one page.
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.
/observe/{advertiserId}/targeting-optionsAuthorizationBearer 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.
advertiserIdstringrequiredqstringrequiredtypestringrequiredinterestwork_positioncursorstringlimitintegerThe options that match the search.
dataobject[]requiredThe interests or the job titles whose name matches q, in the order of Meta. An empty array can carry nextCursor: then more rows can exist.
Show propertiesHide properties
objectaudienceSizeLowerBoundinteger | nullrequiredThe lower bound of the audience size that Meta estimates for this option alone. Null when Meta gives none.
audienceSizeUpperBoundinteger | nullrequiredThe upper bound of the audience size that Meta estimates for this option alone. Null when Meta gives none.
idstringrequiredThe Meta id of the option. Send it in interests or workPositions to create an ad set. Keep the id: Meta can rename an option.
namestringrequiredThe name of the option in Meta.
pathstring[] | nullrequiredThe category of the option and its parent categories, from the top. Null when Meta gives none.
typestringrequiredThe type of the option: interest or work_position.
interestwork_positionnextCursorstringSend 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 organization has no active subscription. An owner subscribes at paywallUrl. error is organization_unentitled.
paywallUrlstring<uri>requiredThe page where an owner of the organization subscribes. Show it to the person.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
organization_unentitledmessagestringrequiredA 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 observe: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.
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.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
not_foundmessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.
This advertiser has no usable connection to Meta. A person must reconnect it.
providerstringrequiredThe ad platform this failure came from: meta.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
provider_not_connectedmessagestringrequiredA 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 provider refused the request, or could not answer it. This failure is often transient. Send the request again.
platformErroranyrequiredThe 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.
providerstringrequiredThe ad platform this failure came from: meta.
errorstringrequiredA stable code for the failure. This is the field to branch on. It does not change for a given failure.
provider_errormessagestringrequiredA sentence to show a person. Written to say what to do next. Reworded whenever it can be said better, so never branch on it.