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

---

# Medium Publication Posts API

A publication's ten newest posts by slug or its own domain, with an optional tag filter.

`GET /v1/medium/publications/{slug}/posts` accepts a Medium publication slug such as `netflix-techblog`, a custom domain such as `uxdesign.cc`, or a `domain` query parameter. `data.publication` holds the feed header (`slug`, `name`, `title`, `description`, `id`, `url`, `host`, `isCustomDomain`) and `data.posts` holds up to ten posts.

Add `tag` to keep only posts carrying that tag. With a tag, `data.publication` still holds the publication's own name, description and link. The filter works on Medium-hosted publications; a tag filter on a custom domain is refused rather than guessed. A publication that has moved can return an empty feed through its old slug. If that happens, try the publication's domain.

This list has no cursor and returns its newest ten posts. Use `GET /v1/medium/posts` with a date to discover older post URLs from the daily sitemap. An invented slug returns `lookupStatus: not_found`.

## Request

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

## FAQ

### Should I pass a slug or a domain?

Both work. `netflix-techblog` is a Medium slug; `uxdesign.cc` is a custom domain. You can also keep the path slug and add `domain=uxdesign.cc`, which overrides the slug; `publication.slug` then names the domain you passed.

### Why is the feed empty?

The publication may have moved to another slug or domain. `lookupStatus: found` with no posts is an empty feed; try the domain form or the publication's current slug.

### Does the tag filter work on custom domains?

No. The tag filter is supported on Medium-hosted publications only, so a `tag` with a custom domain is refused. Remove the tag or use the Medium slug.

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