Optimizely Identifiers API

The Identifiers API from Optimizely — 3 operation(s) for identifiers.

Operations 3

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /schema/identifiers Create a customer identifier for user resolution · Create identifier #
Ask an LLM
“How do I add a new identifier type, like a loyalty number, to Optimizely Data Platform?”
“What naming suffixes are allowed for a new identifier field?”
Tell an agent
Create identifier {name} displayed as {display_name} with {merge_confidence} merge confidence.
Add identifier {name} ({display_name}), merge confidence {merge_confidence}, usable for messaging set to {messaging}.
POST /identifiers Update metadata for an identifier · Update identifier metadata #
Ask an LLM
“Can I update the metadata attached to a customer identifier value?”
“Is there an endpoint to push identifier metadata changes into ODP?”
Tell an agent
Update the metadata for an identifier.
Push new identifier metadata into the data platform.
GET /identifiers/{field_name} Get metadata for an identifier · Get identifier metadata #
Ask an LLM
“What metadata does ODP hold for a specific email address?”
“Can I look up an identifier's metadata by its field name and value?”
Tell an agent
Get metadata for the {field_name} identifier.
Look up metadata for {field_name} value {id}.

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:optimizely-identifiers-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

optimizely-identifiers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Advanced Identifiers API
  description: Advanced
  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: Identifiers
paths:
  /schema/identifiers:
    post:
      tags:
      - Identifiers
      summary: Create identifier
      description: Create an identifier in Optimizely Data Platform (ODP) to use for user resolution.
      operationId: create-identifier
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Identifier'
            examples:
              Example Payload:
                description: Example Payload
                value:
                  name: facebook_messenger_id
                  display_name: Facebook Messenger ID
                  public_read: false
                  merge_confidence: high
                  messaging: true
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentifierCreated'
              example:
                events:
                - name: event_facebook_messenger_id
                  display_name: Event Facebook Messenger ID
                  type: identifier
                customers:
                - name: facebook_messenger_id
                  display_name: Last Seen Facebook Messenger ID
                  type: identifier
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                title: Bad Request
                status: 400
                timestamp: '2018-08-07T13:44:17.659Z'
                detail:
                  invalids:
                  - field: customers.name
                    reason: already used by another object
                  - field: customers.display_name
                    reason: already used by another object
        '403':
          description: Forbidden
          content:
            application/json:
              example: '{"message": "Forbidden"}'
  /identifiers:
    post:
      tags:
      - Identifiers
      summary: Update identifier metadata
      description: Update metadata for an identifier.
      operationId: update-identifier-metadata
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UpdateIdentifier'
            examples:
              Example Payload:
                description: Example Payload
                value:
                - identifier_value: test@optimizely.com
                  identifier_field_name: email
                  metadata:
                    mailbox_provider: google
                    primary_mailbox: true
        required: true
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentifierCreated'
              example: "{\n  \"title\": \"Accepted\",\n  \"status\": 202,\n  \"timestamp\": \"2019-07-30T23:55:00.519Z\"\n}\n"
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example: {}
        '403':
          description: Forbidden
          content:
            application/json:
              example: '{"message": "Forbidden"}'
  /identifiers/{field_name}:
    get:
      tags:
      - Identifiers
      summary: Get identifier metadata
      description: Retrieve metadata for an identifier in Optimizely Data Platform (ODP).
      operationId: get-identifier-metadata
      parameters:
      - name: field_name
        in: path
        required: true
        schema:
          type: string
        description: The field name for the identifier being requested (for example, email).
      - name: id
        in: query
        schema:
          type: string
        description: The identifier value being requested (for example, test@optimizely.com).
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdenfitierMetadata'
              example:
                identifier_value: john@example.com
                identifier_field_name: email
                zaius_id: abcd
                metadata:
                  mailbox_provider: google
                  primary_mailbox: true
                metadata_update_ts: 1556582935
        '403':
          description: Forbidden
          content:
            application/json:
              example: '{"message": "Forbidden"}'
components:
  schemas:
    IdentifierCreated:
      type: object
      properties:
        events:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                example: event_facebook_messenger_id
              display_name:
                type: string
                example: Event Facebook Messenger ID
              type:
                type: string
                example: identifier
        customers:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                example: facebook_messenger_id
              display_name:
                type: string
                example: Last Seen Facebook Messenger ID
              type:
                type: string
                example: identifier
    UpdateIdentifier:
      required:
      - identifier_value
      - identifier_field_name
      type: object
      properties:
        identifier_value:
          type: string
          description: Any valid identifier of this type (for example, test@optimizely.com).
        identifier_field_name:
          type: string
          description: The field name for the identifier you want to update (for example, email).
        metadata:
          type: array
          items:
            type: object
            properties: {}
            description: Object containing the metadata fields you want to update. The metadata fields must already exist on the identifier field.
    IdenfitierMetadata:
      type: object
      properties:
        identifier_value:
          type: string
          example: john@example.com
        identifier_field_name:
          type: string
          example: email
        zaius_id:
          type: string
          example: abcd
        metadata:
          type: object
          properties:
            mailbox_provider:
              type: string
              example: google
            primary_mailbox:
              type: boolean
              example: true
              default: true
        metadata_update_ts:
          type: integer
          example: 1556582935
          default: 0
    Error:
      type: object
      properties:
        title:
          type: string
          example: Bad Request
        status:
          type: integer
          example: 400
          default: 0
        timestamp:
          type: string
          example: '2018-08-07T13:44:17.659Z'
        detail:
          type: object
          properties:
            invalids:
              type: array
              items:
                type: object
                properties:
                  field:
                    type: string
                    example: name
                  reason:
                    type: string
                    example: already used by another object
    Identifier:
      type: object
      required:
      - name
      - display_name
      - merge_confidence
      properties:
        name:
          type: string
          description: 'The field name of the identifier, ending with one of the known suffixes: id, hash, number, token, alias, address, key.'
        display_name:
          type: string
          description: 'The human-readable name, ending with the title case version of the name suffix: ID, Hash, Number, Token, Alias, Address, Key.'
        public_read:
          type: boolean
          description: Enable access with the API public key.
          default: false
        merge_confidence:
          type: string
          description: The level of confidence (`high` or `low`) that this identifier can be used to merge customer profiles together.
        messaging:
          type: boolean
          description: Whether this identifier can be used to message customers in campaigns.
  securitySchemes:
    x-api-key:
      type: apiKey
      name: x-api-key
      in: header
x-readme:
  explorer-enabled: true
  proxy-enabled: true