![](https://rewalto.com/brand/neo/assets/sample-hero-light.svg)![](https://rewalto.com/brand/neo/assets/sample-hero-dark.svg)

DEVELOPER DOCS / CONTRACT 0.101.0

# Discover the data catalogue

Public catalogue search, status, fields, coverage and freshness.

Get started with your AI agent.Copy agent prompt

Search API documentation

Search all ten API documentation guides

[Documentation overview](https://rewalto.com/developers/docs)[Make your first request](https://rewalto.com/developers/docs/quickstart)[Authentication and organisations](https://rewalto.com/developers/docs/authentication)[Create and manage API keys](https://rewalto.com/developers/docs/api-keys)[Read commerce data](https://rewalto.com/developers/docs/data)[Balances, usage and receipts](https://rewalto.com/developers/docs/credits)[Review and approve a quote](https://rewalto.com/developers/docs/quotes)[Refunds by receipt](https://rewalto.com/developers/docs/refunds)[Errors and safe retries](https://rewalto.com/developers/docs/errors)[Use the TypeScript client](https://rewalto.com/developers/docs/client)[API, CLI and MCP (preview)](https://rewalto.com/developers/docs/cli-mcp)[Discover the data catalogue](https://rewalto.com/developers/docs/catalogue)[Check held data and request a missing type](https://rewalto.com/developers/docs/intake)[Dataset snapshots and exports](https://rewalto.com/developers/docs/dataset-purchases)[Download OpenAPI JSON](https://rewalto.com/developers/openapi.json)

Contract snapshot 0.101.0 · Deployment and client release availability follow the integration note for your environment.

## Start without credentials

Catalogue reads are public. Preserve entry kinds, keep/live modes, status notes, coverage basis, freshness and the response as-of date. Planned and preview entries cannot be assumed runnable.

## Rates and free tools

Show published rates with credits, perUnits, unitLabel and cardVersion from pricing. A tool_free entry has no displayed price. Missing prices do not mean zero cost.

GET

## `/v1/catalogue/categories`

### List catalogue categories

Every catalogue category in page order, with how many cards and entries it has and how many entries are live, in preview, planned or degraded. Public and free.

Response status codes

| Status | Meaning |
| --- | --- |
| 200 | Success |
| 429 | Error. The `error.code` is one of: - `rate_limited`: retry advice `after_reset` |
| 500 | Error. The `error.code` is one of: - `internal`: retry advice `bounded` |
| 503 | Error. The `error.code` is one of: - `unavailable`: retry advice `bounded` |

Full response fields and reusable schemas are in the downloadable OpenAPI contract.

GET

## `/v1/catalogue/products`

### List catalogue cards

Data-product cards: what you get, entry count, "from N credits / unit" (or quote first, free tool, not available yet), coverage, freshness, keep/live badges and status. Filter by category, text and status. Public and free.

Parameters

```
[
  {
    "name": "category",
    "in": "query",
    "required": false,
    "schema": {
      "type": "string",
      "title": "Category",
      "examples": [
        "quick_commerce"
      ],
      "pattern": "^[a-z][a-z0-9_]{1,63}$"
    },
    "description": "Only this category."
  },
  {
    "name": "q",
    "in": "query",
    "required": false,
    "schema": {
      "type": "string",
      "title": "Query",
      "examples": [
        "price"
      ],
      "minLength": 1,
      "maxLength": 200
    },
    "description": "Only cards whose name, summary, data types or sources contain this text."
  },
  {
    "name": "status",
    "in": "query",
    "required": false,
    "schema": {
      "type": "string",
      "title": "Status",
      "examples": [
        "live"
      ],
      "pattern": "^(live|preview|planned|degraded)$"
    },
    "description": "Only cards with this status: live, preview, planned or degraded."
  }
]
```

Response status codes

| Status | Meaning |
| --- | --- |
| 200 | Success |
| 400 | Error. The `error.code` is one of: - `invalid_request`: retry advice `fix_request` |
| 429 | Error. The `error.code` is one of: - `rate_limited`: retry advice `after_reset` |
| 500 | Error. The `error.code` is one of: - `internal`: retry advice `bounded` |
| 503 | Error. The `error.code` is one of: - `unavailable`: retry advice `bounded` |

Full response fields and reusable schemas are in the downloadable OpenAPI contract.

GET

## `/v1/catalogue/search`

### Search the catalogue

Search names, data types, sources and field names. A pasted product link or retailer product id also gets an intake answer: whether Rewalto already holds it, the same answer as POST /v1/catalogue/intake. Public and free.

Parameters

```
[
  {
    "name": "q",
    "in": "query",
    "required": true,
    "schema": {
      "type": "string",
      "title": "Query",
      "examples": [
        "zepto price"
      ],
      "minLength": 1,
      "maxLength": 500
    },
    "description": "What to look for."
  }
]
```

Response status codes

| Status | Meaning |
| --- | --- |
| 200 | Success |
| 400 | Error. The `error.code` is one of: - `invalid_request`: retry advice `fix_request` |
| 429 | Error. The `error.code` is one of: - `rate_limited`: retry advice `after_reset` |
| 500 | Error. The `error.code` is one of: - `internal`: retry advice `bounded` |
| 503 | Error. The `error.code` is one of: - `unavailable`: retry advice `bounded` |

Full response fields and reusable schemas are in the downloadable OpenAPI contract.

GET

## `/v1/catalogue/entries/{id}`

### Get a catalogue entry

One dataset, recipe, workflow or tool in full: inputs and outputs (JSON Schema), sample rows, data dictionary, coverage table with holes, freshness, rate rows, rights, versions and, for a workflow, the recipes and datasets it uses. Public and free.

Parameters

```
[
  {
    "name": "id",
    "in": "path",
    "required": true,
    "schema": {
      "type": "string",
      "title": "Id",
      "description": "The entry id.",
      "examples": [
        "qc_price_history"
      ],
      "pattern": "^[a-z][a-z0-9_]{1,63}$"
    }
  }
]
```

Response status codes

| Status | Meaning |
| --- | --- |
| 200 | Success |
| 400 | Error. The `error.code` is one of: - `invalid_request`: retry advice `fix_request` |
| 404 | Error. The `error.code` is one of: - `not_found`: retry advice `fix_request` |
| 429 | Error. The `error.code` is one of: - `rate_limited`: retry advice `after_reset` |
| 500 | Error. The `error.code` is one of: - `internal`: retry advice `bounded` |
| 503 | Error. The `error.code` is one of: - `unavailable`: retry advice `bounded` |

Full response fields and reusable schemas are in the downloadable OpenAPI contract.

GET

## `/v1/catalogue/entries/{id}/coverage-grid`

### Get an entry's coverage grid

Coverage per pin code and IST day for every retailer the entry draws on, for the last `days` days (default 7, at most 31): readings per cell, holes (an expected pin with no readings) and days not computed (unknown, never shown as holes). Rows are pin codes; city is null until a pin-to-city map exists. Read from the hourly summary, never from the data itself. Public and free.

Parameters

```
[
  {
    "name": "id",
    "in": "path",
    "required": true,
    "schema": {
      "type": "string",
      "title": "Id",
      "description": "The entry id.",
      "examples": [
        "qc_price_history"
      ],
      "pattern": "^[a-z][a-z0-9_]{1,63}$"
    }
  },
  {
    "name": "days",
    "in": "query",
    "required": false,
    "schema": {
      "type": "string",
      "title": "Days",
      "examples": [
        "7"
      ],
      "pattern": "^([1-9]|[12][0-9]|3[01])$"
    },
    "description": "IST days, ending today: 1 to 31. Default 7."
  }
]
```

Response status codes

| Status | Meaning |
| --- | --- |
| 200 | Success |
| 400 | Error. The `error.code` is one of: - `invalid_request`: retry advice `fix_request` |
| 404 | Error. The `error.code` is one of: - `not_found`: retry advice `fix_request` |
| 429 | Error. The `error.code` is one of: - `rate_limited`: retry advice `after_reset` |
| 500 | Error. The `error.code` is one of: - `internal`: retry advice `bounded` |
| 503 | Error. The `error.code` is one of: - `unavailable`: retry advice `bounded` |

Full response fields and reusable schemas are in the downloadable OpenAPI contract.

[All API documentation](https://rewalto.com/developers/docs)[Read OpenAPI contract](https://rewalto.com/developers/openapi.json)

---

Canonical page: https://rewalto.com/developers/docs/catalogue
Last content change: 2026-10-26
