Wazo Outcalls API

The outcalls API from Wazo — 6 operation(s) for outcalls.

Operations 12

GET /outcalls List outgoing calls #
POST /outcalls Create outgoing call #
GET /outcalls/{outcall_id} Get outgoing call #
PUT /outcalls/{outcall_id} Update outgoing call #
DELETE /outcalls/{outcall_id} Delete outgoing call #
PUT /outcalls/{outcall_id}/callpermissions/{callpermission_id} Associate outcall and call permission #
DELETE /outcalls/{outcall_id}/callpermissions/{callpermission_id} Dissociate outcall and call permission #
PUT /outcalls/{outcall_id}/extensions/{extension_id} Associate outcall and extension #
DELETE /outcalls/{outcall_id}/extensions/{extension_id} Dissociate outcall and extension #
PUT /outcalls/{outcall_id}/schedules/{schedule_id} Associate outcall and schedule #
DELETE /outcalls/{outcall_id}/schedules/{schedule_id} Dissociate outcall and schedule #
PUT /outcalls/{outcall_id}/trunks Associate outcall and trunks #

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-outcalls-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-outcalls-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: wazo-confd Outcalls 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: outcalls
paths:
  /outcalls:
    get:
      operationId: list_outcalls
      summary: List outgoing calls
      description: '**Required ACL:** `confd.outcalls.read`'
      tags:
      - outcalls
      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: Outgoing calls list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutcallItems'
    post:
      operationId: create_outcall
      summary: Create outgoing call
      description: '**Required ACL:** `confd.outcalls.create`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '201':
          description: Outgoing call created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Outcall'
        '400':
          $ref: '#/components/responses/CreateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Outcall'
        description: Outgoing call to create
        required: true
  /outcalls/{outcall_id}:
    get:
      operationId: get_outcall
      summary: Get outgoing call
      description: '**Required ACL:** `confd.outcalls.{outcall_id}.read`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/outcallid'
      responses:
        '200':
          description: Outgoing call
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Outcall'
        '404':
          $ref: '#/components/responses/NotFoundError'
    put:
      operationId: update_outcall
      summary: Update outgoing call
      description: '**Required ACL:** `confd.outcalls.{outcall_id}.update`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/outcallid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Outcall'
        required: true
    delete:
      operationId: delete_outcall
      summary: Delete outgoing call
      description: '**Required ACL:** `confd.outcalls.{outcall_id}.delete`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/outcallid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '400':
          $ref: '#/components/responses/DeleteError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /outcalls/{outcall_id}/callpermissions/{callpermission_id}:
    put:
      operationId: associate_outcall_callpermission
      summary: Associate outcall and call permission
      description: '**Required ACL:** `confd.outcalls.{outcall_id}.callpermissions.{call_permission_id}.update`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/outcallid'
      - $ref: '#/components/parameters/callpermissionid'
      responses:
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
    delete:
      operationId: dissociate_outcall_callpermission
      summary: Dissociate outcall and call permission
      description: '**Required ACL:** `confd.outcalls.{outcall_id}.callpermissions.{call_permission_id}.delete`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/outcallid'
      - $ref: '#/components/parameters/callpermissionid'
      responses:
        '204':
          description: Outcall and Call Permission dissociated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /outcalls/{outcall_id}/extensions/{extension_id}:
    put:
      operationId: associate_outcall_extension
      summary: Associate outcall and extension
      description: '**Required ACL:** `confd.outcalls.{outcall_id}.extensions.{extension_id}.update`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/outcallid'
      - $ref: '#/components/parameters/extensionid'
      responses:
        '204':
          description: Trunk and Custom endpoint associated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OutcallExtension'
        description: Outgoing Extension
    delete:
      operationId: dissociate_outcall_extension
      summary: Dissociate outcall and extension
      description: '**Required ACL:** `confd.outcalls.{outcall_id}.extensions.{extension_id}.delete`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/outcallid'
      - $ref: '#/components/parameters/extensionid'
      responses:
        '204':
          description: Outcall and Extension dissociated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /outcalls/{outcall_id}/schedules/{schedule_id}:
    put:
      operationId: associate_outcall_schedule
      summary: Associate outcall and schedule
      description: '**Required ACL:** `confd.outcalls.{outcall_id}.schedules.{schedule_id}.update`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/outcallid'
      - $ref: '#/components/parameters/scheduleid'
      responses:
        '204':
          description: Outcall and Schedule associated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
    delete:
      operationId: dissociate_outcall_schedule
      summary: Dissociate outcall and schedule
      description: '**Required ACL:** `confd.outcalls.{outcall_id}.schedules.{schedule_id}.delete`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/outcallid'
      - $ref: '#/components/parameters/scheduleid'
      responses:
        '204':
          description: Outcall and Schedule dissociated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /outcalls/{outcall_id}/trunks:
    put:
      operationId: associate_outcall_trunks
      summary: Associate outcall and trunks
      description: '**Required ACL:** `confd.outcalls.{outcall_id}.trunks.update`'
      tags:
      - outcalls
      parameters:
      - $ref: '#/components/parameters/outcallid'
      responses:
        '204':
          description: Outcall and Trunks associated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrunksId'
        description: Trunks to associated
        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
    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'
  schemas:
    Outcall:
      title: Outcall
      allOf:
      - $ref: '#/components/schemas/OutcallRelationBase'
      - properties:
          description:
            type: string
            description: Additional information about the outgoing call
          enabled:
            type: boolean
            default: true
          internal_caller_id:
            type: boolean
            default: false
            description: Use the internal caller id
          preprocess_subroutine:
            type: string
            description: Name of the subroutine to execute in asterisk before receiving a call
          ring_time:
            type: integer
            description: Ringing time before hangup
          tenant_uuid:
            type: string
            description: The UUID of the tenant
            readOnly: true
      - $ref: '#/components/schemas/OutcallRelationTrunks'
      - $ref: '#/components/schemas/OutcallRelationExtensions'
      - $ref: '#/components/schemas/OutcallRelationSchedules'
      - $ref: '#/components/schemas/OutcallRelationCallPermissions'
      - required:
        - name
    SIPAuthSectionOptions:
      title: PJSIP Auth Section Options
      $ref: '#/components/schemas/KeyValueOption'
    OutcallRelationSchedule:
      allOf:
      - $ref: '#/components/schemas/ScheduleRelationBase'
    OutcallExtension:
      title: OutcallExtension
      properties:
        external_prefix:
          type: string
          description: The prefix added to the outgoing call when sent on the trunk
        prefix:
          type: string
          description: The prefix that the user need to dial before the pattern
        strip_digits:
          type: integer
          description: The number of leading digits to strip
        caller_id:
          type: string
    OutcallItems:
      title: OutcallItems
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Outcall'
        total:
          type: integer
      required:
      - total
    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
    OutcallRelationSchedules:
      properties:
        schedules:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/OutcallRelationSchedule'
    OutcallRelationTrunk:
      allOf:
      - $ref: '#/components/schemas/TrunkRelationBase'
      - $ref: '#/components/schemas/TrunkRelationEndpoints'
    OutcallRelationTrunks:
      properties:
        trunks:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/OutcallRelationTrunk'
    TrunksId:
      title: TrunksId
      properties:
        trunks:
          items:
            $ref: '#/components/schemas/TrunkId'
          type: array
    TrunkId:
      title: TrunkId
      properties:
        id:
          type: integer
    EndpointSipRelationBase:
      properties:
        uuid:
          type: string
          description: The UUID of this resource
          readOnly: true
        name:
          type: string
          description: The name of the PJSIP entity, auto-generated if missing
        label:
          type: string
          description: The human readable name for this configuration
        auth_section_options:
          type: array
          items:
            $ref: '#/components/schemas/SIPAuthSectionOptions'
          description: A list of PJSIP auth section options for this endpoint. Only `username` is supported
    OutcallRelationBase:
      properties:
        id:
          type: integer
          readOnly: true
          description: The id of the outgoing call
        name:
          type: string
          description: The name of the outcall
    TrunkRelationEndpoints:
      properties:
        endpoint_sip:
          readOnly: true
          $ref: '#/components/schemas/EndpointSipRelationBase'
        endpoint_iax:
          readOnly: true
          $ref: '#/components/schemas/EndpointIAXRelationBase'
        endpoint_custom:
          readOnly: true
          $ref: '#/components/schemas/EndpointCustomRelationBase'
    EndpointCustomRelationBase:
      properties:
        id:
          type: integer
          description: Custom Endpoint ID
          readOnly: true
        interface:
          type: string
          description: Asterisk interface to use. (e.g. 'dahdi/i1')
    ExtensionRelationBase:
      properties:
        id:
          type: integer
          description: Extension ID
          readOnly: true
        context:
          type: string
        exten:
          type: string
    OutcallRelationExtension:
      allOf:
      - $ref: '#/components/schemas/ExtensionRelationBase'
      - properties:
          caller_id:
            type: string
          external_prefix:
            type: string
            description: The prefix added to the outgoing call when sent on the trunk
          prefix:
            type: string
            description: The prefix that the user need to dial before the extension
          strip_digits:
            type: integer
            description: The number of leading digits to strip
    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
    OutcallRelationCallPermissions:
      properties:
        call_permissions:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/CallPermissionRelationBase'
    ScheduleRelationBase:
      properties:
        id:
          type: integer
          readOnly: true
        tenant_uuid:
          type: string
          description: The UUID of the tenant
          readOnly: true
        name:
          type: string
          description: The name to identify the schedule
    Error:
      type: array
      items:
        type: string
    OutcallRelationExtensions:
      properties:
        extensions:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/OutcallRelationExtension'
    CallPermissionRelationBase:
      properties:
        id:
          type: integer
          readOnly: true
          description: The id of the call permission
        tenant_uuid:
          type: string
          description: The UUID of the tenant
          readOnly: true
        name:
          type: string
          description: The name of the call permission
      required:
      - name
    EndpointIAXRelationBase:
      properties:
        id:
          type: integer
          description: IAX Endpoint ID
          readOnly: true
        name:
          type: string
          description: IAX name
          default: autogenerated
  parameters:
    outcallid:
      required: true
      name: outcall_id
      in: path
      description: Outgoing call's ID
      schema:
        type: integer
    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
    extensionid:
      required: true
      name: extension_id
      in: path
      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
    scheduleid:
      required: true
      name: schedule_id
      in: path
      description: Schedule's ID
      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
    callpermissionid:
      required: true
      name: callpermission_id
      in: path
      description: Call Permission's ID
      schema:
        type: integer
    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
  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'