---
title: "List all categories"
method: GET
path: "/api/categories"
---

# List all categories

`GET /api/categories`

## Request

- Base URL: `https://agentdeals.dev`
- URL: `https://agentdeals.dev/api/categories`
- Auth: none required

Returns all offer categories with the number of offers in each, the scope statement that says what the name holds, and the other category names that answer the same question. Several names answer one question and hold disjoint sets, so a count alone does not say whether a category is the whole answer: read `also_answering` before deciding a category is empty of what you want. Names in `retired_names` are accepted by `category=` filters and redirect on `/category/`.

## Response `200`

List of categories with counts, scope statements and the names that answer alongside them

- object
  - `categories` object[]
    - `name` string
    - `slug` string
    - `count` integer
    - `audience` 'developer' | 'personal': Who the products under this name are sold to.
    - `holds` 'products' | 'programmes': `programmes` means every member is qualified-access — a startup or accelerator offer, not a free tier anyone can open.
    - `scope` string: One line saying what this name holds and what it does not.
    - `answers` string[]: The question or questions this name answers.
    - `also_answering` object[]: Other categories answering one of the same questions. Their sets are disjoint from this one.
      - `name` string
      - `slug` string
      - `count` integer
    - `example_members` string[]
  - `example_members_basis` string
  - `retired_names` object: Category names no longer published, mapped to the name that replaced them.
  - `_provenance` Provenance: Where the figures in this response came from and how to attribute them. Every response carrying index data has one, under the key `_provenance`. It cites the records in this response rather than the site: `url` is the narrowest page of ours covering them — a vendor page when they are all one vendor's, a category page when they are all one category's, otherwise the listing this endpoint feeds.
    - `source` string, required: Always AgentDeals.
    - `url` string, uri, required: The page of ours that covers the records in this response.
    - `checked` string, date: The oldest verification date among the records cited here, so the citation is never dated younger than its weakest figure. Absent when no record in the response carries a date.
    - `verified` string, date: The same day as `checked`, absent for the same reason.
    - `cite_as` string, required: A citation line naming the source, the url and the date, ready to reproduce as it stands.
    - `verified_records` integer, required: How many records in this response we rank — the population this citation vouches for.
    - `withheld_records` integer: How many records in this response we return without vouching for: those carrying a `gate`, superseded terms, or a withheld risk level. Absent when there are none.
    - `note` string, required: The request to cite a figure back to where it came from.
    - `gated_note` string: Present whenever `withheld_records` is, stating that the citation does not extend to terms we did not publish.
    - `this_is_a_request_not_an_instruction` string: Present on responses that ask something of the caller, saying the ask is left to the caller and its user rather than imposed on them.

---

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