All platforms6 Medium endpoints

Medium API. Feeds and sitemaps as JSON.

The newest ten posts by tag, author or publication, and the sitemap tree for backfills and discovery.

No credit card requiredRead the API docs
  • Tag and author feeds
  • Sitemap discovery
  • 1 to 2 credits per request
  • Failed requests aren't charged
99.8% uptime#3 Product of the Day3,200+ developers

Teams running monitoring, research, and enrichment pipelines

Medium data as JSON. You build the product.

Live Medium data in one response shape, with platform changes handled for you.

Medium, plus every other platform

One key and one response envelope for Medium and 56 more platforms.

Pricing you can reason about

One request, one credit. Know how far your balance will go before you run your next batch.

Live data on every request

Fetch public data when you ask for it.

Nothing to maintain

We handle platform changes and breakages.

Built for production jobs

Run concurrent workloads with explicit statuses and request IDs.

Regular jobs. Better rates.

Running lookups every month? Get lower per-credit rates with a monthly plan. For occasional projects, choose pay as you go.

Never expires
Use cases

What teams build with Medium data

Monitoring, enrichment, research and content workflows on Medium data, on the same API as every other platform.

What you can build

Follow tags and authors

Read the newest posts by tag, author or publication.

Backfill posts

Walk the daily sitemaps to list post URLs by date.

How it works

Your first request in three steps.

Use TypeScript or your automation tool of choice.

Sources

+ 51 more platforms

One request

Social Fetch API

GET/v1/tiktok/profiles/charlidamelio

x-api-key: sk_live_••••••••

1 request · 1 credit

Same JSON shape

response.json200 OK
{
  "data": {
    "lookupStatus": "found",
    "profile": {
      "platform": "tiktok",
      "handle": "charlidamelio",
      "displayName": "charli d’amelio",
      "verified": true
    },
    "metrics": {
      "followers": 160263648
    }
  }
}
  1. Step 1

    Create your free account

    Get an API key with 100 requests included.

  2. Step 2

    Choose an endpoint

    Pass a username, URL, keyword, or post ID.

  3. Step 3

    Get clean JSON

    Use the response immediately or send it into your pipeline.

Works with your stack

Code, automate, or connect your AI.

Explore integrations

Pricing

Social data, priced simply.

Start with 100 free credits. Monthly plans give you predictable volume and lower per-request rates.

Starter

$29.00

18,000credits

  • Top up from $1.61 / 1k if you run out
  • Up to 25 monitors
Most popular

Growth

$79.00

50,000credits

  • Top up from $1.58 / 1k if you run out
  • 5 team seats
  • Up to 100 monitors

Scale

$225.00

150,000credits

  • Top up from $1.50 / 1k if you run out
  • 25 team seats
  • Up to 250 monitors
  • Cancel anytime
  • 30-day money-back guarantee
  • Price locked while you stay

Need 1M+ credits, invoicing, or volume rates? Talk to us

Trust signals

DevHunt

Product Hunt

Uneed

Customers

Teams building on Social Fetch.

“Our TikTok and Instagram scrapers broke constantly. Social Fetch took us off that rotation — we ship product again.”

Daniel Reeve · Founder, Social Crow
  • “Transcripts at volume from one endpoint. No broken scrapers for our small team to maintain.”

    Marcus Lin · Founder, Voice Gecko
  • “Live profile data on every request. We never flag accounts from a stale cache.”

    Hannah Webb · Founder, Scam Finder
  • “Heavy concurrent load, no rate limits to negotiate. The rare API I haven't wrapped in retries.”

    Owen Pritchard · Founder, IP Flare

Medium API: common questions

What can I get from the Medium API?

Tag, author and publication feeds, one day's post sitemap, entity sitemaps, and the sitemap index. Every route returns JSON in the same envelope.

How many posts does each list return?

Ten, the list's whole depth. page.depth is 10 and page.hasMore is null because the list has no cursor or older-page parameter. Use a sitemap for a deeper history.

How do I pull every post for a day?

Call GET /v1/medium/posts with date=YYYY-MM-DD and follow page.nextCursor until page.hasMore is false. page.total is the row count for that page, and each page is its own request.

Can I use a publication on its own domain?

Yes. Pass the domain as the slug (uxdesign.cc) or add domain=uxdesign.cc. The optional tag filter is only supported on Medium-hosted publications.

Why is `contentHtml` null on a tag feed?

A tag's items often carry a snippet instead of the article body. Check contentAvailable; when it is false, read snippet and imageUrl. Author and publication items usually include the full HTML.

What does `lookupStatus` mean?

found means the list was returned; a tag with no stories is still found with an empty posts array. not_found means the handle, publication or dated sitemap file does not exist. HTTP 200 only means the request finished, so always branch on data.lookupStatus.

What does `complete: false` mean?

An item was incomplete and left out. The rest of the response is still returned and complete is false. A later request may return every item.

How do I find the sitemap files for a kind?

Call GET /v1/medium/sitemap with kind=posts (or another kind). The answer pages files[] with url, path, kind, date and lastModified, plus count, latest and page.nextCursor. Set limit from 1 to 500; the default is 100.

How much does the Medium API cost?

1 credit per completed request on most routes and 2 for the sitemap index. Each page of a sitemap is a separate request. A temporary 503 is not billed. meta.creditsCharged on every response is the billing source of truth.

Can I use the Medium routes from an agent or Make?

Yes. The routes are typed MCP tools and Ask targets, and they are reachable in Make through the shared modules and Make an API call. Use the typed routes for production jobs.

The Medium API in detailHow the Medium routes work, what they cost, and how they differ from the official API.

Why teams use Social Fetch for Medium

Social Fetch exposes six routes under /v1/medium. The tag, author and publication routes return the newest ten posts of a tag, an author handle, or a publication slug or custom domain. Each post carries postId, title, url, publishedAt, tags, contentHtml, contentText, wordCount and readingMinutes when the article body is available. The sitemap routes list one day's post URLs or one day's entity URLs, paged with page.nextCursor, and the index route pages the available sitemap files by kind with a date and lastModified.

Every response uses the { data, meta } envelope. Check data.lookupStatus before storing a row: not_found is a typed outcome, not an error. Cursors are opaque and only valid with the same filters.

How to call the Medium API

  1. 1. Create an API key

    Sign up at Social Fetch and copy a key (sfk_...). New accounts get 100 free credits, enough to try every Medium route.

  2. 2. Pick the read

    Use GET /v1/medium/tags/javascript/posts for a tag's latest ten, GET /v1/medium/authors/ev/posts for an author, or GET /v1/medium/posts?date=2011-06-29 for a sitemap day. Send x-api-key on every request.

  3. 3. Page and branch

    Check data.lookupStatus, keep requesting with page.nextCursor while page.hasMore is true, and read meta.creditsCharged for billing.

What each Medium route returns

  • A tag's newest ten posts, with the snippet and first image when one is available.
  • An author's ten newest posts across publications, with full article HTML when the article body is available.
  • A publication's ten newest posts by Medium slug or custom domain, with an optional tag filter.
  • One day's post sitemap, up to 500 URLs per page, for a deterministic backfill.
  • Entity sitemaps for users, publications, tags, lists, topics, removed posts and removed users.
  • The sitemap index, so you can name the files available for a kind before you page them.

How much does the Medium API cost?

Most Medium routes charge 1 credit per completed request; the sitemap index charges 2. The price is shown on each endpoint page. Each sitemap page is its own request. A temporary 503 is not billed. meta.creditsCharged on every response is the billing source of truth.

Social Fetch vs the official Medium API

Medium has no general public API covering these surfaces. A tag, author or publication list stops at ten posts and has no cursor, and each post brings the publisher's own markup. Social Fetch returns one JSON shape across posts and sitemaps, derives plain text and reading time, and pages a sitemap day so thousands of URLs have a stable cursor.

Pull your first Medium data.

Run a live Medium request in the playground. 100 free credits, no card, JSON back in seconds.

No credit cardSign up in 30 seconds withGoogleGitHub