Skip to main content
The Platform API currently has two active versions. Build new integrations against the /v3 endpoints — /v3 is the successor to /v2. /v2 is expected to be deprecated within roughly 6 months and /v3 within roughly 9 months, with a v4 API expected in Q4. These are expectations, not committed dates — confirm timelines with your Depict contact before planning a migration deadline.
Listings are category, collection and campaign pages. The Platform API splits a listing page across two calls: a GET for the listing’s metadata (title, breadcrumbs, subcategories, content cards) and a POST for its products.

Limits and behavior

  • Every route exists in two addressing variants: by Depict listing_id (a UUID) or by external_id (the listing’s id in your PIM, CMS or e-commerce platform). Use whichever id system you store.
  • The products response contains no listing metadata — no title, breadcrumbs or content cards. Fetch metadata with the GET routes.
  • Filters, sorting and pagination on the products endpoint work exactly as on search; the same limits apply (cursor limit 1–250, hits_per_page 1–200, no mixing of pagination styles).
  • There is no query field on listing requests. The per-response tracking id is product_listing_request_id (search: search_request_id) and each display carries product_listing_result_id (search: search_result_id).
  • The GET routes carry a 10-second cache header — they are designed to be called on every page load.
  • An unknown listing_id or external_id returns 404.
  • v2’s body-based addressing (query_id — typically the slug — plus type to disambiguate name collisions) does not exist on v3. v3 addresses listings by path parameter, so slug ambiguity cannot occur.
  • Response fields with null values are omitted from the JSON (exclude_none serialization).

The listing object

All listing endpoints return listings in this shape:

Listing metadata

GET /v3/listings/{listing_id} or GET /v3/listings/external_id/{external_id} with query parameters merchant, market, locale (all required) and optional session_id. The response is the listing object plus:

Content cards

Content cards are merchandising tiles (images or videos) placed in the product grid. On the wire the field is named content_blocks. Each element: GET /v3/listings with query parameters merchant, market, locale (all required) and an optional repeatable types parameter to filter by listing_type. The response is a list of listing objects, each extended with a recursive children array of the same shape — the complete listing tree in one call.

Products in a listing

POST /v3/listings/{listing_id}/products or POST /v3/listings/external_id/{external_id}/products with a JSON body: Example request:

Response