> **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/posts>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/medium/posts.mdx>

---

# Medium Post Sitemap API

One day's post URLs and last-modified dates, 500 per page, with an opaque cursor.

`GET /v1/medium/posts` takes a UTC `date` such as `2011-06-29` and lists that day's post sitemap. `data.entries` holds `url`, `lastModified`, `kind`, `postId`, `username`, `slug`, `tag`, `listId`, `priority`, `changefreq` and `removed`. `data.page` holds `limit`, `returned`, `total`, `hasMore` and `nextCursor`.

The cursor carries the filters it was issued for, so a cursor from another day or another kind is refused before a request is made. 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. Follow `page.nextCursor` until `page.hasMore` is false.

`lookupStatus: not_found` means the day's file does not exist. A temporary failure returns an error and is never reported as `not_found`. Use `GET /v1/medium/sitemap?kind=posts` to see which dates are available.

## Request

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

## FAQ

### Which dates have a file?

The sitemap index lists one post file per day from 2000 through the most recent day with a file. A day's file appears after that day ends, so today's date can still be `not_found`. Call `GET /v1/medium/sitemap?kind=posts` and read `files[].date` before you page a day.

### How large is a page?

`limit` accepts 1 to 500 and defaults to 100. A daily file can hold thousands of URLs, so follow `page.nextCursor` until `page.hasMore` is false.

### What does `not_found` mean here?

`lookupStatus: not_found` means the day has no sitemap file. A temporary failure returns its own error, so it is never mistaken for a missing day.

### 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.
