Wazo Iax API

The iax API from Wazo — 7 operation(s) for iax.

Operations 16

GET /endpoints/iax List IAX endpoints #
POST /endpoints/iax Create IAX endpoint #
GET /endpoints/iax/{iax_id} Get IAX Endpoint #
PUT /endpoints/iax/{iax_id} Update IAX Endpoint #
DELETE /endpoints/iax/{iax_id} Delete IAX Endpoint #
GET /asterisk/iax/callnumberlimits List IAX callnumberlimits options #
PUT /asterisk/iax/callnumberlimits Update IAX callnumberlimits option #
GET /registers/iax List registers iax #
POST /registers/iax Create register_iax #
GET /registers/iax/{register_iax_id} Get register IAX #
PUT /registers/iax/{register_iax_id} Update register IAX #
DELETE /registers/iax/{register_iax_id} Delete register IAX #
PUT /trunks/{trunk_id}/endpoints/iax/{iax_id} Associate trunk and IAX endpoint #
DELETE /trunks/{trunk_id}/endpoints/iax/{iax_id} Dissociate trunk and IAX endpoint #
PUT /trunks/{trunk_id}/registers/iax/{iax_id} Associate trunk and IAX register #
DELETE /trunks/{trunk_id}/registers/iax/{iax_id} Dissociate trunk and IAX register #

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-iax-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-iax-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: wazo-confd Iax 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: iax
paths:
  /endpoints/iax:
    get:
      operationId: list_endpoints_iax
      summary: List IAX endpoints
      description: '**Required ACL:** `confd.endpoints.iax.read`'
      tags:
      - iax
      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'
      responses:
        '200':
          description: IAX endpoint list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndpointIAXItems'
    post:
      operationId: create_endpoint_iax
      summary: Create IAX endpoint
      description: '**Required ACL:** `confd.endpoints.iax.create`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '201':
          description: IAX endpoint created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndpointIAX'
        '400':
          $ref: '#/components/responses/CreateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EndpointIAX'
        description: IAX Endpoint to create
  /endpoints/iax/{iax_id}:
    get:
      operationId: get_endpoint_iax
      summary: Get IAX Endpoint
      description: '**Required ACL:** `confd.endpoints.iax.{iax_id}.read`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/iaxid'
      responses:
        '200':
          description: IAX Endpoint
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EndpointIAX'
        '404':
          $ref: '#/components/responses/NotFoundError'
    put:
      operationId: update_endpoint_iax
      summary: Update IAX Endpoint
      description: '**Required ACL:** `confd.endpoints.iax.{iax_id}.update`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/iaxid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EndpointIAX'
        required: true
    delete:
      operationId: delete_endpoint_iax
      summary: Delete IAX Endpoint
      description: '**Required ACL:** `confd.endpoints.iax.{iax_id}.delete`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/iaxid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '400':
          $ref: '#/components/responses/DeleteError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /asterisk/iax/callnumberlimits:
    get:
      operationId: list_asterisk_iax_callnumberlimits
      summary: List IAX callnumberlimits options
      description: '**Required ACL:** `confd.asterisk.iax.callnumberlimits.read`'
      tags:
      - iax
      responses:
        '200':
          description: IAX callnumberlimits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IAXCallNumberLimitss'
    put:
      operationId: update_asterisk_iax_callnumberlimits
      summary: Update IAX callnumberlimits option
      description: '**Required ACL:** `confd.asterisk.iax.callnumberlimits.update`


        **WARNING** This endpoint restore to default value or delete all fields that are not defined.'
      tags:
      - iax
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IAXCallNumberLimitss'
        required: true
  /registers/iax:
    get:
      operationId: list_registers_iax
      summary: List registers iax
      description: '**Required ACL:** `confd.registers.iax.read`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: Registers IAX list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterIAXItems'
    post:
      operationId: create_register_iax
      summary: Create register_iax
      description: '**Required ACL:** `confd.registers.iax.create`'
      tags:
      - iax
      responses:
        '201':
          description: Register IAX created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterIAX'
        '400':
          $ref: '#/components/responses/CreateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterIAX'
        description: Register iax to create
        required: true
  /registers/iax/{register_iax_id}:
    get:
      operationId: get_register_iax
      summary: Get register IAX
      description: '**Required ACL:** `confd.registers.iax.{register_iax_id}.read`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/registeriaxid'
      responses:
        '200':
          description: Register IAX
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterIAX'
        '404':
          $ref: '#/components/responses/NotFoundError'
    put:
      operationId: update_register_iax
      summary: Update register IAX
      description: '**Required ACL:** `confd.registers.iax.{register_iax_id}.update`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/registeriaxid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterIAX'
        required: true
    delete:
      operationId: delete_register_iax
      summary: Delete register IAX
      description: '**Required ACL:** `confd.registers.iax.{register_iax_id}.delete`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/registeriaxid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '400':
          $ref: '#/components/responses/DeleteError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /trunks/{trunk_id}/endpoints/iax/{iax_id}:
    put:
      operationId: associate_trunk_endpoint_iax
      summary: Associate trunk and IAX endpoint
      description: '**Required ACL:** `confd.trunks.{trunk_id}.endpoints.iax.{iax_id}.update`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/trunkid'
      - $ref: '#/components/parameters/iaxid'
      responses:
        '204':
          description: Trunk and IAX endpoint associated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
    delete:
      operationId: dissociate_trunk_endpoint_iax
      summary: Dissociate trunk and IAX endpoint
      description: '**Required ACL:** `confd.trunks.{trunk_id}.endpoints.iax.{iax_id}.delete`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/trunkid'
      - $ref: '#/components/parameters/iaxid'
      responses:
        '204':
          description: Trunk and IAX endpoint dissociated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /trunks/{trunk_id}/registers/iax/{iax_id}:
    put:
      operationId: associate_trunk_register_iax
      summary: Associate trunk and IAX register
      description: '**Required ACL:** `confd.trunks.{trunk_id}.registers.iax.{iax_id}.update`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/trunkid'
      - $ref: '#/components/parameters/iaxid'
      responses:
        '204':
          description: Trunk and IAX register associated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
    delete:
      operationId: dissociate_trunk_register_iax
      summary: Dissociate trunk and IAX register
      description: '**Required ACL:** `confd.trunks.{trunk_id}.registers.iax.{iax_id}.delete`'
      tags:
      - iax
      parameters:
      - $ref: '#/components/parameters/trunkid'
      - $ref: '#/components/parameters/iaxid'
      responses:
        '204':
          description: Trunk and IAX register dissociated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
components:
  schemas:
    IAXCallNumberLimits:
      title: IAXCallNumberLimits
      properties:
        ip_address:
          type: string
          description: IPv4 address of the destination
        netmask:
          type: string
          description: Netmask of the IP address (e.g. 255.255.255.255)
        limit:
          type: string
          description: Maximum call for the ip_address destination
      required:
      - ip_address
      - netmask
      - limit
    EndpointRelationLine:
      properties:
        line:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/LineRelationBase'
    RegisterIAXItems:
      title: RegisterItems
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/RegisterIAX'
        total:
          type: integer
    IAXCallNumberLimitss:
      title: IAXCallNumberLimitss
      properties:
        items:
          description: 'IAX callnumberlimits configuration. This configuration will be in the file ''iax.conf'' used by asterisk.

            Please consult the asterisk documentation for further details on available parameters.'
          type: array
          items:
            $ref: '#/components/schemas/IAXCallNumberLimits'
    KeyValueOption:
      description: "Options must have the following form:\n```\n{\n  \"options\": [\n      [\"option\", \"value\"],\n  ]\n}\n```\n"
      title: Key Value
      type: array
      items:
        type: string
      maxItems: 2
      minItems: 2
      example:
      - option
      - value
    RegisterIAX:
      title: Register IAX
      allOf:
      - $ref: '#/components/schemas/RegisterIAXRelationBase'
      - properties:
          auth_username:
            type: string
            description: The username used by the remote_host for the authentication
          auth_password:
            type: string
            description: The password to authenticate to the remote_host
          remote_host:
            type: string
            description: The register domain
          remote_port:
            type: integer
            description: The port of the remote_host
          callback_extension:
            type: string
            description: The callback extension to use for the register
          callback_context:
            type: string
            description: The callback context to use for the register
        required:
        - remote_host
    TrunkRelationBase:
      properties:
        id:
          type: integer
          readOnly: true
          description: The id of the trunk
        tenant_uuid:
          type: string
          description: The UUID of the tenant
          readOnly: true
    Error:
      type: array
      items:
        type: string
    EndpointRelationTrunk:
      properties:
        trunk:
          $ref: '#/components/schemas/TrunkRelationBase'
          readOnly: true
    LineRelationBase:
      properties:
        id:
          type: integer
          description: Line ID
          readOnly: true
        name:
          type: string
          description: The name of the line
          readOnly: true
    EndpointIAXItems:
      title: IAX Endpoints
      properties:
        items:
          items:
            $ref: '#/components/schemas/EndpointIAX'
          type: array
        total:
          type: integer
    EndpointIAX:
      title: IAX Endpoint
      allOf:
      - $ref: '#/components/schemas/EndpointIAXRelationBase'
      - properties:
          tenant_uuid:
            type: string
            description: The UUID of the tenant
            readOnly: true
          type:
            type: string
            enum:
            - friend
            - peer
            - user
            default: friend
            description: Type of IAX account
          host:
            type: string
            description: Hosts that are allowed to use this IAX account
            default: dynamic
          options:
            description: "Advanced configuration: options. Options are appended at the end of a IAX account in the file 'iax.conf' used by asterisk. Please consult the asterisk documentation for further details on available parameters. Because of database limitations, the following options can only be configured once:\n\n* accountcode\n* adsi\n* allow\n* amaflags\n* auth\n* callerid\n* category\n* cid_number\n* codecpriority\n* commented\n* context\n* dbsecret\n* defaultip\n* deny\n* encryption\n* forceencryption\n* forcejitterbuffer\n* fullname\n* immediate\n* inkeys\n* jitterbuffer\n* keyrotate\n* language\n* mailbox\n* mask\n* maxauthreq\n* mohinterpret\n* mohsuggest\n* outkey\n* parkinglot\n* peercontext\n* permit\n* port\n* protocol\n* qualify\n* qualifyfreqnoto\n* qualifyfreqok\n* qualifysmoothing\n* regexten\n* requirecalltoken\n* secret\n* sendani\n* setvar\n* sourceaddress\n* timezone\n* transfer\n* trunk\n* username\n\nAny other options may be repeated as many times as needed. Options must have the following form:\n```\n{\n  \"options\": [\n     [\"name1\", \"value1\"],\n     [\"name2\", \"value2\"]\n  ]\n}\n```\n\nThe resulting configuration in iax.conf will have the following form:\n```\n[iaxusername]\ncontext=default\nsecret=iaxsecret\nname1=value1\nname2=value2\n```\n"
            type: array
            items:
              $ref: '#/components/schemas/KeyValueOption'
            default: []
      - $ref: '#/components/schemas/EndpointRelationTrunk'
      - $ref: '#/components/schemas/EndpointRelationLine'
    RegisterIAXRelationBase:
      properties:
        id:
          type: integer
          readOnly: true
          description: The id of the register IAX
    EndpointIAXRelationBase:
      properties:
        id:
          type: integer
          description: IAX Endpoint ID
          readOnly: true
        name:
          type: string
          description: IAX name
          default: autogenerated
  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
    GenericError:
      description: An error occurred during the operation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    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'
    DeleteError:
      description: An error occurred when deleting 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
    offset:
      required: false
      name: offset
      in: query
      description: Number of items to skip over in the list. Useful for pagination.
      schema:
        type: integer
    order:
      required: false
      name: order
      in: query
      description: Name of the field to use for sorting the list of items returned.
      schema:
        type: string
    registeriaxid:
      description: Register IAX's ID
      name: register_iax_id
      in: path
      required: true
      schema:
        type: integer
    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
    iaxid:
      required: true
      name: iax_id
      in: path
      schema:
        type: integer
    trunkid:
      description: Trunk's ID
      name: trunk_id
      in: path
      required: true
      schema:
        type: integer
    limit:
      required: false
      name: limit
      in: query
      description: Maximum number of items to return in the list
      schema:
        type: integer
  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'