Iterable Metadata API

Store and retrieve key-value metadata tables for use in personalization and campaign logic.

Operations 11

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

GET /api/metadata List metadata tables · List available tables #
Ask an LLM
“What metadata tables exist in my project?”
“Can I see all the key-value tables I've stored?”
Tell an agent
List my metadata tables.
Show every available metadata table.
DELETE /api/metadata/{table} Delete a metadata table asynchronously · Delete a table #
Ask an LLM
“Is a metadata table deleted immediately or processed later?”
“Can I delete a whole table through /api/metadata?”
Tell an agent destructive · confirm first
Delete metadata table {table} via /api/metadata.
Asynchronously drop table {table}.
GET /api/metadata/{table} List keys in a metadata table with paging · List keys in a table #
Ask an LLM
“Can I page through the keys of a metadata table with a marker?”
“Which keys are stored in a given table under /api/metadata?”
Tell an agent
List keys in metadata table {table}.
Continue listing table {table} keys from marker {nextMarker}.
DELETE /api/metadata/{table}/{key} Delete one metadata key asynchronously · Delete a single metadata key/value #
Ask an LLM
“Can I delete just one key from a metadata table without dropping the table?”
“Does removing a metadata key take effect right away?”
Tell an agent destructive · confirm first
Delete key {key} from metadata table {table}.
Asynchronously remove /api/metadata {table}/{key}.
GET /api/metadata/{table}/{key} Get one metadata key's value · Get the metadata value of a single key #
Ask an LLM
“How do I read the value stored under a key in a metadata table?”
“Can I fetch a single /api/metadata entry by table and key?”
Tell an agent
Get the value of key {key} in table {table}.
Read /api/metadata entry {key} from {table}.
PUT /api/metadata/{table}/{key} Create or replace a metadata value · Create or replace metadata #
Ask an LLM
“Can I overwrite the value of a key in a metadata table?”
“Are metadata writes applied immediately?”
Tell an agent
Set key {key} in table {table} to {value}.
Replace /api/metadata {table}/{key} with {value}.
GET /metadata/{table} Get all keys in a table (simple) · Get metadata table keys #
Ask an LLM
“Is there a plain /metadata endpoint that returns every key in a table?”
“Which basic call lists a metadata table's keys without paging?”
Tell an agent
Get all keys in table {table} from the plain /metadata endpoint.
Dump the keys of metadata table {table} with the simple endpoint.
DELETE /metadata/{table} Delete a metadata table and entries (simple) · Delete a metadata table #
Ask an LLM
“Can I delete a metadata table and all its entries via the plain /metadata path?”
“Which basic call wipes an entire metadata table?”
Tell an agent destructive · confirm first
Delete table {table} and all entries using /metadata.
Wipe metadata table {table} with the simple endpoint.
GET /metadata/{table}/{key} Get a metadata entry (simple) · Get a metadata entry #
Ask an LLM
“Is there a basic /metadata call to read one entry by table and key?”
“Can I fetch a stored entry with the plain metadata path?”
Tell an agent
Get entry {key} from table {table} via the plain /metadata endpoint.
Read metadata {table}/{key} with the simple endpoint.
PUT /metadata/{table}/{key} Create or update a metadata entry (simple) · Create or update a metadata entry #
Ask an LLM
“Can I upsert a metadata entry through the basic /metadata path?”
“Which simple call creates or updates a key's value?”
Tell an agent
Using /metadata, set {table}/{key} to {value}.
Upsert entry {key} in table {table} with {value} via the simple endpoint.
DELETE /metadata/{table}/{key} Delete a metadata entry (simple) · Delete a metadata entry #
Ask an LLM
“Can I delete a single entry through the plain /metadata path?”
“Which basic call removes one key from a table?”
Tell an agent destructive · confirm first
Delete entry {key} from table {table} using /metadata.
Remove metadata {table}/{key} with the simple endpoint.

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/iterable:iterable-metadata-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

iterable-metadata-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Iterable Metadata API
  version: '1.0'
  description: 'Operations tagged metadata across 2 of this provider''s published API definitions: iterable-api-openapi.json, iterable-rest-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.iterable.com/
- url: https://api.iterable.com/api
  description: US Data Center (USDC)
- url: https://api.eu.iterable.com/api
  description: European Data Center (EDC)
tags:
- name: Metadata
paths:
  /api/metadata:
    get:
      description: ''
      operationId: listTables
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListMetadataTablesResponse'
        '401':
          description: Invalid API key
      summary: List available tables
      tags:
      - Metadata
      security:
      - api_key: []
      x-operation-id-source: normalized
      x-operation-id-original: list tables
    servers:
    - url: https://api.iterable.com/
  /api/metadata/{table}:
    delete:
      description: Asynchronous. Deletes the table. 200 response indicates a valid request that will be processed; table may not be deleted immediately. Use GET /api/metadata/{table} to verify completion.
      operationId: delete
      parameters:
      - description: Table name [Alphanumeric, case insensitive]
        in: path
        name: table
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableApiResponse'
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
      summary: Delete a table
      tags:
      - Metadata
      security:
      - api_key: []
    get:
      description: ''
      operationId: list
      parameters:
      - description: Table name [Alphanumeric, case insensitive]
        in: path
        name: table
        required: true
        schema:
          type: string
      - description: next result set id; returned by previous search if more hits exist
        in: query
        name: nextMarker
        required: false
        schema:
          type: string
          default: None
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Listing'
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
      summary: List keys in a table
      tags:
      - Metadata
      security:
      - api_key: []
    servers:
    - url: https://api.iterable.com/
  /api/metadata/{table}/{key}:
    delete:
      description: Asynchronous. Deletes the specified item from the table. 200 response indicates a valid request that will be processed; data may not be deleted immediately. Use GET /api/metadata/{table}/{key} to verify completion.
      operationId: deleteApiMetadataByTableByKey
      parameters:
      - description: Table name [Alphanumeric, case insensitive]
        in: path
        name: table
        required: true
        schema:
          type: string
      - description: Metadata key [Alphanumeric, case sensitive]
        in: path
        name: key
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableApiResponse'
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
      summary: Delete a single metadata key/value
      tags:
      - Metadata
      security:
      - api_key: []
      x-operation-id-source: normalized
      x-operation-id-original: delete
    get:
      description: ''
      operationId: get
      parameters:
      - description: Table name [Alphanumeric, case insensitive]
        in: path
        name: table
        required: true
        schema:
          type: string
      - description: Metadata key [Alphanumeric, case sensitive]
        in: path
        name: key
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataWithProperties'
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
        '404':
          description: No metadata at specified location
      summary: Get the metadata value of a single key
      tags:
      - Metadata
      security:
      - api_key: []
    put:
      description: Asynchronous. Creates or replaces the item associated with the specified key. 200 response indicates a valid request that will be processed; updates may not be made immediately. Use GET /api/metadata/{table}/{key} to verify completion.
      operationId: put
      parameters:
      - description: Table name [Alphanumeric, case insensitive]
        in: path
        name: table
        required: true
        schema:
          type: string
      - description: Metadata key [Alphanumeric, case sensitive]
        in: path
        name: key
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableApiResponse'
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
      summary: Create or replace metadata
      tags:
      - Metadata
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutMetadataRequest'
        description: Metadata properties
        required: true
      security:
      - api_key: []
    servers:
    - url: https://api.iterable.com/
  /metadata/{table}:
    get:
      operationId: getMetadataTable
      summary: Get metadata table keys
      description: Retrieves all keys in a metadata table.
      tags:
      - Metadata
      parameters:
      - name: table
        in: path
        required: true
        description: The name of the metadata table
        schema:
          type: string
      responses:
        '200':
          description: Metadata table keys
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        value:
                          type: object
                          additionalProperties: true
        '401':
          description: Unauthorized
        '404':
          description: Table not found
      security:
      - apiKeyAuth: []
    delete:
      operationId: deleteMetadataTable
      summary: Delete a metadata table
      description: Deletes a metadata table and all its entries.
      tags:
      - Metadata
      parameters:
      - name: table
        in: path
        required: true
        description: The name of the metadata table
        schema:
          type: string
      responses:
        '200':
          description: Metadata table deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableResponse'
        '401':
          description: Unauthorized
      security:
      - apiKeyAuth: []
    servers:
    - url: https://api.iterable.com/api
      description: US Data Center (USDC)
    - url: https://api.eu.iterable.com/api
      description: European Data Center (EDC)
  /metadata/{table}/{key}:
    get:
      operationId: getMetadataEntry
      summary: Get a metadata entry
      description: Retrieves a single metadata entry by table name and key.
      tags:
      - Metadata
      parameters:
      - name: table
        in: path
        required: true
        description: The name of the metadata table
        schema:
          type: string
      - name: key
        in: path
        required: true
        description: The key of the metadata entry
        schema:
          type: string
      responses:
        '200':
          description: Metadata entry
          content:
            application/json:
              schema:
                type: object
                properties:
                  value:
                    type: object
                    additionalProperties: true
        '401':
          description: Unauthorized
        '404':
          description: Entry not found
      security:
      - apiKeyAuth: []
    put:
      operationId: putMetadataEntry
      summary: Create or update a metadata entry
      description: Creates or updates a metadata entry for the specified table and key.
      tags:
      - Metadata
      parameters:
      - name: table
        in: path
        required: true
        description: The name of the metadata table
        schema:
          type: string
      - name: key
        in: path
        required: true
        description: The key of the metadata entry
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - value
              properties:
                value:
                  type: object
                  description: The value to store
                  additionalProperties: true
      responses:
        '200':
          description: Metadata entry saved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      security:
      - apiKeyAuth: []
    delete:
      operationId: deleteMetadataEntry
      summary: Delete a metadata entry
      description: Deletes a metadata entry by table name and key.
      tags:
      - Metadata
      parameters:
      - name: table
        in: path
        required: true
        description: The name of the metadata table
        schema:
          type: string
      - name: key
        in: path
        required: true
        description: The key of the metadata entry
        schema:
          type: string
      responses:
        '200':
          description: Metadata entry deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableResponse'
        '401':
          description: Unauthorized
      security:
      - apiKeyAuth: []
    servers:
    - url: https://api.iterable.com/api
      description: US Data Center (USDC)
    - url: https://api.eu.iterable.com/api
      description: European Data Center (EDC)
components:
  schemas:
    MetadataWithProperties:
      properties:
        key:
          type: string
        lastModified:
          format: int64
          type: integer
        size:
          format: int64
          type: integer
        table:
          type: string
        value:
          type: object
      required:
      - key
      - lastModified
      - size
      - table
      - value
      type: object
    Listing:
      properties:
        nextMarker:
          type: string
        results:
          items:
            $ref: '#/components/schemas/MetadataProperties'
          type: array
      required:
      - results
      type: object
    IterableApiResponse:
      properties:
        code:
          enum:
          - Success
          - BadApiKey
          - BadAuthorizationHeader
          - BadJsonBody
          - BadParams
          - BatchTooLarge
          - DatabaseError
          - EmailAlreadyExists
          - ExternalKeyConflict
          - Forbidden
          - ForbiddenParamsError
          - ForgottenUserError
          - GenericError
          - InvalidEmailAddressError
          - InvalidJwtPayload
          - InvalidUserIdError
          - JwtUserIdentifiersMismatched
          - NotFound
          - QueueEmailError
          - RateLimitExceeded
          - RequestFieldsTypesMismatched
          - Unauthorized
          - UniqueFieldsLimitExceeded
          - UnknownEmailError
          - UnknownUserIdError
          - UserIdAlreadyExists
          type: string
        msg:
          description: Response description
          type: string
        params:
          description: Additional info
          type: object
      required:
      - code
      - msg
      type: object
    PutMetadataRequest:
      properties:
        value:
          description: The JSON metadata value.  Max size is is 30kb.
          type: object
      required:
      - value
      type: object
    MetadataProperties:
      properties:
        key:
          type: string
        lastModified:
          format: int64
          type: integer
        size:
          format: int64
          type: integer
        table:
          type: string
      required:
      - key
      - lastModified
      - size
      - table
      type: object
    ListMetadataTablesResponse:
      properties:
        results:
          items:
            $ref: '#/components/schemas/Table'
          type: array
      required:
      - results
      type: object
    Table:
      properties:
        name:
          type: string
      required:
      - name
      type: object
    IterableResponse:
      type: object
      description: Standard Iterable API response indicating success or failure
      properties:
        msg:
          type: string
          description: Human-readable response message
        code:
          type: string
          description: Response code indicating success or error type
        params:
          type: object
          description: Additional response parameters
          additionalProperties: true
  securitySchemes:
    api_key:
      in: header
      name: Api-Key
      type: apiKey
    apiKeyAuth:
      type: apiKey
      in: header
      name: Api-Key
      description: Iterable API key passed in the Api-Key header. API keys can be created and managed in the Iterable project settings.
externalDocs:
  description: Iterable API Documentation
  url: https://api.iterable.com/api/docs
x-refined-from:
- iterable-api-openapi.json
- iterable-rest-api-openapi.yml