socialsearchapi Dashboard Get a key
Jump to endpoint

API reference

Every endpoint, what it costs, and a curl you can paste. Machine-readable: llms.txt · openapi.json · llms-full.txt.

Quickstart

Sign in at /signup (email and a 6-digit code, about twenty seconds), create an API key in the dashboard, and copy it into your .env. New accounts start with 50 free credits, spendable on any platform, no card. Then:

curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/hackernews/search?query=cloudflare+workers"

It comes back like this (real response, captured 2026-08-27):

{
  "success": true,
  "platform": "hackernews",
  "data": {
    "total": 1282,
    "items": [
      {
        "id": "17154971",
        "platform": "hackernews",
        "type": "post",
        "title": "GDPR for lazy people: Block all European users with Cloudflare Workers",
        "url": "https://news.ycombinator.com/item?id=17154971",
        "author": "jgrid007",
        "created_at": "2018-05-25T15:59:09Z",
        "metrics": {
          "score": 755,
          "comments": 1467
        },
        "extra": {
          "external_url": "https://apility.io/2018/05/25/gdpr-lazy-block-eu-users-cloudflare-workers/"
        }
      }
    ]
  },
  "credits_used": 1
}

That's the whole interface. Change hackernews to reddit, x, tiktok - same envelope, same item fields, different platform. Get a key - email and a 6-digit code, 50 free credits, no card.

Authentication

Send your key in the x-api-key header on every request. There is no anonymous access - a call without a key is a 401. All examples below assume export SS_KEY=your_key.

export SS_KEY=ss_key_...
curl -H "x-api-key: $SS_KEY" "https://api.socialsearchapi.com/v1/reddit/search?query=llm+agents"

Keys

One kind of key. Create up to 10 per account in the dashboard, name them, rotate or delete any of them. Each key's plaintext is shown exactly once, at creation: keys are stored hashed, never returned by the API, never emailed. A key spends the account's credits: the 50 free ones first, then whatever you buy.

You cannot mint a key yourself. With no key, send your user to /signup: they sign in, create a key in the dashboard and put it in your .env. If you already hold a key, POST /v1/auth/browser-link (sent with that key) returns a one-time dashboard_url for your user's browser, where they can see usage and buy credits; creating, rotating or revoking keys still needs their own sign-in with the emailed code. Never ask a user to paste a key into the chat, and never store one in your transcript.

Response schema

Every list endpoint returns the same envelope, and every item has the same keys: id, title, text, url, author, author_name, created_at, metrics and extra. A key the source cannot fill is null, never missing: created_at is ISO-8601 UTC "YYYY-MM-DDTHH:MM:SSZ" when the source gives a date, otherwise null. Never a unix integer. The samples on this site are trimmed to the filled keys for reading; the API sends all of them.

{
  "success": true,
  "platform": "reddit",
  "data": {
    "total": 3,
    "items": [
      {
        "id": "1svlt79",
        "platform": "reddit",
        "type": "post",
        "title": "Cloudflare Workers AI - worth it?",
        "text": "Hey,I’m hitting a wall with the new Codex limits on GPT Business, they burn through way too fast lately and it’s star...",
        "url": "https://www.reddit.com/r/CloudFlare/comments/1svlt79/cloudflare_workers_ai_worth_it/",
        "created_at": "2026-04-25T19:42:34Z",
        "metrics": {
          "score": 4,
          "comments": 25
        },
        "extra": {
          "subreddit": "r/CloudFlare"
        }
      }
    ]
  },
  "credits_used": 2
}

Errors

Errors use one shape too. type is a stable machine code from the table below, message is for a person, and fix is present when there is a specific step to take (a working example, a top-up link, a retry delay) and absent otherwise. Failed calls are never charged.

{
  "success": false,
  "endpoint": "/v1/x/search",
  "error": {
    "type": "NO_CREDITS",
    "status": 402,
    "message": "Not enough credits for this call.",
    "fix": "Top up at https://socialsearchapi.com/dashboard",
    "docs_url": "https://socialsearchapi.com/docs#errors"
  },
  "credits_used": 0,
  "request_id": "req-..."
}
Statuserror.typeWhat to do
400BAD_REQUESTThe request was understood but rejected; the message says why (a bad Content-Length, a refused email address).
400CODE_EXPIREDSign-in: the code is older than its lifetime. Request a new one.
400EMAIL_NOT_ACCEPTEDDisposable email domains cannot sign up. Use a real mailbox; the free credits are the same.
400INVALID_CODESign-in: wrong code. The body carries attempts_left; the same code stays valid until it expires or the guesses run out.
400NO_PENDING_CODESign-in: no code was requested for this address, or it was already used. Request a new one.
400TOO_MANY_ATTEMPTSSign-in: too many wrong guesses for this code or from this address. Request the code again after the cooldown, or wait for it to expire.
401MISSING_API_KEYNo x-api-key header on a platform endpoint. There is no anonymous tier: send your key on every request.
401UNAUTHORIZEDThe credential for this operation is missing, unknown, expired or revoked: a key on account and billing operations, a browser session on key management, the owner key on admin routes.
402NO_CREDITSThe account's credits are used up. Top up; nothing is queued and nothing is deleted, and the same key keeps working after payment.
403INVALID_API_KEYThe key is unknown, rotated away or revoked. Create or rotate one in the dashboard.
403OTP_SIGNIN_REQUIREDThis browser session came from an API key (browser-link) and cannot create, rotate or revoke keys. Sign in with the emailed code.
404NOT_FOUNDNo such key or order on this account.
404UNKNOWN_ENDPOINTNo such route. GET /v1/status lists the platforms; the reference lists every path.
409KEY_LIMITThe account already holds the maximum number of keys. Delete one first.
409ORDER_MISMATCHThe payment did not match the order. Nothing was credited; operators are alerted and will sort it out.
411LENGTH_REQUIREDSend a Content-Length header; chunked request bodies are not accepted.
413PAYLOAD_TOO_LARGEThe request body is over the limit the message states.
422VALIDATION_ERRORA parameter or body field is missing, malformed or out of range. The message names it; fix, when present, shows a working example.
424ALL_SOURCES_FAILEDEvery source for that platform failed on this call. You are not charged. Retry later or use another platform.
424UPSTREAM_ERRORThe source answered with an error we could not work around. You are not charged. Retry later.
429RATE_LIMITEDOver the per-key limit (wait the Retry-After seconds, then retry), or over a daily cap on sign-in codes, dashboard links or checkouts (no Retry-After; the cap resets the next day). Nothing was charged and nothing is queued.
500INTERNALUnexpected error on our side; it has been logged. Retry; tell us if it persists.
501NOT_CONFIGUREDThat platform or upstream is not configured on this deployment. Tell us.
503CHECKOUT_UNAVAILABLECheckout could not be started just now. Nothing was charged; retry in a minute.

The per-key limit is 5 requests per second per key, bursts up to 10, at most 10 calls in flight. Anything not in the table is not something this API sends; in particular never a 502 or 504.

Credits & limits

Every endpoint card below shows its cost. Credits are deducted on success only - a failed call, including one where we burned a fallback attempt, costs you nothing. New accounts start with 50 free credits (per account, any endpoint, same prices as bought credits). Rate limit: 5 requests per second per key, bursts up to 10, at most 10 calls in flight; past it you get 429 RATE_LIMITED with a Retry-After header and nothing is charged. Full price table on the pricing page.

Two ways to know your balance, both supported: every success envelope carries credits_remaining (so does the 402 body), which is the number to read between calls; and GET /v1/credits/balance answers {"ok": true, "balance": N} for a pre-flight check or while a purchase lands. GET /v1/me adds 7-day usage per endpoint and your recent calls. Free credits and bought credits are one balance per account; every key on the account draws from it.

Only the platform endpoints are priced. Account, billing, authentication and status operations (balance, usage, keys, sign-in, plans, checkout, status) never spend credits; the reference marks them free, so poll your balance as often as you like.

Platforms

Reddit

GET/v1/reddit/subreddit/posts2 credits
List a subreddit's posts by sort order, or by date window from the archive
ParamTypeDescription
subreddit*stringSubreddit name without r/
afterstringOnly content on/after this date (YYYY-MM-DD or relative like 7d, 1year) - served from the historical archive
beforestringOnly content before this date (YYYY-MM-DD or relative) - served from the historical archive
cursorstringPagination cursor
limitstring = 25Max results (1-100)
sortstring = newOrder: new is served from the free archive and is the only order that combines with after/before; hot, top and rising are live rankings
timeframestring = weekTime window (top only)
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/reddit/subreddit/posts?subreddit=programming&sort=hot"
GET/v1/reddit/subreddit2 credits
Get subreddit details (subscribers, description)
ParamTypeDescription
subreddit*stringSubreddit name without r/
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/reddit/subreddit?subreddit=programming"
GET/v1/reddit/subreddits1 credit
Discover subreddits by name prefix, ranked by subscribers
ParamTypeDescription
query*stringSubreddit name prefix, e.g. 'ask'
limitstring = 25Max results (1-100)
min_followersstringOnly subreddits with at least this many subscribers
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/reddit/subreddits?query=cloud"
GET/v1/reddit/profile1 credit
Get a Reddit user profile (karma, account age, activity volume)
ParamTypeDescription
handle*stringReddit username without u/
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/reddit/profile?handle=spez"
GET/v1/reddit/profile/posts1 credit
A Reddit user's post history, optionally date-windowed years back
ParamTypeDescription
handle*stringReddit username without u/
afterstringOnly content on/after this date (YYYY-MM-DD or relative like 7d, 1year) - served from the historical archive
beforestringOnly content before this date (YYYY-MM-DD or relative) - served from the historical archive
limitstring = 25Max results (1-100)
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/reddit/profile/posts?handle=spez"
GET/v1/reddit/profile/comments1 credit
A Reddit user's comment history, optionally date-windowed years back
ParamTypeDescription
handle*stringReddit username without u/
afterstringOnly content on/after this date (YYYY-MM-DD or relative like 7d, 1year) - served from the historical archive
beforestringOnly content before this date (YYYY-MM-DD or relative) - served from the historical archive
limitstring = 25Max results (1-100)
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/reddit/profile/comments?handle=spez"
GET/v1/reddit/post2 credits
Get one Reddit post by URL or id
ParamTypeDescription
idstringPost id (t3_ prefix optional) (one of url / id is required)
urlstringFull Reddit post URL (one of url / id is required)
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/reddit/post?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Fprogramming%2Fcomments%2F144sn8r%2Fapollo_dev_posts_backend_code_to_git_to_disprove%2F"
GET/v1/reddit/post/comments2 credits
List comments on a Reddit post, replies nested via depth
ParamTypeDescription
idstringPost id (one of url / id is required)
limitstring = 50Max comments
sortstring = topSibling order at every depth: top by score, new or old by time
urlstringFull Reddit post URL (one of url / id is required)
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/reddit/post/comments?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Fprogramming%2Fcomments%2F144sn8r%2Fapollo_dev_posts_backend_code_to_git_to_disprove%2F&sort=top"
GET/v1/reddit/post/transcript5 credits
Transcript of a Reddit video post
ParamTypeDescription
url*stringFull Reddit video post URL
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/reddit/post/transcript?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Fyouseeingthisshit%2Fcomments%2F1oiu9xm%2Ffootball_nostalgiasaints_punter_head_coach_cant%2F"

X / Twitter

GET/v1/x/profile1 credit
Get an X (Twitter) profile
ParamTypeDescription
handle*stringX handle without @
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/x/profile?handle=cloudflare"
GET/v1/x/profile/posts3 credits
List an X (Twitter) account's recent posts
ParamTypeDescription
handle*stringX handle without @
cursorstringPagination cursor
repliesstring = falseInclude replies
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/x/profile/posts?handle=cloudflare"
GET/v1/x/post1 credit
Get one or more X (Twitter) posts by id (comma-separated, up to 5)
ParamTypeDescription
id*stringTweet id, or up to 5 comma-separated ids
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/x/post?id=1585841080431321088"
GET/v1/x/post/comments3 credits
List replies to an X (Twitter) post
ParamTypeDescription
id*stringTweet id
cursorstringPagination cursor
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/x/post/comments?id=1585841080431321088"

Instagram

GET/v1/instagram/profile2 credits
Get an Instagram profile (followers, bio, verification)
ParamTypeDescription
handle*stringInstagram handle without @
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/instagram/profile?handle=instagram"
GET/v1/instagram/profile/posts2 credits
List an Instagram account's recent posts
ParamTypeDescription
handle*stringInstagram handle without @
cursorstringPagination cursor
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/instagram/profile/posts?handle=instagram"
GET/v1/instagram/post2 credits
Get one Instagram post or reel by URL
ParamTypeDescription
url*stringFull Instagram post/reel URL
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/instagram/post?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FBsOGulcndj-%2F"
GET/v1/instagram/post/comments3 credits
List comments on an Instagram post
ParamTypeDescription
url*stringFull Instagram post URL
cursorstringPagination cursor
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/instagram/post/comments?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FBsOGulcndj-%2F"

TikTok

GET/v1/tiktok/profile2 credits
Get a TikTok profile (followers, likes, bio)
ParamTypeDescription
handle*stringTikTok handle without @
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/tiktok/profile?handle=tiktok"
GET/v1/tiktok/profile/posts2 credits
List a TikTok account's recent videos
ParamTypeDescription
handle*stringTikTok handle without @
cursorstringPagination cursor
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/tiktok/profile/posts?handle=tiktok"
GET/v1/tiktok/hashtag2 credits
List TikTok videos for a hashtag
ParamTypeDescription
query*stringHashtag without #
cursorstringPagination cursor
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/tiktok/hashtag?query=fyp"
GET/v1/tiktok/post2 credits
Get one TikTok video by URL
ParamTypeDescription
url*stringFull TikTok video URL
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/tiktok/post?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7231338487075638570"
GET/v1/tiktok/post/comments3 credits
List comments on a TikTok video
ParamTypeDescription
url*stringFull TikTok video URL
cursorstringPagination cursor
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/tiktok/post/comments?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7231338487075638570"
GET/v1/tiktok/post/transcript5 credits
Get a TikTok video's transcript
ParamTypeDescription
url*stringFull TikTok video URL
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/tiktok/post/transcript?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7231338487075638570"

Facebook

GET/v1/facebook/profile2 credits
Get a public Facebook Page profile
ParamTypeDescription
url*stringFull Facebook Page URL
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/facebook/profile?url=https%3A%2F%2Fwww.facebook.com%2Fnasa"
GET/v1/facebook/profile/posts2 credits
List a public Facebook Page's posts
ParamTypeDescription
url*stringFull Facebook Page URL
cursorstringPagination cursor
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/facebook/profile/posts?url=https%3A%2F%2Fwww.facebook.com%2Fnasa"
GET/v1/facebook/post2 credits
Get one public Facebook post by URL
ParamTypeDescription
url*stringFull Facebook post URL
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/facebook/post?url=https%3A%2F%2Fwww.facebook.com%2FNASA%2Fposts%2Fpfbid0atjZuuxzCyiMeds9SaqJmsViLEs95GaCUumno1mVPAXo2xeWziEnWN3cYQ6bnR9pl"
GET/v1/facebook/post/comments3 credits
List comments on a public Facebook post
ParamTypeDescription
url*stringFull Facebook post URL
cursorstringPagination cursor
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/facebook/post/comments?url=https%3A%2F%2Fwww.facebook.com%2FNASA%2Fposts%2Fpfbid0atjZuuxzCyiMeds9SaqJmsViLEs95GaCUumno1mVPAXo2xeWziEnWN3cYQ6bnR9pl"
GET/v1/facebook/group/posts2 credits
List posts in a public Facebook group
ParamTypeDescription
url*stringFull Facebook group URL
cursorstringPagination cursor
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/facebook/group/posts?url=https%3A%2F%2Fwww.facebook.com%2Fgroups%2Fprogrammerhumor"

Hacker News

GET/v1/hackernews/story1 credit
Get one Hacker News story with metadata
ParamTypeDescription
id*stringHN item id
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/hackernews/story?id=38865518"
GET/v1/hackernews/story/comments1 credit
List all comments on a Hacker News story, replies flattened with depth
ParamTypeDescription
id*stringHN story id
limitstring = 100Max comments
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/hackernews/story/comments?id=38865518"
GET/v1/hackernews/profile1 credit
Get a Hacker News user profile
ParamTypeDescription
handle*stringHN username
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/hackernews/profile?handle=dang"

YouTube

GET/v1/youtube/video1 credit
Get one YouTube video's details
ParamTypeDescription
id*stringVideo id or full watch URL
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/youtube/video?id=dQw4w9WgXcQ"
GET/v1/youtube/channel/videos1 credit
List a YouTube channel's recent videos
ParamTypeDescription
id*stringChannel id (UC...)
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/youtube/channel/videos?id=UCsBjURrPoezykLs9EqgamOA"
GET/v1/youtube/channel2 credits
Get a YouTube channel's details
ParamTypeDescription
id*stringChannel id (UC...) or @handle
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/youtube/channel?id=%40cloudflare"
GET/v1/youtube/video/comments2 credits
List comments on a YouTube video
ParamTypeDescription
id*stringVideo id or full watch URL
cursorstringPagination cursor
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/youtube/video/comments?id=dQw4w9WgXcQ"
GET/v1/youtube/video/transcript2 credits
Get a YouTube video's transcript
ParamTypeDescription
id*stringVideo id or full watch URL
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/youtube/video/transcript?id=dQw4w9WgXcQ"

Bluesky

GET/v1/bluesky/profile1 credit
Get a Bluesky profile
ParamTypeDescription
handle*stringBluesky handle or DID
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/bluesky/profile?handle=bsky.app"
GET/v1/bluesky/profile/posts1 credit
List a Bluesky account's recent posts
ParamTypeDescription
handle*stringBluesky handle or DID
cursorstringPagination cursor
limitstring = 25Max results (1-100)
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/bluesky/profile/posts?handle=bsky.app"
GET/v1/bluesky/post1 credit
Get one Bluesky post (with thread context counts)
ParamTypeDescription
url*stringFull bsky.app post URL or at:// URI
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/bluesky/post?url=https%3A%2F%2Fbsky.app%2Fprofile%2Fbsky.app%2Fpost%2F3l6oveex3ii2l"

Mastodon

GET/v1/mastodon/tag1 credit
Public timeline for a Mastodon hashtag on any instance
ParamTypeDescription
query*stringHashtag without #
instancestringInstance domain (default mastodon.social)
limitstring = 20Max results (1-40)
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/mastodon/tag?query=opensource"

Web & News

GitHub

GET/v1/github/profile1 credit
Get a GitHub user or organization profile
ParamTypeDescription
handle*stringGitHub login
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/github/profile?handle=cloudflare"
GET/v1/github/profile/repos1 credit
List a GitHub user's repositories
ParamTypeDescription
handle*stringGitHub login
limitstring = 30Max repos (1-100)
sortstring = updatedSort order
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/github/profile/repos?handle=honojs"
GET/v1/github/repo1 credit
Get one GitHub repository
ParamTypeDescription
id*stringowner/name, e.g. honojs/hono
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/github/repo?id=honojs%2Fhono"
GET/v1/github/repo/readme1 credit
Get a repository's README as text
ParamTypeDescription
id*stringowner/name
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/github/repo/readme?id=honojs%2Fhono"
GET/v1/github/repo/releases1 credit
List a repository's releases
ParamTypeDescription
id*stringowner/name
limitstring = 20Max releases
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/github/repo/releases?id=honojs%2Fhono"
GET/v1/github/repo/issues1 credit
List a repository's issues and pull requests
ParamTypeDescription
id*stringowner/name
limitstring = 30Max results (1-100)
statestring = openIssue state
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/github/repo/issues?id=honojs%2Fhono&state=open"
GET/v1/github/issue1 credit
Get one issue or pull request
ParamTypeDescription
id*stringowner/name/number, e.g. honojs/hono/1
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/github/issue?id=honojs%2Fhono%2F1"
GET/v1/github/issue/comments1 credit
List comments on an issue or pull request
ParamTypeDescription
id*stringowner/name/number
limitstring = 50Max comments (1-100)
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/github/issue/comments?id=facebook%2Freact%2F13991"

Account & billing

Account

POST/v1/auth/request-codefree
Email a 6-digit sign-in code
ParamTypeDescription
email*stringin the JSON body
curl -X POST -H "Content-Type: application/json" \
  "https://api.socialsearchapi.com/v1/auth/request-code" \
  -d '{"email": "you@company.com"}'
POST/v1/auth/verifyfree
Exchange the emailed code to sign in (returns a dashboard link, never a key)
ParamTypeDescription
email*stringin the JSON body
otp*stringin the JSON body
curl -X POST -H "Content-Type: application/json" \
  "https://api.socialsearchapi.com/v1/auth/verify" \
  -d '{"email": "you@company.com", "otp": "123456"}'
POST/v1/auth/browser-linkfree
Send the x-api-key you already hold; answers {dashboard_url} for the key's owner to open in their browser to see usage and buy credits. A session minted this way cannot create, rotate or revoke keys: that needs the owner's own sign-in with the emailed code. With no key there is nothing to call: send your user to https://socialsearchapi.com/signup/ instead.
curl -X POST -H "x-api-key: $SS_KEY" -H "Content-Type: application/json" \
  "https://api.socialsearchapi.com/v1/auth/browser-link" \
  -d '{}'
POST/v1/auth/signoutfree
Revoke the current browser session server-side
Browser session only: this is what the dashboard calls after you sign in. It never accepts x-api-key, so there is no curl to copy. Agents: send your user to the dashboard; you cannot do this for them.
GET/v1/keysfree
List the account's API keys (browser session only; prefixes, never plaintext)
Browser session only: this is what the dashboard calls after you sign in. It never accepts x-api-key, so there is no curl to copy. Agents: send your user to the dashboard; you cannot do this for them.
POST/v1/keysfree
Create an API key (browser session only; shown once, max 10 per account)
ParamTypeDescription
namestringin the JSON body
Browser session only: this is what the dashboard calls after you sign in. It never accepts x-api-key, so there is no curl to copy. Agents: send your user to the dashboard; you cannot do this for them.
DELETE/v1/keys/{kid}free
Revoke an API key (browser session only)
Browser session only: this is what the dashboard calls after you sign in. It never accepts x-api-key, so there is no curl to copy. Agents: send your user to the dashboard; you cannot do this for them.
POST/v1/keys/{kid}/rotatefree
Rotate an API key (browser session only; new key shown once)
Browser session only: this is what the dashboard calls after you sign in. It never accepts x-api-key, so there is no curl to copy. Agents: send your user to the dashboard; you cannot do this for them.
GET/v1/mefree
Balance plus usage for the account behind the key. Never returns a key. For the balance alone, GET /v1/credits/balance is lighter; between calls, read credits_remaining from the envelope you already have.
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/me"

Billing

GET/v1/credits/balancefree
Answers {"ok": true, "balance": N} in credits for the account behind the key. Free credits and bought credits are one balance. Use it before a run or while waiting for a purchase to land; while you are making calls, credits_remaining in every success envelope (and in the 402 NO_CREDITS body) is the same number without an extra request. Both ways are supported.
curl -H "x-api-key: $SS_KEY" \
  "https://api.socialsearchapi.com/v1/credits/balance"
GET/v1/plansfree
Credit packs, per-credit pricing, checkout instructions
curl "https://api.socialsearchapi.com/v1/plans"
POST/v1/checkoutfree
Body: {"plan": "starter"|"growth"|"pro"}. Three packs only: a credits field or any other amount is refused (422). Authenticate with x-api-key or a browser x-session. The response carries order_id, transaction_id and pay_url. Hand pay_url to your user; credits land within seconds of payment. All sales are final; failed API calls are never charged.
ParamTypeDescription
plan*stringin the JSON body
curl -X POST -H "x-api-key: $SS_KEY" -H "Content-Type: application/json" \
  "https://api.socialsearchapi.com/v1/checkout" \
  -d '{"plan": "growth"}'
POST/v1/checkout/confirmfree
Return-page confirmation: checks the order with Paddle and credits it once (idempotent)
ParamTypeDescription
order_id*stringin the JSON body
curl -X POST -H "Content-Type: application/json" \
  "https://api.socialsearchapi.com/v1/checkout/confirm" \
  -d '{"order_id": "..."}'
GET/v1/orders/{id}free
Order status by id (what the pay page reads; never the account's email or balance)
ParamTypeDescription
id*string
curl "https://api.socialsearchapi.com/v1/orders/{id}"

Status

Status

GET/v1/statusfree
Service status, platforms and endpoint count
curl "https://api.socialsearchapi.com/v1/status"