---
title: "Product"
method: GET
path: "/ecommerce/products/{productId}"
---

# Product

`GET /ecommerce/products/{productId}`

## Request

- Base URL: `https://api.service.getjusto.com/v3`
- URL: `https://api.service.getjusto.com/v3/ecommerce/products/{productId}`
- Auth: none declared

Devuelve el producto de la marca autorizada, incluyendo seoTitle, seoDescription, seoImageURL, richContent sanitizado y richContentPosition. Los campos SEO son overrides guardados, no metadatos calculados. Un valor null indica generación automática. menus trae el precio y la disponibilidad en cada menú. Acepta ID Justo o externo.

## Path parameters

- `productId` string, required

## Response `200`

The OpenAPI spec

- object
  - `success` boolean
  - `data` ApiListingProduct: Producto del catálogo.
    - `productId` string: ID Justo del producto.
    - `importId` string: ID de importación del producto.
    - `name` string: Nombre del producto.
    - `internalName` string: Nombre interno del producto.
    - `description` string: Descripción visible del producto.
    - `seoTitle` string, nullable: Título SEO independiente del nombre. Null o texto vacío restaura el título automático.
    - `seoDescription` string, nullable: Metadescripción independiente de la descripción. Null o texto vacío restaura el valor automático.
    - `seoImageURL` string, nullable: URL absoluta http o https sin credenciales, para SEO y enlaces compartidos. Null o texto vacío restaura la imagen automática. No modifica la galería.
    - `richContent` string, nullable: HTML sanitizado, disponible en GET individual y respuesta de PUT. Null elimina el contenido. Admite texto, imágenes, galerías, tablas y acordiones; elimina scripts, estilos y clases.
    - `richContentPosition` 'beforeModifiers' | 'afterModifiers' | 'null', nullable: Posición del contenido respecto a los modificadores. Null usa beforeModifiers.
    - `hasRichContent` boolean: Indica si tiene contenido enriquecido. El listado omite el HTML; consulta el detalle para obtenerlo.
    - `url` string: URL pública del producto.
    - `partialUrl` string: Path público del producto.
    - `categoriesNames` string[]: Nombres de categorías asociadas.
    - `categoriesIds` string[]: IDs de categorías asociadas.
    - `modifiersIds` string[]: IDs de modificadores asociados.
    - `externalId` string: ID externo configurado por la marca.
    - `metadata` object: Metadata del item escrita por API v3.
    - `images` string[]: URLs de imágenes del producto.
    - `menus` object[]: Precio y disponibilidad en cada menú. El cliente ve sólo los del menú que aplica en su pedido; ver GET /ecommerce/prices.
      - `menuId` string: ID Justo del menú (_id en GET /ecommerce/prices).
      - `price` number: Precio base en este menú. Si el item no tiene configuración en este menú, es 0 y available no viene.
      - `discount` number, nullable: Precio con descuento: el precio final rebajado, no un monto ni un porcentaje. null si no tiene. Si en el administrador se guardaron varios descuentos seguidos, es el primero, pero el cliente paga el último.
      - `available` boolean: true si se vende en este menú. Si es false o no viene, no se vende: el item no aparece mientras se use este menú, salvo que tenga un mensaje de no disponible en el administrador; entonces aparece con ese mensaje, pero no se puede comprar.
      - `externalId` string: ID externo del producto en este menú: el de reemplazo si se configuró; si no, el externalId del producto.

## Other responses

- `400`: Errors

## Changes

- **2026-10-31** `4ad06bd631ce`: 1 breaking, 3 warning, 6 info
  - the response property `data/menus/items/discount` became nullable for the status `200`
  - removed the optional property `data/menus/items/basePrice` from the response with the `200` status
  - removed the optional property `data/menus/items/discounts` from the response with the `200` status
  - removed the optional property `data/menus/items/metadata` from the response with the `200` status
  - …6 more
- **2026-07-22** `d9d38def2cf6`: 1 info
  - endpoint added
- **2026-06-01** `6788b092513b`: 1 breaking
  - api path removed without deprecation
- **2026-05-18** `39f0eb0b2640`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getjusto/apis/justo-api/changes/ecommerce/products/:productId/get.md)

---

[API](https://skmtc.dev/getjusto/apis/justo-api.md) - [All operations](https://skmtc.dev/getjusto/apis/justo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getjusto/apis/justo-api/revisions/c810bd8246fd?raw)
