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.

Business capability
Identity & Access Management BC-620.20

Operations 32

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /index.php?module=API&method=UsersManager.getAvailableRoles List the roles a user can be given · Users manager get available roles #
Ask an LLM
“What roles can I assign to users in Matomo?”
“Which access roles exist besides view and admin?”
Tell an agent
List every role available for user access.
Show me the role options I can pick when granting site access.
GET /index.php?module=API&method=UsersManager.getAvailableCapabilities List the capabilities that can be granted · Users manager get available capabilities #
Ask an LLM
“Which extra capabilities can be layered on top of a user's role?”
“What capabilities are available to grant users?”
Tell an agent
List all available user capabilities.
Show the capability names I can add to a user.
GET /index.php?module=API&method=UsersManager.setUserPreference Set a preference for a user · Users manager set user preference #
Ask an LLM
“Can I change a user's saved preference, like their default report, through the API?”
“How do I store a user preference value for someone else's login?”
Tell an agent
Set preference {preferenceName} to {preferenceValue} for user {userLogin}.
Change {userLogin}'s {preferenceName} setting to {preferenceValue}.
GET /index.php?module=API&method=UsersManager.getUserPreference Read a user's preference value · Users manager get user preference #
Ask an LLM
“What value does a user currently have stored for a given preference?”
“Can I check my own saved preference without naming a login?”
Tell an agent
Get the value of preference {preferenceName} for user {userLogin}.
Read my current {preferenceName} preference.
GET /index.php?module=API&method=UsersManager.getUsersPlusRole List a site's users with their roles · Users manager get users plus role #
Ask an LLM
“Who has access to this website and what role does each person have?”
“Can I filter a site's user list by access level or invite status?”
Tell an agent
List users and their roles for site {idSite}.
Show users on site {idSite} with {filter_access} access matching {filter_search}.
GET /index.php?module=API&method=UsersManager.getUsers List users visible to me · Users manager get users #
Ask an LLM
“Which user accounts can I see with my access?”
“Can I fetch full details for several specific logins at once?”
Tell an agent
List all user accounts I can see.
Get user details for logins {userLogins}.
GET /index.php?module=API&method=UsersManager.getUsersLogin List the login names of visible users · Users manager get users login #
Ask an LLM
“Can I get just the usernames of everyone, without their full details?”
“What login names exist that I'm allowed to see?”
Tell an agent
List only the login names of all users I can see.
Give me a plain list of usernames.
GET /index.php?module=API&method=UsersManager.getUsersSitesFromAccess Map users to sites for one access level · Users manager get users sites from access #
Ask an LLM
“For each user, which sites do they hold admin access on?”
“Which site IDs does every user have a given access level for?”
Tell an agent
For access level {access}, list each user with the site IDs where they have it.
Map every user to the sites where they hold {access} access.
GET /index.php?module=API&method=UsersManager.getUsersAccessFromSite Show each user's access level on a site · Users manager get users access from site #
Ask an LLM
“What access level does each user have on this one website?”
“Can I see a login-to-access map for a single site?”
Tell an agent
Show the access entry each user has on site {idSite}.
Map logins to their access level for site {idSite}.
GET /index.php?module=API&method=UsersManager.getUsersWithSiteAccess Find users with a given access on a site · Users manager get users with site access #
Ask an LLM
“Who are the admins on this particular website?”
“Which users have view-only access to a specific site?”
Tell an agent
List users who have {access} access to site {idSite}.
Find everyone holding {access} on site {idSite}.
GET /index.php?module=API&method=UsersManager.getSitesAccessFromUser Get a user's raw site access entries · Users manager get sites access from user #
Ask an LLM
“Which websites can a given user access, and at what level?”
“Can I get the unfiltered access list assigned to one login?”
Tell an agent
Get the raw site access entries for user {userLogin}.
List every site and access level assigned to {userLogin}, unpaginated.
GET /index.php?module=API&method=UsersManager.getSitesAccessForUser Page through a user's site access with filters · Users manager get sites access for user #
Ask an LLM
“Can I search a non-superuser's site permissions by site name?”
“How do I page through a long list of sites one user can access?”
Tell an agent
Show sites user {userLogin} can access matching {filter_search}.
List sites where {userLogin} has {filter_access} access, {limit} per page.
GET /index.php?module=API&method=UsersManager.getUser Get a user's details by login · Users manager get user #
Ask an LLM
“What account details are stored for a particular username?”
“Can I look up one user's metadata by their login?”
Tell an agent
Get the account details for user {userLogin}.
Show me {userLogin}'s user profile metadata.
GET /index.php?module=API&method=UsersManager.getUserByEmail Get a user's details by email · Users manager get user by email #
Ask an LLM
“Can I pull up a user's account details using only their email address?”
“What does the user record look like for a given email?”
Tell an agent
Get the full user record for email {userEmail}.
Show account metadata for the user with email {userEmail}.
GET /index.php?module=API&method=UsersManager.addUser Create a user account with a password · Users manager add user #
Ask an LLM
“How do I create a new user account with a password I set myself?”
“Can a new user be given access to a starting website when the account is created?”
Tell an agent
Create user {userLogin} with email {email} and password {password}.
Add account {userLogin} ({email}, password {password}) with initial access to site {initialIdSite}.
GET /index.php?module=API&method=UsersManager.inviteUser Invite a new user by email · Users manager invite user #
Ask an LLM
“Can I send someone an email invitation instead of setting their password?”
“How long does an invitation stay valid, and can I change it?”
Tell an agent
Invite {email} as user {userLogin}.
Invite {userLogin} at {email} to site {initialIdSite} with the invite expiring in {expiryInDays} days.
GET /index.php?module=API&method=UsersManager.setSuperUserAccess Grant or revoke super user access · Users manager set super user access #
Ask an LLM
“How do I make a user a super user?”
“What happens to a user's existing permissions when they become a super user?”
Tell an agent destructive · confirm first
Set super user access for {userLogin} to {hasSuperUserAccess}.
Remove super user rights from {userLogin} by setting {hasSuperUserAccess}.
GET /index.php?module=API&method=UsersManager.hasSuperUserAccess Check if I am a super user · Users manager has super user access #
Ask an LLM
“Does the token I'm using have super user rights?”
“Am I signed in with super user access right now?”
Tell an agent
Check whether my current account has super user access.
Tell me if this API token belongs to a super user.
GET /index.php?module=API&method=UsersManager.getUsersHavingSuperUserAccess List all super users · Users manager get users having super user access #
Ask an LLM
“Who are all the super users on this instance?”
“Which accounts currently have full super user rights?”
Tell an agent
List every user that has super user access.
Show me all super user accounts.
GET /index.php?module=API&method=UsersManager.updateUser Change a user's email or password · Users manager update user #
Ask an LLM
“How do I change an existing user's email address?”
“Can I reset another user's password through the API?”
Tell an agent
Change the email of user {userLogin} to {email}.
Set a new password {password} for existing user {userLogin}.
GET /index.php?module=API&method=UsersManager.deleteUser Delete a user account · Users manager delete user #
Ask an LLM
“How do I permanently remove a user and all their site access?”
“Does deleting a user also remove their access assignments?”
Tell an agent destructive · confirm first
Delete user account {userLogin}.
Remove {userLogin} and all of their access entries.
GET /index.php?module=API&method=UsersManager.logoutUser Sign a user out of all sessions · Users manager logout user #
Ask an LLM
“Can I force a user to be logged out everywhere?”
“Is there a way to end all active sessions for a compromised account?”
Tell an agent destructive · confirm first
Sign {userLogin} out of all active sessions.
Force-logout user {userLogin} on every device.
GET /index.php?module=API&method=UsersManager.userExists Check if a login name exists · Users manager user exists #
Ask an LLM
“Is a particular username already taken?”
“Can I check whether a login exists before creating it?”
Tell an agent
Check whether login {userLogin} exists.
Tell me if username {userLogin} is already in use.
GET /index.php?module=API&method=UsersManager.userEmailExists Check if an email belongs to a user · Users manager user email exists #
Ask an LLM
“Is there already an account registered with this email?”
“Can I verify an email isn't in use before inviting someone?”
Tell an agent
Check whether any user has email {userEmail}.
Confirm whether {userEmail} is already registered.
GET /index.php?module=API&method=UsersManager.getUserLoginFromUserEmail Find a user's login from their email · Users manager get user login from user email #
Ask an LLM
“What's the username for the person with this email address?”
“Can I translate an email into a login name?”
Tell an agent
Find the login name for email {userEmail}.
Return only the username tied to {userEmail}.
GET /index.php?module=API&method=UsersManager.setUserAccess Set a user's access level on sites · Users manager set user access #
Ask an LLM
“How do I give a user admin access to several websites at once?”
“Can I change someone from view to write access on a site?”
Tell an agent
Give {userLogin} {access} access to sites {idSites}.
Set the role of {userLogin} on site {idSites} to {access}.
GET /index.php?module=API&method=UsersManager.addCapabilities Grant capabilities to a user on sites · Users manager add capabilities #
Ask an LLM
“Can I let a view-only user also publish live widgets or edit tags without making them admin?”
“How do I add an extra capability for a user on specific sites?”
Tell an agent
Grant capabilities {capabilities} to {userLogin} on sites {idSites}.
Add the {capabilities} capability for {userLogin} on site {idSites}.
GET /index.php?module=API&method=UsersManager.removeCapabilities Remove capabilities from a user on sites · Users manager remove capabilities #
Ask an LLM
“How do I take a capability away from a user without changing their role?”
“Can I revoke an extra capability on only some sites?”
Tell an agent destructive · confirm first
Revoke capabilities {capabilities} from {userLogin} on sites {idSites}.
Take {capabilities} away from {userLogin} for site {idSites}.
GET /index.php?module=API&method=UsersManager.createAppSpecificTokenAuth Create an app-specific API token · Users manager create app specific token auth #
Ask an LLM
“How do I generate a new auth token for an integration?”
“Can an API token be set to expire after a number of hours or on a date?”
Tell an agent
Create a token for {userLogin} described as {description}, confirming with password {passwordConfirmation}.
Generate a token {description} for {userLogin} that expires on {expireDate}; my password is {passwordConfirmation}.
GET /index.php?module=API&method=UsersManager.newsletterSignup Sign me up for the newsletter · Users manager newsletter signup #
Ask an LLM
“Can I subscribe my account to the product newsletter via the API?”
“Is there a call to opt the current user into newsletter emails?”
Tell an agent
Sign my account up for the newsletter.
Subscribe the current user to newsletter updates.
GET /index.php?module=API&method=UsersManager.resendInvite Resend a pending user's invitation email · Users manager resend invite #
Ask an LLM
“Someone never got their invite email, can I send it again?”
“Can I extend the expiry when re-sending an invitation?”
Tell an agent
Resend the invitation email to pending user {userLogin}.
Email {userLogin} their invite again, valid for {expiryInDays} days.

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: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.
servers:
- url: https://demo-proxy.innocraft.cloud/
  description: Current Matomo instance
security:
- MatomoToken: []
tags:


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