InsightSocial API
Reddit

Reddit Search API reference

Your first 10 calls are free, no card needed. Pricing and FAQ

Get a free API key
Example request
curl "https://api.insightsocial.app/v1/reddit/search?query=%22claude%20code%22" \
  -H "x-api-key: $INSIGHTSOCIAL_API_KEY"
GET
/v1/reddit/search

Returns posts matching a keyword from across Reddit, each with title, score, comment count, subreddit, permalink, and the body at ext.selftext.

Use it to search all of Reddit at once. Bodies arrive free here, so include_body=true is rarely needed and refunds what it does not spend. subreddit/search searches inside one community.

Metered: 10–300 credits. We reserve the ceiling when the call starts and charge what it actually used when it finishes.

Paginates by cursor: see Pagination.

x-api-key<token>

Your key from the dashboard. It starts with isk_.

In: header

Query Parameters

query*string

Search words or a phrase. Words match any, not all: vision pro also returns posts that mention only one of them. Wrap a phrase in double quotes to match it exactly (query="vision pro"). Reddit operators such as subreddit:name work too.

sort?string

Sort by

Value in

  • "relevance"
  • "new"
  • "top"
  • "comment_count"
timeframe?string

Only return posts from this window. Applied on sort=relevance, sort=top and sort=comment_count. It has no effect with sort=new, which is already ordered newest-first and returns recent posts regardless.

Value in

  • "all"
  • "day"
  • "week"
  • "month"
  • "year"
trim?boolean

Set to true for a trimmed down version of the response. On this endpoint it also skips the second source that widens the page, so a trimmed page is both thinner and usually shorter. Measured 09/09/2026: default 29 rows, trim=true 25 rows. It does not drop author.avatar_url or ext.* — those leaves stay when the first source already carried them. Use it to skip the widening pass, not to strip fields.

include_body?boolean

Set to true to include each post's body (selftext) on the search page. Rarely needed now: bodies arrive on the rows themselves. Link posts have no body, so they are looked up and not charged for.

dry_run?"1"

Set to 1 to get the price of this call without making it: data.dry_run carries credits_min and credits_max. Nothing is charged.

Value in

  • "1"
max_age_days?integer

Keep only rows published within this many days (post.published_at), 1 to 3650. A row with no date is discarded.

Range1 <= value <= 3650
max_pages?integer

1 to 5 (default 1). Walk up to this many pages in one call and return the rows from all of them (after any filter). Each page walked is billed as one call to this endpoint; the whole walk counts once against your rate limit.

Range1 <= value <= 5
cursor?string

The pagination.next_cursor from the previous page, sent back unchanged. Omit it for the first page.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.insightsocial.app/v1/reddit/search?query=string"
{  "success": true,  "platform": "string",  "endpoint": "string",  "schema_version": "2",  "pagination": {    "next_cursor": "string",    "has_more": true,    "page_size": 0,    "stopped_at": "since"  },  "unavailable": [    "string"  ],  "credits_used": 0,  "credits_remaining": 0,  "request_id": "string",  "cached": true,  "idempotent_replay": true,  "charge_reason": "string",  "free_call": true,  "data": {    "items": [      {        "post": {          "id": "string",          "url": "http://example.com",          "kind": "string",          "content": {            "text": "string",            "media_urls": [              "http://example.com"            ],            "thumbnail_url": "http://example.com",            "duration_seconds": 0          },          "author": {            "id": "string",            "username": "string",            "display_name": "string",            "avatar_url": "http://example.com",            "verified": true          },          "engagement": {            "views": 0,            "likes": 0,            "comments": 0,            "shares": 0,            "saves": 0          },          "flags": {            "nsfw": true,            "spoiler": true,            "pinned": true,            "deleted": true,            "likes_hidden": true,            "comments_hidden": true,            "shares_hidden": true,            "views_hidden": true,            "saves_hidden": true          },          "published_at": "2019-08-24T14:15:22Z",          "language": "string",          "ext": {            "property1": null,            "property2": null          }        }      }    ],    "total": 0,    "truncated": true,    "ext": {      "property1": null,      "property2": null    }  }}