OpenPhone Contacts API

Operations related to contacts

Operations 7

GET /contacts List contacts #
GET /contacts/{contactId} Get a contact by ID #
POST /v1/contacts Create a contact #
GET /v1/contacts List contacts #
GET /v1/contacts/{id} Get a contact by ID #
PATCH /v1/contacts/{id} Update a contact by ID #
DELETE /v1/contacts/{id} Delete a contact #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openphone-contacts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openphone-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Quo Public Calls Contacts 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 contacts
  name: Contacts
paths:
  /contacts:
    get:
      tags:
      - Contacts
      summary: List contacts
      description: Get a paginated list of contacts.
      operationId: listContacts
      parameters:
      - in: query
        name: externalIds
        required: false
        schema:
          anyOf:
          - description: Filter by external IDs
            maxItems: 50
            type: array
            items:
              type: string
          - type: 'null'
      - in: query
        name: sources
        required: false
        schema:
          anyOf:
          - description: Filter by source labels
            maxItems: 50
            type: array
            items:
              type: string
          - type: 'null'
      - in: query
        name: limit
        required: false
        schema:
          anyOf:
          - minimum: 1
            maximum: 50
            default: 10
            description: Page size
            type: integer
          - type: 'null'
      - in: query
        name: after
        required: false
        schema:
          anyOf:
          - examples:
            - eyJsYXN0SWQiOiJVU211a09NaXBhIn0
            type: string
          - type: 'null'
      - 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
                - nextCursor
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - createdAt
                      - updatedAt
                      - actorId
                      properties:
                        id:
                          description: The ID of the contact.
                          examples:
                          - 6a145ff26212a192852c856e
                          pattern: ^(.*)$
                          type: string
                          example: 6a145ff26212a192852c856e
                        externalId:
                          anyOf:
                          - description: The external ID of the contact.
                            examples:
                            - '1234567890'
                            type: string
                            example: '1234567890'
                          - type: 'null'
                        source:
                          anyOf:
                          - description: The source of the contact.
                            examples:
                            - public-api
                            type: string
                            example: public-api
                          - type: 'null'
                        sourceUrl:
                          anyOf:
                          - description: A link to the contact in the source system.
                            format: uri
                            examples:
                            - https://example.com/contacts/001
                            minLength: 1
                            maxLength: 200
                            type: string
                            example: https://example.com/contacts/001
                          - type: 'null'
                        firstName:
                          anyOf:
                          - description: The first name of the contact.
                            examples:
                            - John
                            type: string
                            example: John
                          - type: 'null'
                        lastName:
                          anyOf:
                          - description: The last name of the contact.
                            examples:
                            - Doe
                            type: string
                            example: Doe
                          - type: 'null'
                        company:
                          anyOf:
                          - description: The company of the contact.
                            examples:
                            - Quo
                            type: string
                            example: Quo
                          - type: 'null'
                        role:
                          anyOf:
                          - description: The role of the contact.
                            examples:
                            - admin
                            type: string
                            example: admin
                          - type: 'null'
                        createdAt:
                          description: The timestamp of the contact creation.
                          examples:
                          - '2021-01-01T00:00:00Z'
                          format: date-time
                          type: string
                          example: '2021-01-01T00:00:00Z'
                        updatedAt:
                          description: The timestamp of the contact update.
                          examples:
                          - '2021-01-01T00:00:00Z'
                          format: date-time
                          type: string
                          example: '2021-01-01T00:00:00Z'
                        actorId:
                          description: The actor ID of the contact.
                          examples:
                          - US123abc
                          example: US123abc
                          anyOf:
                          - pattern: ^US(.*)$
                            type: string
                          - pattern: ^SYU(.*)$
                            type: string
                  nextCursor:
                    description: Cursor for the next page, or null when there are no more pages.
                    examples:
                    - eyJsYXN0SWQiOiJVU211a09NaXBhIn0
                    example: eyJsYXN0SWQiOiJVU211a09NaXBhIn0
                    anyOf:
                    - type: string
                    - type: 'null'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - message
                - docs
                - title
                properties:
                  message:
                    type: string
                  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: The input was invalid
                docs: https://quo.com/docs
                title: Bad Request
                trace: '6897907457496870895'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                required:
                - message
                - docs
                - title
                properties:
                  message:
                    type: string
                  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: The contact was not found
                docs: https://quo.com/docs
                title: Not Found
                trace: '6897907457496870895'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                required:
                - message
                - docs
                - title
                properties:
                  message:
                    type: string
                  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: User is forbidden to perform this action
                docs: https://quo.com/docs
                title: Forbidden
                trace: '6897907457496870895'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - message
                - docs
                - title
                properties:
                  message:
                    type: string
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Not Found
                    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: User is unauthorized to perform this action
                docs: https://quo.com/docs
                title: Unauthorized
                trace: '6897907457496870895'
        '500':
          description: Unknown Error
          content:
            application/json:
              schema:
                type: object
                required:
                - message
                - docs
                - title
                properties:
                  message:
                    type: string
                  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 has occurred
                docs: https://quo.com/docs
                title: Unknown Error
                trace: '6897907457496870895'
  /contacts/{contactId}:
    get:
      tags:
      - Contacts
      summary: Get a contact by ID
      description: Retrieve detailed information about a specific contact in your Quo workspace using the contact's unique identifier.
      operationId: getContactById
      parameters:
      - in: path
        name: contactId
        required: true
        schema:
          description: The unique identifier of the contact being retrieved.
          examples:
          - 6a145ff26212a192852c856e
          pattern: ^(.*)$
          type: string
        example: 6a145ff26212a192852c856e
      - 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: object
                    required:
                    - id
                    - createdAt
                    - updatedAt
                    - actorId
                    properties:
                      id:
                        description: The ID of the contact.
                        examples:
                        - 6a145ff26212a192852c856e
                        pattern: ^(.*)$
                        type: string
                        example: 6a145ff26212a192852c856e
                      externalId:
                        anyOf:
                        - description: The external ID of the contact.
                          examples:
                          - '1234567890'
                          type: string
                          example: '1234567890'
                        - type: 'null'
                      source:
                        anyOf:
                        - description: The source of the contact.
                          examples:
                          - public-api
                          type: string
                          example: public-api
                        - type: 'null'
                      sourceUrl:
                        anyOf:
                        - description: A link to the contact in the source system.
                          format: uri
                          examples:
                          - https://example.com/contacts/001
                          minLength: 1
                          maxLength: 200
                          type: string
                          example: https://example.com/contacts/001
                        - type: 'null'
                      firstName:
                        anyOf:
                        - description: The first name of the contact.
                          examples:
                          - John
                          type: string
                          example: John
                        - type: 'null'
                      lastName:
                        anyOf:
                        - description: The last name of the contact.
                          examples:
                          - Doe
                          type: string
                          example: Doe
                        - type: 'null'
                      company:
                        anyOf:
                        - description: The company of the contact.
                          examples:
                          - Quo
                          type: string
                          example: Quo
                        - type: 'null'
                      role:
                        anyOf:
                        - description: The role of the contact.
                          examples:
                          - admin
                          type: string
                          example: admin
                        - type: 'null'
                      createdAt:
                        description: The timestamp of the contact creation.
                        examples:
                        - '2021-01-01T00:00:00Z'
                        format: date-time
                        type: string
                        example: '2021-01-01T00:00:00Z'
                      updatedAt:
                        description: The timestamp of the contact update.
                        examples:
                        - '2021-01-01T00:00:00Z'
                        format: date-time
                        type: string
                        example: '2021-01-01T00:00:00Z'
                      actorId:
                        description: The actor ID of the contact.
                        examples:
                        - US123abc
                        example: US123abc
                        anyOf:
                        - pattern: ^US(.*)$
                          type: string
                        - pattern: ^SYU(.*)$
                          type: string
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - message
                - docs
                - title
                properties:
                  message:
                    type: string
                  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: The input was invalid
                docs: https://quo.com/docs
                title: Bad Request
                trace: '6897907457496870895'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                required:
                - message
                - docs
                - title
                properties:
                  message:
                    type: string
                  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: The contact was not found
                docs: https://quo.com/docs
                title: Not Found
                trace: '6897907457496870895'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                required:
                - message
                - docs
                - title
                properties:
                  message:
                    type: string
                  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: User is forbidden to perform this action
                docs: https://quo.com/docs
                title: Forbidden
                trace: '6897907457496870895'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                - message
                - docs
                - title
                properties:
                  message:
                    type: string
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Not Found
                    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: User is unauthorized to perform this action
                docs: https://quo.com/docs
                title: Unauthorized
                trace: '6897907457496870895'
        '500':
          description: Unknown Error
          content:
            application/json:
              schema:
                type: object
                required:
                - message
                - docs
                - title
                properties:
                  message:
                    type: string
                  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 has occurred
                docs: https://quo.com/docs
                title: Unknown Error
                trace: '6897907457496870895'
  /v1/contacts:
    post:
      tags:
      - Contacts
      summary: Create a contact
      description: Create a contact for a workspace.
      operationId: createContact_v1
      parameters: []
      security:
      - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - defaultFields
              properties:
                defaultFields:
                  type: object
                  required:
                  - firstName
                  properties:
                    company:
                      anyOf:
                      - description: The contact's company name.
                        examples:
                        - Quo
                        type: string
                        example: Quo
                      - type: 'null'
                    emails:
                      type: array
                      items:
                        type: object
                        required:
                        - name
                        - value
                        properties:
                          name:
                            description: The name for the contact's email address.
                            examples:
                            - company email
                            type: string
                            example: company email
                          value:
                            anyOf:
                            - description: The contact's email address.
                              examples:
                              - abc@example.com
                              type: string
                              example: abc@example.com
                            - type: 'null'
                    firstName:
                      anyOf:
                      - description: The contact's first name.
                        examples:
                        - John
                        type: string
                        example: John
                      - type: 'null'
                    lastName:
                      anyOf:
                      - description: The contact's last name.
                        examples:
                        - Doe
                        type: string
                        example: Doe
                      - type: 'null'
                    phoneNumbers:
                      type: array
                      items:
                        type: object
                        required:
                        - name
                        - value
                        properties:
                          name:
                            description: The name of the contact's phone number.
                            examples:
                            - company phone
                            type: string
                            example: company phone
                          value:
                            anyOf:
                            - description: The contact's phone number.
                              examples:
                              - '+12345678901'
                              type: string
                              example: '+12345678901'
                            - type: 'null'
                    role:
                      anyOf:
                      - description: The contact's role.
                        examples:
                        - Sales
                        type: string
                        example: Sales
                      - type: 'null'
                customFields:
                  type: array
                  items:
                    allOf:
                    - type: object
                      properties:
                        key:
                          description: The identifying key for contact custom field.
                          examples:
                          - inbound-lead
                          type: string
                          example: inbound-lead
                    - anyOf:
                      - type: object
                        required:
                        - value
                        properties:
                          value:
                            description: Value defined for the multi select type custom field.
                            examples:
                            - - option1
                              - option2
                            example:
                            - option1
                            - option2
                            anyOf:
                            - type: array
                              items:
                                type: string
                            - type: 'null'
                      - type: object
                        required:
                        - value
                        properties:
                          value:
                            description: Value defined for the address, string, or url type custom field.
                            examples:
                            - 123 Main St
                            example: 123 Main St
                            anyOf:
                            - type: string
                            - type: 'null'
                      - type: object
                        required:
                        - value
                        properties:
                          value:
                            description: Value defined for the boolean type custom field.
                            examples:
                            - 'false'
                            example: 'false'
                            anyOf:
                         

# --- truncated at 32 KB (149 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openphone/refs/heads/main/openapi/openphone-contacts-api-openapi.yml