{"openapi":"3.0.3","info":{"title":"Keryx Customer Creative API","version":"1.0.0","description":"The existing customer workspace, products, creative operations and campaign results. Campaign launch and funding are outside this API."},"servers":[{"url":"https://app.keryxmarketing.com/api"}],"paths":{"/v1/prospects/{workspaceId}/invitation":{"post":{"operationId":"post__v1_prospects_workspaceId_invitation","security":[{"customerOAuth":["prospects:prepare"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"workspaceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[!-~]+$"},"description":"Reuse this key and the exact request body after response loss. An accepted replay does not purchase work again. A new key represents a new action."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["resume_operation"]},"operationId":{"type":"string","minLength":1}},"required":["schemaVersion","command","operationId"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["start_concepts"]},"direction":{"type":"string","minLength":1},"directionSource":{"type":"string","enum":["owner","product_context"]},"expectedRevision":{"type":"integer","minimum":0}},"required":["schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["add_concept"]},"direction":{"type":"string","minLength":1},"directionSource":{"type":"string","enum":["owner","product_context"]},"uploads":{"type":"array","items":{"type":"object","properties":{"uploadId":{"type":"string","minLength":1},"fileName":{"type":"string","minLength":1,"maxLength":255}},"required":["uploadId"],"additionalProperties":false},"minItems":1,"maxItems":4}},"required":["schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["approve_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["remove_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["restore_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["iterate_concept"]},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","instruction"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["branch_concept"]},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","instruction"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["revert_concept"]},"targetIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","targetIdea"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["create_formats"]},"concepts":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"formats":{"type":"array","items":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"minItems":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","formats"],"additionalProperties":false},"minItems":1}},"required":["schemaVersion","command","concepts"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["revise_output"]},"outputVersionId":{"type":"string","minLength":1},"instruction":{"type":"string","minLength":1},"retrySoundtrack":{"type":"boolean","enum":[true]}},"required":["schemaVersion","command","outputVersionId","instruction"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["save_search_ad"]},"outputVersionId":{"type":"string","minLength":1},"googleSearchCreative":{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"responsiveSearchAd":{"type":"object","properties":{"headlines":{"type":"array","items":{"type":"string","minLength":1},"minItems":3,"maxItems":15},"descriptions":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":4},"path1":{"type":"string","minLength":1},"path2":{"type":"string","minLength":1}},"required":["headlines","descriptions"],"additionalProperties":false},"adGroups":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"keywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"minItems":1,"maxItems":50},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":50,"default":[]}},"required":["name","keywords"],"additionalProperties":false},"minItems":1,"maxItems":10},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":100,"default":[]}},"required":["destinationUrl","responsiveSearchAd","adGroups"],"additionalProperties":false}},"required":["schemaVersion","command","outputVersionId","googleSearchCreative"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["start_output_from"]},"sourceOutputVersionId":{"type":"string","minLength":1},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","sourceOutputVersionId","instruction"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["finalize_platforms"]},"outputVersionIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"platforms":{"type":"array","items":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"minItems":1},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]}},"required":["schemaVersion","command","outputVersionIds","platforms","destination"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work."},"201":{"description":"Product created."},"202":{"description":"Work accepted; read its saved status without resubmitting."},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/creative-invitations/{invitationId}/revoke":{"post":{"operationId":"post__v1_creative_invitations_invitationId_revoke","security":[{"customerOAuth":["prospects:prepare"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"invitationId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[!-~]+$"},"description":"Reuse this key and the exact request body after response loss. An accepted replay does not purchase work again. A new key represents a new action."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["resume_operation"]},"operationId":{"type":"string","minLength":1}},"required":["schemaVersion","command","operationId"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["start_concepts"]},"direction":{"type":"string","minLength":1},"directionSource":{"type":"string","enum":["owner","product_context"]},"expectedRevision":{"type":"integer","minimum":0}},"required":["schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["add_concept"]},"direction":{"type":"string","minLength":1},"directionSource":{"type":"string","enum":["owner","product_context"]},"uploads":{"type":"array","items":{"type":"object","properties":{"uploadId":{"type":"string","minLength":1},"fileName":{"type":"string","minLength":1,"maxLength":255}},"required":["uploadId"],"additionalProperties":false},"minItems":1,"maxItems":4}},"required":["schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["approve_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["remove_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["restore_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["iterate_concept"]},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","instruction"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["branch_concept"]},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","instruction"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["revert_concept"]},"targetIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","targetIdea"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["create_formats"]},"concepts":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"formats":{"type":"array","items":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"minItems":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","formats"],"additionalProperties":false},"minItems":1}},"required":["schemaVersion","command","concepts"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["revise_output"]},"outputVersionId":{"type":"string","minLength":1},"instruction":{"type":"string","minLength":1},"retrySoundtrack":{"type":"boolean","enum":[true]}},"required":["schemaVersion","command","outputVersionId","instruction"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["save_search_ad"]},"outputVersionId":{"type":"string","minLength":1},"googleSearchCreative":{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"responsiveSearchAd":{"type":"object","properties":{"headlines":{"type":"array","items":{"type":"string","minLength":1},"minItems":3,"maxItems":15},"descriptions":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":4},"path1":{"type":"string","minLength":1},"path2":{"type":"string","minLength":1}},"required":["headlines","descriptions"],"additionalProperties":false},"adGroups":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"keywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"minItems":1,"maxItems":50},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":50,"default":[]}},"required":["name","keywords"],"additionalProperties":false},"minItems":1,"maxItems":10},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":100,"default":[]}},"required":["destinationUrl","responsiveSearchAd","adGroups"],"additionalProperties":false}},"required":["schemaVersion","command","outputVersionId","googleSearchCreative"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["start_output_from"]},"sourceOutputVersionId":{"type":"string","minLength":1},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","sourceOutputVersionId","instruction"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["finalize_platforms"]},"outputVersionIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"platforms":{"type":"array","items":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"minItems":1},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]}},"required":["schemaVersion","command","outputVersionIds","platforms","destination"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work."},"201":{"description":"Product created."},"202":{"description":"Work accepted; read its saved status without resubmitting."},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/prospects":{"post":{"operationId":"post__v1_prospects","security":[{"customerOAuth":["prospects:prepare"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[!-~]+$"},"description":"Reuse this key and the exact request body after response loss. An accepted replay does not purchase work again. A new key represents a new action."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"recipientEmail":{"type":"string","format":"email","maxLength":320},"product":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"maxLength":60,"pattern":"^[a-z0-9][a-z0-9-]*$"},"displayName":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":600},"publicUrls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"discoveryRef":{"type":"object","properties":{"sessionId":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"discoveryDigest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["sessionId","discoveryDigest"],"additionalProperties":false}},"required":["handle","displayName","description","publicUrls"],"additionalProperties":false}},"required":["recipientEmail","product"],"additionalProperties":false}}}},"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work."},"201":{"description":"Product created."},"202":{"description":"Work accepted; read its saved status without resubmitting."},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/me":{"get":{"operationId":"get__v1_me","security":[{"customerOAuth":[]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."}],"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work."},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/products":{"get":{"operationId":"get__v1_products","security":[{"customerOAuth":["products:read"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."}],"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work."},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}},"post":{"operationId":"post__v1_products","security":[{"customerOAuth":["products:write"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[!-~]+$"},"description":"Reuse this key and the exact request body after response loss. An accepted replay does not purchase work again. A new key represents a new action."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"maxLength":60,"pattern":"^[a-z0-9][a-z0-9-]*$"},"displayName":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":600},"publicUrls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":3},"discoveryRef":{"type":"object","properties":{"sessionId":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"discoveryDigest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["sessionId","discoveryDigest"],"additionalProperties":false},"ownerAttestLocations":{"type":"boolean","enum":[true]}},"required":["handle","displayName","description","publicUrls"],"additionalProperties":false}}}},"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work."},"201":{"description":"Product created."},"202":{"description":"Work accepted; read its saved status without resubmitting."},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/products/{productId}":{"get":{"operationId":"get__v1_products_productId_","security":[{"customerOAuth":["products:read"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"productId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work."},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/product-discovery/sessions":{"post":{"operationId":"post__v1_product_discovery_sessions","security":[{"customerOAuth":["products:write"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[!-~]+$"},"description":"Reuse this key and the exact request body after response loss. An accepted replay does not purchase work again. A new key represents a new action."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"publicUrls":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"maxItems":3},"manual":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":600}},"required":["displayName","description"],"additionalProperties":false},"locale":{"type":"string","minLength":2,"maxLength":35,"pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"}},"required":["publicUrls"],"additionalProperties":false}}}},"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work.","content":{"application/json":{"schema":{"type":"object","properties":{"snapshot":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["property-discovery.v1"]},"sessionId":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"status":{"type":"string","enum":["queued","running","completed","manual_fallback","failed"]},"discoveryDigest":{"type":"string","pattern":"^[a-f0-9]{64}$"},"inputUrls":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"maxItems":3},"identities":{"type":"array","items":{"type":"object","properties":{"inputUrl":{"type":"string","maxLength":2048,"format":"uri"},"locationUrl":{"type":"string","maxLength":2048,"format":"uri"},"canonicalUrl":{"type":"string","maxLength":2048,"format":"uri"},"kind":{"type":"string","enum":["website","apple_app_store","google_play"]},"officialDomains":{"type":"array","items":{"type":"string","minLength":1,"maxLength":253},"minItems":1,"maxItems":2},"providerRef":{"type":"string","minLength":1,"maxLength":255},"suggestedName":{"type":"string","minLength":1,"maxLength":120},"suggestedHandle":{"type":"string","minLength":1,"maxLength":60,"pattern":"^[a-z0-9][a-z0-9-]*$"}},"required":["inputUrl","locationUrl","canonicalUrl","kind","officialDomains","suggestedName","suggestedHandle"],"additionalProperties":false},"maxItems":3},"result":{"type":"object","properties":{"suggestedHandle":{"type":"string","minLength":1,"maxLength":60,"pattern":"^[a-z0-9][a-z0-9-]*$"},"displayName":{"type":"object","properties":{"field":{"type":"string","enum":["display_name","publisher","description"]},"value":{"type":"string","minLength":1,"maxLength":600},"sourceUrls":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"minItems":1,"maxItems":10},"observedAtIso":{"type":"string","format":"date-time"}},"required":["field","value","observedAtIso"],"additionalProperties":false},"description":{"type":"object","properties":{"field":{"type":"string","enum":["display_name","publisher","description"]},"value":{"type":"string","minLength":1,"maxLength":600},"sourceUrls":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"minItems":1,"maxItems":10},"observedAtIso":{"type":"string","format":"date-time"}},"required":["field","value","observedAtIso"],"additionalProperties":false},"publisher":{"type":"object","properties":{"field":{"type":"string","enum":["display_name","publisher","description"]},"value":{"type":"string","minLength":1,"maxLength":600},"sourceUrls":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"minItems":1,"maxItems":10},"observedAtIso":{"type":"string","format":"date-time"}},"required":["field","value","observedAtIso"],"additionalProperties":false},"sources":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"minItems":1,"maxItems":30},"researchContext":{"type":"object","properties":{"summary":{"type":"string","minLength":1,"maxLength":6000},"sourceUrls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048},"maxItems":20},"imageDiscoveryStatus":{"type":"string","enum":["found","none_found","unavailable"]},"imageCandidates":{"type":"array","items":{"type":"object","properties":{"imageUrl":{"type":"string","format":"uri","maxLength":2048},"sourcePageUrl":{"type":"string","format":"uri","maxLength":2048},"description":{"type":"string","minLength":1,"maxLength":1000},"role":{"type":"string","enum":["brand_logo","app_icon","screenshot","promotional","open_graph_image"],"nullable":true,"default":null}},"required":["imageUrl","sourcePageUrl","description"],"additionalProperties":false},"maxItems":20},"limitations":{"type":"array","items":{"type":"string","minLength":1,"maxLength":1000},"maxItems":20}},"required":["summary","sourceUrls","limitations"],"additionalProperties":false},"discoveryDigest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["suggestedHandle","displayName","sources","discoveryDigest"],"additionalProperties":false},"identityMark":{"type":"object","properties":{"pngBase64":{"type":"string","minLength":1,"maxLength":43692,"pattern":"^[A-Za-z0-9+/]+={0,2}$"},"sourceUrl":{"type":"string","maxLength":2048,"format":"uri"},"sourcePageUrl":{"type":"string","maxLength":2048,"format":"uri"},"sourceKind":{"type":"string","enum":["structured_logo","touch_icon","manifest_icon","favicon","store_icon"]}},"required":["sourceUrl","sourcePageUrl","sourceKind"],"additionalProperties":false},"fallback":{"type":"object","properties":{"reason":{"type":"string","enum":["owner_supplied","discovery_unavailable","discovery_timed_out","no_grounded_result","malformed_provider_output","identity_conflict","provider_unconfigured"]},"message":{"type":"string","minLength":1,"maxLength":240},"provisional":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":600}},"additionalProperties":false}},"required":["reason","message"],"additionalProperties":false},"failure":{"type":"object","properties":{"reason":{"type":"string","enum":["provider_unconfigured","discovery_unavailable","discovery_timed_out","malformed_provider_output"]},"message":{"type":"string","minLength":1,"maxLength":240}},"required":["reason","message"],"additionalProperties":false},"createdAtIso":{"type":"string","format":"date-time"},"updatedAtIso":{"type":"string","format":"date-time"},"expiresAtIso":{"type":"string","format":"date-time"}},"required":["schemaVersion","sessionId","status","discoveryDigest","identities","createdAtIso","updatedAtIso","expiresAtIso"],"additionalProperties":false}},"required":["snapshot"],"additionalProperties":false}}}},"201":{"description":"Product created."},"202":{"description":"Work accepted; read its saved status without resubmitting."},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/product-discovery/sessions/{sessionId}":{"get":{"operationId":"get__v1_product_discovery_sessions_sessionId_","security":[{"customerOAuth":["products:read"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work.","content":{"application/json":{"schema":{"type":"object","properties":{"snapshot":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["property-discovery.v1"]},"sessionId":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]*$"},"status":{"type":"string","enum":["queued","running","completed","manual_fallback","failed"]},"discoveryDigest":{"type":"string","pattern":"^[a-f0-9]{64}$"},"inputUrls":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"maxItems":3},"identities":{"type":"array","items":{"type":"object","properties":{"inputUrl":{"type":"string","maxLength":2048,"format":"uri"},"locationUrl":{"type":"string","maxLength":2048,"format":"uri"},"canonicalUrl":{"type":"string","maxLength":2048,"format":"uri"},"kind":{"type":"string","enum":["website","apple_app_store","google_play"]},"officialDomains":{"type":"array","items":{"type":"string","minLength":1,"maxLength":253},"minItems":1,"maxItems":2},"providerRef":{"type":"string","minLength":1,"maxLength":255},"suggestedName":{"type":"string","minLength":1,"maxLength":120},"suggestedHandle":{"type":"string","minLength":1,"maxLength":60,"pattern":"^[a-z0-9][a-z0-9-]*$"}},"required":["inputUrl","locationUrl","canonicalUrl","kind","officialDomains","suggestedName","suggestedHandle"],"additionalProperties":false},"maxItems":3},"result":{"type":"object","properties":{"suggestedHandle":{"type":"string","minLength":1,"maxLength":60,"pattern":"^[a-z0-9][a-z0-9-]*$"},"displayName":{"type":"object","properties":{"field":{"type":"string","enum":["display_name","publisher","description"]},"value":{"type":"string","minLength":1,"maxLength":600},"sourceUrls":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"minItems":1,"maxItems":10},"observedAtIso":{"type":"string","format":"date-time"}},"required":["field","value","observedAtIso"],"additionalProperties":false},"description":{"type":"object","properties":{"field":{"type":"string","enum":["display_name","publisher","description"]},"value":{"type":"string","minLength":1,"maxLength":600},"sourceUrls":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"minItems":1,"maxItems":10},"observedAtIso":{"type":"string","format":"date-time"}},"required":["field","value","observedAtIso"],"additionalProperties":false},"publisher":{"type":"object","properties":{"field":{"type":"string","enum":["display_name","publisher","description"]},"value":{"type":"string","minLength":1,"maxLength":600},"sourceUrls":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"minItems":1,"maxItems":10},"observedAtIso":{"type":"string","format":"date-time"}},"required":["field","value","observedAtIso"],"additionalProperties":false},"sources":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"minItems":1,"maxItems":30},"researchContext":{"type":"object","properties":{"summary":{"type":"string","minLength":1,"maxLength":6000},"sourceUrls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048},"maxItems":20},"imageDiscoveryStatus":{"type":"string","enum":["found","none_found","unavailable"]},"imageCandidates":{"type":"array","items":{"type":"object","properties":{"imageUrl":{"type":"string","format":"uri","maxLength":2048},"sourcePageUrl":{"type":"string","format":"uri","maxLength":2048},"description":{"type":"string","minLength":1,"maxLength":1000},"role":{"type":"string","enum":["brand_logo","app_icon","screenshot","promotional","open_graph_image"],"nullable":true,"default":null}},"required":["imageUrl","sourcePageUrl","description"],"additionalProperties":false},"maxItems":20},"limitations":{"type":"array","items":{"type":"string","minLength":1,"maxLength":1000},"maxItems":20}},"required":["summary","sourceUrls","limitations"],"additionalProperties":false},"discoveryDigest":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["suggestedHandle","displayName","sources","discoveryDigest"],"additionalProperties":false},"identityMark":{"type":"object","properties":{"pngBase64":{"type":"string","minLength":1,"maxLength":43692,"pattern":"^[A-Za-z0-9+/]+={0,2}$"},"sourceUrl":{"type":"string","maxLength":2048,"format":"uri"},"sourcePageUrl":{"type":"string","maxLength":2048,"format":"uri"},"sourceKind":{"type":"string","enum":["structured_logo","touch_icon","manifest_icon","favicon","store_icon"]}},"required":["sourceUrl","sourcePageUrl","sourceKind"],"additionalProperties":false},"fallback":{"type":"object","properties":{"reason":{"type":"string","enum":["owner_supplied","discovery_unavailable","discovery_timed_out","no_grounded_result","malformed_provider_output","identity_conflict","provider_unconfigured"]},"message":{"type":"string","minLength":1,"maxLength":240},"provisional":{"type":"object","properties":{"displayName":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":600}},"additionalProperties":false}},"required":["reason","message"],"additionalProperties":false},"failure":{"type":"object","properties":{"reason":{"type":"string","enum":["provider_unconfigured","discovery_unavailable","discovery_timed_out","malformed_provider_output"]},"message":{"type":"string","minLength":1,"maxLength":240}},"required":["reason","message"],"additionalProperties":false},"createdAtIso":{"type":"string","format":"date-time"},"updatedAtIso":{"type":"string","format":"date-time"},"expiresAtIso":{"type":"string","format":"date-time"}},"required":["schemaVersion","sessionId","status","discoveryDigest","identities","createdAtIso","updatedAtIso","expiresAtIso"],"additionalProperties":false}},"required":["snapshot"],"additionalProperties":false}}}},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/products/{productId}/creative-workspace":{"get":{"operationId":"get__v1_products_productId_creative_workspace","security":[{"customerOAuth":["creative:read"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"productId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work.","content":{"application/json":{"schema":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-result.v1"]},"productId":{"type":"string","minLength":1},"outcome":{"type":"string","enum":["updated","accepted","replayed","stale","unsupported","insufficient_credit"]},"workspace":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace.v1"]},"productId":{"type":"string","minLength":1},"revision":{"type":"integer","minimum":0},"concepts":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"directionVersionId":{"type":"string","minLength":1},"concept":{"type":"object","properties":{"conceptId":{"type":"string","pattern":"^(?:ccpt_[a-f0-9]{32}|legacy_[a-z0-9][a-z0-9-]{0,59})$"},"ordinal":{"type":"integer","minimum":0,"maximum":2},"audience":{"type":"string","minLength":1},"angle":{"type":"string","minLength":1},"primaryClaim":{"type":"string","minLength":1},"supportingProof":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1},"visualDirection":{"type":"string","minLength":1},"backgroundDirection":{"type":"string","minLength":1},"renderMode":{"type":"string","enum":["editorial_lifestyle_photo","tactile_closeup","premium_product_still_life","stylized_3d","isometric_scene","graphic_collage","minimal_abstract_brand_scene"]},"sceneRelationship":{"type":"string","enum":["window","situation","outcome"]},"visualSignature":{"type":"object","properties":{"setting":{"type":"string","minLength":1},"subject":{"type":"string","minLength":1},"heroProp":{"type":"string","minLength":1},"palette":{"type":"string","minLength":1},"light":{"type":"string","minLength":1}},"required":["setting","subject","heroProp","palette","light"],"additionalProperties":false},"tone":{"type":"string","minLength":1}},"required":["conceptId","ordinal","audience","angle","primaryClaim","visualDirection"],"additionalProperties":false},"decision":{"type":"string","enum":["unreviewed","approved","removed"]},"decisionRevision":{"type":"integer","minimum":0},"decidedBy":{"type":"string","minLength":1},"decidedAtIso":{"type":"string","format":"date-time"},"parentConceptId":{"type":"string","minLength":1},"candidateIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","directionVersionId","concept","decision","decisionRevision"],"additionalProperties":false}},"conceptRevisions":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"directionVersionId":{"type":"string","minLength":1},"concept":{"type":"object","properties":{"conceptId":{"type":"string","pattern":"^(?:ccpt_[a-f0-9]{32}|legacy_[a-z0-9][a-z0-9-]{0,59})$"},"ordinal":{"type":"integer","minimum":0,"maximum":2},"audience":{"type":"string","minLength":1},"angle":{"type":"string","minLength":1},"primaryClaim":{"type":"string","minLength":1},"supportingProof":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1},"visualDirection":{"type":"string","minLength":1},"backgroundDirection":{"type":"string","minLength":1},"renderMode":{"type":"string","enum":["editorial_lifestyle_photo","tactile_closeup","premium_product_still_life","stylized_3d","isometric_scene","graphic_collage","minimal_abstract_brand_scene"]},"sceneRelationship":{"type":"string","enum":["window","situation","outcome"]},"visualSignature":{"type":"object","properties":{"setting":{"type":"string","minLength":1},"subject":{"type":"string","minLength":1},"heroProp":{"type":"string","minLength":1},"palette":{"type":"string","minLength":1},"light":{"type":"string","minLength":1}},"required":["setting","subject","heroProp","palette","light"],"additionalProperties":false},"tone":{"type":"string","minLength":1}},"required":["conceptId","ordinal","audience","angle","primaryClaim","visualDirection"],"additionalProperties":false},"decision":{"type":"string","enum":["unreviewed","approved","removed"]},"decisionRevision":{"type":"integer","minimum":0},"decidedBy":{"type":"string","minLength":1},"decidedAtIso":{"type":"string","format":"date-time"},"parentConceptId":{"type":"string","minLength":1},"candidateIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","directionVersionId","concept","decision","decisionRevision"],"additionalProperties":false}},"candidateConcepts":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"directionVersionId":{"type":"string","minLength":1},"concept":{"type":"object","properties":{"conceptId":{"type":"string","pattern":"^(?:ccpt_[a-f0-9]{32}|legacy_[a-z0-9][a-z0-9-]{0,59})$"},"ordinal":{"type":"integer","minimum":0,"maximum":2},"audience":{"type":"string","minLength":1},"angle":{"type":"string","minLength":1},"primaryClaim":{"type":"string","minLength":1},"supportingProof":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1},"visualDirection":{"type":"string","minLength":1},"backgroundDirection":{"type":"string","minLength":1},"renderMode":{"type":"string","enum":["editorial_lifestyle_photo","tactile_closeup","premium_product_still_life","stylized_3d","isometric_scene","graphic_collage","minimal_abstract_brand_scene"]},"sceneRelationship":{"type":"string","enum":["window","situation","outcome"]},"visualSignature":{"type":"object","properties":{"setting":{"type":"string","minLength":1},"subject":{"type":"string","minLength":1},"heroProp":{"type":"string","minLength":1},"palette":{"type":"string","minLength":1},"light":{"type":"string","minLength":1}},"required":["setting","subject","heroProp","palette","light"],"additionalProperties":false},"tone":{"type":"string","minLength":1}},"required":["conceptId","ordinal","audience","angle","primaryClaim","visualDirection"],"additionalProperties":false},"decision":{"type":"string","enum":["unreviewed","approved","removed"]},"decisionRevision":{"type":"integer","minimum":0},"decidedBy":{"type":"string","minLength":1},"decidedAtIso":{"type":"string","format":"date-time"},"parentConceptId":{"type":"string","minLength":1},"candidateIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","directionVersionId","concept","decision","decisionRevision"],"additionalProperties":false}},"outputs":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"outputVersionId":{"type":"string","minLength":1},"productId":{"type":"string","minLength":1},"format":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"versionNumber":{"type":"integer","exclusiveMinimum":true,"minimum":0},"ideaDecisionRevision":{"type":"integer","minimum":0},"parentOutputVersionId":{"type":"string","minLength":1},"platform":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]},"artifacts":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"artifactId":{"type":"string","minLength":1},"contentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","minLength":1},"widthPx":{"type":"integer","exclusiveMinimum":true,"minimum":0},"heightPx":{"type":"integer","exclusiveMinimum":true,"minimum":0},"durationMs":{"type":"number","minimum":0},"previewUrl":{"type":"string","format":"uri"}},"required":["assetId","assetVersionId","artifactId","contentSha256","mimeType"],"additionalProperties":false}},"retained":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"artifactId":{"type":"string","minLength":1},"contentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","minLength":1},"widthPx":{"type":"integer","exclusiveMinimum":true,"minimum":0},"heightPx":{"type":"integer","exclusiveMinimum":true,"minimum":0},"durationMs":{"type":"number","minimum":0},"previewUrl":{"type":"string","format":"uri"}},"required":["assetId","assetVersionId","artifactId","contentSha256","mimeType"],"additionalProperties":false}},"renditionIds":{"type":"array","items":{"type":"string","minLength":1}},"message":{"type":"string","minLength":1},"googleSearchCreative":{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"responsiveSearchAd":{"type":"object","properties":{"headlines":{"type":"array","items":{"type":"string","minLength":1},"minItems":3,"maxItems":15},"descriptions":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":4},"path1":{"type":"string","minLength":1},"path2":{"type":"string","minLength":1}},"required":["headlines","descriptions"],"additionalProperties":false},"adGroups":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"keywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"minItems":1,"maxItems":50},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":50,"default":[]}},"required":["name","keywords"],"additionalProperties":false},"minItems":1,"maxItems":10},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":100,"default":[]}},"required":["destinationUrl","responsiveSearchAd","adGroups"],"additionalProperties":false},"googleDemandGenCreative":{"anyOf":[{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"businessName":{"type":"string","minLength":1},"logoArtifactId":{"type":"string","minLength":1},"format":{"type":"string","enum":["multi_asset_image"]},"headlines":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":5},"descriptions":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":5},"images":{"type":"array","items":{"type":"object","properties":{"artifactId":{"type":"string","minLength":1},"role":{"type":"string","enum":["landscape","square","portrait","tallPortrait"]}},"required":["artifactId","role"],"additionalProperties":false},"minItems":1,"maxItems":20}},"required":["destinationUrl","businessName","logoArtifactId","format","headlines","descriptions","images"],"additionalProperties":false},{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"businessName":{"type":"string","minLength":1},"logoArtifactId":{"type":"string","minLength":1},"format":{"type":"string","enum":["carousel"]},"headline":{"type":"string","minLength":1},"description":{"type":"string","minLength":1},"cards":{"type":"array","items":{"type":"object","properties":{"artifactId":{"type":"string","minLength":1},"headline":{"type":"string","minLength":1},"role":{"type":"string","enum":["landscape","square"]}},"required":["artifactId","headline","role"],"additionalProperties":false},"minItems":2,"maxItems":10}},"required":["destinationUrl","businessName","logoArtifactId","format","headline","description","cards"],"additionalProperties":false}]},"appleDraft":{"type":"object","properties":{"kind":{"type":"string","enum":["asset_library_draft"]},"mediaType":{"type":"string","enum":["image","video"]},"renditionIssues":{"type":"array","items":{"type":"string","enum":["image_type","image_dimensions","video_dimensions","video_duration"]}}},"required":["kind","mediaType","renditionIssues"],"additionalProperties":false},"tiktokDraft":{"type":"object","properties":{"kind":{"type":"string","enum":["local_creative_draft"]},"providerReady":{"type":"boolean","enum":[false]},"caption":{"type":"string","minLength":1},"audio":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["missing"]}},"required":["status"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","enum":["evidence_pinned"]},"evidence":{"type":"object","properties":{"source":{"type":"string","enum":["owned_or_licensed"]},"assetId":{"type":"string","minLength":1},"contentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"rightsReceiptId":{"type":"string","minLength":1}},"required":["source","assetId","contentSha256","rightsReceiptId"],"additionalProperties":false}},"required":["status","evidence"],"additionalProperties":false}]},"identity":{"type":"object","properties":{"identity_type":{"type":"string","enum":["BC_AUTH_TT"]},"identity_id":{"type":"string","minLength":1},"identity_authorized_bc_id":{"type":"string","minLength":1}},"required":["identity_type","identity_id","identity_authorized_bc_id"],"additionalProperties":false},"music":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"artifactId":{"type":"string","minLength":1},"checksumSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","enum":["audio/mpeg"]},"byteLength":{"type":"integer","exclusiveMinimum":true,"minimum":0,"maximum":10000000},"durationMs":{"type":"number","minimum":2000}},"required":["assetId","assetVersionId","artifactId","checksumSha256","mimeType","byteLength","durationMs"],"additionalProperties":false}},"required":["kind","providerReady","caption","audio"],"additionalProperties":false},"chatGptDraft":{"type":"object","properties":{"kind":{"type":"string","enum":["local_creative_draft"]},"channel":{"type":"string","enum":["chatgpt_ads"]},"creativeType":{"type":"string","enum":["chat_card"]},"providerReady":{"type":"boolean","enum":[false]},"title":{"type":"string","minLength":3,"maxLength":50},"body":{"type":"string","maxLength":100},"targetUrl":{"allOf":[{"type":"string","format":"uri"},{"type":"string","maxLength":2048}]},"image":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["missing"]}},"required":["status"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","enum":["evidence_pinned"]},"evidence":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"checksumSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"width":{"type":"integer","minimum":640},"height":{"type":"integer","minimum":640}},"required":["assetId","assetVersionId","checksumSha256","mimeType","width","height"],"additionalProperties":false}},"required":["status","evidence"],"additionalProperties":false}]}},"required":["kind","channel","creativeType","providerReady","title","body","targetUrl","image"],"additionalProperties":false},"onImageText":{"type":"array","items":{"type":"string","minLength":1}},"generation":{"type":"object","properties":{"pipeline":{"type":"string","enum":["finished-image.v1"],"description":"Generation pipeline identifier"},"imageModelId":{"type":"string","minLength":1,"description":"Image model identifier used for generation"},"quality":{"type":"string","minLength":1,"description":"Optional provider image quality setting"},"receiptId":{"type":"string","minLength":1,"description":"Receipt identifier for the generation purchase"},"candidateContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Content SHA-256 of the initial candidate: one image, or a sequence's ordered set of scene checksums"},"editedContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Content SHA-256 of the refined image, or of the corrected set, when edited"},"inspection":{"type":"string","enum":["keep","correct","unavailable"],"description":"Visual inspection outcome"},"verification":{"type":"string","enum":["judged","unavailable"],"description":"Whether the corrected image was judged against the candidate; what it concluded lives in the output's review"}},"required":["pipeline","imageModelId","candidateContentSha256","inspection"],"additionalProperties":false,"description":"Provenance for finished-image generation and refinement"},"soundtrack":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"artifactId":{"type":"string","minLength":1},"checksumSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","enum":["audio/mpeg"]},"byteLength":{"type":"integer","exclusiveMinimum":true,"minimum":0},"durationMs":{"type":"number","exclusiveMinimum":true,"minimum":0},"generation":{"type":"object","properties":{"modelId":{"type":"string","minLength":1},"receiptId":{"type":"string","minLength":1}},"required":["modelId","receiptId"],"additionalProperties":false}},"required":["assetId","assetVersionId","artifactId","checksumSha256","mimeType","byteLength","durationMs","generation"],"additionalProperties":false},"soundtrackFailure":{"type":"object","properties":{"code":{"type":"string","minLength":1}},"required":["code"],"additionalProperties":false},"origin":{"type":"string","enum":["customer_supplied"]},"ownerDirection":{"type":"object","properties":{"text":{"type":"string","minLength":1,"description":"The owner's instruction, verbatim"},"atVersionNumber":{"type":"integer","minimum":0,"description":"The version this instruction produced"}},"required":["text","atVersionNumber"],"additionalProperties":false},"review":{"type":"object","properties":{"status":{"type":"string","enum":["reviewed","unavailable"]},"recommendations":{"type":"array","items":{"type":"string","minLength":1,"description":"One suggested improvement, in the reviewer's own words"}}},"required":["status","recommendations"],"additionalProperties":false},"sequencePlan":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-sequence-plan.v1"]},"visualDirection":{"type":"string","minLength":1},"scenes":{"type":"array","items":{"type":"object","properties":{"sceneId":{"type":"string","minLength":1,"description":"Stable identity for this scene across revisions, so an untouched scene keeps its image"},"purpose":{"type":"string","minLength":1,"description":"What this scene does in the sequence: the beat, not the artwork"},"wording":{"type":"string","minLength":1},"durationFrames":{"type":"integer","exclusiveMinimum":true,"minimum":0},"transition":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["cut"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["crossfade","fade_black","fade_white","dissolve"]},"durationFrames":{"type":"integer","exclusiveMinimum":true,"minimum":0}},"required":["kind","durationFrames"],"additionalProperties":false}]}},"required":["sceneId","purpose","durationFrames","transition"],"additionalProperties":false},"minItems":1},"posterFrame":{"type":"integer","minimum":0}},"required":["schemaVersion","visualDirection","scenes"],"additionalProperties":false},"finalReview":{"type":"object","properties":{"path":{"type":"string","minLength":1},"label":{"type":"string","minLength":1}},"required":["path","label"],"additionalProperties":false},"createdBy":{"type":"string","minLength":1},"createdAtIso":{"type":"string","format":"date-time"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","outputVersionId","productId","format","versionNumber","ideaDecisionRevision","artifacts","renditionIds","createdBy","createdAtIso"],"additionalProperties":false}},"operations":{"type":"array","items":{"type":"object","properties":{"operationId":{"type":"string","minLength":1},"productId":{"type":"string","minLength":1},"command":{"anyOf":[{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["resume_operation"]},"operationId":{"type":"string","minLength":1}},"required":["schemaVersion","command","operationId"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["start_concepts"]},"direction":{"type":"string","minLength":1},"directionSource":{"type":"string","enum":["owner","product_context"]},"expectedRevision":{"type":"integer","minimum":0}},"required":["schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["add_concept"]},"direction":{"type":"string","minLength":1},"directionSource":{"type":"string","enum":["owner","product_context"]},"uploads":{"type":"array","items":{"type":"object","properties":{"uploadId":{"type":"string","minLength":1},"fileName":{"type":"string","minLength":1,"maxLength":255}},"required":["uploadId"],"additionalProperties":false},"minItems":1,"maxItems":4}},"required":["schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["approve_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["remove_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["restore_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["iterate_concept"]},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","instruction"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["branch_concept"]},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","instruction"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["revert_concept"]},"targetIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","targetIdea"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["create_formats"]},"concepts":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"formats":{"type":"array","items":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"minItems":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","formats"],"additionalProperties":false},"minItems":1}},"required":["schemaVersion","command","concepts"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["revise_output"]},"outputVersionId":{"type":"string","minLength":1},"instruction":{"type":"string","minLength":1},"retrySoundtrack":{"type":"boolean","enum":[true]}},"required":["schemaVersion","command","outputVersionId","instruction"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["save_search_ad"]},"outputVersionId":{"type":"string","minLength":1},"googleSearchCreative":{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"responsiveSearchAd":{"type":"object","properties":{"headlines":{"type":"array","items":{"type":"string","minLength":1},"minItems":3,"maxItems":15},"descriptions":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":4},"path1":{"type":"string","minLength":1},"path2":{"type":"string","minLength":1}},"required":["headlines","descriptions"],"additionalProperties":false},"adGroups":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"keywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"minItems":1,"maxItems":50},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":50,"default":[]}},"required":["name","keywords"],"additionalProperties":false},"minItems":1,"maxItems":10},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":100,"default":[]}},"required":["destinationUrl","responsiveSearchAd","adGroups"],"additionalProperties":false}},"required":["schemaVersion","command","outputVersionId","googleSearchCreative"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["start_output_from"]},"sourceOutputVersionId":{"type":"string","minLength":1},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","sourceOutputVersionId","instruction"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["finalize_platforms"]},"outputVersionIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"platforms":{"type":"array","items":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"minItems":1},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]}},"required":["schemaVersion","command","outputVersionIds","platforms","destination"],"additionalProperties":false}]},"idempotencyKey":{"type":"string","minLength":1},"status":{"type":"string","enum":["pending","running","waiting","succeeded","partial","failed","outcome_unknown"]},"units":{"type":"array","items":{"type":"object","properties":{"unitId":{"type":"string","minLength":1},"stage":{"type":"string","enum":["concepts","format","platform"]},"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"ideaDecisionRevision":{"type":"integer","minimum":0},"format":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"platform":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]},"parentOutputVersionId":{"type":"string","minLength":1},"sourceUnitId":{"type":"string","minLength":1},"operationId":{"type":"string","minLength":1},"status":{"type":"string","enum":["pending","running","waiting","succeeded","failed","unsupported","outcome_unknown","cancelled"]},"revision":{"type":"integer","minimum":0},"attemptCount":{"type":"integer","minimum":0},"directionVersionId":{"type":"string","minLength":1},"outputVersionId":{"type":"string","minLength":1},"outputVersionNumber":{"type":"integer","exclusiveMinimum":true,"minimum":0},"unchangedFromOutputVersionId":{"type":"string","minLength":1},"message":{"type":"string","minLength":1},"failureCode":{"type":"string","minLength":1},"updatedAtIso":{"type":"string","format":"date-time"}},"required":["unitId","stage","operationId","status","revision","attemptCount","updatedAtIso"],"additionalProperties":false}},"createdAtIso":{"type":"string","format":"date-time"},"updatedAtIso":{"type":"string","format":"date-time"},"correlationId":{"type":"string","minLength":1},"credit":{"type":"object","properties":{"status":{"type":"string","enum":["pending","reserved","insufficient"]}},"required":["status"],"additionalProperties":false}},"required":["operationId","productId","command","idempotencyKey","status","units","createdAtIso","updatedAtIso"],"additionalProperties":false}},"capabilities":{"type":"object","properties":{"commands":{"type":"array","items":{"type":"string","enum":["start_concepts","add_concept","approve_concept","remove_concept","restore_concept","iterate_concept","branch_concept","revert_concept","create_formats","revise_output","save_search_ad","start_output_from","finalize_platforms"]}},"formats":{"type":"array","items":{"type":"object","properties":{"format":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"supported":{"type":"boolean"},"reason":{"type":"string","minLength":1}},"required":["format","supported"],"additionalProperties":false}},"platforms":{"type":"array","items":{"type":"object","properties":{"platform":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]},"format":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"supported":{"type":"boolean"},"reason":{"type":"string","minLength":1}},"required":["platform","destination","format","supported"],"additionalProperties":false}}},"required":["commands","formats","platforms"],"additionalProperties":false,"default":{"commands":[],"formats":[],"platforms":[]}},"typicalWaits":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["idea_batch","new_idea","image","swipe_slides","short_video","text_ad","platform"]},"samples":{"type":"integer","exclusiveMinimum":true,"minimum":0},"p50Ms":{"type":"integer","minimum":0},"p90Ms":{"type":"integer","minimum":0}},"required":["kind","samples","p50Ms","p90Ms"],"additionalProperties":false}}},"required":["schemaVersion","productId","revision","concepts","outputs","operations"],"additionalProperties":false},"operationId":{"type":"string","minLength":1},"message":{"type":"string","minLength":1},"webUrl":{"type":"string","format":"uri"}},"required":["schemaVersion","productId","outcome","workspace"],"additionalProperties":false}}}},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}},"post":{"operationId":"post__v1_products_productId_creative_workspace","security":[{"customerOAuth":["creative:write"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"productId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[!-~]+$"},"description":"Reuse this key and the exact request body after response loss. An accepted replay does not purchase work again. A new key represents a new action."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["resume_operation"]},"operationId":{"type":"string","minLength":1}},"required":["schemaVersion","command","operationId"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["start_concepts"]},"direction":{"type":"string","minLength":1},"directionSource":{"type":"string","enum":["owner","product_context"]},"expectedRevision":{"type":"integer","minimum":0}},"required":["schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["add_concept"]},"direction":{"type":"string","minLength":1},"directionSource":{"type":"string","enum":["owner","product_context"]},"uploads":{"type":"array","items":{"type":"object","properties":{"uploadId":{"type":"string","minLength":1},"fileName":{"type":"string","minLength":1,"maxLength":255}},"required":["uploadId"],"additionalProperties":false},"minItems":1,"maxItems":4}},"required":["schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["approve_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["remove_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["restore_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["iterate_concept"]},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","instruction"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["branch_concept"]},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","instruction"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["revert_concept"]},"targetIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","targetIdea"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["create_formats"]},"concepts":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"formats":{"type":"array","items":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"minItems":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","formats"],"additionalProperties":false},"minItems":1}},"required":["schemaVersion","command","concepts"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["revise_output"]},"outputVersionId":{"type":"string","minLength":1},"instruction":{"type":"string","minLength":1},"retrySoundtrack":{"type":"boolean","enum":[true]}},"required":["schemaVersion","command","outputVersionId","instruction"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["save_search_ad"]},"outputVersionId":{"type":"string","minLength":1},"googleSearchCreative":{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"responsiveSearchAd":{"type":"object","properties":{"headlines":{"type":"array","items":{"type":"string","minLength":1},"minItems":3,"maxItems":15},"descriptions":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":4},"path1":{"type":"string","minLength":1},"path2":{"type":"string","minLength":1}},"required":["headlines","descriptions"],"additionalProperties":false},"adGroups":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"keywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"minItems":1,"maxItems":50},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":50,"default":[]}},"required":["name","keywords"],"additionalProperties":false},"minItems":1,"maxItems":10},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":100,"default":[]}},"required":["destinationUrl","responsiveSearchAd","adGroups"],"additionalProperties":false}},"required":["schemaVersion","command","outputVersionId","googleSearchCreative"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["start_output_from"]},"sourceOutputVersionId":{"type":"string","minLength":1},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","sourceOutputVersionId","instruction"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["finalize_platforms"]},"outputVersionIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"platforms":{"type":"array","items":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"minItems":1},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]}},"required":["schemaVersion","command","outputVersionIds","platforms","destination"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work.","content":{"application/json":{"schema":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-result.v1"]},"productId":{"type":"string","minLength":1},"outcome":{"type":"string","enum":["updated","accepted","replayed","stale","unsupported","insufficient_credit"]},"workspace":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace.v1"]},"productId":{"type":"string","minLength":1},"revision":{"type":"integer","minimum":0},"concepts":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"directionVersionId":{"type":"string","minLength":1},"concept":{"type":"object","properties":{"conceptId":{"type":"string","pattern":"^(?:ccpt_[a-f0-9]{32}|legacy_[a-z0-9][a-z0-9-]{0,59})$"},"ordinal":{"type":"integer","minimum":0,"maximum":2},"audience":{"type":"string","minLength":1},"angle":{"type":"string","minLength":1},"primaryClaim":{"type":"string","minLength":1},"supportingProof":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1},"visualDirection":{"type":"string","minLength":1},"backgroundDirection":{"type":"string","minLength":1},"renderMode":{"type":"string","enum":["editorial_lifestyle_photo","tactile_closeup","premium_product_still_life","stylized_3d","isometric_scene","graphic_collage","minimal_abstract_brand_scene"]},"sceneRelationship":{"type":"string","enum":["window","situation","outcome"]},"visualSignature":{"type":"object","properties":{"setting":{"type":"string","minLength":1},"subject":{"type":"string","minLength":1},"heroProp":{"type":"string","minLength":1},"palette":{"type":"string","minLength":1},"light":{"type":"string","minLength":1}},"required":["setting","subject","heroProp","palette","light"],"additionalProperties":false},"tone":{"type":"string","minLength":1}},"required":["conceptId","ordinal","audience","angle","primaryClaim","visualDirection"],"additionalProperties":false},"decision":{"type":"string","enum":["unreviewed","approved","removed"]},"decisionRevision":{"type":"integer","minimum":0},"decidedBy":{"type":"string","minLength":1},"decidedAtIso":{"type":"string","format":"date-time"},"parentConceptId":{"type":"string","minLength":1},"candidateIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","directionVersionId","concept","decision","decisionRevision"],"additionalProperties":false}},"conceptRevisions":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"directionVersionId":{"type":"string","minLength":1},"concept":{"type":"object","properties":{"conceptId":{"type":"string","pattern":"^(?:ccpt_[a-f0-9]{32}|legacy_[a-z0-9][a-z0-9-]{0,59})$"},"ordinal":{"type":"integer","minimum":0,"maximum":2},"audience":{"type":"string","minLength":1},"angle":{"type":"string","minLength":1},"primaryClaim":{"type":"string","minLength":1},"supportingProof":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1},"visualDirection":{"type":"string","minLength":1},"backgroundDirection":{"type":"string","minLength":1},"renderMode":{"type":"string","enum":["editorial_lifestyle_photo","tactile_closeup","premium_product_still_life","stylized_3d","isometric_scene","graphic_collage","minimal_abstract_brand_scene"]},"sceneRelationship":{"type":"string","enum":["window","situation","outcome"]},"visualSignature":{"type":"object","properties":{"setting":{"type":"string","minLength":1},"subject":{"type":"string","minLength":1},"heroProp":{"type":"string","minLength":1},"palette":{"type":"string","minLength":1},"light":{"type":"string","minLength":1}},"required":["setting","subject","heroProp","palette","light"],"additionalProperties":false},"tone":{"type":"string","minLength":1}},"required":["conceptId","ordinal","audience","angle","primaryClaim","visualDirection"],"additionalProperties":false},"decision":{"type":"string","enum":["unreviewed","approved","removed"]},"decisionRevision":{"type":"integer","minimum":0},"decidedBy":{"type":"string","minLength":1},"decidedAtIso":{"type":"string","format":"date-time"},"parentConceptId":{"type":"string","minLength":1},"candidateIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","directionVersionId","concept","decision","decisionRevision"],"additionalProperties":false}},"candidateConcepts":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"directionVersionId":{"type":"string","minLength":1},"concept":{"type":"object","properties":{"conceptId":{"type":"string","pattern":"^(?:ccpt_[a-f0-9]{32}|legacy_[a-z0-9][a-z0-9-]{0,59})$"},"ordinal":{"type":"integer","minimum":0,"maximum":2},"audience":{"type":"string","minLength":1},"angle":{"type":"string","minLength":1},"primaryClaim":{"type":"string","minLength":1},"supportingProof":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1},"visualDirection":{"type":"string","minLength":1},"backgroundDirection":{"type":"string","minLength":1},"renderMode":{"type":"string","enum":["editorial_lifestyle_photo","tactile_closeup","premium_product_still_life","stylized_3d","isometric_scene","graphic_collage","minimal_abstract_brand_scene"]},"sceneRelationship":{"type":"string","enum":["window","situation","outcome"]},"visualSignature":{"type":"object","properties":{"setting":{"type":"string","minLength":1},"subject":{"type":"string","minLength":1},"heroProp":{"type":"string","minLength":1},"palette":{"type":"string","minLength":1},"light":{"type":"string","minLength":1}},"required":["setting","subject","heroProp","palette","light"],"additionalProperties":false},"tone":{"type":"string","minLength":1}},"required":["conceptId","ordinal","audience","angle","primaryClaim","visualDirection"],"additionalProperties":false},"decision":{"type":"string","enum":["unreviewed","approved","removed"]},"decisionRevision":{"type":"integer","minimum":0},"decidedBy":{"type":"string","minLength":1},"decidedAtIso":{"type":"string","format":"date-time"},"parentConceptId":{"type":"string","minLength":1},"candidateIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","directionVersionId","concept","decision","decisionRevision"],"additionalProperties":false}},"outputs":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"outputVersionId":{"type":"string","minLength":1},"productId":{"type":"string","minLength":1},"format":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"versionNumber":{"type":"integer","exclusiveMinimum":true,"minimum":0},"ideaDecisionRevision":{"type":"integer","minimum":0},"parentOutputVersionId":{"type":"string","minLength":1},"platform":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]},"artifacts":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"artifactId":{"type":"string","minLength":1},"contentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","minLength":1},"widthPx":{"type":"integer","exclusiveMinimum":true,"minimum":0},"heightPx":{"type":"integer","exclusiveMinimum":true,"minimum":0},"durationMs":{"type":"number","minimum":0},"previewUrl":{"type":"string","format":"uri"}},"required":["assetId","assetVersionId","artifactId","contentSha256","mimeType"],"additionalProperties":false}},"retained":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"artifactId":{"type":"string","minLength":1},"contentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","minLength":1},"widthPx":{"type":"integer","exclusiveMinimum":true,"minimum":0},"heightPx":{"type":"integer","exclusiveMinimum":true,"minimum":0},"durationMs":{"type":"number","minimum":0},"previewUrl":{"type":"string","format":"uri"}},"required":["assetId","assetVersionId","artifactId","contentSha256","mimeType"],"additionalProperties":false}},"renditionIds":{"type":"array","items":{"type":"string","minLength":1}},"message":{"type":"string","minLength":1},"googleSearchCreative":{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"responsiveSearchAd":{"type":"object","properties":{"headlines":{"type":"array","items":{"type":"string","minLength":1},"minItems":3,"maxItems":15},"descriptions":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":4},"path1":{"type":"string","minLength":1},"path2":{"type":"string","minLength":1}},"required":["headlines","descriptions"],"additionalProperties":false},"adGroups":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"keywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"minItems":1,"maxItems":50},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":50,"default":[]}},"required":["name","keywords"],"additionalProperties":false},"minItems":1,"maxItems":10},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":100,"default":[]}},"required":["destinationUrl","responsiveSearchAd","adGroups"],"additionalProperties":false},"googleDemandGenCreative":{"anyOf":[{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"businessName":{"type":"string","minLength":1},"logoArtifactId":{"type":"string","minLength":1},"format":{"type":"string","enum":["multi_asset_image"]},"headlines":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":5},"descriptions":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":5},"images":{"type":"array","items":{"type":"object","properties":{"artifactId":{"type":"string","minLength":1},"role":{"type":"string","enum":["landscape","square","portrait","tallPortrait"]}},"required":["artifactId","role"],"additionalProperties":false},"minItems":1,"maxItems":20}},"required":["destinationUrl","businessName","logoArtifactId","format","headlines","descriptions","images"],"additionalProperties":false},{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"businessName":{"type":"string","minLength":1},"logoArtifactId":{"type":"string","minLength":1},"format":{"type":"string","enum":["carousel"]},"headline":{"type":"string","minLength":1},"description":{"type":"string","minLength":1},"cards":{"type":"array","items":{"type":"object","properties":{"artifactId":{"type":"string","minLength":1},"headline":{"type":"string","minLength":1},"role":{"type":"string","enum":["landscape","square"]}},"required":["artifactId","headline","role"],"additionalProperties":false},"minItems":2,"maxItems":10}},"required":["destinationUrl","businessName","logoArtifactId","format","headline","description","cards"],"additionalProperties":false}]},"appleDraft":{"type":"object","properties":{"kind":{"type":"string","enum":["asset_library_draft"]},"mediaType":{"type":"string","enum":["image","video"]},"renditionIssues":{"type":"array","items":{"type":"string","enum":["image_type","image_dimensions","video_dimensions","video_duration"]}}},"required":["kind","mediaType","renditionIssues"],"additionalProperties":false},"tiktokDraft":{"type":"object","properties":{"kind":{"type":"string","enum":["local_creative_draft"]},"providerReady":{"type":"boolean","enum":[false]},"caption":{"type":"string","minLength":1},"audio":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["missing"]}},"required":["status"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","enum":["evidence_pinned"]},"evidence":{"type":"object","properties":{"source":{"type":"string","enum":["owned_or_licensed"]},"assetId":{"type":"string","minLength":1},"contentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"rightsReceiptId":{"type":"string","minLength":1}},"required":["source","assetId","contentSha256","rightsReceiptId"],"additionalProperties":false}},"required":["status","evidence"],"additionalProperties":false}]},"identity":{"type":"object","properties":{"identity_type":{"type":"string","enum":["BC_AUTH_TT"]},"identity_id":{"type":"string","minLength":1},"identity_authorized_bc_id":{"type":"string","minLength":1}},"required":["identity_type","identity_id","identity_authorized_bc_id"],"additionalProperties":false},"music":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"artifactId":{"type":"string","minLength":1},"checksumSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","enum":["audio/mpeg"]},"byteLength":{"type":"integer","exclusiveMinimum":true,"minimum":0,"maximum":10000000},"durationMs":{"type":"number","minimum":2000}},"required":["assetId","assetVersionId","artifactId","checksumSha256","mimeType","byteLength","durationMs"],"additionalProperties":false}},"required":["kind","providerReady","caption","audio"],"additionalProperties":false},"chatGptDraft":{"type":"object","properties":{"kind":{"type":"string","enum":["local_creative_draft"]},"channel":{"type":"string","enum":["chatgpt_ads"]},"creativeType":{"type":"string","enum":["chat_card"]},"providerReady":{"type":"boolean","enum":[false]},"title":{"type":"string","minLength":3,"maxLength":50},"body":{"type":"string","maxLength":100},"targetUrl":{"allOf":[{"type":"string","format":"uri"},{"type":"string","maxLength":2048}]},"image":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["missing"]}},"required":["status"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","enum":["evidence_pinned"]},"evidence":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"checksumSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","enum":["image/jpeg","image/png","image/webp"]},"width":{"type":"integer","minimum":640},"height":{"type":"integer","minimum":640}},"required":["assetId","assetVersionId","checksumSha256","mimeType","width","height"],"additionalProperties":false}},"required":["status","evidence"],"additionalProperties":false}]}},"required":["kind","channel","creativeType","providerReady","title","body","targetUrl","image"],"additionalProperties":false},"onImageText":{"type":"array","items":{"type":"string","minLength":1}},"generation":{"type":"object","properties":{"pipeline":{"type":"string","enum":["finished-image.v1"],"description":"Generation pipeline identifier"},"imageModelId":{"type":"string","minLength":1,"description":"Image model identifier used for generation"},"quality":{"type":"string","minLength":1,"description":"Optional provider image quality setting"},"receiptId":{"type":"string","minLength":1,"description":"Receipt identifier for the generation purchase"},"candidateContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Content SHA-256 of the initial candidate: one image, or a sequence's ordered set of scene checksums"},"editedContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Content SHA-256 of the refined image, or of the corrected set, when edited"},"inspection":{"type":"string","enum":["keep","correct","unavailable"],"description":"Visual inspection outcome"},"verification":{"type":"string","enum":["judged","unavailable"],"description":"Whether the corrected image was judged against the candidate; what it concluded lives in the output's review"}},"required":["pipeline","imageModelId","candidateContentSha256","inspection"],"additionalProperties":false,"description":"Provenance for finished-image generation and refinement"},"soundtrack":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"artifactId":{"type":"string","minLength":1},"checksumSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","enum":["audio/mpeg"]},"byteLength":{"type":"integer","exclusiveMinimum":true,"minimum":0},"durationMs":{"type":"number","exclusiveMinimum":true,"minimum":0},"generation":{"type":"object","properties":{"modelId":{"type":"string","minLength":1},"receiptId":{"type":"string","minLength":1}},"required":["modelId","receiptId"],"additionalProperties":false}},"required":["assetId","assetVersionId","artifactId","checksumSha256","mimeType","byteLength","durationMs","generation"],"additionalProperties":false},"soundtrackFailure":{"type":"object","properties":{"code":{"type":"string","minLength":1}},"required":["code"],"additionalProperties":false},"origin":{"type":"string","enum":["customer_supplied"]},"ownerDirection":{"type":"object","properties":{"text":{"type":"string","minLength":1,"description":"The owner's instruction, verbatim"},"atVersionNumber":{"type":"integer","minimum":0,"description":"The version this instruction produced"}},"required":["text","atVersionNumber"],"additionalProperties":false},"review":{"type":"object","properties":{"status":{"type":"string","enum":["reviewed","unavailable"]},"recommendations":{"type":"array","items":{"type":"string","minLength":1,"description":"One suggested improvement, in the reviewer's own words"}}},"required":["status","recommendations"],"additionalProperties":false},"sequencePlan":{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-sequence-plan.v1"]},"visualDirection":{"type":"string","minLength":1},"scenes":{"type":"array","items":{"type":"object","properties":{"sceneId":{"type":"string","minLength":1,"description":"Stable identity for this scene across revisions, so an untouched scene keeps its image"},"purpose":{"type":"string","minLength":1,"description":"What this scene does in the sequence: the beat, not the artwork"},"wording":{"type":"string","minLength":1},"durationFrames":{"type":"integer","exclusiveMinimum":true,"minimum":0},"transition":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["cut"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["crossfade","fade_black","fade_white","dissolve"]},"durationFrames":{"type":"integer","exclusiveMinimum":true,"minimum":0}},"required":["kind","durationFrames"],"additionalProperties":false}]}},"required":["sceneId","purpose","durationFrames","transition"],"additionalProperties":false},"minItems":1},"posterFrame":{"type":"integer","minimum":0}},"required":["schemaVersion","visualDirection","scenes"],"additionalProperties":false},"finalReview":{"type":"object","properties":{"path":{"type":"string","minLength":1},"label":{"type":"string","minLength":1}},"required":["path","label"],"additionalProperties":false},"createdBy":{"type":"string","minLength":1},"createdAtIso":{"type":"string","format":"date-time"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","outputVersionId","productId","format","versionNumber","ideaDecisionRevision","artifacts","renditionIds","createdBy","createdAtIso"],"additionalProperties":false}},"operations":{"type":"array","items":{"type":"object","properties":{"operationId":{"type":"string","minLength":1},"productId":{"type":"string","minLength":1},"command":{"anyOf":[{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["resume_operation"]},"operationId":{"type":"string","minLength":1}},"required":["schemaVersion","command","operationId"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["start_concepts"]},"direction":{"type":"string","minLength":1},"directionSource":{"type":"string","enum":["owner","product_context"]},"expectedRevision":{"type":"integer","minimum":0}},"required":["schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["add_concept"]},"direction":{"type":"string","minLength":1},"directionSource":{"type":"string","enum":["owner","product_context"]},"uploads":{"type":"array","items":{"type":"object","properties":{"uploadId":{"type":"string","minLength":1},"fileName":{"type":"string","minLength":1,"maxLength":255}},"required":["uploadId"],"additionalProperties":false},"minItems":1,"maxItems":4}},"required":["schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["approve_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["remove_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["restore_concept"]}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["iterate_concept"]},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","instruction"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["branch_concept"]},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","instruction"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["revert_concept"]},"targetIdea":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256"],"additionalProperties":false}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","targetIdea"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["create_formats"]},"concepts":{"type":"array","items":{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"formats":{"type":"array","items":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"minItems":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","formats"],"additionalProperties":false},"minItems":1}},"required":["schemaVersion","command","concepts"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["revise_output"]},"outputVersionId":{"type":"string","minLength":1},"instruction":{"type":"string","minLength":1},"retrySoundtrack":{"type":"boolean","enum":[true]}},"required":["schemaVersion","command","outputVersionId","instruction"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["save_search_ad"]},"outputVersionId":{"type":"string","minLength":1},"googleSearchCreative":{"type":"object","properties":{"destinationUrl":{"type":"string","format":"uri"},"responsiveSearchAd":{"type":"object","properties":{"headlines":{"type":"array","items":{"type":"string","minLength":1},"minItems":3,"maxItems":15},"descriptions":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":4},"path1":{"type":"string","minLength":1},"path2":{"type":"string","minLength":1}},"required":["headlines","descriptions"],"additionalProperties":false},"adGroups":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"keywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"minItems":1,"maxItems":50},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":50,"default":[]}},"required":["name","keywords"],"additionalProperties":false},"minItems":1,"maxItems":10},"negativeKeywords":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD"]}},"required":["text","matchType"],"additionalProperties":false},"maxItems":100,"default":[]}},"required":["destinationUrl","responsiveSearchAd","adGroups"],"additionalProperties":false}},"required":["schemaVersion","command","outputVersionId","googleSearchCreative"],"additionalProperties":false},{"type":"object","properties":{"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"expectedDecisionRevision":{"type":"integer","minimum":0},"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["start_output_from"]},"sourceOutputVersionId":{"type":"string","minLength":1},"instruction":{"type":"string","minLength":1}},"required":["conceptId","conceptContentSha256","evidenceDigestSha256","expectedDecisionRevision","schemaVersion","command","sourceOutputVersionId","instruction"],"additionalProperties":false},{"type":"object","properties":{"schemaVersion":{"type":"string","enum":["creative-workspace-command.v1"]},"command":{"type":"string","enum":["finalize_platforms"]},"outputVersionIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"platforms":{"type":"array","items":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"minItems":1},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]}},"required":["schemaVersion","command","outputVersionIds","platforms","destination"],"additionalProperties":false}]},"idempotencyKey":{"type":"string","minLength":1},"status":{"type":"string","enum":["pending","running","waiting","succeeded","partial","failed","outcome_unknown"]},"units":{"type":"array","items":{"type":"object","properties":{"unitId":{"type":"string","minLength":1},"stage":{"type":"string","enum":["concepts","format","platform"]},"conceptId":{"type":"string","minLength":1},"conceptContentSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"evidenceDigestSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"ideaDecisionRevision":{"type":"integer","minimum":0},"format":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"platform":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]},"parentOutputVersionId":{"type":"string","minLength":1},"sourceUnitId":{"type":"string","minLength":1},"operationId":{"type":"string","minLength":1},"status":{"type":"string","enum":["pending","running","waiting","succeeded","failed","unsupported","outcome_unknown","cancelled"]},"revision":{"type":"integer","minimum":0},"attemptCount":{"type":"integer","minimum":0},"directionVersionId":{"type":"string","minLength":1},"outputVersionId":{"type":"string","minLength":1},"outputVersionNumber":{"type":"integer","exclusiveMinimum":true,"minimum":0},"unchangedFromOutputVersionId":{"type":"string","minLength":1},"message":{"type":"string","minLength":1},"failureCode":{"type":"string","minLength":1},"updatedAtIso":{"type":"string","format":"date-time"}},"required":["unitId","stage","operationId","status","revision","attemptCount","updatedAtIso"],"additionalProperties":false}},"createdAtIso":{"type":"string","format":"date-time"},"updatedAtIso":{"type":"string","format":"date-time"},"correlationId":{"type":"string","minLength":1},"credit":{"type":"object","properties":{"status":{"type":"string","enum":["pending","reserved","insufficient"]}},"required":["status"],"additionalProperties":false}},"required":["operationId","productId","command","idempotencyKey","status","units","createdAtIso","updatedAtIso"],"additionalProperties":false}},"capabilities":{"type":"object","properties":{"commands":{"type":"array","items":{"type":"string","enum":["start_concepts","add_concept","approve_concept","remove_concept","restore_concept","iterate_concept","branch_concept","revert_concept","create_formats","revise_output","save_search_ad","start_output_from","finalize_platforms"]}},"formats":{"type":"array","items":{"type":"object","properties":{"format":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"supported":{"type":"boolean"},"reason":{"type":"string","minLength":1}},"required":["format","supported"],"additionalProperties":false}},"platforms":{"type":"array","items":{"type":"object","properties":{"platform":{"type":"string","enum":["meta","google_ads","apple_ads","tiktok","chatgpt"]},"campaignType":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen"]},"destination":{"type":"string","enum":["paid","organic"]},"format":{"type":"string","enum":["image","swipe_slides","short_video","text_ad"]},"supported":{"type":"boolean"},"reason":{"type":"string","minLength":1}},"required":["platform","destination","format","supported"],"additionalProperties":false}}},"required":["commands","formats","platforms"],"additionalProperties":false,"default":{"commands":[],"formats":[],"platforms":[]}},"typicalWaits":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["idea_batch","new_idea","image","swipe_slides","short_video","text_ad","platform"]},"samples":{"type":"integer","exclusiveMinimum":true,"minimum":0},"p50Ms":{"type":"integer","minimum":0},"p90Ms":{"type":"integer","minimum":0}},"required":["kind","samples","p50Ms","p90Ms"],"additionalProperties":false}}},"required":["schemaVersion","productId","revision","concepts","outputs","operations"],"additionalProperties":false},"operationId":{"type":"string","minLength":1},"message":{"type":"string","minLength":1},"webUrl":{"type":"string","format":"uri"}},"required":["schemaVersion","productId","outcome","workspace"],"additionalProperties":false}}}},"201":{"description":"Product created."},"202":{"description":"Work accepted; read its saved status without resubmitting."},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/products/{productId}/creative-workspace/assets/{assetId}/{sha256}":{"get":{"operationId":"get__v1_products_productId_creative_workspace_assets_assetId_sha256_","security":[{"customerOAuth":["creative:read"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"productId","in":"path","required":true,"schema":{"type":"string"}},{"name":"assetId","in":"path","required":true,"schema":{"type":"string"}},{"name":"sha256","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work.","content":{"application/json":{"schema":{"type":"object","properties":{"assetId":{"type":"string","minLength":1},"assetVersionId":{"type":"string","minLength":1},"artifactId":{"type":"string","minLength":1},"checksumSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"mimeType":{"type":"string","enum":["image/png","image/jpeg","image/webp","video/mp4","audio/mpeg"]},"byteLength":{"type":"integer","exclusiveMinimum":true,"minimum":0},"mediaUrl":{"type":"string","format":"uri"},"expiresAtIso":{"type":"string","format":"date-time"}},"required":["assetId","assetVersionId","artifactId","checksumSha256","mimeType","byteLength","mediaUrl","expiresAtIso"],"additionalProperties":false}}}},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/products/{productId}/creative-workspace/uploads":{"post":{"operationId":"post__v1_products_productId_creative_workspace_uploads","security":[{"customerOAuth":["creative:write"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"productId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":180,"pattern":"^[!-~]+$"},"description":"Reuse this key and the exact request body after response loss. An accepted replay does not purchase work again. A new key represents a new action."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":255},"mimeType":{"type":"string","enum":["image/jpeg","image/png","video/mp4","video/quicktime"]},"byteLength":{"type":"integer","exclusiveMinimum":true,"minimum":0,"maximum":5368709120},"checksumSha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["fileName","mimeType","byteLength"],"additionalProperties":false}}}},"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work.","content":{"application/json":{"schema":{"type":"object","properties":{"uploadId":{"type":"string","minLength":1},"uploadUrl":{"type":"string","format":"uri","pattern":"^https\\:\\/\\/"},"requiredHeaders":{"type":"object","additionalProperties":{"type":"string","minLength":1}},"expiresAtIso":{"type":"string","format":"date-time"}},"required":["uploadId","uploadUrl","requiredHeaders","expiresAtIso"],"additionalProperties":false}}}},"201":{"description":"Product created."},"202":{"description":"Work accepted; read its saved status without resubmitting."},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}},"/v1/campaigns/results":{"get":{"operationId":"get__v1_campaigns_results","security":[{"customerOAuth":["campaigns:read"]}],"parameters":[{"name":"X-Workspace-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Staff preparation connections only: target a workspace returned by POST /v1/prospects, including after recipient acceptance or account connection. The original preparer's active access and sponsor membership are checked on every request."},{"name":"product","in":"query","required":false,"schema":{"type":"string"},"description":"One product's campaigns only."},{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen","chatgpt_ads","tiktok_traffic","apple_ads","meta_paid"]},"description":"One campaign type only."},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"First platform calendar day, inclusive."},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Last platform calendar day, inclusive."}],"responses":{"200":{"description":"Saved result or replay. Creative outcomes and per-unit statuses are authoritative; reads start no work.","content":{"application/json":{"schema":{"type":"object","properties":{"scopeId":{"type":"string","minLength":1},"observedAtIso":{"type":"string","format":"date-time"},"results":{"type":"array","items":{"type":"object","properties":{"campaign":{"type":"object","properties":{"channel":{"type":"string","enum":["google_ads_app","google_ads_search","google_ads_demand_gen","chatgpt_ads","tiktok_traffic","apple_ads","meta_paid"]},"packageId":{"type":"string","minLength":1},"productId":{"type":"string","minLength":1},"createdAtIso":{"type":"string","format":"date-time"},"flight":{"type":"object","properties":{"startAtIso":{"type":"string","format":"date-time"},"endAtIso":{"type":"string","format":"date-time"},"timeZone":{"type":"string","minLength":1},"providerStartDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["startAtIso","endAtIso","timeZone"],"additionalProperties":false},"destination":{"type":"object","properties":{"kind":{"type":"string","enum":["website","apple_app_store","google_play"]}},"required":["kind"],"additionalProperties":false},"objective":{"type":"string","minLength":1},"launch":{"type":"object","properties":{"phase":{"type":"string","enum":["preparing","reserving_funds","continuing","cancelling","handed_off","action_required","cancelled"]},"launchRequestId":{"type":"string","minLength":1},"authorizedAtIso":{"type":"string","format":"date-time"},"funded":{"type":"boolean"},"continuationService":{"type":"string","enum":["mobile-acquisition","paid-acquisition"]},"reasonCode":{"type":"string","minLength":1},"cancellation":{"type":"object","properties":{"providerCommitment":{"type":"string","enum":["none","possible"]},"reasonCode":{"type":"string","minLength":1}},"required":["providerCommitment"],"additionalProperties":false}},"required":["phase","launchRequestId","authorizedAtIso","funded"],"additionalProperties":false},"launchFactsAvailable":{"type":"boolean"},"attempt":{"type":"object","properties":{"status":{"type":"string","enum":["preflight_blocked","in_progress","awaiting_provider","succeeded","failed"]},"stage":{"type":"string","enum":["prepare","activate"]},"requestedAtIso":{"type":"string","format":"date-time"},"terminalReasonCodes":{"type":"array","items":{"type":"string","minLength":1}},"activeStep":{"type":"object","properties":{"kind":{"type":"string","minLength":1},"status":{"type":"string","minLength":1},"reasonCodes":{"type":"array","items":{"type":"string","minLength":1}},"providerReasonCode":{"type":"string","minLength":1}},"required":["kind","status","reasonCodes"],"additionalProperties":false}},"required":["status","stage","requestedAtIso","terminalReasonCodes"],"additionalProperties":false},"reviewStatus":{"type":"string","enum":["draft","pending_review","review_approved","activation_requested","rejected","revoked"]},"providerCampaignBound":{"type":"boolean"},"stop":{"type":"object","properties":{"requestedAtIso":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["available","requested","confirmed","failed","outcome_unknown"]}},"required":["status"],"additionalProperties":false},"deliveryControlStatus":{"type":"string","enum":["available","pause_requested","paused","resume_requested","resumed","stop_requested","stopped","blocked","unavailable"]},"deliveryControlAtIso":{"type":"string","format":"date-time"},"evidence":{"type":"object","properties":{"reportingState":{"type":"string","enum":["pending","reported","delayed","unavailable"]},"lastReportAtIso":{"type":"string","format":"date-time"},"lastCheckAtIso":{"type":"string","format":"date-time"},"nextCheckAtIso":{"type":"string","format":"date-time"},"deliveryObserved":{"type":"boolean"},"rowsSaved":{"type":"boolean"},"zeroImpressionsReported":{"type":"boolean"},"deliveryObservation":{"type":"object","properties":{"configuredStatus":{"type":"string","enum":["enabled","paused","removed"]},"servingCondition":{"type":"string","enum":["in_review","eligible","limited","restricted","rejected"]},"reasonCodes":{"type":"array","items":{"type":"string","enum":["budget_exhausted","account_restricted","some_ads_rejected"]}},"observedAtIso":{"type":"string","format":"date-time"}},"required":["configuredStatus","reasonCodes","observedAtIso"],"additionalProperties":false},"keywordInventory":{"type":"object","properties":{"observedAtIso":{"type":"string","format":"date-time"},"complete":{"type":"boolean"},"active":{"type":"integer","minimum":0},"byCondition":{"type":"object","required":["eligible","rarely_served","under_review","limited","disapproved","restricted","excluded_by_negative","paused","parent_paused","removed","unknown"],"properties":{"eligible":{"type":"integer","minimum":0},"rarely_served":{"type":"integer","minimum":0},"under_review":{"type":"integer","minimum":0},"limited":{"type":"integer","minimum":0},"disapproved":{"type":"integer","minimum":0},"restricted":{"type":"integer","minimum":0},"excluded_by_negative":{"type":"integer","minimum":0},"paused":{"type":"integer","minimum":0},"parent_paused":{"type":"integer","minimum":0},"removed":{"type":"integer","minimum":0},"unknown":{"type":"integer","minimum":0}},"additionalProperties":false},"negatives":{"type":"integer","minimum":0},"keywords":{"type":"array","items":{"type":"object","properties":{"resourceName":{"type":"string","minLength":1},"text":{"type":"string","minLength":1},"matchType":{"type":"string","enum":["EXACT","PHRASE","BROAD","UNKNOWN"]},"adGroup":{"type":"string","minLength":1},"condition":{"type":"string","enum":["eligible","rarely_served","under_review","limited","disapproved","restricted","excluded_by_negative","paused","parent_paused","removed","unknown"]},"origin":{"type":"string","enum":["launch","amendment","observed"]},"inReportingScope":{"type":"boolean"}},"required":["resourceName","text","matchType","condition","origin","inReportingScope"],"additionalProperties":false}}},"required":["observedAtIso","complete","active","byCondition","negatives","keywords"],"additionalProperties":false}},"required":["reportingState","deliveryObserved","rowsSaved","zeroImpressionsReported"],"additionalProperties":false},"customerAction":{"type":"object","properties":{"label":{"type":"string","minLength":1}},"required":["label"],"additionalProperties":false},"productName":{"type":"string","minLength":1},"productArchived":{"type":"boolean"},"section":{"type":"string","enum":["current","draft","past"]},"operation":{"type":"object","properties":{"state":{"type":"string","enum":["draft","preparing","submitted","in_review","scheduled","enabled","recovering","customer_action","pause_requested","paused","resume_requested","stop_requested","stopped","completed","not_launched"]},"label":{"type":"string","minLength":1},"detail":{"type":"string","minLength":1},"customerAction":{"type":"object","properties":{"label":{"type":"string","minLength":1}},"required":["label"],"additionalProperties":false},"observedAtIso":{"type":"string","format":"date-time"}},"required":["state","label","detail"],"additionalProperties":false},"evidenceLabel":{"type":"string","minLength":1},"evidenceDetail":{"type":"string","minLength":1}},"required":["channel","packageId","productId","launchFactsAvailable","providerCampaignBound","deliveryControlStatus","evidence","productName","productArchived","section","operation","evidenceLabel","evidenceDetail"],"additionalProperties":false},"days":{"type":"array","items":{"type":"object","properties":{"providerCalendarDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"accountTimezone":{"type":"string","minLength":1},"currencyCode":{"type":"string","pattern":"^[A-Z]{3}$"},"impressions":{"type":"integer","minimum":0},"interactions":{"type":"integer","minimum":0},"installs":{"type":"number","minimum":0},"spendCents":{"type":"integer","minimum":0},"partial":{"type":"boolean"},"observedAtIso":{"type":"string","format":"date-time"}},"required":["providerCalendarDate","accountTimezone","currencyCode","partial","observedAtIso"],"additionalProperties":false}}},"required":["campaign","days"],"additionalProperties":false}},"omittedCount":{"type":"integer","minimum":0}},"required":["scopeId","observedAtIso","results","omittedCount"],"additionalProperties":false}}}},"400":{"description":"Invalid request or missing stable mutation key."},"401":{"description":"Connect or refresh the credential; the response names OAuth resource metadata."},"402":{"description":"Insufficient creative credit. Saved work remains available in the website."},"403":{"description":"Missing permission, revoked membership, or unavailable workspace."},"404":{"description":"Unknown or inaccessible record. Foreign and nonexistent products are indistinguishable."},"409":{"description":"Stale revision or the same key bound to a different request. Read current state before changing the requested action."},"422":{"description":"The command could not be accepted."},"429":{"description":"The existing service request limit was reached."},"503":{"description":"Unavailable or response unconfirmed. Retain the exact body and key; do not assume no work was accepted."}}}}},"components":{"securitySchemes":{"customerOAuth":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://app.keryxmarketing.com/oauth/authorize","tokenUrl":"https://app.keryxmarketing.com/oauth/token","scopes":{"prospects:prepare":"Prepare unclaimed prospects without email, using operator-funded creative credit","products:read":"View your products and product discovery results","products:write":"Discover and add products","creative:read":"View your ideas, saved ads and previews","creative:write":"Create and revise ideas and ads using your Keryx creative credit","campaigns:read":"View your campaigns and their results"}}}}}}}