All platforms14 Lemmy endpoints

Lemmy API. Any instance, one JSON shape.

Communities, posts, comments, users, search and moderation logs from any Lemmy instance you name. Point at a host, get typed JSON back.

No credit card requiredRead the API docs
  • Any Lemmy instance
  • Communities + posts
  • From 1 credit per request
  • Failed requests aren't charged
99.8% uptime#3 Product of the Day3,200+ developers

Teams running monitoring, research, and enrichment pipelines

Lemmy data as JSON. You build the product.

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

Lemmy, plus every other platform

One key and one response envelope for Lemmy 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 Lemmy data

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

What you can build

Monitor communities

Poll post and comment feeds on the instances you choose.

Track communities across instances

Compare community counts, posts and moderation logs.

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

Lemmy API: common questions

Is there a Lemmy API for communities, posts and comments?

Yes. Social Fetch has fourteen Lemmy routes under /v1/lemmy: instance, federated instances, community lists, one community, post lists, one post, post comments, latest comments, one comment, a user, that user's posts and comments, search, and the public moderation log. Authenticate with your Social Fetch API key in x-api-key.

Which instance should I name?

Name the instance that holds the data you want. Counts for a community are most accurate on its home instance, and a post's comments are complete on the instance that hosts its community. You can ask another instance for a remote community with name@host or a remote user with user@host.

Do ids and counts mean the same thing on every instance?

No. A post, comment, community and user id belongs to the instance you named, and counts can differ between a community's home instance and a copy elsewhere. Keep the instance alongside every id you store.

How does paging work?

Every list returns page.page, page.hasMore, page.nextPage, page.nextCursor and page.limitReached. Follow page.nextCursor with the same filters while page.hasMore is true. A cursor only works with the filters it was issued for. On posts, the instance's own cursor can walk past the numbered 100-page ceiling; page.limitReached tells you when a numbered list stopped at that ceiling with rows possibly left. Lemmy pages by number over a live order, so new or re-ranked items can shift a row onto the next page. Remove repeats by id.

Can I get a whole comment tree in one call?

No. A large reply tree can be hundreds of kilobytes. The post-comments route returns a normal page and includes each comment's path, depth and parentId; walk a branch by passing parentId.

Why is a post or comment missing but still in the moderation log?

A removed or deleted post reads as lookupStatus: not_found from the post route, which is also what a never-existing id returns. A removed comment still comes back as found with removed or deleted set and content empty; a deleted user asked by username comes back as not_found with reason.code: deleted, while an id lookup returns reason: null because Lemmy gives the same result for an id that never existed. The moderation log keeps the action with the removed post's title, URL and body or the removed comment's content, so the modlog route is how you recover it.

What happens with a private instance or a host that is not Lemmy?

HTTP 200 means the request finished. Lists and lookups against a private instance return lookupStatus: private with a short reason, while the instance route still returns the site object when the host has one. A host that is up but is not a Lemmy instance returns lookupStatus: not_compatible, a host name that does not resolve returns lookupStatus: not_found with reason.code: host_not_found, and a missing post, comment, community or user returns lookupStatus: not_found. Every HTTP 200 answer, including private and not_compatible, is a completed request and is charged the route credits. Data behind a login is never returned.

Does search return a total?

No total. Search returns four lists (posts, comments, communities and users) in the instance's order. query is required and cannot be empty; type defaults to Posts. All and Comments can take much longer than the other kinds on a large instance. An empty result is lookupStatus: found with empty lists, not not_found.

How much does the Lemmy API cost?

Every Lemmy route charges a flat amount per completed request, shown on each endpoint page, and each page of a list is billed separately. Check meta.creditsCharged on every response. New accounts start with 100 free credits.

Can I use the Lemmy routes from agents or MCP?

Yes. Every Lemmy route is a typed MCP tool and is reachable through Ask (POST /v1/ask) in plain English. Use the typed routes for production jobs.

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

Why teams use Social Fetch for Lemmy

Lemmy is federated: thousands of independent instances run the same software, and each one holds its own copy of communities, posts and users. Every Social Fetch call names the instance with instance=lemmy.world or instance=lemmy.ml. Ids, counts and sorts belong to that instance, and a community or user on another instance can be resolved with name@host or user@host.

The routes under /v1/lemmy cover an instance and its NodeInfo, its federated-instance table, community lists and one community, post lists and one post, a post's comments and the latest comments, one comment, a user profile and that user's posts or comments, search, and the public moderation log. Lookups return site, community, post, comment or user; lists return communities, posts, comments, instances or top-level entries.

Every response uses the { data, meta } envelope with data.lookupStatus, so a missing post, a private instance, a host that is not Lemmy and a host name that does not resolve come back as typed states rather than errors. Lists carry page.page, page.hasMore, page.nextPage, page.nextCursor and page.limitReached; on 0.19 and later the posts response also carries the instance's own continuation cursor, which can walk past the numbered page ceiling.

A private instance returns lookupStatus: private and is charged like any other answer; an instance that cannot be reached returns 503 and is not charged.

How to call the Lemmy 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 Lemmy route on a few instances.

  2. 2. Name the instance and route

    Use the host that holds the data, for example GET /v1/lemmy/community?instance=lemmy.world&name=technology or GET /v1/lemmy/posts?instance=lemmy.ml&scope=local&sort=New. Send x-api-key on every request.

  3. 3. Branch and page

    Check data.lookupStatus before you store a row, follow page.nextCursor while page.hasMore is true, and bill from meta.creditsCharged.

What each Lemmy route returns

  • An instance's site object and NodeInfo: version, user and post counts, registration mode, federation settings, admins and languages.
  • The domains an instance federates with, or its block list, with software, version and delivery state.
  • Community lists by sort and scope, and one community with subscriber, post, comment and active-user counts.
  • Post lists for an instance or a community, by any sort the version supports, with NSFW included on request.
  • One post with its cross-posts and the community's moderators, or one post found from a comment id.
  • A post's comments, the latest comments on an instance, and one comment including removed and deleted rows.
  • A user profile with counts and moderated communities, plus their posts or comments by time or a time-window top.
  • Search for posts, comments, communities, users or an exact URL, and the public moderation log by kind or community.

How much does the Lemmy API cost?

Each Lemmy route charges a flat credit amount per completed request, shown on every endpoint page. Each page of a list is its own request. Credits never expire on pay-as-you-go packs, and meta.creditsCharged on every response is the billing source of truth.

Social Fetch vs the official Lemmy API

Every Lemmy instance runs its own version: 0.18 has no instance next_page cursor, no Scaled sort and no visibility field, while 0.19 adds them. Counts and ids are local to the instance you name. Social Fetch keeps one response shape across both versions, turns a missing entity, a private instance, a host that is not Lemmy and a host name that does not resolve into typed lookupStatus values, and meters every page the same way. An instance that requires a login is reported as such.

Pull your first Lemmy data.

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

No credit cardSign up in 30 seconds withGoogleGitHub