StackExchange's read API serves structured JSON — questions, answers, tags, and user activity — from the entire Stack Exchange network (Stack Overflow, Server Fault, and 100+ other Q&A sites) through one versioned endpoint that works fully anonymously for read access, just at a lower daily quota. A free registered application key raises that quota to 10,000 requests a day, and only write actions or private user-scoped data need the full OAuth flow. Both app registration and the API itself are completely free.
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.
GreatAPIs Score
Score94out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months
Embed this badge
<a href="https://greatapis.com/api/stackexchange/"><img src="https://greatapis.com/badge/stackexchange.svg" alt="Scored 94 on greatapis.com"></a>
Auth quickstart
No key needed — call it now.
Stored keyNo key stored
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
Servers
https://api.stackexchange.com/2.0
answers2
GET/answers
Parameters
Name
In
Required
Type
order
query
no
string
max
query
no
string
min
query
no
string
sort
query
no
string
fromdate
query
no
integer
todate
query
no
integer
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
site
query
yes
string
Responses
Status
Description
Schema
200
OK
answers
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
GET/answers/{ids}
Parameters
Name
In
Required
Type
ids
path
yes
string
order
query
no
string
max
query
no
string
min
query
no
string
sort
query
no
string
fromdate
query
no
integer
todate
query
no
integer
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
site
query
yes
string
Responses
Status
Description
Schema
200
OK
answers
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
questions3
GET/questions
Parameters
Name
In
Required
Type
tagged
query
no
string
order
query
no
string
max
query
no
string
min
query
no
string
sort
query
no
string
fromdate
query
no
integer
todate
query
no
integer
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
site
query
yes
string
Responses
Status
Description
Schema
200
OK
questions
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
GET/questions/{ids}
Parameters
Name
In
Required
Type
ids
path
yes
string
order
query
no
string
max
query
no
string
min
query
no
string
sort
query
no
string
fromdate
query
no
integer
todate
query
no
integer
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
site
query
yes
string
Responses
Status
Description
Schema
200
OK
questions
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
GET/questions/{ids}/answers
Parameters
Name
In
Required
Type
ids
path
yes
string
order
query
no
string
max
query
no
string
min
query
no
string
sort
query
no
string
fromdate
query
no
integer
todate
query
no
integer
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
site
query
yes
string
Responses
Status
Description
Schema
200
OK
answers
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
search2
GET/search
Parameters
Name
In
Required
Type
tagged
query
no
string
order
query
no
string
max
query
no
string
min
query
no
string
sort
query
no
string
fromdate
query
no
integer
todate
query
no
integer
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
site
query
yes
string
intitle
query
no
string
nottagged
query
no
string
Responses
Status
Description
Schema
200
OK
questions
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
GET/search/advanced
Parameters
Name
In
Required
Type
tagged
query
no
string
order
query
no
string
max
query
no
string
min
query
no
string
sort
query
no
string
fromdate
query
no
integer
todate
query
no
integer
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
site
query
yes
string
accepted
query
no
string
answers
query
no
integer
body
query
no
string
closed
query
no
string
migrated
query
no
string
notice
query
no
string
nottagged
query
no
string
q
query
no
string
title
query
no
string
url
query
no
string
user
query
no
integer
views
query
no
integer
wiki
query
no
string
Responses
Status
Description
Schema
200
OK
questions
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
sites1
GET/sites
Parameters
Name
In
Required
Type
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
Responses
Status
Description
Schema
200
OK
sites
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
tags1
GET/tags
Parameters
Name
In
Required
Type
inname
query
no
string
order
query
no
string
max
query
no
string
min
query
no
string
sort
query
no
string
fromdate
query
no
integer
todate
query
no
integer
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
site
query
yes
string
Responses
Status
Description
Schema
200
OK
tags
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
users2
GET/users
Parameters
Name
In
Required
Type
inname
query
no
string
order
query
no
string
max
query
no
string
min
query
no
string
sort
query
no
string
fromdate
query
no
integer
todate
query
no
integer
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
site
query
yes
string
Responses
Status
Description
Schema
200
OK
users
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
GET/users/{ids}
Parameters
Name
In
Required
Type
ids
path
yes
string
order
query
no
string
max
query
no
string
min
query
no
string
sort
query
no
string
fromdate
query
no
integer
todate
query
no
integer
pagesize
query
no
integer
page
query
no
integer
filter
query
no
string
callback
query
no
string
site
query
yes
string
Responses
Status
Description
Schema
200
OK
users
400
bad_parameter – 400 An invalid parameter was passed, this includes even "high level" parameters like key or site.
—
401
access_token_required – 401 A method that requires an access token (obtained via authentication) was called without one.
—
402
invalid_access_token – 402 An invalid access token was passed to a method.
—
403
access_denied – 403 A method which requires certain permissions was called with an access token that lacks those permissions.
—
404
no_method – 404 An attempt was made to call a method that does not exist. Note, calling methods that expect numeric ids (like /users/{ids}) with non-numeric ids can also result in this error.
—
405
key_required – 405 A method was called in a manner that requires an application key (generally, with an access token), but no key was passed.
—
406
access_token_compromised – 406 An access token is no longer believed to be secure, normally because it was used on a non-HTTPS call. The access token will be invalidated if this error is returned.
—
500
internal_error – 500 An unexpected error occurred in the API. It has been logged, and Stack Exchange developers have been notified. You should report these errors on Stack Apps if you want to be notified when they're fixed.
—
502
throttle_violation – 502 An application has violated part of the rate limiting contract, so the request was terminated.
—
503
temporarily_unavailable – 503 Some or all of the API is unavailable. Applications should backoff on requests to the method invoked.
—
Try it
Developer reference
Base URLhttps://api.stackexchange.com/2.0
Rate limit
300 requests/day per IP without an app key; 10,000 requests/day with a free registered app key