Search Stack Overflow questions
Search Stack Overflow questions and answers by words, title, body, tag, author or answer count, with snippets.
Headers
Get your API keyAPI key (`sfk_...`)
Stack Exchange site, by its API name (`askubuntu`, `serverfault`, `math`, `ru.stackoverflow`). Default: `stackoverflow`. The sites endpoint lists them all.
Free text to find in titles, bodies and tags.
min 1 chars · max 200 chars
Text that must be in the title.
min 1 chars · max 200 chars
Text that must be in the question body.
min 1 chars · max 200 chars
Only questions that carry all of these tags, comma-separated, up to 5.
Leave out questions that carry any of these tags, comma-separated, up to 5.
Only questions asked by this user id.
≥ -1 · ≤ 2147483647
`true` for questions with an accepted answer, `false` for those without.
`true` for closed questions, `false` for open ones.
Only questions with at least this many answers.
≥ 0 · ≤ 1000000000
Only questions with at least this many views.
≥ 0 · ≤ 1000000000
Only questions asked at or after this time, as an ISO 8601 date or time (such as `2026-01-31`) or epoch seconds. A time with no zone is UTC.
Only questions asked before this time, as an ISO 8601 date or time (such as `2026-01-31`) or epoch seconds. A time with no zone is UTC.
Order: `relevance` (default), `creation` (the only one that pages without a ceiling), `activity` or `votes`. Ties can repeat or skip rows.
one of: relevance, creation, activity, votes
Direction of the sort: `desc` (default) or `asc`.
one of: desc, asc
`full` (default) returns questions. `excerpt` returns the questions and answers that match, each with a highlighted snippet.
one of: full, excerpt
`body` adds the question text (HTML and Markdown) to each row in `full` mode. Default: none.
Up to this many rows per page, 1 to 100. Default: 30. A page can hold fewer than `limit` rows where rows share a creation second or a block of 100 rows ends. Follow `page.nextCursor` until `hasMore` is false.
≥ 1 · ≤ 100
Cursor from `page.nextCursor` of the previous response. It only works with the same filters.
min 1 chars · max 1024 chars
Endpoint-specific response payload.
The site that was searched.
Which list below is filled.
one of: full, excerpt
The matching questions in `full` mode; null in `excerpt` mode.
Question id.
Link to the question.
Title, with HTML entities decoded.
Tags.
Votes up minus votes down.
Vote counts.
Upvotes.
Downvotes.
Views.
Answers.
Comments on the question.
Times favourited.
Whether it has an accepted or upvoted answer.
The accepted answer; null when none.
When it was asked, ISO 8601 UTC.
Last activity, ISO 8601 UTC.
Last edit, ISO 8601 UTC; null when never edited.
When it became a community wiki; null when it is not.
When it was protected; null when it is not.
When it was locked; null when it is not.
Why it was closed; null when it is open.
When it was closed, ISO 8601 UTC.
Why it was closed, e.g. `Duplicate`.
The explanation shown on the question, as HTML.
The users who voted to close.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
The questions this one duplicates.
Question id of the original.
Its title.
Its answer count.
Whether it has an accepted answer.
The open bounty; null when none.
Reputation offered.
When the bounty closes, ISO 8601 UTC.
Who offered it.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
The lock, protection or bounty banner; null when none.
The banner text as HTML (a lock, a protection or a bounty).
When the banner was put up, ISO 8601 UTC.
Who put it up.
Who asked it.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
Who edited it last; null when never edited.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
Content licence, e.g. `CC BY-SA 4.0`; null when the site does not say.
The site it was moved from; null when it was not moved.
The site it was moved to; null when it was not moved.
Question text as HTML; null on lists that were not asked for bodies.
Question text as Markdown; null on lists that were not asked for bodies.
The answers when asked for with `include=answers`; null otherwise.
Answer id.
The question it answers.
Title of the question it answers, with HTML entities decoded.
Tags of the question it answers, filled when the answer is nested in its question; empty on answer lists, which do not carry them.
Link to the answer.
Votes up minus votes down.
Vote counts.
Upvotes.
Downvotes.
Whether the asker accepted it.
When it was posted, ISO 8601 UTC.
Last edit or activity, ISO 8601 UTC.
Last edit, ISO 8601 UTC; null when never edited.
When it became a community wiki; null when it is not.
When it was locked; null when it is not.
Who wrote it.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
Who edited it last; null when never edited.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
Content licence, e.g. `CC BY-SA 4.0`.
Comments on the answer.
The bounty this answer was awarded; null when none.
Reputation awarded.
Who received it.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
Answer text as HTML; null when bodies were not asked for.
Answer text as Markdown; null when bodies were not asked for.
Comments on the answer when asked for with `include=comments`; null otherwise.
Comment id.
The question or answer the comment is on.
Whether the comment is on a question or an answer; null when not known.
one of: question, answer, null
Link to the comment.
Upvotes the comment received.
Whether the comment was edited. The flag comes from the route that returned the comment, so the same comment can differ between routes.
When it was written, ISO 8601 UTC.
Who wrote it.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
The user the comment is addressed to, when it is a reply. Null when the comment is not a reply; on the comments-by-post routes it is always null because those routes do not carry reply targets.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
Whether the comment's author wrote the post it is on; null on lists that do not carry it.
Content licence, e.g. `CC BY-SA 4.0`.
Comment text as HTML.
Comment text as Markdown; null on lists that do not carry it.
False when the list in `answers` has fewer answers than `answerCount` says the question has; null when answers were not asked for.
Comments on the question when asked for with `include=comments`; null otherwise.
Comment id.
The question or answer the comment is on.
Whether the comment is on a question or an answer; null when not known.
one of: question, answer, null
Link to the comment.
Upvotes the comment received.
Whether the comment was edited. The flag comes from the route that returned the comment, so the same comment can differ between routes.
When it was written, ISO 8601 UTC.
Who wrote it.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
The user the comment is addressed to, when it is a reply. Null when the comment is not a reply; on the comments-by-post routes it is always null because those routes do not carry reply targets.
User id on this site; null for a deleted user.
Network-wide account id, the same on every site.
Display name.
Profile URL.
Avatar URL.
Reputation on this site.
Kind of account.
one of: registered, moderator, unregistered, does_not_exist, team_admin, null
Percent of the user's questions with an accepted answer; null when not shown.
Whether the comment's author wrote the post it is on; null on lists that do not carry it.
Content licence, e.g. `CC BY-SA 4.0`.
Comment text as HTML.
Comment text as Markdown; null on lists that do not carry it.
The matching questions and answers in `excerpt` mode; null in `full` mode.
Whether the match is a question or an answer.
one of: question, answer
The question, or the question the answer belongs to.
The answer id for an answer match; null for a question.
Question title, with HTML entities decoded.
Link to the question or answer.
A snippet with the matched words in `<span class="highlight">`.
The full text of the match as plain text, with HTML entities decoded.
Tags of the question.
Score of the match.
Score of the question.
Whether the question is answered.
Whether the question has an accepted answer.
For an answer match, whether it is the accepted one.
Answers on the question.
When the match was posted, ISO 8601 UTC.
Last activity, ISO 8601 UTC.
Whether the search term was also matched as a tag.
Pagination state for the current page.
Whether another page is available.
Cursor for the next page; null on the last page.
True when the list stopped at the site's 25-page ceiling (2,500 rows, or 625 when the page carries text), or when a user's answer or comment list is too large for page-offset paging and has served its first 100 rows (25 when it carries text). Sort by `creation` to page deeper. False for every list that ends because it ran out.
Metadata describing the request and billing outcome.
Unique request identifier for tracing this API call.
min 1 chars
Credits charged for this request.
≥ 0
Public API version that served the response.
one of: v1
Code example
curl "https://api.socialfetch.dev/v1/stack-overflow/questions/search?q=segfault" \
-H "x-api-key: YOUR_API_KEY"Responses
Search results.