Iterable Catalogs API

Manage product catalogs and catalog items used for personalization and recommendation in campaigns.

Operations 17

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/catalogs List catalog names · Get catalog names #
Ask an LLM
“What catalogs exist in my Iterable project?”
“Can I page through catalog names if I have a lot of them?”
Tell an agent
List my catalog names.
Show catalog names, page {page} with {pageSize} per page.
DELETE /api/catalogs/{catalogName} Delete a catalog and its collections · Delete a catalog #
Ask an LLM
“Does deleting a catalog also remove the collections that reference it?”
“Can I remove a catalog through the /api/catalogs endpoint?”
Tell an agent destructive · confirm first
Delete catalog {catalogName} and every collection that references it.
Remove catalog {catalogName} via /api/catalogs.
POST /api/catalogs/{catalogName} Create a new catalog · Create a catalog #
Ask an LLM
“How do I create a catalog for product data?”
“What naming rules apply to a new catalog's name?”
Tell an agent
Create a catalog named {catalogName}.
Set up a new empty catalog called {catalogName}.
GET /api/catalogs/{catalogName}/fieldMappings Get a catalog's field data types · Get field mappings for a catalog #
Ask an LLM
“Which data types are mapped to the fields in my catalog?”
“Can I find catalog fields that don't have a type defined yet?”
Tell an agent
Show the field mappings for catalog {catalogName}.
List undefined fields in catalog {catalogName}.
PUT /api/catalogs/{catalogName}/fieldMappings Set data types for catalog fields · Set a catalog's field mappings (data types) #
Ask an LLM
“Can I change a catalog field's data type after it has been set?”
“Which types can I assign to catalog fields, like date or geo_location?”
Tell an agent
Set field mappings {mappingsUpdates} on catalog {catalogName}.
Define data types for catalog {catalogName} fields as {mappingsUpdates}.
DELETE /api/catalogs/{catalogName}/items Bulk delete catalog items · Bulk delete catalog items #
Ask an LLM
“Can I delete many catalog items at once by their IDs?”
“Is bulk deletion of catalog items processed asynchronously?”
Tell an agent destructive · confirm first
Delete items {itemIds} from catalog {catalogName}.
Bulk remove catalog {catalogName} items {itemIds}.
GET /api/catalogs/{catalogName}/items List catalog items with sorting · Get the catalog items for a catalog #
Ask an LLM
“Can I sort the items in a catalog by a field, ascending or descending?”
“What's the rate limit on listing catalog items under /api/catalogs?”
Tell an agent
List items in catalog {catalogName} ordered by {orderBy}.
Show catalog {catalogName} items page {page}, sorted ascending {sortAscending}.
POST /api/catalogs/{catalogName}/items Bulk create catalog items · Bulk create catalog items #
Ask an LLM
“How many catalog items can I create in one request?”
“Can I bulk upload items and replace only the fields I send?”
Tell an agent
Bulk create items {documents} in catalog {catalogName}.
Upload items {documents} to catalog {catalogName} with replace-uploaded-fields-only set to {replaceUploadedFieldsOnly}.
DELETE /api/catalogs/{catalogName}/items/{itemId} Delete one catalog item asynchronously · Delete a catalog item #
Ask an LLM
“Is a deleted catalog item removed immediately or eventually?”
“Can I delete a single item through the /api/catalogs items path?”
Tell an agent destructive · confirm first
Delete item {itemId} from catalog {catalogName} via /api/catalogs.
Asynchronously remove item {itemId} in catalog {catalogName}.
GET /api/catalogs/{catalogName}/items/{itemId} Get a single catalog item · Get a specific catalog item #
Ask an LLM
“How do I look up one product in a catalog by its item ID?”
“What fields does a single catalog item return?”
Tell an agent
Get item {itemId} from catalog {catalogName}.
Show catalog {catalogName} item {itemId}.
PATCH /api/catalogs/{catalogName}/items/{itemId} Create or partially update a catalog item · Create or update a catalog item #
Ask an LLM
“Can I update just a few fields of a catalog item without replacing it?”
“Will a partial update create the catalog item if it doesn't exist?”
Tell an agent
Update fields {update} on item {itemId} in catalog {catalogName}.
Merge {update} into catalog {catalogName} item {itemId}, creating it if missing.
PUT /api/catalogs/{catalogName}/items/{itemId} Create or replace a catalog item · Create or replace a catalog item #
Ask an LLM
“Can I fully overwrite a catalog item rather than merging fields under /api/catalogs?”
“What characters are allowed in a catalog item ID when replacing it?”
Tell an agent
Replace item {itemId} in catalog {catalogName} with {value}.
Overwrite /api catalog {catalogName} item {itemId} entirely using {value}.
GET /catalogs/{catalogName} Get a catalog's definition · Get a catalog #
Ask an LLM
“Can I fetch a catalog by name with its field definitions and metadata?”
“What metadata is stored on a catalog itself?”
Tell an agent
Get catalog {catalogName} with its field definitions.
Show the metadata for catalog {catalogName}.
DELETE /catalogs/{catalogName} Delete a catalog and all its items · Delete a catalog #
Ask an LLM
“Does deleting a catalog through the plain /catalogs path remove all of its items?”
“What gets wiped when I delete a catalog using the simple endpoint?”
Tell an agent destructive · confirm first
Delete catalog {catalogName} and all its items using /catalogs.
Wipe catalog {catalogName} with the simple delete endpoint.
GET /catalogs/{catalogName}/items List catalog items via the simple endpoint · List items in a catalog #
Ask an LLM
“Can I page through catalog items with the plain /catalogs path?”
“Which basic endpoint just lists catalog items without sorting options?”
Tell an agent
List items in catalog {catalogName} via /catalogs.
Page {page} of catalog {catalogName} items from the simple endpoint.
PUT /catalogs/{catalogName}/items/{itemId} Create or replace a catalog item (simple) · Create or replace a catalog item #
Ask an LLM
“Is there a plain /catalogs endpoint to create or replace an item by ID?”
“Can I upsert a whole catalog item with field values via the basic path?”
Tell an agent
Using /catalogs, create or replace item {itemId} in catalog {catalogName} with {value}.
Put item {itemId} into catalog {catalogName} via the simple endpoint.
DELETE /catalogs/{catalogName}/items/{itemId} Delete a catalog item (simple) · Delete a catalog item #
Ask an LLM
“Can I delete a catalog item by ID through the plain /catalogs path?”
“Which basic endpoint removes one item from a catalog?”
Tell an agent destructive · confirm first
Delete item {itemId} from catalog {catalogName} using /catalogs.
Remove catalog {catalogName} item {itemId} 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-catalogs-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-catalogs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Iterable Catalogs API
  version: '1.0'
  description: 'Operations tagged catalogs 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: Catalogs
paths:
  /api/catalogs:
    get:
      description: 'Get catalog names.


        Rate limit: 100 requests/second, per API key.'
      operationId: listCatalogs
      parameters:
      - description: Page number to list (starting at 1).
        in: query
        name: page
        required: false
        x-example: 1
        schema:
          type: integer
          format: int32
      - description: Number of results to display per page (defaults to 10).
        in: query
        name: pageSize
        required: false
        x-example: 10
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: List of catalogs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCatalogsResponse'
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
      summary: Get catalog names
      tags:
      - Catalogs
      security:
      - api_key: []
    servers:
    - url: https://api.iterable.com/
  /api/catalogs/{catalogName}:
    delete:
      description: Delete the catalog with the specified name. Also deletes all collections that reference the specified catalog.
      operationId: deleteCatalog
      parameters:
      - description: Catalog name [Alphanumeric, dashes, case insensitive, 255 characters max]
        in: path
        name: catalogName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Catalog deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableApiResponse'
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
      summary: Delete a catalog
      tags:
      - Catalogs
      security:
      - api_key: []
    post:
      description: Create a catalog. Each catalog in a project must have a unique name. Catalog names can be no longer than 255 characters and must contain only alphanumeric characters and dashes.
      operationId: createCatalog
      parameters:
      - description: Catalog name [Alphanumeric, dashes, case insensitive, 255 characters max]
        in: path
        name: catalogName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableApiResponse'
        '201':
          description: Catalog created
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
        '500':
          description: Internal server error
      summary: Create a catalog
      tags:
      - Catalogs
      security:
      - api_key: []
    servers:
    - url: https://api.iterable.com/
  /api/catalogs/{catalogName}/fieldMappings:
    get:
      description: Field mappings (field to data types) and undefined fields of a catalog
      operationId: getFieldMappings
      parameters:
      - description: Catalog name [Alphanumeric, dashes, case insensitive, 255 characters max]
        in: path
        name: catalogName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Field mappings for catalog.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogFieldMappingsResponse'
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
        '404':
          description: Catalog not found
      summary: Get field mappings for a catalog
      tags:
      - Catalogs
      security:
      - api_key: []
    put:
      description: 'Set a catalog''s field mappings (data types). After being set, a given field''s data type may not be changed. Valid types: boolean, date, geo_location, long, double, object, and string.'
      operationId: updateFieldTypes
      parameters:
      - description: Catalog name [Alphanumeric, dashes, case insensitive, 255 characters max]
        in: path
        name: catalogName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Catalog field mappings updated
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
      summary: Set a catalog's field mappings (data types)
      tags:
      - Catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogMappingsUpdateRequest'
        description: Catalog Field Types
        required: true
      security:
      - api_key: []
    servers:
    - url: https://api.iterable.com/
  /api/catalogs/{catalogName}/items:
    delete:
      description: Asynchronous. Delete the specified catalog items from the catalog.
      operationId: bulkDeleteCatalogItems
      parameters:
      - description: Catalog name [Alphanumeric, dashes, case insensitive, 255 characters max]
        in: path
        name: catalogName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableApiResponse'
        '202':
          description: Bulk delete catalog items request received.
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
      summary: Bulk delete catalog items
      tags:
      - Catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogBulkDeleteRequest'
        description: Catalog bulk delete request
        required: true
      security:
      - api_key: []
    get:
      description: 'Get the catalog items for a catalog.


        Rate limit: 100 requests/second, per API key.'
      operationId: listCatalogItems
      parameters:
      - description: Catalog name [Alphanumeric, dashes, case insensitive, 255 characters max]
        in: path
        name: catalogName
        required: true
        schema:
          type: string
      - description: Page number to list (starting at 1).
        in: query
        name: page
        required: false
        x-example: 1
        schema:
          type: integer
          format: int32
      - description: Number of results to display per page (defaults to 10).
        in: query
        name: pageSize
        required: false
        x-example: 10
        schema:
          type: integer
          format: int32
      - description: Field by which results should be ordered. To also use the sortAscending parameter, this field must have a defined type.
        in: query
        name: orderBy
        required: false
        x-example: myField
        schema:
          type: string
      - description: Sort results by ascending (Defaults to false).
        in: query
        name: sortAscending
        required: false
        x-example: false
        schema:
          type: boolean
      responses:
        '200':
          description: Items in the catalog that satisfy the request restraints
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCatalogItemsResponse'
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
        '404':
          description: Catalog not found
        '500':
          description: Internal server error
      summary: Get the catalog items for a catalog
      tags:
      - Catalogs
      security:
      - api_key: []
    post:
      description: 'Asynchronous. Create up to 1000 catalog items with a single request. Each of a catalog''s items must have a unique ID that contains only alphanumeric characters and dashes and has a maximum length of 255 characters. If the catalog already contains an item with the same ID as one provided in the request body, the item in the catalog will be completely overwritten, unless replaceUploadedFieldsOnly is set to true. Do not use periods in field names.


        Rate limit: 100 requests/second, per API key.'
      operationId: bulkUpdateCatalogItems
      parameters:
      - description: Catalog name [Alphanumeric, dashes, case insensitive, 255 characters max]
        in: path
        name: catalogName
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableApiResponse'
        '202':
          description: Request to bulk upload items received
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
        '404':
          description: Catalog not found
        '500':
          description: Internal server error
      summary: Bulk create catalog items
      tags:
      - Catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogBulkUploadRequest'
        description: Catalog bulk update request
        required: true
      security:
      - api_key: []
    servers:
    - url: https://api.iterable.com/
  /api/catalogs/{catalogName}/items/{itemId}:
    delete:
      description: Asynchronous. Deletes the specified item from the catalog. Data may not be deleted immediately.
      operationId: deleteCatalogItem
      parameters:
      - description: Catalog name [Alphanumeric, dashes, case insensitive, 255 characters max]
        in: path
        name: catalogName
        required: true
        schema:
          type: string
      - description: Catalog item id [Alphanumeric, dashes, case sensitive, 255 characters max]
        in: path
        name: itemId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableApiResponse'
        '202':
          description: Received request to deleted item. Use GET /api/catalogs/{catalogName}/items/{itemId} to verify completion.
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
      summary: Delete a catalog item
      tags:
      - Catalogs
      security:
      - api_key: []
    get:
      description: Get a specific catalog item from the given catalog.
      operationId: getCatalogItem
      parameters:
      - description: Catalog name [Alphanumeric, dashes, case insensitive, 255 characters max]
        in: path
        name: catalogName
        required: true
        schema:
          type: string
      - description: Catalog item id [Alphanumeric, dashes, case sensitive, 255 characters max]
        in: path
        name: itemId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Catalog Item
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogItemWithProperties'
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
        '404':
          description: No catalog item at specified location
      summary: Get a specific catalog item
      tags:
      - Catalogs
      security:
      - api_key: []
    patch:
      description: Asynchronous. Create or update the specified catalog item in the given catalog. A catalog item's ID must be unique, contain only alphanumeric characters and dashes, and have a maximum length of 255 characters. If the catalog item already exists, its fields will be updated with the values provided in the request body. Previously existing fields not included in the request body will remain as is. Do not use periods in field names.
      operationId: partialUpdateCatalogItem
      parameters:
      - in: path
        name: catalogName
        required: true
        schema:
          type: string
      - in: path
        name: itemId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableApiResponse'
        '202':
          description: Catalog item update request received. Use GET /api/catalogs/{catalogName}/items/{itemId} to verify completion.
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
      summary: Create or update a catalog item
      tags:
      - Catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogUpdateItemRequest'
        description: Catalog item contents
        required: true
      security:
      - api_key: []
    put:
      description: 'Asynchronous. Create or replace the specified catalog item in the given catalog. A catalog item''s ID must be unique, contain only alphanumeric characters and dashes, and have a maximum length of 255 characters. If the catalog item already exists, it will be replaced by the value provided in the request body. Do not use periods in field names.


        Rate limit: 1000 requests/second, per API key.'
      operationId: indexCatalogItem
      parameters:
      - description: Catalog name [Alphanumeric, dashes, case insensitive, 255 characters max]
        in: path
        name: catalogName
        required: true
        schema:
          type: string
      - description: Catalog item id [Alphanumeric, dashes, case sensitive, 255 characters max]
        in: path
        name: itemId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableApiResponse'
        '202':
          description: Catalog item update request received. Use GET /api/catalogs/{catalogName}/items/{itemId} to verify completion.
        '400':
          description: Invalid parameters
        '401':
          description: Invalid API key
        '500':
          description: Internal server error
      summary: Create or replace a catalog item
      tags:
      - Catalogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogIndexItemRequest'
        description: Catalog item value
        required: true
      security:
      - api_key: []
    servers:
    - url: https://api.iterable.com/
  /catalogs/{catalogName}:
    get:
      operationId: getCatalog
      summary: Get a catalog
      description: Retrieves a catalog by name, including its field definitions and metadata.
      tags:
      - Catalogs
      parameters:
      - $ref: '#/components/parameters/catalogNamePath'
      responses:
        '200':
          description: Catalog data
          content:
            application/json:
              schema:
                type: object
                properties:
                  params:
                    type: object
                    properties:
                      catalogName:
                        type: string
                      fieldMappings:
                        type: object
                        additionalProperties: true
        '401':
          description: Unauthorized
        '404':
          description: Catalog not found
      security:
      - apiKeyAuth: []
    delete:
      operationId: deleteCatalogsByCatalogName
      summary: Delete a catalog
      description: Deletes a catalog and all its items from the Iterable project.
      tags:
      - Catalogs
      parameters:
      - $ref: '#/components/parameters/catalogNamePath'
      responses:
        '200':
          description: Catalog deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableResponse'
        '401':
          description: Unauthorized
        '404':
          description: Catalog not found
      security:
      - apiKeyAuth: []
      x-operation-id-source: normalized
      x-operation-id-original: deleteCatalog
    servers:
    - url: https://api.iterable.com/api
      description: US Data Center (USDC)
    - url: https://api.eu.iterable.com/api
      description: European Data Center (EDC)
  /catalogs/{catalogName}/items:
    get:
      operationId: getCatalogsByCatalogNameItems
      summary: List items in a catalog
      description: Retrieves items from a catalog with support for pagination.
      tags:
      - Catalogs
      parameters:
      - $ref: '#/components/parameters/catalogNamePath'
      - name: page
        in: query
        description: Page number for pagination
        schema:
          type: integer
          default: 1
      - name: pageSize
        in: query
        description: Number of items per page
        schema:
          type: integer
          default: 100
      responses:
        '200':
          description: List of catalog items
          content:
            application/json:
              schema:
                type: object
                properties:
                  params:
                    type: object
                    properties:
                      catalogItemsWithProperties:
                        type: array
                        items:
                          type: object
                          additionalProperties: true
        '401':
          description: Unauthorized
        '404':
          description: Catalog not found
      security:
      - apiKeyAuth: []
      x-operation-id-source: normalized
      x-operation-id-original: listCatalogItems
    servers:
    - url: https://api.iterable.com/api
      description: US Data Center (USDC)
    - url: https://api.eu.iterable.com/api
      description: European Data Center (EDC)
  /catalogs/{catalogName}/items/{itemId}:
    put:
      operationId: createOrReplaceCatalogItem
      summary: Create or replace a catalog item
      description: Creates a new catalog item or replaces an existing one with the specified item ID and field values.
      tags:
      - Catalogs
      parameters:
      - $ref: '#/components/parameters/catalogNamePath'
      - name: itemId
        in: path
        required: true
        description: The unique identifier for the catalog item
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                value:
                  type: object
                  description: Field values for the catalog item
                  additionalProperties: true
      responses:
        '200':
          description: Catalog item created or replaced
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      security:
      - apiKeyAuth: []
    delete:
      operationId: deleteCatalogsByCatalogNameItemsByItemId
      summary: Delete a catalog item
      description: Deletes a catalog item by its item ID.
      tags:
      - Catalogs
      parameters:
      - $ref: '#/components/parameters/catalogNamePath'
      - name: itemId
        in: path
        required: true
        description: The unique identifier for the catalog item
        schema:
          type: string
      responses:
        '200':
          description: Catalog item deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IterableResponse'
        '401':
          description: Unauthorized
        '404':
          description: Catalog item not found
      security:
      - apiKeyAuth: []
      x-operation-id-source: normalized
      x-operation-id-original: deleteCatalogItem
    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:
    CatalogBulkUploadRequest:
      properties:
        documents:
          description: Json map of id to values. Max number of pairs in list is 1000. Max size of each json value is is 30kb.
          type: object
        replaceUploadedFieldsOnly:
          description: Whether to replace only the upload fields within each document, not each entire document
          type: boolean
      required:
      - documents
      - replaceUploadedFieldsOnly
      type: object
    CatalogName:
      properties:
        name:
          type: string
      required:
      - name
      type: object
    CatalogIndexItemRequest:
      properties:
        value:
          description: JSON representation of the catalog item. Max size is is 30kb.
          type: object
      required:
      - value
      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
    GetCatalogsResponse:
      properties:
        catalogNames:
          items:
            $ref: '#/components/schemas/CatalogName'
          type: array
        nextPageUrl:
          type: string
        previousPageUrl:
          type: string
        totalCatalogsCount:
          format: int64
          type: integer
      required:
      - catalogNames
      - totalCatalogsCount
      type: object
    CatalogItemWithProperties:
      properties:
        catalogName:
          type: string
        itemId:
          type: string
        lastModified:
          format: date-time
          type: string
        size:
          format: int64
          type: integer
        value:
          $ref: '#/components/schemas/JsObject'
      required:
      - catalogName
      - itemId
      - lastModified
      - size
      - value
      type: object
    CatalogBulkDeleteRequest:
      properties:
        itemIds:
          items:
            type: string
          type: array
      required:
      - itemIds
      type: object
    GetCatalogItemsResponse:
      properties:
        catalogItemsWithProperties:
          items:
            $ref: '#/components/schemas/CatalogItemWithProperties'
          type: array
        nextPageUrl:
          type: string
        previousPageUrl:
          type: string
        totalItemsCount:
          format: int64
          type: integer
      required:
      - catalogItemsWithProperties
      - totalItemsCount
      type: object
    CatalogUpdateItemRequest:
      properties:
        update:
          description: JSON representation of the catalog item fields to update.  Max size is is 30kb.
          type: object
      required:
      - update
      type: object
    CatalogFieldDefinitionSerializedModel:
      properties:
        children:
          items:
            $ref: '#/components/schemas/CatalogFieldDefinitionSerializedModel'
          type: array
        fieldName:
          type: string
        fieldType:
          type: string
      required:
      - fieldName
      - fieldType
      type: object
    JsValue:
      type: object
    JsObject:
      properties:
        underlying:
          additionalProperties:
            $ref: '#/components/schemas/JsValue'
          type: object
      required:
      - underlying
      type: object
    CatalogFieldMappingsResponse:
      properties:
        definedMappings:
          additionalProperties:
            type: string
          type: object
        undefinedFields:
          items:
            type: string
          type: array
      required:
      - definedMappings
      - undefinedFields
      type: object
    CatalogMappingsUpdateRequest:
      properties:
        mappingsUpdates:
          description: mappingsUpdates
          items:
            $ref: '#/components/schemas/CatalogFieldDefinitionSerializedModel'
          type: array
      required:
      - mappingsUpdates
      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
  parameters:
    catalogNamePath:
      name: catalogName
      in: path
      required: true
      description: The name of the catalog
      schema:
        type: string
  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