Wazo Phone Numbers API

The phone-numbers API from Wazo — 4 operation(s) for phone-numbers.

Operations 8

GET /phone-numbers List phone numbers #
POST /phone-numbers Add a new phone number #
POST /phone-numbers/ranges Add a range of phone numbers #
GET /phone-numbers/{phone_number_uuid} Get phone number #
PUT /phone-numbers/{phone_number_uuid} Update Phone Number #
DELETE /phone-numbers/{phone_number_uuid} Delete Phone Number #
GET /phone-numbers/main Get main phone number #
PUT /phone-numbers/main set the 'main' phone number for the tenant #

Documentation

Specifications

Other Resources

🔗
Console
https://api.wazo.io/documentation/console/authentication/
🔗
SourceCode
https://github.com/wazo-platform/wazo-auth
🔗
ChangeLog
https://github.com/wazo-platform/wazo-auth/blob/master/CHANGELOG.md
🔗
Conventions
https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/conventions/wazo-conventions.yml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/errors/wazo-problem-types.yml
🔗
Console
https://api.wazo.io/documentation/console/configuration/
🔗
SourceCode
https://github.com/wazo-platform/wazo-confd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-confd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/application/
🔗
SourceCode
https://github.com/wazo-platform/wazo-calld
🔗
ChangeLog
https://github.com/wazo-platform/wazo-calld/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/cdr/
🔗
SourceCode
https://github.com/wazo-platform/wazo-call-logd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-call-logd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/contact/
🔗
SourceCode
https://github.com/wazo-platform/wazo-dird
🔗
ChangeLog
https://github.com/wazo-platform/wazo-dird/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/webhook/
🔗
SourceCode
https://github.com/wazo-platform/wazo-webhookd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-webhookd/blob/master/CHANGELOG.md
🔗
Webhooks
https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/asyncapi/wazo-events-webhooks.yml
🔗
Console
https://api.wazo.io/documentation/console/plugins/
🔗
SourceCode
https://github.com/wazo-platform/wazo-plugind
🔗
ChangeLog
https://github.com/wazo-platform/wazo-plugind/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/agent/
🔗
SourceCode
https://github.com/wazo-platform/wazo-agentd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-agentd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/chat/
🔗
SourceCode
https://github.com/wazo-platform/wazo-chatd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-chatd/blob/master/CHANGELOG.md
🔗
SourceCode
https://github.com/wazo-platform/wazo-phoned
🔗
ChangeLog
https://github.com/wazo-platform/wazo-phoned/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/setup/
🔗
SourceCode
https://github.com/wazo-platform/wazo-setupd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-setupd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/amid/
🔗
SourceCode
https://github.com/wazo-platform/wazo-amid
🔗
ChangeLog
https://github.com/wazo-platform/wazo-amid/blob/master/CHANGELOG.md

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/wazo-phone-numbers-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

wazo-phone-numbers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: wazo-confd Phone Numbers API
  description: "Confd exposes an API for managing core resources on a Wazo server such as users, extensions, devices, voicemails, queues, etc. Resources can be associated together to provide additional functionality. For example: By associating a voicemail with a user, calls will automatically fallback on to the voicemail when the user cannot answer.\n\nImplementation notes\n====================\n\nErrors\n------\n\nResponses containing errors will have a status code in the 400 or 500 class. A list of error messages will be returned in the body of the response as a JSON-encoded array:\n\n~~~\n[\n    \"Input error - User not found\",\n    \"Resource error - User not associated to a line\"\n]\n~~~\n\n\nUpdating resources via PUT\n--------------------------\n\nWhen updating a resource, all fields become optional. In other words, only values that have been changed need to be sent to the server. Please note that this behavior may change in future versions of the API."
  version: '1.1'
  license:
    name: GPL v3
    url: http://www.gnu.org/licenses/gpl.txt
  contact:
    name: Wazo Dev Team
    url: https://wazo-platform.org/
    email: dev@wazo.community
  x-logo:
    url: https://wazo-platform.org/images/logo-black.svg
    backgroundColor: '#FAFAFA'
    altText: Wazo Logo
servers:
- url: /1.1
security:
- wazo_auth_token: []
tags:
- name: phone-numbers
paths:
  /phone-numbers:
    get:
      operationId: list_phone_numbers
      summary: List phone numbers
      description: '**Required ACL:** `confd.phone-numbers.read`'
      tags:
      - phone-numbers
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/recurse'
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      - $ref: '#/components/parameters/shared'
      - $ref: '#/components/parameters/main'
      responses:
        '200':
          description: Phone number list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhoneNumberItems'
    post:
      operationId: create_phone_number
      summary: Add a new phone number
      description: '**Required ACL:** `confd.phone-numbers.create`'
      tags:
      - phone-numbers
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '201':
          description: Phone number created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhoneNumber'
        '400':
          $ref: '#/components/responses/CreateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhoneNumber'
        description: specification of the phone number to create
        required: true
  /phone-numbers/ranges:
    post:
      operationId: create_phone_numbers_range
      summary: Add a range of phone numbers
      description: '**Required ACL:** `confd.phone-numbers.create`'
      tags:
      - phone-numbers
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '201':
          description: Phone number created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhoneNumberRangeResponse'
        '400':
          $ref: '#/components/responses/CreateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhoneNumberRange'
        description: specification of the phone number range to create
        required: true
  /phone-numbers/{phone_number_uuid}:
    get:
      operationId: get_phone_number
      summary: Get phone number
      description: '**Required ACL:** `confd.phone-numbers.{phone_number_uuid}.read`'
      tags:
      - phone-numbers
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/phone_number_uuid'
      responses:
        '200':
          description: Phone Number
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhoneNumber'
        '404':
          $ref: '#/components/responses/NotFoundError'
    put:
      operationId: update_phone_numbers
      summary: Update Phone Number
      description: '**Required ACL:** `confd.phone-numbers.{phone_number_uuid}.update`'
      tags:
      - phone-numbers
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/phone_number_uuid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PhoneNumberItems'
        required: true
    delete:
      operationId: delete_phone_number
      summary: Delete Phone Number
      description: '**Required ACL:** `confd.phone-numbers.{phone_number_uuid}.delete`'
      tags:
      - phone-numbers
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/phone_number_uuid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /phone-numbers/main:
    get:
      operationId: get_phone_number_main
      summary: Get main phone number
      description: '**Required ACL:** `confd.phone-numbers.main.read`'
      tags:
      - phone-numbers
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '200':
          description: main phone number
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhoneNumber'
        '404':
          description: main phone number not found
          content:
            application/json:
              schema:
                $ref: '#/components/responses/NotFoundError'
    put:
      operationId: set_phone_number_main
      summary: set the 'main' phone number for the tenant
      description: '**Required ACL:** `confd.phone-numbers.main.update`'
      tags:
      - phone-numbers
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - phone_number_uuid
              properties:
                phone_number_uuid:
                  type: string
                  description: UUID of the phone number to set as main
                  example: b5bcc98c-10cf-4a68-bf3d-802fb5170911
        description: specification of the phone number to set as main
        required: true
components:
  responses:
    NotFoundError:
      description: The resource requested was not found on the server
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ResourceDeleted:
      description: Resource was deleted successfully
    ResourceUpdated:
      description: Resource was updated successfully
    CreateError:
      description: An error occurred when creating the resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    UpdateError:
      description: An error occurred when updating the resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    tenantuuid:
      name: Wazo-Tenant
      in: header
      description: The tenant's UUID, defining the ownership of a given resource.
      required: false
      schema:
        type: string
    phone_number_uuid:
      name: phone_number_uuid
      in: path
      description: UUID of the phone number
      required: true
      schema:
        type: string
    shared:
      in: query
      name: shared
      description: Only include shared phone numbers
      schema:
        type: boolean
    offset:
      required: false
      name: offset
      in: query
      description: Number of items to skip over in the list. Useful for pagination.
      schema:
        type: integer
    main:
      in: query
      name: main
      description: Only include the main phone number of the tenant
      schema:
        type: boolean
    order:
      required: false
      name: order
      in: query
      description: Name of the field to use for sorting the list of items returned.
      schema:
        type: string
    direction:
      required: false
      name: direction
      in: query
      description: Sort list of items in 'asc' (ascending) or 'desc' (descending) order
      schema:
        type: string
        enum:
        - asc
        - desc
    recurse:
      name: recurse
      in: query
      description: Should the query include sub-tenants
      required: false
      schema:
        type: boolean
        default: false
    search:
      required: false
      name: search
      in: query
      description: Search term for filtering a list of items. Only items with a field containing the search term will be returned.
      schema:
        type: string
    limit:
      required: false
      name: limit
      in: query
      description: Maximum number of items to return in the list
      schema:
        type: integer
  schemas:
    PhoneNumberItems:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumber'
    PhoneNumberRange:
      type: object
      description: a request to register a range of phone number resources
      properties:
        start_number:
          type: string
          description: 'the first phone number part of a contiguous range of numbers to be registered in the `/phone-numbers` resource;

            a e.164 phone number, otherwise a phone number string part of a numbering plan dialable on the trunk network

            '
        end_number:
          type: string
          description: 'The last phone number part of the contiguous range to be registered in the `/phone-numbers` resource;

            a e.164 phone number, otherwise a phone number string part of a numbering plan dialable on the trunk network

            '
      required:
      - start_number
      - end_number
    PhoneNumber:
      type: object
      description: a phone number resource, usable for outgoing caller id or incall routing
      properties:
        uuid:
          type: string
          description: Number UUID
          readOnly: true
        number:
          type: string
          description: The phone number text (in e.164 representation if possible)
        caller_id_name:
          type: string
          description: The Caller ID name that should be used when calling with this number as a Caller ID
        tenant_uuid:
          type: string
          description: uuid of tenant
          readOnly: true
        shared:
          type: boolean
          description: Whether or not this number is meant to be shared by multiple people
        main:
          type: boolean
          description: "Whether or not this is the main / default phone number for this tenant. \nOnly one number can be the main number for a given tenant.\n"
          default: false
          readOnly: true
      required:
      - number
      - shared
    PhoneNumberRangeResponse:
      type: object
      properties:
        created:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Phone Number UUID
                readOnly: true
        links:
          type: array
          description: 'links to related resources

            include URLs of any registered phone number that are part of this range

            '
          items:
            $ref: '#/components/schemas/Link'
    Link:
      title: Link
      description: a pointer to a linked resource related in some way to the current resource
      properties:
        href:
          type: string
          description: The URL of the link
        rel:
          type: string
          description: The relationship of the link relative to the current resource
    Error:
      type: array
      items:
        type: string
  securitySchemes:
    wazo_auth_token:
      type: apiKey
      name: X-Auth-Token
      in: header
x-xivo-port: 9486
x-xivo-name: confd
x-apievangelist-source:
  harvested_from: https://github.com/wazo-platform/wazo-confd
  assembly: base plugin api.yml deep-merged with all plugin api.yml fragments, reproducing what the running service serves at /api/confd/1.1/api/api.yml (see wazo_confd/plugins/api/http.py — xivo.chain_map.ChainMap)
  spec_version: Swagger 2.0 (as published by Wazo)
  harvested: '2026-08-17'