Mailmodo Contacts API

Add, remove, archive, unsubscribe, resubscribe, and look up contacts

Operations 11

POST /contacts/unsubscribe Suppress/unsubscribe a contact #
POST /contacts/updateSubscription Update Subscription
POST /contacts/resubscribe Resubscribe contact
DELETE /contacts Archive an exising contact #
POST /api/v1/addToList Add a Single Contact to a List #
POST /api/v1/addToList/batch Add a Batch of Contacts to a List #
POST /api/v1/removeFromList Remove a Contact From a List #
POST /api/v1/contacts/unsubscribe Unsubscribe a Contact #
POST /api/v1/contacts/resubscribe Resubscribe a Contact #
DELETE /api/v1/contacts Archive a Contact #
GET /api/v1/getContactDetails Get Contact Details #

Documentation

Specifications

Schemas & Data

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/mailmodo-contacts-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

mailmodo-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mailmodo Contacts API
  version: '1.0'
  description: 'Operations tagged Contacts across 2 of this provider''s published API definitions: mailmodo-contact-management-openapi.json, mailmodo-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.mailmodo.com/api/v1
- url: https://api.mailmodo.com
  description: Production
tags:
- name: Contacts
paths:
  /contacts/unsubscribe:
    parameters: []
    post:
      summary: Suppress/unsubscribe a contact
      operationId: post-contacts-unsubscribe
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                    minLength: 1
                required:
                - success
                - message
                x-examples:
                  example-1:
                    success: true
                    message: The contact is successfully added/updated
              examples: {}
        ? ''
        : description: ''
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                    minLength: 1
                required:
                - success
                - message
                x-examples:
                  example-1:
                    success: true
                    message: The email ID is already present in the suppression list.
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              x-examples:
                example-1:
                  email: testEventContact9@mailmodo.com
              properties:
                email:
                  type: string
                  minLength: 1
                  description: Email address of the contact to be suppressed/unsubscribed
              required:
              - email
            examples: {}
          application/xml:
            schema:
              description: ''
              type: object
              x-examples:
                example-1:
                  email: john@example.com
                  data:
                    first_name: John
                    last_name: Doe
                    company: ACME Inc
                  listName: string
              properties:
                email:
                  type: string
                  minLength: 1
                data:
                  type: object
                  properties:
                    first_name:
                      type: string
                      minLength: 1
                    last_name:
                      type: string
                      minLength: 1
                    company:
                      type: string
                      minLength: 1
                listName:
                  type: string
                  minLength: 1
              required:
              - email
              - listName
          multipart/form-data:
            schema:
              type: object
              properties: {}
          text/html:
            schema:
              description: ''
              type: object
              properties:
                email:
                  type: string
                  minLength: 1
              required:
              - email
              x-examples:
                example-1:
                  email: testEventContact9@mailmodo.com
        description: ''
      description: Suppressing/unsubscribing a contact will add them to the suppression list and they will not receive any further communication from you
      x-internal: false
      parameters:
      - schema:
          type: string
          default: application/json
        in: header
        name: Content-Type
        description: application/json
        required: true
      - schema:
          type: string
        in: header
        name: mmApiKey
        required: true
        description: 'Please input your API key available at https://manage.mailmodo.com/app/settings/apikey '
      tags:
      - Contacts
      security:
      - mmApiKey: []
    servers:
    - url: https://api.mailmodo.com/api/v1
  /contacts/updateSubscription:
    parameters: []
    post:
      summary: Update Subscription
      description: '- Resubscribe or unsubscribe contact from email type(s).

        - If the contact is completely unsubscribed (from all email types), then this API won''t be applicable.

        - Use Resubscribe API to revert complete unsubscription.'
      operationId: ''
      parameters:
      - schema:
          type: string
        in: header
        name: mmApiKey
        description: Please input your API key available at https://manage.mailmodo.com/app/settings/apikey
      - schema:
          type: string
        in: header
        name: Content-Type
        description: application/json
      requestBody:
        content:
          application/json:
            schema:
              type: object
              x-examples:
                example-1:
                  email: ''
                  reSubscribeTo: []
                  unsubscribeFrom: []
              properties:
                email:
                  type: string
                  minLength: 1
                  description: Email address of the contact whose subscription status is to be updated
                reSubscribeTo:
                  type: array
                  description: Enter email type(s) to which the contact will be resubscribed
                  items:
                    type: string
                    example: Promotional
                unsubscribeFrom:
                  type: array
                  description: Enter email type(s) from which contact will be unsubcribed
                  items:
                    type: string
                    example: Transactional
              required:
              - email
              - reSubscribeTo
              - unsubscribeFrom
          application/xml:
            schema:
              type: object
              properties: {}
        description: ''
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                x-examples:
                  example-1:
                    message: Subscription update is successful
                    currentUnsubscribedEmailTypes: []
                properties:
                  message:
                    type: string
                    example: Subscription update is successful
                    minLength: 1
                  currentUnsubscribedEmailTypes:
                    type: array
                    items:
                      type: string
                      example: Promotional
        '400':
          description: ''
          content:
            application/json:
              schema:
                type: object
                x-examples:
                  example-1:
                    message: 'Invalid channels found: cricket. Please choose a correct channel'
                    validChannels:
                    - Promotional
                    - Transactional
                properties:
                  message:
                    type: string
                    example: 'Invalid channels found: cricket. Please choose a correct channel'
                  validChannels:
                    type: array
                    items:
                      type: string
                      minLength: 0
                      example: Promotional,Transactional
            application/xml:
              schema:
                type: object
                properties: {}
              examples:
                exampl:
                  value: '[object Object]'
                example-1:
                  value: {}
            multipart/form-data:
              schema:
                type: object
                properties: {}
      tags:
      - Contacts
      security:
      - mmApiKey: []
    servers:
    - url: https://api.mailmodo.com/api/v1
  /contacts/resubscribe:
    parameters: []
    post:
      summary: Resubscribe contact
      description: '- Use this API to resubscribe a suppressed(unsubscribed) contact.'
      operationId: ''
      parameters:
      - schema:
          type: string
          default: application/json
        in: header
        name: Content-Type
        required: true
        description: application/json
      - schema:
          type: string
        in: header
        name: mmApiKey
        description: Please input your API key available at https://manage.mailmodo.com/app/settings/apikey
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
              x-examples:
                example-1:
                  email: deena24@mailmodo.com
          application/xml:
            schema:
              type: object
              properties: {}
          multipart/form-data:
            schema:
              type: object
              properties:
                email:
                  type: string
              x-examples:
                example-1:
                  email: gursahay24@gmail.com
        description: ''
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                x-examples:
                  example-1:
                    message: The email ID is successfully Subscribed
      x-internal: false
      tags:
      - Contacts
      security:
      - mmApiKey: []
    servers:
    - url: https://api.mailmodo.com/api/v1
  /contacts:
    parameters: []
    delete:
      summary: Archive an exising contact
      operationId: delete
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                    minLength: 1
                required:
                - success
                - message
                x-examples:
                  example-1:
                    success: true
                    message: The contact is successfully deleted
          headers: {}
        '400':
          description: Email address doesn't exist
          content:
            application/json:
              schema:
                type: object
                properties: {}
      description: Use this API to archive a contact using email ID. For more details, check out our documentation on [how to archive contacts in Mailmodo](https://support.mailmodo.com/support/solutions/articles/84000379892-how-to-archive-contacts-in-mailmodo-)
      parameters:
      - schema:
          type: string
          default: application/json
        in: header
        name: Content-Type
        description: application/json
      - schema:
          type: string
        in: header
        name: mmApiKey
        description: Please input your API key available at https://manage.mailmodo.com/app/settings/apikey
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              x-examples:
                Example 1:
                  email: avneesh+mcptest@mailmodo.com
              required:
              - email
              properties:
                email:
                  type: string
                  description: Email address of the contact which you want to delete.
            examples:
              Example 1:
                value:
                  email: example@mailmodo.com
        description: ''
      x-internal: false
      x-stoplight:
        id: 24y96t8rbfi17
      tags:
      - Contacts
      security:
      - mmApiKey: []
    servers:
    - url: https://api.mailmodo.com/api/v1
  /api/v1/addToList:
    post:
      tags:
      - Contacts
      summary: Add a Single Contact to a List
      description: Add (or update) one contact in a named contact list with optional custom attributes used for segmentation and personalization.
      operationId: addContactToList
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddContactRequest'
      responses:
        '200':
          description: Contact added or updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddContactResponse'
      security:
      - ApiKeyAuth: []
    servers:
    - url: https://api.mailmodo.com
      description: Production
  /api/v1/addToList/batch:
    post:
      tags:
      - Contacts
      summary: Add a Batch of Contacts to a List
      description: Add (or update) up to several thousand contacts to a list in a single request.
      operationId: addContactsToListBatch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddContactsBatchRequest'
      responses:
        '200':
          description: Batch accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddContactResponse'
      security:
      - ApiKeyAuth: []
    servers:
    - url: https://api.mailmodo.com
      description: Production
  /api/v1/removeFromList:
    post:
      tags:
      - Contacts
      summary: Remove a Contact From a List
      description: Remove a single contact from the named list but keep the contact record on the workspace.
      operationId: removeContactFromList
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              - listName
              properties:
                email:
                  type: string
                  format: email
                listName:
                  type: string
      responses:
        '200':
          description: Contact removed from list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddContactResponse'
      security:
      - ApiKeyAuth: []
    servers:
    - url: https://api.mailmodo.com
      description: Production
  /api/v1/contacts/unsubscribe:
    post:
      tags:
      - Contacts
      summary: Unsubscribe a Contact
      description: Mark a contact as unsubscribed across the workspace.
      operationId: unsubscribeContact
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              properties:
                email:
                  type: string
                  format: email
      responses:
        '200':
          description: Contact unsubscribed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddContactResponse'
      security:
      - ApiKeyAuth: []
    servers:
    - url: https://api.mailmodo.com
      description: Production
  /api/v1/contacts/resubscribe:
    post:
      tags:
      - Contacts
      summary: Resubscribe a Contact
      description: Reverse the unsubscribed status for a contact.
      operationId: resubscribeContact
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              properties:
                email:
                  type: string
                  format: email
      responses:
        '200':
          description: Contact resubscribed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddContactResponse'
      security:
      - ApiKeyAuth: []
    servers:
    - url: https://api.mailmodo.com
      description: Production
  /api/v1/contacts:
    delete:
      tags:
      - Contacts
      summary: Archive a Contact
      description: Archive (soft-delete) a contact from the workspace.
      operationId: archiveContact
      parameters:
      - name: email
        in: query
        required: true
        schema:
          type: string
          format: email
      responses:
        '200':
          description: Contact archived
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddContactResponse'
      security:
      - ApiKeyAuth: []
    servers:
    - url: https://api.mailmodo.com
      description: Production
  /api/v1/getContactDetails:
    get:
      tags:
      - Contacts
      summary: Get Contact Details
      description: Return profile information and list membership for a contact.
      operationId: getContactDetails
      parameters:
      - name: email
        in: query
        required: true
        schema:
          type: string
          format: email
      responses:
        '200':
          description: Contact details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
      security:
      - ApiKeyAuth: []
    servers:
    - url: https://api.mailmodo.com
      description: Production
components:
  schemas:
    AddContactResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
        data:
          type: object
          additionalProperties: true
    AddContactsBatchRequest:
      type: object
      required:
      - values
      - listName
      properties:
        listName:
          type: string
        values:
          type: array
          items:
            $ref: '#/components/schemas/AddContactRequest'
    Contact:
      type: object
      properties:
        email:
          type: string
          format: email
        firstName:
          type: string
        lastName:
          type: string
        subscriptionStatus:
          type: string
          enum:
          - subscribed
          - unsubscribed
          - bounced
          - archived
        lists:
          type: array
          items:
            type: string
        data:
          type: object
          additionalProperties: true
    AddContactRequest:
      type: object
      required:
      - email
      - listName
      properties:
        email:
          type: string
          format: email
        listName:
          type: string
        data:
          type: object
          additionalProperties: true
          description: Optional custom attributes used for personalization and segmentation
  securitySchemes:
    mmApiKey:
      name: mmApiKey
      type: apiKey
      in: header
      description: ''
    ApiKeyAuth:
      type: apiKey
      in: header
      name: mmApiKey
      description: API key issued from the Mailmodo dashboard at https://manage.mailmodo.com/app/settings/apikey. Sent as the `mmApiKey` request header on every call.
x-refined-from:
- mailmodo-contact-management-openapi.json
- mailmodo-openapi.yml
x-stoplight:
  id: a058e7501dfe7