Matomo Mobile Messaging API

The MobileMessaging API lets you manage SMS credentials, phone number verification, and SMS account settings.

Operations 12

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=MobileMessaging.areSMSAPICredentialProvided Check whether SMS credentials are set · Mobile messaging are SMSAPI credential provided #
Ask an LLM
“Have I configured SMS API credentials yet for text alerts?”
“Is SMS sending set up for my account?”
Tell an agent
Check whether SMS API credentials are configured for me.
Tell me if my SMS provider credentials are in place.
GET /index.php?module=API&method=MobileMessaging.getSMSProvider Show the configured SMS provider · Mobile messaging get SMS provider #
Ask an LLM
“Which SMS provider is my account using for text messages?”
“What SMS gateway did I configure?”
Tell an agent
Show which SMS provider is configured for my account.
Get the name of my current SMS provider.
GET /index.php?module=API&method=MobileMessaging.setSMSAPICredential Save SMS provider credentials · Mobile messaging set SMSAPI credential #
Ask an LLM
“How do I connect an SMS provider so Matomo can text me reports?”
“Can I change the API credentials for my SMS gateway?”
Tell an agent
Set my SMS provider to {provider} with credentials {credentials}.
Save SMS API credentials for provider {provider}.
GET /index.php?module=API&method=MobileMessaging.addPhoneNumber Add a phone number for SMS · Mobile messaging add phone number #
Ask an LLM
“How do I add my mobile number to receive SMS reports?”
“Will I get a verification code when I add a phone number?”
Tell an agent
Add phone number {phoneNumber} and send it a verification code.
Register {phoneNumber} as a mobile number on my account.
GET /index.php?module=API&method=MobileMessaging.resendVerificationCode Resend a phone verification code · Mobile messaging resend verification code #
Ask an LLM
“I never got the SMS verification code, can it be sent again?”
“How do I request a new code for a phone number still pending verification?”
Tell an agent
Resend the verification code to {phoneNumber}.
Send a fresh verification code to pending number {phoneNumber}.
GET /index.php?module=API&method=MobileMessaging.getCreditLeft Check remaining SMS credit · Mobile messaging get credit left #
Ask an LLM
“How much SMS credit do I have left?”
“Am I about to run out of text message credit?”
Tell an agent
Show my remaining SMS credit.
Check how much credit is left on my SMS provider account.
GET /index.php?module=API&method=MobileMessaging.getPhoneNumbers List my phone numbers · Mobile messaging get phone numbers #
Ask an LLM
“Which phone numbers are set up on my account for SMS?”
“Are my mobile numbers verified yet?”
Tell an agent
List the phone numbers on my account.
Show all my configured mobile numbers and their verification state.
GET /index.php?module=API&method=MobileMessaging.removePhoneNumber Remove a phone number · Mobile messaging remove phone number #
Ask an LLM
“How do I stop SMS going to an old phone number?”
“Can I delete a mobile number from my account?”
Tell an agent destructive · confirm first
Remove phone number {phoneNumber} from my account.
Delete {phoneNumber} so it no longer receives SMS.
GET /index.php?module=API&method=MobileMessaging.validatePhoneNumber Verify a phone number with its code · Mobile messaging validate phone number #
Ask an LLM
“How do I confirm my phone number with the code I was texted?”
“Where do I enter the SMS verification code?”
Tell an agent
Verify {phoneNumber} with code {verificationCode}.
Confirm phone number {phoneNumber} using verification code {verificationCode}.
GET /index.php?module=API&method=MobileMessaging.deleteSMSAPICredential Delete the SMS provider credentials · Mobile messaging delete SMSAPI credential #
Ask an LLM
“How do I disconnect my SMS provider and remove its credentials?”
“Can I wipe the stored SMS API key?”
Tell an agent destructive · confirm first
Delete my SMS API credentials.
Remove the stored SMS provider credentials.
GET /index.php?module=API&method=MobileMessaging.setDelegatedManagement Allow users to manage their own SMS setup · Mobile messaging set delegated management #
Ask an LLM
“Can regular users set up their own SMS credentials instead of the admin?”
“How do I turn on delegated SMS management?”
Tell an agent
Set delegated SMS management to {delegatedManagement}.
Let regular users manage their own SMS API credentials: {delegatedManagement}.
GET /index.php?module=API&method=MobileMessaging.getDelegatedManagement Check if SMS management is delegated · Mobile messaging get delegated management #
Ask an LLM
“Are regular users allowed to manage their own SMS credentials?”
“Is delegated SMS management turned on?”
Tell an agent
Check whether SMS management is delegated to users.
Tell me if regular users can manage their own SMS settings.

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-mobilemessaging-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-mobilemessaging-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Matomo Reporting API for plugin Mobile Messaging API
  version: 1.0.0
  description: The MobileMessaging API lets you manage SMS credentials, phone number verification, and SMS account settings.
servers:
- url: https://demo-proxy.innocraft.cloud/
  description: Current Matomo instance
security:
- MatomoToken: []
tags:
- name: MobileMessaging
  description: The MobileMessaging API lets you manage SMS credentials, phone number verification, and SMS account settings.
paths:
  /index.php?module=API&method=MobileMessaging.areSMSAPICredentialProvided:
    get:
      tags:
      - MobileMessaging
      description: Checks whether SMS API credentials are configured for the current user.
      operationId: MobileMessaging.areSMSAPICredentialProvided
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: '`true` if SMS API credentials are available for the current user.


            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'
      summary: Mobile messaging are SMSAPI credential provided
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.getSMSProvider:
    get:
      tags:
      - MobileMessaging
      description: Returns the configured SMS provider for the current user.
      operationId: MobileMessaging.getSMSProvider
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: 'The configured SMS provider identifier, or `null` if none is configured.


            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'
      summary: Mobile messaging get SMS provider
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.setSMSAPICredential:
    get:
      tags:
      - MobileMessaging
      description: Stores the SMS API credentials for the selected provider.
      operationId: MobileMessaging.setSMSAPICredential
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: provider
        in: query
        description: SMS provider identifier to configure.
        required: true
        schema:
          type: string
          example: google
      - name: credentials
        in: query
        description: Provider credentials such as an API key or username.
        required: false
        schema:
          type: array
          items: []
          default: []
      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'
      summary: Mobile messaging set SMSAPI credential
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.addPhoneNumber:
    get:
      tags:
      - MobileMessaging
      description: Adds a phone number for the current user and sends a verification code to it.
      operationId: MobileMessaging.addPhoneNumber
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: phoneNumber
        in: query
        description: Phone number in international format.
        required: true
        schema:
          type: string
          example: '+64211234567'
      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'
      summary: Mobile messaging add phone number
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.resendVerificationCode:
    get:
      tags:
      - MobileMessaging
      description: Requests a new verification code for a pending phone number.
      operationId: MobileMessaging.resendVerificationCode
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: phoneNumber
        in: query
        description: Phone number in international format.
        required: true
        schema:
          type: string
          example: '+64211234567'
      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'
      summary: Mobile messaging resend verification code
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.getCreditLeft:
    get:
      tags:
      - MobileMessaging
      description: Returns the remaining SMS credit for the configured provider account.
      operationId: MobileMessaging.getCreditLeft
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: 'Remaining SMS credit reported by the configured provider.


            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'
      summary: Mobile messaging get credit left
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.getPhoneNumbers:
    get:
      tags:
      - MobileMessaging
      description: Returns the phone numbers configured for the current user.
      operationId: MobileMessaging.getPhoneNumbers
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: 'Phone numbers keyed by phone number, including verification 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'
      summary: Mobile messaging get phone numbers
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.removePhoneNumber:
    get:
      tags:
      - MobileMessaging
      description: Removes a phone number from the current user account.
      operationId: MobileMessaging.removePhoneNumber
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: phoneNumber
        in: query
        description: Phone number in international format.
        required: true
        schema:
          type: string
          example: '+64211234567'
      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'
      summary: Mobile messaging remove phone number
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.validatePhoneNumber:
    get:
      tags:
      - MobileMessaging
      description: Verifies a phone number using the submitted verification code.
      operationId: MobileMessaging.validatePhoneNumber
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: phoneNumber
        in: query
        description: Phone number in international format.
        required: true
        schema:
          type: string
          example: '+64211234567'
      - name: verificationCode
        in: query
        description: Verification code received by SMS.
        required: true
        schema:
          type: string
          example: '123456'
      responses:
        '200':
          description: '`true` if the phone number was verified successfully, `false` otherwise.


            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'
      summary: Mobile messaging validate phone number
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.deleteSMSAPICredential:
    get:
      tags:
      - MobileMessaging
      description: Deletes the configured SMS API credentials.
      operationId: MobileMessaging.deleteSMSAPICredential
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      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'
      summary: Mobile messaging delete SMSAPI credential
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.setDelegatedManagement:
    get:
      tags:
      - MobileMessaging
      description: Configures whether regular users can manage their own SMS API credentials.
      operationId: MobileMessaging.setDelegatedManagement
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      - name: delegatedManagement
        in: query
        description: '`true` to allow regular users to manage their own credentials, `false` to restrict management to super users.'
        required: true
        schema:
          type: boolean
          example: true
      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'
      summary: Mobile messaging set delegated management
      x-summary-source: derived
  /index.php?module=API&method=MobileMessaging.getDelegatedManagement:
    get:
      tags:
      - MobileMessaging
      description: Returns whether regular users can manage their own SMS API credentials.
      operationId: MobileMessaging.getDelegatedManagement
      parameters:
      - $ref: '#/components/parameters/formatOptional'
      responses:
        '200':
          description: '`true` if regular users can manage their own credentials, `false` if only super users can.


            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'
      summary: Mobile messaging get delegated management
      x-summary-source: derived
components:
  responses:
    Forbidden:
      description: Authenticated but not allowed to access the resource.
      content:
        text/plain:
          schema:
            type: string
          example: 'Error: Not authorised.'
        text/html:
          schema:
            type: string
          example: Not authorised.
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        application/xml:
          schema:
            $ref: '#/components/schemas/ErrorXml'
    BadRequest:
      description: Bad request (validation or missing parameters).
      content:
        text/plain:
          schema:
            type: string
          example: 'Error: There was an error.'
        text/html:
          schema:
            type: string
          example: There was an error.
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        application/xml:
          schema:
            $ref: '#/components/schemas/ErrorXml'
    GenericSuccess:
      description: Generic 200 response
      content:
        text/plain:
          schema:
            type: string
          example: Success:ok
        text/html:
          schema:
            type: string
          example: '<!-- Success: ok -->'
        application/json:
          schema:
            $ref: '#/components/schemas/GenericSuccess'
        application/xml:
          schema:
            $ref: '#/components/schemas/GenericSuccessXml'
    NotFound:
      description: Resource not found.
      content:
        text/plain:
          schema:
            type: string
          example: 'Error: The method is not available.'
        text/html:
          schema:
            type: string
          example: The method is not available.
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        application/xml:
          schema:
            $ref: '#/components/schemas/ErrorXml'
    Unauthorized:
      description: Authentication failed or missing token.
      content:
        text/plain:
          schema:
            type: string
          example: 'Error: You must be logged in to access this functionality.'
        text/html:
          schema:
            type: string
          example: You must be logged in to access this functionality.
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        application/xml:
          schema:
            $ref: '#/components/schemas/ErrorXml'
    ServerError:
      description: Unexpected server error.
      content:
        text/plain:
          schema:
            type: string
          example: 'Error: There was an error.'
        text/html:
          schema:
            type: string
          example: There was an error.
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        application/xml:
          schema:
            $ref: '#/components/schemas/ErrorXml'
    DefaultError:
      description: Default error response (any non-2xx).
      content:
        text/plain:
          schema:
            type: string
          example: 'Error: There was an error.'
        text/html:
          schema:
            type: string
          example: There was an error.
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
        application/xml:
          schema:
            $ref: '#/components/schemas/ErrorXml'
  schemas:
    ErrorXml:
      description: Generic Matomo error payload in XML.
      properties:
        error:
          properties:
            message:
              type: string
              xml:
                attribute: true
              example: There was an error
          type: object
          xml:
            name: error
      type: object
      xml:
        name: result
    Error:
      description: Generic Matomo error payload.
      required:
      - result
      - message
      properties:
        result:
          type: string
          example: error
        message:
          type: string
          example: There was an error
        code:
          type: integer
      type: object
      additionalProperties: true
    GenericSuccess:
      description: Generic Matomo success payload.
      required:
      - result
      - message
      properties:
        result:
          type: string
          example: success
        message:
          type: string
          example: ok
        code:
          type: integer
          example: '200'
      type: object
      example:
        result: success
        message: ok
      additionalProperties: true
    GenericSuccessXml:
      description: Generic Matomo success payload in XML.
      required:
      - success
      properties:
        success:
          properties:
            message:
              type: string
              xml:
                attribute: true
              example: ok
          type: object
          xml:
            name: success
      type: object
      xml:
        name: result
      example:
        success:
          message: ok
      additionalProperties: true
  parameters:
    formatOptional:
      name: format
      in: query
      description: Response format. Defaults to `xml`. Use `original` to get the original PHP data structure.
      required: false
      schema:
        type: string
        default: xml
        enum:
        - xml
        - json
        - csv
        - tsv
        - html
        - rss
        - original
  securitySchemes:
    MatomoToken:
      type: http
      description: Paste your token generated from Personal > Security. Swagger will send it as a Bearer token.
      scheme: bearer
externalDocs:
  description: Matomo Reporting API developer page
  url: https://developer.matomo.org/api-reference/reporting-api/