{"openapi":"3.1.0","info":{"title":"LeadKnight Developer API","version":"1.0.0","description":"Personal server-side API keys bind one issuing user to one workspace. Current membership, role and seat are rechecked on every request. Read-only is the default; write includes CRM creation/updates and drafts/uploads, and publish is cumulative. Never put keys in a browser, URL, source control or analytics. Requests carrying an Origin, Sec-Fetch-Site, Sec-Fetch-Dest or Sec-Fetch-User header are rejected; a lone Sec-Fetch-Mode, which Node's built-in fetch adds on a server, is accepted. No cookies or OAuth/JWT fallback. The operator controls availability."},"servers":[{"url":"https://api.lead-knight.com/v1"}],"security":[{"developerApi":[]}],"components":{"securitySchemes":{"developerApi":{"type":"http","scheme":"bearer","bearerFormat":"lk_api_<43 base64url characters>","description":"Create in Settings → Developer API. Displayed once; expires in 1–365 days (default 90), or has no expiry, and can be revoked. Store only in your server's secret environment."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,63}$"},"message":{"type":"string","minLength":1,"maxLength":300},"details":{"type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{"path":{"type":"array","items":{"anyOf":[{"type":"string","maxLength":80},{"type":"number"}]},"maxItems":12},"message":{"type":"string","maxLength":240}},"required":["path","message"],"additionalProperties":false},"maxItems":8}},"required":["issues"],"additionalProperties":false},"requestId":{"type":"string","minLength":1,"maxLength":128},"contactId":{"type":"string","format":"uuid"},"retryable":{"type":"boolean","const":true}},"required":["error","message"],"additionalProperties":false},"CampaignPage":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["advanced","quick"],"default":"advanced"},"goal":{"type":"string","enum":["leads","event","sales","traffic","other"],"default":"other"},"goalDetail":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"default":null},"priorityStars":{"type":"integer","minimum":1,"maximum":5,"default":3},"creationState":{"anyOf":[{"type":"string","enum":["creating","failed"]},{"type":"null"}],"default":null},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["archived","creating","active","scheduled","paused","finished","draft"]}},"required":["id","workspaceId","name","createdAt","updatedAt","status"],"additionalProperties":false},"maxItems":50},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":2048},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":false},"Campaign":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["advanced","quick"],"default":"advanced"},"goal":{"type":"string","enum":["leads","event","sales","traffic","other"],"default":"other"},"goalDetail":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"default":null},"priorityStars":{"type":"integer","minimum":1,"maximum":5,"default":3},"creationState":{"anyOf":[{"type":"string","enum":["creating","failed"]},{"type":"null"}],"default":null},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["archived","creating","active","scheduled","paused","finished","draft"]},"brief":{"anyOf":[{"type":"object","properties":{"brief":{"type":"object","additionalProperties":{"type":"string","maxLength":2000},"propertyNames":{"minLength":1,"maxLength":60},"default":{}},"description":{"type":"string","maxLength":10000,"default":""},"sellingPoints":{"type":"array","items":{"type":"string","maxLength":2000},"maxItems":20,"default":[]},"currency":{"anyOf":[{"type":"string","pattern":"^[A-Z]{3}$"},{"type":"string","const":""}],"default":""},"audience":{"type":"object","properties":{"ageMin":{"type":"string","maxLength":8,"default":""},"ageMax":{"type":"string","maxLength":8,"default":""},"gender":{"type":"string","enum":["all","female","male"],"default":"all"},"geography":{"type":"string","maxLength":200,"default":""},"languages":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20,"default":[]},"background":{"type":"string","maxLength":2000,"default":""},"interests":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":40,"default":[]},"occupation":{"type":"string","maxLength":2000,"default":""},"incomeLevel":{"type":"string","enum":["unspecified","low","medium","medium_high","high","premium"],"default":"unspecified"},"painPoints":{"type":"string","maxLength":4000,"default":""},"fears":{"type":"string","maxLength":4000,"default":""},"motivations":{"type":"string","maxLength":4000,"default":""},"keyMessages":{"type":"array","items":{"type":"string","maxLength":2000},"maxItems":20,"default":[]}},"additionalProperties":false,"default":{}},"paid":{"type":"object","properties":{"dailyBudget":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000},{"type":"null"}],"default":null},"budgetType":{"type":"string","enum":["daily","lifetime"],"default":"daily"},"objective":{"type":"string","enum":["leads","sales","traffic","awareness","engagement"],"default":"leads"},"optimizationEvent":{"type":"string","enum":["form_submit","purchase","lead","click","view"],"default":"form_submit"}},"additionalProperties":false,"default":{}},"plan":{"type":"object","properties":{"contentTypes":{"type":"array","items":{"type":"string","enum":["reels","stories","imagePosts","flyers","textPosts"]},"maxItems":5,"default":[]},"endDate":{"type":"string"},"ideaCount":{"type":"integer","minimum":1,"maximum":10,"default":3}},"additionalProperties":false,"default":{}}},"additionalProperties":false},{"type":"null"}],"default":null},"scheduleMode":{"anyOf":[{"type":"string","enum":["auto","range"]},{"type":"null"}]},"startsAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"endsAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","workspaceId","name","createdAt","updatedAt","status","scheduleMode","startsAt","endsAt"],"additionalProperties":false},"CampaignCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["advanced","quick"],"default":"advanced"},"brief":{"type":"object","properties":{"brief":{"type":"object","additionalProperties":{"type":"string","maxLength":2000},"propertyNames":{"minLength":1,"maxLength":60},"default":{}},"description":{"type":"string","maxLength":10000,"default":""},"sellingPoints":{"type":"array","items":{"type":"string","maxLength":2000},"maxItems":20,"default":[]},"currency":{"anyOf":[{"type":"string","pattern":"^[A-Z]{3}$"},{"type":"string","const":""}],"default":""},"audience":{"type":"object","properties":{"ageMin":{"type":"string","maxLength":8,"default":""},"ageMax":{"type":"string","maxLength":8,"default":""},"gender":{"type":"string","enum":["all","female","male"],"default":"all"},"geography":{"type":"string","maxLength":200,"default":""},"languages":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20,"default":[]},"background":{"type":"string","maxLength":2000,"default":""},"interests":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":40,"default":[]},"occupation":{"type":"string","maxLength":2000,"default":""},"incomeLevel":{"type":"string","enum":["unspecified","low","medium","medium_high","high","premium"],"default":"unspecified"},"painPoints":{"type":"string","maxLength":4000,"default":""},"fears":{"type":"string","maxLength":4000,"default":""},"motivations":{"type":"string","maxLength":4000,"default":""},"keyMessages":{"type":"array","items":{"type":"string","maxLength":2000},"maxItems":20,"default":[]}},"additionalProperties":false,"default":{}},"paid":{"type":"object","properties":{"dailyBudget":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000},{"type":"null"}],"default":null},"budgetType":{"type":"string","enum":["daily","lifetime"],"default":"daily"},"objective":{"type":"string","enum":["leads","sales","traffic","awareness","engagement"],"default":"leads"},"optimizationEvent":{"type":"string","enum":["form_submit","purchase","lead","click","view"],"default":"form_submit"}},"additionalProperties":false,"default":{}},"plan":{"type":"object","properties":{"contentTypes":{"type":"array","items":{"type":"string","enum":["reels","stories","imagePosts","flyers","textPosts"]},"maxItems":5,"default":[]},"endDate":{"type":"string"},"ideaCount":{"type":"integer","minimum":1,"maximum":10,"default":3}},"additionalProperties":false,"default":{}}},"additionalProperties":false},"goal":{"type":"string","enum":["leads","event","sales","traffic","other"]},"goalDetail":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"priorityStars":{"type":"integer","minimum":1,"maximum":5}},"required":["name"],"additionalProperties":false},"CampaignCreateResult":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["advanced","quick"],"default":"advanced"},"goal":{"type":"string","enum":["leads","event","sales","traffic","other"],"default":"other"},"goalDetail":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"default":null},"priorityStars":{"type":"integer","minimum":1,"maximum":5,"default":3},"creationState":{"anyOf":[{"type":"string","enum":["creating","failed"]},{"type":"null"}],"default":null},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["archived","creating","active","scheduled","paused","finished","draft"]},"brief":{"anyOf":[{"type":"object","properties":{"brief":{"type":"object","additionalProperties":{"type":"string","maxLength":2000},"propertyNames":{"minLength":1,"maxLength":60},"default":{}},"description":{"type":"string","maxLength":10000,"default":""},"sellingPoints":{"type":"array","items":{"type":"string","maxLength":2000},"maxItems":20,"default":[]},"currency":{"anyOf":[{"type":"string","pattern":"^[A-Z]{3}$"},{"type":"string","const":""}],"default":""},"audience":{"type":"object","properties":{"ageMin":{"type":"string","maxLength":8,"default":""},"ageMax":{"type":"string","maxLength":8,"default":""},"gender":{"type":"string","enum":["all","female","male"],"default":"all"},"geography":{"type":"string","maxLength":200,"default":""},"languages":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20,"default":[]},"background":{"type":"string","maxLength":2000,"default":""},"interests":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":40,"default":[]},"occupation":{"type":"string","maxLength":2000,"default":""},"incomeLevel":{"type":"string","enum":["unspecified","low","medium","medium_high","high","premium"],"default":"unspecified"},"painPoints":{"type":"string","maxLength":4000,"default":""},"fears":{"type":"string","maxLength":4000,"default":""},"motivations":{"type":"string","maxLength":4000,"default":""},"keyMessages":{"type":"array","items":{"type":"string","maxLength":2000},"maxItems":20,"default":[]}},"additionalProperties":false,"default":{}},"paid":{"type":"object","properties":{"dailyBudget":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000},{"type":"null"}],"default":null},"budgetType":{"type":"string","enum":["daily","lifetime"],"default":"daily"},"objective":{"type":"string","enum":["leads","sales","traffic","awareness","engagement"],"default":"leads"},"optimizationEvent":{"type":"string","enum":["form_submit","purchase","lead","click","view"],"default":"form_submit"}},"additionalProperties":false,"default":{}},"plan":{"type":"object","properties":{"contentTypes":{"type":"array","items":{"type":"string","enum":["reels","stories","imagePosts","flyers","textPosts"]},"maxItems":5,"default":[]},"endDate":{"type":"string"},"ideaCount":{"type":"integer","minimum":1,"maximum":10,"default":3}},"additionalProperties":false,"default":{}}},"additionalProperties":false},{"type":"null"}],"default":null},"scheduleMode":{"anyOf":[{"type":"string","enum":["auto","range"]},{"type":"null"}]},"startsAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"endsAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","workspaceId","name","createdAt","updatedAt","status","scheduleMode","startsAt","endsAt"],"additionalProperties":false},"CampaignPostPage":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"campaignId":{"type":"string","format":"uuid"},"name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"body":{"type":"string","minLength":1,"maxLength":10000},"stars":{"type":"integer","minimum":1,"maximum":5},"revision":{"type":"integer","minimum":1},"updatedAt":{"type":"string","format":"date-time"},"media":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["post_media","studio_creative","minisite_file","agent_upload","agent_media","user_avatar","business_logo"]},"mime":{"type":"string","minLength":1,"maxLength":100},"sizeBytes":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["id","kind","mime","sizeBytes","createdAt","updatedAt","url"],"additionalProperties":false},"maxItems":25},"cards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","enum":["feed","facebook_groups","facebook_marketplace","whatsapp","email"]},"status":{"type":"string","enum":["draft","scheduled","active","paused","finished"]},"attention":{"anyOf":[{"type":"string","enum":["kill_switch","account_paused","duplicate_post_quarantine","extension_offline","unknown_session","cloud_offline","cloud_phone_not_ready","cloud_account_in_flight","connected_account_inactive","unroutable_destination","lease_held","account_rail_unreadable","mechanism_not_allowed","media_needs_extension","posting_permission_revoked","posting_principal_unknown","content_rewrite_pending","cloud_identity_choice_required","extension_cannot_post_as_identity","cloud_phone_warming_up","publishing_paused","facebook_refusing_posts","platform_content_rules","no_media_for_platform","publish_failed","grant_stale","whatsapp_needs_review","whatsapp_number_paused","whatsapp_permission_revoked","whatsapp_workspace_stopped","rewrite_failed","recipients_grew","missed_slots","needs_republish","cloud_no_video","send_failed","sender_unavailable","stopped","not_published","story_incomplete"]},{"type":"null"}]},"held":{"type":"boolean"},"pausedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"missedSlots":{"type":"integer","minimum":0},"nextRunAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","channel","status","attention","held","pausedAt","missedSlots","nextRunAt"],"additionalProperties":false},"maxItems":20},"grant":{"type":"object","properties":{"state":{"type":"string","enum":["none","current","stale"]},"approvedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["state","approvedAt"],"additionalProperties":false}},"required":["id","campaignId","name","body","stars","revision","updatedAt","media","cards","grant"],"additionalProperties":false},"maxItems":50},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":2048},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":false},"Post":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"campaignId":{"type":"string","format":"uuid"},"name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"body":{"type":"string","minLength":1,"maxLength":10000},"stars":{"type":"integer","minimum":1,"maximum":5},"revision":{"type":"integer","minimum":1},"updatedAt":{"type":"string","format":"date-time"},"media":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["post_media","studio_creative","minisite_file","agent_upload","agent_media","user_avatar","business_logo"]},"mime":{"type":"string","minLength":1,"maxLength":100},"sizeBytes":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["id","kind","mime","sizeBytes","createdAt","updatedAt","url"],"additionalProperties":false},"maxItems":25},"cards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","enum":["feed","facebook_groups","facebook_marketplace","whatsapp","email"]},"status":{"type":"string","enum":["draft","scheduled","active","paused","finished"]},"attention":{"anyOf":[{"type":"string","enum":["kill_switch","account_paused","duplicate_post_quarantine","extension_offline","unknown_session","cloud_offline","cloud_phone_not_ready","cloud_account_in_flight","connected_account_inactive","unroutable_destination","lease_held","account_rail_unreadable","mechanism_not_allowed","media_needs_extension","posting_permission_revoked","posting_principal_unknown","content_rewrite_pending","cloud_identity_choice_required","extension_cannot_post_as_identity","cloud_phone_warming_up","publishing_paused","facebook_refusing_posts","platform_content_rules","no_media_for_platform","publish_failed","grant_stale","whatsapp_needs_review","whatsapp_number_paused","whatsapp_permission_revoked","whatsapp_workspace_stopped","rewrite_failed","recipients_grew","missed_slots","needs_republish","cloud_no_video","send_failed","sender_unavailable","stopped","not_published","story_incomplete"]},{"type":"null"}]},"held":{"type":"boolean"},"pausedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"missedSlots":{"type":"integer","minimum":0},"nextRunAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","channel","status","attention","held","pausedAt","missedSlots","nextRunAt"],"additionalProperties":false},"maxItems":20},"grant":{"type":"object","properties":{"state":{"type":"string","enum":["none","current","stale"]},"approvedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["state","approvedAt"],"additionalProperties":false}},"required":["id","campaignId","name","body","stars","revision","updatedAt","media","cards","grant"],"additionalProperties":false},"PostCreate":{"type":"object","properties":{"post":{"type":"object","properties":{"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}]},"body":{"type":"string","minLength":1,"maxLength":10000},"mediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":25},"stars":{"type":"integer","minimum":1,"maximum":5}},"required":["body","mediaIds","stars"],"additionalProperties":false},"cards":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","const":"feed"},"destinationId":{"type":"string","format":"uuid"},"format":{"type":"string","enum":["feed","story","reel","video","article","listing","ad"],"default":"feed"},"config":{"type":"object","properties":{"targetId":{"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"null"}],"default":null},"platformFields":{"anyOf":[{"anyOf":[{"type":"object","properties":{"platform":{"type":"string","const":"reddit"},"subreddit":{"type":"string","minLength":1,"maxLength":100},"title":{"type":"string","minLength":1,"maxLength":300},"flairId":{"type":"string","minLength":1,"maxLength":200},"flairText":{"type":"string","minLength":1,"maxLength":200},"nsfw":{"type":"boolean"},"spoiler":{"type":"boolean"}},"required":["platform","subreddit"],"additionalProperties":false},{"type":"object","properties":{"platform":{"type":"string","const":"pinterest"},"boardId":{"type":"string","minLength":1,"maxLength":200},"title":{"type":"string","minLength":1,"maxLength":100},"link":{"type":"string","format":"uri","maxLength":2000}},"required":["platform","boardId"],"additionalProperties":false},{"type":"object","properties":{"platform":{"type":"string","const":"googlebusiness"},"locationId":{"type":"string","pattern":"^locations\\/\\d{1,30}$"},"topicType":{"type":"string","enum":["STANDARD","EVENT","OFFER"]},"callToAction":{"type":"object","properties":{"type":{"type":"string","enum":["LEARN_MORE","BOOK","ORDER","SHOP","SIGN_UP","CALL"]},"url":{"type":"string","format":"uri","maxLength":2000}},"required":["type","url"],"additionalProperties":false},"event":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":58},"startDate":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$"},"endDate":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$"},"startTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"endTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["title","startDate","endDate"],"additionalProperties":false},"offer":{"type":"object","properties":{"couponCode":{"type":"string","minLength":1,"maxLength":58},"redeemOnlineUrl":{"type":"string","format":"uri","maxLength":2000},"termsConditions":{"type":"string","minLength":1,"maxLength":5000}},"additionalProperties":false}},"required":["platform","locationId","topicType"],"additionalProperties":false}]},{"type":"null"}],"default":null}},"additionalProperties":false,"default":{}},"schedule":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"once"},"at":{"anyOf":[{"type":"string","const":"now"},{"type":"string","format":"date-time"}]}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"recurring"},"recurrence":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"minItems":1,"maxItems":7}},"required":["kind","days"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"monthly"},"dayOfMonth":{"type":"integer","minimum":1,"maximum":31}},"required":["kind","dayOfMonth"],"additionalProperties":false}]},"time":{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$"},"until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["kind","recurrence","time","until"],"additionalProperties":false}]}},"required":["channel","destinationId","schedule"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","const":"facebook_groups"},"socialAccountId":{"type":"string","format":"uuid"},"format":{"type":"string","const":"feed","default":"feed"},"config":{"type":"object","properties":{"folderIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":2000},"groupIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":2000},"excludedGroupIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":2000},"liveFolderConsent":{"type":"boolean","default":false}},"required":["folderIds","groupIds"],"additionalProperties":false},"schedule":{"type":"object","properties":{"kind":{"type":"string","const":"fbgroups"},"start":{"anyOf":[{"type":"string","const":"now"},{"type":"string","format":"date-time"}]},"end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["kind","start","end"],"additionalProperties":false}},"required":["channel","socialAccountId","config","schedule"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","const":"facebook_marketplace"},"destinationId":{"type":"string","format":"uuid"},"format":{"type":"string","const":"listing","default":"listing"},"config":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"item"},"title":{"type":"string","minLength":1,"maxLength":100},"price":{"type":"integer","minimum":0,"maximum":1000000000},"location":{"type":"string","minLength":2,"maxLength":120},"category":{"type":"string","enum":["tools","furniture","household","garden","appliances","video_games","books_movies_music","bags_luggage","womens_clothing_shoes","mens_clothing_shoes","jewelry_accessories","health_beauty","pet_supplies","baby_kids","toys_games","electronics_computers","mobile_phones","bicycles","arts_crafts","sports_outdoors","auto_parts","musical_instruments","antiques_collectibles","garage_sale","miscellaneous"]},"condition":{"type":"string","enum":["new","used_like_new","used_good","used_fair"]}},"required":["kind","title","price","location","category","condition"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"property"},"title":{"type":"string","minLength":1,"maxLength":100},"price":{"type":"integer","minimum":0,"maximum":1000000000},"location":{"type":"string","minLength":2,"maxLength":120},"offer":{"type":"string","enum":["sale","rent"]},"propertyType":{"type":"string","enum":["apartment","house","room","townhouse","other"]},"sizeSqm":{"type":"integer","minimum":1,"maximum":100000},"rooms":{"type":"number","multipleOf":0.5,"minimum":0,"maximum":50},"bathrooms":{"type":"integer","minimum":0,"maximum":20}},"required":["kind","title","price","location","offer","propertyType","rooms","bathrooms"],"additionalProperties":false}]},"schedule":{"type":"object","properties":{"kind":{"type":"string","const":"once"},"at":{"anyOf":[{"type":"string","const":"now"},{"type":"string","format":"date-time"}]}},"required":["kind","at"],"additionalProperties":false}},"required":["channel","destinationId","config","schedule"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","const":"whatsapp"},"whatsappAccountId":{"type":"string","format":"uuid"},"format":{"type":"string","const":"feed","default":"feed"},"config":{"type":"object","properties":{"recipients":{"type":"object","properties":{"mode":{"type":"string","enum":["all_consented","selected"]},"leadIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5000},"groupIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":200},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"memberGroupIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"audienceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50,"default":[]}},"required":["mode","leadIds","groupIds"],"additionalProperties":false},"consentConfirmed":{"type":"boolean","default":false},"recipientCap":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}],"default":null}},"required":["recipients"],"additionalProperties":false},"schedule":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"once"},"at":{"anyOf":[{"type":"string","const":"now"},{"type":"string","format":"date-time"}]}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"recurring"},"recurrence":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"minItems":1,"maxItems":7}},"required":["kind","days"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"monthly"},"dayOfMonth":{"type":"integer","minimum":1,"maximum":31}},"required":["kind","dayOfMonth"],"additionalProperties":false}]},"time":{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$"},"until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["kind","recurrence","time","until"],"additionalProperties":false}]}},"required":["channel","whatsappAccountId","config","schedule"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","const":"email"},"gmailSenderId":{"type":"string","format":"uuid"},"format":{"type":"string","const":"feed","default":"feed"},"config":{"type":"object","properties":{"senderIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":10},"divide":{"type":"boolean","default":false},"subject":{"type":"string","minLength":1,"maxLength":200},"bodyHtml":{"anyOf":[{"type":"string","maxLength":100000},{"type":"null"}],"default":null},"templateKind":{"type":"string","enum":["announcement","listing","newsletter","personal"],"default":"announcement"},"trackLinks":{"type":"boolean","default":true},"trackOpens":{"type":"boolean","default":false},"recipients":{"type":"object","properties":{"mode":{"type":"string","enum":["all_consented","selected"]},"leadIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5000},"audienceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50}},"required":["mode","leadIds","audienceIds"],"additionalProperties":false},"consentConfirmed":{"type":"boolean","default":false},"recipientCap":{"anyOf":[{"type":"integer","minimum":0,"maximum":1000000},{"type":"null"}],"default":null}},"required":["senderIds","subject","recipients"],"additionalProperties":false},"schedule":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"once"},"at":{"anyOf":[{"type":"string","const":"now"},{"type":"string","format":"date-time"}]}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"recurring"},"recurrence":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"minItems":1,"maxItems":7}},"required":["kind","days"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"monthly"},"dayOfMonth":{"type":"integer","minimum":1,"maximum":31}},"required":["kind","dayOfMonth"],"additionalProperties":false}]},"time":{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$"},"until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["kind","recurrence","time","until"],"additionalProperties":false}]}},"required":["channel","gmailSenderId","config","schedule"],"additionalProperties":false}]},"minItems":1,"maxItems":20},"intent":{"type":"string","enum":["draft","publish"]},"campaignId":{"type":"string","format":"uuid"}},"required":["post","cards","intent","campaignId"],"additionalProperties":false},"PostUpdate":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":1},"post":{"type":"object","properties":{"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}]},"body":{"type":"string","minLength":1,"maxLength":10000},"mediaIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":25},"stars":{"type":"integer","minimum":1,"maximum":5}},"required":["body","mediaIds","stars"],"additionalProperties":false},"cards":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","const":"feed"},"destinationId":{"type":"string","format":"uuid"},"format":{"type":"string","enum":["feed","story","reel","video","article","listing","ad"],"default":"feed"},"config":{"type":"object","properties":{"targetId":{"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"null"}],"default":null},"platformFields":{"anyOf":[{"anyOf":[{"type":"object","properties":{"platform":{"type":"string","const":"reddit"},"subreddit":{"type":"string","minLength":1,"maxLength":100},"title":{"type":"string","minLength":1,"maxLength":300},"flairId":{"type":"string","minLength":1,"maxLength":200},"flairText":{"type":"string","minLength":1,"maxLength":200},"nsfw":{"type":"boolean"},"spoiler":{"type":"boolean"}},"required":["platform","subreddit"],"additionalProperties":false},{"type":"object","properties":{"platform":{"type":"string","const":"pinterest"},"boardId":{"type":"string","minLength":1,"maxLength":200},"title":{"type":"string","minLength":1,"maxLength":100},"link":{"type":"string","format":"uri","maxLength":2000}},"required":["platform","boardId"],"additionalProperties":false},{"type":"object","properties":{"platform":{"type":"string","const":"googlebusiness"},"locationId":{"type":"string","pattern":"^locations\\/\\d{1,30}$"},"topicType":{"type":"string","enum":["STANDARD","EVENT","OFFER"]},"callToAction":{"type":"object","properties":{"type":{"type":"string","enum":["LEARN_MORE","BOOK","ORDER","SHOP","SIGN_UP","CALL"]},"url":{"type":"string","format":"uri","maxLength":2000}},"required":["type","url"],"additionalProperties":false},"event":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":58},"startDate":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$"},"endDate":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$"},"startTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"endTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["title","startDate","endDate"],"additionalProperties":false},"offer":{"type":"object","properties":{"couponCode":{"type":"string","minLength":1,"maxLength":58},"redeemOnlineUrl":{"type":"string","format":"uri","maxLength":2000},"termsConditions":{"type":"string","minLength":1,"maxLength":5000}},"additionalProperties":false}},"required":["platform","locationId","topicType"],"additionalProperties":false}]},{"type":"null"}],"default":null}},"additionalProperties":false,"default":{}},"schedule":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"once"},"at":{"anyOf":[{"type":"string","const":"now"},{"type":"string","format":"date-time"}]}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"recurring"},"recurrence":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"minItems":1,"maxItems":7}},"required":["kind","days"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"monthly"},"dayOfMonth":{"type":"integer","minimum":1,"maximum":31}},"required":["kind","dayOfMonth"],"additionalProperties":false}]},"time":{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$"},"until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["kind","recurrence","time","until"],"additionalProperties":false}]}},"required":["channel","destinationId","schedule"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","const":"facebook_groups"},"socialAccountId":{"type":"string","format":"uuid"},"format":{"type":"string","const":"feed","default":"feed"},"config":{"type":"object","properties":{"folderIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":2000},"groupIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":2000},"excludedGroupIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":2000},"liveFolderConsent":{"type":"boolean","default":false}},"required":["folderIds","groupIds"],"additionalProperties":false},"schedule":{"type":"object","properties":{"kind":{"type":"string","const":"fbgroups"},"start":{"anyOf":[{"type":"string","const":"now"},{"type":"string","format":"date-time"}]},"end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["kind","start","end"],"additionalProperties":false}},"required":["channel","socialAccountId","config","schedule"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","const":"facebook_marketplace"},"destinationId":{"type":"string","format":"uuid"},"format":{"type":"string","const":"listing","default":"listing"},"config":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"item"},"title":{"type":"string","minLength":1,"maxLength":100},"price":{"type":"integer","minimum":0,"maximum":1000000000},"location":{"type":"string","minLength":2,"maxLength":120},"category":{"type":"string","enum":["tools","furniture","household","garden","appliances","video_games","books_movies_music","bags_luggage","womens_clothing_shoes","mens_clothing_shoes","jewelry_accessories","health_beauty","pet_supplies","baby_kids","toys_games","electronics_computers","mobile_phones","bicycles","arts_crafts","sports_outdoors","auto_parts","musical_instruments","antiques_collectibles","garage_sale","miscellaneous"]},"condition":{"type":"string","enum":["new","used_like_new","used_good","used_fair"]}},"required":["kind","title","price","location","category","condition"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"property"},"title":{"type":"string","minLength":1,"maxLength":100},"price":{"type":"integer","minimum":0,"maximum":1000000000},"location":{"type":"string","minLength":2,"maxLength":120},"offer":{"type":"string","enum":["sale","rent"]},"propertyType":{"type":"string","enum":["apartment","house","room","townhouse","other"]},"sizeSqm":{"type":"integer","minimum":1,"maximum":100000},"rooms":{"type":"number","multipleOf":0.5,"minimum":0,"maximum":50},"bathrooms":{"type":"integer","minimum":0,"maximum":20}},"required":["kind","title","price","location","offer","propertyType","rooms","bathrooms"],"additionalProperties":false}]},"schedule":{"type":"object","properties":{"kind":{"type":"string","const":"once"},"at":{"anyOf":[{"type":"string","const":"now"},{"type":"string","format":"date-time"}]}},"required":["kind","at"],"additionalProperties":false}},"required":["channel","destinationId","config","schedule"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","const":"whatsapp"},"whatsappAccountId":{"type":"string","format":"uuid"},"format":{"type":"string","const":"feed","default":"feed"},"config":{"type":"object","properties":{"recipients":{"type":"object","properties":{"mode":{"type":"string","enum":["all_consented","selected"]},"leadIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5000},"groupIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":200},"labelIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"memberGroupIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"audienceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50,"default":[]}},"required":["mode","leadIds","groupIds"],"additionalProperties":false},"consentConfirmed":{"type":"boolean","default":false},"recipientCap":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}],"default":null}},"required":["recipients"],"additionalProperties":false},"schedule":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"once"},"at":{"anyOf":[{"type":"string","const":"now"},{"type":"string","format":"date-time"}]}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"recurring"},"recurrence":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"minItems":1,"maxItems":7}},"required":["kind","days"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"monthly"},"dayOfMonth":{"type":"integer","minimum":1,"maximum":31}},"required":["kind","dayOfMonth"],"additionalProperties":false}]},"time":{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$"},"until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["kind","recurrence","time","until"],"additionalProperties":false}]}},"required":["channel","whatsappAccountId","config","schedule"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","const":"email"},"gmailSenderId":{"type":"string","format":"uuid"},"format":{"type":"string","const":"feed","default":"feed"},"config":{"type":"object","properties":{"senderIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":10},"divide":{"type":"boolean","default":false},"subject":{"type":"string","minLength":1,"maxLength":200},"bodyHtml":{"anyOf":[{"type":"string","maxLength":100000},{"type":"null"}],"default":null},"templateKind":{"type":"string","enum":["announcement","listing","newsletter","personal"],"default":"announcement"},"trackLinks":{"type":"boolean","default":true},"trackOpens":{"type":"boolean","default":false},"recipients":{"type":"object","properties":{"mode":{"type":"string","enum":["all_consented","selected"]},"leadIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":5000},"audienceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50}},"required":["mode","leadIds","audienceIds"],"additionalProperties":false},"consentConfirmed":{"type":"boolean","default":false},"recipientCap":{"anyOf":[{"type":"integer","minimum":0,"maximum":1000000},{"type":"null"}],"default":null}},"required":["senderIds","subject","recipients"],"additionalProperties":false},"schedule":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"once"},"at":{"anyOf":[{"type":"string","const":"now"},{"type":"string","format":"date-time"}]}},"required":["kind","at"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"recurring"},"recurrence":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"weekly"},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"minItems":1,"maxItems":7}},"required":["kind","days"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"monthly"},"dayOfMonth":{"type":"integer","minimum":1,"maximum":31}},"required":["kind","dayOfMonth"],"additionalProperties":false}]},"time":{"type":"string","pattern":"^(?:[01]\\d|2[0-3]):[0-5]\\d$"},"until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["kind","recurrence","time","until"],"additionalProperties":false}]}},"required":["channel","gmailSenderId","config","schedule"],"additionalProperties":false}]},"minItems":1,"maxItems":20},"intent":{"type":"string","enum":["draft","publish"]}},"required":["expectedRevision","post","cards","intent"],"additionalProperties":false},"PostWriteResult":{"type":"object","properties":{"campaignId":{"type":"string","format":"uuid"},"postId":{"type":"string","format":"uuid"},"revision":{"type":"integer","minimum":1},"cards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","enum":["feed","facebook_groups","facebook_marketplace","whatsapp","email"]},"status":{"type":"string","enum":["draft","scheduled","active","paused","finished"]},"setAside":{"type":"string","enum":["marketplace_unavailable","marketplace_disabled","marketplace_listing_exists","marketplace_replaced","connected_account_inactive","text_too_long","media_not_supported","destination_unavailable","media_unavailable","content_unavailable","whatsapp_send_refused","email_send_refused"]}},"required":["id","channel","status"],"additionalProperties":false},"maxItems":20},"replayed":{"type":"boolean"}},"required":["campaignId","postId","revision","cards","replayed"],"additionalProperties":false},"CampaignPatch":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"urgency":{"type":"integer","minimum":1,"maximum":5}},"additionalProperties":false},"CardAction":{"type":"object","properties":{"scope":{"anyOf":[{"type":"object","properties":{"cardIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":200}},"required":["cardIds"],"additionalProperties":false},{"type":"object","properties":{"all":{"type":"boolean","const":true}},"required":["all"],"additionalProperties":false}]},"action":{"type":"string","enum":["pause","resume"]},"confirmRecipientCount":{"type":"integer","minimum":1,"maximum":1000000}},"required":["scope","action"],"additionalProperties":false},"CardActionResult":{"type":"object","properties":{"affected":{"type":"integer","minimum":0},"cards":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["draft","scheduled","active","paused","finished"]},"attention":{"anyOf":[{"type":"string","enum":["kill_switch","account_paused","duplicate_post_quarantine","extension_offline","unknown_session","cloud_offline","cloud_phone_not_ready","cloud_account_in_flight","connected_account_inactive","unroutable_destination","lease_held","account_rail_unreadable","mechanism_not_allowed","media_needs_extension","posting_permission_revoked","posting_principal_unknown","content_rewrite_pending","cloud_identity_choice_required","extension_cannot_post_as_identity","cloud_phone_warming_up","publishing_paused","facebook_refusing_posts","platform_content_rules","no_media_for_platform","publish_failed","grant_stale","whatsapp_needs_review","whatsapp_number_paused","whatsapp_permission_revoked","whatsapp_workspace_stopped","rewrite_failed","recipients_grew","missed_slots","needs_republish","cloud_no_video","send_failed","sender_unavailable","stopped","not_published","story_incomplete"]},{"type":"null"}]},"pausedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"missedSlots":{"type":"integer","minimum":0},"nextRunAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","status","attention","pausedAt","missedSlots","nextRunAt"],"additionalProperties":false}}},"required":["affected","cards"],"additionalProperties":false},"CampaignArchive":{"type":"object","properties":{},"additionalProperties":false},"CampaignArchiveResult":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","const":"archived"}},"required":["id","status"],"additionalProperties":false},"DestinationPage":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["facebook_group","facebook_page","instagram_account","tiktok_account","x_account","linkedin_account","youtube_channel","pinterest_account","googlebusiness_location","snapchat_profile","reddit_account","threads_account","facebook_marketplace"]},"externalId":{"type":"string","minLength":1,"maxLength":100},"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"connectedAccountId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"targetId":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}],"default":null},"marketplaceEligibility":{"anyOf":[{"type":"string","enum":["unknown","eligible","ineligible"]},{"type":"null"}],"default":null},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"socialAccountIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["id","type","externalId","name","connectedAccountId","createdAt","updatedAt","socialAccountIds"],"additionalProperties":false},"maxItems":500},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":2048},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":false},"FacebookIdentityPage":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string","enum":["profile","page"]},"name":{"type":["string","null"]},"status":{"type":"string","enum":["active","needs_attention","paused","disconnected"]},"statusReason":{"anyOf":[{"type":"string","enum":["paused_by_safety","posting_disabled","paused_by_user","facebook_cooldown","reconnect_required","offline","not_paired","signed_out","page_not_visible","recent_refusal","switch_account","not_set_up","setting_up","warming_up","choose_who_posts"]},{"type":"null"}]},"statusUntil":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"readiness":{"type":"object","properties":{"extension":{"type":"string","enum":["ready","offline","not_paired","signed_out","page_not_visible","recent_refusal","switch_account"]},"cloud":{"type":"string","enum":["ready","not_set_up","setting_up","signed_out","warming_up","choose_who_posts","page_not_visible","offline"]}},"required":["extension","cloud"],"additionalProperties":false},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","type","name","status","statusReason","statusUntil","readiness","createdAt","updatedAt"],"additionalProperties":false},"maxItems":50},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":2048},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":false},"ConnectedAccountPage":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"platform":{"type":"string","enum":["instagram","facebook","tiktok","x","linkedin","youtube","pinterest","googlebusiness","snapchat","reddit","threads"]},"name":{"type":["string","null"]},"handle":{"type":["string","null"]},"pictureUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"status":{"type":"string","enum":["active","needs_attention","paused","disconnected"]},"statusReason":{"anyOf":[{"type":"string","enum":["paused_by_safety","posting_disabled","paused_by_user","facebook_cooldown","reconnect_required","offline","not_paired","signed_out","page_not_visible","recent_refusal","switch_account","not_set_up","setting_up","warming_up","choose_who_posts"]},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","platform","name","handle","pictureUrl","status","statusReason","createdAt","updatedAt"],"additionalProperties":false},"maxItems":50},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":2048},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":false},"MediaPage":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["post_media","studio_creative","minisite_file","agent_upload","agent_media","user_avatar","business_logo"]},"mime":{"type":"string","minLength":1,"maxLength":100},"sizeBytes":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["id","kind","mime","sizeBytes","createdAt","updatedAt","url"],"additionalProperties":false},"maxItems":50},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":2048},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":false},"MediaUpload":{"type":"object","properties":{"file":{"type":"string","description":"Binary JPEG, PNG, WebP or GIF (10 MiB maximum), or MP4 (256 MiB maximum).","format":"binary"}},"required":["file"],"additionalProperties":false},"MediaUploadResult":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["post_media","studio_creative","minisite_file","agent_upload","agent_media","user_avatar","business_logo"]},"mime":{"type":"string","minLength":1,"maxLength":100},"sizeBytes":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["id","kind","mime","sizeBytes","createdAt","updatedAt","url"],"additionalProperties":false},"Analytics":{"type":"object","properties":{"totals":{"type":"object","properties":{"impressions":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"reach":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"views":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"likes":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"comments":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"shares":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"saves":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"clicks":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["impressions","reach","views","likes","comments","shares","saves","clicks"],"additionalProperties":false},"byPlatform":{"type":"array","items":{"type":"object","properties":{"engagement":{"type":"object","properties":{"impressions":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"reach":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"views":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"likes":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"comments":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"shares":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"saves":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"clicks":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["impressions","reach","views","likes","comments","shares","saves","clicks"],"additionalProperties":false},"posts":{"type":"integer","minimum":0},"platform":{"type":"string","enum":["instagram","facebook","tiktok","x","linkedin","youtube","pinterest","googlebusiness","snapchat","reddit","threads"]}},"required":["engagement","posts","platform"],"additionalProperties":false}},"byCampaign":{"type":"array","items":{"type":"object","properties":{"engagement":{"type":"object","properties":{"impressions":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"reach":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"views":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"likes":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"comments":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"shares":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"saves":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"clicks":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["impressions","reach","views","likes","comments","shares","saves","clicks"],"additionalProperties":false},"posts":{"type":"integer","minimum":0},"campaignId":{"type":"string","format":"uuid"}},"required":["engagement","posts","campaignId"],"additionalProperties":false}},"followers":{"type":"array","items":{"type":"object","properties":{"connectedAccountId":{"type":"string","format":"uuid"},"platform":{"type":"string","enum":["instagram","facebook","tiktok","x","linkedin","youtube","pinterest","googlebusiness","snapchat","reddit","threads"]},"followers":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"deltaInRange":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["connectedAccountId","platform","followers","deltaInRange"],"additionalProperties":false}}},"required":["totals","byPlatform","byCampaign","followers"],"additionalProperties":false},"PostingActivity":{"type":"object","properties":{"activity":{"anyOf":[{"type":"object","properties":{"mode":{"type":"string","const":"period"},"period":{"type":"object","properties":{"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"timeZone":{"type":"string"},"label":{"type":"string"}},"required":["from","to","timeZone","label"],"additionalProperties":false},"networks":{"anyOf":[{"type":"array","items":{"type":"string","enum":["facebook_groups","facebook_page","facebook_marketplace","instagram","tiktok","linkedin","x","youtube","pinterest","google_business","threads","reddit","snapchat","whatsapp"]}},{"type":"null"}]},"totals":{"type":"array","items":{"type":"object","properties":{"network":{"type":"string","enum":["facebook_groups","facebook_page","facebook_marketplace","instagram","tiktok","linkedin","x","youtube","pinterest","google_business","threads","reddit","snapchat","whatsapp"]},"posted":{"type":"integer","minimum":0},"partlyPosted":{"type":"integer","minimum":0},"needsChecking":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0},"waiting":{"type":"integer","minimum":0}},"required":["network","posted","partlyPosted","needsChecking","failed","waiting"],"additionalProperties":false}},"posts":{"type":"array","items":{"type":"object","properties":{"jobId":{"type":"string","format":"uuid"},"postId":{"type":"string","format":"uuid"},"at":{"type":"string","format":"date-time"},"network":{"type":"string","enum":["facebook_groups","facebook_page","facebook_marketplace","instagram","tiktok","linkedin","x","youtube","pinterest","google_business","threads","reddit","snapchat","whatsapp"]},"destination":{"type":["string","null"]},"account":{"type":["string","null"]},"campaign":{"type":["string","null"]},"outcome":{"type":"string","enum":["posted","partly_posted","needs_checking","failed","waiting"]},"reason":{"anyOf":[{"type":"string","pattern":"^[a-z0-9_.:-]{1,64}$"},{"type":"null"}]},"permalink":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"excerpt":{"type":"string"}},"required":["jobId","postId","at","network","destination","account","campaign","outcome","reason","permalink","excerpt"],"additionalProperties":false}},"postsMatched":{"type":"integer","minimum":0},"hiddenFailed":{"type":"integer","minimum":0},"hiddenWaiting":{"type":"integer","minimum":0},"nextOffset":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"bulkSends":{"type":"array","items":{"type":"object","properties":{"sendId":{"type":"string","format":"uuid"},"startedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"lastActivityAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"whatsappNumber":{"type":["string","null"]},"whatsappAccount":{"type":["string","null"]},"campaign":{"type":["string","null"]},"status":{"type":"string","enum":["draft","active","paused","stopped","done"]},"recipients":{"type":"integer","minimum":0},"sent":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0},"needsReview":{"type":"integer","minimum":0},"left":{"type":"integer","minimum":0},"skipped":{"type":"integer","minimum":0}},"required":["sendId","startedAt","lastActivityAt","whatsappNumber","whatsappAccount","campaign","status","recipients","sent","failed","needsReview","left","skipped"],"additionalProperties":false}},"bulkSendsMatched":{"type":"integer","minimum":0},"bulkSendsNextOffset":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["mode","period","networks","totals","posts","postsMatched","hiddenFailed","hiddenWaiting","nextOffset","bulkSends","bulkSendsMatched","bulkSendsNextOffset"],"additionalProperties":false},{"type":"object","properties":{"mode":{"type":"string","const":"bulk_send"},"bulkSend":{"type":"object","properties":{"sendId":{"type":"string","format":"uuid"},"startedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"lastActivityAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"whatsappNumber":{"type":["string","null"]},"whatsappAccount":{"type":["string","null"]},"campaign":{"type":["string","null"]},"status":{"type":"string","enum":["draft","active","paused","stopped","done"]},"recipients":{"type":"integer","minimum":0},"sent":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0},"needsReview":{"type":"integer","minimum":0},"left":{"type":"integer","minimum":0},"skipped":{"type":"integer","minimum":0}},"required":["sendId","startedAt","lastActivityAt","whatsappNumber","whatsappAccount","campaign","status","recipients","sent","failed","needsReview","left","skipped"],"additionalProperties":false},"onlyProblems":{"type":"boolean"},"recipients":{"type":"array","items":{"type":"object","properties":{"contactId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"kind":{"type":"string","enum":["contact","group","member"]},"name":{"type":["string","null"]},"status":{"type":"string","enum":["sent","failed","needs_review","skipped","left"]},"reason":{"anyOf":[{"type":"string","pattern":"^[a-z0-9_.:-]{1,64}$"},{"type":"null"}]},"at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["contactId","kind","name","status","reason","at"],"additionalProperties":false}},"recipientsMatched":{"type":"integer","minimum":0},"nextOffset":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["mode","bulkSend","onlyProblems","recipients","recipientsMatched","nextOffset"],"additionalProperties":false}]},"nextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":2048},{"type":"null"}]},"bulkSendsNextCursor":{"anyOf":[{"type":"string","minLength":1,"maxLength":2048},{"type":"null"}]}},"required":["activity","nextCursor","bulkSendsNextCursor"],"additionalProperties":false},"Contact":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"displayName":{"type":["string","null"]},"phone":{"type":["string","null"]},"email":{"type":["string","null"]},"ownerUserId":{"type":"string","format":"uuid"},"ownerName":{"type":["string","null"]},"stageId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"stageEnteredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"dealValueMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"dealCurrency":{"anyOf":[{"type":"string","enum":["ILS","USD","EUR"]},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"custom":{"type":"object","additionalProperties":{"type":"string"}},"lossReason":{"anyOf":[{"type":"string","enum":["price","bought_elsewhere","not_serious","no_answer","other"]},{"type":"null"}]},"lossNote":{"type":["string","null"]},"origin":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["social_post","paid_ad","fb_group","referral","website","event","returning","sign","open_house","portal","other","unknown","outreach"]},"platform":{"anyOf":[{"type":"string","enum":["instagram","facebook","tiktok","x","linkedin","youtube","pinterest","googlebusiness","snapchat","reddit","threads","whatsapp"]},{"type":"null"}]},"detail":{"type":["string","null"]}},"required":["kind","platform","detail"],"additionalProperties":false},{"type":"null"}]},"pendingTransfer":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"toUserId":{"type":"string","format":"uuid"},"toName":{"type":["string","null"]},"requestedByUserId":{"type":"string","format":"uuid"},"requestedByName":{"type":["string","null"]},"reason":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"canDecide":{"type":"boolean"}},"required":["id","toUserId","toName","requestedByUserId","requestedByName","reason","createdAt","canDecide"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"entryKind":{"anyOf":[{"type":"string","enum":["manual","chat","assistant","booking","import","site_form","ad_form","signup","api"]},{"type":"null"}]}},"required":["id","displayName","phone","email","ownerUserId","ownerName","stageId","stageEnteredAt","dealValueMinor","dealCurrency","tags","custom","lossReason","lossNote","origin","pendingTransfer","createdAt","updatedAt","entryKind"],"additionalProperties":false},"ContactDetail":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"displayName":{"type":["string","null"]},"phone":{"type":["string","null"]},"email":{"type":["string","null"]},"ownerUserId":{"type":"string","format":"uuid"},"ownerName":{"type":["string","null"]},"stageId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"stageEnteredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"dealValueMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"dealCurrency":{"anyOf":[{"type":"string","enum":["ILS","USD","EUR"]},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"custom":{"type":"object","additionalProperties":{"type":"string"}},"lossReason":{"anyOf":[{"type":"string","enum":["price","bought_elsewhere","not_serious","no_answer","other"]},{"type":"null"}]},"lossNote":{"type":["string","null"]},"origin":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["social_post","paid_ad","fb_group","referral","website","event","returning","sign","open_house","portal","other","unknown","outreach"]},"platform":{"anyOf":[{"type":"string","enum":["instagram","facebook","tiktok","x","linkedin","youtube","pinterest","googlebusiness","snapchat","reddit","threads","whatsapp"]},{"type":"null"}]},"detail":{"type":["string","null"]}},"required":["kind","platform","detail"],"additionalProperties":false},{"type":"null"}]},"pendingTransfer":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"toUserId":{"type":"string","format":"uuid"},"toName":{"type":["string","null"]},"requestedByUserId":{"type":"string","format":"uuid"},"requestedByName":{"type":["string","null"]},"reason":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"canDecide":{"type":"boolean"}},"required":["id","toUserId","toName","requestedByUserId","requestedByName","reason","createdAt","canDecide"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"entryKind":{"anyOf":[{"type":"string","enum":["manual","chat","assistant","booking","import","site_form","ad_form","signup","api"]},{"type":"null"}]},"notes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"authorUserId":{"type":"string","format":"uuid"},"authorName":{"type":["string","null"]},"body":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","authorUserId","authorName","body","createdAt"],"additionalProperties":false}}},"required":["id","displayName","phone","email","ownerUserId","ownerName","stageId","stageEnteredAt","dealValueMinor","dealCurrency","tags","custom","lossReason","lossNote","origin","pendingTransfer","createdAt","updatedAt","entryKind","notes"],"additionalProperties":false},"ContactPage":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"displayName":{"type":["string","null"]},"phone":{"type":["string","null"]},"email":{"type":["string","null"]},"ownerUserId":{"type":"string","format":"uuid"},"ownerName":{"type":["string","null"]},"stageId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"stageEnteredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"dealValueMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"dealCurrency":{"anyOf":[{"type":"string","enum":["ILS","USD","EUR"]},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"custom":{"type":"object","additionalProperties":{"type":"string"}},"lossReason":{"anyOf":[{"type":"string","enum":["price","bought_elsewhere","not_serious","no_answer","other"]},{"type":"null"}]},"lossNote":{"type":["string","null"]},"origin":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["social_post","paid_ad","fb_group","referral","website","event","returning","sign","open_house","portal","other","unknown","outreach"]},"platform":{"anyOf":[{"type":"string","enum":["instagram","facebook","tiktok","x","linkedin","youtube","pinterest","googlebusiness","snapchat","reddit","threads","whatsapp"]},{"type":"null"}]},"detail":{"type":["string","null"]}},"required":["kind","platform","detail"],"additionalProperties":false},{"type":"null"}]},"pendingTransfer":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"toUserId":{"type":"string","format":"uuid"},"toName":{"type":["string","null"]},"requestedByUserId":{"type":"string","format":"uuid"},"requestedByName":{"type":["string","null"]},"reason":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"canDecide":{"type":"boolean"}},"required":["id","toUserId","toName","requestedByUserId","requestedByName","reason","createdAt","canDecide"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"entryKind":{"anyOf":[{"type":"string","enum":["manual","chat","assistant","booking","import","site_form","ad_form","signup","api"]},{"type":"null"}]}},"required":["id","displayName","phone","email","ownerUserId","ownerName","stageId","stageEnteredAt","dealValueMinor","dealCurrency","tags","custom","lossReason","lossNote","origin","pendingTransfer","createdAt","updatedAt","entryKind"],"additionalProperties":false},"maxItems":50},"nextCursor":{"type":["string","null"]}},"required":["items","nextCursor"],"additionalProperties":false},"ContactAttribution":{"type":"object","properties":{"pageUrl":{"type":"string","format":"uri","maxLength":2000},"eventId":{"type":"string","minLength":1,"maxLength":500},"utm":{"type":"object","properties":{"source":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"medium":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"campaign":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"term":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"content":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"additionalProperties":false},"clickIds":{"type":"object","properties":{"fbclid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"gclid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"gbraid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"wbraid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"ttclid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"li_fat_id":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"fbc":{"type":"string","maxLength":500},"fbp":{"type":"string","maxLength":500}},"additionalProperties":false},"ip":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"ipv6"}]},"userAgent":{"type":"string","maxLength":300},"adConsent":{"type":"string","enum":["granted","denied"]}},"required":["adConsent"],"additionalProperties":false},"ContactCreate":{"type":"object","properties":{"externalId":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[\\x21-\\x7e]+$"},"displayName":{"type":"string","minLength":1,"maxLength":120},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"email":{"anyOf":[{"type":"string","format":"email","maxLength":254},{"type":"null"}]},"stageId":{"type":"string","format":"uuid"},"ownerUserId":{"type":"string","format":"uuid"},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20},"custom":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"propertyNames":{"format":"uuid"}},"dealValueMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"dealCurrency":{"type":"string","enum":["ILS","USD","EUR"]},"origin":{"type":"object","properties":{"kind":{"type":"string","enum":["social_post","paid_ad","fb_group","referral","website","event","returning","sign","open_house","portal","other","unknown"]},"platform":{"type":"string","enum":["instagram","facebook","tiktok","x","linkedin","youtube","pinterest","googlebusiness","snapchat","reddit","threads","whatsapp"]},"detail":{"type":"string","maxLength":200}},"required":["kind"],"additionalProperties":false},"attribution":{"type":"object","properties":{"pageUrl":{"type":"string","format":"uri","maxLength":2000},"eventId":{"type":"string","minLength":1,"maxLength":500},"utm":{"type":"object","properties":{"source":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"medium":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"campaign":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"term":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"content":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"additionalProperties":false},"clickIds":{"type":"object","properties":{"fbclid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"gclid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"gbraid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"wbraid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"ttclid":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"li_fat_id":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"fbc":{"type":"string","maxLength":500},"fbp":{"type":"string","maxLength":500}},"additionalProperties":false},"ip":{"type":"string","anyOf":[{"format":"ipv4"},{"format":"ipv6"}]},"userAgent":{"type":"string","maxLength":300},"adConsent":{"type":"string","enum":["granted","denied"]}},"required":["adConsent"],"additionalProperties":false}},"required":["externalId","displayName","phone","email"],"additionalProperties":false},"ContactCreateResult":{"type":"object","properties":{"contact":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"displayName":{"type":["string","null"]},"phone":{"type":["string","null"]},"email":{"type":["string","null"]},"ownerUserId":{"type":"string","format":"uuid"},"ownerName":{"type":["string","null"]},"stageId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"stageEnteredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"dealValueMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"dealCurrency":{"anyOf":[{"type":"string","enum":["ILS","USD","EUR"]},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"custom":{"type":"object","additionalProperties":{"type":"string"}},"lossReason":{"anyOf":[{"type":"string","enum":["price","bought_elsewhere","not_serious","no_answer","other"]},{"type":"null"}]},"lossNote":{"type":["string","null"]},"origin":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["social_post","paid_ad","fb_group","referral","website","event","returning","sign","open_house","portal","other","unknown","outreach"]},"platform":{"anyOf":[{"type":"string","enum":["instagram","facebook","tiktok","x","linkedin","youtube","pinterest","googlebusiness","snapchat","reddit","threads","whatsapp"]},{"type":"null"}]},"detail":{"type":["string","null"]}},"required":["kind","platform","detail"],"additionalProperties":false},{"type":"null"}]},"pendingTransfer":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"toUserId":{"type":"string","format":"uuid"},"toName":{"type":["string","null"]},"requestedByUserId":{"type":"string","format":"uuid"},"requestedByName":{"type":["string","null"]},"reason":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"canDecide":{"type":"boolean"}},"required":["id","toUserId","toName","requestedByUserId","requestedByName","reason","createdAt","canDecide"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"entryKind":{"anyOf":[{"type":"string","enum":["manual","chat","assistant","booking","import","site_form","ad_form","signup","api"]},{"type":"null"}]},"notes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"authorUserId":{"type":"string","format":"uuid"},"authorName":{"type":["string","null"]},"body":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","authorUserId","authorName","body","createdAt"],"additionalProperties":false}}},"required":["id","displayName","phone","email","ownerUserId","ownerName","stageId","stageEnteredAt","dealValueMinor","dealCurrency","tags","custom","lossReason","lossNote","origin","pendingTransfer","createdAt","updatedAt","entryKind","notes"],"additionalProperties":false},"created":{"type":"boolean"}},"required":["contact","created"],"additionalProperties":false},"ContactPatch":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":120},"phone":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}]},"email":{"anyOf":[{"type":"string","format":"email","maxLength":254},{"type":"null"}]},"stageId":{"type":"string","format":"uuid"},"lossReason":{"type":"string","enum":["price","bought_elsewhere","not_serious","no_answer","other"]},"lossNote":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20},"custom":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"propertyNames":{"format":"uuid"}},"dealValueMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"dealCurrency":{"anyOf":[{"type":"string","enum":["ILS","USD","EUR"]},{"type":"null"}]}},"additionalProperties":false},"ContactOwner":{"type":"object","properties":{"toUserId":{"type":"string","format":"uuid"},"reason":{"type":"string","maxLength":300}},"required":["toUserId"],"additionalProperties":false},"ContactOwnerResult":{"anyOf":[{"type":"object","properties":{"outcome":{"type":"string","const":"reassigned"}},"required":["outcome"],"additionalProperties":false},{"type":"object","properties":{"outcome":{"type":"string","const":"requested"},"requestId":{"type":"string","format":"uuid"}},"required":["outcome","requestId"],"additionalProperties":false}]},"NoteCreate":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":4000}},"required":["body"],"additionalProperties":false},"Note":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid"},"authorUserId":{"type":"string","format":"uuid"},"body":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","contactId","authorUserId","body","createdAt"],"additionalProperties":false},"CrmStages":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"label":{"allOf":[{"type":"string","minLength":1,"maxLength":60},{"type":"string","minLength":1}]},"position":{"type":"integer","minimum":0},"meaning":{"type":"string","enum":["open","qualified","meeting_held","won","lost","not_relevant"]}},"required":["id","label","position","meaning"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false},"CrmMembers":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","format":"uuid"},"fullName":{"type":["string","null"]},"role":{"type":"string","enum":["owner","admin","member","viewer"]}},"required":["userId","fullName","role"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false},"WebhookContact":{"type":"object","properties":{"type":{"type":"string","enum":["contact.created","contact.updated"]},"timestamp":{"type":"string","format":"date-time"},"data":{"type":"object","properties":{"contact":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"displayName":{"type":["string","null"]},"phone":{"type":["string","null"]},"email":{"type":["string","null"]},"ownerUserId":{"type":"string","format":"uuid"},"ownerName":{"type":["string","null"]},"stageId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"stageEnteredAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"dealValueMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"dealCurrency":{"anyOf":[{"type":"string","enum":["ILS","USD","EUR"]},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string"}},"custom":{"type":"object","additionalProperties":{"type":"string"}},"lossReason":{"anyOf":[{"type":"string","enum":["price","bought_elsewhere","not_serious","no_answer","other"]},{"type":"null"}]},"lossNote":{"type":["string","null"]},"origin":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["social_post","paid_ad","fb_group","referral","website","event","returning","sign","open_house","portal","other","unknown","outreach"]},"platform":{"anyOf":[{"type":"string","enum":["instagram","facebook","tiktok","x","linkedin","youtube","pinterest","googlebusiness","snapchat","reddit","threads","whatsapp"]},{"type":"null"}]},"detail":{"type":["string","null"]}},"required":["kind","platform","detail"],"additionalProperties":false},{"type":"null"}]},"pendingTransfer":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"toUserId":{"type":"string","format":"uuid"},"toName":{"type":["string","null"]},"requestedByUserId":{"type":"string","format":"uuid"},"requestedByName":{"type":["string","null"]},"reason":{"type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"canDecide":{"type":"boolean"}},"required":["id","toUserId","toName","requestedByUserId","requestedByName","reason","createdAt","canDecide"],"additionalProperties":false},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"entryKind":{"anyOf":[{"type":"string","enum":["manual","chat","assistant","booking","import","site_form","ad_form","signup","api"]},{"type":"null"}]}},"required":["id","displayName","phone","email","ownerUserId","ownerName","stageId","stageEnteredAt","dealValueMinor","dealCurrency","tags","custom","lossReason","lossNote","origin","pendingTransfer","createdAt","updatedAt","entryKind"],"additionalProperties":false}},"required":["contact"],"additionalProperties":false}},"required":["type","timestamp","data"],"additionalProperties":false},"WebhookCampaign":{"type":"object","properties":{"type":{"type":"string","const":"campaign.status_changed"},"timestamp":{"type":"string","format":"date-time"},"data":{"type":"object","properties":{"campaign":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"workspaceId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["advanced","quick"],"default":"advanced"},"goal":{"type":"string","enum":["leads","event","sales","traffic","other"],"default":"other"},"goalDetail":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"default":null},"priorityStars":{"type":"integer","minimum":1,"maximum":5,"default":3},"creationState":{"anyOf":[{"type":"string","enum":["creating","failed"]},{"type":"null"}],"default":null},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["archived","creating","active","scheduled","paused","finished","draft"]}},"required":["id","workspaceId","name","createdAt","updatedAt","status"],"additionalProperties":false},"previousStatus":{"type":"string","enum":["archived","creating","active","scheduled","paused","finished","draft"]}},"required":["campaign","previousStatus"],"additionalProperties":false}},"required":["type","timestamp","data"],"additionalProperties":false},"WebhookTest":{"type":"object","properties":{"type":{"type":"string","const":"webhook.test"},"timestamp":{"type":"string","format":"date-time"},"data":{"type":"object","properties":{"test":{"type":"boolean","const":true}},"required":["test"],"additionalProperties":false}},"required":["type","timestamp","data"],"additionalProperties":false}}},"webhooks":{"contact.created":{"post":{"security":[],"description":"Signed outbound HTTPS POST; at-least-once, unordered delivery. Verify the HMAC in constant time, enforce a ±5 minute timestamp window and deduplicate webhook-id for 30 days. Signing input is <id>.<timestamp>.<exact UTF-8 body>; the key is the base64-decoded whsec_ secret.","parameters":[{"name":"webhook-id","in":"header","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stable delivery id; use for deduplication."},{"name":"webhook-timestamp","in":"header","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Unix seconds for this attempt."},{"name":"webhook-signature","in":"header","required":true,"schema":{"type":"string"},"description":"v1,<base64 HMAC-SHA256>"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookContact"}}}},"responses":{"200":{"description":"Any 2xx acknowledges delivery."}}}},"contact.updated":{"post":{"security":[],"description":"Signed outbound HTTPS POST; at-least-once, unordered delivery. Verify the HMAC in constant time, enforce a ±5 minute timestamp window and deduplicate webhook-id for 30 days. Signing input is <id>.<timestamp>.<exact UTF-8 body>; the key is the base64-decoded whsec_ secret.","parameters":[{"name":"webhook-id","in":"header","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stable delivery id; use for deduplication."},{"name":"webhook-timestamp","in":"header","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Unix seconds for this attempt."},{"name":"webhook-signature","in":"header","required":true,"schema":{"type":"string"},"description":"v1,<base64 HMAC-SHA256>"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookContact"}}}},"responses":{"200":{"description":"Any 2xx acknowledges delivery."}}}},"campaign.status_changed":{"post":{"security":[],"description":"Signed outbound HTTPS POST; at-least-once, unordered delivery. Verify the HMAC in constant time, enforce a ±5 minute timestamp window and deduplicate webhook-id for 30 days. Signing input is <id>.<timestamp>.<exact UTF-8 body>; the key is the base64-decoded whsec_ secret.","parameters":[{"name":"webhook-id","in":"header","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stable delivery id; use for deduplication."},{"name":"webhook-timestamp","in":"header","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Unix seconds for this attempt."},{"name":"webhook-signature","in":"header","required":true,"schema":{"type":"string"},"description":"v1,<base64 HMAC-SHA256>"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCampaign"}}}},"responses":{"200":{"description":"Any 2xx acknowledges delivery."}}}},"webhook.test":{"post":{"security":[],"description":"Signed outbound HTTPS POST; at-least-once, unordered delivery. Verify the HMAC in constant time, enforce a ±5 minute timestamp window and deduplicate webhook-id for 30 days. Signing input is <id>.<timestamp>.<exact UTF-8 body>; the key is the base64-decoded whsec_ secret.","parameters":[{"name":"webhook-id","in":"header","required":true,"schema":{"type":"string","format":"uuid"},"description":"Stable delivery id; use for deduplication."},{"name":"webhook-timestamp","in":"header","required":true,"schema":{"type":"string","pattern":"^[0-9]+$"},"description":"Unix seconds for this attempt."},{"name":"webhook-signature","in":"header","required":true,"schema":{"type":"string"},"description":"v1,<base64 HMAC-SHA256>"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookTest"}}}},"responses":{"200":{"description":"Any 2xx acknowledges delivery."}}}}},"paths":{"/contacts":{"get":{"operationId":"listContacts","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactPage"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048}},{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"stageId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"includeLost","in":"query","required":false,"schema":{"type":"string","enum":["true","false"]}}],"description":"CRM-visible contacts, newest first; cursor binds person, workspace and filters. Identifiers retain CRM redaction."},"post":{"operationId":"createContact","responses":{"200":{"description":"Existing contact; externalId is find-or-create, not an update.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactCreateResult"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"201":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactCreateResult"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactCreate"}}}},"description":"Write access and crm:write. Required workspace-wide externalId replays across keys/users without changing existing fields. Attribution may attach to one editable identity match. No attribution means an identity duplicate conflicts. Consent is required for click ids/IP/user agent."}},"/contacts/{id}":{"get":{"operationId":"getContact","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactDetail"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}]},"patch":{"operationId":"patchContact","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactDetail"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactPatch"}}}},"description":"CRM stage/loss/deal/tag/custom-field rules and conversion milestones remain authoritative."}},"/contacts/{id}/owner":{"post":{"operationId":"transferContact","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactOwnerResult"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactOwner"}}}},"description":"Returns reassigned or requested under the existing CRM ownership rules."}},"/contacts/{id}/notes":{"post":{"operationId":"createContactNote","responses":{"201":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Note"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7e]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteCreate"}}}},"description":"Same actor/workspace/contact/key and trimmed body replays one note with 201 after reauthorization. Changed body conflicts (409); deleted note stays consumed (410)."}},"/contacts/{id}/notes/{noteId}":{"delete":{"operationId":"deleteContactNote","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"noteId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Note deleted.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/crm/stages":{"get":{"operationId":"listCrmStages","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmStages"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/crm/members":{"get":{"operationId":"listCrmMembers","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmMembers"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/campaigns":{"get":{"operationId":"listCampaigns","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignPage"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048}}],"description":"Newest first. Seek pagination defaults to 20, max 50; cursors are collection/user/workspace-bound, preserve timestamp microseconds and are not a snapshot. Status is journey-derived, not proof of delivery."},"post":{"operationId":"createCampaign","responses":{"201":{"description":"Current campaign state, on first creation or authorized replay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCreateResult"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7e]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCreate"}}}},"description":"Requires write access. Creates a standalone draft. Reuse the exact key and normalized body after an uncertain response, including after rotating the API key. Changed content conflicts. Deleted creations remain consumed; live/archived replay never reactivates work or repeats creation effects. No automatic retry."}},"/campaigns/{id}":{"get":{"operationId":"getCampaign","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}]},"patch":{"operationId":"patchCampaign","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7e]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignPatch"}}}},"description":"Rename or change urgency. Write access is restricted to an unarmed draft campaign; otherwise publish access and the current publishing role are required. No status, goal or lead-owner override. A matching retry returns current state without overwriting a later edit."}},"/campaigns/{id}/posts":{"get":{"operationId":"listCampaignPosts","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignPostPage"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048}}],"description":"Current journey posts and derived card standings; no recipient lists or provider envelopes."}},"/posts":{"post":{"operationId":"createPost","responses":{"201":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostWriteResult"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7e]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCreate"}}}},"description":"Save a post in an existing campaign on any existing journey channel: feeds, Facebook groups, WhatsApp, email or Marketplace. Drafts need write access; intent publish needs publish access/current role. Publication is the audited grant over this supplied reviewed payload and schedule, not proof of external delivery. Recipient consent/caps, sender/account rights and media custody still apply. Non-null WhatsApp caps cannot be widened. Marketplace retains the app's guarded property-record side effect. Retry only with the original key and body."}},"/posts/{id}":{"get":{"operationId":"getPost","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Post"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}]},"put":{"operationId":"updatePost","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostWriteResult"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7e]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostUpdate"}}}},"description":"Full desired card set and exact reviewed expectedRevision. Existing card IDs are retained, omitted cards removed. Use intent publish to publish/schedule a reviewed draft; keep your reviewed configurations because GET never exposes recipient/configuration data. Never reconstruct a newer version. Stale new edits conflict. Draft-only keys cannot alter approved or previously started posts even with intent draft. Verified retries return current surviving-card metadata (possibly empty), not a historical snapshot, and never reapply publication."}},"/campaigns/{id}/cards/actions":{"post":{"operationId":"applyCardAction","responses":{"201":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardActionResult"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7e]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardAction"}}}},"description":"Publish access/current publishing role required for pause and resume. Applies once to the selected cards, including message channels. Resume does not catch up missed recurring slots, but can start a never-run matching-grant card. Existing email sender/recipient reconfirmation rules apply. An original-key retry returns current surviving captured cards: it cannot undo a later pause/resume or affect newly added cards. Does not control independent paid-ad budgets or recall in-flight sends."}},"/campaigns/{id}/archive":{"post":{"operationId":"archiveCampaign","responses":{"201":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignArchiveResult"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[\\x21-\\x7e]+$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignArchive"}}}},"description":"Publish access/current publishing role required. Terminally archives and stops future/queued work, including WhatsApp and email; already in-flight requests may complete and published content remains. Separate paid-ad budgets are unaffected. A matching retry can finish remaining queued-job cancellation while still archived, but cannot re-archive a legacy/manual reactivation."}},"/destinations":{"get":{"operationId":"listDestinations","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DestinationPage"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["facebook_group","facebook_page","instagram_account","tiktok_account","x_account","linkedin_account","youtube_channel","pinterest_account","googlebusiness_location","snapchat_profile","reddit_account","threads_account","facebook_marketplace"]}},{"name":"socialAccountId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"connectedAccountId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"description":"Newest first; limit up to 500. Facebook group and Marketplace rows appear only when a Facebook identity you may post with reaches them, listed in socialAccountIds (every active member identity of a group). connectedAccountId is the official-API account and is null for Facebook groups and Marketplace. Filters: type, socialAccountId, connectedAccountId; a cursor is bound to its filters."}},"/facebook-identities":{"get":{"operationId":"listFacebookIdentities","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacebookIdentityPage"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048}}],"description":"Facebook profiles and Pages you may post with, including disconnected ones. id is a card's socialAccountId. status: active, needs_attention, paused or disconnected, with statusReason and per-rail readiness."}},"/connected-accounts":{"get":{"operationId":"listConnectedAccounts","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedAccountPage"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048}}],"description":"Official-API accounts you may post with, including expired and revoked ones. id is a destination's connectedAccountId."}},"/media":{"get":{"operationId":"listMedia","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaPage"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048}}],"description":"Only postable media visible/attachable by the current uploader; never colleague-private chat uploads or storage credentials."},"post":{"operationId":"uploadMedia","responses":{"201":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaUploadResult"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/MediaUpload"}}}},"description":"Requires write access. One file: JPEG/PNG/WebP/GIF ≤10 MiB, or MP4 ≤256 MiB, validated by MIME/signature. Quota/authorization precede upload buffering. At-least-once: manual retry can create an extra unlinked asset. Unlinked staging becomes cleanup-eligible after 24 hours (15-minute bounded sweep); legitimate app attachments protect it. No exact deletion time or automatic retry."}},"/analytics":{"get":{"operationId":"getAnalytics","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Analytics"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time"}}]}},"/posting-activity":{"get":{"operationId":"listPostingActivity","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostingActivity"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."}}},"400":{"description":"Invalid input, cursor, idempotency key or conflicting workspace selector.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, expired, revoked or otherwise invalid API credential/current identity, or a browser request (browser_request_not_allowed).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Key access, current role or seat denies the operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource absent, foreign or API disabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Current seat/resource conflict, or an operation key reused with changed content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"A consumed operation refers to a deleted resource or parent and cannot recreate it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Upload exceeds the media byte bound.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Unsupported media type, content encoding or charset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The reviewed content has no currently publishable channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Per-key minute or shared workspace/user UTC-day quota exhausted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"X-RateLimit-Day-Limit":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Remaining":{"schema":{"type":"integer","minimum":0},"description":"Quota limit or remaining requests."},"X-RateLimit-Day-Reset":{"schema":{"type":"integer","minimum":0},"description":"Reset time as Unix epoch seconds."},"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds to wait before quota admission can succeed."}}},"500":{"description":"Unexpected read failure, or unknown write outcome. Inspect state; retry a keyed write only with its original key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Authentication, storage or distributed quota dependency unavailable; admission fails closed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":2048}},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"period","in":"query","required":false,"schema":{"type":"string","enum":["past_week","past_month"]}},{"name":"network","in":"query","required":false,"schema":{"type":"string","enum":["facebook_groups","facebook_page","facebook_marketplace","instagram","tiktok","linkedin","x","youtube","pinterest","google_business","threads","reddit","snapchat","whatsapp"]}},{"name":"includeFailures","in":"query","required":false,"schema":{"type":"string","enum":["true","false"],"default":"false"}},{"name":"bulkSendId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"description":"Cursor pins the time window and filters. Keep filters and limit unchanged. For bulkSendsNextCursor from a mixed page, continue with network=whatsapp. Sending/scheduling remains asynchronous; activity is evidence, not an exactly-once delivery guarantee."}}},"x-quota-policy":"Defaults: 60 requests/minute/API key; 1000 requests/UTC day/workspace and issuing user across all keys. Reads, retries and authenticated permission/seat/selector denials count. Rotation does not reset the day budget. Redis failure denies admission. Respect Retry-After; do not automatically retry uploads or uncertain unkeyed writes."}