Wazo Incalls API

The incalls API from Wazo — 4 operation(s) for incalls.

Operations 9

GET /incalls List incoming calls #
POST /incalls Create incoming call #
GET /incalls/{incall_id} Get incoming call #
PUT /incalls/{incall_id} Update incoming call #
DELETE /incalls/{incall_id} Delete incoming call #
PUT /incalls/{incall_id}/extensions/{extension_id} Associate incall and extension #
DELETE /incalls/{incall_id}/extensions/{extension_id} Dissociate incall and extension #
PUT /incalls/{incall_id}/schedules/{schedule_id} Associate incall and schedule #
DELETE /incalls/{incall_id}/schedules/{schedule_id} Dissociate incall and schedule #

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-incalls-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-incalls-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: wazo-confd Incalls 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: incalls
paths:
  /incalls:
    get:
      operationId: list_incalls
      summary: List incoming calls
      description: '**Required ACL:** `confd.incalls.read`'
      tags:
      - incalls
      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/userid'
      responses:
        '200':
          description: Incoming calls list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncallItems'
    post:
      operationId: create_incall
      summary: Create incoming call
      description: '**Required ACL:** `confd.incalls.create`'
      tags:
      - incalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '201':
          description: Incoming call created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Incall'
        '400':
          $ref: '#/components/responses/CreateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Incall'
        description: Incoming call to create
        required: true
  /incalls/{incall_id}:
    get:
      operationId: get_incall
      summary: Get incoming call
      description: '**Required ACL:** `confd.incalls.{incall_id}.read`'
      tags:
      - incalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/incallid'
      responses:
        '200':
          description: Incoming call
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Incall'
        '404':
          $ref: '#/components/responses/NotFoundError'
    put:
      operationId: update_incall
      summary: Update incoming call
      description: '**Required ACL:** `confd.incalls.{incall_id}.update`'
      tags:
      - incalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/incallid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Incall'
        required: true
    delete:
      operationId: delete_incall
      summary: Delete incoming call
      description: '**Required ACL:** `confd.incalls.{incall_id}.delete`'
      tags:
      - incalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/incallid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '400':
          $ref: '#/components/responses/DeleteError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /incalls/{incall_id}/extensions/{extension_id}:
    put:
      operationId: associate_incall_extension
      summary: Associate incall and extension
      description: '**Required ACL:** `confd.incalls.{incall_id}.extensions.{extension_id}.update`'
      tags:
      - incalls
      parameters:
      - $ref: '#/components/parameters/incallid'
      - $ref: '#/components/parameters/extensionid'
      responses:
        '204':
          description: Incall and Extension associated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
    delete:
      operationId: dissociate_incall_extension
      summary: Dissociate incall and extension
      description: '**Required ACL:** `confd.incalls.{incall_id}.extensions.{extension_id}.delete`'
      tags:
      - incalls
      parameters:
      - $ref: '#/components/parameters/incallid'
      - $ref: '#/components/parameters/extensionid'
      responses:
        '204':
          description: Incall and Extension dissociated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /incalls/{incall_id}/schedules/{schedule_id}:
    put:
      operationId: associate_incall_schedule
      summary: Associate incall and schedule
      description: '**Required ACL:** `confd.incalls.{incall_id}.schedules.{schedule_id}.update`'
      tags:
      - incalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/incallid'
      - $ref: '#/components/parameters/scheduleid'
      responses:
        '204':
          description: Incall and Schedule associated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
    delete:
      operationId: dissociate_incall_schedule
      summary: Dissociate incall and schedule
      description: '**Required ACL:** `confd.incalls.{incall_id}.schedules.{schedule_id}.delete`'
      tags:
      - incalls
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/incallid'
      - $ref: '#/components/parameters/scheduleid'
      responses:
        '204':
          description: Incall and Schedule dissociated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
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:
    DestinationApplicationDISA:
      title: DestinationApplicationDISA
      allOf:
      - $ref: '#/components/schemas/DestinationApplication'
      - properties:
          application:
            type: string
            description: MUST be 'disa'
          context:
            type: integer
            description: The context of the application
          pin:
            type: string
            description: the pin of the application
        required:
        - application
        - context
    DestinationApplicationDirectory:
      title: DestinationApplicationDirectory
      allOf:
      - $ref: '#/components/schemas/DestinationApplication'
      - properties:
          application:
            type: string
            description: MUST be 'directory'
          context:
            type: integer
            description: The context of the application
        required:
        - application
        - context
    DestinationUser:
      title: DestinationUser
      properties:
        type:
          type: string
          description: MUST be 'user'
        user_id:
          type: integer
          description: The id of the user
        ring_time:
          type: number
          format: float
        moh_uuid:
          type: string
          description: The UUID of the music on hold to use instead of a ringback tone.
      required:
      - type
      - user_id
    DestinationOutcall:
      title: DestinationOutcall
      properties:
        type:
          type: string
          description: MUST be 'outcall'
        exten:
          type: string
        outcall_id:
          type: integer
          description: The id of the outcall
      required:
      - type
      - exten
      - outcall_id
    DestinationHangup:
      title: DestinationHangup
      properties:
        type:
          type: string
          description: MUST be 'hangup'
      required:
      - type
    DestinationQueue:
      title: DestinationQueue
      properties:
        type:
          type: string
          description: MUST be 'queue'
        queue_id:
          type: integer
          description: The id of the queue
        ring_time:
          type: number
          format: float
        skill_rule_id:
          type: integer
          description: The id of the skill rule
        skill_rule_variables:
          type: object
          description: key-value where key represents the variable of the skill rule and value represents a value
      required:
      - type
      - queue_id
    DestinationConference:
      title: DestinationConference
      properties:
        type:
          type: string
          description: MUST be 'conference'
        conference_id:
          type: integer
          description: The id of the conference
      required:
      - type
      - conference_id
    DestinationGroup:
      title: DestinationGroup
      properties:
        type:
          type: string
          description: MUST be 'group'
        group_id:
          type: integer
          description: The id of the group
        ring_time:
          type: number
          format: float
      required:
      - type
      - group_id
    DestinationHangupNormal:
      title: DestinationHangupNormal
      allOf:
      - $ref: '#/components/schemas/DestinationHangup'
      - properties:
          cause:
            type: string
            description: MUST be 'normal'
      required:
      - cause
    DestinationApplicationVoicemail:
      title: DestinationApplicationVoicemail
      allOf:
      - $ref: '#/components/schemas/DestinationApplication'
      - properties:
          application:
            type: string
            description: MUST be 'voicemail'
          context:
            type: integer
            description: The context of the application
        required:
        - application
        - context
    DestinationHangupBusy:
      title: DestinationHangupBusy
      allOf:
      - $ref: '#/components/schemas/DestinationHangup'
      - properties:
          cause:
            type: string
            description: MUST be 'busy'
          timeout:
            type: integer
            description: The timeout of the hangup
      required:
      - cause
    DestinationHangupCause:
      title: DestinationHangupCause
      properties:
        busy:
          $ref: '#/components/schemas/DestinationHangupBusy'
        congestion:
          $ref: '#/components/schemas/DestinationHangupCongestion'
        normal:
          $ref: '#/components/schemas/DestinationHangupNormal'
    DestinationApplication:
      title: DestinationApplication
      properties:
        type:
          type: string
          description: MUST be 'application'
      required:
      - type
    DestinationType:
      title: DestinationType
      properties:
        application:
          $ref: '#/components/schemas/DestinationApplicationApplication'
        conference:
          $ref: '#/components/schemas/DestinationConference'
        custom:
          $ref: '#/components/schemas/DestinationCustom'
        extension:
          $ref: '#/components/schemas/DestinationExtension'
        group:
          $ref: '#/components/schemas/DestinationGroup'
        hangup:
          $ref: '#/components/schemas/DestinationHangupCause'
        ivr:
          $ref: '#/components/schemas/DestinationIVR'
        none:
          $ref: '#/components/schemas/DestinationNone'
        outcall:
          $ref: '#/components/schemas/DestinationOutcall'
        queue:
          $ref: '#/components/schemas/DestinationQueue'
        sound:
          $ref: '#/components/schemas/DestinationSound'
        switchboard:
          $ref: '#/components/schemas/DestinationSwitchboard'
        user:
          $ref: '#/components/schemas/DestinationUser'
        voicemail:
          $ref: '#/components/schemas/DestinationVoicemail'
    IncallRelationExtensions:
      properties:
        extensions:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/ExtensionRelationBase'
    DestinationCustom:
      title: DestinationCustom
      properties:
        type:
          type: string
          description: MUST be 'custom'
        command:
          type: string
          description: The command to execute
      required:
      - type
      - command
    DestinationIVR:
      title: DestinationIVR
      properties:
        type:
          type: string
          description: MUST be 'ivr'
        ivr_id:
          type: integer
          description: The id of the IVR
      required:
      - type
      - ivr_id
    IncallRelationSchedules:
      properties:
        schedules:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/ScheduleRelationBase'
    ExtensionRelationBase:
      properties:
        id:
          type: integer
          description: Extension ID
          readOnly: true
        context:
          type: string
        exten:
          type: string
    DestinationSound:
      title: DestinationSound
      properties:
        type:
          type: string
          description: MUST be 'sound'
        filename:
          type: string
          description: The filename of the sound. The file MUST be imported by to webi in the playback directory. The extension of file SHOULD be not present.
        skip:
          type: boolean
          description: Do not play this sound if the call is not answered
        no_answer:
          type: boolean
          description: Play this sound without answering the call
      required:
      - type
      - filename
    Incall:
      title: Incall
      allOf:
      - $ref: '#/components/schemas/IncallRelationBase'
      - properties:
          tenant_uuid:
            type: string
            description: The UUID of the tenant
            readOnly: true
          preprocess_subroutine:
            type: string
            description: Name of the subroutine to execute in asterisk before receiving a call
          description:
            type: string
            description: Additional information about the incoming call
          caller_id_mode:
            type: string
            enum:
            - prepend
            - overwrite
            - append
            description: How the caller_id_name will be treated
          caller_id_name:
            type: string
            description: Name to display when calling
          destination:
            description: The destination where the incoming call will be redirected
            $ref: '#/components/schemas/DestinationType'
          greeting_sound:
            type: string
            description: The name of the sound file to be played before redirecting the caller to the destination
      - $ref: '#/components/schemas/IncallRelationExtensions'
      - $ref: '#/components/schemas/IncallRelationSchedules'
      - required:
        - destination
      example:
        id: 1
        preprocess_subroutine: subroutine
        description: My incall
        caller_id_mode: prepend
        caller_id_name: incall_
        destination:
          type: user
          user_id: 2
          ring_time: 10.5
    DestinationHangupCongestion:
      title: DestinationHangupCongestion
      allOf:
      - $ref: '#/components/schemas/DestinationHangup'
      - properties:
          cause:
            type: string
            description: MUST be 'congestion'
          timeout:
            type: integer
            description: The timeout of the hangup
      required:
      - cause
    DestinationApplicationCustom:
      title: DestinationApplicationCustom
      allOf:
      - $ref: '#/components/schemas/DestinationApplication'
      - properties:
          application:
            type: string
            description: MUST be 'custom'
          application_uuid:
            type: string
            description: The UUID of the application.
      required:
      - application
      - application_uuid
    DestinationVoicemail:
      title: DestinationVoicemail
      properties:
        type:
          type: string
          description: MUST be 'voicemail'
        voicemail_id:
          type: integer
          description: The id of the voicemail
        skip_instructions:
          type: boolean
          description: Skip the playback of instructions for leaving a message
        greeting:
          type: string
          enum:
          - busy
          - unavailable
          description: Play the specified greeting
      required:
      - type
      - voicemail_id
    DestinationApplicationApplication:
      title: DestinationApplicationApplication
      properties:
        callback_disa:
          $ref: '#/components/schemas/DestinationApplicationCallbackDISA'
        custom:
          $ref: '#/components/schemas/DestinationApplicationCustom'
        directory:
          $ref: '#/components/schemas/DestinationApplicationDirectory'
        disa:
          $ref: '#/components/schemas/DestinationApplicationDISA'
        fax_to_mail:
          $ref: '#/components/schemas/DestinationApplicationFaxToMail'
        voicemail:
          $ref: '#/components/schemas/DestinationApplicationVoicemail'
    DestinationSwitchboard:
      title: DestinationSwitchboard
      properties:
        type:
          type: string
          description: MUST be 'switchboard'
        switchboard_uuid:
          type: string
          description: The UUID of the switchboard.
      required:
      - type
      - switchboard_uuid
    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
    DestinationApplicationCallbackDISA:
      title: DestinationApplicationCallbackDISA
      allOf:
      - $ref: '#/components/schemas/DestinationApplication'
      - properties:
          application:
            type: string
            description: MUST be 'callback_disa'
          context:
            type: integer
            description: The context of the application
          pin:
            type: string
            description: the pin of the application
        required:
        - application
        - context
    DestinationApplicationFaxToMail:
      title: DestinationApplicationFaxToMail
      allOf:
      - $ref: '#/components/schemas/DestinationApplication'
      - properties:
          application:
            type: string
            description: MUST be 'fax_to_mail'
          email:
            type: string
            description: The email of the application
      required:
      - application
      - email
    Error:
      type: array
      items:
        type: string
    IncallItems:
      title: IncallItems
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Incall'
        total:
          type: integer
      required:
      - total
    DestinationNone:
      title: DestinationNone
      properties:
        type:
          type: string
          description: MUST be 'none'
      required:
      - type
    IncallRelationBase:
      title: IncallRelation
      properties:
        id:
          type: integer
          readOnly: true
          description: The id of the incoming call
    DestinationExtension:
      title: DestinationExtension
      properties:
        type:
          type: string
          description: MUST be 'extension'
        exten:
          type: string
        context:
          type: string
          description: Context of the extension
      required:
      - type
      - exten
      - context
  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
    extensionid:
      required: true
      name: extension_id
      in: path
      schema:
        type: integer
    incallid:
      required: true
      name: incall_id
      in: path
      description: Incoming call's ID
      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
    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
    userid:
      required: false
      name: user_id
      in: query
      description: the user's ID
      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'