Wazo External Apps API

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

Operations 10

GET /external/apps List external apps #
POST /external/apps/{app_name} Create external app #
GET /external/apps/{app_name} Get external app #
PUT /external/apps/{app_name} Update external app #
DELETE /external/apps/{app_name} Delete external app #
GET /users/{user_uuid}/external/apps List user external apps #
POST /users/{user_uuid}/external/apps/{app_name} Create user external app #
GET /users/{user_uuid}/external/apps/{app_name} Get user external app #
PUT /users/{user_uuid}/external/apps/{app_name} Update user external app #
DELETE /users/{user_uuid}/external/apps/{app_name} Delete user external app #

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-external-apps-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-external-apps-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: wazo-confd External Apps 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: external_apps
paths:
  /external/apps:
    get:
      operationId: list_external_apps
      summary: List external apps
      description: '**Required ACL:** `confd.external.apps.read`'
      tags:
      - external_apps
      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: External apps list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAppItems'
  /external/apps/{app_name}:
    post:
      operationId: create_external_app
      summary: Create external app
      description: '**Required ACL:** `confd.external.apps.{app_name}.create`'
      tags:
      - external_apps
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/externalappname'
      responses:
        '201':
          description: External app created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalApp'
        '400':
          $ref: '#/components/responses/CreateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalApp'
        description: External app to create
        required: true
    get:
      operationId: get_external_app
      summary: Get external app
      description: '**Required ACL:** `confd.external.apps.{app_name}.read`'
      tags:
      - external_apps
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/externalappname'
      responses:
        '200':
          description: External App
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalApp'
        '404':
          $ref: '#/components/responses/NotFoundError'
    put:
      operationId: update_external_app
      summary: Update external app
      description: '**Required ACL:** `confd.external.apps.{app_name}.update`'
      tags:
      - external_apps
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/externalappname'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalApp'
        required: true
    delete:
      operationId: delete_external_app
      summary: Delete external app
      description: '**Required ACL:** `confd.external.apps.{app_name}.delete`'
      tags:
      - external_apps
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/externalappname'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '400':
          $ref: '#/components/responses/DeleteError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /users/{user_uuid}/external/apps:
    get:
      operationId: list_user_external_apps
      summary: List user external apps
      description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.read`'
      tags:
      - external_apps
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useruuid'
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      - $ref: '#/components/parameters/user_external_app_view'
      responses:
        '200':
          description: User external apps list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserExternalAppItems'
  /users/{user_uuid}/external/apps/{app_name}:
    post:
      operationId: create_user_external_app
      summary: Create user external app
      description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.create`'
      tags:
      - external_apps
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useruuid'
      - $ref: '#/components/parameters/externalappname'
      responses:
        '201':
          description: External app created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserExternalApp'
        '400':
          $ref: '#/components/responses/CreateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserExternalApp'
        description: External app to create
        required: true
    get:
      operationId: get_user_external_app
      summary: Get user external app
      description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.read`'
      tags:
      - external_apps
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useruuid'
      - $ref: '#/components/parameters/externalappname'
      - $ref: '#/components/parameters/user_external_app_view'
      responses:
        '200':
          description: External App
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserExternalApp'
        '404':
          $ref: '#/components/responses/NotFoundError'
    put:
      operationId: update_user_external_app
      summary: Update user external app
      description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.update`'
      tags:
      - external_apps
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useruuid'
      - $ref: '#/components/parameters/externalappname'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserExternalApp'
        required: true
    delete:
      operationId: delete_user_external_app
      summary: Delete user external app
      description: '**Required ACL:** `confd.users.{user_uuid}.external.apps.{app_name}.delete`'
      tags:
      - external_apps
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useruuid'
      - $ref: '#/components/parameters/externalappname'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '400':
          $ref: '#/components/responses/DeleteError'
        '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
    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
    useruuid:
      required: true
      name: user_uuid
      in: path
      description: the user's UUID
      schema:
        type: string
        format: uuid
    user_external_app_view:
      required: false
      name: view
      in: query
      description: 'Different view of the external app endpoint


        The `default` view, when the argument is omitted, is to return the user value for this

        external app


        The `fallback` view return the user value for this external app, but if not found, will

        fallback to the tenant configured value


        **WARNING**: Using fallback view on list will disabled all pagination and search features

        '
      schema:
        type: string
        enum:
        - fallback
    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
    externalappname:
      required: true
      name: app_name
      in: path
      description: External App's name
      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:
    ExternalAppItems:
      title: ExternalAppItems
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ExternalApp'
        total:
          type: integer
      required:
      - total
    ExternalApp:
      title: ExternalApp
      properties:
        tenant_uuid:
          type: string
          description: The UUID of the tenant
          readOnly: true
        name:
          type: string
          description: The name to identify the external app
          readOnly: true
        label:
          type: string
          description: The label of the external app
        configuration:
          type: object
          description: Arbitrary settings needed by an external app
    UserExternalApp:
      title: UserExternalApp
      properties:
        name:
          type: string
          description: The name to identify the external app
          readOnly: true
        label:
          type: string
          description: The label of the external app
        configuration:
          type: object
          description: Arbitrary settings needed by an external app
    UserExternalAppItems:
      title: UserExternalAppItems
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/UserExternalApp'
        total:
          type: integer
      required:
      - total
    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'