Wazo Users API

The users API from Wazo — 104 operation(s) for users.

Operations 155

GET /users/me/agents Get agent status of the user holding the authentication token. #
POST /users/me/agents/login Log the agent of the user holding the authentication token #
POST /users/me/agents/logoff Logoff the agent of the user holding the authentication token #
POST /users/me/agents/pause Pause the agent of the user holding the authentication token #
POST /users/me/agents/unpause Unpause the agent of the user holding the authentication token #
PUT /users/me/agents/queues/{queue_id}/login Login user agent to queue #
PUT /users/me/agents/queues/{queue_id}/logoff Logoff user agent from queue #
GET /users/{user_uuid}/external/google Get a Google token
POST /users/{user_uuid}/external/google Ask for a verification URL and store code to get token
DELETE /users/{user_uuid}/external/google Delete a Google token
GET /users/{user_uuid}/external/microsoft Get a Microsoft token
POST /users/{user_uuid}/external/microsoft Ask for a verification URL and store code to get token
DELETE /users/{user_uuid}/external/microsoft Delete a Microsoft token
GET /users/{user_uuid}/external/mobile Get device tokens for push notifications
POST /users/{user_uuid}/external/mobile Configure device tokens for push notifications
PUT /users/{user_uuid}/external/mobile Update device tokens for push notifications
DELETE /users/{user_uuid}/external/mobile Delete device tokens for push notifications
GET /users/{user_uuid}/external/mobile/sender_id Get your Mobile sender_id
GET /users/{user_uuid}/external Retrieves the list of the users external auth data
PUT /idp/{idp_type}/users/{user_uuid} Associate user to a IDP #
DELETE /idp/{idp_type}/users/{user_uuid} Dissocuate a user from an IDP #
GET /users/password/reset Reset the user password #
POST /users/password/reset Set the user password #
GET /users/{user_uuid_or_me}/tokens Retrieve a user's refresh token list #
DELETE /users/{user_uuid_or_me}/tokens/{client_id} Delete a user's refresh token #
PUT /admin/users/{user_uuid}/emails Update email addresses
PUT /users/{user_uuid}/emails Update email addresses
GET /users/{user_uuid}/emails/{email_uuid}/confirm Ask a new confirmation email
PUT /groups/{group_uuid}/users/{user_uuid} Associate a group to a user #
DELETE /groups/{group_uuid}/users/{user_uuid} Dissociate a user from a group #
GET /users/{user_uuid}/groups Retrieves the list of groups associated to a user
GET /users/{user_uuid}/policies Retrieves the list of policies associated to a user
PUT /users/{user_uuid}/policies/{policy_uuid} Associate a policy to a user #
DELETE /users/{user_uuid}/policies/{policy_uuid} Dissociate a policy from a user #
POST /users/register Create a user #
GET /users/{user_uuid}/sessions Retrieves the list of sessions associated to a user
DELETE /users/{user_uuid}/sessions/{session_uuid} Delete a session #
GET /users Retrieves the list of users
POST /users Create a user #
GET /users/{user_uuid} Retrieves the details of a user
DELETE /users/{user_uuid} Delete a user #
PUT /users/{user_uuid} Update an existing user #
PUT /users/{user_uuid}/password Change the user's password
GET /users/{user_uuid}/cdr List CDR of the given user
GET /users/me/cdr List CDR of the authenticated user
GET /users/me/calls List calls of a user
POST /users/me/calls Make a new call from a user
DELETE /users/me/calls/{call_id} Hangup a call from a user
PUT /users/me/calls/{call_id}/mute/start Mute a call from user
PUT /users/me/calls/{call_id}/mute/stop Unmute a call from user
PUT /users/me/calls/{call_id}/hold/start Hold a call from user
PUT /users/me/calls/{call_id}/hold/stop Unhold a call from user
PUT /users/me/calls/{call_id}/record/start Start recording a call
PUT /users/me/calls/{call_id}/record/stop Stop recording a call
PUT /users/me/calls/{call_id}/record/pause Pause recording a call
PUT /users/me/calls/{call_id}/record/resume Resume recording a call
PUT /users/me/calls/{call_id}/answer Answer a call from user
PUT /users/me/calls/{call_id}/dtmf Simulate a user pressing DTMF keys
GET /users/me/conferences/{conference_id}/participants List participants of a conference as a user
GET /users/me/meetings/{meeting_uuid}/participants List participants of a meeting as a user
DELETE /users/me/meetings/{meeting_uuid}/participants/{participant_id} Kick a participant from a meeting as a user
PUT /users/me/calls/{call_id}/park Park the user's connected (talking to) call
GET /users/me/relocates Get the relocates of the authenticated user
POST /users/me/relocates Initiate a relocate from the authenticated user
PUT /users/me/relocates/{relocate_uuid}/cancel Cancel a relocate
PUT /users/me/relocates/{relocate_uuid}/complete Complete a relocate
GET /users/me/transfers Get the transfers of the authenticated user
POST /users/me/transfers Initiate a transfer from the authenticated user
DELETE /users/me/transfers/{transfer_id} Cancel a transfer
PUT /users/me/transfers/{transfer_id}/complete Complete a transfer
GET /users/me/voicemails Get details of the voicemail of the authenticated user
GET /users/me/voicemails/folders/{folder_id} Get details of a folder
GET /users/me/voicemails/messages Get all user's messages
GET /users/me/voicemails/messages/{message_id} Get a message
PUT /users/me/voicemails/messages/{message_id} Update a message
DELETE /users/me/voicemails/messages/{message_id} Delete a mesage
GET /users/me/voicemails/messages/{message_id}/recording Get a message's recording
POST /users/me/voicemails/greetings/{greeting} Create a custom greeting
HEAD /users/me/voicemails/greetings/{greeting} Check if greeting exists
GET /users/me/voicemails/greetings/{greeting} Get a custom greeting
PUT /users/me/voicemails/greetings/{greeting} Update a custom greeting
DELETE /users/me/voicemails/greetings/{greeting} Delete a custom greeting
POST /users/me/voicemails/greetings/{greeting}/copy Copy a custom greeting
PUT /callfilters/{callfilter_id}/recipients/users Update call filter and recipients #
PUT /callfilters/{callfilter_id}/surrogates/users Update call filter and surrogates #
PUT /callpickups/{callpickup_id}/interceptors/users Update call pickup and interceptors #
PUT /callpickups/{callpickup_id}/targets/users Update call pickup and targets #
GET /funckeys/templates/{template_id}/users List users associated to 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 #
PUT /groups/{group_uuid}/members/users Update group's user members #
GET /users/me/meetings List user meetings #
POST /users/me/meetings Create user meeting #
GET /users/me/meetings/{meeting_uuid} Get one of the meetings of the current user #
PUT /users/me/meetings/{meeting_uuid} Update one of the meetings of the current user #
DELETE /users/me/meetings/{meeting_uuid} Delete one of the meetings of the current user #
GET /user/me/meetings/{meeting_uuid}/authorizations List all guest authorization requests of a meeting #
PUT /user/me/meetings/{meeting_uuid}/authorizations/{authorization_uuid}/accept Accept a guest authorization request #
PUT /user/me/meetings/{meeting_uuid}/authorizations/{authorization_uuid}/reject Reject a guest authorization request #
PUT /pagings/{paging_id}/callers/users Update paging and callers #
PUT /pagings/{paging_id}/members/users Update paging and members #
PUT /queues/{queue_id}/members/users/{user_id} Update User-Queue association #
DELETE /queues/{queue_id}/members/users/{user_id} Dissociate user and queue #
PUT /switchboards/{switchboard_uuid}/members/users Update switchboard and members #
HEAD /users/{user_id} Check if user exists #
GET /users/{user_id} Get user #
PUT /users/{user_id} Update user #
DELETE /users/{user_id} Delete user #
GET /users/{user_id}/forwards List forwards for a user #
PUT /users/{user_id}/forwards Update all forwards for a user #
GET /users/{user_id}/forwards/{forward_name} Get forward for a user #
PUT /users/{user_id}/forwards/{forward_name} Update a forward for a user #
GET /users/{user_id}/services Get status of all user's services #
PUT /users/{user_id}/services Update all services for a user #
GET /users/{user_id}/services/{service_name} Get status of service #
PUT /users/{user_id}/services/{service_name} Enable/Disable service for a user #
DELETE /users/{user_id}/agents Dissociate user and agent #
PUT /users/{user_id}/agents/{agent_id} Associate user and agent #
PUT /users/{user_id}/callpermissions/{callpermission_id} Associate user and call permission #
DELETE /users/{user_id}/callpermissions/{callpermission_id} Dissociate user and call permission #
GET /users/{user_id}/callerids/outgoing List user's outgoing callerids #
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 #
GET /users/{user_id}/fallbacks List all fallbacks for user #
PUT /users/{user_id}/fallbacks Update user's fallbacks #
PUT /users/{user_id}/groups Update user and groups #
GET /users/export Mass export users and associated resources #
POST /users/import Mass import users and associated resources #
PUT /users/import **Disabled!** Mass import users and associated resources #
DELETE /users/{user_id}/lines/{line_id} Dissociate user and line #
PUT /users/{user_id}/lines/{line_id} Associate user and line #
PUT /users/{user_id}/lines Associate user and lines #
GET /users/{user_uuid}/lines/{line_id}/associated/endpoints/sip Get SIP endpoint of a line for a user #
GET /users/{user_uuid}/lines/main/associated/endpoints/sip Get SIP endpoint of main line for a user #
PUT /users/{user_id}/schedules/{schedule_id} Associate user and schedule #
DELETE /users/{user_id}/schedules/{schedule_id} Dissociate user and schedule #
GET /users/subscriptions Get user subscription #
POST /users/{user_id}/voicemails Create user voicemail #
GET /users/{user_id}/voicemails Get user voicemails #
DELETE /users/{user_id}/voicemails Dissociate user and voicemail #
PUT /users/{user_id}/voicemails/{voicemail_id} Associate user and voicemail #
GET /users/me/subscriptions List subscriptions of a user to HTTP callbacks #
POST /users/me/subscriptions Subscribe to a HTTP callback (webhook) as a user #
GET /users/me/subscriptions/{subscription_uuid} Get a user subscription #
PUT /users/me/subscriptions/{subscription_uuid} Update a user subscription #
DELETE /users/me/subscriptions/{subscription_uuid} Delete a user subscription #

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-users-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-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Wazo Users API
  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
  version: '1.0'
  description: 'Operations tagged users across 6 of this provider''s published API definitions: wazo-agentd-api-openapi.yml, wazo-auth-api-openapi.yml, wazo-call-logd-api-openapi.yml, wazo-calld-api-openapi.yml, wazo-confd-api-openapi.yml, wazo-webhookd-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: /1.0
- url: /0.1
- url: /1.1
tags:
- name: users
paths:
  /users/me/agents:
    get:
      summary: Get agent status of the user holding the authentication token.
      description: '**Required ACL:** `agentd.users.me.agents.read`'
      operationId: get_user_agent
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '200':
          description: The agent status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentStatus'
        '404':
          description: Agent does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - wazo_auth_token: []
    servers:
    - url: /1.0
  /users/me/agents/login:
    post:
      summary: Log the agent of the user holding the authentication token
      description: '**Required ACL:** `agentd.users.me.agents.login.create`'
      operationId: login_user_agent
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '204':
          description: The operation was performed successfully
        '400':
          description: The user does not own the line; or the token has no user; or wrong tenant; or the user has no agent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Agent is already logged or another agent is already logged on this line
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserAgentLoginInfo'
        description: The line on which to log the agent
        required: true
      security:
      - wazo_auth_token: []
    servers:
    - url: /1.0
  /users/me/agents/logoff:
    post:
      summary: Logoff the agent of the user holding the authentication token
      description: '**Required ACL:** `agentd.users.me.agents.logoff.create`'
      operationId: logoff_user_agent
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '204':
          description: The operation was performed successfully
        '400':
          description: The token has no user; or wrong tenant; or the user has no agent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Agent is already logged or another agent is already logged on this line
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - wazo_auth_token: []
    servers:
    - url: /1.0
  /users/me/agents/pause:
    post:
      summary: Pause the agent of the user holding the authentication token
      description: '**Required ACL:** `agentd.users.me.agents.pause.create`'
      operationId: pause_user_agent
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '204':
          description: The operation was performed successfully
        '400':
          description: The token has no user; or wrong tenant; or the user has no agent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Agent is already logged or another agent is already logged on this line
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentPauseReason'
        description: The reason for pausing the agent
      security:
      - wazo_auth_token: []
    servers:
    - url: /1.0
  /users/me/agents/unpause:
    post:
      summary: Unpause the agent of the user holding the authentication token
      description: '**Required ACL:** `agentd.users.me.agents.unpause.create`'
      operationId: unpause_user_agent
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '204':
          description: The operation was performed successfully
        '400':
          description: The token has no user; or wrong tenant; or the user has no agent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Agent is already logged or another agent is already logged on this line
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - wazo_auth_token: []
    servers:
    - url: /1.0
  /users/me/agents/queues/{queue_id}/login:
    put:
      summary: Login user agent to queue
      description: '**Required ACL:** `agentd.users.me.agents.queues.{queue_id}.login.update`'
      operationId: user_agent_login_to_queue
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/QueueID'
      responses:
        '204':
          description: The operation was performed successfully
        '400':
          description: The token has no user; or wrong tenant; or the user has no agent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Agent or queue does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Agent is not logged
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - wazo_auth_token: []
    servers:
    - url: /1.0
  /users/me/agents/queues/{queue_id}/logoff:
    put:
      summary: Logoff user agent from queue
      description: '**Required ACL:** `agentd.users.me.agents.queues.{queue_id}.logoff.update`'
      operationId: user_agent_logoff_from_queue
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/QueueID'
      responses:
        '204':
          description: The operation was performed successfully
        '400':
          description: The token has no user; or wrong tenant; or the user has no agent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Agent or queue does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Agent is not logged
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - wazo_auth_token: []
    servers:
    - url: /1.0
  /users/{user_uuid}/external/google:
    get:
      summary: Get a Google token
      description: '**Required ACL**: `auth.users.{user_uuid}.external.google.read`'
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '200':
          description: The auth data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleGetResult'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    post:
      summary: Ask for a verification URL and store code to get token
      description: '**Required ACL**: `auth.users.{user_uuid}.external.google.create`.


        More info on Google permissions: https://developers.google.com/identity/protocols/googlescopes"

        '
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '201':
          description: Authentication url
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GooglePostResult'
        '400':
          description: Invalid body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GooglePost'
    delete:
      summary: Delete a Google token
      description: '**Required ACL**: `auth.users.{user_uuid}.external.google.delete`'
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '204':
          description: External authentication deleted
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    servers:
    - url: /0.1
  /users/{user_uuid}/external/microsoft:
    get:
      summary: Get a Microsoft token
      description: '**Required ACL**: `auth.users.{user_uuid}.external.microsoft.read`'
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '200':
          description: The auth data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MicrosoftGetResult'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    post:
      summary: Ask for a verification URL and store code to get token
      description: "**Required ACL**: `auth.users.{user_uuid}.external.microsoft.create`.\n\n More info on Microsoft permissions: https://docs.microsoft.com/en-us/graph/permissions-reference"
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '201':
          description: Authentication url
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MicrosoftPostResult'
        '400':
          description: Invalid body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MicrosoftPost'
    delete:
      summary: Delete a Microsoft token
      description: '**Required ACL**: `auth.users.{user_uuid}.external.microsoft.delete`'
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '204':
          description: No content
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    servers:
    - url: /0.1
  /users/{user_uuid}/external/mobile:
    get:
      summary: Get device tokens for push notifications
      description: '**Required ACL**: `auth.users.{user_uuid}.external.mobile.read`'
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '200':
          description: The auth data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MobileData'
        '400':
          description: Invalid body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    post:
      summary: Configure device tokens for push notifications
      description: '**Required ACL**: `auth.users.{user_uuid}.external.mobile.create`'
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '200':
          description: The auth data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MobileData'
        '400':
          description: Invalid body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MobileData'
        required: true
    put:
      summary: Update device tokens for push notifications
      description: '**Required ACL**: `auth.users.{user_uuid}.external.mobile.update`'
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '200':
          description: The updated mobile auth data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MobileData'
        '400':
          description: Invalid body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MobileData'
        required: true
    delete:
      summary: Delete device tokens for push notifications
      description: '**Required ACL**: `auth.users.{user_uuid}.external.mobile.delete`'
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '204':
          description: the mobile auth data was successfully deleted
    servers:
    - url: /0.1
  /users/{user_uuid}/external/mobile/sender_id:
    get:
      summary: Get your Mobile sender_id
      description: '**Required ACL**: `auth.users.{user_uuid}.external.mobile.sender_id.read`'
      tags:
      - users
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '200':
          description: The sender id
          content:
            application/json:
              schema:
                type: object
                properties:
                  sender_id:
                    type:
                    - string
                    - 'null'
                    description: The sender id
        '400':
          description: Invalid body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    servers:
    - url: /0.1
  /users/{user_uuid}/external:
    get:
      tags:
      - users
      security:
      - wazo_auth_token: []
      description: '**Required ACL**: `auth.users.{user_uuid}.external.read`


        This list should not contain any sensible information

        '
      summary: Retrieves the list of the users external auth data
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: The list of external auth data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalAuthList'
    servers:
    - url: /0.1
  /idp/{idp_type}/users/{user_uuid}:
    put:
      tags:
      - users
      security:
      - wazo_auth_token: []
      operationId: addUserIDP
      description: '**Required ACL:** `auth.idp.{idp_type}.users.{user_uuid}.create`'
      summary: Associate user to a IDP
      parameters:
      - $ref: '#/components/parameters/idp_type'
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '204':
          description: The user has been assigned
        '404':
          description: User or IDP not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
    delete:
      tags:
      - users
      security:
      - wazo_auth_token: []
      operationId: removeIDPUser
      description: '**Required ACL:** `auth.idp.{idp_type}.users.{user_uuid}.delete`'
      summary: Dissocuate a user from an IDP
      parameters:
      - $ref: '#/components/parameters/idp_type'
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '204':
          description: The user has been unassigned
        '404':
          description: User or IDP not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
    servers:
    - url: /0.1
  /users/password/reset:
    get:
      summary: Reset the user password
      description: 'This action will send an email containing instructions to set a new password.


        The login or username or email address should be supplied as query string to find the user

        '
      operationId: reset_password
      tags:
      - users
      parameters:
      - name: username
        in: query
        description: The user's username
        schema:
          type: string
      - name: email
        in: query
        description: The user's email address
        schema:
          type: string
      - name: login
        in: query
        description: The user's login (username or email)
        schema:
          type: string
      responses:
        '204':
          description: A mail will be sent if the username or email were found
        '405':
          description: Unable to reset the password, e.g. because the authentication is handled externally.
    post:
      security:
      - wazo_auth_token: []
      summary: Set the user password
      description: '**Required ACL**: `auth.users.password.reset.{user_uuid}.create`


        Set a new password for the user after the user used the GET on the reset URL.


        All active sessions (i.e. tokens) will be immediately revoked and can no longer be used.

        Existing refresh tokens are not affected and remain valid.

        '
      operationId: reset_password_change
      tags:
      - users
      parameters:
      - name: user_uuid
        in: query
        description: The user's UUID
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Password changed
        '405':
          description: Unable to reset the password, e.g. because the authentication is handled externally.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostPasswordReset'
        description: The password change parameters
        required: true
    servers:
    - url: /0.1
  /users/{user_uuid_or_me}/tokens:
    get:
      operationId: listUserRefreshTokens
      summary: Retrieve a user's refresh token list
      description: '**Required ACL**: `auth.users.{user_uuid}.tokens.read`


        Finds all of a user''s refresh token and return the list. Access tokens are not included in the result.


        Doing a query with the `user_uuid` `me` will result in the current user''s token being used.

        '
      tags:
      - users
      security:
      - wazo_auth_token: []
      parameters:
      - $ref: '#/components/parameters/user_uuid_or_me'
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      responses:
        '200':
          description: A refresh token list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshTokenList'
        '400':
          description: Invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '500':
          description: System related token error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    servers:
    - url: /0.1
  /users/{user_uuid_or_me}/tokens/{client_id}:
    delete:
      operationId: deleteRefreshTokens
      summary: Delete a user's refresh token
      description: '**Required ACL**: `auth.users.{user_uuid}.tokens.{client_id}.delete`


        Remove a given refresh token. This only prevent this refresh token from creating new

        access tokens. Any tokens that are currently issued are still usable and should be

        revoked if needed.

        '
      tags:
      - users
      security:
      - wazo_auth_token: []
      parameters:
      - $ref: '#/components/parameters/user_uuid_or_me'
      - $ref: '#/components/parameters/client_id'
      responses:
        '204':
          description: The refresh token has been deleted
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '404':
          description: User or refresh token not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '500':
          description: System related token error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    servers:
    - url: /0.1
  /admin/users/{user_uuid}/emails:
    put:
      tags:
      - users
      security:
      - wazo_auth_token: []
      description: '**Required ACL**: `auth.admin.users.{user_uuid}.emails.update`

        Update all of the users email address at the same time.

        If an existing address is missing from the list, it will be removed. An empty list will remove all addresses. If addresses are defined, one and only one address should be main. If the confirmed field is set to none or ommited the existing value will be reused if it exists, otherwise the address will not be confirmed. '
      summary: Update email addresses
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '200':
          description: The updated email list
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdminUserEmailList'
        description: EmailAddressList
        required: true
    servers:
    - url: /0.1
  /users/{user_uuid}/emails:
    put:
      tags:
      - users
      security:
      - wazo_auth_token: []
      description: '**Required ACL**: `auth.users.{user_uuid}.emails.update`

        Update all of the users email address at the same time.

        If an existing address is missing from the list, it will be removed. An empty list will remove all addresses. If addresses are defined, one and only one address should be main. All new address are created unconfirmed. '
      summary: Update email addresses
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '200':
          description: The updated email list
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserEmailList'
        description: EmailAddressList
        required: true
    servers:
    - url: /0.1
  /users/{user_uuid}/emails/{email_uuid}/confirm:
    get:
      tags:
      - users
      security:
      - wazo_auth_token: []
      description: '**Required ACL**: `auth.users.{user_uuid}.emails.{email_uuid}.confirm.read`'
      summary: Ask a new confirmation email
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      - $ref: '#/components/parameters/email_uuid'
      responses:
        '204':
          description: The new email confirmation email has been sent
        '404':
          description: User or Email not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
        '409':
          description: Already confirmed
    servers:
    - url: /0.1
  /groups/{group_uuid}/users/{user_uuid}:
    put:
      tags:
      - users
      security:
      - wazo_auth_token: []
      operationId: addUserGroup
      description: '**Required ACL:** `auth.groups.{group_uuid}.users.{user_uuid}.create`'
      summary: Associate a group to a user
      parameters:
      - $ref: '#/components/parameters/group_uuid'
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '204':
          description: The user has been assigned
        '404':
          description: User or Group not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
    delete:
      tags:
      - users
      security:
      - wazo_auth_token: []
      operationId: removeUserGroup
      description: '**Required ACL:** `auth.groups.{group_uuid}.users.{user_uuid}.delete`'
      summary: Dissociate a user from a group
      parameters:
      - $ref: '#/components/parameters/group_uuid'
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '204':
          description: The user has been unassigned
        '404':
          description: User or Group not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
    servers:
    - url: /0.1
  /users/{user_uuid}/groups:
    get:
      tags:
      - users
      security:
      - wazo_auth_token: []
      description: '**Required ACL**: `auth.users.{user_uuid}.groups.read`'
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      summary: Retrieves the list of groups associated to a user
      responses:
        '200':
          description: The groups of the user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetGroupsResult'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
        '500':
          description: System related error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
    servers:
    - url: /0.1
  /users/{user_uuid}/policies:
    get:
      tags:
      - users
      security:
      - wazo_auth_token: []
      description: '**Required ACL**: `auth.users.{user_uuid}.policies.read`'
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      summary: Retrieves the list of policies associated to a user
      responses:
        '200':
          description: The user's policies
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPoliciesResult'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
        '404':
          description: User not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
        '500':
          description: System related error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
    servers:
    - url: /0.1
  /users/{user_uuid}/policies/{policy_uuid}:
    put:
      tags:
      - users
      security:
      - wazo_auth_token: []
      operationId: addUserPolicy
      description: '**Required ACL:** `auth.users.{user_uuid}.policies.{policy_uuid}.create`'
      summary: Associate a policy to a user
      parameters:
      - $ref: '#/components/parameters/policy_uuid'
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '204':
          description: The policy has been assigned
        '404':
          description: User or Policy not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
    delete:
      tags:
      - users
      security:
      - wazo_auth_token: []
      operationId: removeUserPolicy
      description: '**Required ACL:** `auth.users.{user_uuid}.policies.{policy_uuid}.delete`'
      summary: Dissociate a policy from a user
      parameters:
      - $ref: '#/components/parameters/policy_uuid'
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '204':
          description: The policy has been unassigned
        '404':
          description: User or Policy not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
    servers:
    - url: /0.1
  /users/register:
    post:
      summary: Create a user
      description: Creates a new user that can be used to retrieve a token.
      operationId: registerUser
      tags:
      - users
      responses:
        '200':
          description: The new user data without the password
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserPostResponse'
        '400':
          description: Invalid body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      requestBody:
        content:
          application/json:
   

# --- truncated at 32 KB (243 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/openapi/wazo-users-api-openapi.yml