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.
- Any Lemmy instance
- Communities + posts
- From 1 credit per request
- Failed requests aren't charged
Teams running monitoring, research, and enrichment pipelines
Why Social Fetch
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.
What Lemmy data can you get?
14 endpoints, one API key. Every response comes back as live JSON in the same envelope.
Instances
Communities
Posts
Comments
Users
Search
Moderation
Browse all 14 Lemmy endpoints
Instances
Communities
Posts
Comments
Users
Search
Moderation
What teams build with Lemmy data
Monitoring, enrichment, research and content workflows on Lemmy data, on the same API as every other platform.
How it works
Your first request in three steps.
Use TypeScript or your automation tool of choice.
Sources
+ 51 more platforms
One request
GET/v1/tiktok/profiles/
x-api-key: sk_live_••••••••
Same JSON shape
{
"data": {
"lookupStatus": "found",
"profile": {
"platform": "tiktok",
"handle": "charlidamelio",
"displayName": "charli d’amelio",
"verified": true
},
"metrics": {
"followers": 160263648
}
}
}Step 1
Create your free account
Get an API key with 100 requests included.
Step 2
Choose an endpoint
Pass a username, URL, keyword, or post ID.
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.
TypeScript
n8n
- Make
- Apify
- MCP
- AI clients
Pricing
Social data, priced simply.
Start with 100 free credits. Monthly plans give you predictable volume and lower per-request rates.
Starter
18,000credits
$1.61 per 1k · $0.00161 per request
- Top up from $1.61 / 1k if you run out
- Up to 25 monitors
Growth
50,000credits
$1.58 per 1k · $0.00158 per request
- Top up from $1.58 / 1k if you run out
- 5 team seats
- Up to 100 monitors
Scale
150,000credits
$1.50 per 1k · $0.00150 per request
- 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.”
“Transcripts at volume from one endpoint. No broken scrapers for our small team to maintain.”
“Live profile data on every request. We never flag accounts from a stale cache.”
“Heavy concurrent load, no rate limits to negotiate. The rare API I haven't wrapped in retries.”
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. 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. Name the instance and route
Use the host that holds the data, for example
GET /v1/lemmy/community?instance=lemmy.world&name=technologyorGET /v1/lemmy/posts?instance=lemmy.ml&scope=local&sort=New. Sendx-api-keyon every request.3. Branch and page
Check
data.lookupStatusbefore you store a row, followpage.nextCursorwhilepage.hasMoreis true, and bill frommeta.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