---
title: "Read footprints live by identifier"
method: GET
path: "/v1/store/footprints"
tags: ["Store"]
---

# Read footprints live by identifier

`GET /v1/store/footprints`

## Request

- Base URL: `https://carbonguru.io`
- URL: `https://carbonguru.io/v1/store/footprints`
- Auth: HTTP bearer

Up to 50 identifiers in one request, sized for one catalog page. Needs an API key: merchant-embed names the merchant by the key, so an OAuth token receives 403 key_required. Unmetered, and a read never triggers an analysis. An identifier we hold nothing for is named in missing; one that two of the merchant's products both claim is a miss too, because an ambiguous identifier is dropped rather than guessed. stale says the live read failed and the cached copy was served. The whole catalog is GET /v1/store/products.

## Query parameters

- `identifier` string[], required

## Headers

- `If-None-Match` string

## Response `200`

The current footprints for these identifiers.

- object
  - `footprints` object, required
  - `missing` string[], required
  - `stale` boolean, required

## Other responses

- `304`: The caller's If-None-Match still matches. No body.
- `401`: No valid credential. Every authentication failure returns this one document.
- `402`: The account's plan does not include this capability. Carries min_tier and upgrade_url.
- `403`: A missing scope, an exhausted analysis allowance, or an object that is not the caller's.
- `404`: No such resource.
- `422`: The request's fields are wrong. errors[] names them.

---

[API](https://skmtc.dev/carbonguru/apis/carbonguru-api.md) · [All operations](https://skmtc.dev/carbonguru/apis/carbonguru-api/llms.txt) · [OpenAPI document](https://skmtc.dev/carbonguru/apis/carbonguru-api/revisions/26dcbe7a8500?raw)
