GatewayAPI REST API

Read the complete documentation for our REST API, Email to/from SMS, Kannel API, SMPP and HLR-lookup.

Operations 7

POST /rest/email You can send emails through GatewayAPI using our email endpoint #
POST /rest/hlr HLR and Number lookup #
GET /rest/me You can use the /me endpoint to check your account balance, and what currency… #
GET /rest/mtsms Get SMS and SMS status #
POST /rest/mtsms Sending SMS Messages #
DELETE /rest/mtsms/{id{int}} Delete scheduled SMS #
GET /rest/mtsms/{message_id{int}} Get SMS and SMS status #

Other Resources

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/gatewayapi:gatewayapi-rest-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

gatewayapi-rest-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: GatewayAPI Rest API
  version: '2026-10-27'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-27: 17 operation(s) read from 13 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; GatewayAPI has published no machine-readable contract that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 1
    documentation: 16
    pages-with-code: 1
    pages-read: 13
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-27'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://gatewayapi.com/docs/apis/rest
  - https://gatewayapi.com/docs/apis/email
  - https://gatewayapi.com/docs/apis/legacy/rest
  - https://gatewayapi.com/docs/apis/simple
  - https://gatewayapi.com/docs/apis/keywords
  - https://gatewayapi.com/docs/apis/statistics
  - https://gatewayapi.com/docs/apis/legacy/simple
  - https://gatewayapi.com/docs/apis/authentication
  - https://gatewayapi.com/docs/apis/prices-balance
  - https://gatewayapi.com/docs/apis/legacy/authentication
  - https://gatewayapi.com/docs/message/overview
  - https://gatewayapi.com/docs/message/migration
  - https://gatewayapi.com
servers:
- url: https://messaging.gatewayapi.com
security:
- Basic: []
- Legacy_query_credentials: []
tags:
- name: Rest
paths:
  /rest/email:
    post:
      operationId: post_rest_email
      tags:
      - Rest
      summary: You can send emails through GatewayAPI using our email endpoint
      x-source: https://gatewayapi.com/docs/apis/email
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRestEmailRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRestEmailResponse'
      x-evidence:
        kind: documentation
  /rest/hlr:
    post:
      operationId: post_rest_hlr
      tags:
      - Rest
      summary: HLR and Number lookup
      x-source: https://gatewayapi.com/docs/apis/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRestHlrRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRestHlrResponse'
      x-evidence:
        kind: documentation
  /rest/me:
    get:
      operationId: get_rest_me
      tags:
      - Rest
      summary: You can use the /me endpoint to check your account balance, and what currency…
      x-source: https://gatewayapi.com/docs/apis/prices-balance
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRestMeResponse'
      x-evidence:
        kind: documentation
  /rest/mtsms:
    get:
      operationId: get_rest_mtsms
      tags:
      - Rest
      summary: Get SMS and SMS status
      x-source: https://gatewayapi.com/docs/apis/rest
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRestMtsmsResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_rest_mtsms
      tags:
      - Rest
      summary: Sending SMS Messages
      x-source: https://gatewayapi.com/docs/apis/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRestMtsmsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostRestMtsmsResponse'
      x-evidence:
        kind: documentation
  /rest/mtsms/{id{int}}:
    delete:
      operationId: delete_rest_mtsms_id_int
      tags:
      - Rest
      summary: Delete scheduled SMS
      x-source: https://gatewayapi.com/docs/apis/rest
      parameters:
      - name: id{int
        in: path
        required: true
        schema:
          type: string
      - name: int
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteRestMtsmsIdIntResponse'
      x-evidence:
        kind: documentation
  /rest/mtsms/{message_id{int}}:
    get:
      operationId: get_rest_mtsms_message_id_int
      tags:
      - Rest
      summary: Get SMS and SMS status
      x-source: https://gatewayapi.com/docs/apis/rest
      parameters:
      - name: message_id{int
        in: path
        required: true
        schema:
          type: string
      - name: int
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetRestMtsmsMessageIdIntResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    PostRestHlrRequest:
      type: object
      properties:
        msisdns:
          type: array
          description: List of numbers to look up
      required:
      - msisdns
    PostRestMtsmsResponse:
      type: object
      properties:
        ids:
          type: array
          description: List of message IDs
        usage:
          type: object
          description: Usage information for the request
        '200':
          type: string
          description: Returns an object with an array of message IDs and usage information on success
        '400':
          type: string
          description: Invalid arguments
        '401':
          type: string
          description: Invalid API key or signature
        '403':
          type: string
          description: Unauthorized IP address
        '422':
          type: string
          description: Invalid JSON request body
        '500':
          type: string
          description: Internal Server Error
    PostRestEmailResponse:
      type: object
      properties:
        ids:
          type: array
          description: Array of message IDs
        usage:
          type: object
          description: Object with usage information
    DeleteRestMtsmsIdIntResponse:
      type: object
      properties:
        '204':
          type: string
          description: Successful response
        '400':
          type: string
          description: Invalid arguments
        '401':
          type: string
          description: Invalid API key or signature
        '403':
          type: string
          description: Unauthorized IP address
        '404':
          type: string
          description: SMS not found or not yet transferred to storage
        '410':
          type: string
          description: Message already gone
        '422':
          type: string
          description: Invalid JSON request body
        '500':
          type: string
          description: Internal Server Error
    GetRestMtsmsResponse:
      type: object
      properties:
        '200':
          type: string
          description: Returns an object that represents the SMS on success
        '400':
          type: string
          description: Invalid arguments
        '401':
          type: string
          description: Invalid API key or signature
        '403':
          type: string
          description: Unauthorized IP address
        '422':
          type: string
          description: Invalid JSON request body
        '500':
          type: string
          description: Internal Server Error
    GetRestMeResponse:
      type: object
      properties:
        credit:
          type: string
          description: The remaining credit.
        currency:
          type: string
          description: The currency of your credit.
        id:
          type: integer
          description: The ID of your account.
    PostRestHlrResponse:
      type: object
      properties:
        currency:
          type: string
          description: Currency of the cost
        hlr:
          type: object
          description: Lookup results per number
        lookups:
          type: integer
          description: Number of lookups performed
        total_cost:
          type: number
          description: Total cost of the request
        '200':
          type: string
          description: Returns an object with information for each number
        '400':
          type: string
          description: Invalid arguments
        '401':
          type: string
          description: Invalid API key or signature
        '403':
          type: string
          description: Unauthorized IP address or account not authorized
        '422':
          type: string
          description: Invalid JSON request body
        '500':
          type: string
          description: Internal Server Error
    PostRestEmailRequest:
      type: object
      properties:
        html:
          type: string
          description: The html content of the email
        plaintext:
          type: string
          description: The plain text content of the email
        subject:
          type: string
          description: The subject line of the email, tags can be used like in the message to personalize the subject
        from:
          type: string
          description: The name and email of the sender, can be just the email if no name is specified, see below for format
        reply:
          type: string
          description: The name and email of the sender, can be just the email if no name is specified, see below for format
        callback_url:
          type: string
          description: Callback URL to get status reports
        userref:
          type: string
          description: Add your own custom reference to be passed back to the provided callback URL
        tags:
          type: array
          description: A list of string tags, which will be replaced with the tag values for each recipient, if used remember to also add tagvalues to all recipients
        recipients:
          type: array
          description: List of email addresses to receive the email
        attachments:
          type: array
          description: A list of base64 encoded files to be attached to the email
    GetRestMtsmsMessageIdIntResponse:
      type: object
      properties:
        '200':
          type: string
          description: Returns an object that represents the SMS on success
        '400':
          type: string
          description: Invalid arguments
        '401':
          type: string
          description: Invalid API key or signature
        '403':
          type: string
          description: Unauthorized IP address
        '422':
          type: string
          description: Invalid JSON request body
        '500':
          type: string
          description: Internal Server Error
    PostRestMtsmsRequest:
      type: object
      properties:
        class:
          type: string
          description: Message class, default “standard”
        message:
          type: string
          description: The content of the SMS
        sender:
          type: string
          description: Up to 11 alphanumeric characters, or 15 digits
        userref:
          type: string
          description: Opaque string reference
        callback_url:
          type: string
          description: URL for status notifications
        recipients:
          type: array
          description: Array of recipient objects
        recipients[].msisdn:
          type: integer
          description: Full mobile phone number of the recipient
      required:
      - message
      - recipients
      - recipients[].msisdn
  securitySchemes:
    Basic:
      type: http
      scheme: basic
      x-source: https://gatewayapi.com/docs/authentication/
    Legacy_query_credentials:
      type: apiKey
      in: query
      name: Authorization
      x-source: https://gatewayapi.com/docs/authentication/