{
  "openapi": "3.1.0",
  "paths": {
    "/v1/auth/sign-up": {
      "post": {
        "description": "Creates the user, an organization they own, and a default brand — in one transaction. A new account is never left without somewhere to work.",
        "operationId": "Auth_signUp",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignUpDto"
              },
              "example": {
                "email": "dana@northwind.example",
                "password": "correct-horse-battery-staple",
                "name": "Dana Pierce",
                "organization_name": "Northwind Coffee"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponseDto"
                },
                "example": {
                  "user": {
                    "id": "usr_01K4ZT8M9G2J4K6N8Q0S2T4W6Y",
                    "email": "dana@northwind.example",
                    "name": "Dana Pierce",
                    "email_verified": true,
                    "image": null
                  },
                  "current_organization": {
                    "id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                    "name": "Northwind Coffee",
                    "slug": "northwind-coffee",
                    "plan": "core",
                    "role": "owner"
                  }
                }
              }
            }
          }
        },
        "summary": "Create an account",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/v1/auth/sign-in": {
      "post": {
        "description": "The response is identical whether the address is unknown or the password is wrong. This endpoint cannot be used to discover whether an account exists.",
        "operationId": "Auth_signIn",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignInDto"
              },
              "example": {
                "email": "dana@northwind.example",
                "password": "correct-horse-battery-staple"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponseDto"
                },
                "example": {
                  "user": {
                    "id": "usr_01K4ZT8M9G2J4K6N8Q0S2T4W6Y",
                    "email": "dana@northwind.example",
                    "name": "Dana Pierce",
                    "email_verified": true,
                    "image": null
                  },
                  "current_organization": {
                    "id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                    "name": "Northwind Coffee",
                    "slug": "northwind-coffee",
                    "plan": "core",
                    "role": "owner"
                  }
                }
              }
            }
          }
        },
        "summary": "Sign in",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/v1/auth/sign-out": {
      "post": {
        "operationId": "Auth_signOut",
        "parameters": [],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "summary": "Sign out and revoke the current session",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/v1/auth/request-password-reset": {
      "post": {
        "description": "Always returns 202 with the same body, whether or not the address is registered.",
        "operationId": "Auth_requestPasswordReset",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestPasswordResetDto"
              },
              "example": {
                "email": "dana@northwind.example"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcknowledgementDto"
                },
                "example": {
                  "ok": true
                }
              }
            }
          }
        },
        "summary": "Request a password reset link",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/v1/auth/reset-password": {
      "post": {
        "operationId": "Auth_resetPassword",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPasswordDto"
              },
              "example": {
                "token": "n4Vq8Zt2Kc6Xw1Rb9Hm3Pj7Lf5Sd0Ga2Ey4Uo6Ti8Yk",
                "password": "a-new-long-passphrase"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcknowledgementDto"
                },
                "example": {
                  "ok": true
                }
              }
            }
          }
        },
        "summary": "Set a new password using a reset token",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/v1/auth/verify-email": {
      "post": {
        "operationId": "Auth_verifyEmail",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyEmailDto"
              },
              "example": {
                "token": "Wk3Ej7Rn1Tv5Yb9Mc2Pq6Hs0Lx4Df8Ga3Zu7Ni1Oe5K"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcknowledgementDto"
                },
                "example": {
                  "ok": true
                }
              }
            }
          }
        },
        "summary": "Confirm an email address",
        "tags": [
          "Authentication"
        ]
      },
      "get": {
        "operationId": "Auth_verifyEmailByLink",
        "parameters": [
          {
            "name": "token",
            "required": true,
            "in": "query",
            "schema": {
              "minLength": 1,
              "maxLength": 512,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcknowledgementDto"
                },
                "example": {
                  "ok": true
                }
              }
            }
          }
        },
        "summary": "Confirm an email address from a link",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/v1/auth/social": {
      "get": {
        "description": "An empty list means social sign-in is not configured here and only email and password is available. A sign-in screen reads this to decide what to draw, rather than discovering it by rendering a button that would 404.",
        "operationId": "SocialAuth_providers",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SocialProvidersResponseDto"
                },
                "example": {
                  "providers": [
                    "google",
                    "github"
                  ]
                }
              }
            }
          }
        },
        "summary": "Which sign-in providers this server offers",
        "tags": [
          "Authentication"
        ]
      },
      "post": {
        "description": "Returns the provider's authorization URL for the browser to navigate to. Responds 404 for a provider this server has no credentials for, which is how a client discovers that social sign-in is switched off — email and password always works.",
        "operationId": "SocialAuth_start",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SocialSignInDto"
              },
              "example": {
                "provider": "google",
                "redirect_path": "/inbox"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SocialRedirectDto"
                },
                "example": {
                  "url": "https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=1044219.apps.googleusercontent.com&state=Hc7Qm2Rk9Tv4Yb1Nx6Pj&scope=email%20profile%20openid&redirect_uri=https%3A%2F%2Fapi.akteora.com%2Fv1%2Fauth%2Fcallback%2Fgoogle&code_challenge_method=S256&code_challenge=Zl3Kd8Vn2Bq6Xs0Hf4Tj9Mc1Pw5Gy7Ra3Ue"
                }
              }
            }
          }
        },
        "summary": "Begin signing in with Google or GitHub",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/v1/auth/callback/{provider}": {
      "get": {
        "description": "Completes the flow the provider was sent to: `state` is verified server-side against both a stored value and a signed cookie, the PKCE code is exchanged, the session is issued, and the browser is redirected into the dashboard. Not an endpoint to call — register it with the provider and let the provider reach it.",
        "operationId": "SocialAuth_callback",
        "parameters": [
          {
            "name": "provider",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "google"
          }
        ],
        "responses": {
          "302": {
            "description": "Redirects into the dashboard, signed in or not."
          }
        },
        "summary": "The OAuth redirect target",
        "tags": [
          "Authentication"
        ]
      }
    },
    "/v1/me": {
      "get": {
        "description": "One round trip returns everything needed to render an application shell: identity, the organizations available to switch between, the active one, and the permissions that role carries. Permissions are resolved server-side so no client reimplements the permission table.",
        "operationId": "Me_me",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeResponseDto"
                },
                "example": {
                  "user": {
                    "id": "usr_01K4ZT8M9G2J4K6N8Q0S2T4W6Y",
                    "email": "dana@northwind.example",
                    "name": "Dana Pierce",
                    "email_verified": true,
                    "image": null
                  },
                  "organizations": [
                    {
                      "id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                      "name": "Northwind Coffee",
                      "slug": "northwind-coffee",
                      "plan": "core",
                      "role": "owner"
                    }
                  ],
                  "current_organization": {
                    "id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                    "name": "Northwind Coffee",
                    "slug": "northwind-coffee",
                    "plan": "core",
                    "role": "owner"
                  },
                  "role": "owner",
                  "permissions": [
                    "brand:write",
                    "link:write",
                    "submission:moderate",
                    "submission:delete",
                    "export:create",
                    "reel:render",
                    "member:invite",
                    "member:remove",
                    "billing:manage",
                    "apikey:manage",
                    "webhook:manage",
                    "org:delete"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "The current user, their organizations, and what they may do",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/me/auth-methods": {
      "get": {
        "description": "The password and each connected provider, with whether each may be disconnected — a method that is the only way in may not be — and which providers are still available to connect. An empty `connectable` list with no connected provider means this server has no social sign-in configured.",
        "operationId": "AuthMethods_list",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthMethodsResponseDto"
                },
                "example": {
                  "methods": [
                    {
                      "id": "usr_01K5C0A2C4E6G8K0M2P4R6T8V0",
                      "method": "credential",
                      "created_at": "2026-09-01T10:12:44.000Z",
                      "can_disconnect": false
                    },
                    {
                      "id": "usr_01K5C0B3D5F7H9M1P3R5T7V9X1",
                      "method": "google",
                      "created_at": "2026-09-14T16:03:21.000Z",
                      "can_disconnect": true
                    }
                  ],
                  "password_set": true,
                  "connectable": [
                    "github"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "The ways this account can be signed in to",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/me/auth-methods/{provider}/connect": {
      "post": {
        "description": "Returns the provider's authorization URL. Because the caller is already signed in, the identity that comes back is attached to this account and no other.",
        "operationId": "AuthMethods_connect",
        "parameters": [
          {
            "name": "provider",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "github"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SocialRedirectDto"
                },
                "example": {
                  "url": "https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id=1044219.apps.googleusercontent.com&state=Hc7Qm2Rk9Tv4Yb1Nx6Pj&scope=email%20profile%20openid&redirect_uri=https%3A%2F%2Fapi.akteora.com%2Fv1%2Fauth%2Fcallback%2Fgoogle&code_challenge_method=S256&code_challenge=Zl3Kd8Vn2Bq6Xs0Hf4Tj9Mc1Pw5Gy7Ra3Ue"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Connect a provider to this account",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/me/auth-methods/{id}": {
      "delete": {
        "description": "Refused with 409 when it is the only remaining way into the account — set a password first. Written to the audit log with the provider and the actor.",
        "operationId": "AuthMethods_disconnect",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "usr_01K5C0B3D5F7H9M1P3R5T7V9X1"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Disconnect a provider",
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/members": {
      "get": {
        "operationId": "Members_list",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "mbr_01K4ZT8N3P5R7T9V1X3Z5B7D9F",
                      "user_id": "usr_01K4ZT8M9G2J4K6N8Q0S2T4W6Y",
                      "role": "owner",
                      "created_at": "2026-09-01T10:12:44.000Z"
                    },
                    {
                      "id": "mbr_01K58C2E4G6J8M0P2R4T6W8Y0A",
                      "user_id": "usr_01K58C1D3F5H7K9M1P3R5T7V9X",
                      "role": "editor",
                      "created_at": "2026-09-14T16:03:21.000Z"
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "List members of the organization",
        "tags": [
          "Members"
        ]
      }
    },
    "/v1/members/{memberId}": {
      "patch": {
        "description": "You cannot grant a role more senior than your own, or change the role of somebody senior to you. The last owner cannot be demoted.",
        "operationId": "Members_changeRole",
        "parameters": [
          {
            "name": "memberId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "mbr_01K58C2E4G6J8M0P2R4T6W8Y0A"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMemberRoleDto"
              },
              "example": {
                "role": "admin"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberSummaryDto"
                },
                "example": {
                  "id": "mbr_01K58C2E4G6J8M0P2R4T6W8Y0A",
                  "user_id": "usr_01K58C1D3F5H7K9M1P3R5T7V9X",
                  "role": "admin",
                  "created_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Change a member's role",
        "tags": [
          "Members"
        ]
      },
      "delete": {
        "operationId": "Members_remove",
        "parameters": [
          {
            "name": "memberId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "mbr_01K58C2E4G6J8M0P2R4T6W8Y0A"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Remove a member",
        "tags": [
          "Members"
        ]
      }
    },
    "/v1/me/active-organization": {
      "post": {
        "description": "Membership is re-checked here. An organization you do not belong to returns 404, never 403 — the API does not confirm that other organizations exist.",
        "operationId": "Members_setActiveOrganization",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetActiveOrganizationDto"
              },
              "example": {
                "organization_id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Switch the active organization for this session",
        "tags": [
          "Members"
        ]
      }
    },
    "/v1/invitations": {
      "post": {
        "description": "Emails a single-use link. Only a hash of the token is stored, so a database leak yields no usable invitations. Invitations expire after 7 days.",
        "operationId": "Invitations_create",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional. Retrying with the same key and body replays the original response instead of sending a second invitation. Reusing a key with a different body returns 409.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInvitationDto"
              },
              "example": {
                "email": "sam@northwind.example",
                "role": "editor"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvitationSummaryDto"
                },
                "example": {
                  "id": "inv_01K5A0W2Y4A6C8E0G2J4M6P8R0",
                  "email": "sam@northwind.example",
                  "role": "editor",
                  "expires_at": "2026-09-22T12:00:00.000Z",
                  "accepted_at": null
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Invite someone to the organization",
        "tags": [
          "Members"
        ]
      },
      "get": {
        "operationId": "Invitations_list",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvitationCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "inv_01K5A0W2Y4A6C8E0G2J4M6P8R0",
                      "email": "sam@northwind.example",
                      "role": "editor",
                      "expires_at": "2026-09-22T12:00:00.000Z",
                      "accepted_at": null
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "List invitations",
        "tags": [
          "Members"
        ]
      }
    },
    "/v1/invitations/accept": {
      "post": {
        "description": "Requires being signed in as the invited address. An invitation addressed to somebody else is refused explicitly rather than silently bound to the current account.",
        "operationId": "Invitations_accept",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptInvitationDto"
              },
              "example": {
                "token": "Ab4Cd8Ef2Gh6Ij0Kl4Mn8Op2Qr6St0Uv4Wx8Yz2Ab6C"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcceptedInvitationDto"
                },
                "example": {
                  "organization_id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Accept an invitation",
        "tags": [
          "Members"
        ]
      }
    },
    "/v1/brands": {
      "get": {
        "operationId": "Brands_list",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrandCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                      "name": "Northwind Coffee",
                      "slug": "northwind-coffee",
                      "primary_color": "#1a73e8",
                      "logo_asset_id": "ast_01K59Y8A1C3E5G7J9K1M3P5R7T",
                      "logo_url": "https://cdn.akteora.com/l/2c9fk7mxq4t8vb3n.png",
                      "is_public": true,
                      "public_wall_url": "https://akteora.com/b/northwind-coffee",
                      "is_default": true,
                      "submission_count": 42,
                      "created_at": "2026-09-01T10:12:44.000Z",
                      "updated_at": "2026-09-14T16:03:21.000Z"
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:read"
            ]
          }
        ],
        "summary": "List brands",
        "tags": [
          "Brands"
        ]
      },
      "post": {
        "description": "The slug is derived from the name when omitted, and must be unique within your organization — two organizations may both have a brand called `acme`.",
        "operationId": "Brands_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBrandDto"
              },
              "example": {
                "name": "Northwind Roastery",
                "slug": "northwind-roastery",
                "primary_color": "#b45309",
                "is_public": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrandDto"
                },
                "example": {
                  "id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "name": "Northwind Coffee",
                  "slug": "northwind-coffee",
                  "primary_color": "#1a73e8",
                  "logo_asset_id": "ast_01K59Y8A1C3E5G7J9K1M3P5R7T",
                  "logo_url": "https://cdn.akteora.com/l/2c9fk7mxq4t8vb3n.png",
                  "is_public": true,
                  "public_wall_url": "https://akteora.com/b/northwind-coffee",
                  "is_default": true,
                  "submission_count": 42,
                  "created_at": "2026-09-01T10:12:44.000Z",
                  "updated_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:write"
            ]
          }
        ],
        "summary": "Create a brand",
        "tags": [
          "Brands"
        ]
      }
    },
    "/v1/brands/{id}": {
      "get": {
        "operationId": "Brands_get",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrandDto"
                },
                "example": {
                  "id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "name": "Northwind Coffee",
                  "slug": "northwind-coffee",
                  "primary_color": "#1a73e8",
                  "logo_asset_id": "ast_01K59Y8A1C3E5G7J9K1M3P5R7T",
                  "logo_url": "https://cdn.akteora.com/l/2c9fk7mxq4t8vb3n.png",
                  "is_public": true,
                  "public_wall_url": "https://akteora.com/b/northwind-coffee",
                  "is_default": true,
                  "submission_count": 42,
                  "created_at": "2026-09-01T10:12:44.000Z",
                  "updated_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:read"
            ]
          }
        ],
        "summary": "Fetch a brand",
        "tags": [
          "Brands"
        ]
      },
      "patch": {
        "description": "Setting `is_default` to true demotes the current default. There is no way to clear it: an organization always has exactly one default brand.",
        "operationId": "Brands_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBrandDto"
              },
              "example": {
                "name": "Northwind Coffee Co.",
                "primary_color": "#1a73e8",
                "is_public": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrandDto"
                },
                "example": {
                  "id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "name": "Northwind Coffee",
                  "slug": "northwind-coffee",
                  "primary_color": "#1a73e8",
                  "logo_asset_id": "ast_01K59Y8A1C3E5G7J9K1M3P5R7T",
                  "logo_url": "https://cdn.akteora.com/l/2c9fk7mxq4t8vb3n.png",
                  "is_public": true,
                  "public_wall_url": "https://akteora.com/b/northwind-coffee",
                  "is_default": true,
                  "submission_count": 42,
                  "created_at": "2026-09-01T10:12:44.000Z",
                  "updated_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:write"
            ]
          }
        ],
        "summary": "Update a brand",
        "tags": [
          "Brands"
        ]
      },
      "delete": {
        "description": "Soft delete. Its links stop resolving and its submissions are hidden, but no media is destroyed. The default brand cannot be deleted.",
        "operationId": "Brands_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:write"
            ]
          }
        ],
        "summary": "Delete a brand",
        "tags": [
          "Brands"
        ]
      }
    },
    "/v1/brands/{id}/logo": {
      "post": {
        "description": "Returns a short-lived PUT URL bound to the content type and length you declared. Upload the bytes directly to that URL — they never pass through this API — then PATCH the brand with the returned `asset_id` to attach it.",
        "operationId": "Brands_presignLogo",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LogoUploadRequestDto"
              },
              "example": {
                "content_type": "image/png",
                "content_length": 48213
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogoUploadResponseDto"
                },
                "example": {
                  "asset_id": "ast_01K59Y8A1C3E5G7J9K1M3P5R7T",
                  "upload_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-public/l/2c9fk7mxq4t8vb3n.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T120000Z&X-Amz-Expires=900&X-Amz-SignedHeaders=content-length%3Bcontent-type%3Bhost&X-Amz-Signature=9b1c3d5e7f9a0b2c4d6e8f0a1b3c5d7e9f0a2b4c6d8e0f1a3b5c7d9e0f2a4b6c",
                  "expires_at": "2026-09-15T12:15:00.000Z",
                  "required_headers": {
                    "content-type": "image/png",
                    "content-length": "48213"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:write"
            ]
          }
        ],
        "summary": "Get a presigned URL for uploading a brand logo",
        "tags": [
          "Brands"
        ]
      }
    },
    "/v1/brands/{brandId}/links": {
      "get": {
        "operationId": "Links_list",
        "parameters": [
          {
            "name": "brandId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK"
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                      "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                      "slug": "k7m2p9qx4t",
                      "url": "https://c.akteora.com/k7m2p9qx4t",
                      "title": "How was your first month?",
                      "intro_text": "Two minutes, on camera or in writing — whichever you prefer.",
                      "thank_you_text": "Thank you. We read every one.",
                      "redirect_url": null,
                      "prompts": [
                        {
                          "id": "p1",
                          "text": "What problem were you trying to solve before you found us?",
                          "max_seconds": 90
                        },
                        {
                          "id": "p2",
                          "text": "What changed for your team since?",
                          "max_seconds": 60
                        }
                      ],
                      "allow_video": true,
                      "allow_audio": true,
                      "allow_text": true,
                      "require_name": true,
                      "require_email": false,
                      "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                      "consent_version": "2026-09-01",
                      "branding": {
                        "primary_color": "#1a73e8",
                        "logo_asset_id": null,
                        "show_attribution": true
                      },
                      "is_active": true,
                      "expires_at": null,
                      "max_submissions": null,
                      "submission_count": 17,
                      "created_at": "2026-09-01T10:12:44.000Z",
                      "updated_at": "2026-09-14T16:03:21.000Z"
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "links:read"
            ]
          }
        ],
        "summary": "List collect links for a brand",
        "tags": [
          "Collect links"
        ]
      },
      "post": {
        "description": "The `consent_text` you supply is stored verbatim and copied verbatim onto every submission made through this link. It cannot be edited afterwards — a new consent version means a new link.",
        "operationId": "Links_create",
        "parameters": [
          {
            "name": "brandId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLinkDto"
              },
              "example": {
                "title": "How was your first month?",
                "intro_text": "Two minutes, on camera or in writing — whichever you prefer.",
                "prompts": [
                  {
                    "id": "p1",
                    "text": "What problem were you trying to solve before you found us?",
                    "max_seconds": 90
                  },
                  {
                    "id": "p2",
                    "text": "What changed for your team since?",
                    "max_seconds": 60
                  }
                ],
                "allow_video": true,
                "allow_audio": true,
                "allow_text": true,
                "require_name": true,
                "require_email": false,
                "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                "consent_version": "2026-09-01",
                "max_submissions": 200
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkDto"
                },
                "example": {
                  "id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "slug": "k7m2p9qx4t",
                  "url": "https://c.akteora.com/k7m2p9qx4t",
                  "title": "How was your first month?",
                  "intro_text": "Two minutes, on camera or in writing — whichever you prefer.",
                  "thank_you_text": "Thank you. We read every one.",
                  "redirect_url": null,
                  "prompts": [
                    {
                      "id": "p1",
                      "text": "What problem were you trying to solve before you found us?",
                      "max_seconds": 90
                    },
                    {
                      "id": "p2",
                      "text": "What changed for your team since?",
                      "max_seconds": 60
                    }
                  ],
                  "allow_video": true,
                  "allow_audio": true,
                  "allow_text": true,
                  "require_name": true,
                  "require_email": false,
                  "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                  "consent_version": "2026-09-01",
                  "branding": {
                    "primary_color": "#1a73e8",
                    "logo_asset_id": null,
                    "show_attribution": true
                  },
                  "is_active": true,
                  "expires_at": null,
                  "max_submissions": null,
                  "submission_count": 17,
                  "created_at": "2026-09-01T10:12:44.000Z",
                  "updated_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "links:write"
            ]
          }
        ],
        "summary": "Create a collect link",
        "tags": [
          "Collect links"
        ]
      }
    },
    "/v1/links/{id}": {
      "get": {
        "operationId": "Links_get",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkDto"
                },
                "example": {
                  "id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "slug": "k7m2p9qx4t",
                  "url": "https://c.akteora.com/k7m2p9qx4t",
                  "title": "How was your first month?",
                  "intro_text": "Two minutes, on camera or in writing — whichever you prefer.",
                  "thank_you_text": "Thank you. We read every one.",
                  "redirect_url": null,
                  "prompts": [
                    {
                      "id": "p1",
                      "text": "What problem were you trying to solve before you found us?",
                      "max_seconds": 90
                    },
                    {
                      "id": "p2",
                      "text": "What changed for your team since?",
                      "max_seconds": 60
                    }
                  ],
                  "allow_video": true,
                  "allow_audio": true,
                  "allow_text": true,
                  "require_name": true,
                  "require_email": false,
                  "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                  "consent_version": "2026-09-01",
                  "branding": {
                    "primary_color": "#1a73e8",
                    "logo_asset_id": null,
                    "show_attribution": true
                  },
                  "is_active": true,
                  "expires_at": null,
                  "max_submissions": null,
                  "submission_count": 17,
                  "created_at": "2026-09-01T10:12:44.000Z",
                  "updated_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "links:read"
            ]
          }
        ],
        "summary": "Fetch a collect link",
        "tags": [
          "Collect links"
        ]
      },
      "patch": {
        "description": "Consent text and version are deliberately not editable.",
        "operationId": "Links_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLinkDto"
              },
              "example": {
                "title": "How was your first quarter?",
                "is_active": true,
                "expires_at": "2026-12-31T23:59:59Z"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkDto"
                },
                "example": {
                  "id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "slug": "k7m2p9qx4t",
                  "url": "https://c.akteora.com/k7m2p9qx4t",
                  "title": "How was your first month?",
                  "intro_text": "Two minutes, on camera or in writing — whichever you prefer.",
                  "thank_you_text": "Thank you. We read every one.",
                  "redirect_url": null,
                  "prompts": [
                    {
                      "id": "p1",
                      "text": "What problem were you trying to solve before you found us?",
                      "max_seconds": 90
                    },
                    {
                      "id": "p2",
                      "text": "What changed for your team since?",
                      "max_seconds": 60
                    }
                  ],
                  "allow_video": true,
                  "allow_audio": true,
                  "allow_text": true,
                  "require_name": true,
                  "require_email": false,
                  "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                  "consent_version": "2026-09-01",
                  "branding": {
                    "primary_color": "#1a73e8",
                    "logo_asset_id": null,
                    "show_attribution": true
                  },
                  "is_active": true,
                  "expires_at": null,
                  "max_submissions": null,
                  "submission_count": 17,
                  "created_at": "2026-09-01T10:12:44.000Z",
                  "updated_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "links:write"
            ]
          }
        ],
        "summary": "Update a collect link",
        "tags": [
          "Collect links"
        ]
      },
      "delete": {
        "operationId": "Links_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "links:write"
            ]
          }
        ],
        "summary": "Delete a collect link",
        "tags": [
          "Collect links"
        ]
      }
    },
    "/v1/links/{id}/duplicate": {
      "post": {
        "description": "The copy gets a fresh slug and a zeroed submission count.",
        "operationId": "Links_duplicate",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DuplicateLinkDto"
              },
              "example": {
                "title": "How was your first month? (EU)"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkDto"
                },
                "example": {
                  "id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "slug": "k7m2p9qx4t",
                  "url": "https://c.akteora.com/k7m2p9qx4t",
                  "title": "How was your first month?",
                  "intro_text": "Two minutes, on camera or in writing — whichever you prefer.",
                  "thank_you_text": "Thank you. We read every one.",
                  "redirect_url": null,
                  "prompts": [
                    {
                      "id": "p1",
                      "text": "What problem were you trying to solve before you found us?",
                      "max_seconds": 90
                    },
                    {
                      "id": "p2",
                      "text": "What changed for your team since?",
                      "max_seconds": 60
                    }
                  ],
                  "allow_video": true,
                  "allow_audio": true,
                  "allow_text": true,
                  "require_name": true,
                  "require_email": false,
                  "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                  "consent_version": "2026-09-01",
                  "branding": {
                    "primary_color": "#1a73e8",
                    "logo_asset_id": null,
                    "show_attribution": true
                  },
                  "is_active": true,
                  "expires_at": null,
                  "max_submissions": null,
                  "submission_count": 17,
                  "created_at": "2026-09-01T10:12:44.000Z",
                  "updated_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "links:write"
            ]
          }
        ],
        "summary": "Duplicate a collect link",
        "tags": [
          "Collect links"
        ]
      }
    },
    "/public/links/{slug}": {
      "get": {
        "description": "Returns only what a respondent needs to record: the prompts, which modes are allowed, which fields are required, the consent text, and branding. It contains no organization, brand or link identifier and no submission count.\n\nA link that is inactive, expired, or has reached its submission limit returns **410** with `is_open: false` and a machine-readable `reason`, so the capture page can show a proper message rather than an error.",
        "operationId": "PublicLinks_resolve",
        "parameters": [
          {
            "name": "slug",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "k7m2p9qx4t"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicLinkDto"
                },
                "example": {
                  "slug": "k7m2p9qx4t",
                  "title": "How was your first month?",
                  "intro_text": "Two minutes, on camera or in writing — whichever you prefer.",
                  "thank_you_text": "Thank you. We read every one.",
                  "redirect_url": null,
                  "prompts": [
                    {
                      "id": "p1",
                      "text": "What problem were you trying to solve before you found us?",
                      "max_seconds": 90
                    },
                    {
                      "id": "p2",
                      "text": "What changed for your team since?",
                      "max_seconds": 60
                    }
                  ],
                  "allow_video": true,
                  "allow_audio": true,
                  "allow_text": true,
                  "voice_to_text": true,
                  "text_cleanup": true,
                  "require_name": true,
                  "require_email": false,
                  "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                  "consent_version": "2026-09-01",
                  "branding": {
                    "brand_name": "Northwind Coffee",
                    "primary_color": "#1a73e8",
                    "logo_url": "https://cdn.akteora.com/l/2c9fk7mxq4t8vb3n.png",
                    "show_attribution": true
                  },
                  "is_open": true
                }
              }
            }
          },
          "410": {
            "description": "The link is closed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClosedLinkDto"
                },
                "example": {
                  "is_open": false,
                  "reason": "expired",
                  "message": "This link has expired. Thank you for thinking of us.",
                  "branding": {
                    "brand_name": "Northwind Coffee",
                    "primary_color": "#1a73e8",
                    "logo_url": "https://cdn.akteora.com/l/2c9fk7mxq4t8vb3n.png",
                    "show_attribution": true
                  }
                }
              }
            }
          }
        },
        "summary": "Resolve a collect link for the capture page",
        "tags": [
          "Public"
        ]
      }
    },
    "/public/walls": {
      "get": {
        "description": "Every public brand, with the id and address of each testimonial on its wall — what a sitemap is built from. `indexable` is false for a wall with fewer than three testimonials, which the public site serves `noindex`.",
        "operationId": "PublicWalls_listing",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicWallListingDto"
                },
                "example": {
                  "data": [
                    {
                      "slug": "northwind-coffee",
                      "wall_url": "https://akteora.com/b/northwind-coffee",
                      "testimonial_count": 37,
                      "page_count": 2,
                      "indexable": true,
                      "updated_at": "2026-09-15T11:02:55.000Z",
                      "testimonials": [
                        {
                          "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                          "url": "https://akteora.com/b/northwind-coffee/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                          "updated_at": "2026-09-15T11:02:55.000Z"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List public walls",
        "tags": [
          "Public"
        ]
      }
    },
    "/public/walls/{slug}": {
      "get": {
        "description": "The testimonials on `akteora.com/b/{slug}`: approved **and** public, on a public brand, processed, and for a recording, published. Newest approval first, 24 to a page. A private or unknown brand, and a page past the last, return **404**.",
        "operationId": "PublicWalls_page",
        "parameters": [
          {
            "name": "slug",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "northwind-coffee"
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 10000,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicWallDto"
                },
                "example": {
                  "brand": {
                    "name": "Northwind Coffee",
                    "slug": "northwind-coffee",
                    "logo_url": "https://cdn.akteora.com/l/2c9fk7mxq4t8vb3n.png",
                    "accent_color": "#1a73e8"
                  },
                  "wall_url": "https://akteora.com/b/northwind-coffee",
                  "testimonial_count": 37,
                  "rating": {
                    "average": 4.8,
                    "count": 37
                  },
                  "indexable": true,
                  "url": "https://akteora.com/b/northwind-coffee",
                  "page": 1,
                  "page_count": 2,
                  "page_size": 24,
                  "testimonials": [
                    {
                      "kind": "video",
                      "name": "Priya Shah",
                      "title": "Head of Operations",
                      "company": "Fernhill Studio",
                      "rating": 5,
                      "date": "2026-09-15",
                      "text": null,
                      "video_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/video.mp4",
                      "audio_url": null,
                      "poster_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/poster.jpg",
                      "duration_ms": 48200,
                      "language": "en",
                      "captions": [
                        {
                          "start_ms": 320,
                          "end_ms": 3880,
                          "text": "Before Northwind we were juggling three suppliers."
                        }
                      ],
                      "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
                    },
                    {
                      "kind": "text",
                      "name": "Marcus Webb",
                      "title": null,
                      "company": "Webb & Daughters",
                      "rating": 5,
                      "date": "2026-09-12",
                      "text": "We switched in an afternoon, and the first delivery arrived before the old supplier had even replied to our email.",
                      "video_url": null,
                      "audio_url": null,
                      "poster_url": null,
                      "duration_ms": null,
                      "language": null,
                      "captions": null,
                      "id": "sub_01K5A2Z9H6N3P7R1T5V9X3Z7B1"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "No public wall here."
          }
        },
        "summary": "Read a page of a public wall",
        "tags": [
          "Public"
        ]
      }
    },
    "/public/walls/{slug}/testimonials/{id}": {
      "get": {
        "description": "A testimonial's permalink, with its wall's summary. **404** unless it is on that wall.",
        "operationId": "PublicWalls_testimonial",
        "parameters": [
          {
            "name": "slug",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "northwind-coffee"
          },
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicWallTestimonialDto"
                },
                "example": {
                  "brand": {
                    "name": "Northwind Coffee",
                    "slug": "northwind-coffee",
                    "logo_url": "https://cdn.akteora.com/l/2c9fk7mxq4t8vb3n.png",
                    "accent_color": "#1a73e8"
                  },
                  "wall_url": "https://akteora.com/b/northwind-coffee",
                  "testimonial_count": 37,
                  "rating": {
                    "average": 4.8,
                    "count": 37
                  },
                  "indexable": true,
                  "url": "https://akteora.com/b/northwind-coffee/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "testimonial": {
                    "kind": "video",
                    "name": "Priya Shah",
                    "title": "Head of Operations",
                    "company": "Fernhill Studio",
                    "rating": 5,
                    "date": "2026-09-15",
                    "text": null,
                    "video_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/video.mp4",
                    "audio_url": null,
                    "poster_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/poster.jpg",
                    "duration_ms": 48200,
                    "language": "en",
                    "captions": [
                      {
                        "start_ms": 320,
                        "end_ms": 3880,
                        "text": "Before Northwind we were juggling three suppliers."
                      }
                    ],
                    "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not on this wall."
          }
        },
        "summary": "Read one testimonial on a public wall",
        "tags": [
          "Public"
        ]
      }
    },
    "/public/removals/lookup": {
      "post": {
        "description": "What the removal page names before the respondent confirms: the brand, the kind of testimonial and the day it was sent. Changes nothing. **404** once the link has been used or the testimonial is gone.",
        "operationId": "PublicRemovals_lookup",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemovalTokenDto"
              },
              "example": {
                "token": "Zq3v8Hk2Lm9Wp4Rt7Yx1Cb6Nd0Fg5Sj2Ae8Qu4Io6Ty"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemovalLookupDto"
                },
                "example": {
                  "brand_name": "Northwind Coffee",
                  "kind": "video",
                  "submitted_on": "2026-09-15"
                }
              }
            }
          }
        },
        "summary": "Look up a removal link",
        "tags": [
          "Public"
        ]
      }
    },
    "/public/removals": {
      "post": {
        "description": "Hides the testimonial from every surface at once and queues its erasure — recording, words, details and any public copy — by the audited purge job. **404** once the link has been used.",
        "operationId": "PublicRemovals_request",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemovalTokenDto"
              },
              "example": {
                "token": "Zq3v8Hk2Lm9Wp4Rt7Yx1Cb6Nd0Fg5Sj2Ae8Qu4Io6Ty"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemovalRequestedDto"
                },
                "example": {
                  "status": "scheduled"
                }
              }
            }
          }
        },
        "summary": "Remove a testimonial",
        "tags": [
          "Public"
        ]
      }
    },
    "/v1/submissions": {
      "get": {
        "description": "Newest first. With `q`, a full-text search over transcripts and respondent fields instead: ordered by relevance, each row carrying a `match` with a highlighted snippet.",
        "operationId": "Submissions_list",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          },
          {
            "name": "brand_id",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 64,
              "type": "string"
            }
          },
          {
            "name": "collect_link_id",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 64,
              "type": "string"
            }
          },
          {
            "name": "status",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "pending",
                "uploading",
                "processing",
                "ready",
                "failed",
                "rejected"
              ]
            }
          },
          {
            "name": "kind",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "video",
                "audio",
                "text"
              ]
            }
          },
          {
            "name": "is_approved",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "is_public",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tag_id",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 64,
              "type": "string"
            }
          },
          {
            "name": "created_after",
            "required": false,
            "in": "query",
            "schema": {
              "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)))$",
              "type": "string"
            }
          },
          {
            "name": "created_before",
            "required": false,
            "in": "query",
            "schema": {
              "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)))$",
              "type": "string"
            }
          },
          {
            "name": "q",
            "required": false,
            "in": "query",
            "schema": {
              "minLength": 1,
              "maxLength": 200,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmissionCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                      "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                      "collect_link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                      "kind": "video",
                      "text_input": null,
                      "status": "ready",
                      "respondent_name": "Priya Shah",
                      "respondent_email": "priya@fernhill.example",
                      "respondent_title": "Head of Operations",
                      "respondent_company": "Fernhill Studio",
                      "respondent_country": "GB",
                      "rating": 5,
                      "duration_ms": 48200,
                      "error_message": null,
                      "is_approved": true,
                      "approved_at": "2026-09-15T11:02:55.000Z",
                      "is_public": true,
                      "rejected_at": null,
                      "rejection_reason": null,
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "public_media": {
                        "video_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/video.mp4",
                        "audio_url": null,
                        "poster_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/poster.jpg"
                      },
                      "sentiment": {
                        "label": "positive",
                        "score": 0.91
                      },
                      "created_at": "2026-09-15T09:41:07.312Z",
                      "updated_at": "2026-09-15T11:02:55.000Z"
                    },
                    {
                      "id": "sub_01K5A2Z9H6N3P7R1T5V9X3Z7B1",
                      "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                      "collect_link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                      "kind": "text",
                      "text_input": "typed",
                      "status": "ready",
                      "respondent_name": "Marcus Webb",
                      "respondent_email": null,
                      "respondent_title": null,
                      "respondent_company": "Webb & Daughters",
                      "respondent_country": "IE",
                      "rating": 5,
                      "duration_ms": null,
                      "error_message": null,
                      "is_approved": false,
                      "approved_at": null,
                      "is_public": false,
                      "rejected_at": null,
                      "rejection_reason": null,
                      "poster_url": null,
                      "public_media": null,
                      "sentiment": {
                        "label": "positive",
                        "score": 0.84
                      },
                      "created_at": "2026-09-14T17:25:31.000Z",
                      "updated_at": "2026-09-14T17:25:31.000Z"
                    }
                  ],
                  "next_cursor": "eyJ0IjoiMjAyNi0wOS0xNFQxNzoyNTozMS4wMDBaIiwiaSI6InN1Yl8wMUs1QTJaOUg2TjNQN1IxVDVWOVgzWjdCMSJ9"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:read"
            ]
          }
        ],
        "summary": "List submissions",
        "tags": [
          "Submissions"
        ]
      }
    },
    "/v1/submissions/bulk": {
      "post": {
        "description": "Applies one action — `approve`, `reject` (with `params.reason`), `set_visibility` (with `params.is_public`), `tag` or `untag` (with `params.tag_id`), or `delete` — to up to 100 submissions. Returns a result for every id, in order: one id that is missing or cannot be changed never fails the others, and the changes that succeed commit together.\n\n`delete` needs the `submission:delete` permission and permanently erases each recording, the original included.",
        "operationId": "Submissions_bulk",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkRequestDto"
              },
              "example": {
                "ids": [
                  "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "sub_01K5A2Z9H6N3P7R1T5V9X3Z7B1"
                ],
                "action": "approve"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkResultDto"
                },
                "example": {
                  "results": [
                    {
                      "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                      "ok": true,
                      "changed": true,
                      "error": null
                    },
                    {
                      "id": "sub_01K5A2Z9H6N3P7R1T5V9X3Z7B1",
                      "ok": false,
                      "changed": false,
                      "error": {
                        "code": "not_sent",
                        "detail": "The respondent has not sent this testimonial yet, so there is nothing to judge."
                      }
                    }
                  ],
                  "succeeded": 1,
                  "failed": 1
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:moderate"
            ]
          }
        ],
        "summary": "Moderate many submissions at once",
        "tags": [
          "Submissions"
        ]
      }
    },
    "/v1/submissions/{id}/transcript": {
      "get": {
        "description": "Text, word-level timings and segments. 404 until transcription has finished — and for good if it failed or is switched off, since a recording without a transcript is still a complete testimonial.",
        "operationId": "Submissions_transcript",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscriptDto"
                },
                "example": {
                  "id": "trs_01K5A4B8C0E2G4J6M8P0R2T4W6",
                  "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "text": "Before Northwind we were juggling three suppliers. We were live in a week, and honestly our morning rush has never been calmer.",
                  "original_text": "Before Northwind we were juggling three suppliers. We were live in a week, and honestly our morning rush has never been calmer.",
                  "corrected_at": null,
                  "language": "en",
                  "language_confidence": null,
                  "language_flagged": false,
                  "confidence": 0.94,
                  "provider": "whisper-api",
                  "model": "whisper-1",
                  "duration_ms": 48200,
                  "words": [
                    {
                      "word": "Before",
                      "start_ms": 320,
                      "end_ms": 610,
                      "confidence": 0.98
                    },
                    {
                      "word": "Northwind",
                      "start_ms": 610,
                      "end_ms": 1140,
                      "confidence": 0.93
                    },
                    {
                      "word": "we",
                      "start_ms": 1140,
                      "end_ms": 1260,
                      "confidence": 0.99
                    }
                  ],
                  "segments": [
                    {
                      "text": "Before Northwind we were juggling three suppliers.",
                      "start_ms": 320,
                      "end_ms": 3880
                    },
                    {
                      "text": "We were live in a week, and honestly our morning rush has never been calmer.",
                      "start_ms": 4210,
                      "end_ms": 9950
                    }
                  ],
                  "created_at": "2026-09-15T09:43:12.000Z",
                  "updated_at": "2026-09-15T09:43:12.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:read"
            ]
          }
        ],
        "summary": "Fetch a submission's transcript",
        "tags": [
          "Submissions"
        ]
      },
      "patch": {
        "description": "Fixes what the transcription misheard, and optionally confirms the language. Only `text` and `language` change: the word timings, `original_text` and the recording itself are never altered. At most a quarter of the original words may change (`transcript_correction_too_large` otherwise). Every correction is audited.",
        "operationId": "Submissions_correctTranscript",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTranscriptDto"
              },
              "example": {
                "text": "Before Northwind we were juggling three suppliers. We were live in a week, and honestly our morning rush has never been calmer."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscriptDto"
                },
                "example": {
                  "id": "trs_01K5A4B8C0E2G4J6M8P0R2T4W6",
                  "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "text": "Before Northwind we were juggling three suppliers. We were live in a week, and honestly our morning rush has never been calmer.",
                  "original_text": "Before Northwind we were juggling three suppliers. We were live in a week, and honestly our morning rush has never been calmer.",
                  "corrected_at": null,
                  "language": "en",
                  "language_confidence": null,
                  "language_flagged": false,
                  "confidence": 0.94,
                  "provider": "whisper-api",
                  "model": "whisper-1",
                  "duration_ms": 48200,
                  "words": [
                    {
                      "word": "Before",
                      "start_ms": 320,
                      "end_ms": 610,
                      "confidence": 0.98
                    },
                    {
                      "word": "Northwind",
                      "start_ms": 610,
                      "end_ms": 1140,
                      "confidence": 0.93
                    },
                    {
                      "word": "we",
                      "start_ms": 1140,
                      "end_ms": 1260,
                      "confidence": 0.99
                    }
                  ],
                  "segments": [
                    {
                      "text": "Before Northwind we were juggling three suppliers.",
                      "start_ms": 320,
                      "end_ms": 3880
                    },
                    {
                      "text": "We were live in a week, and honestly our morning rush has never been calmer.",
                      "start_ms": 4210,
                      "end_ms": 9950
                    }
                  ],
                  "created_at": "2026-09-15T09:43:12.000Z",
                  "updated_at": "2026-09-15T09:43:12.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:write"
            ]
          }
        ],
        "summary": "Correct a transcript",
        "tags": [
          "Submissions"
        ]
      }
    },
    "/v1/submissions/{id}/approve": {
      "post": {
        "description": "Records that it has been reviewed, by whom and when. Approval makes a testimonial eligible for public display; it is shown only once `is_public` is also set. Approving a rejected testimonial reverses the rejection. A testimonial the respondent has not sent yet cannot be approved (409). Audited.",
        "operationId": "Submissions_approve",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmissionDetailDto"
                },
                "example": {
                  "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "collect_link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "kind": "video",
                  "text_input": null,
                  "status": "ready",
                  "respondent_name": "Priya Shah",
                  "respondent_email": "priya@fernhill.example",
                  "respondent_title": "Head of Operations",
                  "respondent_company": "Fernhill Studio",
                  "respondent_country": "GB",
                  "rating": 5,
                  "duration_ms": 48200,
                  "error_message": null,
                  "is_approved": true,
                  "approved_at": "2026-09-15T11:02:55.000Z",
                  "is_public": true,
                  "rejected_at": null,
                  "rejection_reason": null,
                  "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                  "public_media": {
                    "video_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/video.mp4",
                    "audio_url": null,
                    "poster_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/poster.jpg"
                  },
                  "sentiment": {
                    "label": "positive",
                    "score": 0.91
                  },
                  "created_at": "2026-09-15T09:41:07.312Z",
                  "updated_at": "2026-09-15T11:02:55.000Z",
                  "assets": [
                    {
                      "id": "ast_01K5A3N7B2D4F6H8J0K2M4P6R8",
                      "role": "normalized",
                      "mime": "video/mp4",
                      "bytes": 8123456,
                      "duration_ms": 48200,
                      "width": 720,
                      "height": 1280,
                      "playback_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/normalized.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                    },
                    {
                      "id": "ast_01K5A3N9D4F6H8K0M2P4R6T8V0",
                      "role": "poster",
                      "mime": "image/jpeg",
                      "bytes": 142880,
                      "duration_ms": null,
                      "width": 720,
                      "height": 1280,
                      "playback_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                    }
                  ],
                  "consent": {
                    "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                    "consent_version": "2026-09-01",
                    "agreed_at": "2026-09-15T09:41:07.312Z"
                  },
                  "text": null,
                  "text_source": null,
                  "original_text": null,
                  "tags": [
                    {
                      "id": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1",
                      "name": "onboarding",
                      "color": "#0f766e",
                      "source": "operator"
                    },
                    {
                      "id": "tag_01K5A5D7F9H1K3N5Q7S9V1X3Z5",
                      "name": "support",
                      "color": null,
                      "source": "ai"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:moderate"
            ]
          }
        ],
        "summary": "Approve a submission",
        "tags": [
          "Submissions"
        ]
      }
    },
    "/v1/submissions/{id}/reject": {
      "post": {
        "description": "Hides it — not approved, not public, `status: \"rejected\"` — with the reason recorded and audited. Nothing is destroyed: the recording and its words are kept, and approving it later reverses the rejection. To erase it, delete it.",
        "operationId": "Submissions_reject",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectSubmissionDto"
              },
              "example": {
                "reason": "Mentions a competitor by name."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmissionDetailDto"
                },
                "example": {
                  "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "collect_link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "kind": "video",
                  "text_input": null,
                  "status": "ready",
                  "respondent_name": "Priya Shah",
                  "respondent_email": "priya@fernhill.example",
                  "respondent_title": "Head of Operations",
                  "respondent_company": "Fernhill Studio",
                  "respondent_country": "GB",
                  "rating": 5,
                  "duration_ms": 48200,
                  "error_message": null,
                  "is_approved": true,
                  "approved_at": "2026-09-15T11:02:55.000Z",
                  "is_public": true,
                  "rejected_at": null,
                  "rejection_reason": null,
                  "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                  "public_media": {
                    "video_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/video.mp4",
                    "audio_url": null,
                    "poster_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/poster.jpg"
                  },
                  "sentiment": {
                    "label": "positive",
                    "score": 0.91
                  },
                  "created_at": "2026-09-15T09:41:07.312Z",
                  "updated_at": "2026-09-15T11:02:55.000Z",
                  "assets": [
                    {
                      "id": "ast_01K5A3N7B2D4F6H8J0K2M4P6R8",
                      "role": "normalized",
                      "mime": "video/mp4",
                      "bytes": 8123456,
                      "duration_ms": 48200,
                      "width": 720,
                      "height": 1280,
                      "playback_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/normalized.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                    },
                    {
                      "id": "ast_01K5A3N9D4F6H8K0M2P4R6T8V0",
                      "role": "poster",
                      "mime": "image/jpeg",
                      "bytes": 142880,
                      "duration_ms": null,
                      "width": 720,
                      "height": 1280,
                      "playback_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                    }
                  ],
                  "consent": {
                    "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                    "consent_version": "2026-09-01",
                    "agreed_at": "2026-09-15T09:41:07.312Z"
                  },
                  "text": null,
                  "text_source": null,
                  "original_text": null,
                  "tags": [
                    {
                      "id": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1",
                      "name": "onboarding",
                      "color": "#0f766e",
                      "source": "operator"
                    },
                    {
                      "id": "tag_01K5A5D7F9H1K3N5Q7S9V1X3Z5",
                      "name": "support",
                      "color": null,
                      "source": "ai"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:moderate"
            ]
          }
        ],
        "summary": "Reject a submission",
        "tags": [
          "Submissions"
        ]
      }
    },
    "/v1/submissions/{id}/visibility": {
      "post": {
        "description": "Independent of approval: a public testimonial is shown only while it is also approved, and an approved one can be kept private. A rejected testimonial cannot be made public (409). Audited.",
        "operationId": "Submissions_visibility",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetVisibilityDto"
              },
              "example": {
                "is_public": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmissionDetailDto"
                },
                "example": {
                  "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "collect_link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "kind": "video",
                  "text_input": null,
                  "status": "ready",
                  "respondent_name": "Priya Shah",
                  "respondent_email": "priya@fernhill.example",
                  "respondent_title": "Head of Operations",
                  "respondent_company": "Fernhill Studio",
                  "respondent_country": "GB",
                  "rating": 5,
                  "duration_ms": 48200,
                  "error_message": null,
                  "is_approved": true,
                  "approved_at": "2026-09-15T11:02:55.000Z",
                  "is_public": true,
                  "rejected_at": null,
                  "rejection_reason": null,
                  "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                  "public_media": {
                    "video_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/video.mp4",
                    "audio_url": null,
                    "poster_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/poster.jpg"
                  },
                  "sentiment": {
                    "label": "positive",
                    "score": 0.91
                  },
                  "created_at": "2026-09-15T09:41:07.312Z",
                  "updated_at": "2026-09-15T11:02:55.000Z",
                  "assets": [
                    {
                      "id": "ast_01K5A3N7B2D4F6H8J0K2M4P6R8",
                      "role": "normalized",
                      "mime": "video/mp4",
                      "bytes": 8123456,
                      "duration_ms": 48200,
                      "width": 720,
                      "height": 1280,
                      "playback_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/normalized.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                    },
                    {
                      "id": "ast_01K5A3N9D4F6H8K0M2P4R6T8V0",
                      "role": "poster",
                      "mime": "image/jpeg",
                      "bytes": 142880,
                      "duration_ms": null,
                      "width": 720,
                      "height": 1280,
                      "playback_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                    }
                  ],
                  "consent": {
                    "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                    "consent_version": "2026-09-01",
                    "agreed_at": "2026-09-15T09:41:07.312Z"
                  },
                  "text": null,
                  "text_source": null,
                  "original_text": null,
                  "tags": [
                    {
                      "id": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1",
                      "name": "onboarding",
                      "color": "#0f766e",
                      "source": "operator"
                    },
                    {
                      "id": "tag_01K5A5D7F9H1K3N5Q7S9V1X3Z5",
                      "name": "support",
                      "color": null,
                      "source": "ai"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:moderate"
            ]
          }
        ],
        "summary": "Choose whether a submission may be shown publicly",
        "tags": [
          "Submissions"
        ]
      }
    },
    "/v1/submissions/{id}/tags/{tagId}": {
      "put": {
        "description": "Idempotent. Assigning a tag the AI suggested accepts the suggestion: it becomes an operator tag. Returns the submission’s tags. Audited.",
        "operationId": "Submissions_assignTag",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          },
          {
            "name": "tagId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmissionTagListDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1",
                      "name": "onboarding",
                      "color": "#0f766e",
                      "source": "operator"
                    },
                    {
                      "id": "tag_01K5A5D7F9H1K3N5Q7S9V1X3Z5",
                      "name": "support",
                      "color": null,
                      "source": "ai"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:moderate"
            ]
          }
        ],
        "summary": "Tag a submission",
        "tags": [
          "Submissions"
        ]
      },
      "delete": {
        "description": "Removing a tag the AI suggested dismisses the suggestion: it will not be suggested for this submission again. Returns the submission’s tags. Audited.",
        "operationId": "Submissions_removeTag",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          },
          {
            "name": "tagId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmissionTagListDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1",
                      "name": "onboarding",
                      "color": "#0f766e",
                      "source": "operator"
                    },
                    {
                      "id": "tag_01K5A5D7F9H1K3N5Q7S9V1X3Z5",
                      "name": "support",
                      "color": null,
                      "source": "ai"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:moderate"
            ]
          }
        ],
        "summary": "Remove a tag from a submission",
        "tags": [
          "Submissions"
        ]
      }
    },
    "/v1/submissions/{id}/media/{variant}": {
      "get": {
        "description": "`variant` is `video` (a video testimonial’s processed MP4), `audio` (an audio or spoken testimonial’s processed M4A) or `poster` (a still, or the waveform). Redirects to a signed storage URL valid for about an hour: follow it to fetch the file, but do not store it. For a link that lasts, use `public_media`, present once a testimonial is published. Works whether or not the testimonial is published; 404 for a draft, or a variant it does not have.",
        "operationId": "Submissions_media",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          },
          {
            "name": "variant",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "video"
          }
        ],
        "responses": {
          "302": {
            "description": "A signed, short-lived URL to the file, in `Location`."
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:read"
            ]
          }
        ],
        "summary": "Download a submission's media",
        "tags": [
          "Submissions"
        ]
      }
    },
    "/v1/submissions/{id}": {
      "get": {
        "description": "Includes playback URLs, signed and valid for about an hour — to play now, not to store. Once a testimonial is approved, public and published, `public_media` carries its permanent public addresses.",
        "operationId": "Submissions_get",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmissionDetailDto"
                },
                "example": {
                  "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "collect_link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "kind": "video",
                  "text_input": null,
                  "status": "ready",
                  "respondent_name": "Priya Shah",
                  "respondent_email": "priya@fernhill.example",
                  "respondent_title": "Head of Operations",
                  "respondent_company": "Fernhill Studio",
                  "respondent_country": "GB",
                  "rating": 5,
                  "duration_ms": 48200,
                  "error_message": null,
                  "is_approved": true,
                  "approved_at": "2026-09-15T11:02:55.000Z",
                  "is_public": true,
                  "rejected_at": null,
                  "rejection_reason": null,
                  "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                  "public_media": {
                    "video_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/video.mp4",
                    "audio_url": null,
                    "poster_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/poster.jpg"
                  },
                  "sentiment": {
                    "label": "positive",
                    "score": 0.91
                  },
                  "created_at": "2026-09-15T09:41:07.312Z",
                  "updated_at": "2026-09-15T11:02:55.000Z",
                  "assets": [
                    {
                      "id": "ast_01K5A3N7B2D4F6H8J0K2M4P6R8",
                      "role": "normalized",
                      "mime": "video/mp4",
                      "bytes": 8123456,
                      "duration_ms": 48200,
                      "width": 720,
                      "height": 1280,
                      "playback_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/normalized.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                    },
                    {
                      "id": "ast_01K5A3N9D4F6H8K0M2P4R6T8V0",
                      "role": "poster",
                      "mime": "image/jpeg",
                      "bytes": 142880,
                      "duration_ms": null,
                      "width": 720,
                      "height": 1280,
                      "playback_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                    }
                  ],
                  "consent": {
                    "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                    "consent_version": "2026-09-01",
                    "agreed_at": "2026-09-15T09:41:07.312Z"
                  },
                  "text": null,
                  "text_source": null,
                  "original_text": null,
                  "tags": [
                    {
                      "id": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1",
                      "name": "onboarding",
                      "color": "#0f766e",
                      "source": "operator"
                    },
                    {
                      "id": "tag_01K5A5D7F9H1K3N5Q7S9V1X3Z5",
                      "name": "support",
                      "color": null,
                      "source": "ai"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:read"
            ]
          }
        ],
        "summary": "Fetch a submission",
        "tags": [
          "Submissions"
        ]
      },
      "patch": {
        "description": "Typo fixes to `respondent_title` and `respondent_company` — the only fields an operator can change. A testimonial’s words cannot be edited through any route: the respondent is their author (ADR 0006). Any other field, `text` included, is refused with 422. Every change is audited.",
        "operationId": "Submissions_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSubmissionDto"
              },
              "example": {
                "respondent_title": "Head of Operations",
                "respondent_company": "Fernhill Studio"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmissionDetailDto"
                },
                "example": {
                  "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "collect_link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "kind": "video",
                  "text_input": null,
                  "status": "ready",
                  "respondent_name": "Priya Shah",
                  "respondent_email": "priya@fernhill.example",
                  "respondent_title": "Head of Operations",
                  "respondent_company": "Fernhill Studio",
                  "respondent_country": "GB",
                  "rating": 5,
                  "duration_ms": 48200,
                  "error_message": null,
                  "is_approved": true,
                  "approved_at": "2026-09-15T11:02:55.000Z",
                  "is_public": true,
                  "rejected_at": null,
                  "rejection_reason": null,
                  "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                  "public_media": {
                    "video_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/video.mp4",
                    "audio_url": null,
                    "poster_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/poster.jpg"
                  },
                  "sentiment": {
                    "label": "positive",
                    "score": 0.91
                  },
                  "created_at": "2026-09-15T09:41:07.312Z",
                  "updated_at": "2026-09-15T11:02:55.000Z",
                  "assets": [
                    {
                      "id": "ast_01K5A3N7B2D4F6H8J0K2M4P6R8",
                      "role": "normalized",
                      "mime": "video/mp4",
                      "bytes": 8123456,
                      "duration_ms": 48200,
                      "width": 720,
                      "height": 1280,
                      "playback_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/normalized.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                    },
                    {
                      "id": "ast_01K5A3N9D4F6H8K0M2P4R6T8V0",
                      "role": "poster",
                      "mime": "image/jpeg",
                      "bytes": 142880,
                      "duration_ms": null,
                      "width": 720,
                      "height": 1280,
                      "playback_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                    }
                  ],
                  "consent": {
                    "consent_text": "I agree that Northwind Coffee may publish my testimonial — my recording or words, name and title — on its website and social channels. I can ask for it to be removed at any time.",
                    "consent_version": "2026-09-01",
                    "agreed_at": "2026-09-15T09:41:07.312Z"
                  },
                  "text": null,
                  "text_source": null,
                  "original_text": null,
                  "tags": [
                    {
                      "id": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1",
                      "name": "onboarding",
                      "color": "#0f766e",
                      "source": "operator"
                    },
                    {
                      "id": "tag_01K5A5D7F9H1K3N5Q7S9V1X3Z5",
                      "name": "support",
                      "color": null,
                      "source": "ai"
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:write"
            ]
          }
        ],
        "summary": "Correct the respondent's title or company",
        "tags": [
          "Submissions"
        ]
      },
      "delete": {
        "description": "Hides it immediately and queues permanent erasure of its media. The original recording is immutable, so this is the only way it is ever removed.",
        "operationId": "Submissions_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:moderate"
            ]
          }
        ],
        "summary": "Delete a submission",
        "tags": [
          "Submissions"
        ]
      }
    },
    "/public/links/{slug}/submissions": {
      "post": {
        "description": "Creates a pending submission and returns an `upload_token` scoped to it. The token is required by the two calls that follow and expires in 30 minutes.\n\nA link that is inactive, expired, or over its limit returns **410**.",
        "operationId": "PublicSubmissions_create",
        "parameters": [
          {
            "name": "slug",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "k7m2p9qx4t"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubmissionDto"
              },
              "example": {
                "kind": "video",
                "respondent_name": "Priya Shah",
                "respondent_email": "priya@fernhill.example",
                "rating": 5
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedSubmissionDto"
                },
                "example": {
                  "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "upload_token": "v1.c3ViXzAxSzVBM00yUThXSjRUNlY4WDBZMkE0QzZF.Tk3n8Q2wZ5vB1xK7pL4cR9mD6fH0jS3a",
                  "upload_token_expires_at": "2026-09-15T10:11:07.312Z"
                }
              }
            }
          }
        },
        "summary": "Start a submission",
        "tags": [
          "Public"
        ]
      }
    },
    "/public/submissions/{id}/upload-url": {
      "post": {
        "description": "Omit `upload_id` on the first call to begin a multipart upload; pass the returned id and an incrementing `part_number` for each part after.\n\nThe URL is bound to the content type **and** the content length you declare, and expires in 15 minutes. Upload the bytes straight to it — they never pass through this API. Keep the `ETag` each PUT returns; completing the submission needs them.",
        "operationId": "PublicSubmissions_uploadUrl",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          },
          {
            "name": "X-Upload-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadUrlRequestDto"
              },
              "example": {
                "content_type": "video/webm",
                "content_length": 5242880,
                "part_number": 1
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadUrlResponseDto"
                },
                "example": {
                  "upload_id": "2~Hk3pQ8vZ5tM1wX7cR4bN9sL6fD0jG2y",
                  "part_number": 1,
                  "upload_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/original.webm?partNumber=1&uploadId=2~Hk3pQ8vZ5tM1wX7cR4bN9sL6fD0jG2y&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T094110Z&X-Amz-Expires=900&X-Amz-SignedHeaders=content-length%3Bcontent-type%3Bhost&X-Amz-Signature=5d7f9b1c3e5a7c9e1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1a3c5e7b9d1f3a5c7e",
                  "expires_at": "2026-09-15T09:56:10.000Z",
                  "required_headers": {
                    "content-type": "video/webm",
                    "content-length": "5242880"
                  }
                }
              }
            }
          }
        },
        "summary": "Get a presigned URL for one upload part",
        "tags": [
          "Public"
        ]
      }
    },
    "/public/submissions/{id}/transcribe": {
      "post": {
        "description": "For a submission created with `kind: \"text\"` and `text_input: \"voice\"`. Finishes the upload exactly as `complete` does and starts transcribing it, so the respondent can read and correct the transcript **before** sending. Poll `GET …/transcript` for the result.\n\nIdempotent: calling it twice starts one transcription.",
        "operationId": "PublicSubmissions_transcribe",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          },
          {
            "name": "X-Upload-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranscribeSubmissionDto"
              },
              "example": {
                "upload_id": "2~Hk3pQ8vZ5tM1wX7cR4bN9sL6fD0jG2y",
                "parts": [
                  {
                    "part_number": 1,
                    "etag": "\"a54357aff0632cce46d942af68356b38\""
                  }
                ],
                "duration_ms": 31400
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoiceTranscriptDto"
                },
                "example": {
                  "status": "ready",
                  "text": "um so honestly the the onboarding was was really smooth and we were live in a week",
                  "estimate_ms": 0
                }
              }
            }
          }
        },
        "summary": "Transcribe a spoken testimonial (voice-to-text)",
        "tags": [
          "Public"
        ]
      }
    },
    "/public/submissions/{id}/transcript": {
      "get": {
        "description": "`queued` and `transcribing` report the job’s real state; `ready` carries the text; at `failed` the respondent types their testimonial instead. `estimate_ms` is the expected total wait, from the length of the recording.",
        "operationId": "PublicSubmissions_transcript",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          },
          {
            "name": "X-Upload-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VoiceTranscriptDto"
                },
                "example": {
                  "status": "ready",
                  "text": "um so honestly the the onboarding was was really smooth and we were live in a week",
                  "estimate_ms": 0
                }
              }
            }
          }
        },
        "summary": "Poll a voice-to-text transcript",
        "tags": [
          "Public"
        ]
      }
    },
    "/public/submissions/{id}/cleanup": {
      "post": {
        "description": "Removes filler words and false starts and fixes punctuation and capitals — nothing else. Every suggestion is checked before it is returned: one that adds a word, changes a number or a negation, or changes length by more than 30% is refused (`rejected`) and the text comes back as sent.\n\nA suggestion is only that. It is used only if the respondent chooses it, by sending its `revision_id` as `cleanup_revision_id` to `complete`; their own words are kept either way.",
        "operationId": "PublicSubmissions_cleanup",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          },
          {
            "name": "X-Upload-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CleanupRequestDto"
              },
              "example": {
                "text": "um so honestly the the onboarding was was really smooth and we were live in a week"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CleanupResultDto"
                },
                "example": {
                  "outcome": "cleaned",
                  "text": "Honestly, the onboarding was really smooth and we were live in a week.",
                  "revision_id": "rev_01K5A3Q1S3V5X7Z9B1D3F5H7K9"
                }
              }
            }
          }
        },
        "summary": "Suggest a tidied version of a spoken testimonial",
        "tags": [
          "Public"
        ]
      }
    },
    "/public/submissions/{id}/complete": {
      "post": {
        "description": "Completes the upload, verifies the object exists in storage at the expected size, records consent verbatim, and queues processing.\n\nIdempotent: calling it twice returns the same result and queues one job.",
        "operationId": "PublicSubmissions_complete",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E"
          },
          {
            "name": "X-Upload-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteSubmissionDto"
              },
              "example": {
                "upload_id": "2~Hk3pQ8vZ5tM1wX7cR4bN9sL6fD0jG2y",
                "parts": [
                  {
                    "part_number": 1,
                    "etag": "\"a54357aff0632cce46d942af68356b38\""
                  }
                ],
                "duration_ms": 48200,
                "respondent_name": "Priya Shah",
                "respondent_title": "Head of Operations",
                "respondent_company": "Fernhill Studio",
                "rating": 5,
                "consent_agreed": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompletedSubmissionDto"
                },
                "example": {
                  "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "status": "processing",
                  "thank_you_text": "Thank you. We read every one.",
                  "redirect_url": null
                }
              }
            }
          }
        },
        "summary": "Finish a submission",
        "tags": [
          "Public"
        ]
      }
    },
    "/v1/tags": {
      "get": {
        "description": "Newest first.",
        "operationId": "Tags_list",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1",
                      "name": "onboarding",
                      "color": "#0f766e",
                      "created_at": "2026-09-01T10:12:44.000Z"
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:read"
            ]
          }
        ],
        "summary": "List tags",
        "tags": [
          "Tags"
        ]
      },
      "post": {
        "description": "Names are unique within the organization (409 otherwise). Audited.",
        "operationId": "Tags_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTagDto"
              },
              "example": {
                "name": "onboarding",
                "color": "#0f766e"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDto"
                },
                "example": {
                  "id": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1",
                  "name": "onboarding",
                  "color": "#0f766e",
                  "created_at": "2026-09-01T10:12:44.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:moderate"
            ]
          }
        ],
        "summary": "Create a tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/v1/tags/{id}": {
      "patch": {
        "description": "Audited.",
        "operationId": "Tags_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTagDto"
              },
              "example": {
                "name": "onboarding speed"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TagDto"
                },
                "example": {
                  "id": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1",
                  "name": "onboarding",
                  "color": "#0f766e",
                  "created_at": "2026-09-01T10:12:44.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:moderate"
            ]
          }
        ],
        "summary": "Rename or recolour a tag",
        "tags": [
          "Tags"
        ]
      },
      "delete": {
        "description": "Removes it from every submission that carries it. Audited.",
        "operationId": "Tags_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "tag_01K5A0C3E5G7J9K1M3P5R7T9V1"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "submissions:moderate"
            ]
          }
        ],
        "summary": "Delete a tag",
        "tags": [
          "Tags"
        ]
      }
    },
    "/v1/exports/preview": {
      "post": {
        "description": "How many testimonials (and, for a ZIP, recordings) the filters match, the plan’s export limits, and whether the export can run — so the count can be confirmed before starting it. Nothing is counted against the allowance.",
        "operationId": "Exports_preview",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportDto"
              },
              "example": {
                "format": "csv",
                "filters": {
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "is_approved": true
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportPreviewDto"
                },
                "example": {
                  "format": "csv",
                  "submission_count": 128,
                  "media_file_count": 0,
                  "plan": "core",
                  "limits": {
                    "exports_per_month": 200,
                    "exports_used_this_month": 3,
                    "submissions_per_export": 10000,
                    "media_files_per_export": 200
                  },
                  "blocked": null,
                  "email_on_completion": true
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "exports:write"
            ]
          }
        ],
        "summary": "Preview an export",
        "tags": [
          "Exports"
        ]
      }
    },
    "/v1/exports": {
      "post": {
        "description": "Queues the export and returns its id at once: an export is a job, not a request. Poll `GET /v1/exports/{id}` for progress and the download.\n\nPlan limits are checked first: the number of exports a month, testimonials per export, and recordings per ZIP bundle. A limit returns **402** `plan_limit_exceeded`, naming the limit and the plan that raises it.",
        "operationId": "Exports_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExportDto"
              },
              "example": {
                "format": "csv",
                "filters": {
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "is_approved": true
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedExportDto"
                },
                "example": {
                  "export_id": "exp_01K5A8B6D0F2H4K6M8P0R2T4V6"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "exports:write"
            ]
          }
        ],
        "summary": "Start an export",
        "tags": [
          "Exports"
        ]
      }
    },
    "/v1/exports/{id}": {
      "get": {
        "description": "Its status and progress and, once it has succeeded, a signed `download_url` valid for 24 hours. The file itself is deleted seven days after it finished (`expires_at`); the export is then `expired`.",
        "operationId": "Exports_get",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "exp_01K5A8B6D0F2H4K6M8P0R2T4V6"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportDto"
                },
                "example": {
                  "id": "exp_01K5A8B6D0F2H4K6M8P0R2T4V6",
                  "format": "csv",
                  "status": "succeeded",
                  "filters": {
                    "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                    "is_approved": true
                  },
                  "progress": {
                    "processed": 128,
                    "total": 128
                  },
                  "file_name": "northwind-coffee-testimonials-2026-09-15.csv",
                  "bytes": 48213,
                  "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/exports/exp_01K5A8B6D0F2H4K6M8P0R2T4V6/northwind-coffee.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                  "download_expires_at": "2026-09-15T13:00:00.000Z",
                  "expires_at": "2026-09-22T09:52:40.000Z",
                  "error_message": null,
                  "email_on_completion": true,
                  "created_at": "2026-09-15T09:52:31.000Z",
                  "finished_at": "2026-09-15T09:52:40.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "exports:write"
            ]
          }
        ],
        "summary": "Fetch an export",
        "tags": [
          "Exports"
        ]
      }
    },
    "/v1/widgets": {
      "get": {
        "description": "Newest first. Filter by `brand_id`.",
        "operationId": "Widgets_list",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          },
          {
            "name": "brand_id",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 64,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WidgetCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "wgt_01K59ZB2D4F6H8K0M2P4R6T8W0",
                      "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                      "name": "Homepage wall",
                      "layout": "wall",
                      "theme": "auto",
                      "accent_color": "#1a73e8",
                      "fields": {
                        "avatar": true,
                        "name": true,
                        "title": true,
                        "company": true,
                        "rating": true,
                        "date": false
                      },
                      "selection": "automatic",
                      "tag_ids": [
                        "tag_01K5A0C3E5G7J9K1M3P5R7T9V1"
                      ],
                      "min_rating": 4,
                      "submission_ids": [],
                      "max_items": 12,
                      "show_attribution": false,
                      "attribution_removable": true,
                      "height": 640,
                      "snippet": "<div data-akteora-widget=\"wgt_01K59ZB2D4F6H8K0M2P4R6T8W0\" style=\"height:640px\"></div>\n<script src=\"https://cdn.akteora.com/w.js\" async></script>",
                      "script_url": "https://cdn.akteora.com/w.js",
                      "document_url": "https://cdn.akteora.com/w/wgt_01K59ZB2D4F6H8K0M2P4R6T8W0.json",
                      "published_at": "2026-09-15T11:02:55.000Z",
                      "created_at": "2026-09-01T10:12:44.000Z",
                      "updated_at": "2026-09-14T16:03:21.000Z"
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:read"
            ]
          }
        ],
        "summary": "List widgets",
        "tags": [
          "Widgets"
        ]
      },
      "post": {
        "description": "Everything but `brand_id` has a default: a wall of the brand’s twelve newest published testimonials, following the visitor’s light or dark setting, in the brand’s colour. The response carries the `snippet` to paste into a page.\n\nThe widget itself never calls this API. A change is published to the CDN as a static document within a few seconds, and `published_at` moves when it is.",
        "operationId": "Widgets_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWidgetDto"
              },
              "example": {
                "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                "name": "Homepage wall",
                "layout": "wall",
                "theme": "auto",
                "selection": "automatic",
                "tag_ids": [
                  "tag_01K5A0C3E5G7J9K1M3P5R7T9V1"
                ],
                "min_rating": 4,
                "max_items": 12
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WidgetDto"
                },
                "example": {
                  "id": "wgt_01K59ZB2D4F6H8K0M2P4R6T8W0",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "name": "Homepage wall",
                  "layout": "wall",
                  "theme": "auto",
                  "accent_color": "#1a73e8",
                  "fields": {
                    "avatar": true,
                    "name": true,
                    "title": true,
                    "company": true,
                    "rating": true,
                    "date": false
                  },
                  "selection": "automatic",
                  "tag_ids": [
                    "tag_01K5A0C3E5G7J9K1M3P5R7T9V1"
                  ],
                  "min_rating": 4,
                  "submission_ids": [],
                  "max_items": 12,
                  "show_attribution": false,
                  "attribution_removable": true,
                  "height": 640,
                  "snippet": "<div data-akteora-widget=\"wgt_01K59ZB2D4F6H8K0M2P4R6T8W0\" style=\"height:640px\"></div>\n<script src=\"https://cdn.akteora.com/w.js\" async></script>",
                  "script_url": "https://cdn.akteora.com/w.js",
                  "document_url": "https://cdn.akteora.com/w/wgt_01K59ZB2D4F6H8K0M2P4R6T8W0.json",
                  "published_at": "2026-09-15T11:02:55.000Z",
                  "created_at": "2026-09-01T10:12:44.000Z",
                  "updated_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:write"
            ]
          }
        ],
        "summary": "Create a widget",
        "tags": [
          "Widgets"
        ]
      }
    },
    "/v1/widgets/preview": {
      "post": {
        "description": "The document a widget with these settings would publish, built exactly as the published one is. Nothing is saved or published. For showing a widget before saving it.",
        "operationId": "Widgets_preview",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWidgetDto"
              },
              "example": {
                "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                "name": "Homepage wall",
                "layout": "wall",
                "theme": "auto",
                "selection": "automatic",
                "tag_ids": [
                  "tag_01K5A0C3E5G7J9K1M3P5R7T9V1"
                ],
                "min_rating": 4,
                "max_items": 12
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WidgetDocumentDto"
                },
                "example": {
                  "version": 1,
                  "widget_id": "wgt_01K59ZB2D4F6H8K0M2P4R6T8W0",
                  "generated_at": "2026-09-15T11:02:55.000Z",
                  "layout": "wall",
                  "theme": "auto",
                  "accent_color": "#1a73e8",
                  "fields": {
                    "avatar": true,
                    "name": true,
                    "title": true,
                    "company": true,
                    "rating": true,
                    "date": false
                  },
                  "attribution": false,
                  "brand_name": "Northwind Coffee",
                  "rating": {
                    "average": 4.8,
                    "count": 37
                  },
                  "items": [
                    {
                      "kind": "video",
                      "name": "Priya Shah",
                      "title": "Head of Operations",
                      "company": "Fernhill Studio",
                      "rating": 5,
                      "date": "2026-09-15",
                      "text": null,
                      "video_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/video.mp4",
                      "audio_url": null,
                      "poster_url": "https://cdn.akteora.com/m/4hq8x2mzk7p9t3vb6ncw/poster.jpg",
                      "duration_ms": 48200,
                      "language": "en",
                      "captions": [
                        {
                          "start_ms": 320,
                          "end_ms": 3880,
                          "text": "Before Northwind we were juggling three suppliers."
                        }
                      ]
                    },
                    {
                      "kind": "text",
                      "name": "Marcus Webb",
                      "title": null,
                      "company": "Webb & Daughters",
                      "rating": 5,
                      "date": "2026-09-12",
                      "text": "We switched in an afternoon, and the first delivery arrived before the old supplier had even replied to our email.",
                      "video_url": null,
                      "audio_url": null,
                      "poster_url": null,
                      "duration_ms": null,
                      "language": null,
                      "captions": null
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:read"
            ]
          }
        ],
        "summary": "Preview a widget",
        "tags": [
          "Widgets"
        ]
      }
    },
    "/v1/widgets/{id}": {
      "get": {
        "operationId": "Widgets_get",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "wgt_01K59ZB2D4F6H8K0M2P4R6T8W0"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WidgetDto"
                },
                "example": {
                  "id": "wgt_01K59ZB2D4F6H8K0M2P4R6T8W0",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "name": "Homepage wall",
                  "layout": "wall",
                  "theme": "auto",
                  "accent_color": "#1a73e8",
                  "fields": {
                    "avatar": true,
                    "name": true,
                    "title": true,
                    "company": true,
                    "rating": true,
                    "date": false
                  },
                  "selection": "automatic",
                  "tag_ids": [
                    "tag_01K5A0C3E5G7J9K1M3P5R7T9V1"
                  ],
                  "min_rating": 4,
                  "submission_ids": [],
                  "max_items": 12,
                  "show_attribution": false,
                  "attribution_removable": true,
                  "height": 640,
                  "snippet": "<div data-akteora-widget=\"wgt_01K59ZB2D4F6H8K0M2P4R6T8W0\" style=\"height:640px\"></div>\n<script src=\"https://cdn.akteora.com/w.js\" async></script>",
                  "script_url": "https://cdn.akteora.com/w.js",
                  "document_url": "https://cdn.akteora.com/w/wgt_01K59ZB2D4F6H8K0M2P4R6T8W0.json",
                  "published_at": "2026-09-15T11:02:55.000Z",
                  "created_at": "2026-09-01T10:12:44.000Z",
                  "updated_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:read"
            ]
          }
        ],
        "summary": "Fetch a widget",
        "tags": [
          "Widgets"
        ]
      },
      "patch": {
        "description": "Only the fields given change; within `fields`, only the card fields given. A widget stays with its brand. Changing `layout` changes the height the `snippet` reserves.\n\nThe widget itself never calls this API. A change is published to the CDN as a static document within a few seconds, and `published_at` moves when it is.",
        "operationId": "Widgets_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "wgt_01K59ZB2D4F6H8K0M2P4R6T8W0"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWidgetDto"
              },
              "example": {
                "layout": "carousel",
                "max_items": 8
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WidgetDto"
                },
                "example": {
                  "id": "wgt_01K59ZB2D4F6H8K0M2P4R6T8W0",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "name": "Homepage wall",
                  "layout": "wall",
                  "theme": "auto",
                  "accent_color": "#1a73e8",
                  "fields": {
                    "avatar": true,
                    "name": true,
                    "title": true,
                    "company": true,
                    "rating": true,
                    "date": false
                  },
                  "selection": "automatic",
                  "tag_ids": [
                    "tag_01K5A0C3E5G7J9K1M3P5R7T9V1"
                  ],
                  "min_rating": 4,
                  "submission_ids": [],
                  "max_items": 12,
                  "show_attribution": false,
                  "attribution_removable": true,
                  "height": 640,
                  "snippet": "<div data-akteora-widget=\"wgt_01K59ZB2D4F6H8K0M2P4R6T8W0\" style=\"height:640px\"></div>\n<script src=\"https://cdn.akteora.com/w.js\" async></script>",
                  "script_url": "https://cdn.akteora.com/w.js",
                  "document_url": "https://cdn.akteora.com/w/wgt_01K59ZB2D4F6H8K0M2P4R6T8W0.json",
                  "published_at": "2026-09-15T11:02:55.000Z",
                  "created_at": "2026-09-01T10:12:44.000Z",
                  "updated_at": "2026-09-14T16:03:21.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:write"
            ]
          }
        ],
        "summary": "Update a widget",
        "tags": [
          "Widgets"
        ]
      },
      "delete": {
        "description": "Its published document is deleted within a few seconds; pages that still carry its snippet then show nothing in the space they reserved.",
        "operationId": "Widgets_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "wgt_01K59ZB2D4F6H8K0M2P4R6T8W0"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "brands:write"
            ]
          }
        ],
        "summary": "Delete a widget",
        "tags": [
          "Widgets"
        ]
      }
    },
    "/v1/reels/music": {
      "get": {
        "description": "The beds a reel can be scored with, by `id`. There is no upload: every track is licensed for use in any reel, or original to Akteora.",
        "operationId": "Reels_music",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MusicTrackCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "warm",
                      "name": "Warm",
                      "description": "Soft major chords, unhurried. Suits most brands."
                    },
                    {
                      "id": "bright",
                      "name": "Bright",
                      "description": "Lighter and quicker, in a higher register. For an upbeat reel."
                    },
                    {
                      "id": "calm",
                      "name": "Calm",
                      "description": "Slow minor-key pads, low and quiet. For a considered, serious tone."
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:read"
            ]
          }
        ],
        "summary": "List music beds",
        "tags": [
          "Reels"
        ]
      }
    },
    "/v1/reels": {
      "get": {
        "description": "Newest first. Filter by `brand_id`.",
        "operationId": "Reels_list",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          },
          {
            "name": "brand_id",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 64,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReelCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7",
                      "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                      "title": "September highlights",
                      "status": "ready",
                      "clip_count": 2,
                      "aspect_ratios": [
                        "9:16",
                        "1:1"
                      ],
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "shared": true,
                      "created_at": "2026-09-15T11:12:30.000Z",
                      "updated_at": "2026-09-15T11:21:48.000Z"
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:read"
            ]
          }
        ],
        "summary": "List reels",
        "tags": [
          "Reels"
        ]
      },
      "post": {
        "description": "From testimonials of one brand: processed videos with transcripts. A span of each is suggested at once — by a language model that returns **timestamps only**, each checked against the transcript, or by a deterministic heuristic when the model is unavailable or its answer fails the check twice. In `auto` mode the clips are ordered for you; in `manual`, `submission_ids` is the order.\n\nA testimonial that cannot go in — not a video, still processing, rejected, or without a transcript — is a **422** naming it and why.",
        "operationId": "Reels_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateReelDto"
              },
              "example": {
                "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                "title": "September highlights",
                "mode": "auto",
                "submission_ids": [
                  "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "sub_01K59ZK3M5P7R9T1V3X5Z7B9D1"
                ],
                "config": {
                  "aspect_ratios": [
                    "9:16",
                    "1:1"
                  ],
                  "caption_style": "bold",
                  "target_duration_ms": 45000
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReelDto"
                },
                "example": {
                  "id": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "title": "September highlights",
                  "status": "ready",
                  "config": {
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "caption_style": "bold",
                    "intro": {
                      "title": "What our customers say"
                    },
                    "outro": {
                      "call_to_action": "Try Northwind free for 14 days"
                    },
                    "music": {
                      "track_id": "warm"
                    },
                    "target_duration_ms": 45000
                  },
                  "clips": [
                    {
                      "id": "clp_01K5A7H3E1R5T7V9X1Z3B5D7F9",
                      "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                      "position": 0,
                      "start_ms": 4210,
                      "end_ms": 9950,
                      "source": "model",
                      "reason": "Says the result in one sentence.",
                      "text": "We were live in a week, and honestly our morning rush has never been calmer.",
                      "respondent_name": "Priya Shah",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 48200,
                      "problem": null
                    },
                    {
                      "id": "clp_01K5A7H4F2S6V8X0Z2B4D6F8H0",
                      "submission_id": "sub_01K59ZK3M5P7R9T1V3X5Z7B9D1",
                      "position": 1,
                      "start_ms": 11480,
                      "end_ms": 19020,
                      "source": "operator",
                      "reason": null,
                      "text": "The team noticed the difference in the first week, before I had said a word.",
                      "respondent_name": "Tom Okafor",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K59ZK3M5P7R9T1V3X5Z7B9D1/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 36900,
                      "problem": null
                    }
                  ],
                  "render": {
                    "id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "status": "succeeded",
                    "stage": "finishing",
                    "label": "Done",
                    "done": null,
                    "total": null,
                    "aspect_ratio": null,
                    "paused": false,
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "error_message": null,
                    "estimated_core_seconds": 84,
                    "core_seconds_used": 79.4,
                    "created_at": "2026-09-15T11:20:00.000Z",
                    "started_at": "2026-09-15T11:20:02.000Z",
                    "finished_at": "2026-09-15T11:21:48.000Z"
                  },
                  "output": {
                    "render_id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "variants": [
                      {
                        "aspect_ratio": "9:16",
                        "width": 720,
                        "height": 1280,
                        "duration_ms": 44800,
                        "bytes": 9123456,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      },
                      {
                        "aspect_ratio": "1:1",
                        "width": 720,
                        "height": 720,
                        "duration_ms": 44800,
                        "bytes": 6402118,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      }
                    ],
                    "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "captions_download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/captions.vtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "rendered_at": "2026-09-15T11:21:48.000Z"
                  },
                  "changed_since_render": false,
                  "estimate": {
                    "duration_ms": 44800,
                    "core_seconds": 84,
                    "render_minutes": 2,
                    "plan": "core",
                    "render_minutes_per_month": 60,
                    "render_minutes_used": 7,
                    "blocked": null
                  },
                  "share": {
                    "enabled": true,
                    "status": "live",
                    "urls": {
                      "variants": [
                        {
                          "aspect_ratio": "9:16",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/9x16.mp4"
                        },
                        {
                          "aspect_ratio": "1:1",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/1x1.mp4"
                        }
                      ],
                      "poster_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/poster.jpg",
                      "captions_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/captions.vtt"
                    }
                  },
                  "error_message": null,
                  "created_at": "2026-09-15T11:12:30.000Z",
                  "updated_at": "2026-09-15T11:21:48.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:write"
            ]
          }
        ],
        "summary": "Create a reel",
        "tags": [
          "Reels"
        ]
      }
    },
    "/v1/reels/{id}": {
      "get": {
        "description": "Its clips — each with the words it contains, verbatim — the latest render and the stage it has reached, the last render’s files on signed URLs valid for an hour, what a render would cost against the plan, and whether it is shared.",
        "operationId": "Reels_get",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReelDto"
                },
                "example": {
                  "id": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "title": "September highlights",
                  "status": "ready",
                  "config": {
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "caption_style": "bold",
                    "intro": {
                      "title": "What our customers say"
                    },
                    "outro": {
                      "call_to_action": "Try Northwind free for 14 days"
                    },
                    "music": {
                      "track_id": "warm"
                    },
                    "target_duration_ms": 45000
                  },
                  "clips": [
                    {
                      "id": "clp_01K5A7H3E1R5T7V9X1Z3B5D7F9",
                      "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                      "position": 0,
                      "start_ms": 4210,
                      "end_ms": 9950,
                      "source": "model",
                      "reason": "Says the result in one sentence.",
                      "text": "We were live in a week, and honestly our morning rush has never been calmer.",
                      "respondent_name": "Priya Shah",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 48200,
                      "problem": null
                    },
                    {
                      "id": "clp_01K5A7H4F2S6V8X0Z2B4D6F8H0",
                      "submission_id": "sub_01K59ZK3M5P7R9T1V3X5Z7B9D1",
                      "position": 1,
                      "start_ms": 11480,
                      "end_ms": 19020,
                      "source": "operator",
                      "reason": null,
                      "text": "The team noticed the difference in the first week, before I had said a word.",
                      "respondent_name": "Tom Okafor",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K59ZK3M5P7R9T1V3X5Z7B9D1/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 36900,
                      "problem": null
                    }
                  ],
                  "render": {
                    "id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "status": "succeeded",
                    "stage": "finishing",
                    "label": "Done",
                    "done": null,
                    "total": null,
                    "aspect_ratio": null,
                    "paused": false,
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "error_message": null,
                    "estimated_core_seconds": 84,
                    "core_seconds_used": 79.4,
                    "created_at": "2026-09-15T11:20:00.000Z",
                    "started_at": "2026-09-15T11:20:02.000Z",
                    "finished_at": "2026-09-15T11:21:48.000Z"
                  },
                  "output": {
                    "render_id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "variants": [
                      {
                        "aspect_ratio": "9:16",
                        "width": 720,
                        "height": 1280,
                        "duration_ms": 44800,
                        "bytes": 9123456,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      },
                      {
                        "aspect_ratio": "1:1",
                        "width": 720,
                        "height": 720,
                        "duration_ms": 44800,
                        "bytes": 6402118,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      }
                    ],
                    "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "captions_download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/captions.vtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "rendered_at": "2026-09-15T11:21:48.000Z"
                  },
                  "changed_since_render": false,
                  "estimate": {
                    "duration_ms": 44800,
                    "core_seconds": 84,
                    "render_minutes": 2,
                    "plan": "core",
                    "render_minutes_per_month": 60,
                    "render_minutes_used": 7,
                    "blocked": null
                  },
                  "share": {
                    "enabled": true,
                    "status": "live",
                    "urls": {
                      "variants": [
                        {
                          "aspect_ratio": "9:16",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/9x16.mp4"
                        },
                        {
                          "aspect_ratio": "1:1",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/1x1.mp4"
                        }
                      ],
                      "poster_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/poster.jpg",
                      "captions_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/captions.vtt"
                    }
                  },
                  "error_message": null,
                  "created_at": "2026-09-15T11:12:30.000Z",
                  "updated_at": "2026-09-15T11:21:48.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:read"
            ]
          }
        ],
        "summary": "Fetch a reel",
        "tags": [
          "Reels"
        ]
      },
      "patch": {
        "description": "Only what is given changes.",
        "operationId": "Reels_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateReelDto"
              },
              "example": {
                "title": "September highlights, v2",
                "config": {
                  "caption_style": "boxed",
                  "music": {
                    "track_id": "bright"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReelDto"
                },
                "example": {
                  "id": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "title": "September highlights",
                  "status": "ready",
                  "config": {
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "caption_style": "bold",
                    "intro": {
                      "title": "What our customers say"
                    },
                    "outro": {
                      "call_to_action": "Try Northwind free for 14 days"
                    },
                    "music": {
                      "track_id": "warm"
                    },
                    "target_duration_ms": 45000
                  },
                  "clips": [
                    {
                      "id": "clp_01K5A7H3E1R5T7V9X1Z3B5D7F9",
                      "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                      "position": 0,
                      "start_ms": 4210,
                      "end_ms": 9950,
                      "source": "model",
                      "reason": "Says the result in one sentence.",
                      "text": "We were live in a week, and honestly our morning rush has never been calmer.",
                      "respondent_name": "Priya Shah",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 48200,
                      "problem": null
                    },
                    {
                      "id": "clp_01K5A7H4F2S6V8X0Z2B4D6F8H0",
                      "submission_id": "sub_01K59ZK3M5P7R9T1V3X5Z7B9D1",
                      "position": 1,
                      "start_ms": 11480,
                      "end_ms": 19020,
                      "source": "operator",
                      "reason": null,
                      "text": "The team noticed the difference in the first week, before I had said a word.",
                      "respondent_name": "Tom Okafor",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K59ZK3M5P7R9T1V3X5Z7B9D1/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 36900,
                      "problem": null
                    }
                  ],
                  "render": {
                    "id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "status": "succeeded",
                    "stage": "finishing",
                    "label": "Done",
                    "done": null,
                    "total": null,
                    "aspect_ratio": null,
                    "paused": false,
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "error_message": null,
                    "estimated_core_seconds": 84,
                    "core_seconds_used": 79.4,
                    "created_at": "2026-09-15T11:20:00.000Z",
                    "started_at": "2026-09-15T11:20:02.000Z",
                    "finished_at": "2026-09-15T11:21:48.000Z"
                  },
                  "output": {
                    "render_id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "variants": [
                      {
                        "aspect_ratio": "9:16",
                        "width": 720,
                        "height": 1280,
                        "duration_ms": 44800,
                        "bytes": 9123456,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      },
                      {
                        "aspect_ratio": "1:1",
                        "width": 720,
                        "height": 720,
                        "duration_ms": 44800,
                        "bytes": 6402118,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      }
                    ],
                    "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "captions_download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/captions.vtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "rendered_at": "2026-09-15T11:21:48.000Z"
                  },
                  "changed_since_render": false,
                  "estimate": {
                    "duration_ms": 44800,
                    "core_seconds": 84,
                    "render_minutes": 2,
                    "plan": "core",
                    "render_minutes_per_month": 60,
                    "render_minutes_used": 7,
                    "blocked": null
                  },
                  "share": {
                    "enabled": true,
                    "status": "live",
                    "urls": {
                      "variants": [
                        {
                          "aspect_ratio": "9:16",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/9x16.mp4"
                        },
                        {
                          "aspect_ratio": "1:1",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/1x1.mp4"
                        }
                      ],
                      "poster_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/poster.jpg",
                      "captions_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/captions.vtt"
                    }
                  },
                  "error_message": null,
                  "created_at": "2026-09-15T11:12:30.000Z",
                  "updated_at": "2026-09-15T11:21:48.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:write"
            ]
          }
        ],
        "summary": "Update a reel’s title or settings",
        "tags": [
          "Reels"
        ]
      },
      "delete": {
        "description": "Gone at once. Its files, and its public copy if it was shared, follow within seconds.",
        "operationId": "Reels_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:write"
            ]
          }
        ],
        "summary": "Delete a reel",
        "tags": [
          "Reels"
        ]
      }
    },
    "/v1/reels/{id}/clips": {
      "put": {
        "description": "Every clip, in play order: how a reorder, a trim or a removal is saved. `start_ms` must be exactly where a word of the testimonial’s transcript starts and `end_ms` exactly where one ends; a **422** names any clip that is not.",
        "operationId": "Reels_replaceClips",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceReelClipsDto"
              },
              "example": {
                "clips": [
                  {
                    "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                    "start_ms": 4210,
                    "end_ms": 9950
                  },
                  {
                    "submission_id": "sub_01K59ZK3M5P7R9T1V3X5Z7B9D1",
                    "start_ms": 11480,
                    "end_ms": 19020
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReelDto"
                },
                "example": {
                  "id": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "title": "September highlights",
                  "status": "ready",
                  "config": {
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "caption_style": "bold",
                    "intro": {
                      "title": "What our customers say"
                    },
                    "outro": {
                      "call_to_action": "Try Northwind free for 14 days"
                    },
                    "music": {
                      "track_id": "warm"
                    },
                    "target_duration_ms": 45000
                  },
                  "clips": [
                    {
                      "id": "clp_01K5A7H3E1R5T7V9X1Z3B5D7F9",
                      "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                      "position": 0,
                      "start_ms": 4210,
                      "end_ms": 9950,
                      "source": "model",
                      "reason": "Says the result in one sentence.",
                      "text": "We were live in a week, and honestly our morning rush has never been calmer.",
                      "respondent_name": "Priya Shah",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 48200,
                      "problem": null
                    },
                    {
                      "id": "clp_01K5A7H4F2S6V8X0Z2B4D6F8H0",
                      "submission_id": "sub_01K59ZK3M5P7R9T1V3X5Z7B9D1",
                      "position": 1,
                      "start_ms": 11480,
                      "end_ms": 19020,
                      "source": "operator",
                      "reason": null,
                      "text": "The team noticed the difference in the first week, before I had said a word.",
                      "respondent_name": "Tom Okafor",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K59ZK3M5P7R9T1V3X5Z7B9D1/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 36900,
                      "problem": null
                    }
                  ],
                  "render": {
                    "id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "status": "succeeded",
                    "stage": "finishing",
                    "label": "Done",
                    "done": null,
                    "total": null,
                    "aspect_ratio": null,
                    "paused": false,
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "error_message": null,
                    "estimated_core_seconds": 84,
                    "core_seconds_used": 79.4,
                    "created_at": "2026-09-15T11:20:00.000Z",
                    "started_at": "2026-09-15T11:20:02.000Z",
                    "finished_at": "2026-09-15T11:21:48.000Z"
                  },
                  "output": {
                    "render_id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "variants": [
                      {
                        "aspect_ratio": "9:16",
                        "width": 720,
                        "height": 1280,
                        "duration_ms": 44800,
                        "bytes": 9123456,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      },
                      {
                        "aspect_ratio": "1:1",
                        "width": 720,
                        "height": 720,
                        "duration_ms": 44800,
                        "bytes": 6402118,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      }
                    ],
                    "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "captions_download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/captions.vtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "rendered_at": "2026-09-15T11:21:48.000Z"
                  },
                  "changed_since_render": false,
                  "estimate": {
                    "duration_ms": 44800,
                    "core_seconds": 84,
                    "render_minutes": 2,
                    "plan": "core",
                    "render_minutes_per_month": 60,
                    "render_minutes_used": 7,
                    "blocked": null
                  },
                  "share": {
                    "enabled": true,
                    "status": "live",
                    "urls": {
                      "variants": [
                        {
                          "aspect_ratio": "9:16",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/9x16.mp4"
                        },
                        {
                          "aspect_ratio": "1:1",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/1x1.mp4"
                        }
                      ],
                      "poster_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/poster.jpg",
                      "captions_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/captions.vtt"
                    }
                  },
                  "error_message": null,
                  "created_at": "2026-09-15T11:12:30.000Z",
                  "updated_at": "2026-09-15T11:21:48.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:write"
            ]
          }
        ],
        "summary": "Save a reel’s clips",
        "tags": [
          "Reels"
        ]
      },
      "post": {
        "description": "At the end, with a suggested span. Up to 12 clips.",
        "operationId": "Reels_addClip",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddReelClipDto"
              },
              "example": {
                "submission_id": "sub_01K59ZK3M5P7R9T1V3X5Z7B9D1"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReelDto"
                },
                "example": {
                  "id": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "title": "September highlights",
                  "status": "ready",
                  "config": {
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "caption_style": "bold",
                    "intro": {
                      "title": "What our customers say"
                    },
                    "outro": {
                      "call_to_action": "Try Northwind free for 14 days"
                    },
                    "music": {
                      "track_id": "warm"
                    },
                    "target_duration_ms": 45000
                  },
                  "clips": [
                    {
                      "id": "clp_01K5A7H3E1R5T7V9X1Z3B5D7F9",
                      "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                      "position": 0,
                      "start_ms": 4210,
                      "end_ms": 9950,
                      "source": "model",
                      "reason": "Says the result in one sentence.",
                      "text": "We were live in a week, and honestly our morning rush has never been calmer.",
                      "respondent_name": "Priya Shah",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 48200,
                      "problem": null
                    },
                    {
                      "id": "clp_01K5A7H4F2S6V8X0Z2B4D6F8H0",
                      "submission_id": "sub_01K59ZK3M5P7R9T1V3X5Z7B9D1",
                      "position": 1,
                      "start_ms": 11480,
                      "end_ms": 19020,
                      "source": "operator",
                      "reason": null,
                      "text": "The team noticed the difference in the first week, before I had said a word.",
                      "respondent_name": "Tom Okafor",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K59ZK3M5P7R9T1V3X5Z7B9D1/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 36900,
                      "problem": null
                    }
                  ],
                  "render": {
                    "id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "status": "succeeded",
                    "stage": "finishing",
                    "label": "Done",
                    "done": null,
                    "total": null,
                    "aspect_ratio": null,
                    "paused": false,
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "error_message": null,
                    "estimated_core_seconds": 84,
                    "core_seconds_used": 79.4,
                    "created_at": "2026-09-15T11:20:00.000Z",
                    "started_at": "2026-09-15T11:20:02.000Z",
                    "finished_at": "2026-09-15T11:21:48.000Z"
                  },
                  "output": {
                    "render_id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "variants": [
                      {
                        "aspect_ratio": "9:16",
                        "width": 720,
                        "height": 1280,
                        "duration_ms": 44800,
                        "bytes": 9123456,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      },
                      {
                        "aspect_ratio": "1:1",
                        "width": 720,
                        "height": 720,
                        "duration_ms": 44800,
                        "bytes": 6402118,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      }
                    ],
                    "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "captions_download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/captions.vtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "rendered_at": "2026-09-15T11:21:48.000Z"
                  },
                  "changed_since_render": false,
                  "estimate": {
                    "duration_ms": 44800,
                    "core_seconds": 84,
                    "render_minutes": 2,
                    "plan": "core",
                    "render_minutes_per_month": 60,
                    "render_minutes_used": 7,
                    "blocked": null
                  },
                  "share": {
                    "enabled": true,
                    "status": "live",
                    "urls": {
                      "variants": [
                        {
                          "aspect_ratio": "9:16",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/9x16.mp4"
                        },
                        {
                          "aspect_ratio": "1:1",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/1x1.mp4"
                        }
                      ],
                      "poster_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/poster.jpg",
                      "captions_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/captions.vtt"
                    }
                  },
                  "error_message": null,
                  "created_at": "2026-09-15T11:12:30.000Z",
                  "updated_at": "2026-09-15T11:21:48.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:write"
            ]
          }
        ],
        "summary": "Add a testimonial to a reel",
        "tags": [
          "Reels"
        ]
      }
    },
    "/v1/reels/{id}/render": {
      "post": {
        "description": "Queues a render in every ratio in `config.aspect_ratios` and returns at once. Poll `GET /v1/reels/{id}` for the stage it has reached; whoever asked is emailed when it is ready.\n\nThe estimated render time must fit in what is left of the plan’s monthly render minutes: otherwise **402** `plan_limit_exceeded`, naming the limit and the plan that raises it. A reel already rendering is a **409**.",
        "operationId": "Reels_render",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7"
          }
        ],
        "responses": {
          "202": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedRenderDto"
                },
                "example": {
                  "render_id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:write"
            ]
          }
        ],
        "summary": "Render a reel",
        "tags": [
          "Reels"
        ]
      }
    },
    "/v1/reels/{id}/share": {
      "post": {
        "description": "Makes a public copy of the last render on the CDN, at addresses that name nothing but a random id (`share.urls`, once `share.status` is `live`). Re-rendering a shared reel replaces the files at the same addresses.",
        "operationId": "Reels_share",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReelDto"
                },
                "example": {
                  "id": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "title": "September highlights",
                  "status": "ready",
                  "config": {
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "caption_style": "bold",
                    "intro": {
                      "title": "What our customers say"
                    },
                    "outro": {
                      "call_to_action": "Try Northwind free for 14 days"
                    },
                    "music": {
                      "track_id": "warm"
                    },
                    "target_duration_ms": 45000
                  },
                  "clips": [
                    {
                      "id": "clp_01K5A7H3E1R5T7V9X1Z3B5D7F9",
                      "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                      "position": 0,
                      "start_ms": 4210,
                      "end_ms": 9950,
                      "source": "model",
                      "reason": "Says the result in one sentence.",
                      "text": "We were live in a week, and honestly our morning rush has never been calmer.",
                      "respondent_name": "Priya Shah",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 48200,
                      "problem": null
                    },
                    {
                      "id": "clp_01K5A7H4F2S6V8X0Z2B4D6F8H0",
                      "submission_id": "sub_01K59ZK3M5P7R9T1V3X5Z7B9D1",
                      "position": 1,
                      "start_ms": 11480,
                      "end_ms": 19020,
                      "source": "operator",
                      "reason": null,
                      "text": "The team noticed the difference in the first week, before I had said a word.",
                      "respondent_name": "Tom Okafor",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K59ZK3M5P7R9T1V3X5Z7B9D1/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 36900,
                      "problem": null
                    }
                  ],
                  "render": {
                    "id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "status": "succeeded",
                    "stage": "finishing",
                    "label": "Done",
                    "done": null,
                    "total": null,
                    "aspect_ratio": null,
                    "paused": false,
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "error_message": null,
                    "estimated_core_seconds": 84,
                    "core_seconds_used": 79.4,
                    "created_at": "2026-09-15T11:20:00.000Z",
                    "started_at": "2026-09-15T11:20:02.000Z",
                    "finished_at": "2026-09-15T11:21:48.000Z"
                  },
                  "output": {
                    "render_id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "variants": [
                      {
                        "aspect_ratio": "9:16",
                        "width": 720,
                        "height": 1280,
                        "duration_ms": 44800,
                        "bytes": 9123456,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      },
                      {
                        "aspect_ratio": "1:1",
                        "width": 720,
                        "height": 720,
                        "duration_ms": 44800,
                        "bytes": 6402118,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      }
                    ],
                    "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "captions_download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/captions.vtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "rendered_at": "2026-09-15T11:21:48.000Z"
                  },
                  "changed_since_render": false,
                  "estimate": {
                    "duration_ms": 44800,
                    "core_seconds": 84,
                    "render_minutes": 2,
                    "plan": "core",
                    "render_minutes_per_month": 60,
                    "render_minutes_used": 7,
                    "blocked": null
                  },
                  "share": {
                    "enabled": true,
                    "status": "live",
                    "urls": {
                      "variants": [
                        {
                          "aspect_ratio": "9:16",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/9x16.mp4"
                        },
                        {
                          "aspect_ratio": "1:1",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/1x1.mp4"
                        }
                      ],
                      "poster_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/poster.jpg",
                      "captions_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/captions.vtt"
                    }
                  },
                  "error_message": null,
                  "created_at": "2026-09-15T11:12:30.000Z",
                  "updated_at": "2026-09-15T11:21:48.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:write"
            ]
          }
        ],
        "summary": "Share a reel",
        "tags": [
          "Reels"
        ]
      },
      "delete": {
        "description": "Deletes the public copy; its addresses stop working within seconds.",
        "operationId": "Reels_unshare",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReelDto"
                },
                "example": {
                  "id": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "title": "September highlights",
                  "status": "ready",
                  "config": {
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "caption_style": "bold",
                    "intro": {
                      "title": "What our customers say"
                    },
                    "outro": {
                      "call_to_action": "Try Northwind free for 14 days"
                    },
                    "music": {
                      "track_id": "warm"
                    },
                    "target_duration_ms": 45000
                  },
                  "clips": [
                    {
                      "id": "clp_01K5A7H3E1R5T7V9X1Z3B5D7F9",
                      "submission_id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                      "position": 0,
                      "start_ms": 4210,
                      "end_ms": 9950,
                      "source": "model",
                      "reason": "Says the result in one sentence.",
                      "text": "We were live in a week, and honestly our morning rush has never been calmer.",
                      "respondent_name": "Priya Shah",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 48200,
                      "problem": null
                    },
                    {
                      "id": "clp_01K5A7H4F2S6V8X0Z2B4D6F8H0",
                      "submission_id": "sub_01K59ZK3M5P7R9T1V3X5Z7B9D1",
                      "position": 1,
                      "start_ms": 11480,
                      "end_ms": 19020,
                      "source": "operator",
                      "reason": null,
                      "text": "The team noticed the difference in the first week, before I had said a word.",
                      "respondent_name": "Tom Okafor",
                      "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/submissions/sub_01K59ZK3M5P7R9T1V3X5Z7B9D1/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                      "recording_duration_ms": 36900,
                      "problem": null
                    }
                  ],
                  "render": {
                    "id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "status": "succeeded",
                    "stage": "finishing",
                    "label": "Done",
                    "done": null,
                    "total": null,
                    "aspect_ratio": null,
                    "paused": false,
                    "aspect_ratios": [
                      "9:16",
                      "1:1"
                    ],
                    "error_message": null,
                    "estimated_core_seconds": 84,
                    "core_seconds_used": 79.4,
                    "created_at": "2026-09-15T11:20:00.000Z",
                    "started_at": "2026-09-15T11:20:02.000Z",
                    "finished_at": "2026-09-15T11:21:48.000Z"
                  },
                  "output": {
                    "render_id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                    "variants": [
                      {
                        "aspect_ratio": "9:16",
                        "width": 720,
                        "height": 1280,
                        "duration_ms": 44800,
                        "bytes": 9123456,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/9x16.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      },
                      {
                        "aspect_ratio": "1:1",
                        "width": 720,
                        "height": 720,
                        "duration_ms": 44800,
                        "bytes": 6402118,
                        "url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                        "download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/1x1.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708"
                      }
                    ],
                    "poster_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/poster.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "captions_download_url": "https://4f2b9e7c1d.r2.cloudflarestorage.com/akteora-media/orgs/org_01K4ZT8N2M6Q9R3V5X7B1D3F5H/reels/rel_01K5A7H1C9P3R5T7V9X1Z3B5D7/job_01K5A7J4F2K6M8P0R2T4V6X8Z0/captions.vtt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260915T113000Z&X-Amz-Expires=5400&X-Amz-SignedHeaders=host&X-Amz-Signature=3f1e9a6c2b7d4e8f0a1b2c3d4e5f60718293a4b5c6d7e8f901a2b3c4d5e6f708",
                    "rendered_at": "2026-09-15T11:21:48.000Z"
                  },
                  "changed_since_render": false,
                  "estimate": {
                    "duration_ms": 44800,
                    "core_seconds": 84,
                    "render_minutes": 2,
                    "plan": "core",
                    "render_minutes_per_month": 60,
                    "render_minutes_used": 7,
                    "blocked": null
                  },
                  "share": {
                    "enabled": true,
                    "status": "live",
                    "urls": {
                      "variants": [
                        {
                          "aspect_ratio": "9:16",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/9x16.mp4"
                        },
                        {
                          "aspect_ratio": "1:1",
                          "url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/1x1.mp4"
                        }
                      ],
                      "poster_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/poster.jpg",
                      "captions_url": "https://cdn.akteora.com/r/8mzq3t6vb2nc9wk4hp7x/captions.vtt"
                    }
                  },
                  "error_message": null,
                  "created_at": "2026-09-15T11:12:30.000Z",
                  "updated_at": "2026-09-15T11:21:48.000Z"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          },
          {
            "apiKey": [
              "reels:write"
            ]
          }
        ],
        "summary": "Stop sharing a reel",
        "tags": [
          "Reels"
        ]
      }
    },
    "/v1/billing": {
      "get": {
        "description": "The plan and what it includes, whether a payment is overdue (`access`: `full`, `grace` or `read_only`, with the dates), the subscription behind it, and every plan as sold. A read-only account keeps everything it collected; it cannot create anything new until it is paid.",
        "operationId": "Billing_get",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingDto"
                },
                "example": {
                  "plan": "core",
                  "features": [
                    "widget_attribution_removal",
                    "media_exports",
                    "api_access",
                    "custom_domain"
                  ],
                  "access": "full",
                  "past_due_since": null,
                  "read_only_from": null,
                  "subscription": {
                    "status": "active",
                    "plan": "core",
                    "current_period_end": "2026-10-01T00:00:00.000Z",
                    "cancels_at": null
                  },
                  "available": true,
                  "plans": [
                    {
                      "plan": "free",
                      "name": "Free",
                      "price_cents": 0,
                      "currency": "USD",
                      "quotas": {
                        "brands": 1,
                        "submissions_per_month": 15,
                        "render_seconds_per_month": 0,
                        "storage_bytes": 1000000000,
                        "exports_per_month": 10
                      },
                      "features": []
                    },
                    {
                      "plan": "starter",
                      "name": "Starter",
                      "price_cents": 2900,
                      "currency": "USD",
                      "quotas": {
                        "brands": 3,
                        "submissions_per_month": 100,
                        "render_seconds_per_month": 600,
                        "storage_bytes": 20000000000,
                        "exports_per_month": 50
                      },
                      "features": [
                        "widget_attribution_removal",
                        "media_exports"
                      ]
                    },
                    {
                      "plan": "core",
                      "name": "Core",
                      "price_cents": 7900,
                      "currency": "USD",
                      "quotas": {
                        "brands": 15,
                        "submissions_per_month": 500,
                        "render_seconds_per_month": 3600,
                        "storage_bytes": 100000000000,
                        "exports_per_month": 200
                      },
                      "features": [
                        "widget_attribution_removal",
                        "media_exports",
                        "api_access",
                        "custom_domain"
                      ]
                    },
                    {
                      "plan": "plus",
                      "name": "Plus",
                      "price_cents": 14900,
                      "currency": "USD",
                      "quotas": {
                        "brands": null,
                        "submissions_per_month": 2000,
                        "render_seconds_per_month": 12000,
                        "storage_bytes": 500000000000,
                        "exports_per_month": 1000
                      },
                      "features": [
                        "widget_attribution_removal",
                        "media_exports",
                        "api_access",
                        "custom_domain",
                        "white_label",
                        "sub_accounts",
                        "priority_render"
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "The organization’s plan and payment state",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/billing/usage": {
      "get": {
        "description": "Each quota for the current calendar month (UTC) — or, for brands and storage, as it stands — against the plan’s allowance, flagged `approaching` from 80% and `reached` at 100%, with up to twelve months of history.",
        "operationId": "Billing_usage",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageDto"
                },
                "example": {
                  "plan": "core",
                  "period_start": "2026-09-01T00:00:00.000Z",
                  "period_ends_at": "2026-10-01T00:00:00.000Z",
                  "quotas": [
                    {
                      "quota": "brands",
                      "used": 2,
                      "allowed": 15,
                      "level": "ok",
                      "resets_at": null
                    },
                    {
                      "quota": "submissions_per_month",
                      "used": 412,
                      "allowed": 500,
                      "level": "approaching",
                      "resets_at": "2026-10-01T00:00:00.000Z"
                    },
                    {
                      "quota": "render_seconds_per_month",
                      "used": 420,
                      "allowed": 3600,
                      "level": "ok",
                      "resets_at": "2026-10-01T00:00:00.000Z"
                    },
                    {
                      "quota": "storage_bytes",
                      "used": 18400000000,
                      "allowed": 100000000000,
                      "level": "ok",
                      "resets_at": null
                    },
                    {
                      "quota": "exports_per_month",
                      "used": 3,
                      "allowed": 200,
                      "level": "ok",
                      "resets_at": "2026-10-01T00:00:00.000Z"
                    }
                  ],
                  "history": [
                    {
                      "period_start": "2026-09-01T00:00:00.000Z",
                      "submissions": 412,
                      "render_seconds": 420,
                      "exports": 3
                    },
                    {
                      "period_start": "2026-08-01T00:00:00.000Z",
                      "submissions": 388,
                      "render_seconds": 1920,
                      "exports": 9
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Usage against the plan",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/billing/checkout": {
      "post": {
        "description": "Returns the address of a Paddle-hosted checkout. Send the browser there; after paying, Paddle returns it to the dashboard’s billing page, and the plan changes as soon as Paddle confirms the payment — usually within seconds. **409** when the organization already has a subscription (change its plan instead) or this server takes no payments.",
        "operationId": "Billing_checkout",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckoutRequestDto"
              },
              "example": {
                "plan": "core"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RedirectUrlDto"
                },
                "example": {
                  "url": "https://customer-portal.paddle.com/cpl_01k5a9m2q8wj4t6v8x0y2a4c6e"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Start a checkout for a paid plan",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/billing/portal": {
      "post": {
        "description": "A short-lived address of Paddle’s customer portal: the payment method, invoices and receipts, and cancelling. Ask for a new one each time; do not store it.",
        "operationId": "Billing_portal",
        "parameters": [],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RedirectUrlDto"
                },
                "example": {
                  "url": "https://customer-portal.paddle.com/cpl_01k5a9m2q8wj4t6v8x0y2a4c6e"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Open the billing portal",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/billing/change-plan": {
      "post": {
        "description": "Moves the subscription to another paid plan at once, prorated; or, for `free`, cancels it at the end of the period already paid for. A lower plan never removes anything: it only limits what can be added from then on. The plan in the response changes once Paddle confirms, usually within seconds — read `GET /v1/billing` again.",
        "operationId": "Billing_changePlan",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePlanRequestDto"
              },
              "example": {
                "plan": "plus"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingDto"
                },
                "example": {
                  "plan": "core",
                  "features": [
                    "widget_attribution_removal",
                    "media_exports",
                    "api_access",
                    "custom_domain"
                  ],
                  "access": "full",
                  "past_due_since": null,
                  "read_only_from": null,
                  "subscription": {
                    "status": "active",
                    "plan": "core",
                    "current_period_end": "2026-10-01T00:00:00.000Z",
                    "cancels_at": null
                  },
                  "available": true,
                  "plans": [
                    {
                      "plan": "free",
                      "name": "Free",
                      "price_cents": 0,
                      "currency": "USD",
                      "quotas": {
                        "brands": 1,
                        "submissions_per_month": 15,
                        "render_seconds_per_month": 0,
                        "storage_bytes": 1000000000,
                        "exports_per_month": 10
                      },
                      "features": []
                    },
                    {
                      "plan": "starter",
                      "name": "Starter",
                      "price_cents": 2900,
                      "currency": "USD",
                      "quotas": {
                        "brands": 3,
                        "submissions_per_month": 100,
                        "render_seconds_per_month": 600,
                        "storage_bytes": 20000000000,
                        "exports_per_month": 50
                      },
                      "features": [
                        "widget_attribution_removal",
                        "media_exports"
                      ]
                    },
                    {
                      "plan": "core",
                      "name": "Core",
                      "price_cents": 7900,
                      "currency": "USD",
                      "quotas": {
                        "brands": 15,
                        "submissions_per_month": 500,
                        "render_seconds_per_month": 3600,
                        "storage_bytes": 100000000000,
                        "exports_per_month": 200
                      },
                      "features": [
                        "widget_attribution_removal",
                        "media_exports",
                        "api_access",
                        "custom_domain"
                      ]
                    },
                    {
                      "plan": "plus",
                      "name": "Plus",
                      "price_cents": 14900,
                      "currency": "USD",
                      "quotas": {
                        "brands": null,
                        "submissions_per_month": 2000,
                        "render_seconds_per_month": 12000,
                        "storage_bytes": 500000000000,
                        "exports_per_month": 1000
                      },
                      "features": [
                        "widget_attribution_removal",
                        "media_exports",
                        "api_access",
                        "custom_domain",
                        "white_label",
                        "sub_accounts",
                        "priority_render"
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Change plan",
        "tags": [
          "Billing"
        ]
      }
    },
    "/v1/api-keys": {
      "get": {
        "description": "Every key that has not been revoked, live and test, newest first — each with its prefix, scopes and when it was last used (to the minute). The keys themselves are never returned. Owners and admins only; not available to API keys.",
        "operationId": "ApiKeys_list",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiKeyCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "key_01K5B1D3F5H7K9M1P3R5T7V9X1",
                      "name": "Shopify sync",
                      "prefix": "rk_live_7Hq2",
                      "mode": "live",
                      "scopes": [
                        "submissions:read",
                        "submissions:moderate"
                      ],
                      "created_at": "2026-09-01T10:12:44.000Z",
                      "last_used_at": "2026-09-15T11:58:00.000Z",
                      "expires_at": null
                    },
                    {
                      "id": "key_01K5B1E4G6J8M0P2R4T6W8Y0A2",
                      "name": "Local development",
                      "prefix": "rk_test_Vb8c",
                      "mode": "test",
                      "scopes": [
                        "brands:read",
                        "links:write",
                        "submissions:read",
                        "webhooks:manage"
                      ],
                      "created_at": "2026-09-14T16:03:21.000Z",
                      "last_used_at": null,
                      "expires_at": "2026-12-31T00:00:00.000Z"
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "List API keys",
        "tags": [
          "API keys"
        ]
      },
      "post": {
        "description": "Returns the whole key in `key` — **once**. Only its hash is stored, so it cannot be shown again: store it in your secret manager now. A `test` key works on the organization’s test-mode sandbox and can never read or change live data.\n\nNeeds a plan with API access (402 `api_access` otherwise). Owners and admins only; not available to API keys. Audited.",
        "operationId": "ApiKeys_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApiKeyDto"
              },
              "example": {
                "name": "Shopify sync",
                "mode": "live",
                "scopes": [
                  "submissions:read",
                  "submissions:moderate"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedApiKeyDto"
                },
                "example": {
                  "id": "key_01K5B1D3F5H7K9M1P3R5T7V9X1",
                  "name": "Shopify sync",
                  "prefix": "rk_live_7Hq2",
                  "mode": "live",
                  "scopes": [
                    "submissions:read",
                    "submissions:moderate"
                  ],
                  "created_at": "2026-09-15T12:00:00.000Z",
                  "last_used_at": null,
                  "expires_at": null,
                  "key": "rk_live_7Hq2mV9xT4bN8cR1wK6pZ3sD5fG0jL2y"
                }
              }
            }
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Create an API key",
        "tags": [
          "API keys"
        ]
      }
    },
    "/v1/api-keys/{id}": {
      "delete": {
        "description": "Immediate and permanent: the next request made with the key gets 401. Audited. Owners and admins only; not available to API keys.",
        "operationId": "ApiKeys_revoke",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "key_01K5B1D3F5H7K9M1P3R5T7V9X1"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "session": []
          }
        ],
        "summary": "Revoke an API key",
        "tags": [
          "API keys"
        ]
      }
    },
    "/v1/webhooks": {
      "get": {
        "description": "Newest first. `status` is `failing` while every attempt since `failing_since` has failed, and `disabled` once that has lasted 24 hours.",
        "operationId": "Webhooks_list",
        "parameters": [
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpointCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "whe_01K5B2E4G6J8M0P2R4T6W8Y0A2",
                      "url": "https://hooks.northwind.example/akteora",
                      "events": [
                        "submission.created",
                        "submission.approved"
                      ],
                      "status": "active",
                      "failing_since": null,
                      "disabled_at": null,
                      "created_at": "2026-09-01T10:12:44.000Z"
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": [
              "webhooks:manage"
            ]
          },
          {
            "session": []
          }
        ],
        "summary": "List webhook endpoints",
        "tags": [
          "Webhooks"
        ]
      },
      "post": {
        "description": "Every event of the listed types is POSTed to `url`, signed with the endpoint’s secret. The secret is in this response — **once**: store it now. `url` must be `https://` and reach the public internet. Events from a test-mode key’s actions go only to endpoints created with a test-mode key, and live events only to live endpoints. Audited.",
        "operationId": "Webhooks_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebhookDto"
              },
              "example": {
                "url": "https://hooks.northwind.example/akteora",
                "events": [
                  "submission.created",
                  "submission.approved"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedWebhookDto"
                },
                "example": {
                  "id": "whe_01K5B2E4G6J8M0P2R4T6W8Y0A2",
                  "url": "https://hooks.northwind.example/akteora",
                  "events": [
                    "submission.created",
                    "submission.approved"
                  ],
                  "status": "active",
                  "failing_since": null,
                  "disabled_at": null,
                  "created_at": "2026-09-15T12:00:00.000Z",
                  "secret": "whsec_Q0h8v3kZr5pN2wYc7tL9xB4mF6aJ1dG8sE3uK0iV7qT"
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": [
              "webhooks:manage"
            ]
          },
          {
            "session": []
          }
        ],
        "summary": "Create a webhook endpoint",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhooks/{id}": {
      "delete": {
        "description": "Nothing more is sent to it, including retries still waiting. Its delivery log goes with it. Audited.",
        "operationId": "Webhooks_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "whe_01K5B2E4G6J8M0P2R4T6W8Y0A2"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        },
        "security": [
          {
            "apiKey": [
              "webhooks:manage"
            ]
          },
          {
            "session": []
          }
        ],
        "summary": "Delete a webhook endpoint",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhooks/{id}/test": {
      "post": {
        "description": "Queues a sample event — `type`, or the endpoint’s first event type — signed and retried exactly like a real one. Its ids refer to nothing. Returns the delivery; watch it arrive in the delivery log. 409 when the endpoint is disabled.",
        "operationId": "Webhooks_sendTest",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "whe_01K5B2E4G6J8M0P2R4T6W8Y0A2"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendTestWebhookDto"
              },
              "example": {
                "type": "submission.approved"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveryDto"
                },
                "example": {
                  "id": "whd_01K5B4G6J8M0P2R4T6W8Y0A2C4",
                  "endpoint_id": "whe_01K5B2E4G6J8M0P2R4T6W8Y0A2",
                  "event_id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                  "event_type": "submission.approved",
                  "status": "pending",
                  "next_attempt_at": "2026-09-15T12:00:00.000Z",
                  "delivered_at": null,
                  "failure_reason": null,
                  "replay_of": "whd_01K5B3F5H7K9N1Q3S5V7X9Z1B3",
                  "created_at": "2026-09-15T12:00:00.000Z",
                  "body": "{\"id\":\"evt_01K5B3F4A6C8E0G2J4M6P8R0T2\",\"type\":\"submission.approved\",\"api_version\":\"v1\",\"created_at\":\"2026-09-15T11:02:55.000Z\",\"org_id\":\"org_01K4ZT8N2M6Q9R3V5X7B1D3F5H\",\"mode\":\"live\",\"data\":{\"id\":\"sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E\",\"brand_id\":\"brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK\",\"link_id\":\"lnk_01K59Y9C4XG5N0J8S2V7A1B3DE\",\"kind\":\"video\",\"status\":\"ready\",\"is_approved\":true,\"is_public\":true,\"duration_ms\":48200,\"created_at\":\"2026-09-15T09:41:07.312Z\"}}",
                  "attempts": []
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": [
              "webhooks:manage"
            ]
          },
          {
            "session": []
          }
        ],
        "summary": "Send a test event",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhooks/{id}/deliveries": {
      "get": {
        "description": "Newest first, each with the exact body sent and every attempt made: the request headers (signature included), the response status, the first kilobyte of the response body, and how long it took. Kept until the endpoint is deleted.",
        "operationId": "Webhooks_deliveries",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "whe_01K5B2E4G6J8M0P2R4T6W8Y0A2"
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "schema": {
              "minimum": 1,
              "maximum": 100,
              "type": "integer"
            }
          },
          {
            "name": "cursor",
            "required": false,
            "in": "query",
            "schema": {
              "maxLength": 512,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveryCollectionDto"
                },
                "example": {
                  "data": [
                    {
                      "id": "whd_01K5B3F5H7K9N1Q3S5V7X9Z1B3",
                      "endpoint_id": "whe_01K5B2E4G6J8M0P2R4T6W8Y0A2",
                      "event_id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                      "event_type": "submission.approved",
                      "status": "delivered",
                      "next_attempt_at": null,
                      "delivered_at": "2026-09-15T11:03:25.087Z",
                      "failure_reason": null,
                      "replay_of": null,
                      "created_at": "2026-09-15T11:02:55.100Z",
                      "body": "{\"id\":\"evt_01K5B3F4A6C8E0G2J4M6P8R0T2\",\"type\":\"submission.approved\",\"api_version\":\"v1\",\"created_at\":\"2026-09-15T11:02:55.000Z\",\"org_id\":\"org_01K4ZT8N2M6Q9R3V5X7B1D3F5H\",\"mode\":\"live\",\"data\":{\"id\":\"sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E\",\"brand_id\":\"brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK\",\"link_id\":\"lnk_01K59Y9C4XG5N0J8S2V7A1B3DE\",\"kind\":\"video\",\"status\":\"ready\",\"is_approved\":true,\"is_public\":true,\"duration_ms\":48200,\"created_at\":\"2026-09-15T09:41:07.312Z\"}}",
                      "attempts": [
                        {
                          "number": 1,
                          "attempted_at": "2026-09-15T11:02:55.140Z",
                          "request_headers": {
                            "content-type": "application/json",
                            "user-agent": "Akteora-Webhooks/1 (+https://docs.akteora.com/webhooks)",
                            "x-signature": "t=1757937745,v1=9c79bae637f8f0be721eae228b88a1cb64ec2090c5cfedee5788073bd788b830",
                            "x-akteora-event": "submission.approved",
                            "x-akteora-event-id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                            "x-akteora-delivery": "whd_01K5B3F5H7K9N1Q3S5V7X9Z1B3",
                            "x-akteora-attempt": "1"
                          },
                          "response_status": 503,
                          "response_body": "<html><body><h1>503 Service Unavailable</h1></body></html>",
                          "duration_ms": 212,
                          "error": null
                        },
                        {
                          "number": 2,
                          "attempted_at": "2026-09-15T11:03:25.000Z",
                          "request_headers": {
                            "content-type": "application/json",
                            "user-agent": "Akteora-Webhooks/1 (+https://docs.akteora.com/webhooks)",
                            "x-signature": "t=1757937775,v1=6d22e6a39b3ae519ad77131bf404670d8f324e7e3ed9298253dbea973fe3cdf5",
                            "x-akteora-event": "submission.approved",
                            "x-akteora-event-id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                            "x-akteora-delivery": "whd_01K5B3F5H7K9N1Q3S5V7X9Z1B3",
                            "x-akteora-attempt": "2"
                          },
                          "response_status": 200,
                          "response_body": "{\"received\":true}",
                          "duration_ms": 87,
                          "error": null
                        }
                      ]
                    }
                  ],
                  "next_cursor": null
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": [
              "webhooks:manage"
            ]
          },
          {
            "session": []
          }
        ],
        "summary": "List an endpoint’s deliveries",
        "tags": [
          "Webhooks"
        ]
      }
    },
    "/v1/webhooks/deliveries/{id}/replay": {
      "post": {
        "description": "Sends the identical body again — same bytes, same event `id` — as a new delivery with its own attempts and a fresh signature. For a receiver that was fixed after the retries ran out. 409 when the endpoint is disabled. Audited.",
        "operationId": "Webhooks_replay",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "example": "whd_01K5B3F5H7K9N1Q3S5V7X9Z1B3"
          }
        ],
        "responses": {
          "202": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveryDto"
                },
                "example": {
                  "id": "whd_01K5B4G6J8M0P2R4T6W8Y0A2C4",
                  "endpoint_id": "whe_01K5B2E4G6J8M0P2R4T6W8Y0A2",
                  "event_id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                  "event_type": "submission.approved",
                  "status": "pending",
                  "next_attempt_at": "2026-09-15T12:00:00.000Z",
                  "delivered_at": null,
                  "failure_reason": null,
                  "replay_of": "whd_01K5B3F5H7K9N1Q3S5V7X9Z1B3",
                  "created_at": "2026-09-15T12:00:00.000Z",
                  "body": "{\"id\":\"evt_01K5B3F4A6C8E0G2J4M6P8R0T2\",\"type\":\"submission.approved\",\"api_version\":\"v1\",\"created_at\":\"2026-09-15T11:02:55.000Z\",\"org_id\":\"org_01K4ZT8N2M6Q9R3V5X7B1D3F5H\",\"mode\":\"live\",\"data\":{\"id\":\"sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E\",\"brand_id\":\"brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK\",\"link_id\":\"lnk_01K59Y9C4XG5N0J8S2V7A1B3DE\",\"kind\":\"video\",\"status\":\"ready\",\"is_approved\":true,\"is_public\":true,\"duration_ms\":48200,\"created_at\":\"2026-09-15T09:41:07.312Z\"}}",
                  "attempts": []
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKey": [
              "webhooks:manage"
            ]
          },
          {
            "session": []
          }
        ],
        "summary": "Replay a delivery",
        "tags": [
          "Webhooks"
        ]
      }
    }
  },
  "info": {
    "title": "Akteora API",
    "description": "Collect user-generated testimonials via shareable links and compile them into reels.\n\nThere is no private API surface. The Akteora dashboard consumes exactly these routes with\nexactly these shapes — if something is possible in the dashboard, it is possible for you.\n\n## Authentication\n\nSend an API key as `Authorization: Bearer rk_live_…`. Keys are made in the dashboard, under\nDevelopers → API keys, and each carries scopes: every route below names the one it needs, and\na key without it gets `403 insufficient_scope`. A few routes — billing, members, API keys\nthemselves — are for a signed-in person only and refuse every key.\n\n`rk_test_…` keys work the same way on a separate test-mode sandbox: the same routes and\nbehaviour, none of the live data, and small allowances of their own.\n\n## Errors\n\nErrors are RFC 9457 `application/problem+json` and always carry a `request_id`. Quote that\nvalue in any support request; it identifies the exact call in our logs.\n\nGuides — quickstart, pagination, idempotency, rate limits, webhooks and their signatures — are\nat https://docs.akteora.com.",
    "version": "1.0.0",
    "contact": {}
  },
  "tags": [],
  "servers": [
    {
      "url": "https://api.akteora.com",
      "description": "Production"
    }
  ],
  "components": {
    "securitySchemes": {
      "session": {
        "type": "apiKey",
        "in": "cookie",
        "name": "akteora.session_token",
        "description": "The dashboard’s signed-in session."
      },
      "apiKey": {
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "type": "http",
        "description": "An API key — `rk_live_…`, or `rk_test_…` for test mode. Each route names the scope it needs."
      }
    },
    "schemas": {
      "SignUpDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 320,
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          },
          "password": {
            "type": "string",
            "minLength": 12,
            "maxLength": 72,
            "description": "At least 12 characters. No composition rules."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "organization_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          }
        },
        "required": [
          "email",
          "password",
          "name"
        ]
      },
      "SessionResponseDto": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "email": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "email_verified": {
                "type": "boolean"
              },
              "image": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id",
              "email",
              "name",
              "email_verified",
              "image"
            ]
          },
          "current_organization": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "plan": {
                    "type": "string",
                    "enum": [
                      "free",
                      "starter",
                      "core",
                      "plus"
                    ]
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "owner",
                      "admin",
                      "editor",
                      "viewer"
                    ],
                    "description": "Organization role, most privileged first."
                  }
                },
                "required": [
                  "id",
                  "name",
                  "slug",
                  "plan",
                  "role"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "user",
          "current_organization"
        ]
      },
      "SignInDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 320,
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          },
          "password": {
            "type": "string",
            "minLength": 1,
            "maxLength": 72
          }
        },
        "required": [
          "email",
          "password"
        ]
      },
      "RequestPasswordResetDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 320,
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          }
        },
        "required": [
          "email"
        ]
      },
      "AcknowledgementDto": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "ok"
        ]
      },
      "ResetPasswordDto": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          },
          "password": {
            "type": "string",
            "minLength": 12,
            "maxLength": 72,
            "description": "At least 12 characters. No composition rules."
          }
        },
        "required": [
          "token",
          "password"
        ]
      },
      "VerifyEmailDto": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          }
        },
        "required": [
          "token"
        ]
      },
      "SocialProvidersResponseDto": {
        "type": "object",
        "properties": {
          "providers": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "google",
                "github"
              ],
              "description": "An OAuth provider the dashboard can sign in with."
            }
          }
        },
        "required": [
          "providers"
        ]
      },
      "SocialSignInDto": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "google",
              "github"
            ],
            "description": "An OAuth provider the dashboard can sign in with."
          },
          "redirect_path": {
            "type": "string",
            "maxLength": 2000,
            "pattern": "^\\/(?!\\/)",
            "description": "A same-origin dashboard path, such as /inbox."
          }
        },
        "required": [
          "provider"
        ]
      },
      "SocialRedirectDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The provider's authorization URL to send the browser to."
          }
        },
        "required": [
          "url"
        ]
      },
      "MeResponseDto": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "email": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "email_verified": {
                "type": "boolean"
              },
              "image": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id",
              "email",
              "name",
              "email_verified",
              "image"
            ]
          },
          "organizations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                },
                "plan": {
                  "type": "string",
                  "enum": [
                    "free",
                    "starter",
                    "core",
                    "plus"
                  ]
                },
                "role": {
                  "type": "string",
                  "enum": [
                    "owner",
                    "admin",
                    "editor",
                    "viewer"
                  ],
                  "description": "Organization role, most privileged first."
                }
              },
              "required": [
                "id",
                "name",
                "slug",
                "plan",
                "role"
              ]
            }
          },
          "current_organization": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "plan": {
                    "type": "string",
                    "enum": [
                      "free",
                      "starter",
                      "core",
                      "plus"
                    ]
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "owner",
                      "admin",
                      "editor",
                      "viewer"
                    ],
                    "description": "Organization role, most privileged first."
                  }
                },
                "required": [
                  "id",
                  "name",
                  "slug",
                  "plan",
                  "role"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "role": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "owner",
                  "admin",
                  "editor",
                  "viewer"
                ],
                "description": "Organization role, most privileged first."
              },
              {
                "type": "null"
              }
            ]
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "user",
          "organizations",
          "current_organization",
          "role",
          "permissions"
        ]
      },
      "AuthMethodsResponseDto": {
        "type": "object",
        "properties": {
          "methods": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "method": {
                  "type": "string",
                  "enum": [
                    "credential",
                    "google",
                    "github"
                  ]
                },
                "created_at": {
                  "type": "string"
                },
                "can_disconnect": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "method",
                "created_at",
                "can_disconnect"
              ]
            }
          },
          "password_set": {
            "type": "boolean"
          },
          "connectable": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "google",
                "github"
              ],
              "description": "An OAuth provider the dashboard can sign in with."
            }
          }
        },
        "required": [
          "methods",
          "password_set",
          "connectable"
        ]
      },
      "MemberCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "user_id": {
                  "type": "string"
                },
                "role": {
                  "type": "string",
                  "enum": [
                    "owner",
                    "admin",
                    "editor",
                    "viewer"
                  ],
                  "description": "Organization role, most privileged first."
                },
                "created_at": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "user_id",
                "role",
                "created_at"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "UpdateMemberRoleDto": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "editor",
              "viewer"
            ],
            "description": "Organization role, most privileged first."
          }
        },
        "required": [
          "role"
        ]
      },
      "MemberSummaryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "editor",
              "viewer"
            ],
            "description": "Organization role, most privileged first."
          },
          "created_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "user_id",
          "role",
          "created_at"
        ]
      },
      "SetActiveOrganizationDto": {
        "type": "object",
        "properties": {
          "organization_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          }
        },
        "required": [
          "organization_id"
        ]
      },
      "CreateInvitationDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 320,
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "editor",
              "viewer"
            ],
            "description": "Organization role, most privileged first."
          }
        },
        "required": [
          "email",
          "role"
        ]
      },
      "InvitationSummaryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "owner",
              "admin",
              "editor",
              "viewer"
            ],
            "description": "Organization role, most privileged first."
          },
          "expires_at": {
            "type": "string"
          },
          "accepted_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "email",
          "role",
          "expires_at",
          "accepted_at"
        ]
      },
      "InvitationCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "role": {
                  "type": "string",
                  "enum": [
                    "owner",
                    "admin",
                    "editor",
                    "viewer"
                  ],
                  "description": "Organization role, most privileged first."
                },
                "expires_at": {
                  "type": "string"
                },
                "accepted_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id",
                "email",
                "role",
                "expires_at",
                "accepted_at"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "AcceptInvitationDto": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 1,
            "maxLength": 512
          }
        },
        "required": [
          "token"
        ]
      },
      "AcceptedInvitationDto": {
        "type": "object",
        "properties": {
          "organization_id": {
            "type": "string"
          }
        },
        "required": [
          "organization_id"
        ]
      },
      "BrandCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                },
                "primary_color": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "logo_asset_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "logo_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "is_public": {
                  "type": "boolean"
                },
                "public_wall_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "is_default": {
                  "type": "boolean"
                },
                "submission_count": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "created_at": {
                  "type": "string"
                },
                "updated_at": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name",
                "slug",
                "primary_color",
                "logo_asset_id",
                "logo_url",
                "is_public",
                "public_wall_url",
                "is_default",
                "submission_count",
                "created_at",
                "updated_at"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "CreateBrandDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "slug": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "primary_color": {
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          },
          "is_public": {
            "type": "boolean"
          }
        },
        "required": [
          "name"
        ]
      },
      "BrandDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "primary_color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "logo_asset_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "logo_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_public": {
            "type": "boolean"
          },
          "public_wall_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_default": {
            "type": "boolean"
          },
          "submission_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "primary_color",
          "logo_asset_id",
          "logo_url",
          "is_public",
          "public_wall_url",
          "is_default",
          "submission_count",
          "created_at",
          "updated_at"
        ]
      },
      "UpdateBrandDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "slug": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "primary_color": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "logo_asset_id": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ]
          },
          "is_public": {
            "type": "boolean"
          },
          "is_default": {
            "type": "boolean",
            "const": true
          }
        }
      },
      "LogoUploadRequestDto": {
        "type": "object",
        "properties": {
          "content_type": {
            "type": "string",
            "enum": [
              "image/png",
              "image/jpeg",
              "image/webp",
              "image/svg+xml"
            ]
          },
          "content_length": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2097152
          }
        },
        "required": [
          "content_type",
          "content_length"
        ]
      },
      "LogoUploadResponseDto": {
        "type": "object",
        "properties": {
          "asset_id": {
            "type": "string"
          },
          "upload_url": {
            "type": "string"
          },
          "expires_at": {
            "type": "string"
          },
          "required_headers": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "required": [
          "asset_id",
          "upload_url",
          "expires_at",
          "required_headers"
        ]
      },
      "LinkCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "intro_text": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "thank_you_text": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "redirect_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "prompts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64
                      },
                      "text": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 500
                      },
                      "max_seconds": {
                        "default": 90,
                        "type": "integer",
                        "minimum": 5,
                        "maximum": 180
                      }
                    },
                    "required": [
                      "id",
                      "text"
                    ]
                  }
                },
                "allow_video": {
                  "type": "boolean"
                },
                "allow_audio": {
                  "type": "boolean"
                },
                "allow_text": {
                  "type": "boolean"
                },
                "require_name": {
                  "type": "boolean"
                },
                "require_email": {
                  "type": "boolean"
                },
                "consent_text": {
                  "type": "string"
                },
                "consent_version": {
                  "type": "string"
                },
                "branding": {
                  "type": "object",
                  "properties": {
                    "primary_color": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^#[0-9a-fA-F]{6}$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "logo_asset_id": {
                      "anyOf": [
                        {
                          "type": "string",
                          "maxLength": 64
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "show_attribution": {
                      "type": "boolean"
                    }
                  }
                },
                "is_active": {
                  "type": "boolean"
                },
                "expires_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "max_submissions": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "submission_count": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "created_at": {
                  "type": "string"
                },
                "updated_at": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "brand_id",
                "slug",
                "url",
                "title",
                "intro_text",
                "thank_you_text",
                "redirect_url",
                "prompts",
                "allow_video",
                "allow_audio",
                "allow_text",
                "require_name",
                "require_email",
                "consent_text",
                "consent_version",
                "branding",
                "is_active",
                "expires_at",
                "max_submissions",
                "submission_count",
                "created_at",
                "updated_at"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "CreateLinkDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "intro_text": {
            "type": "string",
            "maxLength": 2000
          },
          "thank_you_text": {
            "type": "string",
            "maxLength": 2000
          },
          "redirect_url": {
            "type": "string",
            "maxLength": 2000,
            "format": "uri"
          },
          "prompts": {
            "minItems": 1,
            "maxItems": 5,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                "text": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                },
                "max_seconds": {
                  "default": 90,
                  "type": "integer",
                  "minimum": 5,
                  "maximum": 180
                }
              },
              "required": [
                "id",
                "text"
              ]
            }
          },
          "allow_video": {
            "default": true,
            "type": "boolean"
          },
          "allow_audio": {
            "default": true,
            "type": "boolean"
          },
          "allow_text": {
            "default": true,
            "type": "boolean"
          },
          "require_name": {
            "default": true,
            "type": "boolean"
          },
          "require_email": {
            "default": false,
            "type": "boolean"
          },
          "consent_text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 5000
          },
          "consent_version": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "branding": {
            "type": "object",
            "properties": {
              "primary_color": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^#[0-9a-fA-F]{6}$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "logo_asset_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 64
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "show_attribution": {
                "type": "boolean"
              }
            }
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          },
          "max_submissions": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100000
          }
        },
        "required": [
          "title",
          "prompts",
          "consent_text",
          "consent_version"
        ]
      },
      "LinkDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "intro_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "thank_you_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "redirect_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "prompts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                "text": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                },
                "max_seconds": {
                  "default": 90,
                  "type": "integer",
                  "minimum": 5,
                  "maximum": 180
                }
              },
              "required": [
                "id",
                "text"
              ]
            }
          },
          "allow_video": {
            "type": "boolean"
          },
          "allow_audio": {
            "type": "boolean"
          },
          "allow_text": {
            "type": "boolean"
          },
          "require_name": {
            "type": "boolean"
          },
          "require_email": {
            "type": "boolean"
          },
          "consent_text": {
            "type": "string"
          },
          "consent_version": {
            "type": "string"
          },
          "branding": {
            "type": "object",
            "properties": {
              "primary_color": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^#[0-9a-fA-F]{6}$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "logo_asset_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 64
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "show_attribution": {
                "type": "boolean"
              }
            }
          },
          "is_active": {
            "type": "boolean"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "max_submissions": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "submission_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "brand_id",
          "slug",
          "url",
          "title",
          "intro_text",
          "thank_you_text",
          "redirect_url",
          "prompts",
          "allow_video",
          "allow_audio",
          "allow_text",
          "require_name",
          "require_email",
          "consent_text",
          "consent_version",
          "branding",
          "is_active",
          "expires_at",
          "max_submissions",
          "submission_count",
          "created_at",
          "updated_at"
        ]
      },
      "UpdateLinkDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "intro_text": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "thank_you_text": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ]
          },
          "redirect_url": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000,
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "prompts": {
            "minItems": 1,
            "maxItems": 5,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                "text": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                },
                "max_seconds": {
                  "default": 90,
                  "type": "integer",
                  "minimum": 5,
                  "maximum": 180
                }
              },
              "required": [
                "id",
                "text"
              ]
            }
          },
          "allow_video": {
            "type": "boolean"
          },
          "allow_audio": {
            "type": "boolean"
          },
          "allow_text": {
            "type": "boolean"
          },
          "require_name": {
            "type": "boolean"
          },
          "require_email": {
            "type": "boolean"
          },
          "branding": {
            "type": "object",
            "properties": {
              "primary_color": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^#[0-9a-fA-F]{6}$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "logo_asset_id": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 64
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "show_attribution": {
                "type": "boolean"
              }
            }
          },
          "is_active": {
            "type": "boolean"
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
              },
              {
                "type": "null"
              }
            ]
          },
          "max_submissions": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 100000
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "DuplicateLinkDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          }
        }
      },
      "PublicLinkDto": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "intro_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "thank_you_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "redirect_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "prompts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                "text": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                },
                "max_seconds": {
                  "default": 90,
                  "type": "integer",
                  "minimum": 5,
                  "maximum": 180
                }
              },
              "required": [
                "id",
                "text"
              ]
            }
          },
          "allow_video": {
            "type": "boolean"
          },
          "allow_audio": {
            "type": "boolean"
          },
          "allow_text": {
            "type": "boolean"
          },
          "voice_to_text": {
            "type": "boolean"
          },
          "text_cleanup": {
            "type": "boolean"
          },
          "require_name": {
            "type": "boolean"
          },
          "require_email": {
            "type": "boolean"
          },
          "consent_text": {
            "type": "string"
          },
          "consent_version": {
            "type": "string"
          },
          "branding": {
            "type": "object",
            "properties": {
              "brand_name": {
                "type": "string"
              },
              "primary_color": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "logo_url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "show_attribution": {
                "type": "boolean"
              }
            },
            "required": [
              "brand_name",
              "primary_color",
              "logo_url",
              "show_attribution"
            ]
          },
          "is_open": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "slug",
          "title",
          "intro_text",
          "thank_you_text",
          "redirect_url",
          "prompts",
          "allow_video",
          "allow_audio",
          "allow_text",
          "voice_to_text",
          "text_cleanup",
          "require_name",
          "require_email",
          "consent_text",
          "consent_version",
          "branding",
          "is_open"
        ]
      },
      "ClosedLinkDto": {
        "type": "object",
        "properties": {
          "is_open": {
            "type": "boolean",
            "const": false
          },
          "reason": {
            "type": "string",
            "enum": [
              "inactive",
              "expired",
              "limit_reached",
              "paused"
            ]
          },
          "message": {
            "type": "string"
          },
          "branding": {
            "type": "object",
            "properties": {
              "brand_name": {
                "type": "string"
              },
              "primary_color": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "logo_url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "show_attribution": {
                "type": "boolean"
              }
            },
            "required": [
              "brand_name",
              "primary_color",
              "logo_url",
              "show_attribution"
            ]
          }
        },
        "required": [
          "is_open",
          "reason",
          "message",
          "branding"
        ]
      },
      "PublicWallListingDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slug": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40,
                  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
                },
                "wall_url": {
                  "type": "string"
                },
                "testimonial_count": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "page_count": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "indexable": {
                  "type": "boolean"
                },
                "updated_at": {
                  "type": "string"
                },
                "testimonials": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      },
                      "updated_at": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "url",
                      "updated_at"
                    ]
                  }
                }
              },
              "required": [
                "slug",
                "wall_url",
                "testimonial_count",
                "page_count",
                "indexable",
                "updated_at",
                "testimonials"
              ]
            }
          }
        },
        "required": [
          "data"
        ]
      },
      "PublicWallDto": {
        "type": "object",
        "properties": {
          "brand": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "logo_url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "accent_color": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "slug",
              "logo_url",
              "accent_color"
            ]
          },
          "wall_url": {
            "type": "string"
          },
          "testimonial_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "rating": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "average": {
                    "type": "number"
                  },
                  "count": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "average",
                  "count"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "indexable": {
            "type": "boolean"
          },
          "url": {
            "type": "string"
          },
          "page": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "page_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "page_size": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "testimonials": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "video",
                    "audio",
                    "text"
                  ]
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "company": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "rating": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "date": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "text": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "video_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "audio_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "poster_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "duration_ms": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "language": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "captions": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "start_ms": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "end_ms": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "text": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "start_ms",
                          "end_ms",
                          "text"
                        ]
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "id": {
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "name",
                "title",
                "company",
                "rating",
                "date",
                "text",
                "video_url",
                "audio_url",
                "poster_url",
                "duration_ms",
                "language",
                "captions",
                "id"
              ]
            }
          }
        },
        "required": [
          "brand",
          "wall_url",
          "testimonial_count",
          "rating",
          "indexable",
          "url",
          "page",
          "page_count",
          "page_size",
          "testimonials"
        ]
      },
      "PublicWallTestimonialDto": {
        "type": "object",
        "properties": {
          "brand": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "logo_url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "accent_color": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "slug",
              "logo_url",
              "accent_color"
            ]
          },
          "wall_url": {
            "type": "string"
          },
          "testimonial_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "rating": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "average": {
                    "type": "number"
                  },
                  "count": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "average",
                  "count"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "indexable": {
            "type": "boolean"
          },
          "url": {
            "type": "string"
          },
          "testimonial": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "video",
                  "audio",
                  "text"
                ]
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "title": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "company": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "rating": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "date": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "text": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "video_url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "audio_url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "poster_url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "duration_ms": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "language": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "captions": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "start_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "end_ms": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "text": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "start_ms",
                        "end_ms",
                        "text"
                      ]
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "id": {
                "type": "string"
              }
            },
            "required": [
              "kind",
              "name",
              "title",
              "company",
              "rating",
              "date",
              "text",
              "video_url",
              "audio_url",
              "poster_url",
              "duration_ms",
              "language",
              "captions",
              "id"
            ]
          }
        },
        "required": [
          "brand",
          "wall_url",
          "testimonial_count",
          "rating",
          "indexable",
          "url",
          "testimonial"
        ]
      },
      "RemovalTokenDto": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "minLength": 20,
            "maxLength": 200,
            "pattern": "^[A-Za-z0-9_-]+$"
          }
        },
        "required": [
          "token"
        ]
      },
      "RemovalLookupDto": {
        "type": "object",
        "properties": {
          "brand_name": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "video",
              "audio",
              "text"
            ]
          },
          "submitted_on": {
            "type": "string"
          }
        },
        "required": [
          "brand_name",
          "kind",
          "submitted_on"
        ]
      },
      "RemovalRequestedDto": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "const": "scheduled"
          }
        },
        "required": [
          "status"
        ]
      },
      "SubmissionCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "collect_link_id": {
                  "type": "string"
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "video",
                    "audio",
                    "text"
                  ]
                },
                "text_input": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "typed",
                        "voice"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "uploading",
                    "processing",
                    "ready",
                    "failed",
                    "rejected"
                  ]
                },
                "respondent_name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "respondent_email": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "respondent_title": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "respondent_company": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "respondent_country": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "rating": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "duration_ms": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "error_message": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "is_approved": {
                  "type": "boolean"
                },
                "approved_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "is_public": {
                  "type": "boolean"
                },
                "rejected_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "rejection_reason": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "poster_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "public_media": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "video_url": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "audio_url": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "poster_url": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "video_url",
                        "audio_url",
                        "poster_url"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "sentiment": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string",
                          "enum": [
                            "positive",
                            "neutral",
                            "negative"
                          ]
                        },
                        "score": {
                          "type": "number",
                          "minimum": -1,
                          "maximum": 1
                        }
                      },
                      "required": [
                        "label",
                        "score"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "created_at": {
                  "type": "string"
                },
                "updated_at": {
                  "type": "string"
                },
                "match": {
                  "type": "object",
                  "properties": {
                    "rank": {
                      "type": "number"
                    },
                    "matched_in": {
                      "type": "string",
                      "enum": [
                        "transcript",
                        "respondent"
                      ]
                    },
                    "snippet": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "text": {
                            "type": "string"
                          },
                          "highlighted": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "text",
                          "highlighted"
                        ]
                      }
                    }
                  },
                  "required": [
                    "rank",
                    "matched_in",
                    "snippet"
                  ]
                }
              },
              "required": [
                "id",
                "brand_id",
                "collect_link_id",
                "kind",
                "text_input",
                "status",
                "respondent_name",
                "respondent_email",
                "respondent_title",
                "respondent_company",
                "respondent_country",
                "rating",
                "duration_ms",
                "error_message",
                "is_approved",
                "approved_at",
                "is_public",
                "rejected_at",
                "rejection_reason",
                "poster_url",
                "public_media",
                "sentiment",
                "created_at",
                "updated_at"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "BulkRequestDto": {
        "type": "object",
        "properties": {
          "ids": {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          },
          "action": {
            "type": "string",
            "enum": [
              "approve",
              "reject",
              "set_visibility",
              "tag",
              "untag",
              "delete"
            ]
          },
          "params": {
            "type": "object",
            "properties": {
              "reason": {
                "type": "string",
                "minLength": 1,
                "maxLength": 500
              },
              "is_public": {
                "type": "boolean"
              },
              "tag_id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "ids",
          "action"
        ],
        "additionalProperties": false
      },
      "BulkResultDto": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "ok": {
                  "type": "boolean"
                },
                "changed": {
                  "type": "boolean"
                },
                "error": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "enum": [
                            "not_found",
                            "not_sent",
                            "rejected"
                          ]
                        },
                        "detail": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "code",
                        "detail"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "ok",
                "changed",
                "error"
              ]
            }
          },
          "succeeded": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "failed": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "results",
          "succeeded",
          "failed"
        ]
      },
      "TranscriptDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "submission_id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "original_text": {
            "type": "string"
          },
          "corrected_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "language": {
            "type": "string"
          },
          "language_confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "language_flagged": {
            "type": "boolean"
          },
          "confidence": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "provider": {
            "type": "string"
          },
          "model": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "duration_ms": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "words": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "word": {
                  "type": "string"
                },
                "start_ms": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "end_ms": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "confidence": {
                  "type": "number"
                }
              },
              "required": [
                "word",
                "start_ms",
                "end_ms",
                "confidence"
              ]
            }
          },
          "segments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "text": {
                  "type": "string"
                },
                "start_ms": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "end_ms": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "text",
                "start_ms",
                "end_ms"
              ]
            }
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "submission_id",
          "text",
          "original_text",
          "corrected_at",
          "language",
          "language_confidence",
          "language_flagged",
          "confidence",
          "provider",
          "model",
          "duration_ms",
          "words",
          "segments",
          "created_at",
          "updated_at"
        ]
      },
      "UpdateTranscriptDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100000
          },
          "language": {
            "type": "string",
            "pattern": "^[a-z]{2,3}$"
          }
        }
      },
      "SubmissionDetailDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "collect_link_id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "video",
              "audio",
              "text"
            ]
          },
          "text_input": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "typed",
                  "voice"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "uploading",
              "processing",
              "ready",
              "failed",
              "rejected"
            ]
          },
          "respondent_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "respondent_email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "respondent_title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "respondent_company": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "respondent_country": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "rating": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "duration_ms": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_approved": {
            "type": "boolean"
          },
          "approved_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_public": {
            "type": "boolean"
          },
          "rejected_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "rejection_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "poster_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "public_media": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "video_url": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "audio_url": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "poster_url": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "video_url",
                  "audio_url",
                  "poster_url"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "sentiment": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "enum": [
                      "positive",
                      "neutral",
                      "negative"
                    ]
                  },
                  "score": {
                    "type": "number",
                    "minimum": -1,
                    "maximum": 1
                  }
                },
                "required": [
                  "label",
                  "score"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "assets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "mime": {
                  "type": "string"
                },
                "bytes": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "duration_ms": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "width": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "height": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "playback_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id",
                "role",
                "mime",
                "bytes",
                "duration_ms",
                "width",
                "height",
                "playback_url"
              ]
            }
          },
          "consent": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "consent_text": {
                    "type": "string"
                  },
                  "consent_version": {
                    "type": "string"
                  },
                  "agreed_at": {
                    "type": "string"
                  }
                },
                "required": [
                  "consent_text",
                  "consent_version",
                  "agreed_at"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "text_source": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "original",
                  "ai_cleanup"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "original_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "color": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "source": {
                  "type": "string",
                  "enum": [
                    "operator",
                    "ai"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "color",
                "source"
              ]
            }
          }
        },
        "required": [
          "id",
          "brand_id",
          "collect_link_id",
          "kind",
          "text_input",
          "status",
          "respondent_name",
          "respondent_email",
          "respondent_title",
          "respondent_company",
          "respondent_country",
          "rating",
          "duration_ms",
          "error_message",
          "is_approved",
          "approved_at",
          "is_public",
          "rejected_at",
          "rejection_reason",
          "poster_url",
          "public_media",
          "sentiment",
          "created_at",
          "updated_at",
          "assets",
          "consent",
          "text",
          "text_source",
          "original_text",
          "tags"
        ]
      },
      "RejectSubmissionDto": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          }
        },
        "required": [
          "reason"
        ],
        "additionalProperties": false
      },
      "SetVisibilityDto": {
        "type": "object",
        "properties": {
          "is_public": {
            "type": "boolean"
          }
        },
        "required": [
          "is_public"
        ],
        "additionalProperties": false
      },
      "SubmissionTagListDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "color": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "source": {
                  "type": "string",
                  "enum": [
                    "operator",
                    "ai"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "color",
                "source"
              ]
            }
          }
        },
        "required": [
          "data"
        ]
      },
      "UpdateSubmissionDto": {
        "type": "object",
        "properties": {
          "respondent_title": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 120
              },
              {
                "type": "null"
              }
            ]
          },
          "respondent_company": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 120
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "CreateSubmissionDto": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "video",
              "audio",
              "text"
            ]
          },
          "respondent_name": {
            "type": "string",
            "maxLength": 120
          },
          "respondent_email": {
            "type": "string",
            "maxLength": 320,
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          },
          "respondent_title": {
            "type": "string",
            "maxLength": 120
          },
          "respondent_company": {
            "type": "string",
            "maxLength": 120
          },
          "rating": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5
          },
          "text_input": {
            "type": "string",
            "enum": [
              "typed",
              "voice"
            ]
          },
          "challenge_token": {
            "type": "string",
            "maxLength": 4096
          }
        },
        "required": [
          "kind"
        ]
      },
      "CreatedSubmissionDto": {
        "type": "object",
        "properties": {
          "submission_id": {
            "type": "string"
          },
          "upload_token": {
            "type": "string"
          },
          "upload_token_expires_at": {
            "type": "string"
          }
        },
        "required": [
          "submission_id",
          "upload_token",
          "upload_token_expires_at"
        ]
      },
      "UploadUrlRequestDto": {
        "type": "object",
        "properties": {
          "content_type": {
            "type": "string",
            "enum": [
              "video/webm",
              "video/mp4",
              "audio/webm",
              "audio/mp4",
              "audio/mpeg"
            ]
          },
          "content_length": {
            "type": "integer",
            "minimum": 1,
            "maximum": 524288000
          },
          "part_number": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          },
          "upload_id": {
            "type": "string",
            "maxLength": 512
          }
        },
        "required": [
          "content_type",
          "content_length"
        ]
      },
      "UploadUrlResponseDto": {
        "type": "object",
        "properties": {
          "upload_id": {
            "type": "string"
          },
          "part_number": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "upload_url": {
            "type": "string"
          },
          "expires_at": {
            "type": "string"
          },
          "required_headers": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "required": [
          "upload_id",
          "part_number",
          "upload_url",
          "expires_at",
          "required_headers"
        ]
      },
      "TranscribeSubmissionDto": {
        "type": "object",
        "properties": {
          "upload_id": {
            "type": "string",
            "maxLength": 512
          },
          "parts": {
            "maxItems": 10000,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "part_number": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10000
                },
                "etag": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "part_number",
                "etag"
              ]
            }
          },
          "duration_ms": {
            "type": "integer",
            "minimum": 0,
            "maximum": 14400000
          }
        }
      },
      "VoiceTranscriptDto": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "transcribing",
              "ready",
              "failed"
            ]
          },
          "text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "estimate_ms": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "status",
          "text",
          "estimate_ms"
        ]
      },
      "CleanupRequestDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "minLength": 20,
            "maxLength": 2000
          }
        },
        "required": [
          "text"
        ]
      },
      "CleanupResultDto": {
        "type": "object",
        "properties": {
          "outcome": {
            "type": "string",
            "enum": [
              "cleaned",
              "unchanged",
              "rejected",
              "unavailable"
            ]
          },
          "text": {
            "type": "string"
          },
          "revision_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "outcome",
          "text",
          "revision_id"
        ]
      },
      "CompleteSubmissionDto": {
        "type": "object",
        "properties": {
          "upload_id": {
            "type": "string",
            "maxLength": 512
          },
          "parts": {
            "maxItems": 10000,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "part_number": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10000
                },
                "etag": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256
                }
              },
              "required": [
                "part_number",
                "etag"
              ]
            }
          },
          "duration_ms": {
            "type": "integer",
            "minimum": 0,
            "maximum": 14400000
          },
          "body_text": {
            "type": "string",
            "minLength": 20,
            "maxLength": 2000
          },
          "cleanup_revision_id": {
            "type": "string",
            "maxLength": 64
          },
          "respondent_name": {
            "type": "string",
            "maxLength": 120
          },
          "respondent_email": {
            "type": "string",
            "maxLength": 320,
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          },
          "respondent_title": {
            "type": "string",
            "maxLength": 120
          },
          "respondent_company": {
            "type": "string",
            "maxLength": 120
          },
          "rating": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5
          },
          "consent_agreed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "consent_agreed"
        ]
      },
      "CompletedSubmissionDto": {
        "type": "object",
        "properties": {
          "submission_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "uploading",
              "processing",
              "ready",
              "failed",
              "rejected"
            ]
          },
          "thank_you_text": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "redirect_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "submission_id",
          "status",
          "thank_you_text",
          "redirect_url"
        ]
      },
      "TagCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "color": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "created_at": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name",
                "color",
                "created_at"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "CreateTagDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 48
          },
          "color": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "TagDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "color",
          "created_at"
        ]
      },
      "UpdateTagDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 48
          },
          "color": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "CreateExportDto": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "csv",
              "json",
              "mp4",
              "mp3",
              "zip"
            ]
          },
          "filters": {
            "type": "object",
            "properties": {
              "ids": {
                "minItems": 1,
                "maxItems": 1000,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                }
              },
              "brand_id": {
                "type": "string",
                "maxLength": 64
              },
              "collect_link_id": {
                "type": "string",
                "maxLength": 64
              },
              "status": {
                "type": "string",
                "enum": [
                  "processing",
                  "ready",
                  "failed",
                  "rejected"
                ]
              },
              "kind": {
                "type": "string",
                "enum": [
                  "video",
                  "audio",
                  "text"
                ]
              },
              "is_approved": {
                "type": "boolean"
              },
              "is_public": {
                "type": "boolean"
              },
              "tag_id": {
                "type": "string",
                "maxLength": 64
              },
              "created_after": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              "created_before": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              "q": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      },
      "ExportPreviewDto": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "csv",
              "json",
              "mp4",
              "mp3",
              "zip"
            ]
          },
          "submission_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "media_file_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "plan": {
            "type": "string",
            "enum": [
              "free",
              "starter",
              "core",
              "plus"
            ]
          },
          "limits": {
            "type": "object",
            "properties": {
              "exports_per_month": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "exports_used_this_month": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "submissions_per_export": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "media_files_per_export": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "exports_per_month",
              "exports_used_this_month",
              "submissions_per_export",
              "media_files_per_export"
            ]
          },
          "blocked": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "limit": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "exports_per_month",
                          "submissions_per_export",
                          "media_files_per_export",
                          "media_exports",
                          "payment_past_due"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "detail": {
                    "type": "string"
                  },
                  "upgrade_to": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "free",
                          "starter",
                          "core",
                          "plus"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "limit",
                  "detail",
                  "upgrade_to"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "email_on_completion": {
            "type": "boolean"
          }
        },
        "required": [
          "format",
          "submission_count",
          "media_file_count",
          "plan",
          "limits",
          "blocked",
          "email_on_completion"
        ]
      },
      "CreatedExportDto": {
        "type": "object",
        "properties": {
          "export_id": {
            "type": "string"
          }
        },
        "required": [
          "export_id"
        ]
      },
      "ExportDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "format": {
            "type": "string",
            "enum": [
              "csv",
              "json",
              "mp4",
              "mp3",
              "zip"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "queued",
              "running",
              "succeeded",
              "failed",
              "expired"
            ]
          },
          "filters": {
            "type": "object",
            "properties": {
              "ids": {
                "minItems": 1,
                "maxItems": 1000,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                }
              },
              "brand_id": {
                "type": "string",
                "maxLength": 64
              },
              "collect_link_id": {
                "type": "string",
                "maxLength": 64
              },
              "status": {
                "type": "string",
                "enum": [
                  "processing",
                  "ready",
                  "failed",
                  "rejected"
                ]
              },
              "kind": {
                "type": "string",
                "enum": [
                  "video",
                  "audio",
                  "text"
                ]
              },
              "is_approved": {
                "type": "boolean"
              },
              "is_public": {
                "type": "boolean"
              },
              "tag_id": {
                "type": "string",
                "maxLength": 64
              },
              "created_after": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              "created_before": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              "q": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              }
            },
            "additionalProperties": false
          },
          "progress": {
            "type": "object",
            "properties": {
              "processed": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "total": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "processed",
              "total"
            ]
          },
          "file_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "bytes": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "download_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "download_expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "email_on_completion": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string"
          },
          "finished_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "format",
          "status",
          "filters",
          "progress",
          "file_name",
          "bytes",
          "download_url",
          "download_expires_at",
          "expires_at",
          "error_message",
          "email_on_completion",
          "created_at",
          "finished_at"
        ]
      },
      "WidgetCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "layout": {
                  "type": "string",
                  "enum": [
                    "wall",
                    "carousel",
                    "single",
                    "avatars"
                  ]
                },
                "theme": {
                  "type": "string",
                  "enum": [
                    "light",
                    "dark",
                    "auto"
                  ]
                },
                "accent_color": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "fields": {
                  "type": "object",
                  "properties": {
                    "avatar": {
                      "type": "boolean"
                    },
                    "name": {
                      "type": "boolean"
                    },
                    "title": {
                      "type": "boolean"
                    },
                    "company": {
                      "type": "boolean"
                    },
                    "rating": {
                      "type": "boolean"
                    },
                    "date": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "avatar",
                    "name",
                    "title",
                    "company",
                    "rating",
                    "date"
                  ]
                },
                "selection": {
                  "type": "string",
                  "enum": [
                    "automatic",
                    "manual"
                  ]
                },
                "tag_ids": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "min_rating": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "submission_ids": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "max_items": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "show_attribution": {
                  "type": "boolean"
                },
                "attribution_removable": {
                  "type": "boolean"
                },
                "height": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "snippet": {
                  "type": "string"
                },
                "script_url": {
                  "type": "string"
                },
                "document_url": {
                  "type": "string"
                },
                "published_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "created_at": {
                  "type": "string"
                },
                "updated_at": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "brand_id",
                "name",
                "layout",
                "theme",
                "accent_color",
                "fields",
                "selection",
                "tag_ids",
                "min_rating",
                "submission_ids",
                "max_items",
                "show_attribution",
                "attribution_removable",
                "height",
                "snippet",
                "script_url",
                "document_url",
                "published_at",
                "created_at",
                "updated_at"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "CreateWidgetDto": {
        "type": "object",
        "properties": {
          "brand_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "layout": {
            "type": "string",
            "enum": [
              "wall",
              "carousel",
              "single",
              "avatars"
            ]
          },
          "theme": {
            "type": "string",
            "enum": [
              "light",
              "dark",
              "auto"
            ]
          },
          "accent_color": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "fields": {
            "type": "object",
            "properties": {
              "avatar": {
                "type": "boolean"
              },
              "name": {
                "type": "boolean"
              },
              "title": {
                "type": "boolean"
              },
              "company": {
                "type": "boolean"
              },
              "rating": {
                "type": "boolean"
              },
              "date": {
                "type": "boolean"
              }
            }
          },
          "selection": {
            "type": "string",
            "enum": [
              "automatic",
              "manual"
            ]
          },
          "tag_ids": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          },
          "min_rating": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 5
              },
              {
                "type": "null"
              }
            ]
          },
          "submission_ids": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          },
          "max_items": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          },
          "show_attribution": {
            "type": "boolean"
          }
        },
        "required": [
          "brand_id"
        ]
      },
      "WidgetDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "layout": {
            "type": "string",
            "enum": [
              "wall",
              "carousel",
              "single",
              "avatars"
            ]
          },
          "theme": {
            "type": "string",
            "enum": [
              "light",
              "dark",
              "auto"
            ]
          },
          "accent_color": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "fields": {
            "type": "object",
            "properties": {
              "avatar": {
                "type": "boolean"
              },
              "name": {
                "type": "boolean"
              },
              "title": {
                "type": "boolean"
              },
              "company": {
                "type": "boolean"
              },
              "rating": {
                "type": "boolean"
              },
              "date": {
                "type": "boolean"
              }
            },
            "required": [
              "avatar",
              "name",
              "title",
              "company",
              "rating",
              "date"
            ]
          },
          "selection": {
            "type": "string",
            "enum": [
              "automatic",
              "manual"
            ]
          },
          "tag_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "min_rating": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "submission_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "max_items": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "show_attribution": {
            "type": "boolean"
          },
          "attribution_removable": {
            "type": "boolean"
          },
          "height": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "snippet": {
            "type": "string"
          },
          "script_url": {
            "type": "string"
          },
          "document_url": {
            "type": "string"
          },
          "published_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "brand_id",
          "name",
          "layout",
          "theme",
          "accent_color",
          "fields",
          "selection",
          "tag_ids",
          "min_rating",
          "submission_ids",
          "max_items",
          "show_attribution",
          "attribution_removable",
          "height",
          "snippet",
          "script_url",
          "document_url",
          "published_at",
          "created_at",
          "updated_at"
        ]
      },
      "WidgetDocumentDto": {
        "type": "object",
        "properties": {
          "version": {
            "type": "number",
            "const": 1
          },
          "widget_id": {
            "type": "string"
          },
          "generated_at": {
            "type": "string"
          },
          "layout": {
            "type": "string",
            "enum": [
              "wall",
              "carousel",
              "single",
              "avatars"
            ]
          },
          "theme": {
            "type": "string",
            "enum": [
              "light",
              "dark",
              "auto"
            ]
          },
          "accent_color": {
            "type": "string"
          },
          "fields": {
            "type": "object",
            "properties": {
              "avatar": {
                "type": "boolean"
              },
              "name": {
                "type": "boolean"
              },
              "title": {
                "type": "boolean"
              },
              "company": {
                "type": "boolean"
              },
              "rating": {
                "type": "boolean"
              },
              "date": {
                "type": "boolean"
              }
            },
            "required": [
              "avatar",
              "name",
              "title",
              "company",
              "rating",
              "date"
            ]
          },
          "attribution": {
            "type": "boolean"
          },
          "brand_name": {
            "type": "string"
          },
          "rating": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "average": {
                    "type": "number"
                  },
                  "count": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "average",
                  "count"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "video",
                    "audio",
                    "text"
                  ]
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "company": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "rating": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "date": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "text": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "video_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "audio_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "poster_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "duration_ms": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "language": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "captions": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "start_ms": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "end_ms": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "text": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "start_ms",
                          "end_ms",
                          "text"
                        ]
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "kind",
                "name",
                "title",
                "company",
                "rating",
                "date",
                "text",
                "video_url",
                "audio_url",
                "poster_url",
                "duration_ms",
                "language",
                "captions"
              ]
            }
          }
        },
        "required": [
          "version",
          "widget_id",
          "generated_at",
          "layout",
          "theme",
          "accent_color",
          "fields",
          "attribution",
          "brand_name",
          "rating",
          "items"
        ]
      },
      "UpdateWidgetDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "layout": {
            "type": "string",
            "enum": [
              "wall",
              "carousel",
              "single",
              "avatars"
            ]
          },
          "theme": {
            "type": "string",
            "enum": [
              "light",
              "dark",
              "auto"
            ]
          },
          "accent_color": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "fields": {
            "type": "object",
            "properties": {
              "avatar": {
                "type": "boolean"
              },
              "name": {
                "type": "boolean"
              },
              "title": {
                "type": "boolean"
              },
              "company": {
                "type": "boolean"
              },
              "rating": {
                "type": "boolean"
              },
              "date": {
                "type": "boolean"
              }
            }
          },
          "selection": {
            "type": "string",
            "enum": [
              "automatic",
              "manual"
            ]
          },
          "tag_ids": {
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          },
          "min_rating": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 5
              },
              {
                "type": "null"
              }
            ]
          },
          "submission_ids": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          },
          "max_items": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          },
          "show_attribution": {
            "type": "boolean"
          }
        }
      },
      "MusicTrackCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name",
                "description"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "ReelCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "brand_id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "draft",
                    "queued",
                    "rendering",
                    "ready",
                    "failed"
                  ]
                },
                "clip_count": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "aspect_ratios": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "9:16",
                      "1:1",
                      "16:9"
                    ]
                  }
                },
                "poster_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "shared": {
                  "type": "boolean"
                },
                "created_at": {
                  "type": "string"
                },
                "updated_at": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "brand_id",
                "title",
                "status",
                "clip_count",
                "aspect_ratios",
                "poster_url",
                "shared",
                "created_at",
                "updated_at"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "CreateReelDto": {
        "type": "object",
        "properties": {
          "brand_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "mode": {
            "type": "string",
            "enum": [
              "auto",
              "manual"
            ]
          },
          "submission_ids": {
            "minItems": 1,
            "maxItems": 12,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            }
          },
          "config": {
            "type": "object",
            "properties": {
              "aspect_ratios": {
                "minItems": 1,
                "maxItems": 3,
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "9:16",
                    "1:1",
                    "16:9"
                  ]
                }
              },
              "caption_style": {
                "type": "string",
                "enum": [
                  "bold",
                  "boxed",
                  "minimal"
                ]
              },
              "intro": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60
                      }
                    },
                    "required": [
                      "title"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "outro": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "call_to_action": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      }
                    },
                    "required": [
                      "call_to_action"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "music": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "track_id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 40
                      }
                    },
                    "required": [
                      "track_id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "target_duration_ms": {
                "type": "integer",
                "minimum": 15000,
                "maximum": 120000
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "brand_id",
          "submission_ids"
        ],
        "additionalProperties": false
      },
      "ReelDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "brand_id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "queued",
              "rendering",
              "ready",
              "failed"
            ]
          },
          "config": {
            "type": "object",
            "properties": {
              "aspect_ratios": {
                "minItems": 1,
                "maxItems": 3,
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "9:16",
                    "1:1",
                    "16:9"
                  ]
                }
              },
              "caption_style": {
                "type": "string",
                "enum": [
                  "bold",
                  "boxed",
                  "minimal"
                ]
              },
              "intro": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60
                      }
                    },
                    "required": [
                      "title"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "outro": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "call_to_action": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      }
                    },
                    "required": [
                      "call_to_action"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "music": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "track_id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 40
                      }
                    },
                    "required": [
                      "track_id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "target_duration_ms": {
                "type": "integer",
                "minimum": 15000,
                "maximum": 120000
              }
            },
            "required": [
              "aspect_ratios",
              "caption_style",
              "intro",
              "outro",
              "music",
              "target_duration_ms"
            ],
            "additionalProperties": false
          },
          "clips": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "submission_id": {
                  "type": "string"
                },
                "position": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "start_ms": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "end_ms": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "source": {
                  "type": "string",
                  "enum": [
                    "model",
                    "heuristic",
                    "operator"
                  ]
                },
                "reason": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "text": {
                  "type": "string"
                },
                "respondent_name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "poster_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "recording_duration_ms": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "problem": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id",
                "submission_id",
                "position",
                "start_ms",
                "end_ms",
                "source",
                "reason",
                "text",
                "respondent_name",
                "poster_url",
                "recording_duration_ms",
                "problem"
              ]
            }
          },
          "render": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "queued",
                      "running",
                      "succeeded",
                      "failed"
                    ]
                  },
                  "stage": {
                    "type": "string",
                    "enum": [
                      "queued",
                      "cutting",
                      "cards",
                      "music",
                      "captions",
                      "rendering",
                      "uploading",
                      "finishing"
                    ]
                  },
                  "label": {
                    "type": "string"
                  },
                  "done": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "total": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "aspect_ratio": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "9:16",
                          "1:1",
                          "16:9"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "paused": {
                    "type": "boolean"
                  },
                  "aspect_ratios": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "9:16",
                        "1:1",
                        "16:9"
                      ]
                    }
                  },
                  "error_message": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "estimated_core_seconds": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "core_seconds_used": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "started_at": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "finished_at": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "id",
                  "status",
                  "stage",
                  "label",
                  "done",
                  "total",
                  "aspect_ratio",
                  "paused",
                  "aspect_ratios",
                  "error_message",
                  "estimated_core_seconds",
                  "core_seconds_used",
                  "created_at",
                  "started_at",
                  "finished_at"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "output": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "render_id": {
                    "type": "string"
                  },
                  "variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "aspect_ratio": {
                          "type": "string",
                          "enum": [
                            "9:16",
                            "1:1",
                            "16:9"
                          ]
                        },
                        "width": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "height": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "duration_ms": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "bytes": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "url": {
                          "type": "string"
                        },
                        "download_url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "aspect_ratio",
                        "width",
                        "height",
                        "duration_ms",
                        "bytes",
                        "url",
                        "download_url"
                      ]
                    }
                  },
                  "poster_url": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "captions_download_url": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "rendered_at": {
                    "type": "string"
                  }
                },
                "required": [
                  "render_id",
                  "variants",
                  "poster_url",
                  "captions_download_url",
                  "rendered_at"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "changed_since_render": {
            "type": "boolean"
          },
          "estimate": {
            "type": "object",
            "properties": {
              "duration_ms": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "core_seconds": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "render_minutes": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "plan": {
                "type": "string",
                "enum": [
                  "free",
                  "starter",
                  "core",
                  "plus"
                ]
              },
              "render_minutes_per_month": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "render_minutes_used": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "blocked": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "detail": {
                        "type": "string"
                      },
                      "upgrade_to": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "free",
                              "starter",
                              "core",
                              "plus"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "detail",
                      "upgrade_to"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "duration_ms",
              "core_seconds",
              "render_minutes",
              "plan",
              "render_minutes_per_month",
              "render_minutes_used",
              "blocked"
            ]
          },
          "share": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "status": {
                "type": "string",
                "enum": [
                  "off",
                  "publishing",
                  "live"
                ]
              },
              "urls": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "variants": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "aspect_ratio": {
                              "type": "string",
                              "enum": [
                                "9:16",
                                "1:1",
                                "16:9"
                              ]
                            },
                            "url": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "aspect_ratio",
                            "url"
                          ]
                        }
                      },
                      "poster_url": {
                        "type": "string"
                      },
                      "captions_url": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "variants",
                      "poster_url",
                      "captions_url"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "enabled",
              "status",
              "urls"
            ]
          },
          "error_message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "brand_id",
          "title",
          "status",
          "config",
          "clips",
          "render",
          "output",
          "changed_since_render",
          "estimate",
          "share",
          "error_message",
          "created_at",
          "updated_at"
        ]
      },
      "UpdateReelDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "config": {
            "type": "object",
            "properties": {
              "aspect_ratios": {
                "minItems": 1,
                "maxItems": 3,
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "9:16",
                    "1:1",
                    "16:9"
                  ]
                }
              },
              "caption_style": {
                "type": "string",
                "enum": [
                  "bold",
                  "boxed",
                  "minimal"
                ]
              },
              "intro": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60
                      }
                    },
                    "required": [
                      "title"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "outro": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "call_to_action": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      }
                    },
                    "required": [
                      "call_to_action"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "music": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "track_id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 40
                      }
                    },
                    "required": [
                      "track_id"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "target_duration_ms": {
                "type": "integer",
                "minimum": 15000,
                "maximum": 120000
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "ReplaceReelClipsDto": {
        "type": "object",
        "properties": {
          "clips": {
            "minItems": 1,
            "maxItems": 12,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "submission_id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                "start_ms": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "end_ms": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "submission_id",
                "start_ms",
                "end_ms"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "clips"
        ],
        "additionalProperties": false
      },
      "AddReelClipDto": {
        "type": "object",
        "properties": {
          "submission_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          }
        },
        "required": [
          "submission_id"
        ],
        "additionalProperties": false
      },
      "CreatedRenderDto": {
        "type": "object",
        "properties": {
          "render_id": {
            "type": "string"
          }
        },
        "required": [
          "render_id"
        ]
      },
      "BillingDto": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "free",
              "starter",
              "core",
              "plus"
            ]
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "widget_attribution_removal",
                "media_exports",
                "api_access",
                "custom_domain",
                "white_label",
                "sub_accounts",
                "priority_render"
              ]
            }
          },
          "access": {
            "type": "string",
            "enum": [
              "full",
              "grace",
              "read_only"
            ]
          },
          "past_due_since": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "read_only_from": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "subscription": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "trialing",
                      "past_due",
                      "paused",
                      "canceled"
                    ]
                  },
                  "plan": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "starter",
                          "core",
                          "plus"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "current_period_end": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "cancels_at": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "status",
                  "plan",
                  "current_period_end",
                  "cancels_at"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "available": {
            "type": "boolean"
          },
          "plans": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "plan": {
                  "type": "string",
                  "enum": [
                    "free",
                    "starter",
                    "core",
                    "plus"
                  ]
                },
                "name": {
                  "type": "string"
                },
                "price_cents": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "currency": {
                  "type": "string",
                  "const": "USD"
                },
                "quotas": {
                  "type": "object",
                  "properties": {
                    "brands": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "submissions_per_month": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "render_seconds_per_month": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "storage_bytes": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "exports_per_month": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "brands",
                    "submissions_per_month",
                    "render_seconds_per_month",
                    "storage_bytes",
                    "exports_per_month"
                  ]
                },
                "features": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "widget_attribution_removal",
                      "media_exports",
                      "api_access",
                      "custom_domain",
                      "white_label",
                      "sub_accounts",
                      "priority_render"
                    ]
                  }
                }
              },
              "required": [
                "plan",
                "name",
                "price_cents",
                "currency",
                "quotas",
                "features"
              ]
            }
          }
        },
        "required": [
          "plan",
          "features",
          "access",
          "past_due_since",
          "read_only_from",
          "subscription",
          "available",
          "plans"
        ]
      },
      "UsageDto": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "free",
              "starter",
              "core",
              "plus"
            ]
          },
          "period_start": {
            "type": "string"
          },
          "period_ends_at": {
            "type": "string"
          },
          "quotas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "quota": {
                  "type": "string",
                  "enum": [
                    "brands",
                    "submissions_per_month",
                    "render_seconds_per_month",
                    "storage_bytes",
                    "exports_per_month"
                  ]
                },
                "used": {
                  "type": "number"
                },
                "allowed": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "level": {
                  "type": "string",
                  "enum": [
                    "ok",
                    "approaching",
                    "reached"
                  ]
                },
                "resets_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "quota",
                "used",
                "allowed",
                "level",
                "resets_at"
              ]
            }
          },
          "history": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "period_start": {
                  "type": "string"
                },
                "submissions": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "render_seconds": {
                  "type": "number"
                },
                "exports": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "period_start",
                "submissions",
                "render_seconds",
                "exports"
              ]
            }
          }
        },
        "required": [
          "plan",
          "period_start",
          "period_ends_at",
          "quotas",
          "history"
        ]
      },
      "CheckoutRequestDto": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "starter",
              "core",
              "plus"
            ]
          }
        },
        "required": [
          "plan"
        ]
      },
      "RedirectUrlDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ]
      },
      "ChangePlanRequestDto": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "free",
              "starter",
              "core",
              "plus"
            ]
          }
        },
        "required": [
          "plan"
        ]
      },
      "ApiKeyCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "prefix": {
                  "type": "string"
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "live",
                    "test"
                  ]
                },
                "scopes": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "brands:read",
                      "brands:write",
                      "links:read",
                      "links:write",
                      "submissions:read",
                      "submissions:write",
                      "submissions:moderate",
                      "reels:read",
                      "reels:write",
                      "exports:write",
                      "webhooks:manage"
                    ]
                  }
                },
                "created_at": {
                  "type": "string"
                },
                "last_used_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "expires_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id",
                "name",
                "prefix",
                "mode",
                "scopes",
                "created_at",
                "last_used_at",
                "expires_at"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "CreateApiKeyDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "scopes": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "brands:read",
                "brands:write",
                "links:read",
                "links:write",
                "submissions:read",
                "submissions:write",
                "submissions:moderate",
                "reels:read",
                "reels:write",
                "exports:write",
                "webhooks:manage"
              ]
            }
          },
          "mode": {
            "type": "string",
            "enum": [
              "live",
              "test"
            ]
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          }
        },
        "required": [
          "name",
          "scopes",
          "mode"
        ],
        "additionalProperties": false
      },
      "CreatedApiKeyDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "mode": {
            "type": "string",
            "enum": [
              "live",
              "test"
            ]
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "brands:read",
                "brands:write",
                "links:read",
                "links:write",
                "submissions:read",
                "submissions:write",
                "submissions:moderate",
                "reels:read",
                "reels:write",
                "exports:write",
                "webhooks:manage"
              ]
            }
          },
          "created_at": {
            "type": "string"
          },
          "last_used_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "expires_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "key": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "prefix",
          "mode",
          "scopes",
          "created_at",
          "last_used_at",
          "expires_at",
          "key"
        ]
      },
      "WebhookEndpointCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "events": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "submission.created",
                      "submission.ready",
                      "submission.approved",
                      "submission.rejected",
                      "reel.ready",
                      "reel.failed",
                      "export.ready"
                    ]
                  }
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "failing",
                    "disabled"
                  ]
                },
                "failing_since": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "disabled_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "created_at": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "url",
                "events",
                "status",
                "failing_since",
                "disabled_at",
                "created_at"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      },
      "CreateWebhookDto": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "maxLength": 2048,
            "format": "uri"
          },
          "events": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "submission.created",
                "submission.ready",
                "submission.approved",
                "submission.rejected",
                "reel.ready",
                "reel.failed",
                "export.ready"
              ]
            }
          }
        },
        "required": [
          "url",
          "events"
        ],
        "additionalProperties": false
      },
      "CreatedWebhookDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "submission.created",
                "submission.ready",
                "submission.approved",
                "submission.rejected",
                "reel.ready",
                "reel.failed",
                "export.ready"
              ]
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "failing",
              "disabled"
            ]
          },
          "failing_since": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "disabled_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string"
          },
          "secret": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "url",
          "events",
          "status",
          "failing_since",
          "disabled_at",
          "created_at",
          "secret"
        ]
      },
      "SendTestWebhookDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "submission.created",
              "submission.ready",
              "submission.approved",
              "submission.rejected",
              "reel.ready",
              "reel.failed",
              "export.ready"
            ]
          }
        },
        "additionalProperties": false
      },
      "WebhookDeliveryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "endpoint_id": {
            "type": "string"
          },
          "event_id": {
            "type": "string"
          },
          "event_type": {
            "type": "string",
            "enum": [
              "submission.created",
              "submission.ready",
              "submission.approved",
              "submission.rejected",
              "reel.ready",
              "reel.failed",
              "export.ready"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "delivered",
              "failed"
            ]
          },
          "next_attempt_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "delivered_at": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "failure_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "replay_of": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "attempts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "number": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "attempted_at": {
                  "type": "string"
                },
                "request_headers": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {
                    "type": "string"
                  }
                },
                "response_status": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "response_body": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "duration_ms": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "error": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "number",
                "attempted_at",
                "request_headers",
                "response_status",
                "response_body",
                "duration_ms",
                "error"
              ]
            }
          }
        },
        "required": [
          "id",
          "endpoint_id",
          "event_id",
          "event_type",
          "status",
          "next_attempt_at",
          "delivered_at",
          "failure_reason",
          "replay_of",
          "created_at",
          "body",
          "attempts"
        ]
      },
      "WebhookDeliveryCollectionDto": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "endpoint_id": {
                  "type": "string"
                },
                "event_id": {
                  "type": "string"
                },
                "event_type": {
                  "type": "string",
                  "enum": [
                    "submission.created",
                    "submission.ready",
                    "submission.approved",
                    "submission.rejected",
                    "reel.ready",
                    "reel.failed",
                    "export.ready"
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "delivered",
                    "failed"
                  ]
                },
                "next_attempt_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "delivered_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "failure_reason": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "replay_of": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "created_at": {
                  "type": "string"
                },
                "body": {
                  "type": "string"
                },
                "attempts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "number": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "attempted_at": {
                        "type": "string"
                      },
                      "request_headers": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {
                          "type": "string"
                        }
                      },
                      "response_status": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "response_body": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "duration_ms": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "error": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "number",
                      "attempted_at",
                      "request_headers",
                      "response_status",
                      "response_body",
                      "duration_ms",
                      "error"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "endpoint_id",
                "event_id",
                "event_type",
                "status",
                "next_attempt_at",
                "delivered_at",
                "failure_reason",
                "replay_of",
                "created_at",
                "body",
                "attempts"
              ]
            }
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "next_cursor"
        ]
      }
    }
  },
  "externalDocs": {
    "description": "Guides and the webhook reference",
    "url": "https://docs.akteora.com"
  },
  "webhooks": {
    "submission.created": {
      "post": {
        "operationId": "Webhook_submission_created",
        "summary": "A testimonial was sent",
        "description": "Sent to every endpoint subscribed to `submission.created`. Verify `X-Signature` before trusting the body: HMAC-SHA256 of `{t}.{raw body}` with the endpoint's secret, compared in constant time, and refuse a `t` more than 5 minutes from your clock. The same event can arrive more than once: deduplicate on `id`.",
        "tags": [
          "Webhook events"
        ],
        "parameters": [
          {
            "name": "X-Signature",
            "in": "header",
            "required": true,
            "description": "`t=<unix seconds>,v1=<hex HMAC-SHA256>`",
            "schema": {
              "type": "string"
            },
            "example": "t=1757937775,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd"
          },
          {
            "name": "X-Akteora-Event-Id",
            "in": "header",
            "required": true,
            "description": "The event’s `id` — the same in every retry and replay.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Akteora-Delivery",
            "in": "header",
            "required": true,
            "description": "This delivery, as the delivery log names it.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "submission.created"
                  },
                  "api_version": {
                    "type": "string",
                    "const": "v1"
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "org_id": {
                    "type": "string"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "live",
                      "test"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "link_id": {
                        "type": "string"
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "video",
                          "audio",
                          "text"
                        ]
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "pending",
                          "uploading",
                          "processing",
                          "ready",
                          "failed",
                          "rejected"
                        ]
                      },
                      "is_approved": {
                        "type": "boolean"
                      },
                      "is_public": {
                        "type": "boolean"
                      },
                      "duration_ms": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "created_at": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "brand_id",
                      "link_id",
                      "kind",
                      "status",
                      "is_approved",
                      "is_public",
                      "duration_ms",
                      "created_at"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "type",
                  "api_version",
                  "created_at",
                  "org_id",
                  "mode",
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                "type": "submission.created",
                "api_version": "v1",
                "created_at": "2026-09-15T11:02:55.000Z",
                "org_id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                "mode": "live",
                "data": {
                  "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "kind": "video",
                  "status": "processing",
                  "is_approved": false,
                  "is_public": false,
                  "duration_ms": 48200,
                  "created_at": "2026-09-15T09:41:07.312Z"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges the event. Anything else — a redirect included — or no answer is retried 30 s, 5 min, 30 min, 2 h, 6 h and 12 h later."
          }
        }
      }
    },
    "submission.ready": {
      "post": {
        "operationId": "Webhook_submission_ready",
        "summary": "A testimonial finished processing",
        "description": "Sent to every endpoint subscribed to `submission.ready`. Verify `X-Signature` before trusting the body: HMAC-SHA256 of `{t}.{raw body}` with the endpoint's secret, compared in constant time, and refuse a `t` more than 5 minutes from your clock. The same event can arrive more than once: deduplicate on `id`.",
        "tags": [
          "Webhook events"
        ],
        "parameters": [
          {
            "name": "X-Signature",
            "in": "header",
            "required": true,
            "description": "`t=<unix seconds>,v1=<hex HMAC-SHA256>`",
            "schema": {
              "type": "string"
            },
            "example": "t=1757937775,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd"
          },
          {
            "name": "X-Akteora-Event-Id",
            "in": "header",
            "required": true,
            "description": "The event’s `id` — the same in every retry and replay.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Akteora-Delivery",
            "in": "header",
            "required": true,
            "description": "This delivery, as the delivery log names it.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "submission.ready"
                  },
                  "api_version": {
                    "type": "string",
                    "const": "v1"
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "org_id": {
                    "type": "string"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "live",
                      "test"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "link_id": {
                        "type": "string"
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "video",
                          "audio",
                          "text"
                        ]
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "pending",
                          "uploading",
                          "processing",
                          "ready",
                          "failed",
                          "rejected"
                        ]
                      },
                      "is_approved": {
                        "type": "boolean"
                      },
                      "is_public": {
                        "type": "boolean"
                      },
                      "duration_ms": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "created_at": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "brand_id",
                      "link_id",
                      "kind",
                      "status",
                      "is_approved",
                      "is_public",
                      "duration_ms",
                      "created_at"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "type",
                  "api_version",
                  "created_at",
                  "org_id",
                  "mode",
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                "type": "submission.ready",
                "api_version": "v1",
                "created_at": "2026-09-15T11:02:55.000Z",
                "org_id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                "mode": "live",
                "data": {
                  "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "kind": "video",
                  "status": "ready",
                  "is_approved": false,
                  "is_public": false,
                  "duration_ms": 48200,
                  "created_at": "2026-09-15T09:41:07.312Z"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges the event. Anything else — a redirect included — or no answer is retried 30 s, 5 min, 30 min, 2 h, 6 h and 12 h later."
          }
        }
      }
    },
    "submission.approved": {
      "post": {
        "operationId": "Webhook_submission_approved",
        "summary": "A testimonial was approved",
        "description": "Sent to every endpoint subscribed to `submission.approved`. Verify `X-Signature` before trusting the body: HMAC-SHA256 of `{t}.{raw body}` with the endpoint's secret, compared in constant time, and refuse a `t` more than 5 minutes from your clock. The same event can arrive more than once: deduplicate on `id`.",
        "tags": [
          "Webhook events"
        ],
        "parameters": [
          {
            "name": "X-Signature",
            "in": "header",
            "required": true,
            "description": "`t=<unix seconds>,v1=<hex HMAC-SHA256>`",
            "schema": {
              "type": "string"
            },
            "example": "t=1757937775,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd"
          },
          {
            "name": "X-Akteora-Event-Id",
            "in": "header",
            "required": true,
            "description": "The event’s `id` — the same in every retry and replay.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Akteora-Delivery",
            "in": "header",
            "required": true,
            "description": "This delivery, as the delivery log names it.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "submission.approved"
                  },
                  "api_version": {
                    "type": "string",
                    "const": "v1"
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "org_id": {
                    "type": "string"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "live",
                      "test"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "link_id": {
                        "type": "string"
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "video",
                          "audio",
                          "text"
                        ]
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "pending",
                          "uploading",
                          "processing",
                          "ready",
                          "failed",
                          "rejected"
                        ]
                      },
                      "is_approved": {
                        "type": "boolean"
                      },
                      "is_public": {
                        "type": "boolean"
                      },
                      "duration_ms": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "created_at": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "brand_id",
                      "link_id",
                      "kind",
                      "status",
                      "is_approved",
                      "is_public",
                      "duration_ms",
                      "created_at"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "type",
                  "api_version",
                  "created_at",
                  "org_id",
                  "mode",
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                "type": "submission.approved",
                "api_version": "v1",
                "created_at": "2026-09-15T11:02:55.000Z",
                "org_id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                "mode": "live",
                "data": {
                  "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "kind": "video",
                  "status": "ready",
                  "is_approved": true,
                  "is_public": true,
                  "duration_ms": 48200,
                  "created_at": "2026-09-15T09:41:07.312Z"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges the event. Anything else — a redirect included — or no answer is retried 30 s, 5 min, 30 min, 2 h, 6 h and 12 h later."
          }
        }
      }
    },
    "submission.rejected": {
      "post": {
        "operationId": "Webhook_submission_rejected",
        "summary": "A testimonial was rejected",
        "description": "Sent to every endpoint subscribed to `submission.rejected`. Verify `X-Signature` before trusting the body: HMAC-SHA256 of `{t}.{raw body}` with the endpoint's secret, compared in constant time, and refuse a `t` more than 5 minutes from your clock. The same event can arrive more than once: deduplicate on `id`.",
        "tags": [
          "Webhook events"
        ],
        "parameters": [
          {
            "name": "X-Signature",
            "in": "header",
            "required": true,
            "description": "`t=<unix seconds>,v1=<hex HMAC-SHA256>`",
            "schema": {
              "type": "string"
            },
            "example": "t=1757937775,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd"
          },
          {
            "name": "X-Akteora-Event-Id",
            "in": "header",
            "required": true,
            "description": "The event’s `id` — the same in every retry and replay.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Akteora-Delivery",
            "in": "header",
            "required": true,
            "description": "This delivery, as the delivery log names it.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "submission.rejected"
                  },
                  "api_version": {
                    "type": "string",
                    "const": "v1"
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "org_id": {
                    "type": "string"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "live",
                      "test"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "link_id": {
                        "type": "string"
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "video",
                          "audio",
                          "text"
                        ]
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "pending",
                          "uploading",
                          "processing",
                          "ready",
                          "failed",
                          "rejected"
                        ]
                      },
                      "is_approved": {
                        "type": "boolean"
                      },
                      "is_public": {
                        "type": "boolean"
                      },
                      "duration_ms": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "created_at": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "brand_id",
                      "link_id",
                      "kind",
                      "status",
                      "is_approved",
                      "is_public",
                      "duration_ms",
                      "created_at"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "type",
                  "api_version",
                  "created_at",
                  "org_id",
                  "mode",
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                "type": "submission.rejected",
                "api_version": "v1",
                "created_at": "2026-09-15T11:02:55.000Z",
                "org_id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                "mode": "live",
                "data": {
                  "id": "sub_01K5A3M2Q8WJ4T6V8X0Y2A4C6E",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "link_id": "lnk_01K59Y9C4XG5N0J8S2V7A1B3DE",
                  "kind": "video",
                  "status": "rejected",
                  "is_approved": false,
                  "is_public": false,
                  "duration_ms": 48200,
                  "created_at": "2026-09-15T09:41:07.312Z"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges the event. Anything else — a redirect included — or no answer is retried 30 s, 5 min, 30 min, 2 h, 6 h and 12 h later."
          }
        }
      }
    },
    "reel.ready": {
      "post": {
        "operationId": "Webhook_reel_ready",
        "summary": "A reel finished rendering",
        "description": "Sent to every endpoint subscribed to `reel.ready`. Verify `X-Signature` before trusting the body: HMAC-SHA256 of `{t}.{raw body}` with the endpoint's secret, compared in constant time, and refuse a `t` more than 5 minutes from your clock. The same event can arrive more than once: deduplicate on `id`.",
        "tags": [
          "Webhook events"
        ],
        "parameters": [
          {
            "name": "X-Signature",
            "in": "header",
            "required": true,
            "description": "`t=<unix seconds>,v1=<hex HMAC-SHA256>`",
            "schema": {
              "type": "string"
            },
            "example": "t=1757937775,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd"
          },
          {
            "name": "X-Akteora-Event-Id",
            "in": "header",
            "required": true,
            "description": "The event’s `id` — the same in every retry and replay.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Akteora-Delivery",
            "in": "header",
            "required": true,
            "description": "This delivery, as the delivery log names it.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "reel.ready"
                  },
                  "api_version": {
                    "type": "string",
                    "const": "v1"
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "org_id": {
                    "type": "string"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "live",
                      "test"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "render_id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "ready",
                          "failed"
                        ]
                      },
                      "error": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "brand_id",
                      "render_id",
                      "status",
                      "error"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "type",
                  "api_version",
                  "created_at",
                  "org_id",
                  "mode",
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                "type": "reel.ready",
                "api_version": "v1",
                "created_at": "2026-09-15T11:02:55.000Z",
                "org_id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                "mode": "live",
                "data": {
                  "id": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "render_id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                  "status": "ready",
                  "error": null
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges the event. Anything else — a redirect included — or no answer is retried 30 s, 5 min, 30 min, 2 h, 6 h and 12 h later."
          }
        }
      }
    },
    "reel.failed": {
      "post": {
        "operationId": "Webhook_reel_failed",
        "summary": "A reel could not be rendered",
        "description": "Sent to every endpoint subscribed to `reel.failed`. Verify `X-Signature` before trusting the body: HMAC-SHA256 of `{t}.{raw body}` with the endpoint's secret, compared in constant time, and refuse a `t` more than 5 minutes from your clock. The same event can arrive more than once: deduplicate on `id`.",
        "tags": [
          "Webhook events"
        ],
        "parameters": [
          {
            "name": "X-Signature",
            "in": "header",
            "required": true,
            "description": "`t=<unix seconds>,v1=<hex HMAC-SHA256>`",
            "schema": {
              "type": "string"
            },
            "example": "t=1757937775,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd"
          },
          {
            "name": "X-Akteora-Event-Id",
            "in": "header",
            "required": true,
            "description": "The event’s `id` — the same in every retry and replay.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Akteora-Delivery",
            "in": "header",
            "required": true,
            "description": "This delivery, as the delivery log names it.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "reel.failed"
                  },
                  "api_version": {
                    "type": "string",
                    "const": "v1"
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "org_id": {
                    "type": "string"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "live",
                      "test"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "brand_id": {
                        "type": "string"
                      },
                      "render_id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "ready",
                          "failed"
                        ]
                      },
                      "error": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "brand_id",
                      "render_id",
                      "status",
                      "error"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "type",
                  "api_version",
                  "created_at",
                  "org_id",
                  "mode",
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                "type": "reel.failed",
                "api_version": "v1",
                "created_at": "2026-09-15T11:02:55.000Z",
                "org_id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                "mode": "live",
                "data": {
                  "id": "rel_01K5A7H1C9P3R5T7V9X1Z3B5D7",
                  "brand_id": "brd_01K59Y7T3HR2D6FBJ3M1Q0W8ZK",
                  "render_id": "job_01K5A7J4F2K6M8P0R2T4V6X8Z0",
                  "status": "failed",
                  "error": "One of the testimonials in this reel was deleted before it could be rendered."
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges the event. Anything else — a redirect included — or no answer is retried 30 s, 5 min, 30 min, 2 h, 6 h and 12 h later."
          }
        }
      }
    },
    "export.ready": {
      "post": {
        "operationId": "Webhook_export_ready",
        "summary": "An export is ready to download",
        "description": "Sent to every endpoint subscribed to `export.ready`. Verify `X-Signature` before trusting the body: HMAC-SHA256 of `{t}.{raw body}` with the endpoint's secret, compared in constant time, and refuse a `t` more than 5 minutes from your clock. The same event can arrive more than once: deduplicate on `id`.",
        "tags": [
          "Webhook events"
        ],
        "parameters": [
          {
            "name": "X-Signature",
            "in": "header",
            "required": true,
            "description": "`t=<unix seconds>,v1=<hex HMAC-SHA256>`",
            "schema": {
              "type": "string"
            },
            "example": "t=1757937775,v1=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd"
          },
          {
            "name": "X-Akteora-Event-Id",
            "in": "header",
            "required": true,
            "description": "The event’s `id` — the same in every retry and replay.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Akteora-Delivery",
            "in": "header",
            "required": true,
            "description": "This delivery, as the delivery log names it.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "const": "export.ready"
                  },
                  "api_version": {
                    "type": "string",
                    "const": "v1"
                  },
                  "created_at": {
                    "type": "string"
                  },
                  "org_id": {
                    "type": "string"
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "live",
                      "test"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "format": {
                        "type": "string",
                        "enum": [
                          "csv",
                          "json",
                          "mp4",
                          "mp3",
                          "zip"
                        ]
                      },
                      "total_count": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "expires_at": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "format",
                      "total_count",
                      "expires_at"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "type",
                  "api_version",
                  "created_at",
                  "org_id",
                  "mode",
                  "data"
                ],
                "additionalProperties": false
              },
              "example": {
                "id": "evt_01K5B3F4A6C8E0G2J4M6P8R0T2",
                "type": "export.ready",
                "api_version": "v1",
                "created_at": "2026-09-15T11:02:55.000Z",
                "org_id": "org_01K4ZT8N2M6Q9R3V5X7B1D3F5H",
                "mode": "live",
                "data": {
                  "id": "exp_01K5A8B6D0F2H4K6M8P0R2T4V6",
                  "format": "csv",
                  "total_count": 128,
                  "expires_at": "2026-09-16T09:52:40.000Z"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Any 2xx within 10 seconds acknowledges the event. Anything else — a redirect included — or no answer is retried 30 s, 5 min, 30 min, 2 h, 6 h and 12 h later."
          }
        }
      }
    }
  }
}
