---
updatedAt: 2026-09-07T11:13:30.000Z
agentTools:
  projectIndex: https://docs.nacelle.com/llms.txt
---

# product content

The `PUT` _**product-content**_ endpoint adds product content entries to an index.

* If an `indexId` field is present, the entries will be added to that index.

* If an `indexId` is not specified the entries will be added to the current active index,
  and all in progress indexes for the specified `sourceId`.

Required fields are `sourceEntryId` and `sourceProductId`.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Ingest API",
    "version": "1.0.0",
    "description": "This is the documentation for the Ingest API."
  },
  "servers": [
    {
      "url": "https://ingest.api.nacelle.com/v1/",
      "description": "Ingest API Development server"
    }
  ],
  "tags": [
    {
      "name": "entries (BETA)",
      "description": "Entry operations"
    }
  ],
  "paths": {
    "/index": {
      "get": {
        "tags": [
          "index"
        ],
        "summary": "Read indexes status",
        "description": "The _**index**_ endpoint allows checking the status of indexes for a given source.\n\nWhen errors occur during index processing, details may be provided via the `errors` field.\n",
        "parameters": [
          {
            "name": "x-nacelle-space-id",
            "in": "header",
            "description": "The unique identifier of the Nacelle space",
            "required": true,
            "schema": {
              "type": "string",
              "example": "00000000-0000-0000-0000-000000000000"
            }
          },
          {
            "name": "x-nacelle-source-id",
            "in": "header",
            "description": "The unique identifier of the source within the space",
            "required": true,
            "schema": {
              "type": "string",
              "example": "00000000-0000-0000-0000-000000000000"
            }
          },
          {
            "name": "x-nacelle-ingest-token",
            "in": "header",
            "description": "The authentication token for Nacelle Ingest",
            "required": true,
            "schema": {
              "type": "string",
              "example": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Index statuses",
            "content": {
              "application/json": {
                "examples": {
                  "IndexStatuses": {
                    "summary": "Index Statuses listed",
                    "value": [
                      {
                        "indexId": "00000000-0000-0000-0000-000000000000",
                        "sourceId": "00000000-0000-0000-0000-000000000000",
                        "status": "index_complete",
                        "numEntriesCreated": 100,
                        "indexVersion": 1,
                        "createdAt": "2023-09-16T00:00:00",
                        "updatedAt": "2023-09-16T00:00:00",
                        "entryTypes": [
                          "PRODUCT",
                          "PRODUCT_CONTENT",
                          "PRODUCT_VARIANT",
                          "PRODUCT_VARIANT_CONTENT",
                          "CONTENT",
                          "COLLECTION",
                          "COLLECTION_CONTENT",
                          "PRICE_BOOK",
                          "PRICING",
                          "CUSTOM_SCHEMA"
                        ],
                        "errors": null
                      }
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "examples": {
                  "NotFoundExample": {
                    "summary": "Not Found",
                    "value": {
                      "reason": "Source not found."
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "examples": {
                  "InternalErrorExample": {
                    "summary": "Internal Error",
                    "value": {
                      "error": "Internal Error",
                      "reason": "An internal error occurred. Please read https://docs.getnacelle.com/ for more information."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/content": {
      "put": {
        "tags": [
          "entries"
        ],
        "summary": "content",
        "description": "The `PUT` _**content**_ endpoint adds content entries to an index.\n\n* If an `indexId` field is present, the entries will be added to that index.\n\n* If an `indexId` is not specified the entries will be added to the current active index,\n  and all in progress indexes for the specified `sourceId`.\n\nRequired fields are `sourceEntryId`.\n",
        "parameters": [
          {
            "$ref": "#/paths/~1index/get/parameters/0"
          },
          {
            "$ref": "#/paths/~1index/get/parameters/1"
          },
          {
            "$ref": "#/paths/~1index/get/parameters/2"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "indexId": {
                    "type": "string",
                    "required": false,
                    "example": "00000000-0000-0000-0000-000000000000"
                  },
                  "entries": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "sourceEntryId"
                      ],
                      "properties": {
                        "sourceEntryId": {
                          "type": "string",
                          "example": "gid://shopify/Product/0000000000000"
                        },
                        "locale": {
                          "type": "string",
                          "example": "en-US"
                        },
                        "title": {
                          "type": "string",
                          "example": "My Content Title"
                        },
                        "published": {
                          "type": "boolean"
                        },
                        "type": {
                          "type": "string",
                          "example": "blog"
                        },
                        "handle": {
                          "type": "string",
                          "example": "contentHandle"
                        },
                        "createdAt": {
                          "type": "string",
                          "format": "date-time (ISO 8601 UTC)",
                          "example": "2023-09-16T00:00:00"
                        },
                        "updatedAt": {
                          "$ref": "#/paths/~1content/put/requestBody/content/application~1json/schema/properties/entries/items/properties/createdAt"
                        },
                        "fields": {
                          "type": "string",
                          "example": "{ \"foo\": \"bar\" }",
                          "description": "A json encoded string of custom ingestion data"
                        },
                        "isTopLevel": {
                          "type": "boolean",
                          "example": true
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "examples": {
                  "IndexCleared": {
                    "summary": "Success",
                    "value": {
                      "message": "CONTENT UPDATE: success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "examples": {
                  "BadRequestNoSourceEntryIdExample": {
                    "summary": "Bad Request (no sourceEntryId)",
                    "value": {
                      "error": "Bad Request",
                      "message": "Bad Request",
                      "errors": [
                        {
                          "sourceEntryId": null,
                          "errors": [
                            {
                              "target": {
                                "locale": "en-US"
                              },
                              "property": "sourceEntryId",
                              "children": [],
                              "constraints": {
                                "maxLength": "sourceEntryId must be shorter than or equal to 128 characters",
                                "isString": "sourceEntryId must be a string"
                              }
                            }
                          ]
                        }
                      ]
                    }
                  },
                  "BadRequestSourceEntryIdTooLongExample": {
                    "summary": "Bad Request (sourceEntryId too long)",
                    "value": {
                      "error": "Bad Request",
                      "message": "Bad Request",
                      "errors": [
                        {
                          "sourceEntryId": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz",
                          "errors": [
                            {
                              "target": {
                                "locale": "en-US",
                                "sourceEntryId": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"
                              },
                              "value": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz",
                              "property": "sourceEntryId",
                              "children": [],
                              "constraints": {
                                "maxLength": "sourceEntryId must be shorter than or equal to 128 characters"
                              }
                            }
                          ]
                        }
                      ]
                    }
                  },
                  "BadRequestSourceEntryIdNotAStringExample": {
                    "summary": "Bad Request (sourceEntryId is not a string)",
                    "value": {
                      "error": "Bad Request",
                      "message": "Bad Request",
                      "errors": [
                        {
                          "sourceEntryId": 12345,
                          "errors": [
                            {
                              "target": {
                                "locale": "en-US",
                                "sourceEntryId": 12345
                              },
                              "value": 12345,
                              "property": "sourceEntryId",
                              "children": [],
                              "constraints": {
                                "maxLength": "sourceEntryId must be shorter than or equal to 128 characters",
                                "isString": "sourceEntryId must be a string"
                              }
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "examples": {
                  "SourceNotFoundExample": {
                    "summary": "Source Not Found",
                    "value": {
                      "message": "Source with id 00000000-0000-0000-0000-000000000000 not found"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "examples": {
                  "IndexNotInProgress": {
                    "summary": "Conflict: index not in progress",
                    "value": {
                      "error": "Conflict",
                      "reason": "The provided index id is invalid. No index in progress was found for the given index id."
                    }
                  },
                  "EntryTypeNotIncludedInIndex": {
                    "summary": "Conflict: entry types",
                    "value": {
                      "error": "Conflict",
                      "reason": "The provided index id can only accept entries of types: CONTENT, PRODUCT"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/paths/~1index/get/responses/500"
          }
        }
      }
    },
    "/pricing": {
      "put": {
        "tags": [
          "entries (BETA)"
        ],
        "summary": "pricing (BETA)",
        "description": "The _**pricing**_ endpoint adds pricings to an index.\n\n* If an `indexId` field is present, the entries will be added to that index.\n\n* If an `indexId` is not specified the entries will be added to the current active index,\n  and all in progress indexes for the specified `sourceId`.\n\n* An `entryTypeSourceIdMap` may be specified if the `sourceVariantId` points to a data connector from a different source, such as Shopify.\n  * The key being `PRODUCT_VARIANT` and the value being the Nacelle source ID for the Shopify data connector found in the dashboard.\n  * See the [**Standalone Price Books with Shopify Guide**](https://docs.nacelle.com/docs/standalone-price-books-shopify) for details.\n\n* An entry may contain `sourceSegmentId`. This will allow multiple versions of a variant pricing for different segments or customer groups.\n  * This should NOT be used by default, because pricings will not be queryable without a customer auth token pointing towards the given `sourceSegmentId`.\n  * See the [**Standalone Price Books for B2B Guide**](https://docs.nacelle.com/docs/standalone-price-books-b2b) for details.\n\nRequired fields are `sourceEntryId`, `sourcePriceBookId`, and `sourceVariantId`.\n",
        "parameters": [
          {
            "$ref": "#/paths/~1index/get/parameters/0"
          },
          {
            "$ref": "#/paths/~1index/get/parameters/1"
          },
          {
            "$ref": "#/paths/~1index/get/parameters/2"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "indexId": {
                    "type": "string",
                    "required": false,
                    "example": "00000000-0000-0000-0000-000000000000"
                  },
                  "entryTypeSourceIdMap": {
                    "required": false,
                    "type": "object",
                    "properties": {
                      "PRODUCT_VARIANT": {
                        "type": "string",
                        "required": false,
                        "example": "00000000-0000-0000-0000-000000000000"
                      }
                    }
                  },
                  "entries": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "sourceEntryId",
                        "sourcePriceBookId",
                        "sourceVariantId"
                      ],
                      "properties": {
                        "sourceEntryId": {
                          "type": "string",
                          "example": "3858f62230ac3c915f300c664312c63f"
                        },
                        "sourcePriceBookId": {
                          "type": "string",
                          "example": "2855f62230ac3c915f300c664312c62g"
                        },
                        "sourceVariantId": {
                          "type": "string",
                          "example": "gid://shopify/Variant/0000000000000"
                        },
                        "sourceSegmentId": {
                          "type": "string",
                          "example": "vip-members"
                        },
                        "createdAt": {
                          "$ref": "#/paths/~1content/put/requestBody/content/application~1json/schema/properties/entries/items/properties/createdAt"
                        },
                        "updatedAt": {
                          "$ref": "#/paths/~1content/put/requestBody/content/application~1json/schema/properties/entries/items/properties/createdAt"
                        },
                        "metafields": {
                          "type": "array",
                          "example": [
                            {
                              "id": "metafieldId",
                              "namespace": "metafieldNamespace",
                              "key": "metafieldKey",
                              "value": "metafieldValue"
                            }
                          ],
                          "required": [
                            "key",
                            "value"
                          ],
                          "items": {
                            "type": "object",
                            "required": [
                              "key",
                              "value"
                            ],
                            "properties": {
                              "key": {
                                "type": "string"
                              },
                              "value": {
                                "type": "string"
                              },
                              "id": {
                                "type": "string"
                              },
                              "namespace": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "price": {
                          "$ref": "#/paths/~1pricing/put/requestBody/content/application~1json/schema/properties/entries/items/properties/msrp"
                        },
                        "shipping": {
                          "$ref": "#/paths/~1pricing/put/requestBody/content/application~1json/schema/properties/entries/items/properties/msrp"
                        },
                        "taxValue": {
                          "$ref": "#/paths/~1pricing/put/requestBody/content/application~1json/schema/properties/entries/items/properties/msrp"
                        },
                        "strikethroughPrice": {
                          "$ref": "#/paths/~1pricing/put/requestBody/content/application~1json/schema/properties/entries/items/properties/msrp"
                        },
                        "sourceCountryCode": {
                          "type": "string",
                          "example": "US",
                          "minLength": 2,
                          "maxLength": 2
                        },
                        "compareAtPrice": {
                          "$ref": "#/paths/~1pricing/put/requestBody/content/application~1json/schema/properties/entries/items/properties/msrp"
                        },
                        "msrp": {
                          "type": "object",
                          "required": [
                            "amount",
                            "currencyCode"
                          ],
                          "properties": {
                            "amount": {
                              "type": "integer",
                              "example": 12099
                            },
                            "currencyCode": {
                              "type": "string",
                              "example": "USD"
                            },
                            "precisionDigits": {
                              "type": "integer",
                              "example": 2
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "examples": {
                  "Success": {
                    "summary": "Success",
                    "value": {
                      "message": "pricing UPDATE: success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/paths/~1content/put/responses/400"
          },
          "404": {
            "$ref": "#/paths/~1content/put/responses/404"
          },
          "500": {
            "$ref": "#/paths/~1index/get/responses/500"
          }
        }
      }
    },
    "/product-content": {
      "put": {
        "tags": [
          "entries"
        ],
        "summary": "product content",
        "description": "The `PUT` _**product-content**_ endpoint adds product content entries to an index.\n\n* If an `indexId` field is present, the entries will be added to that index.\n\n* If an `indexId` is not specified the entries will be added to the current active index,\n  and all in progress indexes for the specified `sourceId`.\n\nRequired fields are `sourceEntryId` and `sourceProductId`.\n",
        "parameters": [
          {
            "$ref": "#/paths/~1index/get/parameters/0"
          },
          {
            "$ref": "#/paths/~1index/get/parameters/1"
          },
          {
            "$ref": "#/paths/~1index/get/parameters/2"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "indexId": {
                    "type": "string",
                    "required": false,
                    "example": "00000000-0000-0000-0000-000000000000"
                  },
                  "entries": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "sourceEntryId",
                        "sourceProductId"
                      ],
                      "properties": {
                        "sourceEntryId": {
                          "type": "string",
                          "example": "3858f62230ac3c915f300c664312c63f"
                        },
                        "locale": {
                          "type": "string",
                          "example": "en-US"
                        },
                        "sourceProductId": {
                          "type": "string",
                          "example": "gid://shopify/Product/0000000000000"
                        },
                        "published": {
                          "type": "boolean"
                        },
                        "handle": {
                          "type": "string",
                          "example": "contentHandle"
                        },
                        "createdAt": {
                          "$ref": "#/paths/~1content/put/requestBody/content/application~1json/schema/properties/entries/items/properties/createdAt"
                        },
                        "updatedAt": {
                          "$ref": "#/paths/~1content/put/requestBody/content/application~1json/schema/properties/entries/items/properties/createdAt"
                        },
                        "title": {
                          "type": "string",
                          "example": "My Content Title"
                        },
                        "description": {
                          "type": "string",
                          "example": "My Content Description"
                        },
                        "options": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "example": "OptionName"
                            },
                            "values": {
                              "type": "array",
                              "example": [
                                "option value"
                              ]
                            }
                          }
                        },
                        "featuredMedia": {
                          "type": "object",
                          "required": [
                            "type",
                            "src"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "mediaId"
                            },
                            "type": {
                              "type": "string",
                              "example": "IMAGE"
                            },
                            "src": {
                              "type": "string",
                              "example": "https://my-cdn.com/myImage.png"
                            },
                            "thumbnailSrc": {
                              "type": "string",
                              "example": "https://my-cdn.com/myImageThumbnail.png"
                            },
                            "altText": {
                              "type": "string",
                              "example": "Alt text for my media"
                            },
                            "mimeType": {
                              "type": "string",
                              "example": "image/png"
                            },
                            "featured": {
                              "type": "boolean"
                            }
                          }
                        },
                        "media": {
                          "type": "array",
                          "items": {
                            "$ref": "#/paths/~1product-content/put/requestBody/content/application~1json/schema/properties/entries/items/properties/featuredMedia"
                          }
                        },
                        "fields": {
                          "$ref": "#/paths/~1content/put/requestBody/content/application~1json/schema/properties/entries/items/properties/fields"
                        },
                        "seo": {
                          "type": "object",
                          "properties": {
                            "title": {
                              "type": "string",
                              "example": "SEO field title"
                            },
                            "description": {
                              "type": "string",
                              "example": "SEO field description"
                            }
                          }
                        },
                        "metafields": {
                          "$ref": "#/paths/~1pricing/put/requestBody/content/application~1json/schema/properties/entries/items/properties/metafields"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "examples": {
                  "IndexCleared": {
                    "summary": "Success",
                    "value": {
                      "message": "PRODUCT_CONTENT UPDATE: success"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/paths/~1content/put/responses/400"
          },
          "404": {
            "$ref": "#/paths/~1content/put/responses/404"
          },
          "500": {
            "$ref": "#/paths/~1index/get/responses/500"
          }
        }
      }
    }
  },
  "x-readme": {
    "explorer-enabled": true,
    "proxy-enabled": true
  }
}
```