Check If Reddit Comments Are Still Live (Batch, Up To 100 Per Call)
Verify up to 100 Reddit comments in one call. Every id comes back as live, deleted, removed, or not_found — including the ids Reddit itself silently drops.
/api/reddit/comments/verify$0.002 / callCheck whether a batch of comments is still up. Send up to 100 comment ids and get one status back for each.
This exists because the obvious alternative is painful: verifying 100 comments through GET /api/reddit/comment/{id} costs 100 calls and 100 charges. This is one call and one charge.
Pricing
Flat $0.002 per call, whatever the batch size. One upstream Reddit lookup serves the whole batch, so verifying 100 comments costs the same as verifying one. It is a POST only because 100 ids do not fit sanely in a query string — it is a read, and it bills at the read rate.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
ids | string[] | yes | 1-100 comment ids |
Bare ids (n1abc2d) and t1_-prefixed fullnames (t1_n1abc2d) are both accepted, and you can mix the two in one call. Duplicates are collapsed for the upstream lookup, but you still get one result per id you sent, in the order you sent them.
Example
curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"ids": ["n1abc2d", "t1_n1xyz9q", "n1gone00"]}' \
"https://api.redditapis.com/api/reddit/comments/verify"const response = await fetch("https://api.redditapis.com/api/reddit/comments/verify", {
method: "POST",
headers: {
Authorization: "Bearer TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ ids: ["n1abc2d", "t1_n1xyz9q", "n1gone00"] }),
});import requests
response = requests.post(
"https://api.redditapis.com/api/reddit/comments/verify",
json={"ids": ["n1abc2d", "t1_n1xyz9q", "n1gone00"]},
headers={"Authorization": "Bearer TOKEN"},
)Success Response
{
"results": [
{
"id": "n1abc2d",
"status": "live",
"body": "still here",
"author": "someuser",
"removed_by_category": null
},
{
"id": "n1xyz9q",
"status": "removed",
"body": "[removed]",
"author": "someuser",
"removed_by_category": "moderator"
},
{
"id": "n1gone00",
"status": "not_found",
"body": null,
"author": null,
"removed_by_category": null
}
],
"requested": 3,
"returned": 2
}requested is how many ids you sent. returned is how many Reddit actually resolved. When returned is lower than requested, the difference is the not_found rows.
Status Values
| Status | Meaning |
|---|---|
live | The comment is up and readable |
deleted | The author deleted it (body and author are both [deleted]) |
removed | A moderator or admin removed it (body is [removed], author survives) |
not_found | Reddit could not resolve the id at all — wrong id, or purged |
removed_by_category carries Reddit's own reason when it has one (moderator, automod_filtered, deleted, author), and is null otherwise.
About not_found
Reddit's batch lookup silently omits ids it cannot resolve. Ask it about four comments with one bad id among them and it returns three, with no error and no gap where the fourth should be.
This endpoint backfills those gaps. Every id you send comes back in results, so you can zip the response straight onto your own list without checking for holes. If an id is missing on Reddit's side, you get an explicit not_found row rather than a silently shorter array.
Errors
| Status | Meaning |
|---|---|
400 | ids is missing, not an array, empty, over 100 entries, or contains a non-string |
401 | Missing Bearer token |
403 | Invalid Bearer token |
500 | Unexpected server error |
Independent third-party API for developers and researchers. Not affiliated with, endorsed by, or sponsored by Reddit, Inc.
Comment by ID
Fetch one Reddit comment by its id, with body, author, score, and the ids of its parent and post. No need to walk a whole thread to read one comment.
User Profile
Fetch a Reddit user's full profile by username — karma sub-buckets, account creation date, employee/gold/verified flags, profile icon, banner, bio, and profile-sub metadata.
