OpenAPI Specification
openapi: 3.1.0
info:
title: Quo Public Calls Webhooks 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 webhooks
name: Webhooks
paths:
/webhooks:
get:
tags:
- Webhooks
summary: Lists all webhooks
description: List all webhooks for an organization.
operationId: listHeaderVersionedWebhooks
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'
security:
- apiKey: []
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: array
items:
anyOf:
- type: object
required:
- id
- orgId
- label
- status
- url
- createdAt
- updatedAt
- events
- resourceIds
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:
- message.received
- message.delivered
resourceIds:
description: The unique identifiers of the phone numbers associated with the webhook.
examples:
- - PN1234
example:
- PN1234
anyOf:
- type: array
items:
pattern: ^PN(.*)$
type: string
- type: array
items:
const: '*'
type: string
- type: object
required:
- id
- orgId
- label
- status
- url
- createdAt
- updatedAt
- events
- resourceIds
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.completed
- call.ringing
- call.recording.completed
resourceIds:
description: The unique identifiers of the phone numbers associated with the webhook.
examples:
- - PN1234
example:
- PN1234
anyOf:
- type: array
items:
pattern: ^PN(.*)$
type: string
- type: array
items:
const: '*'
type: string
- type: object
required:
- id
- orgId
- label
- status
- url
- createdAt
- updatedAt
- events
- resourceIds
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.summary.completed
resourceIds:
description: The unique identifiers of the phone numbers associated with the webhook.
examples:
- - PN1234
example:
- PN1234
anyOf:
- type: array
items:
pattern: ^PN(.*)$
type: string
- type: array
items:
const: '*'
type: string
- type: object
required:
- id
- orgId
- label
- status
- url
- createdAt
- updatedAt
- events
- resourceIds
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.transcript.completed
resourceIds:
description: The unique identifiers of the phone numbers associated with the webhook.
examples:
- - PN1234
example:
- PN1234
anyOf:
- type: array
items:
pattern: ^PN(.*)$
type: string
- type: array
items:
const: '*'
type: string
- type: object
required:
- id
- orgId
- label
- status
- url
- createdAt
- updatedAt
- events
- resourceIds
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:
- contact.updated
- contact.deleted
resourceIds:
minItems: 1
maxItems: 1
type: array
items:
const: '*'
type: string
- type: object
required:
- id
- orgId
- label
- status
- url
- createdAt
- updatedAt
- events
- resourceIds
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
'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
re
# --- truncated at 32 KB (333 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openphone/refs/heads/main/openapi/openphone-webhooks-api-openapi.yml