> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/medium/discover-kind>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/medium/discover-kind.mdx>

---

# Medium Entity Sitemap API

Users, publications, tags, lists and removed records, one day at a time, with ids parsed from each URL.

`GET /v1/medium/discover/{kind}` lists an entity sitemap for one UTC day. `kind` is one of `users`, `publications`, `tags`, `lists`, `catalogs`, `topics`, `removed-posts` or `removed-users`; `date` is required. `data.entries` holds the same sitemap fields as the post route, with the id that fits the kind filled in: `username` for users and lists, `slug` for publications, `tag` for tags, and `postId` plus the author handle or publication slug for removed posts. `removed` is true for the removed lists. `catalogs` is the list-catalog sitemap, with list URLs that may not appear in `lists`.

`data.page` carries `limit`, `returned`, `total`, `hasMore` and `nextCursor`. The cursor is valid only for the same filters, and a cursor from another day or kind is refused. Each page is its own request. A cursor past the last row returns an empty page with `page.hasMore: false`. Set `limit` from 1 to 500; the default is 100.

A missing day is `lookupStatus: not_found` with `entries: []`. A temporary failure returns an error, never `not_found`.

## Request

- **Endpoint:** `GET /v1/medium/discover/{kind}`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by kind and day
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/medium/discover/kind/get)
- **Platform page:** [/platforms/medium](https://www.socialfetch.dev/platforms/medium)

## FAQ

### Which kinds can I request?

`users`, `publications`, `tags`, `lists`, `catalogs`, `topics`, `removed-posts` and `removed-users`. Use the sitemap index with the matching kind to see the days that have a file.

### How do I know which id field is filled?

`kind` on each entry says what it is. `username` is set for users, lists and catalogs and for a post URL that names an author; `slug` for publications and for a post URL that names a publication; `tag` for tags; `postId` for posts and removed posts. `removed` is true for both removed lists. Other id fields are null.

### What is a removed-user or removed-post list?

Those files list URLs that no longer resolve. `removed` is true and the parsed id says which record was removed, so you can retire rows you stored earlier.

### How many credits does it cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth. Each paginated page is a separate billed request.
