Optimizely Lists API

The Lists API from Optimizely — 2 operation(s) for lists.

Operations 4

GET /lists/subscriptions Get Subscription Status #
POST /lists/subscriptions Subscribe/Unsubscribe #
GET /lists Get Lists #
POST /lists Create 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/optimizely-lists-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

optimizely-lists-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lists API
  description: Lists
  version: v3
servers:
- url: https://api.us1.odp.optimizely.com/v3
  description: United States
- url: https://api.eu1.odp.optimizely.com/v3
  description: Europe
- url: https://api.au1.odp.optimizely.com/v3
  description: Asia-Pacific
security:
- x-api-key: []
tags:
- name: Lists
paths:
  /lists/subscriptions:
    get:
      tags:
      - Lists
      summary: Get Subscription Status
      description: Get the subscription status of a customer identifier to an Optimizely Data Platform (ODP) list.
      operationId: get-subscription-status
      parameters:
      - name: identifiers
        in: query
        description: The identifier type, for example "email".
        required: true
        style: form
        explode: true
        schema:
          type: object
          additionalProperties:
            type: string
        examples:
          Email Identifier:
            description: Email Identifier
            value:
              email: customer@email.com
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                example: '{ "customer": { "email": "sample@test.com" }, "opted_in": true, "explicit_opt_in": true, "subscriptions": [ { "name": "True List Name", "list_id": "sample_list", "subscribed": true, "ts_status_updated": 1583868571 } ] }'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                example: '{"title":"Bad Request","status":400,"timestamp":"2018-09-10T21:07:10-05:00","detail":{"invalids":[{"field":"delimiter","reason":"Unrecognized delimiter, valid options are comma, tab or pipe"}]}}'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                example: '{  "message": "Forbidden"}'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                example: '{ "title": "Not Found", "status": 404, "timestamp": "2023-07-10T21:07:10-05:00", "detail": { "message": "Customer with email sample@test.com was not found" } }'
    post:
      tags:
      - Lists
      summary: Subscribe/Unsubscribe
      description: Subscribe or unsubscribe a customer identifier to or from an Optimizely Data Platform (ODP) list.
      operationId: subscribeunsubscribe
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Subscribe'
            examples:
              Example Payload:
                description: Example Payload
                value:
                  list_id: sample_list
                  email: sample@test.com
                  subscribed: false
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                example: '{ "updates": [ { "list_id": "sample_list", "email": "sample@test.com", "subscribed": true } ] }'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                example: '{"title":"Bad Request","status":400,"timestamp":"2018-09-10T21:07:10-05:00","detail":{"invalids":[{"field":"delimiter","reason":"Unrecognized delimiter, valid options are comma, tab or pipe"}]}}'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                example: '{  "message": "Forbidden"}'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                example: '{"title":"Bad Request","status":404,"timestamp":"2018-09-10T21:07:10-05:00","detail":{"message":"Not found description"}}'
  /lists:
    get:
      tags:
      - Lists
      summary: Get Lists
      description: Get all lists associated with an Optimizely Data Platform (ODP) account.
      operationId: get-lists
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                example: '{ "lists": [ { "name": "Example List", "created_at": "2018-09-10T21:07:10+00:00", "list_id": "example_list" }, { "name": "Example List 2", "created_at": "2018-10-15T13:43:46+00:00", "list_id": "example_list_2" } ] }'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                example: '{  "message": "Forbidden"}'
    post:
      tags:
      - Lists
      summary: Create List
      description: Create a new list within an Optimizely Data Platform (ODP) account.
      operationId: create-list
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateList'
            examples:
              Example Payload:
                description: Example Payload
                value:
                  name: My List
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                example: '{ "updates": [ { "list_id": "sample_list", "email": "sample@test.com", "subscribed": true } ] }'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                example: '{"title":"Bad Request","status":400,"timestamp":"2018-09-10T21:07:10-05:00","detail":{"invalids":[{"field":"delimiter","reason":"Unrecognized delimiter, valid options are comma, tab or pipe"}]}}'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                example: '{  "message": "Forbidden"}'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                example: '{"title":"Bad Request","status":404,"timestamp":"2018-09-10T21:07:10-05:00","detail":{"message":"Not found description"}}'
components:
  schemas:
    CreateList:
      required:
      - name
      type: object
      properties:
        name:
          type: string
          description: The name of the list to create.
          example: My List
    Subscribe:
      required:
      - identifer
      - list_id
      type: object
      properties:
        subscribed:
          type: boolean
          description: whether or not the messaging identifier is subscribed to the list
          example: false
        list_id:
          type: string
          description: the name of the list
          example: sample_list
      additionalProperties:
        type: string
        description: the messaging identifier to act upon (for example. email). Required.
        example:
          email: sample@test.com
  securitySchemes:
    x-api-key:
      type: apiKey
      name: x-api-key
      in: header
x-readme:
  explorer-enabled: true
  proxy-enabled: true