Mapp Marketing Cloud Async API

The Async API from Mapp Marketing Cloud — 8 operation(s) for async.

Operations 8

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 /async/getNextIndex Get the next poll index for a topic · Get the next result index for a topic #
Ask an LLM
“How do I switch from managed polling to polling by my own index?”
“What index should I start from after my last poll of a topic?”
Tell an agent
Get the next index for topic {topic}.
Tell me where to resume polling topic {topic} by index.
GET /async/getPollCount Count results already polled for a topic · Get the polled result count for a topic #
Ask an LLM
“How many result items have been retrieved for a topic so far?”
“Can I see the polled count for an async topic?”
Tell an agent
Get the poll count for topic {topic}.
Count how many results I've pulled from {topic}.
GET /async/getSubmitCount Count jobs submitted for a topic · Get the submitted job count for a topic #
Ask an LLM
“How many async jobs have been submitted for a topic?”
“Can I check the submitted job total for my API script?”
Tell an agent
Get the number of submitted jobs for my topic.
Count job submissions for the async script.
GET /async/pollByType Poll events by event type · Poll results for a topic by event type #
Ask an LLM
“Can I pull link click or read tracking events from the result queue by type?”
“Which event types can I poll, and does allMessages include sentToMta?”
Tell an agent
Poll {limit} {type} events.
Fetch the next 10000 linkClick events of type {type}.
GET /async/pollByIndex Poll topic results from an index · Poll results for a topic by index #
Ask an LLM
“Can I read queue results from an offset I manage myself?”
“How do I page through topic results starting at a given index?”
Tell an agent
Poll {limit} results from topic {topic} starting at index {index}.
Re-read topic {topic} from index {index}.
GET /async/pollByRange Poll events within a time range · Poll results for a topic within a time range #
Ask an LLM
“Can I pull events of one type between two timestamps?”
“What's the call to fetch link clicks from a specific window?”
Tell an agent
Poll up to {limit} {type} events from {from} to {to}.
Get {type} events between {from} and {to}.
GET /async/poll Poll and consume results for a topic · Poll results for a topic #
Ask an LLM
“Are async results removed from the server once I poll them?”
“How can I read the next batch of results for a topic from the queue?”
Tell an agent
Poll {limit} results from topic {topic}.
Pull and consume the next results for {topic}.
GET /async/submit Start an asynchronous API script job · Submit an asynchronous job for a topic #
Ask an LLM
“Can I run one of my custom API scripts asynchronously and collect results later?”
“How does submitting an async job relate to polling results by topic?”
Tell an agent
Submit an async job for my API script with these arguments.
Kick off the export script as an asynchronous job.

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/mapp:mapp-async-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

mapp-async-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mapp Engage public Async API
  version: '1'
  description: 'Mapp Engage REST API (REST 2.0, incremental version v19). Assembled verbatim from the per-operation OpenAPI fragments Mapp publishes on each endpoint page of https://docs.mapp.com/apidocs/. The base URL is tenant-specific: take your Mapp Engage login host and append /api/rest/v19.'
  contact:
    name: Mapp Technical Support
    url: https://mapp.com/tech-support/
servers:
- url: /api/rest/v19
security:
- basicAuth: []
tags:
- name: Async
paths:
  /async/getNextIndex:
    get:
      tags:
      - Async
      summary: Get the next result index for a topic
      description: Returns the next index for the given topic relative to the last call to "async/poll". This call is useful when switching from calling "async/poll" (with a managed index) to calling "async/pollByIndex" where the index is managed by the user. The result value can be used as value for parameter "index" in a follow-up call to "async/pollByIndex".
      operationId: getNextIndex
      parameters:
      - name: topic
        in: query
        description: Name of the topic.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: integer
                format: int64
            application/xml:
              schema:
                type: integer
                format: int64
        '400':
          description: ''
  /async/getPollCount:
    get:
      tags:
      - Async
      summary: Get the polled result count for a topic
      description: Returns the number of result items that were retrieved/polled for a certain topic.
      operationId: getPollCount
      parameters:
      - name: topic
        in: query
        description: Name of the topic.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: integer
                format: int64
            application/xml:
              schema:
                type: integer
                format: int64
        '400':
          description: Required parameters are missing or incorrect.
  /async/getSubmitCount:
    get:
      tags:
      - Async
      summary: Get the submitted job count for a topic
      description: Returns the number of job results that were submitted for a specific topic.
      operationId: getSubmitCount
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: integer
                format: int64
            application/xml:
              schema:
                type: integer
                format: int64
        '400':
          description: ''
  /async/pollByType:
    get:
      tags:
      - Async
      summary: Poll results for a topic by event type
      description: 'Retrieves a specific number of results for a topic from the result queue.

        Request body example:


        {

        "type":"linkClick ",

        "limit":"10000"

        }'
      operationId: pollByType
      parameters:
      - name: type
        in: query
        description: 'Type of events you want to check values for:

          allMessages (Includes all other types EXCEPT sentToMta), linkClick, mtaResponse, smsResponse, readTrack, forwardTrack, conversion, skipTracking, sendTransactional, unsubscribe, sentToMta.

          To get all available types, you must be able to make at least two separate calls. 1. To allMessages type, and 2. To sentToMta type.'
        required: true
        schema:
          type: string
      - name: limit
        in: query
        description: Number of events to poll.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
            application/xml:
              schema:
                type: array
                items:
                  type: object
        '400':
          description: Parameters Type and limit are mandatory, but missing or incorrect / given type does not exist.
  /async/pollByIndex:
    get:
      tags:
      - Async
      summary: Poll results for a topic by index
      description: Retrieves a specific number of results for a topic from the result queue, starting from the given offset.
      operationId: pollByIndex
      parameters:
      - name: topic
        in: query
        description: Name of the topic.
        required: true
        schema:
          type: string
      - name: index
        in: query
        description: A number of the offset to start from.
        required: true
        schema:
          type: integer
          format: int64
      - name: limit
        in: query
        description: A number of result items to retrieve.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
            application/xml:
              schema:
                type: array
                items:
                  type: object
        '400':
          description: Required parameters are missing or incorrect.
  /async/pollByRange:
    get:
      tags:
      - Async
      summary: Poll results for a topic within a time range
      description: 'Retrieves a specific number of results for a topic from the result queue in the designated period.

        Request body example:


        {

        "type":"linkClick",

        "from":"1683637275"

        "to":"1683720075"

        "limit":"86400"

        }'
      operationId: pollByRange
      parameters:
      - name: type
        in: query
        description: Type of events customer would like to poll (e.g allMessages [This TYPE consolidates all types below except for sentToMta, therefore 2-10 below are included in allMessages], linkClick, mtaResponse, smsResponse, readTrack, forwardTrack, conversion, skipTracking, sendTransactional, unsubscribe, sentToMta [This type must be called separately. For any customer to get all available types their web-service must be able to make at least two separate calls. 1. To allMessages type, and 2. To sentToMta type])
        required: true
        schema:
          type: string
      - name: from
        in: query
        description: 'Opening timestamp from when the customer would like to get events (warning: timestamp is a time of inserting event to the database, not time of occurring of the event, so if the event happened at 31st of January at 23:59:59 but we had a delay in inserting and it was inserted of 1st of February then timestamp will be on February).'
        required: true
        schema:
          type: integer
          format: int64
      - name: to
        in: query
        description: Closing timestamp.
        required: true
        schema:
          type: integer
          format: int64
      - name: limit
        in: query
        description: A number of events to fetch.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
            application/xml:
              schema:
                type: array
                items:
                  type: object
        '400':
          description: Required parameters are missing or incorrect.
  /async/poll:
    get:
      tags:
      - Async
      summary: Poll results for a topic
      description: 'Retrieves a certain amount of results for a topic from the result queue. The result items that were retrieved are deleted from the server once they have been transmitted.

        Request body example:


        {

        "name": "twitter_logo.png",

        "contentType": "image/png",

        "content": "iVBORw0KGgoAAAANSUhEUgAAABUAAAARCAYAAAAyhueAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASFJREFUeNqslM0NgkAQhRdiAdiAgQ6468EO1INntQOpwFABdqBe9aAdiIl3twS1AbECfJPMkhVZftSXjJPsDh87z2WsNE1Fb3d3z+POVVQIdQ5ShJhqywdEgEgQQ1qwutsbFT4QM4DXFcALwi3YJqDD2bPx4/PGCg/OSw46NwAFA0nU7d7ObUYAHxF+wYMDUU8jiz19aG9TihEbyuS3oSavNmoT5Sm1thA/CkCLsvJ0In5XdnsIKkv+gCaSGZQ8QF7+AXrST0peBH8Ar9+grKfuS1Mgd/wBjb/0lmChvmBr14GgMy5qoiA/N+zcPSNfPN2fCoVF86KlDQxqvc93tl8DaBxALcAi/qLqKuaWpalAffsOz8iB4ZRSzYIymNJLgAEAYsJkJOLW//gAAAAASUVORK5CYII="

        }'
      operationId: poll
      parameters:
      - name: topic
        in: query
        description: Name of the topic.
        required: true
        schema:
          type: string
      - name: limit
        in: query
        description: A number of result items to retrieve.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
            application/xml:
              schema:
                type: array
                items:
                  type: object
        '400':
          description: Required parameters are missing or incorrect.
  /async/submit:
    get:
      tags:
      - Async
      summary: Submit an asynchronous job for a topic
      description: 'Initiates an asynchronous job by providing a topic name (script name) and input data (arguments).

        The script name references an API script that is individually created for your system.

        CEP receives the request and processes the script asynchronously.


        Results can be polled from the result queue by topic name.'
      operationId: submit
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: string
            application/xml:
              schema:
                type: string
        '400':
          description: Required parameters are missing or incorrect.
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication with a Mapp Engage system user of type API (or Hybrid).
x-apievangelist-provenance:
  method: searched
  generated: '2026-08-12'
  source: https://docs.mapp.com/apidocs/ (per-endpoint OpenAPI fragments)
  note: Union of the OpenAPI JSON fragments Mapp publishes on each endpoint page. Mapp does not serve one consolidated document at a public URL; the tenant-served Swagger lives at https://<your-engage-host>/apidoc/swagger.json and requires a tenant. Operation bodies, parameters, responses, tags, summaries and descriptions are verbatim from Mapp. The swagger/basePath/schemes/securityDefinitions envelope is added by API Evangelist from the published Getting Started guide; no operation content was authored.
  duplicate_operation_ids_suffixed: 30