{
  "openapi": "3.0.1",
  "info": {
    "title": "Cconnect Customer API",
    "description": "Company-scoped REST API for Cconnect Desk and Chat. Bearer credentials are issued by your company administrator. Public documentation does not grant data access. Operations require CustomerApi:Enabled on the API deployment.",
    "contact": {
      "name": "Cconnect",
      "url": "https://cconnect.online"
    },
    "version": "1.1.0"
  },
  "servers": [
    {
      "url": "https://cconnect.online",
      "description": "Cconnect API server (separate from developers.cconnect.online)"
    }
  ],
  "paths": {
    "/api/v1/channels/whatsapp": {
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "List WhatsApp channels",
        "description": "Returns safe channel metadata. Provider access tokens are never exposed.\n\nRequired scope: `channels:read`. Required product: `chat`.",
        "operationId": "ListWhatsAppChannels",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number (1–1000).",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Results per page (1–100).",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiWhatsAppChannelApiList"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "channels:read",
        "x-required-product": "chat"
      }
    },
    "/api/v1/channels/email": {
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "List email channels",
        "description": "Returns safe email channel metadata. Mailbox credentials, routing secrets and provider URLs are excluded.\n\nRequired scope: `channels:read`. Required product: `desk`.",
        "operationId": "ListEmailChannels",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number (1–1000).",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Results per page (1–100).",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiEmailChannelApiList"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "channels:read",
        "x-required-product": "desk"
      }
    },
    "/api/v1/conversations": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "List conversations",
        "description": "Returns company-owned conversations without embedding message history. Filters: status, updated_since.\n\nRequired scope: `conversations:read`. Required product: `chat`.",
        "operationId": "ListConversations",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number (1–1000).",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Results per page (1–100).",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "default": 25
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "enum": [
                "open",
                "resolved"
              ],
              "type": "string"
            }
          },
          {
            "name": "updated_since",
            "in": "query",
            "description": "Inclusive lower bound, ISO 8601 timestamp with timezone. Pages are live; changes during pagination may shift results. Deduplicate IDs and overlap sync windows.",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2026-10-01T00:00:00Z"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiConversationApiList"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "conversations:read",
        "x-required-product": "chat"
      }
    },
    "/api/v1/conversations/{id}": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "Get a conversation",
        "description": "Use the opaque conversation ID returned by the list endpoint.\n\nRequired scope: `conversations:read`. Required product: `chat`.",
        "operationId": "GetConversation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiConversationApiData"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "conversations:read",
        "x-required-product": "chat"
      }
    },
    "/api/v1/conversations/{id}/messages": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "List conversation messages",
        "description": "Messages ordered by timestamp ascending, then id. Includes media metadata; private storage paths and provider credentials are excluded.\n\nRequired scope: `conversations:read`. Required product: `chat`.",
        "operationId": "ListConversationMessages",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number (1–1000).",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Results per page (1–100).",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiMessageApiList"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "conversations:read",
        "x-required-product": "chat"
      }
    },
    "/api/v1/me": {
      "get": {
        "tags": [
          "Integration"
        ],
        "summary": "Get integration identity",
        "description": "Returns your company, current product entitlements and credential scopes.",
        "operationId": "GetIntegrationIdentity",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiMeApiData"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/messages": {
      "post": {
        "tags": [
          "Messaging"
        ],
        "summary": "Send a message",
        "description": "Queues WhatsApp text or an approved template, or an email reply with ticket_id. Requires whatsapp:send + Chat or email:send + Desk. Email uses the ticket's configured Gmail/SMTP sender and requester; omit to. SMS and attachments are not supported. Idempotent retries return the original acceptance with the same message ID. Check `GET /api/v1/messages/{id}` for current status.",
        "operationId": "SendMessage",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Unique per operation and company, 1–128 visible ASCII characters. Identical retries return the original 202 acceptance and message ID. Changed requests return 409. Retained for the company lifetime. Check the message resource for current status.",
            "required": true,
            "schema": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "example": "crm-reply-1042"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiSendMessageRequest"
              },
              "example": {
                "channel": "whatsapp",
                "channel_id": "YOUR_WHATSAPP_CHANNEL_ID",
                "to": "+628123456789",
                "text": "Your support request is being reviewed."
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "headers": {
              "Location": {
                "description": "Message status resource.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotency-Replayed": {
                "description": "true for an identical retry.",
                "schema": {
                  "type": "boolean"
                }
              },
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOutboundMessageApiData"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tickets/{id}/reply": {
      "post": {
        "tags": [
          "Messaging"
        ],
        "summary": "Reply to a ticket by email",
        "description": "Queues a plain-text reply to the ticket requester through its configured Gmail/SMTP mailbox. Requires an active ticket, requester email and enabled outgoing mailbox. Other ticket channels are not supported by this operation.\n\nRequired scope: `email:send`.",
        "operationId": "ReplyToTicket",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Unique per operation and company, 1–128 visible ASCII characters. Identical retries return the original 202 acceptance and message ID. Changed requests return 409. Retained for the company lifetime. Check the message resource for current status.",
            "required": true,
            "schema": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "example": "crm-reply-1042"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiTicketReplyRequest"
              },
              "example": {
                "text": "We have resolved your support request."
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "headers": {
              "Location": {
                "description": "Message status resource.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotency-Replayed": {
                "description": "true for an identical retry.",
                "schema": {
                  "type": "boolean"
                }
              },
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOutboundMessageApiData"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "email:send",
        "x-required-product": "desk"
      }
    },
    "/api/v1/messages/{id}": {
      "get": {
        "tags": [
          "Messaging"
        ],
        "summary": "Get message status",
        "description": "Looks up a message created through the customer API. Status: queued, sending, sent, delivered, read, failed or delivery_unknown. sent means provider acceptance, not recipient delivery. Email supports sent/failed/delivery_unknown, without delivery or read receipts. A delivery_unknown message is never automatically resent.\n\nRequired scope: `messages:read`.",
        "operationId": "GetOutboundMessage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiOutboundMessageApiData"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "messages:read"
      }
    },
    "/api/v1/channels/whatsapp/{id}/templates": {
      "get": {
        "tags": [
          "Messaging"
        ],
        "summary": "List approved WhatsApp templates",
        "description": "Lists up to 50 approved templates. Pass meta.next_after as after while meta.has_more is true. supported indicates whether the template works with this release: positional text parameters in the body; static text headers/buttons are allowed. Media headers, named parameters and dynamic buttons are unsupported.\n\nRequired scope: `whatsapp:send`.",
        "operationId": "ListWhatsAppTemplates",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "description": "Opaque cursor from meta.next_after. Omit for the first page.",
            "schema": {
              "maxLength": 2048,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiTemplateList"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "whatsapp:send",
        "x-required-product": "chat"
      }
    },
    "/api/v1/tickets": {
      "get": {
        "tags": [
          "Tickets"
        ],
        "summary": "List tickets",
        "description": "Company-owned tickets ordered by updated_at descending, then id. Filters: status, priority, updated_since.\n\nRequired scope: `tickets:read`. Required product: `desk`.",
        "operationId": "ListTickets",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number (1–1000).",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Results per page (1–100).",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "default": 25
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "enum": [
                "open",
                "pending",
                "resolved",
                "closed"
              ],
              "type": "string"
            }
          },
          {
            "name": "updated_since",
            "in": "query",
            "description": "Inclusive lower bound, ISO 8601 timestamp with timezone. Pages are live; changes during pagination may shift results. Deduplicate IDs and overlap sync windows.",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2026-10-01T00:00:00Z"
          },
          {
            "name": "priority",
            "in": "query",
            "schema": {
              "enum": [
                "low",
                "normal",
                "high",
                "urgent"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiTicketApiList"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "tickets:read",
        "x-required-product": "desk"
      },
      "post": {
        "tags": [
          "Tickets"
        ],
        "summary": "Create a ticket",
        "description": "Creates a durable support ticket without sending email or WhatsApp messages. Requires Idempotency-Key; retries return the original response. Linking a conversation also requires conversations:read.\n\nRequired scope: `tickets:write`. Required product: `desk`.",
        "operationId": "CreateTicket",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Unique key for a ticket creation (1–128 visible ASCII characters). Retained for the company's lifetime. Reusing a key with a different request returns 409; identical retries return the original 201 response.",
            "required": true,
            "schema": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "example": "crm-case-1042"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiCreateTicketRequest"
              },
              "example": {
                "subject": "Customer cannot sign in",
                "description": "A support request synchronized from our CRM.",
                "priority": "normal"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "Location": {
                "description": "Relative URL of the created ticket.",
                "schema": {
                  "type": "string"
                }
              },
              "Idempotency-Replayed": {
                "description": "true when this is a stored response to an identical retry.",
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiTicketApiData"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "tickets:write",
        "x-required-product": "desk"
      }
    },
    "/api/v1/tickets/{id}": {
      "get": {
        "tags": [
          "Tickets"
        ],
        "summary": "Get a ticket",
        "description": "Returns a ticket owned by your company. Inaccessible and missing IDs both return 404.\n\nRequired scope: `tickets:read`. Required product: `desk`.",
        "operationId": "GetTicket",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiTicketApiData"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "tickets:read",
        "x-required-product": "desk"
      },
      "patch": {
        "tags": [
          "Tickets"
        ],
        "summary": "Update a ticket",
        "description": "Partially updates status, priority, assignee, group or custom fields. assignee_id must belong to your company; an empty string removes the assignee. Custom fields are merged; an empty value clears an optional field.\n\nRequired scope: `tickets:write`. Required product: `desk`.",
        "operationId": "UpdateTicket",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiUpdateTicketRequest"
              },
              "example": {
                "status": "pending",
                "priority": "high"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiTicketApiData"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "tickets:write",
        "x-required-product": "desk"
      }
    },
    "/api/v1/ticket-fields": {
      "get": {
        "tags": [
          "Tickets"
        ],
        "summary": "List ticket fields",
        "description": "Returns your company's custom field definitions. Use the field UUID as the custom_fields key.\n\nRequired scope: `ticket_fields:read`. Required product: `desk`.",
        "operationId": "ListTicketFields",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number (1–1000).",
            "schema": {
              "maximum": 1000,
              "minimum": 1,
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Results per page (1–100).",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiTicketFieldApiList"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "Retry-After": {
                "description": "Seconds until a retry is allowed.",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "headers": {
              "X-Request-Id": {
                "description": "Support correlation ID.",
                "schema": {
                  "type": "string"
                }
              },
              "X-RateLimit-Limit": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Company quota metadata (reset is Unix seconds). Present after bearer authentication and company subscription validation.",
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "x-required-scope": "ticket_fields:read",
        "x-required-product": "desk"
      }
    }
  },
  "components": {
    "schemas": {
      "ApiConversation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "channel": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "channel_id": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ApiConversationApiData": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiConversation"
          }
        },
        "additionalProperties": false
      },
      "ApiConversationApiList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiConversation"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/ApiPagination"
          }
        },
        "additionalProperties": false
      },
      "ApiCreateTicketRequest": {
        "required": [
          "description",
          "subject"
        ],
        "type": "object",
        "properties": {
          "subject": {
            "maxLength": 160,
            "minLength": 3,
            "type": "string"
          },
          "description": {
            "maxLength": 10000,
            "minLength": 1,
            "type": "string"
          },
          "priority": {
            "pattern": "^(low|normal|high|urgent)$",
            "type": "string",
            "default": "normal"
          },
          "conversation_id": {
            "maxLength": 4096,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "custom_fields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiEmailChannel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "support_address": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiEmailChannelApiList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiEmailChannel"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/ApiPagination"
          }
        },
        "additionalProperties": false
      },
      "ApiError": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "field": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          },
          "request_id": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ApiMe": {
        "type": "object",
        "properties": {
          "company_id": {
            "type": "string",
            "format": "uuid"
          },
          "company_slug": {
            "type": "string"
          },
          "company_name": {
            "type": "string"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "credential_id": {
            "type": "string",
            "format": "uuid"
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "ApiMeApiData": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiMe"
          }
        },
        "additionalProperties": false
      },
      "ApiMessage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "sender_id": {
            "type": "string"
          },
          "sender_name": {
            "type": "string"
          },
          "media_type": {
            "type": "string",
            "nullable": true
          },
          "media_mime_type": {
            "type": "string",
            "nullable": true
          },
          "media_file_name": {
            "type": "string",
            "nullable": true
          },
          "media_caption": {
            "type": "string",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ApiMessageApiList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiMessage"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/ApiPagination"
          }
        },
        "additionalProperties": false
      },
      "ApiOutboundMessage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "channel": {
            "enum": [
              "whatsapp",
              "email"
            ],
            "type": "string"
          },
          "channel_id": {
            "type": "string"
          },
          "status": {
            "enum": [
              "queued",
              "sending",
              "sent",
              "delivered",
              "read",
              "failed",
              "delivery_unknown"
            ],
            "type": "string"
          },
          "error_code": {
            "type": "string",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ApiOutboundMessageApiData": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiOutboundMessage"
          }
        },
        "additionalProperties": false
      },
      "ApiPagination": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "per_page": {
            "type": "integer",
            "format": "int32"
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiSendMessageRequest": {
        "required": [
          "channel",
          "channel_id"
        ],
        "type": "object",
        "properties": {
          "channel": {
            "minLength": 1,
            "pattern": "^(whatsapp|email)$",
            "enum": [
              "whatsapp",
              "email"
            ],
            "type": "string"
          },
          "channel_id": {
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "to": {
            "maxLength": 16,
            "minLength": 0,
            "type": "string",
            "description": "E.164 number with a leading +, required for WhatsApp. Omit for email.",
            "nullable": true
          },
          "text": {
            "maxLength": 10000,
            "minLength": 0,
            "type": "string",
            "description": "WhatsApp text: 1–4096 characters within the 24-hour reply window. Email reply: 1–10000 characters. Omit when using a template.",
            "nullable": true
          },
          "template": {
            "$ref": "#/components/schemas/ApiWhatsAppTemplateRequest"
          },
          "ticket_id": {
            "type": "string",
            "description": "Required for email replies; the ticket must use channel_id. Omit for WhatsApp.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiTemplateList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiWhatsAppTemplate"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/ApiTemplatePagination"
          }
        },
        "additionalProperties": false
      },
      "ApiTemplatePagination": {
        "type": "object",
        "properties": {
          "next_after": {
            "type": "string",
            "nullable": true
          },
          "has_more": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiTicket": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "number": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "priority": {
            "type": "string"
          },
          "channel": {
            "type": "string"
          },
          "conversation_id": {
            "type": "string",
            "nullable": true
          },
          "assignee_id": {
            "type": "string",
            "nullable": true
          },
          "group_name": {
            "type": "string"
          },
          "custom_fields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ApiTicketApiData": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApiTicket"
          }
        },
        "additionalProperties": false
      },
      "ApiTicketApiList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTicket"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/ApiPagination"
          }
        },
        "additionalProperties": false
      },
      "ApiTicketField": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "options": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "ApiTicketFieldApiList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiTicketField"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/ApiPagination"
          }
        },
        "additionalProperties": false
      },
      "ApiTicketReplyRequest": {
        "required": [
          "text"
        ],
        "type": "object",
        "properties": {
          "text": {
            "maxLength": 10000,
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ApiUpdateTicketRequest": {
        "type": "object",
        "properties": {
          "status": {
            "pattern": "^(open|pending|resolved|closed)$",
            "type": "string",
            "nullable": true
          },
          "priority": {
            "pattern": "^(low|normal|high|urgent)$",
            "type": "string",
            "nullable": true
          },
          "assignee_id": {
            "maxLength": 36,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "group_name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "nullable": true
          },
          "custom_fields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiWhatsAppChannel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "display_phone_number": {
            "type": "string"
          },
          "verified_name": {
            "type": "string"
          },
          "quality_rating": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ApiWhatsAppChannelApiList": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiWhatsAppChannel"
            }
          },
          "meta": {
            "$ref": "#/components/schemas/ApiPagination"
          }
        },
        "additionalProperties": false
      },
      "ApiWhatsAppTemplate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "body_parameter_count": {
            "type": "integer",
            "format": "int32"
          },
          "supported": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiWhatsAppTemplateRequest": {
        "required": [
          "language",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "pattern": "^[a-z0-9_]{1,512}$",
            "type": "string"
          },
          "language": {
            "minLength": 1,
            "pattern": "^[a-z]{2,3}(_[A-Za-z]{2,4})?$",
            "type": "string"
          },
          "body_parameters": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "maxLength": 1024,
              "minLength": 1,
              "type": "string"
            },
            "description": "Positional body text parameters in template order; each must contain 1–1024 characters.",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "CustomerBearer": {
        "type": "http",
        "description": "Company-owned API token. Supply Authorization: Bearer YOUR_CCONNECT_API_TOKEN. Never use provider tokens or member passwords. Tokens are shown only once when created.",
        "scheme": "bearer",
        "bearerFormat": "Cconnect API token"
      }
    }
  },
  "security": [
    {
      "CustomerBearer": [ ]
    }
  ],
  "externalDocs": {
    "description": "Cconnect developer portal",
    "url": "https://developers.cconnect.online"
  }
}
