EmailOctopus List API

Create and manage subscriber lists, the aggregate root of the EmailOctopus data model. Fields, tags and contacts are all owned by a list and addressed through list-scoped paths. 5 operation(s) in the EmailOctopus v2 OpenAPI 3.1.0.

Operations 5

GET /lists Get all lists #
POST /lists Create list #
GET /lists/{list_id} Get list #
PUT /lists/{list_id} Update list #
DELETE /lists/{list_id} Delete a list #

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/emailoctopus-list-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

emailoctopus-list-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: EmailOctopus v2 List API
  description: '# Introduction


    The EmailOctopus API allows you to manage resources and perform actions within the platform programmatically.'
  version: 2.0.0
  x-logo:
    url: /build/images/logo.CRVwHzot.svg
    altText: EmailOctopus Logo
    href: '#'
servers:
- url: https://api.emailoctopus.com
  description: ''
security:
- api_key: []
tags:
- name: List
  description: A list is a collection of contacts. Every one of your contacts will exist inside a list. The majority of our users only require one list, but multiple lists can be created and configured with different fields and tags in order to organise distinct groups of contacts.
paths:
  /lists:
    get:
      operationId: api_lists_get
      tags:
      - List
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/List.collection-get'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#bad-request
                    default: https://emailoctopus.com/api-documentation/v2#bad-request
                    example: https://emailoctopus.com/api-documentation/v2#bad-request
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Bad request.
                  status:
                    type: string
                    description: Response status.
                    default: 400
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - detail
                      properties:
                        pointer:
                          type: string
                          description: A JSON Pointer [RFC6901] to the value in the request document that caused the error.
                          default: name
                        parameter:
                          type: string
                          description: Name of the url parameter containing the error.
                          default: list_id
                        detail:
                          type: string
                          description: Error description.
                          default: This value should be between 1 and 100.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#unauthorized
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Invalid key.
                  status:
                    type: string
                    description: Response status.
                    default: 401
      summary: Get all lists
      description: ''
      parameters:
      - name: limit
        in: query
        description: Max number of results per page.
        required: false
        deprecated: false
        schema:
          type: integer
          default: '100'
        style: form
        explode: true
        example: '100'
      - name: starting_after
        in: query
        description: Cursor that points to the end of the page.
        required: false
        deprecated: false
        schema:
          type: string
        style: form
        explode: true
        example: WyIyMDI0LTEyLTA3VDE1OjAzOjAxKzAwOjAwIiwiNDYzN2RmYTAtYjZmMC0xMWVmLWFjZDYtZjU5YjA4MDFlMjBkIl0
    post:
      operationId: api_lists_post
      tags:
      - List
      responses:
        '201':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/List-get'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#bad-request
                    default: https://emailoctopus.com/api-documentation/v2#bad-request
                    example: https://emailoctopus.com/api-documentation/v2#bad-request
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Bad request.
                  status:
                    type: string
                    description: Response status.
                    default: 400
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - detail
                      properties:
                        pointer:
                          type: string
                          description: A JSON Pointer [RFC6901] to the value in the request document that caused the error.
                          default: name
                        parameter:
                          type: string
                          description: Name of the url parameter containing the error.
                          default: list_id
                        detail:
                          type: string
                          description: Error description.
                          default: This value should be between 1 and 100.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#unauthorized
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Invalid key.
                  status:
                    type: string
                    description: Response status.
                    default: 401
        '403':
          description: Access denied.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#access-denied
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Access denied.
                  status:
                    type: string
                    description: Response status.
                    default: 403
        '422':
          description: Unprocessable content.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type
                    example: https://emailoctopus.com/api-documentation/v2#unprocessable-content
                  title:
                    type: string
                    description: 'General error title: `An error occurred.`'
                    example: An error occurred.
                  detail:
                    type: string
                    description: 'Error description: `Unprocessable content.`'
                    example: Unprocessable content.
                  status:
                    type: string
                    description: 'Response status: `422`'
                    example: 422
                  errors:
                    type: array
                    description: Validation errors
                    items:
                      type: object
                      properties:
                        detail:
                          type: string
                          description: Error description.
                        pointer:
                          type: string
                          description: A JSON Pointer <a href="https://datatracker.ietf.org/doc/html/rfc7807" target="_blank">[RFC 7807]</a> to the value in the request document that caused the error.
                      example:
                        detail: This value must be string type, int provided.
                        pointer: /name
      summary: Create list
      description: ''
      parameters: []
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: object
              description: ''
              required:
              - name
              properties:
                name:
                  type: string
                  description: The name of the list.
                  example: New clients list
                  maxLength: 255
        required: false
  /lists/{list_id}:
    get:
      operationId: api_lists_list_id_get
      tags:
      - List
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/List-get'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type
                    example: https://emailoctopus.com/api-documentation/v2#bad-request
                  title:
                    type: string
                    description: 'General error title: `An error occurred.`'
                    example: An error occurred.
                  detail:
                    type: string
                    description: 'Error description: `Bad request.`'
                    example: Bad request.
                  status:
                    type: string
                    description: 'Response status: `400`'
                    example: 400
                  errors:
                    type: array
                    description: Validation errors
                    items:
                      type: object
                      properties:
                        detail:
                          type: string
                          description: Error description.
                        parameter:
                          type: string
                          description: Name of the url parameter containing the error.
                      example:
                        detail: This value is not a valid UUID.
                        parameter: list_id
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#unauthorized
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Invalid key.
                  status:
                    type: string
                    description: Response status.
                    default: 401
        '403':
          description: Access denied.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#access-denied
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Access denied.
                  status:
                    type: string
                    description: Response status.
                    default: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#not-found
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Resource not found.
                  status:
                    type: string
                    description: Response status.
                    default: 404
      summary: Get list
      description: ''
      parameters:
      - name: list_id
        in: path
        description: The ID of the list.
        required: true
        deprecated: false
        schema:
          type: string
        style: simple
        explode: false
        example: 00000000-0000-0000-0000-000000000000
    put:
      operationId: api_lists_list_id_put
      tags:
      - List
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/List-get'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type
                    example: https://emailoctopus.com/api-documentation/v2#bad-request
                  title:
                    type: string
                    description: 'General error title: `An error occurred.`'
                    example: An error occurred.
                  detail:
                    type: string
                    description: 'Error description: `Bad request.`'
                    example: Bad request.
                  status:
                    type: string
                    description: 'Response status: `400`'
                    example: 400
                  errors:
                    type: array
                    description: Validation errors
                    items:
                      type: object
                      properties:
                        detail:
                          type: string
                          description: Error description.
                        parameter:
                          type: string
                          description: Name of the url parameter containing the error.
                      example:
                        detail: This value is not a valid UUID.
                        parameter: list_id
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#unauthorized
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Invalid key.
                  status:
                    type: string
                    description: Response status.
                    default: 401
        '403':
          description: Access denied.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#access-denied
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Access denied.
                  status:
                    type: string
                    description: Response status.
                    default: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#not-found
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Resource not found.
                  status:
                    type: string
                    description: Response status.
                    default: 404
        '422':
          description: Unprocessable content.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type
                    example: https://emailoctopus.com/api-documentation/v2#unprocessable-content
                  title:
                    type: string
                    description: 'General error title: `An error occurred.`'
                    example: An error occurred.
                  detail:
                    type: string
                    description: 'Error description: `Unprocessable content.`'
                    example: Unprocessable content.
                  status:
                    type: string
                    description: 'Response status: `422`'
                    example: 422
                  errors:
                    type: array
                    description: Validation errors
                    items:
                      type: object
                      properties:
                        detail:
                          type: string
                          description: Error description.
                        pointer:
                          type: string
                          description: A JSON Pointer <a href="https://datatracker.ietf.org/doc/html/rfc7807" target="_blank">[RFC 7807]</a> to the value in the request document that caused the error.
                      example:
                        detail: This value must be string type, int provided.
                        pointer: /name
      summary: Update list
      description: ''
      parameters:
      - name: list_id
        in: path
        description: The ID of the list.
        required: true
        deprecated: false
        schema:
          type: string
        style: simple
        explode: false
        example: 00000000-0000-0000-0000-000000000000
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: object
              description: ''
              required:
              - name
              properties:
                name:
                  type: string
                  description: The name of the list.
                  example: New clients list
                  maxLength: 255
        required: false
    delete:
      operationId: api_lists_list_id_delete
      tags:
      - List
      responses:
        '204':
          description: No content.
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type
                    example: https://emailoctopus.com/api-documentation/v2#bad-request
                  title:
                    type: string
                    description: 'General error title: `An error occurred.`'
                    example: An error occurred.
                  detail:
                    type: string
                    description: 'Error description: `Bad request.`'
                    example: Bad request.
                  status:
                    type: string
                    description: 'Response status: `400`'
                    example: 400
                  errors:
                    type: array
                    description: Validation errors
                    items:
                      type: object
                      properties:
                        detail:
                          type: string
                          description: Error description.
                        parameter:
                          type: string
                          description: Name of the url parameter containing the error.
                      example:
                        detail: This value is not a valid UUID.
                        parameter: list_id
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#unauthorized
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Invalid key.
                  status:
                    type: string
                    description: Response status.
                    default: 401
        '403':
          description: Access denied.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#access-denied
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Access denied.
                  status:
                    type: string
                    description: Response status.
                    default: 403
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    description: Error type.
                    enum:
                    - https://emailoctopus.com/api-documentation/v2#not-found
                  title:
                    type: string
                    description: General error title.
                    default: An error occurred.
                  detail:
                    type: string
                    description: Error description.
                    default: Resource not found.
                  status:
                    type: string
                    description: Response status.
                    default: 404
      summary: Delete a list
      description: ''
      parameters:
      - name: list_id
        in: path
        description: The ID of the list.
        required: true
        deprecated: false
        schema:
          type: string
        style: simple
        explode: false
        example: 00000000-0000-0000-0000-000000000000
components:
  schemas:
    PagingResource-get:
      type: object
      properties:
        next:
          $ref: '#/components/schemas/PagingNextResource-get'
    PagingNextResource-get:
      type: object
      properties:
        url:
          type: string
          description: Next page url.
          example: https://api.emailoctopus.com/lists?limit=10&starting_after=WyJiOWYyNjA5OC1kZjcxLTExZWUtOTQ4Zi00Yjc0NTg4MjVjYzAiXQ
        starting_after:
          type: string
          description: Cursor that points to the end of the page.
          example: WyJiOWYyNjA5OC1kZjcxLTExZWUtOTQ4Zi00Yjc0NTg4MjVjYzAiXQ
    List.collection-get:
      type: object
      description: Get a collection of List items.
      properties:
        data:
          type: array
          items:
            title: List
            $ref: '#/components/schemas/List-get'
        paging:
          $ref: '#/components/schemas/PagingResource-get'
    List-get:
      type: object
      properties:
        id:
          type: string
          description: The ID of the list.
          example: 00000000-0000-0000-0000-000000000000
        name:
          type: string
          description: The name of the list.
          example: New clients list
          maxLength: 255
        double_opt_in:
          type: boolean
          description: If double opt-in has been enabled on the list.
          example: false
        fields:
          type: array
          description: List of available fields
          items:
            oneOf:
            - title: Text, number or date field
              description: A field that accepts a single value.
              type: object
              properties:
                label:
                  type: string
                  description: A human readable label for the field.
                  example: What is your hometown?
                tag:
                  type: string
                  description: The ID used to reference the field in your emails.
                  example: Hometown
                type:
                  type: string
                  description: The type of the field.
                  example: text
                  enum:
                  - text
                  - number
                  - date
                fallback:
                  type:
                  - string
                  - null
                  description: A default value for the field, used in campaigns when there is no other value available.
                  example: Unknown
              required:
              - label
              - tag
              - type
            - title: Choice field
              description: A field that accepts a single value from a list of choices.
              type: object
              properties:
                label:
                  type: string
                  description: A human readable label for the field.
                  example: What is your hometown?
                tag:
                  type: string
                  description: The ID used to reference the field in your emails.
                  example: Hometown
                type:
                  type: string
                  description: The type of the field.
                  example: choice_single
                  enum:
                  - choice_single
                  - choice_multiple
                choices:
                  type: array
                  description: An array of choices for the field.
                  items:
                    type: string
                  example:
                  - One
                  - Two
                fallback:
                  type:
                  - string
                  - null
                  description: A default value for the field, used in campaigns when there is no other value available.
                  example: Unknown
              required:
              - label
              - tag
              - type
              - choices
        tags:
          type: array
          description: The summary counts of the list.
          items:
            type: string
            example: welcome
        counts:
          type: array
          description: The summary counts of the list.
          items:
            type: object
            properties:
              pending:
                type: integer
                description: The number of pending contacts in the list.
                example: 0
              subscribed:
                type: integer
                description: The number of subscribed contacts in the list.
                example: 0
              unsubscribed:
                type: integer
                description: The number of unsubscribed contacts in the list.
                example: 0
        created_at:
          type: string
          description: When the list was created, in ISO 8601 format.
          example: '2015-12-01T12:59:37+00:00'
        last_updated_at:
          type: string
          description: When the list was updated, in ISO 8601 format.
          example: '2015-12-01T12:59:37+00:00'
      required:
      - name
  securitySchemes:
    api_key:
      type: http
      description: You can obtain your API key at https://api.emailoctopus.com/developer/api-keys/create
      name: Authorization
      in: header
      scheme: bearer