Wazo Funckeys API

The funckeys API from Wazo — 9 operation(s) for funckeys.

Operations 18

GET /funckeys/destinations List of possible func key destinations and their parameters #
GET /funckeys/templates List a func key template #
POST /funckeys/templates Create a template of func keys #
GET /funckeys/templates/{template_id} Get a func key template #
PUT /funckeys/templates/{template_id} Update a func key template #
DELETE /funckeys/templates/{template_id} Delete func key template #
GET /funckeys/templates/{template_id}/users List users associated to template #
GET /funckeys/templates/{template_id}/{position} Get a func key inside template #
PUT /funckeys/templates/{template_id}/{position} Add/Replace a func key in a template #
DELETE /funckeys/templates/{template_id}/{position} Remove func key from template #
GET /users/{user_id}/funckeys List func keys for a user #
PUT /users/{user_id}/funckeys Update func keys for a user #
GET /users/{user_id}/funckeys/{position} Get a func key for a user #
PUT /users/{user_id}/funckeys/{position} Add/Replace a func key for a user #
DELETE /users/{user_id}/funckeys/{position} Remove func key for user #
GET /users/{user_id}/funckeys/templates List funckey templates associated to user #
PUT /users/{user_id}/funckeys/templates/{template_id} Associate a func key template to a user #
DELETE /users/{user_id}/funckeys/templates/{template_id} Dissociate a func key template to a user #

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-funckeys-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-funckeys-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: wazo-confd Funckeys 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: funckeys
  externalDocs:
    url: https://wazo-platform.org/uc-doc/api_sdk/rest_api/confd/func_keys
    description: Documentation on function key models
paths:
  /funckeys/destinations:
    get:
      operationId: list_func_key_destinations
      summary: List of possible func key destinations and their parameters
      description: '**Required ACL:** `confd.funckeys.destinations.read`'
      tags:
      - funckeys
      responses:
        '200':
          description: List of destinations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuncKeyDestinationItems'
  /funckeys/templates:
    get:
      operationId: list_func_key_template
      summary: List a func key template
      description: '**Required ACL:** `confd.funckeys.templates.read`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/recurse'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: List Func key template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuncKeyTemplate'
        '404':
          $ref: '#/components/responses/NotFoundError'
    post:
      operationId: create_func_key_template
      summary: Create a template of func keys
      description: '**Required ACL:** `confd.funckeys.templates.create`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '201':
          description: Template created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuncKeyTemplate'
        '400':
          $ref: '#/components/responses/CreateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FuncKeyTemplate'
        description: Template to create
  /funckeys/templates/{template_id}:
    get:
      operationId: get_func_key_template
      summary: Get a func key template
      description: '**Required ACL:** `confd.funckeys.templates.{template_id}.read`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/templateid'
      responses:
        '200':
          description: Func key template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuncKeyTemplate'
        '404':
          $ref: '#/components/responses/NotFoundError'
    put:
      operationId: update_func_key_template
      summary: Update a func key template
      description: '**Required ACL:** `confd.funckeys.templates.{template_id}.update`


        **WARNING** This endpoint restore to default value or delete all fields that are not defined.'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/templateid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FuncKeyTemplate'
        required: true
    delete:
      operationId: delete_func_key_template
      summary: Delete func key template
      description: '**Required ACL:** `confd.funckeys.templates.{template_id}.delete`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/templateid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '400':
          $ref: '#/components/responses/DeleteError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /funckeys/templates/{template_id}/users:
    get:
      operationId: list_func_key_template_user_associations
      summary: List users associated to template
      description: '**Required ACL:** `confd.funckeys.templates.{template_id}.users.read`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/templateid'
      responses:
        '200':
          description: User-FuncKeyTemplate associations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserFuncKeyTemplate'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /funckeys/templates/{template_id}/{position}:
    get:
      operationId: get_func_key
      summary: Get a func key inside template
      description: '**Required ACL:** `confd.funckeys.templates.{template_id}.{position}.read`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/templateid'
      - $ref: '#/components/parameters/funckeyposition'
      responses:
        '200':
          description: Func key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuncKey'
        '404':
          $ref: '#/components/responses/NotFoundError'
    put:
      operationId: update_func_key
      summary: Add/Replace a func key in a template
      description: '**Required ACL:** `confd.funckeys.templates.{template_id}.{position}.update`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/templateid'
      - $ref: '#/components/parameters/funckeyposition'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FuncKey'
        required: true
    delete:
      operationId: delete_func_key
      summary: Remove func key from template
      description: '**Required ACL:** `confd.funckeys.templates.{template_id}.{position}.delete`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/templateid'
      - $ref: '#/components/parameters/funckeyposition'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '400':
          $ref: '#/components/responses/DeleteError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /users/{user_id}/funckeys:
    get:
      operationId: list_user_func_keys
      summary: List func keys for a user
      description: '**Required ACL:** `confd.users.{user_id}.funckeys.read`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useriduuid'
      responses:
        '200':
          description: Func keys for user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuncKeyTemplate'
    put:
      operationId: update_user_func_keys
      summary: Update func keys for a user
      description: '**Required ACL:** `confd.users.{user_id}.funckeys.update`


        **WARNING** This endpoint restore to default value or delete all fields that are not defined.'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useriduuid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FuncKeyTemplate'
        required: true
  /users/{user_id}/funckeys/{position}:
    get:
      operationId: get_user_func_key
      summary: Get a func key for a user
      description: '**Required ACL:** `confd.users.{user_id}.funckeys.{position}.read`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useriduuid'
      - $ref: '#/components/parameters/funckeyposition'
      responses:
        '200':
          description: Func key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FuncKey'
        '404':
          $ref: '#/components/responses/NotFoundError'
    put:
      operationId: update_user_func_key
      summary: Add/Replace a func key for a user
      description: '**Required ACL:** `confd.users.{user_id}.funckeys.{position}.update`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useriduuid'
      - $ref: '#/components/parameters/funckeyposition'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FuncKey'
        required: true
    delete:
      operationId: delete_user_func_key
      summary: Remove func key for user
      description: '**Required ACL:** `confd.users.{user_id}.funckeys.{position}.delete`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useriduuid'
      - $ref: '#/components/parameters/funckeyposition'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '400':
          $ref: '#/components/responses/DeleteError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /users/{user_id}/funckeys/templates:
    get:
      operationId: list_user_func_key_template_associations
      summary: List funckey templates associated to user
      description: '**Required ACL:** `confd.users.{user_id}.funckeys.templates.read`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useriduuid'
      responses:
        '200':
          description: User-FuncKeyTemplate associations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserFuncKeyTemplate'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /users/{user_id}/funckeys/templates/{template_id}:
    put:
      operationId: associate_user_func_key_template
      summary: Associate a func key template to a user
      description: '**Required ACL:** `confd.users.{user_id}.funckeys.templates.{template_id}.update`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useriduuid'
      - $ref: '#/components/parameters/templateid'
      responses:
        '204':
          description: User and template associated
        '400':
          $ref: '#/components/responses/GenericError'
        '404':
          $ref: '#/components/responses/NotFoundError'
    delete:
      operationId: dissociate_user_func_key_template
      summary: Dissociate a func key template to a user
      description: '**Required ACL:** `confd.users.{user_id}.funckeys.templates.{template_id}.delete`'
      tags:
      - funckeys
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/useriduuid'
      - $ref: '#/components/parameters/templateid'
      responses:
        '204':
          description: User and template 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
    CreateError:
      description: An error occurred when creating the resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    GenericError:
      description: An error occurred during the operation
      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:
    FuncKeyDestination:
      title: FuncKeyDestination
      properties:
        type:
          type: string
        parameters:
          items:
            $ref: '#/components/schemas/FuncKeyDestinationParameter'
          type: array
    FuncKeyTemplate:
      title: FuncKeyTemplate
      description: Further documentation at https://wazo-platform.org/uc-doc/administration/users/csv_import
      properties:
        id:
          type: integer
          description: The ID of the funckey template
          readOnly: true
        tenant_uuid:
          type: string
          description: The UUID of the tenant
          readOnly: true
        name:
          type: string
        keys:
          type: object
    FuncKeyDestinationItems:
      title: FuncKeyDestinationItems
      description: Description of func key destinations and their parameters
      items:
        $ref: '#/components/schemas/FuncKeyDestination'
      type: array
    FuncKey:
      title: FuncKey
      description: Further documentation at https://wazo-platform.org/uc-doc/api_sdk/rest_api/confd/func_keys
      properties:
        blf:
          type: boolean
        label:
          type: string
        destination:
          type: object
    UserFuncKeyTemplate:
      title: UserFuncKeyTemplate
      description: Association between a User and a FuncKey Template
      properties:
        user_id:
          type: integer
          format: int32
          description: User's ID
        template_id:
          type: integer
          format: int32
          description: FuncKey Template's ID
    FuncKeyDestinationParameter:
      title: FuncKeyDestinationParameter
      properties:
        name:
          type: string
          description: Parameter name
        collection:
          type: string
          description: URL towards a collection of entities representing possible values as a destination
        values:
          description: Array of values to choose from for this parameter
          items:
            type: string
          type: array
    Error:
      type: array
      items:
        type: string
  parameters:
    tenantuuid:
      name: Wazo-Tenant
      in: header
      description: The tenant's UUID, defining the ownership of a given resource.
      required: false
      schema:
        type: string
    useriduuid:
      required: true
      name: user_id
      in: path
      description: the user's ID or UUID
      schema:
        type: string
    templateid:
      required: true
      name: template_id
      in: path
      schema:
        type: integer
    offset:
      required: false
      name: offset
      in: query
      description: Number of items to skip over in the list. Useful for pagination.
      schema:
        type: integer
    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
    funckeyposition:
      required: true
      name: position
      in: path
      description: position of the funckey
      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'