Privacy preferences

Necessary features

Required for security and basic site functions.

Always on

Optional usage analytics

Allow PostHog usage analytics? Change your choice any time in the footer.

Also allow session replay on this public website

Replay shows public pages and interactions, with inputs and private content masked. App replay is a separate choice.

Requires analytics; website replay is off by default.

Browser analytics does not enable account analytics.

Search loads only when you use it. Browse all categories below.

Research and cited briefs

Create an editorial Draft from a reviewed research variant

Create an unscheduled canonical Draft from a reviewed variant; also needs agent:operate. No submit or publishing. Requires agent:research.

POST /research-api/briefs/handoff

Contract reviewed: · sha256:ab393e91e9b7f18a

Overview

Create an unscheduled canonical Draft from a reviewed variant; also needs agent:operate. No submit or publishing. Requires agent:research.

A successful HTTP response can mean that a request was accepted rather than completed. For background work, save the returned ID and check the same operation until it finishes. A scheduled or accepted post is published only when the platform confirms it; a client timeout does not establish the result.

Authentication and permissions

Accepted credential classes
user_session, delegated_oauth, personal_access_token
Delegated capability
agent:research
Minimum workspace role
editor
Access scope
Resources this user is authorized to access
All-workspace consent required
No
Changes state
Yes
When the operation is complete
one committed canonical unscheduled Content Draft plus private source provenance; never submission/publication

A token can use only the rights held by its owner. Each request checks workspace membership, resource ownership, selected workspaces and granted capabilities. Core and full profiles change which tools are displayed; they do not grant access.

Request fields

Required means required inside its parent object and selected branch. A required child does not make an optional parent required. Rules and field names below are copied from the contract.

Request fields
Field / branchType / requiredConstraints
$objectRequired in parent
  • additionalProperties: false
workspace_idstringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
mutation_idstringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
brief_idstringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
brief_revisionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
variant_idstringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
variant_revisionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
contentobjectRequired in parent
  • additionalProperties: false
content.schemaVersionnumberOptional / item
  • const: 1
  • default: 1
content.accountIdsarrayOptional / item
  • maxItems: 50
  • default: []
content.accountIds[]stringOptional / item
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
content.captionstringOptional / item
  • maxLength: 5000
  • default: ""
content.hashtagsstringOptional / item
  • maxLength: 5000
  • default: ""
content.assetIdsarrayOptional / item
  • maxItems: 20
  • default: []
content.assetIds[]stringOptional / item
  • maxLength: 16
  • pattern: "^[1-9][0-9]*$"
content.threadsTextOnlybooleanOptional / item
  • default: false
content.threadsOptionsobjectOptional / item
  • additionalProperties: false
content.threadsOptions.post_typestringOptional / item
  • enum: ["TEXT","IMAGE","VIDEO","CAROUSEL","REPOST"]
content.threadsOptions.reply_to_idstringOptional / item
  • maxLength: 128
content.threadsOptions.quote_post_idstringOptional / item
  • maxLength: 128
content.threadsOptions.repost_target_idstringOptional / item
  • maxLength: 128
content.threadsOptions.reply_controlstringOptional / item
  • enum: ["everyone","accounts_you_follow","mentioned_only","parent_post_author_only","followers_only"]
content.threadsOptions.enable_reply_approvalsbooleanOptional / item—
content.threadsOptions.link_attachmentstringOptional / item
  • maxLength: 2048
content.threadsOptions.poll_attachmentobjectOptional / item
  • additionalProperties: false
content.threadsOptions.poll_attachment.option_astringRequired in parent
  • maxLength: 25
content.threadsOptions.poll_attachment.option_bstringRequired in parent
  • maxLength: 25
content.threadsOptions.poll_attachment.option_cstringOptional / item
  • maxLength: 25
content.threadsOptions.poll_attachment.option_dstringOptional / item
  • maxLength: 25
content.threadsOptions.gif_attachmentobjectOptional / item
  • additionalProperties: false
content.threadsOptions.gif_attachment.gif_idstringRequired in parent
  • maxLength: 128
content.threadsOptions.gif_attachment.providerstringRequired in parent
  • const: "GIPHY"
content.threadsOptions.text_attachmentobjectOptional / item
  • additionalProperties: false
content.threadsOptions.text_attachment.plaintextstringRequired in parent
  • maxLength: 10000
content.threadsOptions.text_attachment.link_attachment_urlstringOptional / item
  • maxLength: 2048
content.threadsOptions.text_attachment.text_with_styling_infoarrayOptional / item
  • maxItems: 100
content.threadsOptions.text_attachment.text_with_styling_info[]objectOptional / item
  • additionalProperties: false
content.threadsOptions.text_attachment.text_with_styling_info[].offsetintegerRequired in parent
  • minimum: 0
  • maximum: 9007199254740991
content.threadsOptions.text_attachment.text_with_styling_info[].lengthintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
content.threadsOptions.text_attachment.text_with_styling_info[].styling_infoarrayRequired in parent
  • minItems: 1
content.threadsOptions.text_attachment.text_with_styling_info[].styling_info[]stringOptional / item
  • enum: ["bold","italic","highlight","underline","strikethrough"]
content.threadsOptions.topic_tagstringOptional / item
  • maxLength: 50
content.threadsOptions.text_entitiesarrayOptional / item
  • maxItems: 10
content.threadsOptions.text_entities[]objectOptional / item
  • additionalProperties: false
content.threadsOptions.text_entities[].entity_typestringRequired in parent
  • enum: ["SPOILER","spoiler"]
content.threadsOptions.text_entities[].offsetintegerRequired in parent
  • minimum: 0
  • maximum: 9007199254740991
content.threadsOptions.text_entities[].lengthintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
content.threadsOptions.is_spoiler_mediabooleanOptional / item—
content.threadsOptions.is_ghost_postbooleanOptional / item—
content.threadsOptions.location_idstringOptional / item
  • maxLength: 128
content.threadsOptions.allowlisted_country_codesarrayOptional / item
  • minItems: 1
  • maxItems: 249
content.threadsOptions.allowlisted_country_codes[]stringOptional / item
  • pattern: "^[A-Z]{2}$"
content.threadsOptions.crossreshare_to_igbooleanOptional / item—
content.threadsOptions.crossreshare_to_ig_dark_modebooleanOptional / item—
content.threadsOptions.auto_publish_textbooleanOptional / item—
content.threadsOptions.media_optionsarrayOptional / item
  • maxItems: 20
content.threadsOptions.media_options[]objectOptional / item
  • additionalProperties: false
content.threadsOptions.media_options[].asset_idintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
content.threadsOptions.media_options[].alt_textstringOptional / item
  • minLength: 1
  • maxLength: 1000
content.threadsOptions.media_options[].is_spoiler_mediabooleanOptional / item—
content.instagramModestringOptional / item
  • enum: ["IMAGE","REELS","CAROUSEL","STORY_IMAGE","STORY_VIDEO"]
  • default: "REELS"
content.youtubeTitlestringOptional / item
  • maxLength: 100
  • default: ""
content.youtubePrivacystringOptional / item
  • enum: ["private","unlisted","public"]
  • default: "private"
content.youtubeSyntheticbooleanOptional / item
  • default: false
content.youtubeCategoryIdstringOptional / item
  • maxLength: 32
  • default: ""
content.youtubeShortbooleanOptional / item
  • default: false
content.linkUrlstringOptional / item
  • maxLength: 2048
  • default: ""
content.scheduledAtstringOptional / item
  • maxLength: 64
  • default: ""
content.displayTimezonestringOptional / item
  • minLength: 1
  • maxLength: 128
  • default: "UTC"
content.publishNowbooleanOptional / item
  • default: false
content.destinationOverridesobjectOptional / item
  • default: {}
  • additionalProperties: {"type":"object","properties":{"caption":{"type":"string","maxLength":5000},"scheduledAt":{"type":"string","maxLength":64}},"additionalProperties":false}
content.destinationOverrides.*objectOptional / item
  • additionalProperties: false
content.destinationOverrides.*.captionstringOptional / item
  • maxLength: 5000
content.destinationOverrides.*.scheduledAtstringOptional / item
  • maxLength: 64
content.expiresAtstringOptional / item
  • maxLength: 64
  • default: ""
Complete JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "mutation_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "brief_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "brief_revision": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "variant_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "variant_revision": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "content": {
      "type": "object",
      "properties": {
        "schemaVersion": {
          "default": 1,
          "type": "number",
          "const": 1
        },
        "accountIds": {
          "default": [],
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "caption": {
          "default": "",
          "type": "string",
          "maxLength": 5000
        },
        "hashtags": {
          "default": "",
          "type": "string",
          "maxLength": 5000
        },
        "assetIds": {
          "default": [],
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 16,
            "pattern": "^[1-9][0-9]*$"
          }
        },
        "threadsTextOnly": {
          "default": false,
          "type": "boolean"
        },
        "threadsOptions": {
          "type": "object",
          "properties": {
            "post_type": {
              "type": "string",
              "enum": [
                "TEXT",
                "IMAGE",
                "VIDEO",
                "CAROUSEL",
                "REPOST"
              ]
            },
            "reply_to_id": {
              "type": "string",
              "maxLength": 128
            },
            "quote_post_id": {
              "type": "string",
              "maxLength": 128
            },
            "repost_target_id": {
              "type": "string",
              "maxLength": 128
            },
            "reply_control": {
              "type": "string",
              "enum": [
                "everyone",
                "accounts_you_follow",
                "mentioned_only",
                "parent_post_author_only",
                "followers_only"
              ]
            },
            "enable_reply_approvals": {
              "type": "boolean"
            },
            "link_attachment": {
              "type": "string",
              "maxLength": 2048
            },
            "poll_attachment": {
              "type": "object",
              "properties": {
                "option_a": {
                  "type": "string",
                  "maxLength": 25
                },
                "option_b": {
                  "type": "string",
                  "maxLength": 25
                },
                "option_c": {
                  "type": "string",
                  "maxLength": 25
                },
                "option_d": {
                  "type": "string",
                  "maxLength": 25
                }
              },
              "required": [
                "option_a",
                "option_b"
              ],
              "additionalProperties": false
            },
            "gif_attachment": {
              "type": "object",
              "properties": {
                "gif_id": {
                  "type": "string",
                  "maxLength": 128
                },
                "provider": {
                  "type": "string",
                  "const": "GIPHY"
                }
              },
              "required": [
                "gif_id",
                "provider"
              ],
              "additionalProperties": false
            },
            "text_attachment": {
              "type": "object",
              "properties": {
                "plaintext": {
                  "type": "string",
                  "maxLength": 10000
                },
                "link_attachment_url": {
                  "type": "string",
                  "maxLength": 2048
                },
                "text_with_styling_info": {
                  "maxItems": 100,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "offset": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      },
                      "length": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      "styling_info": {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "bold",
                            "italic",
                            "highlight",
                            "underline",
                            "strikethrough"
                          ]
                        }
                      }
                    },
                    "required": [
                      "offset",
                      "length",
                      "styling_info"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "plaintext"
              ],
              "additionalProperties": false
            },
            "topic_tag": {
              "type": "string",
              "maxLength": 50
            },
            "text_entities": {
              "maxItems": 10,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "entity_type": {
                    "type": "string",
                    "enum": [
                      "SPOILER",
                      "spoiler"
                    ]
                  },
                  "offset": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "length": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "entity_type",
                  "offset",
                  "length"
                ],
                "additionalProperties": false
              }
            },
            "is_spoiler_media": {
              "type": "boolean"
            },
            "is_ghost_post": {
              "type": "boolean"
            },
            "location_id": {
              "type": "string",
              "maxLength": 128
            },
            "allowlisted_country_codes": {
              "minItems": 1,
              "maxItems": 249,
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^[A-Z]{2}$"
              }
            },
            "crossreshare_to_ig": {
              "type": "boolean"
            },
            "crossreshare_to_ig_dark_mode": {
              "type": "boolean"
            },
            "auto_publish_text": {
              "type": "boolean"
            },
            "media_options": {
              "maxItems": 20,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "asset_id": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "alt_text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1000
                  },
                  "is_spoiler_media": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "asset_id"
                ],
                "additionalProperties": false
              }
            }
          },
          "additionalProperties": false
        },
        "instagramMode": {
          "default": "REELS",
          "type": "string",
          "enum": [
            "IMAGE",
            "REELS",
            "CAROUSEL",
            "STORY_IMAGE",
            "STORY_VIDEO"
          ]
        },
        "youtubeTitle": {
          "default": "",
          "type": "string",
          "maxLength": 100
        },
        "youtubePrivacy": {
          "default": "private",
          "type": "string",
          "enum": [
            "private",
            "unlisted",
            "public"
          ]
        },
        "youtubeSynthetic": {
          "default": false,
          "type": "boolean"
        },
        "youtubeCategoryId": {
          "default": "",
          "type": "string",
          "maxLength": 32
        },
        "youtubeShort": {
          "default": false,
          "type": "boolean"
        },
        "linkUrl": {
          "default": "",
          "type": "string",
          "maxLength": 2048
        },
        "scheduledAt": {
          "default": "",
          "type": "string",
          "maxLength": 64
        },
        "displayTimezone": {
          "default": "UTC",
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "publishNow": {
          "default": false,
          "type": "boolean"
        },
        "destinationOverrides": {
          "default": {},
          "type": "object",
          "propertyNames": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "additionalProperties": {
            "type": "object",
            "properties": {
              "caption": {
                "type": "string",
                "maxLength": 5000
              },
              "scheduledAt": {
                "type": "string",
                "maxLength": 64
              }
            },
            "additionalProperties": false
          }
        },
        "expiresAt": {
          "default": "",
          "type": "string",
          "maxLength": 64
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "workspace_id",
    "mutation_id",
    "brief_id",
    "brief_revision",
    "variant_id",
    "variant_revision",
    "content"
  ],
  "additionalProperties": false
}

Response and completion

Success HTTP statuses: 200. When the operation is complete: one committed canonical unscheduled Content Draft plus private source provenance; never submission/publication.

A successful HTTP response can mean that a request was accepted rather than completed. For background work, save the returned ID and check the same operation until it finishes. A scheduled or accepted post is published only when the platform confirms it; a client timeout does not establish the result.

Required means required inside its parent object and selected branch. A required child does not make an optional parent required. Rules and field names below are copied from the contract.

Response and completion
Field / branchType / requiredConstraints
$objectRequired in parent—
handoffobjectRequired in parent—
handoff.idstringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
handoff.workspace_idstringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
handoff.mutation_idstringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
handoff.brief_idstringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
handoff.brief_revisionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
handoff.variantobjectRequired in parent—
handoff.variant.idstringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
handoff.variant.revisionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
handoff.variant.localestringRequired in parent
  • enum: ["en","zh-HK"]
handoff.draft_idstring | nullRequired in parent—
handoff.draft_idanyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
handoff.draft_idanyOf 2nullRequired in parent—
handoff.draft_revisionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
handoff.created_atstringRequired in parent
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
handoff.evidencearrayRequired in parent
  • maxItems: 500
handoff.evidence[]objectOptional / item—
handoff.evidence[].evidence_idstringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
handoff.evidence[].revisionintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
handoff.locked_finding_idsarrayRequired in parent
  • maxItems: 100
handoff.locked_finding_ids[]stringOptional / item
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
handoff.availabilitystringRequired in parent
  • enum: ["available","stale","unavailable"]
handoff.reasonsarrayRequired in parent
  • maxItems: 6
handoff.reasons[]stringOptional / item
  • enum: ["source_unavailable","source_changed","brief_changed","variant_changed","draft_changed","draft_unavailable","not_reviewed"]
handoff.methodstringRequired in parent
  • const: "reviewed_manual_handoff/v1"
draftobject | nullRequired in parent—
draftanyOf 1objectRequired in parent—
draft.idanyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.workspace_idanyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.revisionanyOf 1integerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
draft.stateanyOf 1stringRequired in parent
  • enum: ["draft","submitting","submitted"]
draft.contentanyOf 1objectRequired in parent—
draft.content.schemaVersionanyOf 1numberRequired in parent
  • const: 1
  • default: 1
draft.content.accountIdsanyOf 1arrayRequired in parent
  • maxItems: 50
  • default: []
draft.content.accountIds[]anyOf 1stringOptional / item
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.content.captionanyOf 1stringRequired in parent
  • maxLength: 5000
  • default: ""
draft.content.hashtagsanyOf 1stringRequired in parent
  • maxLength: 5000
  • default: ""
draft.content.assetIdsanyOf 1arrayRequired in parent
  • maxItems: 20
  • default: []
draft.content.assetIds[]anyOf 1stringOptional / item
  • maxLength: 16
  • pattern: "^[1-9][0-9]*$"
draft.content.threadsTextOnlyanyOf 1booleanRequired in parent
  • default: false
draft.content.threadsOptionsanyOf 1objectOptional / item—
draft.content.threadsOptions.post_typeanyOf 1stringOptional / item
  • enum: ["TEXT","IMAGE","VIDEO","CAROUSEL","REPOST"]
draft.content.threadsOptions.reply_to_idanyOf 1stringOptional / item
  • maxLength: 128
draft.content.threadsOptions.quote_post_idanyOf 1stringOptional / item
  • maxLength: 128
draft.content.threadsOptions.repost_target_idanyOf 1stringOptional / item
  • maxLength: 128
draft.content.threadsOptions.reply_controlanyOf 1stringOptional / item
  • enum: ["everyone","accounts_you_follow","mentioned_only","parent_post_author_only","followers_only"]
draft.content.threadsOptions.enable_reply_approvalsanyOf 1booleanOptional / item—
draft.content.threadsOptions.link_attachmentanyOf 1stringOptional / item
  • maxLength: 2048
draft.content.threadsOptions.poll_attachmentanyOf 1objectOptional / item—
draft.content.threadsOptions.poll_attachment.option_aanyOf 1stringRequired in parent
  • maxLength: 25
draft.content.threadsOptions.poll_attachment.option_banyOf 1stringRequired in parent
  • maxLength: 25
draft.content.threadsOptions.poll_attachment.option_canyOf 1stringOptional / item
  • maxLength: 25
draft.content.threadsOptions.poll_attachment.option_danyOf 1stringOptional / item
  • maxLength: 25
draft.content.threadsOptions.gif_attachmentanyOf 1objectOptional / item—
draft.content.threadsOptions.gif_attachment.gif_idanyOf 1stringRequired in parent
  • maxLength: 128
draft.content.threadsOptions.gif_attachment.provideranyOf 1stringRequired in parent
  • const: "GIPHY"
draft.content.threadsOptions.text_attachmentanyOf 1objectOptional / item—
draft.content.threadsOptions.text_attachment.plaintextanyOf 1stringRequired in parent
  • maxLength: 10000
draft.content.threadsOptions.text_attachment.link_attachment_urlanyOf 1stringOptional / item
  • maxLength: 2048
draft.content.threadsOptions.text_attachment.text_with_styling_infoanyOf 1arrayOptional / item
  • maxItems: 100
draft.content.threadsOptions.text_attachment.text_with_styling_info[]anyOf 1objectOptional / item—
draft.content.threadsOptions.text_attachment.text_with_styling_info[].offsetanyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 9007199254740991
draft.content.threadsOptions.text_attachment.text_with_styling_info[].lengthanyOf 1integerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
draft.content.threadsOptions.text_attachment.text_with_styling_info[].styling_infoanyOf 1arrayRequired in parent
  • minItems: 1
draft.content.threadsOptions.text_attachment.text_with_styling_info[].styling_info[]anyOf 1stringOptional / item
  • enum: ["bold","italic","highlight","underline","strikethrough"]
draft.content.threadsOptions.topic_taganyOf 1stringOptional / item
  • maxLength: 50
draft.content.threadsOptions.text_entitiesanyOf 1arrayOptional / item
  • maxItems: 10
draft.content.threadsOptions.text_entities[]anyOf 1objectOptional / item—
draft.content.threadsOptions.text_entities[].entity_typeanyOf 1stringRequired in parent
  • enum: ["SPOILER","spoiler"]
draft.content.threadsOptions.text_entities[].offsetanyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 9007199254740991
draft.content.threadsOptions.text_entities[].lengthanyOf 1integerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
draft.content.threadsOptions.is_spoiler_mediaanyOf 1booleanOptional / item—
draft.content.threadsOptions.is_ghost_postanyOf 1booleanOptional / item—
draft.content.threadsOptions.location_idanyOf 1stringOptional / item
  • maxLength: 128
draft.content.threadsOptions.allowlisted_country_codesanyOf 1arrayOptional / item
  • minItems: 1
  • maxItems: 249
draft.content.threadsOptions.allowlisted_country_codes[]anyOf 1stringOptional / item
  • pattern: "^[A-Z]{2}$"
draft.content.threadsOptions.crossreshare_to_iganyOf 1booleanOptional / item—
draft.content.threadsOptions.crossreshare_to_ig_dark_modeanyOf 1booleanOptional / item—
draft.content.threadsOptions.auto_publish_textanyOf 1booleanOptional / item—
draft.content.threadsOptions.media_optionsanyOf 1arrayOptional / item
  • maxItems: 20
draft.content.threadsOptions.media_options[]anyOf 1objectOptional / item—
draft.content.threadsOptions.media_options[].asset_idanyOf 1integerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
draft.content.threadsOptions.media_options[].alt_textanyOf 1stringOptional / item
  • minLength: 1
  • maxLength: 1000
draft.content.threadsOptions.media_options[].is_spoiler_mediaanyOf 1booleanOptional / item—
draft.content.instagramModeanyOf 1stringRequired in parent
  • enum: ["IMAGE","REELS","CAROUSEL","STORY_IMAGE","STORY_VIDEO"]
  • default: "REELS"
draft.content.youtubeTitleanyOf 1stringRequired in parent
  • maxLength: 100
  • default: ""
draft.content.youtubePrivacyanyOf 1stringRequired in parent
  • enum: ["private","unlisted","public"]
  • default: "private"
draft.content.youtubeSyntheticanyOf 1booleanRequired in parent
  • default: false
draft.content.youtubeCategoryIdanyOf 1stringRequired in parent
  • maxLength: 32
  • default: ""
draft.content.youtubeShortanyOf 1booleanRequired in parent
  • default: false
draft.content.linkUrlanyOf 1stringRequired in parent
  • maxLength: 2048
  • default: ""
draft.content.scheduledAtanyOf 1stringRequired in parent
  • maxLength: 64
  • default: ""
draft.content.displayTimezoneanyOf 1stringRequired in parent
  • minLength: 1
  • maxLength: 128
  • default: "UTC"
draft.content.publishNowanyOf 1booleanRequired in parent
  • default: false
draft.content.destinationOverridesanyOf 1objectRequired in parent
  • default: {}
  • additionalProperties: {"type":"object","properties":{"caption":{"type":"string","maxLength":5000},"scheduledAt":{"type":"string","maxLength":64}}}
draft.content.destinationOverrides.*anyOf 1objectOptional / item—
draft.content.destinationOverrides.*.captionanyOf 1stringOptional / item
  • maxLength: 5000
draft.content.destinationOverrides.*.scheduledAtanyOf 1stringOptional / item
  • maxLength: 64
draft.content.expiresAtanyOf 1stringRequired in parent
  • maxLength: 64
  • default: ""
draft.created_byanyOf 1string | nullRequired in parent—
draft.created_byanyOf 1 / anyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.created_byanyOf 1 / anyOf 2nullRequired in parent—
draft.updated_byanyOf 1string | nullRequired in parent—
draft.updated_byanyOf 1 / anyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.updated_byanyOf 1 / anyOf 2nullRequired in parent—
draft.created_atanyOf 1stringRequired in parent
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
draft.updated_atanyOf 1stringRequired in parent
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
draft.submissionanyOf 1object | nullRequired in parent—
draft.submissionanyOf 1 / anyOf 1objectRequired in parent—
draft.submission.idanyOf 1 / anyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.submission.expected_revisionanyOf 1 / anyOf 1integerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
draft.submission.started_atanyOf 1 / anyOf 1stringRequired in parent
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
draft.submission.receiptanyOf 1 / anyOf 1object | nullRequired in parent—
draft.submission.receiptanyOf 1 / anyOf 1 / anyOf 1objectRequired in parent—
draft.submission.receipt.batch_idanyOf 1 / anyOf 1 / anyOf 1string | nullRequired in parent—
draft.submission.receipt.batch_idanyOf 1 / anyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.submission.receipt.batch_idanyOf 1 / anyOf 1 / anyOf 1 / anyOf 2nullRequired in parent—
draft.submission.receipt.successesanyOf 1 / anyOf 1 / anyOf 1arrayRequired in parent
  • maxItems: 50
draft.submission.receipt.successes[]anyOf 1 / anyOf 1 / anyOf 1objectOptional / item—
draft.submission.receipt.successes[].social_account_idanyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.submission.receipt.successes[].post_idanyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • pattern: "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
draft.submission.receipt.failuresanyOf 1 / anyOf 1 / anyOf 1arrayRequired in parent
  • maxItems: 50
draft.submission.receipt.failures[]anyOf 1 / anyOf 1 / anyOf 1objectOptional / item—
draft.submission.receipt.failures[].social_account_idanyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.submission.receipt.failures[].codeanyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • minLength: 1
  • maxLength: 160
draft.submission.receipt.failures[].messageanyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • maxLength: 2000
draft.submission.receiptanyOf 1 / anyOf 1 / anyOf 2nullRequired in parent—
draft.submissionanyOf 1 / anyOf 2nullRequired in parent—
draft.brand_contextanyOf 1object | nullOptional / item—
draft.brand_contextanyOf 1 / anyOf 1objectOptional / item—
draft.brand_context.workspace_idanyOf 1 / anyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.brand_context.selectionanyOf 1 / anyOf 1objectRequired in parent—
draft.brand_context.selection.profile_idanyOf 1 / anyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.brand_context.selection.version_idanyOf 1 / anyOf 1stringRequired in parent
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
draft.brand_context.selection.revisionanyOf 1 / anyOf 1integerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
draft.brand_context.selection.content_digestanyOf 1 / anyOf 1stringRequired in parent
  • pattern: "^[a-f0-9]{64}$"
draft.brand_context.selection.context_digestanyOf 1 / anyOf 1stringRequired in parent
  • pattern: "^[a-f0-9]{64}$"
draft.brand_context.availabilityanyOf 1 / anyOf 1stringRequired in parent
  • enum: ["available","missing"]
draft.brand_context.profile_stateanyOf 1 / anyOf 1string | nullRequired in parent—
draft.brand_context.profile_stateanyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • enum: ["active","archived"]
draft.brand_context.profile_stateanyOf 1 / anyOf 1 / anyOf 2nullRequired in parent—
draft.brand_context.contentanyOf 1 / anyOf 1object | nullRequired in parent—
draft.brand_context.contentanyOf 1 / anyOf 1 / anyOf 1objectRequired in parent—
draft.brand_context.content.nameanyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • maxLength: 120
draft.brand_context.content.audienceanyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • maxLength: 2000
draft.brand_context.content.voiceanyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • maxLength: 2000
draft.brand_context.content.languageanyOf 1 / anyOf 1 / anyOf 1string | nullRequired in parent—
draft.brand_context.content.languageanyOf 1 / anyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • minLength: 1
  • maxLength: 64
draft.brand_context.content.languageanyOf 1 / anyOf 1 / anyOf 1 / anyOf 2nullRequired in parent—
draft.brand_context.content.preferred_termsanyOf 1 / anyOf 1 / anyOf 1arrayRequired in parent
  • maxItems: 50
draft.brand_context.content.preferred_terms[]anyOf 1 / anyOf 1 / anyOf 1stringOptional / item
  • minLength: 1
  • maxLength: 120
draft.brand_context.content.prohibited_termsanyOf 1 / anyOf 1 / anyOf 1arrayRequired in parent
  • maxItems: 50
draft.brand_context.content.prohibited_terms[]anyOf 1 / anyOf 1 / anyOf 1stringOptional / item
  • minLength: 1
  • maxLength: 120
draft.brand_context.content.locked_factsanyOf 1 / anyOf 1 / anyOf 1arrayRequired in parent
  • maxItems: 50
draft.brand_context.content.locked_facts[]anyOf 1 / anyOf 1 / anyOf 1stringOptional / item
  • minLength: 1
  • maxLength: 500
draft.brand_context.content.call_to_actionanyOf 1 / anyOf 1 / anyOf 1string | nullRequired in parent—
draft.brand_context.content.call_to_actionanyOf 1 / anyOf 1 / anyOf 1 / anyOf 1stringRequired in parent
  • maxLength: 1000
draft.brand_context.content.call_to_actionanyOf 1 / anyOf 1 / anyOf 1 / anyOf 2nullRequired in parent—
draft.brand_context.contentanyOf 1 / anyOf 1 / anyOf 2nullRequired in parent—
draft.brand_context.sourcesanyOf 1 / anyOf 1objectRequired in parent—
draft.brand_context.sources.websiteanyOf 1 / anyOf 1stringRequired in parent
  • enum: ["available","not_available"]
draft.brand_context.sources.logoanyOf 1 / anyOf 1stringRequired in parent
  • enum: ["none","present","missing"]
draft.brand_context.sources.own_postsanyOf 1 / anyOf 1objectRequired in parent—
draft.brand_context.sources.own_posts.selectedanyOf 1 / anyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 10
draft.brand_context.sources.own_posts.availableanyOf 1 / anyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 10
draft.brand_context.sources.own_posts.unavailableanyOf 1 / anyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 10
draft.brand_context.sources.own_posts.erasedanyOf 1 / anyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 10
draft.brand_contextanyOf 1 / anyOf 2nullOptional / item—
draft.brand_reviewanyOf 1object | nullOptional / item—
draft.brand_reviewanyOf 1 / anyOf 1objectOptional / item—
draft.brand_review.rule_versionanyOf 1 / anyOf 1numberRequired in parent
  • const: 1
draft.brand_review.context_digestanyOf 1 / anyOf 1stringRequired in parent
  • pattern: "^[a-f0-9]{64}$"
draft.brand_review.content_digestanyOf 1 / anyOf 1stringRequired in parent
  • pattern: "^[a-f0-9]{64}$"
draft.brand_review.statusanyOf 1 / anyOf 1stringRequired in parent
  • enum: ["clear","attention","unavailable"]
draft.brand_review.issuesanyOf 1 / anyOf 1arrayRequired in parent
  • maxItems: 5151
draft.brand_review.issues[]anyOf 1 / anyOf 1objectOptional / item—
draft.brand_review.issues[].codeanyOf 1 / anyOf 1stringRequired in parent
  • enum: ["prohibited_term","locked_fact_missing","conflicting_rule","context_unavailable"]
draft.brand_review.issues[].targetanyOf 1 / anyOf 1stringRequired in parent
  • minLength: 1
  • maxLength: 80
draft.brand_review.issues[].rule_indexanyOf 1 / anyOf 1integer | nullRequired in parent—
draft.brand_review.issues[].rule_indexanyOf 1 / anyOf 1 / anyOf 1integerRequired in parent
  • minimum: 0
  • maximum: 49
draft.brand_review.issues[].rule_indexanyOf 1 / anyOf 1 / anyOf 2nullRequired in parent—
draft.brand_review.issues[].messageanyOf 1 / anyOf 1stringRequired in parent
  • minLength: 1
  • maxLength: 240
draft.brand_reviewanyOf 1 / anyOf 2nullOptional / item—
draftanyOf 2nullRequired in parent—
Complete JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "handoff": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "mutation_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "brief_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "brief_revision": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "variant": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "revision": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "locale": {
              "type": "string",
              "enum": [
                "en",
                "zh-HK"
              ]
            }
          },
          "required": [
            "id",
            "revision",
            "locale"
          ]
        },
        "draft_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            {
              "type": "null"
            }
          ]
        },
        "draft_revision": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "created_at": {
          "type": "string",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
          "format": "date-time"
        },
        "evidence": {
          "maxItems": 500,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "evidence_id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "revision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "evidence_id",
              "revision"
            ]
          }
        },
        "locked_finding_ids": {
          "maxItems": 100,
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "availability": {
          "type": "string",
          "enum": [
            "available",
            "stale",
            "unavailable"
          ]
        },
        "reasons": {
          "maxItems": 6,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "source_unavailable",
              "source_changed",
              "brief_changed",
              "variant_changed",
              "draft_changed",
              "draft_unavailable",
              "not_reviewed"
            ]
          }
        },
        "method": {
          "type": "string",
          "const": "reviewed_manual_handoff/v1"
        }
      },
      "required": [
        "id",
        "workspace_id",
        "mutation_id",
        "brief_id",
        "brief_revision",
        "variant",
        "draft_id",
        "draft_revision",
        "created_at",
        "evidence",
        "locked_finding_ids",
        "availability",
        "reasons",
        "method"
      ]
    },
    "draft": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "workspace_id": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "revision": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "state": {
              "type": "string",
              "enum": [
                "draft",
                "submitting",
                "submitted"
              ]
            },
            "content": {
              "type": "object",
              "properties": {
                "schemaVersion": {
                  "default": 1,
                  "type": "number",
                  "const": 1
                },
                "accountIds": {
                  "default": [],
                  "maxItems": 50,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  }
                },
                "caption": {
                  "default": "",
                  "type": "string",
                  "maxLength": 5000
                },
                "hashtags": {
                  "default": "",
                  "type": "string",
                  "maxLength": 5000
                },
                "assetIds": {
                  "default": [],
                  "maxItems": 20,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "maxLength": 16,
                    "pattern": "^[1-9][0-9]*$"
                  }
                },
                "threadsTextOnly": {
                  "default": false,
                  "type": "boolean"
                },
                "threadsOptions": {
                  "type": "object",
                  "properties": {
                    "post_type": {
                      "type": "string",
                      "enum": [
                        "TEXT",
                        "IMAGE",
                        "VIDEO",
                        "CAROUSEL",
                        "REPOST"
                      ]
                    },
                    "reply_to_id": {
                      "type": "string",
                      "maxLength": 128
                    },
                    "quote_post_id": {
                      "type": "string",
                      "maxLength": 128
                    },
                    "repost_target_id": {
                      "type": "string",
                      "maxLength": 128
                    },
                    "reply_control": {
                      "type": "string",
                      "enum": [
                        "everyone",
                        "accounts_you_follow",
                        "mentioned_only",
                        "parent_post_author_only",
                        "followers_only"
                      ]
                    },
                    "enable_reply_approvals": {
                      "type": "boolean"
                    },
                    "link_attachment": {
                      "type": "string",
                      "maxLength": 2048
                    },
                    "poll_attachment": {
                      "type": "object",
                      "properties": {
                        "option_a": {
                          "type": "string",
                          "maxLength": 25
                        },
                        "option_b": {
                          "type": "string",
                          "maxLength": 25
                        },
                        "option_c": {
                          "type": "string",
                          "maxLength": 25
                        },
                        "option_d": {
                          "type": "string",
                          "maxLength": 25
                        }
                      },
                      "required": [
                        "option_a",
                        "option_b"
                      ]
                    },
                    "gif_attachment": {
                      "type": "object",
                      "properties": {
                        "gif_id": {
                          "type": "string",
                          "maxLength": 128
                        },
                        "provider": {
                          "type": "string",
                          "const": "GIPHY"
                        }
                      },
                      "required": [
                        "gif_id",
                        "provider"
                      ]
                    },
                    "text_attachment": {
                      "type": "object",
                      "properties": {
                        "plaintext": {
                          "type": "string",
                          "maxLength": 10000
                        },
                        "link_attachment_url": {
                          "type": "string",
                          "maxLength": 2048
                        },
                        "text_with_styling_info": {
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "offset": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              },
                              "length": {
                                "type": "integer",
                                "exclusiveMinimum": 0,
                                "maximum": 9007199254740991
                              },
                              "styling_info": {
                                "minItems": 1,
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "bold",
                                    "italic",
                                    "highlight",
                                    "underline",
                                    "strikethrough"
                                  ]
                                }
                              }
                            },
                            "required": [
                              "offset",
                              "length",
                              "styling_info"
                            ]
                          }
                        }
                      },
                      "required": [
                        "plaintext"
                      ]
                    },
                    "topic_tag": {
                      "type": "string",
                      "maxLength": 50
                    },
                    "text_entities": {
                      "maxItems": 10,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "entity_type": {
                            "type": "string",
                            "enum": [
                              "SPOILER",
                              "spoiler"
                            ]
                          },
                          "offset": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "length": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "entity_type",
                          "offset",
                          "length"
                        ]
                      }
                    },
                    "is_spoiler_media": {
                      "type": "boolean"
                    },
                    "is_ghost_post": {
                      "type": "boolean"
                    },
                    "location_id": {
                      "type": "string",
                      "maxLength": 128
                    },
                    "allowlisted_country_codes": {
                      "minItems": 1,
                      "maxItems": 249,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[A-Z]{2}$"
                      }
                    },
                    "crossreshare_to_ig": {
                      "type": "boolean"
                    },
                    "crossreshare_to_ig_dark_mode": {
                      "type": "boolean"
                    },
                    "auto_publish_text": {
                      "type": "boolean"
                    },
                    "media_options": {
                      "maxItems": 20,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "asset_id": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "alt_text": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1000
                          },
                          "is_spoiler_media": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "asset_id"
                        ]
                      }
                    }
                  }
                },
                "instagramMode": {
                  "default": "REELS",
                  "type": "string",
                  "enum": [
                    "IMAGE",
                    "REELS",
                    "CAROUSEL",
                    "STORY_IMAGE",
                    "STORY_VIDEO"
                  ]
                },
                "youtubeTitle": {
                  "default": "",
                  "type": "string",
                  "maxLength": 100
                },
                "youtubePrivacy": {
                  "default": "private",
                  "type": "string",
                  "enum": [
                    "private",
                    "unlisted",
                    "public"
                  ]
                },
                "youtubeSynthetic": {
                  "default": false,
                  "type": "boolean"
                },
                "youtubeCategoryId": {
                  "default": "",
                  "type": "string",
                  "maxLength": 32
                },
                "youtubeShort": {
                  "default": false,
                  "type": "boolean"
                },
                "linkUrl": {
                  "default": "",
                  "type": "string",
                  "maxLength": 2048
                },
                "scheduledAt": {
                  "default": "",
                  "type": "string",
                  "maxLength": 64
                },
                "displayTimezone": {
                  "default": "UTC",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "publishNow": {
                  "default": false,
                  "type": "boolean"
                },
                "destinationOverrides": {
                  "default": {},
                  "type": "object",
                  "propertyNames": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "caption": {
                        "type": "string",
                        "maxLength": 5000
                      },
                      "scheduledAt": {
                        "type": "string",
                        "maxLength": 64
                      }
                    }
                  }
                },
                "expiresAt": {
                  "default": "",
                  "type": "string",
                  "maxLength": 64
                }
              },
              "required": [
                "schemaVersion",
                "accountIds",
                "caption",
                "hashtags",
                "assetIds",
                "threadsTextOnly",
                "instagramMode",
                "youtubeTitle",
                "youtubePrivacy",
                "youtubeSynthetic",
                "youtubeCategoryId",
                "youtubeShort",
                "linkUrl",
                "scheduledAt",
                "displayTimezone",
                "publishNow",
                "destinationOverrides",
                "expiresAt"
              ]
            },
            "created_by": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "updated_by": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "created_at": {
              "type": "string",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
              "format": "date-time"
            },
            "updated_at": {
              "type": "string",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
              "format": "date-time"
            },
            "submission": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "expected_revision": {
                      "type": "integer",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991
                    },
                    "started_at": {
                      "type": "string",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
                      "format": "date-time"
                    },
                    "receipt": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "batch_id": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "format": "uuid",
                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "successes": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "social_account_id": {
                                    "type": "string",
                                    "format": "uuid",
                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                  },
                                  "post_id": {
                                    "type": "string",
                                    "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
                                  }
                                },
                                "required": [
                                  "social_account_id",
                                  "post_id"
                                ]
                              }
                            },
                            "failures": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "social_account_id": {
                                    "type": "string",
                                    "format": "uuid",
                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                  },
                                  "code": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 160
                                  },
                                  "message": {
                                    "type": "string",
                                    "maxLength": 2000
                                  }
                                },
                                "required": [
                                  "social_account_id",
                                  "code",
                                  "message"
                                ]
                              }
                            }
                          },
                          "required": [
                            "batch_id",
                            "successes",
                            "failures"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "expected_revision",
                    "started_at",
                    "receipt"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "brand_context": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "workspace_id": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "selection": {
                      "type": "object",
                      "properties": {
                        "profile_id": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "version_id": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "revision": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        },
                        "content_digest": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        },
                        "context_digest": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        }
                      },
                      "required": [
                        "profile_id",
                        "version_id",
                        "revision",
                        "content_digest",
                        "context_digest"
                      ]
                    },
                    "availability": {
                      "type": "string",
                      "enum": [
                        "available",
                        "missing"
                      ]
                    },
                    "profile_state": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "active",
                            "archived"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "content": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "maxLength": 120
                            },
                            "audience": {
                              "type": "string",
                              "maxLength": 2000
                            },
                            "voice": {
                              "type": "string",
                              "maxLength": 2000
                            },
                            "language": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "preferred_terms": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            },
                            "prohibited_terms": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 120
                              }
                            },
                            "locked_facts": {
                              "maxItems": 50,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 500
                              }
                            },
                            "call_to_action": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 1000
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "name",
                            "audience",
                            "voice",
                            "language",
                            "preferred_terms",
                            "prohibited_terms",
                            "locked_facts",
                            "call_to_action"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "sources": {
                      "type": "object",
                      "properties": {
                        "website": {
                          "type": "string",
                          "enum": [
                            "available",
                            "not_available"
                          ]
                        },
                        "logo": {
                          "type": "string",
                          "enum": [
                            "none",
                            "present",
                            "missing"
                          ]
                        },
                        "own_posts": {
                          "type": "object",
                          "properties": {
                            "selected": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 10
                            },
                            "available": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 10
                            },
                            "unavailable": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 10
                            },
                            "erased": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 10
                            }
                          },
                          "required": [
                            "selected",
                            "available",
                            "unavailable",
                            "erased"
                          ]
                        }
                      },
                      "required": [
                        "website",
                        "logo",
                        "own_posts"
                      ]
                    }
                  },
                  "required": [
                    "workspace_id",
                    "selection",
                    "availability",
                    "profile_state",
                    "content",
                    "sources"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "brand_review": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "rule_version": {
                      "type": "number",
                      "const": 1
                    },
                    "context_digest": {
                      "type": "string",
                      "pattern": "^[a-f0-9]{64}$"
                    },
                    "content_digest": {
                      "type": "string",
                      "pattern": "^[a-f0-9]{64}$"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "clear",
                        "attention",
                        "unavailable"
                      ]
                    },
                    "issues": {
                      "maxItems": 5151,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "enum": [
                              "prohibited_term",
                              "locked_fact_missing",
                              "conflicting_rule",
                              "context_unavailable"
                            ]
                          },
                          "target": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 80
                          },
                          "rule_index": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 49
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "message": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 240
                          }
                        },
                        "required": [
                          "code",
                          "target",
                          "rule_index",
                          "message"
                        ]
                      }
                    }
                  },
                  "required": [
                    "rule_version",
                    "context_digest",
                    "content_digest",
                    "status",
                    "issues"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "id",
            "workspace_id",
            "revision",
            "state",
            "content",
            "created_by",
            "updated_by",
            "created_at",
            "updated_at",
            "submission"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "handoff",
    "draft"
  ]
}

Errors and safe retries

Check the HTTP status and response body. A 400 validation error may contain a ZodError; handler errors use error, message and code fields. Keep request_id or x-request-id for diagnosis, without credentials. Fix 401/403 access errors before retrying, and follow Retry-After for 429. If a write is uncertain or returns 5xx, read the existing result first. Reuse an idempotency key only where supported; retry behaviour varies by operation and does not guarantee exactly-once delivery.

Troubleshooting guide

Examples

These examples use fictional values checked against the schemas. Replace the IDs with ones you are authorized to use, the media with ready assets and the dates with your confirmed publishing time. Check the account’s eligibility before submitting a write. This page sends no API requests.

Set SOSOAPI_ACCESS_TOKEN on your server to a credential accepted by this operation, and keep it out of browser code. For an AI Agent, use sosoapi auth login to sign in through the browser and let the CLI refresh its credentials.

request.json

{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "mutation_id": "11111111-1111-4111-8111-111111111111",
  "brief_id": "11111111-1111-4111-8111-111111111111",
  "brief_revision": 1,
  "variant_id": "11111111-1111-4111-8111-111111111111",
  "variant_revision": 1,
  "content": {}
}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/research-api/briefs/handoff" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

JavaScript

// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/research-api/briefs/handoff", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "mutation_id": "11111111-1111-4111-8111-111111111111",
  "brief_id": "11111111-1111-4111-8111-111111111111",
  "brief_revision": 1,
  "variant_id": "11111111-1111-4111-8111-111111111111",
  "variant_revision": 1,
  "content": {}
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.

CLI

npx sosoapi api post /research-api/briefs/handoff < request.json

Synthetic response example

{
  "handoff": {
    "id": "11111111-1111-4111-8111-111111111111",
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "mutation_id": "11111111-1111-4111-8111-111111111111",
    "brief_id": "11111111-1111-4111-8111-111111111111",
    "brief_revision": 1,
    "variant": {
      "id": "11111111-1111-4111-8111-111111111111",
      "revision": 1,
      "locale": "en"
    },
    "draft_id": null,
    "draft_revision": 1,
    "created_at": "2099-01-15T09:00:00Z",
    "evidence": [],
    "locked_finding_ids": [],
    "availability": "available",
    "reasons": [],
    "method": "reviewed_manual_handoff/v1"
  },
  "draft": null
}

MCP: sosoapi_research_briefs_handoff