RedditapisRedditapis
Posts

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.

POST/api/reddit/comments/verify$0.002 / call

Check 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

FieldTypeRequiredDescription
idsstring[]yes1-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

StatusMeaning
liveThe comment is up and readable
deletedThe author deleted it (body and author are both [deleted])
removedA moderator or admin removed it (body is [removed], author survives)
not_foundReddit 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

StatusMeaning
400ids is missing, not an array, empty, over 100 entries, or contains a non-string
401Missing Bearer token
403Invalid Bearer token
500Unexpected server error

Independent third-party API for developers and researchers. Not affiliated with, endorsed by, or sponsored by Reddit, Inc.

On this page