Create/update returns
422 if a value does not match the format or is not in the API allowlist. Do not guess country names or free-form locale strings.Allowed values
Country codes
Used infilters.geolocation.countries and pages.offers[].segmentation.country.
Browser language codes
Used infilters.browser_language.languages.
State and city names
Used infilters.state.states and filters.city.cities.
Free-text GeoIP place names — not ISO codes.
URL query params (filters.query)
Cloakup matches URL query parameters against filters.query.params. Each key maps to an array of allowed values (not a plain string).
Wildcard
Use"*" as the value to accept any value for that param key:
utm_source exists in the URL — the actual value does not matter.
Empty params: {} means no URL param filtering.
Required filter keys
On create/update, these top-level keys underfilters must be present:
geolocation, referer, query, domain, browser, browser_language, isp, os, user_agent, blacklist
Optional keys (defaults apply): ad-network flags, deny_always, bots, proxy, adspy, cloakup_ai, state, city, network_type, device, whitelist.
Full JSON Schema: Schemas → CampaignFilters.