> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chatbridge.algosmiths.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Escalate a ticket to a different agent



## OpenAPI

````yaml /openapi.json post /api/v1/tickets/{ticket_id}/escalate/
openapi: 3.0.3
info:
  title: ChatBridge Public API
  version: 1.0.0
  description: >-
    Customer-facing REST API for ChatBridge — contacts, conversations, messages,
    templates, team, catalogue, tickets, and WhatsApp Flows. Authenticate with a
    workspace API key: `Authorization: Bearer cb_...`. See
    https://github.com/algosmiths/whatschat/blob/main/public_api.md for the full
    scope/versioning reference.
servers:
  - url: https://api.algosmiths.com
    description: Production
security: []
paths:
  /api/v1/tickets/{ticket_id}/escalate/:
    post:
      tags:
        - Tickets
      summary: Escalate a ticket to a different agent
      operationId: tickets_escalate_create
      parameters:
        - in: path
          name: ticket_id
          schema:
            type: integer
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TicketEscalateRequestRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TicketEscalateRequestRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/TicketEscalateRequestRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ticket'
          description: ''
      security:
        - ApiKeyAuth: []
        - tokenAuth: []
        - CookieAuth: []
components:
  schemas:
    TicketEscalateRequestRequest:
      type: object
      properties:
        escalate_to:
          type: integer
      required:
        - escalate_to
    Ticket:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        title:
          type: string
          maxLength: 255
        description:
          type: string
        type:
          $ref: '#/components/schemas/Type1efEnum'
        severity:
          oneOf:
            - $ref: '#/components/schemas/SeverityEnum'
            - $ref: '#/components/schemas/BlankEnum'
        priority:
          $ref: '#/components/schemas/PriorityEnum'
        source:
          $ref: '#/components/schemas/Source60dEnum'
        pipeline:
          type: integer
        pipeline_name:
          type: string
          readOnly: true
        stage:
          type: integer
        stage_name:
          type: string
          readOnly: true
        stage_color:
          type: string
          readOnly: true
        receiver:
          type: integer
        receiver_name:
          type: string
          readOnly: true
        receiver_phone:
          type: string
          readOnly: true
        assigned_to:
          type: integer
          nullable: true
        assigned_to_name:
          type: string
          readOnly: true
        assigned_inbox:
          type: integer
          nullable: true
        watchers:
          type: array
          items:
            $ref: '#/components/schemas/User'
          readOnly: true
        parent_ticket:
          type: integer
          nullable: true
        sub_tickets:
          type: array
          items:
            $ref: '#/components/schemas/TicketSummary'
          readOnly: true
        duplicate_of:
          type: integer
          readOnly: true
          nullable: true
        duplicates:
          type: array
          items:
            $ref: '#/components/schemas/TicketSummary'
          readOnly: true
        due_at:
          type: string
          format: date-time
          nullable: true
        outcome:
          oneOf:
            - $ref: '#/components/schemas/OutcomeEnum'
            - $ref: '#/components/schemas/BlankEnum'
        reopened_count:
          type: integer
          readOnly: true
        last_customer_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        sla_policy:
          type: integer
          nullable: true
        first_response_at:
          type: string
          format: date-time
          nullable: true
        first_response_sla:
          type: string
          format: date-time
          nullable: true
        resolution_sla:
          type: string
          format: date-time
          nullable: true
        sla_paused_at:
          type: string
          format: date-time
          nullable: true
        sla_paused_duration:
          type: string
        sla_breached:
          type: boolean
        escalated_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        escalated_to:
          type: integer
          readOnly: true
          nullable: true
        escalated_to_name:
          type: string
          readOnly: true
        tags: {}
        custom_fields: {}
        created_by:
          type: integer
          readOnly: true
          nullable: true
        comment_count:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - assigned_to_name
        - comment_count
        - created_at
        - created_by
        - duplicate_of
        - duplicates
        - escalated_at
        - escalated_to
        - escalated_to_name
        - id
        - last_customer_at
        - pipeline
        - pipeline_name
        - receiver
        - receiver_name
        - receiver_phone
        - reopened_count
        - stage
        - stage_color
        - stage_name
        - sub_tickets
        - title
        - updated_at
        - watchers
    Type1efEnum:
      enum:
        - complaint
        - refund
        - dispute
        - bug
        - feature
        - review
        - approval
        - ops
        - sales
        - other
      type: string
      description: |-
        * `complaint` - Complaint
        * `refund` - Refund
        * `dispute` - Dispute
        * `bug` - Bug
        * `feature` - Feature Request
        * `review` - Review
        * `approval` - Approval
        * `ops` - Ops
        * `sales` - Sales
        * `other` - Other
    SeverityEnum:
      enum:
        - sev1
        - sev2
        - sev3
        - sev4
      type: string
      description: |-
        * `sev1` - Sev1 — Critical
        * `sev2` - Sev2 — High
        * `sev3` - Sev3 — Medium
        * `sev4` - Sev4 — Low
    BlankEnum:
      enum:
        - ''
    PriorityEnum:
      enum:
        - low
        - normal
        - high
        - urgent
      type: string
      description: |-
        * `low` - Low
        * `normal` - Normal
        * `high` - High
        * `urgent` - Urgent
    Source60dEnum:
      enum:
        - whatsapp
        - manual
        - api
      type: string
      description: |-
        * `whatsapp` - WhatsApp
        * `manual` - Manual
        * `api` - API
    User:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        username:
          type: string
          description: >-
            Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+$
          maxLength: 150
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        email:
          title: Email address
          oneOf:
            - type: string
              format: email
              maxLength: 254
            - type: string
              maxLength: 0
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        deleted_at:
          type: string
          format: date-time
          nullable: true
        uid:
          type: string
          maxLength: 250
        is_verified:
          type: boolean
        profile_picture:
          type: string
          maxLength: 500
        locale:
          type: string
          maxLength: 10
        phone_number:
          type: string
          maxLength: 15
        name:
          type: string
          maxLength: 255
        source:
          $ref: '#/components/schemas/Source4f9Enum'
        last_login_source:
          oneOf:
            - $ref: '#/components/schemas/LastLoginSourceEnum'
            - $ref: '#/components/schemas/BlankEnum'
        country:
          type: string
          maxLength: 2
        currency:
          type: string
          maxLength: 3
        referral_code:
          type: string
          nullable: true
          maxLength: 6
        wallet_balance:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
        referred_by:
          type: integer
          nullable: true
      required:
        - created_at
        - id
        - updated_at
        - username
    TicketSummary:
      type: object
      description: |-
        Minimal ticket shape for sub_tickets/duplicates nested lists — avoids
        recursing into the full TicketSerializer (which would re-nest these same
        relations indefinitely).
      properties:
        id:
          type: integer
          readOnly: true
        title:
          type: string
          maxLength: 255
        stage_name:
          type: string
          readOnly: true
      required:
        - id
        - stage_name
        - title
    OutcomeEnum:
      enum:
        - resolved
        - refunded
        - rejected
        - escalated_external
      type: string
      description: |-
        * `resolved` - Resolved
        * `refunded` - Refunded
        * `rejected` - Rejected
        * `escalated_external` - Escalated externally
    Source4f9Enum:
      enum:
        - unknown
        - google
        - facebook
        - fb_cat
        - email
      type: string
      description: |-
        * `unknown` - UNKNOWN
        * `google` - GOOGLE
        * `facebook` - FACEBOOK
        * `fb_cat` - FACEBOOK CATALOGUE
        * `email` - EMAIL AND PASSWORD
    LastLoginSourceEnum:
      enum:
        - unknown
        - google
        - facebook
        - fb_cat
        - email
      type: string
      description: |-
        * `unknown` - UNKNOWN
        * `google` - GOOGLE
        * `facebook` - FACEBOOK
        * `fb_cat` - FACEBOOK CATALOGUE
        * `email` - EMAIL AND PASSWORD
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: cb_...
      description: >-
        Workspace API key, e.g. `Authorization: Bearer cb_live_...`. Create one
        in Settings → API Keys. See public_api.md § 3 for scopes.
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
    CookieAuth:
      type: apiKey
      in: cookie
      name: token
      description: Dashboard session cookie — internal use only, not the public contract.

````