Ads · Ad Campaigns
Reads the platform's review verdict for an ad. Works with TikTok Ads, Google Ads and Meta Ads.
GET
https://api.pozy.ai/v1/ads/{adId}/reviewTikTok, Google Workspace and Facebook and InstagramgetAdReview
Guide: Meta Ads
Request
Send your API key as Authorization: Bearer pz_live_.... Read-only keys can call it. Keys with the ads resource group disabled get 403 resource_group_disabled. Authentication
Path parameters
| Name | Type | Notes |
|---|---|---|
adIdrequired | string |
Query parameters
| Name | Type | Notes |
|---|---|---|
accountId | string |
Example
curl -X GET "https://api.pozy.ai/v1/ads/6f40fa2fb0a7e728dd1a73b7/review" \
-H "Authorization: Bearer $POZY_API_KEY"const res = await fetch("https://api.pozy.ai/v1/ads/6f40fa2fb0a7e728dd1a73b7/review", {
headers: { Authorization: `Bearer ${process.env.POZY_API_KEY}` },
});
const data = await res.json();
if (!res.ok) throw new Error(data?.error ?? `Request failed with status ${res.status}`);
console.log(data);import os
import requests
resp = requests.get(
"https://api.pozy.ai/v1/ads/6f40fa2fb0a7e728dd1a73b7/review",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
timeout=30,
)
resp.raise_for_status()
print(resp.json())Response
200 on success
adIdstringCan be null.
platformstringplatformAdIdstringsyncedbooleanreviewobject12 child fields
approvedbooleanCan be null.
reviewStatusstringCan be null.
forbiddenPlacementsarray of stringforbiddenAgesarray of stringforbiddenLocationsarray of stringforbiddenOperatingSystemsarray of stringrejectionsarray of object6 child fields
reasonsarray of stringsuggestionstringCan be null.
forbiddenPlacementsarray of stringforbiddenAgesarray of stringforbiddenLocationsarray of stringcontentobjectCan be null.
5 child fields
typestringCan be null.
textstringCan be null.
imageIdstringCan be null.
videoIdstringCan be null.
musicIdstringCan be null.
approvalStatusstringCan be null.
policyTopicsarray of object4 child fields
topicstringCan be null.
typestringCan be null.
evidencesarray of objectconstraintsarray of object
reviewFeedbackobject2 child fields
globalmap of stringplacementSpecificmap of map of string
issuesarray of objectreadAtstring (date-time)
200 response
{
"adId": "6f40fa2fb0a7e728dd1a73b7",
"platform": "instagram",
"platformAdId": "64149c3e561c1c5ac800f87a",
"synced": true,
"review": {
"approved": true,
"reviewStatus": "active",
"forbiddenPlacements": [
"string"
],
"forbiddenAges": [
"string"
],
"forbiddenLocations": [
"string"
],
"forbiddenOperatingSystems": [
"string"
],
"rejections": [
{
"reasons": [
"string"
],
"suggestion": "string",
"forbiddenPlacements": [
"string"
],
"forbiddenAges": [
"string"
],
"forbiddenLocations": [
"string"
],
"content": {
"type": "string",
"text": "Hello from Pozy",
"imageId": "6d4f8076f189e3caf170dc65",
"videoId": "65fd297a0da74ab358dd11e9",
"musicId": "6f984cc4c4966c468da0cfd5"
}
}
],
"approvalStatus": "active",
"policyTopics": [
{
"topic": "string",
"type": "string",
"evidences": [
{}
],
"constraints": [
{}
]
}
],
"reviewFeedback": {
"global": {
"key": "string"
},
"placementSpecific": {
"key": {
"key": "string"
}
}
},
"issues": [
{}
],
"readAt": "2026-10-02T09:00:00.000Z"
}
}Errors
Errors use one shape: { error, type, code, param?, details? }. The ones you are most likely to see here:
| 400 | invalid_request_error | A parameter or body field is missing or invalid. param names it. |
| 401 | authentication_error | The API key is missing, revoked or expired. |
| 403 | permission_error | The key is scoped to other profiles or has this resource group disabled. |
| 404 | not_found | Nothing with that id exists in your workspace. |
| 429 | rate_limit_error | Too many requests this minute. Wait for Retry-After seconds. |
Every code is listed in Errors.
More in Ad Campaigns
GETList adsGETList Google Ads recommendationsPOSTApply Google Ads recommendationsPOSTDismiss Google Ads recommendationsGETList portfolio bid strategiesPOSTCreate portfolio bid strategyPATCHUpdate portfolio bid strategyGETList shared budgetsPOSTCreate a shared budgetGETList Search keywordsPOSTAdd Search ad-group keywordsPATCHPause or enable a Search keywordDELRemove a Search keywordGETList campaignsPOSTCreate a standalone campaignPUTPause or resume a campaignGETRead a campaign's ad schedule (dayparting)PUTReplace a campaign's ad schedule (dayparting)GETRead a campaign's current biddingGETGet live campaign detailsPUTUpdate a campaignDELDelete a campaignGETList campaign-level negative keywordsPUTReplace campaign-level negative keywordsPOSTPause or resume many campaignsPOSTDuplicate a campaignGETRead a Google campaign's device, location, excluded location, and language targetingPUTEdit a Google campaign's device, location, excluded location, or language targetingGETList ad setsPOSTCreate a standalone ad groupPOSTDuplicate an ad setPOSTDuplicate an adGETGet live ad-set detailsPUTUpdate an ad setDELDelete an ad setGETRead a Reddit ad group's targeting and schedulePUTPause or resume a single ad setGETGet campaign treeGETGet daily account metricsGETGet ad detailsPUTUpdate adDELCancel an adPUTPause or resume a single adGETList campaign assetsPOSTAttach campaign assetsPUTUpdate campaign assetsDELRemove campaign assetsGETList ad-group assetsPOSTAttach ad-group assetsPUTUpdate ad-group assetsDELRemove ad-group assetsGETReview status of each creative in a TikTok Smart+ adGETList ads that need attentionPOSTDismiss an ads alertGETReview status of every TikTok Smart+ ad of an advertiserGETList campaign negative listsPUTReplace campaign negative listsPOSTBoost post as adGETList Performance Max asset groupsPOSTCreate a Performance Max asset groupGETGet a Performance Max asset groupPATCHUpdate a Performance Max asset groupDELRemove a Performance Max asset groupPOSTLink or unlink asset group assetsPUTReplace an asset group's listing-group treePOSTCreate standalone adGETGet campaign conversion goalsPATCHUpdate campaign conversion goals