Ads · Ad Campaigns
Updates an ad set.
https://api.pozy.ai/v1/ads/ad-sets/{adSetId}Guides: Meta Ads, TikTok Ads, LinkedIn Ads
Request
Send your API key as Authorization: Bearer pz_live_.... Read-only keys cannot call it. Keys with the ads resource group disabled get 403 resource_group_disabled. Authentication
Path parameters
| Name | Type | Notes |
|---|---|---|
adSetIdrequired | string |
Request body
application/json, required
platformstringrequiredOne of
facebook,instagram,tiktok,linkedin,pinterest,google,twitter,openai,reddit.budgetobjectamountnumbertypestringOne of
daily,lifetime.
statusstringOne of
active,paused.namestringUp to 255 characters.
bidStrategyobjectdsaBeneficiarystring1 to 100 characters.
dsaPayorstring1 to 100 characters.
regionalRegulatedCategoriesarray of stringregionalRegulationIdentitiesmap of string or integersmartTargetingobjectaudiencebooleaninterestsBehaviorsboolean
placementsobjectCan be null.
8 child fields
publisherPlatformsarray of stringEach item: one of
facebook,instagram,threads,messenger,audience_network,whatsapp.facebookPositionsarray of stringEach item: one of
feed,right_hand_column,marketplace,story,search,instream_video,facebook_reels,facebook_reels_overlay,profile_feed,notification.instagramPositionsarray of stringEach item: one of
stream,story,explore,explore_home,reels,profile_feed,ig_search,profile_reels.messengerPositionsarray of stringEach item: one of
messenger_home,sponsored_messages,story.audienceNetworkPositionsarray of stringEach item: one of
classic,rewarded_video.threadsPositionsarray of stringEach item: one of
threads_stream.whatsappPositionsarray of stringEach item: one of
status.devicePlatformsarray of stringEach item: one of
mobile,desktop.
startDatestringendDatestringCan be null.
targetingobject31 child fields
userOsarray of stringAt least 1 item.
userDevicearray of stringAt least 1 item.
countriesarray of stringregionsarray of string or objectOne of:
string
Option 2 (2 fields)
keystringrequirednamestring
citiesarray of string or objectOne of:
string
Option 2 (4 fields)
keystringrequirednamestringradiusnumberdistanceUnitstringOne of
mile,kilometer.
zipsarray of object2 child fields
keystringrequirednamestring
metrosarray of object2 child fields
keystringrequirednamestring
countryGroupsarray of stringEach item: one of
africa,asia,europe,north_america,south_america,oceania,central_america,caribbean,eea,euro_area,nafta,mercosur,afta,apec,gcc,cisfta,emerging_markets,itunes_app_store,android_free_store,android_paid_store.customLocationsarray of object6 child fields
latitudenumberrequired-90 to 90.
longitudenumberrequired-180 to 180.
radiusnumberrequireddistanceUnitstringrequiredOne of
mile,kilometer.namestringaddressstring
excludedLocationsobject8 child fields
countriesarray of stringcountryGroupsarray of stringEach item: one of
africa,asia,europe,north_america,south_america,oceania,central_america,caribbean,eea,euro_area,nafta,mercosur,afta,apec,gcc,cisfta,emerging_markets,itunes_app_store,android_free_store,android_paid_store.regionsarray of object2 child fields
keystringrequirednamestring
citiesarray of object3 child fields
keystringrequiredradiusnumberdistanceUnitstringOne of
mile,kilometer.
zipsarray of object2 child fields
keystringrequirednamestring
placesarray of object1 child field
keystringrequired
neighborhoodsarray of object1 child field
keystringrequired
customLocationsarray of object6 child fields
latitudenumberrequired-90 to 90.
longitudenumberrequired-180 to 180.
radiusnumberrequireddistanceUnitstringrequiredOne of
mile,kilometer.namestringaddressstring
ageMininteger13 to 100.
ageMaxinteger13 to 100.
genderstringOne of
all,male,female.incomeTierstringOne of
top_5,top_10,top_10_25,top_25_50.languagesarray of stringinterestsarray of object2 child fields
idstringrequirednamestring
behaviorsarray of object2 child fields
idstringrequirednamestring
workPositionsarray of object2 child fields
idstringrequirednamestring
workEmployersarray of object2 child fields
idstringrequirednamestring
workIndustriesarray of object2 child fields
idstringrequirednamestring
industriesarray of stringcompanySizesarray of stringsenioritiesarray of stringjobFunctionsarray of stringskillsarray of stringaudienceIncludearray of stringaudienceExcludearray of stringcommunitiesarray of stringexcludedCommunitiesarray of stringconversationKeywordsarray of stringexcludedConversationKeywordsarray of string
bidAmountnumberroasAverageFloornumbervalueRuleSetIdstringMatches
^\d+$.valueRulesAppliedbooleanplatformSpecificDataobject9 child fields
optimizationGoalstringbillingEventstringstartDatestringendDatestringdailyMinSpendTargetnumberlifetimeMinSpendTargetnumbercustomerLifecycleobject3 child fields
strategystringrequiredOne of
all_customers,new_customers,new_customers_excluding_engaged.existingCustomerAudienceIdsarray of stringengagedAudienceIdsarray of string
adScheduleobject4 child fields
dayOfWeekstringrequiredOne of
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY.startHourintegerrequired0 to 23.
endHourintegerrequired1 to 24.
timezoneTypestringOne of
USER,ADVERTISER. DefaultUSER.
promotedObjectobject11 child fields
pixelIdstringcustomEventTypestringcustomEventStrstringpageIdstringapplicationIdstringobjectStoreUrlstringcustomConversionIdstringproductCatalogIdstringproductSetIdstringofflineConversionDataSetIdstringwhatsappPhoneNumberstring
Example
curl -X PUT "https://api.pozy.ai/v1/ads/ad-sets/60484b408d44e7c2492bfec5" \
-H "Authorization: Bearer $POZY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "facebook"
}'const res = await fetch("https://api.pozy.ai/v1/ads/ad-sets/60484b408d44e7c2492bfec5", {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.POZY_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
platform: "facebook"
}),
});
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.put(
"https://api.pozy.ai/v1/ads/ad-sets/60484b408d44e7c2492bfec5",
headers={"Authorization": f"Bearer {os.environ['POZY_API_KEY']}"},
json={
"platform": "facebook",
},
timeout=30,
)
resp.raise_for_status()
print(resp.json())Response
200 on success
budgetobjectamountnumberrequiredtypestringrequiredOne of
daily,lifetime.
budgetLevelstringOne of
adset.statusstringOne of
active,paused.platformAdSetStatusstringCan be null.
platformCampaignStatusstringCan be null.
statusReadAtstring (date-time)Can be null.
statusUpdatedintegerOne of
0,1.statusSkippedintegerOne of
0,1.statusSkippedReasonsarray of stringbidStrategystringOne of
LOWEST_COST_WITHOUT_CAP,LOWEST_COST_WITH_BID_CAP,COST_CAP,LOWEST_COST_WITH_MIN_ROAS.bidAmountnumberCan be null.
roasAverageFloornumberCan be null.
platformSpecificDataobjecttargetingobjectstartDatestringendDatestringCan be null.
{
"budget": {
"amount": 12.5,
"type": "daily"
},
"budgetLevel": "adset",
"status": "active",
"platformAdSetStatus": "instagram",
"platformCampaignStatus": "instagram",
"statusReadAt": "2026-10-02T09:00:00.000Z",
"statusUpdated": 0,
"statusSkipped": 0,
"statusSkippedReasons": [
"active"
],
"bidStrategy": "LOWEST_COST_WITHOUT_CAP",
"bidAmount": 12.5,
"roasAverageFloor": 12.5,
"platformSpecificData": {},
"targeting": {},
"startDate": "string",
"endDate": "string"
}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 read-only, 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.