# Retrieve PDP scores by GTIN

`GET /v1/pdps/gtin/{gtin}`

Returns the current scores and processing state for a PDP submitted
via [Submit a PDP by GTIN](/api/product-details/upsertPdpByGtin).
Poll until `status` moves from `processing` to `scored`.

During a rescore the previous scores remain visible alongside
`status: processing` and the prior `scored_at` timestamp, so clients
can keep showing the last known result while a new one is computed.

## Responses

### 200 — PDP scores

**application/json**

- **object** — PDP scores and processing status. When `status` is `"processing"` or
`"error"`, score fields may be absent or reflect the previous scored
state (if any). When `status` is `"scored"`, all fields are populated
and reflect the most recent scoring run.

  - `gtin` (string, required)
  - `external_id` (any) — Partner-supplied identifier echoed back from the PUT payload.
  - `pdp_id` (string, required)
  - `status` (enum: "processing" | "scored" | "error", required)
  - `name` (any)
  - `category` (any) — Human-readable category name.
  - `pdp_score` (any) — Aggregate listing score (0–100).
  - `listing_score_at_ingest` (any) — The listing score captured when the PDP was first scored (baseline).
  - `score_change` (any) — Change in listing score since ingest (`pdp_score` minus
`listing_score_at_ingest`).

  - `conversion_ready` (any) — Whether the listing score meets the conversion-readiness bar. `null`
until scored.

  - `carousel_score` (any) — Average vizit_score across the carousel images.
  - `hero` (any)
  - `carousel_images` (array<object>)
    - items:
      - **object**
        - `image_id` (string, required)
        - `image_url` (any) — The submitted source URL, echoed back. `null` for images created
before this field existed or via non-Public-API paths.

        - `position` (integer, required) — 1-based position within the carousel
        - `vizit_score` (any)
        - `conversion_ready` (any) — Whether the image's vizit_score meets the conversion-readiness bar.
`null` until scored.

        - `classification` (any)
  - `asset_mix` (any)
  - `scored_at` (any)

### 401 — Missing or invalid Bearer token

### 404 — PDP not found for this GTIN in the caller's organization

**application/json**

- **object** — Standardized error format for all `/v1/*` endpoints. `error_code` is a
stable SCREAMING_SNAKE_CASE identifier clients can switch on.

  - `detail` (string) — Human-readable error message
  - `status_code` (integer) — HTTP status code
  - `error_code` (string) — Stable machine-readable error code
  - `request_id` (any) — Request identifier for correlation
  - `extra` (any) — Endpoint-specific additional context. For example,
IMAGE_DOWNLOAD_FAILED populates extra.failed_urls with per-URL
failure reasons so clients can triage bulk submissions.

  - `timestamp` (string)
