{"openapi":"3.1.0","info":{"title":"Paz.ai Public API","description":"Machine-to-machine API for paz. Authenticate every request with an `X-API-Key` header.\n\n**Getting your API key**\n\n1. Sign in to the paz console.\n2. Open **Settings → API Keys**.\n3. Click **Create API key**, give it a name (e.g. \"Cloudflare Worker\"), and pick the scopes the key should grant.\n4. Copy the full key — it starts with `paz_live_` — and store it somewhere safe. **It is shown once, never again.** If you lose it, revoke it and create a new one.\n\n**Using it**\n\nSend the key as the `X-API-Key` request header on every call:\n\n```sh\ncurl -H \"X-API-Key: paz_live_...\" https://api.paz.ai/v1/me\n```\n\nOr click **Authorize** at the top of this page, paste the key, and use **Try it out** on any endpoint below.\n\nErrors return a closed-union `error.code` plus a human-readable `message`.","version":"319fab44ce8751390ef5aac0161d1861d9937978","x-api-versioning":{"scheme":"major version in URL path","currentVersion":"v1","deprecationPolicy":"https://www.paz.ai/developers/api-versioning"}},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Long-lived machine credential. Format: `paz_live_<keyId20>_<secret48>_<crc4>`. Issued from the paz console Settings → API Keys page. Treat like a password — never commit, never log."}},"schemas":{"PazApiErrorResponse":{"type":"object","additionalProperties":false,"required":["success","error","meta"],"properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"meta":{"type":"object","additionalProperties":false,"required":["requestId"],"properties":{"requestId":{"type":"string"}}}}}},"responses":{"PazApiAuthenticationErrorResponse":{"description":"The X-API-Key credential is missing, malformed, invalid, revoked, or expired.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PazApiErrorResponse"}}}},"PazApiRateLimitErrorResponse":{"description":"The caller exceeded an applicable request limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PazApiErrorResponse"}}}}}},"paths":{"/v1/me":{"get":{"operationId":"getCurrentApiKey","summary":"Introspect the calling API key","tags":["Introspection"],"description":"Returns the metadata for the API key that authenticated this request. Useful for confirming the key's scopes, organization, and expiration without needing to load the console UI.","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"expiresAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"restrictions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["RESOURCE_SCOPE"]},"resourceType":{"anyOf":[{"type":"string"},{"type":"null"}]},"resourceId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type","resourceType","resourceId"],"additionalProperties":false}}},"required":["id","name","organizationId","scopes","createdAt","expiresAt","restrictions"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PazApiErrorResponse"}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"}},"required":["requestId"],"additionalProperties":false}},"required":["success","error","meta"],"additionalProperties":false}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PazApiErrorResponse"}}}}}}},"/v1/monitoring/config":{"get":{"operationId":"monitoring_get_config","summary":"Get the AI monitoring configuration","tags":["Monitoring"],"description":"Returns the calling organization's monitoring configuration: schedule, country, onboarding progress, and last-run timestamps. One row per organization.","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"config":{"type":"object","properties":{"id":{"type":"string"},"schedule":{"type":"string","description":"Monitoring cadence — \"manual\" or \"daily\"."},"monitoringCountryCode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO alpha-2 country code used for engine localization."},"onboardingStep":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Setup progress: brand-discovery | personas | products | queries | completed. Null = legacy config that pre-dates this column."},"lastCheckAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}],"description":"When the last ranking-check run completed."},"lastAwarenessRunAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","schedule","monitoringCountryCode","onboardingStep","lastCheckAt","lastAwarenessRunAt","createdAt"],"additionalProperties":false}},"required":["config"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/monitoring/products":{"get":{"operationId":"monitoring_get_products","summary":"List tracked products","tags":["Monitoring"],"description":"Returns the products this organization is monitoring (max 5). Sourced either from your catalog or discovered by AI during onboarding.","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"price":{"anyOf":[{"type":"string"},{"type":"null"}]},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Product image URL (catalog source) or null."},"source":{"type":"string","enum":["catalog","gemini"],"description":"\"catalog\" = imported from your product catalog; \"gemini\" = AI-discovered during onboarding."},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","title","description","category","price","imageUrl","source","createdAt"],"additionalProperties":false}}},"required":["products"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/monitoring/queries":{"get":{"operationId":"monitoring_get_queries","summary":"List tracked queries","tags":["Monitoring"],"description":"Returns the natural-language queries this organization runs against AI engines to track brand visibility. Each query may optionally be bound to a tracked product and/or a persona (personaId is null for persona-optional queries).","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"queries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"productId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The tracked product this query is associated with."},"personaId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The persona id under which this query is asked, or null for a persona-optional query. Personas live inline on the config (not yet exposed as their own entity)."},"text":{"type":"string","description":"The natural-language query as run."},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional plan-tier scoping. Null = query active for all tiers."},"active":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","productId","personaId","text","tier","active","createdAt"],"additionalProperties":false}}},"required":["queries"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/monitoring/results":{"get":{"operationId":"monitoring_get_results","summary":"List AI monitoring ranking-check results","tags":["Monitoring"],"description":"Returns ranking-check results for the calling organization, with nested appearances. Filterable by tracked query (`queryId`) or AI engine (`engine`). Cursor + limit pagination — pass the `nextCursor` from the previous response to continue.","parameters":[{"schema":{"type":"string"},"in":"query","name":"queryId","required":false,"description":"Narrow results to a specific tracked query (id from /v1/monitoring/queries)."},{"schema":{"type":"string","enum":["google_ai_mode","perplexity","chatgpt","google_ai_overviews"]},"in":"query","name":"engine","required":false,"description":"Narrow results to one AI engine. Omit to return results across all engines."},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false,"description":"Opaque pagination cursor. Omit for the first page; pass the `nextCursor` from the previous response to fetch the next page."},{"schema":{"default":20,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Max results to return per page. 1-100, default 20."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"queryId":{"anyOf":[{"type":"string"},{"type":"null"}]},"engine":{"type":"string","enum":["google_ai_mode","perplexity","chatgpt","google_ai_overviews"]},"brandFound":{"type":"boolean"},"brandPosition":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"queryVisibilityScore":{"anyOf":[{"type":"number"},{"type":"null"}]},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"appearances":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["product_card","product_mention","brand_mention","source_citation","sponsored_product_card"]},"position":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"brand":{"anyOf":[{"type":"string"},{"type":"null"}]},"domain":{"anyOf":[{"type":"string"},{"type":"null"}]},"price":{"anyOf":[{"type":"string"},{"type":"null"}]},"snippet":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"isBrandMatch":{"type":"boolean"},"isReseller":{"type":"boolean"}},"required":["type","position","name","brand","domain","price","snippet","link","isBrandMatch","isReseller"],"additionalProperties":false}}},"required":["id","queryId","engine","brandFound","brandPosition","queryVisibilityScore","capturedAt","appearances"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["results","nextCursor"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/monitoring/results/{resultId}":{"get":{"operationId":"monitoring_get_result","summary":"Get one ranking-check result","tags":["Monitoring"],"description":"Returns a single ranking-check result by id, including its nested appearances and per-appearance-type visibility-score breakdown.","parameters":[{"schema":{"type":"string"},"in":"path","name":"resultId","required":true,"description":"The ranking-check result id."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"result":{"type":"object","properties":{"id":{"type":"string"},"queryId":{"anyOf":[{"type":"string"},{"type":"null"}]},"engine":{"type":"string","enum":["google_ai_mode","perplexity","chatgpt","google_ai_overviews"]},"brandFound":{"type":"boolean"},"brandPosition":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"queryVisibilityScore":{"anyOf":[{"type":"number"},{"type":"null"}]},"queryVisibilityScoreBreakdown":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"appearanceType":{"type":"string","enum":["product_card","product_mention","brand_mention","source_citation"]},"rawScore":{"anyOf":[{"type":"number"},{"type":"null"}]},"weight":{"anyOf":[{"type":"number"},{"type":"null"}]},"weightedScore":{"anyOf":[{"type":"number"},{"type":"null"}]},"position":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["appearanceType","rawScore","weight","weightedScore","position"],"additionalProperties":false}},{"type":"null"}],"description":"Per-appearance-type weighting breakdown. Each entry shows how one appearance type contributed to this result's visibility score."},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"appearances":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["product_card","product_mention","brand_mention","source_citation","sponsored_product_card"]},"position":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string"},"brand":{"anyOf":[{"type":"string"},{"type":"null"}]},"domain":{"anyOf":[{"type":"string"},{"type":"null"}]},"price":{"anyOf":[{"type":"string"},{"type":"null"}]},"snippet":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"isBrandMatch":{"type":"boolean"},"isReseller":{"type":"boolean"}},"required":["type","position","name","brand","domain","price","snippet","link","isBrandMatch","isReseller"],"additionalProperties":false}}},"required":["id","queryId","engine","brandFound","brandPosition","queryVisibilityScore","queryVisibilityScoreBreakdown","capturedAt","appearances"],"additionalProperties":false}},"required":["result"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/monitoring/visibility-scores":{"get":{"operationId":"monitoring_get_visibility_scores","summary":"Time-series of per-query visibility scores","tags":["Monitoring"],"description":"Returns historical visibility-score snapshots — one row per ranking-check run, with aggregate and per-engine scores plus a per-product breakdown.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"from","required":false,"description":"ISO 8601 lower bound on snapshot timestamp (inclusive). Omit for unbounded."},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"to","required":false,"description":"ISO 8601 upper bound (inclusive). Omit for unbounded."},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false,"description":"Opaque pagination cursor. Omit for the first page; pass `nextCursor` to continue."},{"schema":{"default":30,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false,"description":"Max snapshots per page. 1-100, default 30."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"snapshots":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"score":{"type":"number","description":"Aggregate visibility score across all engines (0-100)."},"scoreGoogleAiMode":{"anyOf":[{"type":"number"},{"type":"null"}]},"scorePerplexity":{"anyOf":[{"type":"number"},{"type":"null"}]},"scoreChatgpt":{"anyOf":[{"type":"number"},{"type":"null"}]},"productBreakdown":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","description":"Tracked product id (see /v1/monitoring/products)."},"score":{"type":"number","description":"Aggregate visibility score for this product (0-100)."},"scoreGoogleAiMode":{"anyOf":[{"type":"number"},{"type":"null"}]},"scorePerplexity":{"anyOf":[{"type":"number"},{"type":"null"}]},"scoreChatgpt":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["productId","score","scoreGoogleAiMode","scorePerplexity","scoreChatgpt"],"additionalProperties":false},"description":"Per-product visibility scores. One entry per tracked product (max 5 per org)."},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","score","scoreGoogleAiMode","scorePerplexity","scoreChatgpt","productBreakdown","capturedAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["snapshots","nextCursor"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/monitoring/competitive-scores":{"get":{"operationId":"monitoring_get_competitive_scores","summary":"Time-series of org-level competitive scores","tags":["Monitoring"],"description":"Returns daily competitive-score snapshots: overall Level-3 score, mention rate, average position across each AI engine, plus per-product and per-competitor breakdowns.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"from","required":false,"description":"ISO 8601 lower bound on `date` (inclusive)."},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"to","required":false,"description":"ISO 8601 upper bound (inclusive)."},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"default":30,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"snapshots":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"date":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"The day this snapshot represents."},"overallScore":{"type":"number","description":"Level-3 aggregate score across all queries and engines (0-100)."},"mentionRate":{"type":"number","description":"Fraction of queries that mentioned the brand (0-1)."},"avgPosition":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgPositionGoogleAiMode":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgPositionPerplexity":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgPositionChatgpt":{"anyOf":[{"type":"number"},{"type":"null"}]},"productScores":{"type":"array","items":{"type":"object","properties":{"productId":{"type":"string","description":"Tracked product id (see /v1/monitoring/products)."},"score":{"type":"number","description":"Level-3 score for this product (0-100)."}},"required":["productId","score"],"additionalProperties":false},"description":"Per-product Level-3 score breakdown. One entry per tracked product."},"competitorScores":{"type":"array","items":{"type":"object","properties":{"competitor":{"type":"string","description":"Normalized competitor name (matches CompetitorProfile.normalizedName)."},"score":{"type":"number","description":"Average competitor position score."}},"required":["competitor","score"],"additionalProperties":false},"description":"Per-competitor score breakdown. Each entry is keyed on CompetitorProfile.normalizedName."}},"required":["id","date","overallScore","mentionRate","avgPosition","avgPositionGoogleAiMode","avgPositionPerplexity","avgPositionChatgpt","productScores","competitorScores"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["snapshots","nextCursor"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/monitoring/competitors":{"get":{"operationId":"monitoring_get_competitors","summary":"List competitor profiles","tags":["Monitoring"],"description":"Returns the brands/sources that appeared alongside this organization's brand in ranking-check results. Sorted by appearance count descending. Filterable by type and limit.","parameters":[{"schema":{"type":"string"},"in":"query","name":"type","required":false,"description":"Filter by profile type (default: all). Most callers want type=\"competitor\"."},{"schema":{"default":50,"type":"integer","minimum":1,"maximum":200},"in":"query","name":"limit","required":false,"description":"Max competitors to return. 1-200, default 50."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"competitors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"normalizedName":{"type":"string","description":"Lower-cased, deduplicated form used to key per-competitor scoring in competitive-scores."},"domain":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"appearances":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Number of ranking-check appearances across all runs."},"totalQueries":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"avgPosition":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":{"type":"string","description":"Profile type — typically \"competitor\". Other values reserved for future use."}},"required":["id","name","normalizedName","domain","logoUrl","appearances","totalQueries","avgPosition","type"],"additionalProperties":false}}},"required":["competitors"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/monitoring/competitors/{profileId}":{"get":{"operationId":"monitoring_get_competitor","summary":"Get one competitor profile","tags":["Monitoring"],"description":"Returns a single competitor profile by id, including the full enrichment payload (price range, rating, description, industry categories, location, social links).","parameters":[{"schema":{"type":"string"},"in":"path","name":"profileId","required":true,"description":"The competitor profile id."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"competitor":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"normalizedName":{"type":"string"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"appearances":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalQueries":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"avgPosition":{"anyOf":[{"type":"number"},{"type":"null"}]},"type":{"type":"string"},"priceMin":{"anyOf":[{"type":"number"},{"type":"null"}]},"priceMax":{"anyOf":[{"type":"number"},{"type":"null"}]},"priceAvg":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgRating":{"anyOf":[{"type":"number"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"industry":{"anyOf":[{"type":"string"},{"type":"null"}]},"industries":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"emoji":{"type":"string"},"score":{"type":"number"}},"required":["name"],"additionalProperties":false}},{"type":"null"}],"description":"Inferred industry categories with confidence scores."},"location":{"anyOf":[{"type":"object","properties":{"city":{"type":"string"},"country":{"type":"string"},"countryCode":{"type":"string"}},"additionalProperties":false},{"type":"null"}]},"socialLinks":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name","url"],"additionalProperties":false}},{"type":"null"}]},"enrichedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","normalizedName","domain","logoUrl","appearances","totalQueries","avgPosition","type","priceMin","priceMax","priceAvg","avgRating","description","longDescription","industry","industries","location","socialLinks","enrichedAt","createdAt"],"additionalProperties":false}},"required":["competitor"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/monitoring/citations":{"get":{"operationId":"monitoring_get_citations","summary":"Time-series of citation snapshots","tags":["Monitoring"],"description":"Returns historical citation snapshots — one row per ranking-check run, with total citation count, per-domain breakdown, and per-category totals.","parameters":[{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"from","required":false,"description":"ISO 8601 lower bound (inclusive)."},{"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"in":"query","name":"to","required":false,"description":"ISO 8601 upper bound (inclusive)."},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"default":30,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"limit","required":false}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"snapshots":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"totalCitations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"domains":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"sourceType":{"type":"string","enum":["brand_owned","competitor_site","editorial","retailer","social_community","review_site","other"]},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"engines":{"type":"object","properties":{"google_ai_mode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"perplexity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chatgpt":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"additionalProperties":false,"description":"Per-engine citation counts for this domain. Each key is optional — engines with zero citations are omitted."}},"required":["domain","sourceType","count","engines"],"additionalProperties":false},"description":"Per-domain breakdown of citations in this snapshot."},"categoryTotals":{"type":"object","properties":{"brand_owned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"competitor_site":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"editorial":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"retailer":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"social_community":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"review_site":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"other":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"additionalProperties":false,"description":"Total citation count per source-type category. Each key optional — categories with zero citations are omitted."},"capturedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","totalCitations","domains","categoryTotals","capturedAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["snapshots","nextCursor"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs":{"get":{"operationId":"catalog_list_catalogs","summary":"List catalogs","tags":["Catalog"],"description":"Returns the calling organization's product catalogs. Offset pagination — pass `page` and `pageSize`; the envelope includes `total` and `totalPages`.","parameters":[{"schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"page","required":false,"description":"1-based page number. Default 1."},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"pageSize","required":false,"description":"Catalogs per page. 1-100, default 25."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"catalogs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"source":{"type":"string","description":"Where the catalog was imported from (e.g. \"shopify\", \"csv\")."},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 4217 catalog currency code."},"weightUnit":{"anyOf":[{"type":"string"},{"type":"null"}]},"storeCountry":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO alpha-2 store country code."},"targetCountries":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"ISO alpha-2 codes the catalog targets."},"syncSchedule":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cron expression for scheduled syncs; null = manual only."},"lastSyncAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"lastOptimizationAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","source","description","enabled","currency","weightUnit","storeCountry","targetCountries","syncSchedule","lastSyncAt","lastOptimizationAt","createdAt","updatedAt"],"additionalProperties":false}},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pageSize":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["catalogs","page","pageSize","total","totalPages"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}":{"get":{"operationId":"catalog_get_catalog","summary":"Get a catalog","tags":["Catalog"],"description":"Returns one catalog owned by the calling organization. Returns 404 if the catalog does not exist or belongs to another organization.","parameters":[{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"catalog":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"source":{"type":"string","description":"Where the catalog was imported from (e.g. \"shopify\", \"csv\")."},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 4217 catalog currency code."},"weightUnit":{"anyOf":[{"type":"string"},{"type":"null"}]},"storeCountry":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO alpha-2 store country code."},"targetCountries":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"ISO alpha-2 codes the catalog targets."},"syncSchedule":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cron expression for scheduled syncs; null = manual only."},"lastSyncAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"lastOptimizationAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","source","description","enabled","currency","weightUnit","storeCountry","targetCountries","syncSchedule","lastSyncAt","lastOptimizationAt","createdAt","updatedAt"],"additionalProperties":false}},"required":["catalog"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}},"put":{"operationId":"catalog_update_catalog","summary":"Update a catalog's config","tags":["Catalog"],"description":"Full-replace edit of a catalog's mutable configuration (name, description, enabled, sync schedule, currency, weight unit, store country, target countries). Every field is required in the body; pass null to clear a nullable field. Returns 404 if the catalog does not exist or belongs to another organization. Does not change the catalog's source or product data.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Catalog display name. Required, non-empty.","example":"Summer Collection"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Free-text description; null to clear."},"enabled":{"type":"boolean","description":"Whether the catalog is active.","example":true},"syncSchedule":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cron expression for scheduled syncs; null = manual only."},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 4217 catalog currency code; null to clear.","example":"USD"},"weightUnit":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Weight unit; null to clear."},"storeCountry":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO alpha-2 store country code; null to clear."},"targetCountries":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"ISO alpha-2 codes the catalog targets; null to clear.","example":["US","CA"]}},"required":["name","description","enabled","syncSchedule","currency","weightUnit","storeCountry","targetCountries"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"catalog":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"source":{"type":"string","description":"Where the catalog was imported from (e.g. \"shopify\", \"csv\")."},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 4217 catalog currency code."},"weightUnit":{"anyOf":[{"type":"string"},{"type":"null"}]},"storeCountry":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO alpha-2 store country code."},"targetCountries":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"ISO alpha-2 codes the catalog targets."},"syncSchedule":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cron expression for scheduled syncs; null = manual only."},"lastSyncAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"lastOptimizationAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","name","source","description","enabled","currency","weightUnit","storeCountry","targetCountries","syncSchedule","lastSyncAt","lastOptimizationAt","createdAt","updatedAt"],"additionalProperties":false}},"required":["catalog"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}/products":{"get":{"operationId":"catalog_list_products","summary":"List products in a catalog","tags":["Catalog"],"description":"Returns products in a catalog with fully resolved attributes (transform + inheritance applied) as a flat key→value map. One row per product including variants. Offset pagination; filters: search, readiness, hasTransformations, eligibleSearch/Checkout/Ads, variants.","parameters":[{"schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"page","required":false,"description":"1-based page number. Default 1."},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"pageSize","required":false,"description":"Products per page. 1-100, default 25."},{"schema":{"type":"string"},"in":"query","name":"search","required":false,"description":"Case-insensitive match on the merchant product id (SKU) or the product title."},{"schema":{"type":"string","enum":["ready","not_ready","pending"]},"in":"query","name":"readiness","required":false,"description":"AI-readiness filter from the baseline score: ready (all engines), not_ready (scored but not ready for all), pending (no completed score)."},{"schema":{"anyOf":[{"type":"boolean"}]},"in":"query","name":"hasTransformations","required":false,"description":"Filter to products that do (true) or do not (false) have transformations."},{"schema":{"anyOf":[{"type":"boolean"}]},"in":"query","name":"eligibleSearch","required":false,"description":"Filter by search-channel eligibility (true/false)."},{"schema":{"anyOf":[{"type":"boolean"}]},"in":"query","name":"eligibleCheckout","required":false,"description":"Filter by checkout-channel eligibility (true/false)."},{"schema":{"anyOf":[{"type":"boolean"}]},"in":"query","name":"eligibleAds","required":false,"description":"Filter by ads-channel eligibility (true/false)."},{"schema":{"default":"include","type":"string","enum":["include","exclude"]},"in":"query","name":"variants","required":false,"description":"include (default) returns parents + variants; exclude drops variant rows."},{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"merchantProductId":{"type":"string","description":"The merchant's own product/variant id from the source feed."},"isVariant":{"type":"boolean"},"itemGroupId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Groups variants of the same product; null for standalone."},"hasTransformations":{"type":"boolean"},"eligibility":{"type":"object","properties":{"search":{"type":"boolean"},"checkout":{"type":"boolean"},"ads":{"type":"boolean"}},"required":["search","checkout","ads"],"additionalProperties":false},"attributes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Resolved product attributes as a flat key→value map (transform + inheritance applied)."},"lastSyncedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","merchantProductId","isVariant","itemGroupId","hasTransformations","eligibility","attributes","lastSyncedAt","createdAt","updatedAt"],"additionalProperties":false}},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pageSize":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["products","page","pageSize","total","totalPages"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}/products/{productId}":{"get":{"operationId":"catalog_get_product","summary":"Get a product","tags":["Catalog"],"description":"Returns one product in a catalog with fully resolved attributes as a flat key→value map. Returns 404 if the product does not exist or belongs to another catalog/organization.","parameters":[{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."},{"schema":{"type":"string"},"in":"path","name":"productId","required":true,"description":"Product id (from /v1/catalogs/{catalogId}/products)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"product":{"type":"object","properties":{"id":{"type":"string"},"merchantProductId":{"type":"string","description":"The merchant's own product/variant id from the source feed."},"isVariant":{"type":"boolean"},"itemGroupId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Groups variants of the same product; null for standalone."},"hasTransformations":{"type":"boolean"},"eligibility":{"type":"object","properties":{"search":{"type":"boolean"},"checkout":{"type":"boolean"},"ads":{"type":"boolean"}},"required":["search","checkout","ads"],"additionalProperties":false},"attributes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Resolved product attributes as a flat key→value map (transform + inheritance applied)."},"lastSyncedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"updatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","merchantProductId","isVariant","itemGroupId","hasTransformations","eligibility","attributes","lastSyncedAt","createdAt","updatedAt"],"additionalProperties":false}},"required":["product"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}/products/{productId}/settings":{"put":{"operationId":"catalog_update_product_settings","summary":"Update a product's feed flags","tags":["Catalog"],"description":"Full-replace edit of a product's feed-eligibility flags (search, checkout, ads eligibility, and export inclusion). All four flags are required in the body. Returns 404 if the product does not exist or belongs to another catalog/organization. Does not change product attributes.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"searchEligible":{"type":"boolean","description":"Whether the product is eligible for the AI search channel.","example":true},"checkoutEligible":{"type":"boolean","description":"Whether the product is eligible for the checkout channel.","example":false},"adsEligible":{"type":"boolean","description":"Whether the product is eligible for the ads channel.","example":true},"exportable":{"type":"boolean","description":"Whether the product is included in feed exports.","example":true}},"required":["searchEligible","checkoutEligible","adsEligible","exportable"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."},{"schema":{"type":"string"},"in":"path","name":"productId","required":true,"description":"Product id (from /v1/catalogs/{catalogId}/products)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"product":{"type":"object","properties":{"id":{"type":"string","example":"prod_123"},"merchantProductId":{"type":"string","description":"The merchant's own product/variant id from the source feed.","example":"SKU-123"},"eligibility":{"type":"object","properties":{"search":{"type":"boolean","example":true},"checkout":{"type":"boolean","example":false},"ads":{"type":"boolean","example":true}},"required":["search","checkout","ads"],"additionalProperties":false},"exportable":{"type":"boolean","description":"Whether the product is included in feed exports.","example":true}},"required":["id","merchantProductId","eligibility","exportable"],"additionalProperties":false}},"required":["product"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}/products/{productId}/score":{"get":{"operationId":"catalog_get_product_score","summary":"Get a product's AI-readiness score","tags":["Catalog"],"description":"Returns the product's validation score: quality tiers, per-engine (ChatGPT / Gemini) readiness status + blocker counts, and combined readiness flags. Returns 404 if the product has no score yet or belongs to another catalog/organization.","parameters":[{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."},{"schema":{"type":"string"},"in":"path","name":"productId","required":true,"description":"Product id (from /v1/catalogs/{catalogId}/products)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"score":{"type":"object","properties":{"transformed":{"type":"boolean"},"validationState":{"type":"string","enum":["pending","partial","complete","failed"],"description":"Validation lifecycle state for this product's score.","example":"complete"},"score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"example":82},"tier1Score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"tier2Score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"readiness":{"type":"object","properties":{"chatgpt":{"type":"object","properties":{"status":{"type":"string","enum":["ready","not_ready","pending","failed"],"description":"Per-engine AI-readiness status.","example":"ready"},"blockers":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Count of blocking validation issues for this engine.","example":0}},"required":["status","blockers"],"additionalProperties":false},"gemini":{"type":"object","properties":{"status":{"type":"string","enum":["ready","not_ready","pending","failed"],"description":"Per-engine AI-readiness status.","example":"ready"},"blockers":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Count of blocking validation issues for this engine.","example":0}},"required":["status","blockers"],"additionalProperties":false}},"required":["chatgpt","gemini"],"additionalProperties":false},"readyForAll":{"type":"boolean"},"readyForAny":{"type":"boolean"},"calculatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["transformed","validationState","score","tier1Score","tier2Score","readiness","readyForAll","readyForAny","calculatedAt"],"additionalProperties":false}},"required":["score"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}/score":{"get":{"operationId":"catalog_get_score","summary":"Get a catalog's aggregate AI-readiness score","tags":["Catalog"],"description":"Returns the catalog-level aggregate score and readiness roll-up: overall score, total/scored product counts, per-engine ready counts, and combined readiness counts. Returns 404 if the catalog has not been scored yet.","parameters":[{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"score":{"type":"object","properties":{"score":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"totalProducts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"scoredProducts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"chatgptReady":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"geminiReady":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"readyForAll":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"readyForAny":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"transformed":{"type":"boolean"},"calculatedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["score","totalProducts","scoredProducts","chatgptReady","geminiReady","readyForAll","readyForAny","transformed","calculatedAt"],"additionalProperties":false}},"required":["score"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}/transformations":{"get":{"operationId":"catalog_list_transformations","summary":"List product field transformations","tags":["Catalog"],"description":"Returns AI-proposed (and approved/rejected) product field changes for a catalog — original vs proposed value per attribute. Filterable by status, attributeKey, and definitionId. Offset pagination with total + totalPages.","parameters":[{"schema":{"type":"string","enum":["pending","approved","rejected"]},"in":"query","name":"status","required":false,"description":"Filter by transform status. Omit to return all statuses (pending, approved, rejected)."},{"schema":{"type":"string"},"in":"query","name":"attributeKey","required":false,"description":"Filter to transforms of a single attribute (e.g. 'title', 'description')."},{"schema":{"type":"string"},"in":"query","name":"definitionId","required":false,"description":"Filter to transforms produced by a specific optimizer definition id."},{"schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"page","required":false,"description":"1-based page number. Default 1."},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"pageSize","required":false,"description":"Transformations per page. 1-100, default 25."},{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"transformations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"productId":{"type":"string"},"merchantProductId":{"type":"string"},"attributeKey":{"type":"string"},"originalValue":{"type":"string"},"proposedValue":{"type":"string"},"status":{"type":"string","enum":["pending","approved","rejected"]},"target":{"type":"string","enum":["all","chatgpt","gemini"]},"createdAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","productId","merchantProductId","attributeKey","originalValue","proposedValue","status","target","createdAt"],"additionalProperties":false}},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pageSize":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["transformations","page","pageSize","total","totalPages"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}/transformation-runs":{"get":{"operationId":"catalog_list_transformation_runs","summary":"List transformation runs","tags":["Catalog"],"description":"Returns the optimization-run history for a catalog — status, products analyzed, transforms proposed, and timing. Offset pagination with total + totalPages.","parameters":[{"schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"page","required":false,"description":"1-based page number. Default 1."},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"pageSize","required":false,"description":"Runs per page. 1-100, default 25."},{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"runs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["pending","in_progress","completed","failed"]},"productsAnalyzed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"transformsProposed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"startedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},{"type":"null"}]},"durationMs":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["id","status","productsAnalyzed","transformsProposed","startedAt","completedAt","durationMs"],"additionalProperties":false}},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pageSize":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["runs","page","pageSize","total","totalPages"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}/optimizer-policies":{"get":{"operationId":"catalog_list_optimizer_policies","summary":"List optimizer policies","tags":["Catalog"],"description":"Returns the catalog's per-optimizer auto-run policies — which enhancement optimizers auto-generate/auto-approve, their trigger conditions, and pause state. Offset pagination with total + totalPages.","parameters":[{"schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"page","required":false,"description":"1-based page number. Default 1."},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"pageSize","required":false,"description":"Policies per page. 1-100, default 25."},{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"policies":{"type":"array","items":{"type":"object","properties":{"definitionId":{"type":"string","example":"def_seo_title"},"definitionName":{"type":"string","example":"SEO Title"},"autoGenerate":{"type":"boolean","example":true},"autoApprove":{"type":"boolean","example":false},"triggers":{"type":"array","items":{"type":"string"},"description":"Trigger conditions, e.g. 'new' or 'changed:<attributeKey>'.","example":["new","changed:title"]},"paused":{"type":"boolean","example":false}},"required":["definitionId","definitionName","autoGenerate","autoApprove","triggers","paused"],"additionalProperties":false,"example":{"definitionId":"def_seo_title","definitionName":"SEO Title","autoGenerate":true,"autoApprove":false,"triggers":["new","changed:title"],"paused":false}}},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pageSize":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["policies","page","pageSize","total","totalPages"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}/optimizer-policies/{definitionId}":{"put":{"operationId":"catalog_update_optimizer_policy","summary":"Configure an optimizer policy","tags":["Catalog"],"description":"Sets a catalog's auto-run policy for one enhancement optimizer: whether it auto-generates transformations and the trigger conditions that fire it. Full-replace — send autoGenerate and triggers together. Creates the policy if none exists, updates it otherwise. Returns 404 if the catalog or optimizer definition does not exist or belongs to another organization; 422 if the definition is a fix optimizer (policies are enhancement-only) or if autoApprove is included (console-only). Does not change any product data.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"autoGenerate":{"type":"boolean","description":"Whether this optimizer automatically generates transformations for matching products.","example":true},"triggers":{"type":"array","items":{"type":"string","minLength":1},"description":"Trigger conditions that fire auto-generation, e.g. 'new' (new products) or 'changed:<attributeKey>'. Full-replace: send the complete set.","example":["new","changed:title"]},"autoApprove":{"description":"Not settable via the API — auto-approval of AI edits is console-only. Including this field returns 422.","type":"boolean"}},"required":["autoGenerate","triggers"],"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."},{"schema":{"type":"string"},"in":"path","name":"definitionId","required":true,"description":"Optimizer definition id (from /v1/catalogs/{catalogId}/optimizers). Must be an enhancement optimizer."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"policy":{"type":"object","properties":{"definitionId":{"type":"string","example":"def_seo_title"},"definitionName":{"type":"string","example":"SEO Title"},"autoGenerate":{"type":"boolean","example":true},"autoApprove":{"type":"boolean","example":false},"triggers":{"type":"array","items":{"type":"string"},"description":"Trigger conditions, e.g. 'new' or 'changed:<attributeKey>'.","example":["new","changed:title"]},"paused":{"type":"boolean","example":false}},"required":["definitionId","definitionName","autoGenerate","autoApprove","triggers","paused"],"additionalProperties":false,"example":{"definitionId":"def_seo_title","definitionName":"SEO Title","autoGenerate":true,"autoApprove":false,"triggers":["new","changed:title"],"paused":false}}},"required":["policy"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/catalogs/{catalogId}/optimizers":{"get":{"operationId":"catalog_list_optimizers","summary":"List available optimizers","tags":["Catalog"],"description":"Returns the optimizer definitions available to configure for this catalog's organization — platform-wide optimizers plus the org's own custom ones. This is the menu of what CAN be configured; for what IS configured on a catalog use /optimizer-policies. Offset pagination with total + totalPages.","parameters":[{"schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991},"in":"query","name":"page","required":false,"description":"1-based page number. Default 1."},{"schema":{"default":25,"type":"integer","minimum":1,"maximum":100},"in":"query","name":"pageSize","required":false,"description":"Optimizers per page. 1-100, default 25."},{"schema":{"type":"string"},"in":"path","name":"catalogId","required":true,"description":"Catalog id (from /v1/catalogs)."}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"optimizers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"def_seo_title"},"name":{"type":"string","description":"Stable internal identifier of the optimizer definition.","example":"seo-title"},"label":{"type":"string","description":"Human-readable name (displayLabel, falling back to name).","example":"SEO Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Human-readable description; null when none is set.","example":"Rewrites product titles for AI search visibility."},"category":{"type":"string","enum":["enhancement","fix"],"description":"enhancement = general optimization; fix = validation-triggered remediation.","example":"enhancement"},"target":{"type":"string","enum":["all","chatgpt","gemini"],"description":"Which AI engine(s) the optimizer targets.","example":"all"}},"required":["id","name","label","description","category","target"],"additionalProperties":false,"example":{"id":"def_seo_title","name":"seo-title","label":"SEO Title","description":"Rewrites product titles for AI search visibility.","category":"enhancement","target":"all"}}},"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pageSize":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["optimizers","page","pageSize","total","totalPages"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/organization/profile":{"get":{"operationId":"organization_get_profile","summary":"Get the organization brand profile","tags":["Organization"],"description":"Returns the calling organization's structured brand profile: name, positioning, industry, and domain.","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"profile":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Brand/company name."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Short brand positioning."},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full brand story."},"industry":{"anyOf":[{"type":"string"},{"type":"null"}]},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Brand website domain (hostname)."}},"required":["name","description","longDescription","industry","domain"],"additionalProperties":false}},"required":["profile"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}},"put":{"operationId":"organization_set_profile","summary":"Replace the organization brand profile","tags":["Organization"],"description":"Full-replace of the brand profile. Send every field; use null to clear one.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"longDescription":{"anyOf":[{"type":"string","maxLength":10000},{"type":"null"}]},"industry":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"domain":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]}},"required":["name","description","longDescription","industry","domain"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"profile":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Brand/company name."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Short brand positioning."},"longDescription":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Full brand story."},"industry":{"anyOf":[{"type":"string"},{"type":"null"}]},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Brand website domain (hostname)."}},"required":["name","description","longDescription","industry","domain"],"additionalProperties":false}},"required":["profile"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/organization/voice":{"get":{"operationId":"organization_get_voice","summary":"Get the organization brand voice","tags":["Organization"],"description":"Returns the calling organization's brand voice: persona, tone attributes, and style do/don't rules. Fed into AI persona derivation on the next regeneration.","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"voice":{"type":"object","properties":{"persona":{"anyOf":[{"type":"string"},{"type":"null"}]},"toneAttributes":{"type":"array","items":{"type":"string"}},"styleRules":{"type":"object","properties":{"dos":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":500}},"donts":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":500}}},"required":["dos","donts"],"additionalProperties":false}},"required":["persona","toneAttributes","styleRules"],"additionalProperties":false}},"required":["voice"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}},"put":{"operationId":"organization_set_voice","summary":"Replace the organization brand voice","tags":["Organization"],"description":"Full-replace of the brand voice. Applies to AI output on the next persona regeneration.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"persona":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"toneAttributes":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":100}},"styleRules":{"type":"object","properties":{"dos":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":500}},"donts":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":500}}},"required":["dos","donts"],"additionalProperties":false}},"required":["persona","toneAttributes","styleRules"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"voice":{"type":"object","properties":{"persona":{"anyOf":[{"type":"string"},{"type":"null"}]},"toneAttributes":{"type":"array","items":{"type":"string"}},"styleRules":{"type":"object","properties":{"dos":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":500}},"donts":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":500}}},"required":["dos","donts"],"additionalProperties":false}},"required":["persona","toneAttributes","styleRules"],"additionalProperties":false}},"required":["voice"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/organization/theme":{"get":{"operationId":"organization_get_theme","summary":"Get the organization theme","tags":["Organization"],"description":"Returns the calling organization's visual theme: logo, icon, font family, and brand colors (grouped).","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"theme":{"type":"object","properties":{"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"fontFamily":{"anyOf":[{"type":"string"},{"type":"null"}]},"colors":{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"bodyText":{"anyOf":[{"type":"string"},{"type":"null"}]},"titleText":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["primary","secondary","accent","bodyText","titleText"],"additionalProperties":false}},"required":["logoUrl","iconUrl","fontFamily","colors"],"additionalProperties":false}},"required":["theme"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}},"put":{"operationId":"organization_set_theme","summary":"Replace the organization theme","tags":["Organization"],"description":"Full-replace of the visual theme. Send every field; null clears one. Colors are #RRGGBB.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"logoUrl":{"anyOf":[{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"iconUrl":{"anyOf":[{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"fontFamily":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"colors":{"type":"object","properties":{"primary":{"anyOf":[{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},{"type":"null"}]},"bodyText":{"anyOf":[{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},{"type":"null"}]},"titleText":{"anyOf":[{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},{"type":"null"}]}},"required":["primary","secondary","accent","bodyText","titleText"],"additionalProperties":false}},"required":["logoUrl","iconUrl","fontFamily","colors"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"theme":{"type":"object","properties":{"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"fontFamily":{"anyOf":[{"type":"string"},{"type":"null"}]},"colors":{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"bodyText":{"anyOf":[{"type":"string"},{"type":"null"}]},"titleText":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["primary","secondary","accent","bodyText","titleText"],"additionalProperties":false}},"required":["logoUrl","iconUrl","fontFamily","colors"],"additionalProperties":false}},"required":["theme"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/organization/competitors":{"get":{"operationId":"organization_get_competitors","summary":"Get declared direct competitors","tags":["Organization"],"description":"Returns the calling organization's declared direct competitors. This is the curated list the org configures — not the auto-discovered competitors under /v1/monitoring/competitors.","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"competitors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["name","domain"],"additionalProperties":false}}},"required":["competitors"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}},"put":{"operationId":"organization_set_competitors","summary":"Replace declared direct competitors","tags":["Organization"],"description":"Fully replaces the declared competitor list (max 10, deduped by lowercase name). Send an empty array to clear.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"competitors":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"domain":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]}},"required":["name","domain"],"additionalProperties":false}}},"required":["competitors"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"competitors":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["name","domain"],"additionalProperties":false}}},"required":["competitors"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/organization/aliases":{"get":{"operationId":"organization_get_aliases","summary":"Get declared brand aliases","tags":["Organization"],"description":"Returns the calling organization's declared brand aliases (alternate names/domains used by brand-match logic).","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["name","domain"],"additionalProperties":false}}},"required":["aliases"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}},"put":{"operationId":"organization_set_aliases","summary":"Replace declared brand aliases","tags":["Organization"],"description":"Fully replaces the declared alias list (max 10, deduped by lowercase name). Send an empty array to clear.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"aliases":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"domain":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]}},"required":["name","domain"],"additionalProperties":false}}},"required":["aliases"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["name","domain"],"additionalProperties":false}}},"required":["aliases"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/organization/merchant":{"get":{"operationId":"organization_get_merchant","summary":"Get merchant / commerce info","tags":["Organization"],"description":"Returns the calling organization's merchant info: seller identity, privacy/terms/return policy URLs, and return window.","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"merchant":{"type":"object","properties":{"sellerName":{"anyOf":[{"type":"string"},{"type":"null"}]},"sellerUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"privacyPolicyUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"termsOfServiceUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"returnPolicyUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"returnWindowDays":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["sellerName","sellerUrl","privacyPolicyUrl","termsOfServiceUrl","returnPolicyUrl","returnWindowDays"],"additionalProperties":false}},"required":["merchant"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}},"put":{"operationId":"organization_set_merchant","summary":"Replace merchant / commerce info","tags":["Organization"],"description":"Full-replace of merchant info. Send every field; null clears one.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sellerName":{"anyOf":[{"type":"string","maxLength":70},{"type":"null"}]},"sellerUrl":{"anyOf":[{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"privacyPolicyUrl":{"anyOf":[{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"termsOfServiceUrl":{"anyOf":[{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"returnPolicyUrl":{"anyOf":[{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"returnWindowDays":{"anyOf":[{"type":"integer","minimum":0,"maximum":365},{"type":"null"}]}},"required":["sellerName","sellerUrl","privacyPolicyUrl","termsOfServiceUrl","returnPolicyUrl","returnWindowDays"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"merchant":{"type":"object","properties":{"sellerName":{"anyOf":[{"type":"string"},{"type":"null"}]},"sellerUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"privacyPolicyUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"termsOfServiceUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"returnPolicyUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"returnWindowDays":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]}},"required":["sellerName","sellerUrl","privacyPolicyUrl","termsOfServiceUrl","returnPolicyUrl","returnWindowDays"],"additionalProperties":false}},"required":["merchant"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}},"/v1/organization/settings":{"get":{"operationId":"organization_get_settings","summary":"Get feature settings","tags":["Organization"],"description":"Returns the calling organization's feature flags: whether search and checkout are enabled.","security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"settings":{"type":"object","properties":{"searchEnabled":{"type":"boolean"},"checkoutEnabled":{"type":"boolean"}},"required":["searchEnabled","checkoutEnabled"],"additionalProperties":false}},"required":["settings"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}},"put":{"operationId":"organization_set_settings","summary":"Replace feature settings","tags":["Organization"],"description":"Full-replace of feature flags. Enabling checkout additionally requires the commerce:write scope and is audit-logged.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"searchEnabled":{"type":"boolean"},"checkoutEnabled":{"type":"boolean"}},"required":["searchEnabled","checkoutEnabled"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"object","properties":{"settings":{"type":"object","properties":{"searchEnabled":{"type":"boolean"},"checkoutEnabled":{"type":"boolean"}},"required":["searchEnabled","checkoutEnabled"],"additionalProperties":false}},"required":["settings"],"additionalProperties":false},"meta":{"type":"object","properties":{"requestId":{"type":"string"},"rateLimit":{"type":"object","properties":{"remaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["remaining","resetAt"],"additionalProperties":false}},"required":["requestId"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false}}}},"401":{"$ref":"#/components/responses/PazApiAuthenticationErrorResponse"},"429":{"$ref":"#/components/responses/PazApiRateLimitErrorResponse"}}}}},"servers":[{"url":"https://api.paz.ai"}],"tags":[{"name":"Introspection","description":"Inspect the calling key"}],"externalDocs":{"description":"Paz.ai Public API versioning and deprecation policy","url":"https://www.paz.ai/developers/api-versioning"}}