Sendlane API

REST API for managing contacts, lists, campaigns, automations, custom fields, sender profiles, tags, and custom integration events for e-commerce email and SMS marketing.

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/sendlane-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sendlane-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Api Reference
  version: '2.0'
  contact:
    name: Sendlane
    url: 'https://sendlane.com'
    email: support@sendlane.com
  description: Sendlane V2 API
servers:
  - url: 'https://api.sendlane.com/v2'
    description: Sendlane
paths:
  '/lists/{listId}/contacts':
    parameters:
      - schema:
          type: integer
        name: listId
        in: path
        required: true
      - $ref: '#/components/parameters/from'
      - $ref: '#/components/parameters/to'
    post:
      summary: Create List Contact
      operationId: post-lists-listId-contacts
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      description: 'Add a contact to a list (In order to add **SMS Consent** to the request, the **Contact SMS Consent** endpoint must first be enabled in your account by contacting support)'
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              properties:
                contacts:
                  type: array
                  uniqueItems: true
                  minItems: 1
                  items:
                    $ref: '#/components/schemas/ListContact.v2'
              required:
                - contacts
            examples:
              Add Contact:
                value:
                  contacts:
                    - email: user@example.com
                      first_name: string
                      last_name: string
                      phone: '+15555555555'
                      email_consent: true
                      sms_consent: []
                      tag_ids:
                        - 1
                      tagNames:
                        - tag
                      custom_fields: []
              Add Multiple Contacts:
                value:
                  contacts:
                    - email: user@example.com
                      first_name: string
                      last_name: string
                      phone: '+15555555555'
                      email_consent: true
                      sms_consent: []
                      tag_ids:
                        - 1
                      custom_fields:
                        - key: birthday
                          value: '2022-12-12'
                        - key: alias
                          value: J.Doe
        description: array of contact objects
      tags:
        - List Contacts
    get:
      summary: Get List Contacts
      operationId: get-lists-listId-contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactIndexResponse.v2'
      description: Get contacts from list
      tags:
        - List Contacts
  '/lists/{listId}/contacts/{contactId}':
    parameters:
      - schema:
          type: integer
        name: contactId
        in: path
        required: true
    get:
      summary: Get List Contact
      description: Get List Contact
      tags:
        - List Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResponse.v2'
      operationId: get-lists-listId-contacts-contactId
      parameters: []
    delete:
      description: Delete Contact from List
      summary: Delete Contact from List
      operationId: delete-lists-listId-contacts-contactId
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      tags:
        - List Contacts
  /lists:
    get:
      summary: Get lists
      tags:
        - Lists
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/List.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
              examples:
                Lists:
                  value:
                    data:
                      - id: 1
                        list_name: string
                        default_from_name: string
                        default_from_email: string
                        default_reply_email: string
                        default_subject: string
                        list_key: string
                        description: string
                        created_by: string
                        contact_name: string
                        contact_email: string
                        company: string
                        address: string
                        city: string
                        postal_code: string
                        country: string
                        state_code: string
                        phone: string
                        status: string
                        date_added: string
                        deleted_date: null
      operationId: get-lists
      description: Returns the lists for the authenticated user
      parameters:
        - schema:
            type: integer
            format: int64
            default: 10
          in: query
          name: limit
          description: Maximum number of results
        - schema:
            type: integer
            default: 1
          in: query
          name: page
          description: Page of results to return
    post:
      summary: Create List
      operationId: post-lists
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse.v2'
              examples:
                Store List Response:
                  value:
                    data:
                      id: 1
                      name: string
                      description: string
                      status: string
                      created: string
                      flagged: string
      description: Create a list
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreListRequest.v2'
            examples:
              Create list:
                value:
                  id: 1
                  list_name: string
                  default_from_name: string
                  default_from_email: string
                  default_reply_email: string
                  default_subject: string
                  list_key: string
                  description: string
                  created_by: string
                  contact_name: string
                  contact_email: string
                  company: string
                  address: string
                  city: string
                  postal_code: string
                  country: string
                  state_code: string
                  phone: string
                  status: string
                  date_added: string
      tags:
        - Lists
  '/lists/{listId}':
    parameters:
      - schema:
          type: integer
        name: listId
        in: path
        required: true
    delete:
      summary: Delete List
      operationId: delete-lists-listId
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      tags:
        - Lists
      description: Delete list
    put:
      summary: Update List
      operationId: put-lists-listId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse.v2'
              examples:
                Update List Response:
                  value:
                    data:
                      id: 1
                      name: string
                      description: string
                      status: string
                      created: string
                      flagged: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateListRequest.v2'
      description: Update list
      tags:
        - Lists
    get:
      summary: Get List
      operationId: get-lists-listId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse.v2'
              examples:
                Get List Response:
                  value:
                    data:
                      id: 1
                      name: string
                      description: string
                      status: string
                      created: string
                      flagged: string
      tags:
        - Lists
      description: Get list
  '/lists/{listId}/unsubscribed':
    get:
      summary: Lists Unsubscribed
      parameters:
        - schema:
            type: integer
          name: listId
          in: path
          required: true
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/to'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contact.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      tags:
        - Lists
      operationId: get-lists-unsubscribed
      description: Get Lists Unsubscribed
  /automations/copy:
    post:
      summary: Automation Copy
      tags:
        - Automations
      security:
        - BearerToken: []
          OtherAccountBearerToken: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AutomationCopyRequest.v2'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CreatedResponse.v2'
      operationId: post-automations-copy
      description: Copy Automations
  /tags:
    get:
      summary: Get Tags
      tags:
        - Tags
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Tag.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      operationId: get-tags
      description: Get tags for account
    post:
      summary: Create Tag
      operationId: post-tags
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Tag.v2'
              examples:
                Created Tag:
                  value:
                    data:
                      id: 1
                      name: string
                      status: active
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Tag.v2'
            examples:
              Create tag:
                value:
                  name: string
      description: Create a tag
      tags:
        - Tags
  /custom-fields:
    get:
      summary: Get Custom Fields
      tags:
        - Custom Fields
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CustomField.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      operationId: get-custom-fields
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/page'
      description: Returns custom fields
    post:
      summary: Create Custom Field
      operationId: post-custom-fields
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomField.v2'
            examples:
              Example:
                value:
                  name: string
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CustomField.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      description: Create custom field
      tags:
        - Custom Fields
  /senders:
    get:
      summary: Sender Profiles
      tags:
        - Senders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Sender.v2'
                  links:
                    type: object
                    required:
                      - first
                      - last
                    properties:
                      first:
                        type: string
                        minLength: 1
                      last:
                        type: string
                        minLength: 1
                      prev:
                        type: string
                        nullable: true
                      next:
                        type: string
                        nullable: true
                  meta:
                    type: object
                    required:
                      - current_page
                      - last_page
                      - path
                      - per_page
                      - total
                    properties:
                      current_page:
                        type: integer
                      from: {}
                      last_page:
                        type: integer
                      path:
                        type: string
                        minLength: 1
                      per_page:
                        type: integer
                      to: {}
                      total:
                        type: integer
                required:
                  - data
                  - links
                  - meta
              examples: {}
      operationId: get-senders
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/page'
      description: Get sender profiles
    post:
      summary: Create Sender Profile
      operationId: post-senders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Sender.v2'
                required:
                  - data
              examples:
                Sender:
                  value:
                    data:
                      id: 1
                      address_1: string
                      city: string
                      company: string
                      country: string
                      from_email: user@example.com
                      from_name: string
                      reply_email: user@example.com
                      state_code: string
                      postal_code: string
                      is_default: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Sender.v2'
      tags:
        - Senders
      description: Create sender profile
  /sms-messages:
    get:
      summary: SMS Messages
      tags:
        - SMS
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/SmsMessage.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      operationId: get-sms-messages
      description: SMS Messages
  '/sms-messages/{messageId}':
    parameters:
      - schema:
          type: integer
        name: messageId
        in: path
        required: true
      - $ref: '#/components/parameters/from'
      - $ref: '#/components/parameters/to'
    get:
      summary: Get SMS Message
      tags:
        - SMS
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/SmsMessage.v2'
      operationId: get-sms-message
      description: Get SMS Message
  '/sms-messages/{messageId}/report':
    parameters:
      - schema:
          type: integer
        name: messageId
        in: path
        required: true
      - $ref: '#/components/parameters/from'
      - $ref: '#/components/parameters/to'
    get:
      summary: SMS Report
      tags:
        - SMS
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/SmsReport.v2'
      operationId: get-sms-report
      description: SMS Report
  '/senders/{senderId}':
    parameters:
      - schema:
          type: integer
        name: senderId
        in: path
        required: true
    get:
      summary: Sender Profile
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Sender.v2'
                required:
                  - data
              examples:
                Sender:
                  value:
                    data:
                      id: 1
                      address_1: string
                      city: string
                      company: string
                      country: string
                      from_email: user@example.com
                      from_name: string
                      reply_email: user@example.com
                      state_code: string
                      postal_code: string
                      is_default: true
      operationId: get-senders-senderId
      tags:
        - Senders
      description: Get sender profile
    patch:
      summary: Update Sender Profile
      operationId: patch-senders-senderId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                description: ''
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Sender.v2'
                required:
                  - data
              examples:
                Sender:
                  value:
                    data:
                      id: 1
                      address_1: string
                      city: string
                      company: string
                      country: string
                      from_email: user@example.com
                      from_name: string
                      reply_email: user@example.com
                      state_code: string
                      postal_code: string
                      is_default: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Sender.v2'
      tags:
        - Senders
      description: Update sender profile
    delete:
      summary: Delete Sender Profile
      operationId: delete-senders-senderId
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      tags:
        - Senders
      description: Delete sender profile
  '/suppression/domains/{suppressionId}':
    parameters:
      - schema:
          type: number
        name: suppressionId
        in: path
        required: true
    delete:
      summary: Delete Domain Suppression
      operationId: delete-domain-suppression-suppressionId
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      description: Remove a domain from the suppression list
      tags:
        - Suppression
  /suppression/domains:
    get:
      summary: Domain Suppressions
      tags:
        - Suppression
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DomainSuppressionResponse.v2'
              examples:
                Domain Suppression Response:
                  value:
                    data:
                      - id: string
                        domain: string
                    links:
                      first: string
                      last: string
                      prev: string
                      next: string
                    meta:
                      current_page: 1
                      from: 1
                      last_page: 1
                      path: string
                      per_page: 100
                      total: 1
      operationId: get-domain-suppression-suppressionId
      description: Get domain suppressions
    parameters: []
    post:
      summary: Create Domain Suppression
      operationId: post-domain-suppression
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreDomainSuppressionResponse.v2'
              examples:
                Create Domain Suppression Response:
                  value:
                    data:
                      id: string
                      domain: string
      description: Add a domain to the suppression list
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DomainSuppression.v2'
            examples:
              Create Domain Suppression:
                value:
                  domain: string
      tags:
        - Suppression
  /suppression/emails:
    get:
      summary: Email Suppressions
      tags:
        - Suppression
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailSuppressionResponse.v2'
              examples:
                Email Suppression Response:
                  value:
                    data:
                      - id: 1
                        email: string
                        list_id: 1
                    links:
                      first: string
                      last: string
                      prev: string
                      next: string
                    meta:
                      current_page: 1
                      from: 1
                      last_page: 1
                      path: string
                      per_page: 100
                      total: 1
      operationId: get-suppression
      description: Get emails in the suppression list
    post:
      summary: Create Email Suppression
      operationId: post-suppression
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailSuppression.v2'
              examples:
                Store Email Suppression Response:
                  value:
                    data:
                      id: 1
                      email: string
                      list_id: 1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreEmailSuppressionRequest.v2'
            examples:
              Add Email to the suppression list:
                value:
                  email: string
                  list_id: 1
      description: Add an email to the suppression list
      tags:
        - Suppression
    parameters: []
  '/tags/{tagId}':
    parameters:
      - schema:
          type: integer
        name: tagId
        in: path
        required: true
    get:
      description: Get tag
      summary: Get Tag
      tags:
        - Tags
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Tag.v2'
      operationId: get-tags-tagId
    patch:
      description: Update tags
      summary: Update Tag
      operationId: patch-tags-tagId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Tag.v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Tag.v2'
      tags:
        - Tags
    delete:
      description: Delete tag
      summary: Delete Tag
      operationId: delete-tags-tagId
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      tags:
        - Tags
  '/custom-fields/{customFieldId}':
    parameters:
      - schema:
          type: integer
        name: customFieldId
        in: path
        required: true
    get:
      summary: Get Custom Field
      tags:
        - Custom Fields
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CustomField.v2'
      operationId: get-custom-fields-customFieldId
      description: Returns custom field
    patch:
      summary: Update Custom Field
      operationId: patch-custom-fields-customFieldId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CustomField.v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomField.v2'
      description: Update custom field
      tags:
        - Custom Fields
  /contacts:
    get:
      summary: Contacts
      parameters:
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/to'
      tags:
        - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contact.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      operationId: get-contacts
      description: Get Contacts
  '/contacts/{contactId}':
    parameters:
      - schema:
          type: integer
        name: contactId
        in: path
        required: true
    get:
      summary: Get Contact
      tags:
        - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactResponse.v2'
      operationId: get-contacts-contactId
      parameters: []
      description: Get Contact
    delete:
      description: Delete contact
      summary: Delete Contact
      operationId: delete-contacts-contactId
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AcceptedResponse.v2'
      tags:
        - Contacts
  /contacts/unsubscribed:
    get:
      summary: Contacts Unsubscribed
      parameters:
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/to'
      tags:
        - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contact.v2'
                  links:
                    $ref: '#/components/schemas/PaginatorLinks.v2'
                  meta:
                    $ref: '#/components/schemas/PaginatorMeta.v2'
      operationId: get-contacts-unsubscribed
      description: Get Contacts Unsubscribed
  '/contacts/{contactId}/custom-fields':
    parameters:
      - schema:
          type: integer
        name: contactId
        in: path
        required: true
    get:
      summary: Get Contact Custom Fields
      tags:
        - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:


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