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

# Create a new webhook

> Creates a versioned webhook through the unified endpoint when using the API version header.



## OpenAPI

````yaml https://openphone-public-api-prod.s3.us-west-2.amazonaws.com/public/openphone-public-api-2026-03-30-prod.json post /webhooks
openapi: 3.1.0
info:
  title: Quo Public API
  version: 1.0.0
  description: API for connecting with Quo.
  contact:
    name: Quo Support
    email: support@quo.com
    url: https://support.quo.com/
  termsOfService: https://www.quo.com/terms
servers:
  - description: Production server
    url: https://api.quo.com
security:
  - apiKey: []
tags:
  - description: Operations related to calls
    name: Calls
  - description: >-
      Operations related to call summaries, including AI-generated summaries and
      Sona voice assistant summaries
    name: Call Summaries
  - description: >-
      Operations related to call transcripts, including AI-generated transcripts
      and Sona voice assistant transcripts
    name: Call Transcripts
  - description: Operations related to contacts
    name: Contacts
  - description: Operations related to conversations
    name: Conversations
  - description: Operations related to text messages
    name: Messages
  - description: Operations related to phone numbers
    name: Phone Numbers
  - description: Operations related to users
    name: Users
  - description: Operations related to webhooks
    name: Webhooks
paths:
  /webhooks:
    post:
      tags:
        - Webhooks
      summary: Create a new webhook
      description: >-
        Creates a versioned webhook through the unified endpoint when using the
        API version header.
      operationId: createHeaderVersionedWebhook
      parameters:
        - in: header
          name: Quo-Api-Version
          required: true
          schema:
            type: string
            enum:
              - '2026-03-30'
            description: 'API version header. Supported values: 2026-03-30'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - events
                - url
              properties:
                events:
                  minItems: 1
                  type: array
                  items:
                    type: string
                    enum:
                      - call.answered
                      - call.completed
                      - call.forwarded
                      - call.menu.selected
                      - call.missed
                      - call.ringing
                      - call.recording.completed
                      - call.summary.completed
                      - call.transcript.completed
                      - call.voicemail.completed
                      - message.received
                      - message.delivered
                      - message.failed
                      - message.undelivered
                      - contact.updated
                      - contact.deleted
                      - task.assigned
                      - task.created
                      - task.completed
                      - task.updated
                      - task.deleted
                      - task.unassigned
                      - task.reopened
                      - task.duedate.removed
                      - task.duedate.updated
                      - task.overdue
                      - task.linked
                      - task.unlinked
                    description: Event type
                    examples:
                      - call.completed
                    example: call.completed
                url:
                  format: uri
                  description: The endpoint that receives events from the webhook.
                  examples:
                    - https://example.com/webhook
                  type: string
                  example: https://example.com/webhook
                resourceIds:
                  description: >-
                    Phone number IDs to filter activity events, or `["*"]` for
                    all. Omitting this field defaults to `["*"]`. Contact events
                    are always org-wide regardless of this setting.
                  examples:
                    - - PNabc123
                  example:
                    - PNabc123
                  anyOf:
                    - minItems: 1
                      type: array
                      items:
                        pattern: ^PN(.*)$
                        type: string
                    - minItems: 1
                      maxItems: 1
                      type: array
                      items:
                        const: '*'
                        type: string
                status:
                  type: string
                  enum:
                    - enabled
                    - disabled
                  default: enabled
                  description: The status of the webhook.
                  examples:
                    - enabled
                  example: enabled
                label:
                  description: The webhook's label.
                  examples:
                    - my webhook
                  type: string
                  example: my webhook
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    type: object
                    required:
                      - id
                      - orgId
                      - label
                      - status
                      - url
                      - createdAt
                      - updatedAt
                      - events
                      - resourceIds
                      - key
                    properties:
                      id:
                        description: Webhook identifier (stringified numeric id)
                        examples:
                          - '123'
                        pattern: ^[0-9]+$
                        type: string
                        example: '123'
                      orgId:
                        description: >-
                          The unique identifier of the organization the webhook
                          belongs to
                        examples:
                          - OR1223abc
                        pattern: ^OR(.*)$
                        type: string
                        example: OR1223abc
                      label:
                        anyOf:
                          - description: The webhook's label.
                            examples:
                              - my webhook label
                            type: string
                            example: my webhook label
                          - type: 'null'
                      status:
                        type: string
                        enum:
                          - enabled
                          - disabled
                        default: enabled
                        description: The status of the webhook.
                        examples:
                          - enabled
                        example: enabled
                      url:
                        format: uri
                        description: The endpoint that receives events from the webhook.
                        examples:
                          - https://example.com/
                        type: string
                        example: https://example.com/
                      createdAt:
                        description: >-
                          The date the webhook was created at, in ISO 8601
                          format.
                        examples:
                          - '2022-01-01T00:00:00Z'
                        format: date-time
                        type: string
                        example: '2022-01-01T00:00:00Z'
                      updatedAt:
                        description: >-
                          The date the webhook was updated at, in ISO 8601
                          format.
                        examples:
                          - '2022-01-01T00:00:00Z'
                        format: date-time
                        type: string
                        example: '2022-01-01T00:00:00Z'
                      apiVersion:
                        type: string
                        enum:
                          - '2026-03-30'
                        description: The persisted webhook payload version.
                        examples:
                          - '2026-03-30'
                        example: '2026-03-30'
                      events:
                        minItems: 1
                        type: array
                        items:
                          type: string
                          enum:
                            - call.answered
                            - call.completed
                            - call.forwarded
                            - call.menu.selected
                            - call.missed
                            - call.ringing
                            - call.recording.completed
                            - call.summary.completed
                            - call.transcript.completed
                            - call.voicemail.completed
                            - message.received
                            - message.delivered
                            - message.failed
                            - message.undelivered
                            - contact.updated
                            - contact.deleted
                            - task.assigned
                            - task.created
                            - task.completed
                            - task.updated
                            - task.deleted
                            - task.unassigned
                            - task.reopened
                            - task.duedate.removed
                            - task.duedate.updated
                            - task.overdue
                            - task.linked
                            - task.unlinked
                          description: Event type
                          examples:
                            - call.completed
                          example: call.completed
                      resourceIds:
                        description: >-
                          Phone number IDs to filter activity events, or `["*"]`
                          for all. Contact events are always org-wide regardless
                          of this setting.
                        examples:
                          - - PNabc123
                        example:
                          - PNabc123
                        anyOf:
                          - type: array
                            items:
                              pattern: ^PN(.*)$
                              type: string
                          - minItems: 1
                            maxItems: 1
                            type: array
                            items:
                              const: '*'
                              type: string
                      key:
                        description: >-
                          The webhook signing secret used to validate webhook
                          signatures.
                        examples:
                          - whsec_exampleSecret
                        type: string
                        example: whsec_exampleSecret
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - code
                  - status
                  - docs
                  - title
                properties:
                  message:
                    type: string
                  code:
                    const: '0300400'
                    type: string
                  status:
                    const: 400
                    type: number
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Bad Request
                    type: string
                  trace:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                        - path
                        - message
                        - schema
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                        value: {}
                        schema:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
              example:
                message: '/url: Expected required property, /url: Expected string'
                docs: https://quo.com/docs
                title: Bad Request
                errors:
                  - path: /url
                    message: Expected required property
                    schema:
                      type: String
                  - path: /url
                    message: Expected string
                    schema:
                      type: String
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - code
                  - status
                  - docs
                  - title
                properties:
                  message:
                    type: string
                  code:
                    const: '0300401'
                    type: string
                  status:
                    const: 401
                    type: number
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Unauthorized
                    type: string
                  trace:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                        - path
                        - message
                        - schema
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                        value: {}
                        schema:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
              example:
                message: You are unauthorized to access the webhook
                docs: https://quo.com/docs
                title: Unauthorized
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - code
                  - status
                  - docs
                  - title
                properties:
                  message:
                    type: string
                  code:
                    const: '0300403'
                    type: string
                  status:
                    const: 403
                    type: number
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Forbidden
                    type: string
                  trace:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                        - path
                        - message
                        - schema
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                        value: {}
                        schema:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
              example:
                message: You are forbidden to access the webhook
                docs: https://quo.com/docs
                title: Forbidden
        '500':
          description: Unknown Error
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - code
                  - status
                  - docs
                  - title
                properties:
                  message:
                    type: string
                  code:
                    const: '0301500'
                    type: string
                  status:
                    const: 500
                    type: number
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Unknown
                    type: string
                  trace:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                        - path
                        - message
                        - schema
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                        value: {}
                        schema:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
              example:
                message: An unknown error occurred
                docs: https://quo.com/docs
                title: Unknown Error
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      in: header
      name: Authorization
      type: apiKey

````