Matomo Users Manager API

The UsersManager API lets you Manage Users and their permissions to access specific websites. You can create users via "addUser", update existing users via "updateUser" and delete users via "deleteUser". There are many ways to list users based on their login "getUser" and "getUsers", their email "getUserByEmail", or which users have permission (view or admin) to access the specified websites "getUsersWithSiteAccess". Existing Permissions are listed given a login via "getSitesAccessFromUser", or a website ID via "getUsersAccessFromSite", or you can list all users and websites for a given permission via "getUsersSitesFromAccess". Permissions are set and updated via the method "setUserAccess". See also the documentation about Managing Users in Matomo.

Operations 32

GET /index.php?module=API&method=UsersManager.getAvailableRoles #
GET /index.php?module=API&method=UsersManager.getAvailableCapabilities #
GET /index.php?module=API&method=UsersManager.setUserPreference #
GET /index.php?module=API&method=UsersManager.getUserPreference #
GET /index.php?module=API&method=UsersManager.getUsersPlusRole #
GET /index.php?module=API&method=UsersManager.getUsers #
GET /index.php?module=API&method=UsersManager.getUsersLogin #
GET /index.php?module=API&method=UsersManager.getUsersSitesFromAccess #
GET /index.php?module=API&method=UsersManager.getUsersAccessFromSite #
GET /index.php?module=API&method=UsersManager.getUsersWithSiteAccess #
GET /index.php?module=API&method=UsersManager.getSitesAccessFromUser #
GET /index.php?module=API&method=UsersManager.getSitesAccessForUser #
GET /index.php?module=API&method=UsersManager.getUser #
GET /index.php?module=API&method=UsersManager.getUserByEmail #
GET /index.php?module=API&method=UsersManager.addUser #
GET /index.php?module=API&method=UsersManager.inviteUser #
GET /index.php?module=API&method=UsersManager.setSuperUserAccess #
GET /index.php?module=API&method=UsersManager.hasSuperUserAccess #
GET /index.php?module=API&method=UsersManager.getUsersHavingSuperUserAccess #
GET /index.php?module=API&method=UsersManager.updateUser #
GET /index.php?module=API&method=UsersManager.deleteUser #
GET /index.php?module=API&method=UsersManager.logoutUser #
GET /index.php?module=API&method=UsersManager.userExists #
GET /index.php?module=API&method=UsersManager.userEmailExists #
GET /index.php?module=API&method=UsersManager.getUserLoginFromUserEmail #
GET /index.php?module=API&method=UsersManager.setUserAccess #
GET /index.php?module=API&method=UsersManager.addCapabilities #
GET /index.php?module=API&method=UsersManager.removeCapabilities #
GET /index.php?module=API&method=UsersManager.createAppSpecificTokenAuth #
GET /index.php?module=API&method=UsersManager.newsletterSignup #
GET /index.php?module=API&method=UsersManager.resendInvite #

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/matomo-usersmanager-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

matomo-usersmanager-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Matomo Reporting API for plugin Users Manager API
  version: 1.0.0
  description: The UsersManager API lets you Manage Users and their permissions to access specific websites.  You can create users via "addUser", update existing users via "updateUser" and delete users via "deleteUser". There are many ways to list users based on their login "getUser" and "getUsers", their email "getUserByEmail", or which users have permission (view or admin) to access the specified websites "getUsersWithSiteAccess".  Existing Permissions are listed given a login via "getSitesAccessFromUser", or a website ID via "getUsersAccessFromSite", or you can list all users and websites for a given permission via "getUsersSitesFromAccess". Permissions are set and updated via the method "setUserAccess". See also the documentation about <a href='https://matomo.org/docs/manage-users/' rel='noreferrer' target='_blank'>Managing Users</a> in Matomo.
servers:
- url: https://demo-proxy.innocraft.cloud/
  description: Current Matomo instance
security:
- MatomoToken: []
tags:
- name: UsersManager
  description: The UsersManager API lets you Manage Users and their permissions to access specific websites.  You can create users via "addUser", update existing users via "updateUser" and delete users via "deleteUser". There are many ways to list users based on their login "getUser" and "getUsers", their email "getUserByEmail", or which users have permission (view or admin) to access the specified websites "getUsersWithSiteAccess".  Existing Permissions are listed given a login via "getSitesAccessFromUser", or a website ID via "getUsersAccessFromSite", or you can list all users and websites for a given permission via "getUsersSitesFromAccess". Permissions are set and updated via the method "setUserAccess". See also the documentation about <a href='https://matomo.org/docs/manage-users/' rel='noreferrer' target='_blank'>Managing Users</a> in Matomo.
paths:
  /index.php?module=API&method=UsersManager.getAvailableRoles:
    get:
      tags:
      - UsersManager
      description: Get the list of all available roles.
      operationId: UsersManager.getAvailableRoles
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: 'List of available roles.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getAvailableCapabilities:
    get:
      tags:
      - UsersManager
      description: Get the list of all available capabilities.
      operationId: UsersManager.getAvailableCapabilities
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: 'List of available capabilities.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.setUserPreference:
    get:
      tags:
      - UsersManager
      description: Sets a supported UsersManager preference for a user.
      operationId: UsersManager.setUserPreference
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: Login of the user whose preference should be updated.
        required: true
        schema:
          type: string
          example: alice
      - name: preferenceName
        in: query
        description: Preference name registered by UsersManager or plugin configuration.
        required: true
        schema:
          type: string
          example: reportFormat
      - name: preferenceValue
        in: query
        description: Value to store for the preference.
        required: true
        schema:
          type: string
          example: pdf
      responses:
        '200':
          $ref: '#/components/responses/GenericSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getUserPreference:
    get:
      tags:
      - UsersManager
      description: Returns a supported UsersManager preference for a user.
      operationId: UsersManager.getUserPreference
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: preferenceName
        in: query
        description: Preference name registered by UsersManager or plugin configuration.
        required: true
        schema:
          type: string
          example: reportFormat
      - name: userLogin
        in: query
        description: User login to read. Use `false` to read the current user.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: 'Stored preference value, or the default value when none was saved yet.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getUsersPlusRole:
    get:
      tags:
      - UsersManager
      description: Returns all users with their role for $idSite.
      operationId: UsersManager.getUsersPlusRole
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website to inspect.
        required: true
        schema:
          type: integer
          example: 1
      - name: limit
        in: query
        description: Maximum number of users to return.
        required: false
        schema:
          oneOf:
          - type: integer
          - type: string
      - name: offset
        in: query
        description: Zero-based result offset.
        required: false
        schema:
          oneOf:
          - type: integer
            default: 0
          - type: string
            default: '0'
      - name: filter_search
        in: query
        description: Text to search for in user login or email.
        required: false
        schema:
          type: string
      - name: filter_access
        in: query
        description: Access filter for the site. Accepted values are `noaccess`, `some`, `view`, `write`, `admin`, and `superuser`. Filtering by `superuser` is only allowed for super users.
        required: false
        schema:
          type: string
      - name: filter_status
        in: query
        description: Invite status filter.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: 'Users visible to the current requester, enriched with role and capabilities for the site.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getUsers:
    get:
      tags:
      - UsersManager
      description: Returns users visible to the current requester.
      operationId: UsersManager.getUsers
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogins
        in: query
        description: Comma-separated list of user logins to fetch. Leave empty to return every visible user.
        required: false
        schema:
          type: string
          default: ''
      responses:
        '200':
          description: 'Matching users enriched with invite and access metadata.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getUsersLogin:
    get:
      tags:
      - UsersManager
      description: Returns the login names of all users visible to the current requester.
      operationId: UsersManager.getUsersLogin
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: 'Matching user logins.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getUsersSitesFromAccess:
    get:
      tags:
      - UsersManager
      description: Returns the site IDs where each user has the requested access entry.
      operationId: UsersManager.getUsersSitesFromAccess
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: access
        in: query
        description: Access entry to match, for example a role or capability ID.
        required: true
        schema:
          type: string
          example: view
      responses:
        '200':
          description: 'Mapping of user login to site IDs where that access entry is assigned.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getUsersAccessFromSite:
    get:
      tags:
      - UsersManager
      description: Returns one access entry per visible user for the requested site.
      operationId: UsersManager.getUsersAccessFromSite
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: Numeric site ID.
        required: true
        schema:
          type: integer
          example: 1
      responses:
        '200':
          description: 'Mapping of user login to access entry.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getUsersWithSiteAccess:
    get:
      tags:
      - UsersManager
      description: Returns users who have the requested access entry for a website.
      operationId: UsersManager.getUsersWithSiteAccess
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: idSite
        in: query
        description: The numeric ID of the website to inspect.
        required: true
        schema:
          type: integer
          example: 1
      - name: access
        in: query
        description: Access entry to match, for example a role or capability ID.
        required: true
        schema:
          type: string
          example: view
      responses:
        '200':
          description: 'Matching users enriched with user metadata.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getSitesAccessFromUser:
    get:
      tags:
      - UsersManager
      description: Returns the raw site access entries assigned to a user.
      operationId: UsersManager.getSitesAccessFromUser
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: Existing user login to inspect.
        required: true
        schema:
          type: string
          example: alice
      responses:
        '200':
          description: 'Site access rows for the user.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getSitesAccessForUser:
    get:
      tags:
      - UsersManager
      description: Returns site access rows for a non-superuser, with filtering and pagination.
      operationId: UsersManager.getSitesAccessForUser
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: Existing non-superuser login to inspect.
        required: true
        schema:
          type: string
          example: alice
      - name: limit
        in: query
        description: Maximum number of sites to return.
        required: false
        schema:
          oneOf:
          - type: integer
          - type: string
      - name: offset
        in: query
        description: Zero-based result offset.
        required: false
        schema:
          oneOf:
          - type: integer
            default: 0
          - type: string
            default: '0'
      - name: filter_search
        in: query
        description: Text to search in site names, URLs, or groups.
        required: false
        schema:
          type: string
      - name: filter_access
        in: query
        description: Access filter. Accepted values are `some`, `view`, `write`, or `admin`.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: 'Site access rows including role and explicit capabilities for each returned site.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getUser:
    get:
      tags:
      - UsersManager
      description: Returns one user's metadata as visible to the requester.
      operationId: UsersManager.getUser
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: Existing user login to fetch.
        required: true
        schema:
          type: string
          example: alice
      responses:
        '200':
          description: 'Enriched user data, or an empty array when no user record is returned.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getUserByEmail:
    get:
      tags:
      - UsersManager
      description: Returns one user's metadata for the given email address.
      operationId: UsersManager.getUserByEmail
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userEmail
        in: query
        description: Existing email address to look up.
        required: true
        schema:
          type: string
          example: alice@example.org
      responses:
        '200':
          description: 'Enriched user data, or an empty array when no user record is returned.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.addUser:
    get:
      tags:
      - UsersManager
      description: Creates a new user account.
      operationId: UsersManager.addUser
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: Login name for the new user.
        required: true
        schema:
          type: string
          example: alice
      - name: password
        in: query
        description: Password for the new user.
        required: true
        schema:
          type: string
          example: correct-horse-battery-staple
      - name: email
        in: query
        description: Email address for the new user.
        required: true
        schema:
          type: string
          example: alice@example.org
      - name: _isPasswordHashed
        in: query
        description: '`true` if `$password` is already pre-hashed for storage.'
        required: false
        schema:
          type: boolean
          default: false
      - name: initialIdSite
        in: query
        description: Initial site to grant `view` access to. Required for non-superusers.
        required: false
        schema:
          oneOf:
          - type: integer
          - type: string
      - name: passwordConfirmation
        in: query
        description: Current user's password confirmation when required by session auth.
        required: false
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/GenericSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.inviteUser:
    get:
      tags:
      - UsersManager
      description: Invites a new user by email and grants initial access to a website.
      operationId: UsersManager.inviteUser
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: Login name for the invited user.
        required: true
        schema:
          type: string
          example: alice
      - name: email
        in: query
        description: Email address for the invited user.
        required: true
        schema:
          type: string
          example: alice@example.org
      - name: initialIdSite
        in: query
        description: Initial site to grant `view` access to.
        required: false
        schema:
          oneOf:
          - type: integer
          - type: string
      - name: expiryInDays
        in: query
        description: Number of days before the invite expires. Uses the configured default when empty.
        required: false
        schema:
          oneOf:
          - type: integer
          - type: string
      - name: passwordConfirmation
        in: query
        description: Current user's password confirmation when required by session auth.
        required: false
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/GenericSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.setSuperUserAccess:
    get:
      tags:
      - UsersManager
      description: 'Enable or disable Super user access to the given user login. Note: When granting Super User access all previous permissions of the user will be removed as the user gains access to everything.'
      operationId: UsersManager.setSuperUserAccess
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: User login to update.
        required: true
        schema:
          type: string
          example: alice
      - name: hasSuperUserAccess
        in: query
        description: '`true` or `1` to grant super user access, `false` or `0` to remove it.'
        required: true
        schema:
          oneOf:
          - type: integer
            example: true
          - type: string
            example: 'true'
      - name: passwordConfirmation
        in: query
        description: Current user's password confirmation when required.
        required: false
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/GenericSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.hasSuperUserAccess:
    get:
      tags:
      - UsersManager
      description: Detect whether the current user has super user access or not.
      operationId: UsersManager.hasSuperUserAccess
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: '`true` if the current user has super user access.


            Example responses require Super User access. Use Try it out to see a live response.'
          content:
            text/xml: []
            application/json: []
            application/vnd.ms-excel: []
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.getUsersHavingSuperUserAccess:
    get:
      tags:
      - UsersManager
      description: Returns all users that currently have super user access.
      operationId: UsersManager.getUsersHavingSuperUserAccess
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: 'Super user records enriched with invite metadata.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.updateUser:
    get:
      tags:
      - UsersManager
      description: Updates a user in the database.
      operationId: UsersManager.updateUser
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: Login name of the user to update.
        required: true
        schema:
          type: string
          example: alice
      - name: password
        in: query
        description: New password to set, or `false` to keep the current password.
        required: false
        schema:
          type: string
      - name: email
        in: query
        description: New email address to set, or `false` to keep the current email.
        required: false
        schema:
          type: string
      - name: _isPasswordHashed
        in: query
        description: '`true` if `$password` is already pre-hashed for storage.'
        required: false
        schema:
          type: boolean
          default: false
      - name: passwordConfirmation
        in: query
        description: Current user's password confirmation when required.
        required: false
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/GenericSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.deleteUser:
    get:
      tags:
      - UsersManager
      description: Deletes a user account and all of its access assignments.
      operationId: UsersManager.deleteUser
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: Existing user login to delete.
        required: true
        schema:
          type: string
          example: alice
      - name: passwordConfirmation
        in: query
        description: Current user's password confirmation when required by session auth.
        required: false
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/GenericSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.logoutUser:
    get:
      tags:
      - UsersManager
      description: Signs a user out of all active sessions. Requires super user access.
      operationId: UsersManager.logoutUser
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: Login of the user to sign out.
        required: true
        schema:
          type: string
          example: alice
      - name: passwordConfirmation
        in: query
        description: Current user's password confirmation when required by session auth.
        required: false
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/GenericSuccess'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.userExists:
    get:
      tags:
      - UsersManager
      description: Returns whether the given login exists.
      operationId: UsersManager.userExists
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userLogin
        in: query
        description: Login to check.
        required: true
        schema:
          type: string
          example: alice
      responses:
        '200':
          description: '`true` if the login exists.


            Example responses require Super User access. Use Try it out to see a live response.'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        default:
          $ref: '#/components/responses/DefaultError'
  /index.php?module=API&method=UsersManager.userEmailExists:
    get:
      tags:
      - UsersManager
      description: Returns whether a user with the given email exists.
      operationId: UsersManager.userEmailExists
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: userEmail
        in: query
        description: Email address to check.
        required: true
        schema:
          type: string
          example: alice@example.org
      responses:
        '200':
          description: '`true` if the email exists.


            Example responses require Super User access. Use Try it out to see a liv

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