Development — entry 040 of 98

Httpbin

Verified Jul 2026

Httpbin.org is Kenneth Reitz's classic HTTP testing service — hit any of its endpoints (/get, /post, /headers, /status/<code>, /delay/<n>, and more) and it echoes back exactly what your client sent, making it a staple for debugging request/response behavior, auth headers, redirects, and streaming. It needs no key and returns JSON by default, with dedicated endpoints for HTML, XML, and binary payloads too. Now maintained by Postman under the postmanlabs org, the service is known for intermittent outages under load — this session hit repeated 503s from its AWS load balancer before it recovered — so momentary unavailability is a known quirk, not a sign the service is gone.

httptestingdebuggingmock-api
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.
FormatsJSON, HTML, XMLResponses can be requested as JSON or HTML or XML.

GreatAPIs Score

Score100out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats15/15Supports 3 response formats
Freshness20/20Verified within 6 months

Embed this badge

Scored 100 on greatapis.com
<a href="https://greatapis.com/api/httpbin/"><img src="https://greatapis.com/badge/httpbin.svg" alt="Scored 100 on greatapis.com"></a>

Auth quickstart

  1. 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://httpbin.org/
HTTP Methods1

Testing different HTTP verbs

GET/getThe request's query parameters.
Responses
StatusDescriptionSchema
200The request's query parameters.—
Auth6

Auth methods

GET/basic-auth/{user}/{passwd}Prompts the user for authorization using HTTP Basic Auth.
Parameters
NameInRequiredType
userpathyesstring
passwdpathyesstring
Responses
StatusDescriptionSchema
200Sucessful authentication.—
401Unsuccessful authentication.—
GET/bearerPrompts the user for authorization using bearer authentication.
Parameters
NameInRequiredType
Authorizationheaderno—
Responses
StatusDescriptionSchema
200Sucessful authentication.—
401Unsuccessful authentication.—
GET/digest-auth/{qop}/{user}/{passwd}Prompts the user for authorization using Digest Auth.
Parameters
NameInRequiredType
qoppathyesstring
userpathyesstring
passwdpathyesstring
Responses
StatusDescriptionSchema
200Sucessful authentication.—
401Unsuccessful authentication.—
GET/digest-auth/{qop}/{user}/{passwd}/{algorithm}Prompts the user for authorization using Digest Auth + Algorithm.
Parameters
NameInRequiredType
qoppathyesstring
userpathyesstring
passwdpathyesstring
algorithmpathyesstring
Responses
StatusDescriptionSchema
200Sucessful authentication.—
401Unsuccessful authentication.—
GET/digest-auth/{qop}/{user}/{passwd}/{algorithm}/{stale_after}Prompts the user for authorization using Digest Auth + Algorithm.
Parameters
NameInRequiredType
qoppathyesstring
userpathyesstring
passwdpathyesstring
algorithmpathyesstring
stale_afterpathyesstring
Responses
StatusDescriptionSchema
200Sucessful authentication.—
401Unsuccessful authentication.—
GET/hidden-basic-auth/{user}/{passwd}Prompts the user for authorization using HTTP Basic Auth.
Parameters
NameInRequiredType
userpathyesstring
passwdpathyesstring
Responses
StatusDescriptionSchema
200Sucessful authentication.—
404Unsuccessful authentication.—
Status codes1

Generates responses with given status code

GET/status/{codes}Return status code or random status code if more than one are given
Parameters
NameInRequiredType
codespathyes—
Responses
StatusDescriptionSchema
100Informational responses—
200Success—
300Redirection—
400Client Errors—
500Server Errors—
Request inspection3

Inspect the request data

GET/headersReturn the incoming request's HTTP headers.
Responses
StatusDescriptionSchema
200The request's headers.—
GET/ipReturns the requester's IP Address.
Responses
StatusDescriptionSchema
200The Requester's IP Address.—
GET/user-agentReturn the incoming requests's User-Agent header.
Responses
StatusDescriptionSchema
200The request's User-Agent header.—
Response inspection4

Inspect the response data like caching and headers

GET/cacheReturns a 304 if an If-Modified-Since header or If-None-Match is present. Returns the same as a GET otherwise.
Parameters
NameInRequiredType
If-Modified-Sinceheaderno—
If-None-Matchheaderno—
Responses
StatusDescriptionSchema
200Cached response—
304Modified—
GET/cache/{value}Sets a Cache-Control header for n seconds.
Parameters
NameInRequiredType
valuepathyesinteger
Responses
StatusDescriptionSchema
200Cache control set—
GET/etag/{etag}Assumes the resource has the given etag and responds to If-None-Match and If-Match headers appropriately.
Parameters
NameInRequiredType
If-None-Matchheaderno—
If-Matchheaderno—
Responses
StatusDescriptionSchema
200Normal response—
412match—
GET/response-headersReturns a set of response headers from the query string.
Parameters
NameInRequiredType
freeformqueryno—
Responses
StatusDescriptionSchema
200Response headers—
Response formats9

Returns responses in different data formats

GET/brotliReturns Brotli-encoded data.
Responses
StatusDescriptionSchema
200Brotli-encoded data.—
GET/deflateReturns Deflate-encoded data.
Responses
StatusDescriptionSchema
200Defalte-encoded data.—
GET/denyReturns page denied by robots.txt rules.
Responses
StatusDescriptionSchema
200Denied message—
GET/encoding/utf8Returns a UTF-8 encoded body.
Responses
StatusDescriptionSchema
200Encoded UTF-8 content.—
GET/gzipReturns GZip-encoded data.
Responses
StatusDescriptionSchema
200GZip-encoded data.—
GET/htmlReturns a simple HTML document.
Responses
StatusDescriptionSchema
200An HTML page.—
GET/jsonReturns a simple JSON document.
Responses
StatusDescriptionSchema
200An JSON document.—
GET/robots.txtReturns some robots.txt rules.
Responses
StatusDescriptionSchema
200Robots file—
GET/xmlReturns a simple XML document.
Responses
StatusDescriptionSchema
200An XML document.—
Dynamic data9

Generates random and dynamic data

GET/base64/{value}Decodes base64url-encoded string.
Parameters
NameInRequiredType
valuepathyesstring
Responses
StatusDescriptionSchema
200Decoded base64 content.—
GET/bytes/{n}Returns n random bytes generated with given seed
Parameters
NameInRequiredType
npathyesint
Responses
StatusDescriptionSchema
200Bytes.—
GET/delay/{delay}Returns a delayed response (max of 10 seconds).
Parameters
NameInRequiredType
delaypathyesint
Responses
StatusDescriptionSchema
200A delayed response.—
GET/dripDrips data over a duration after an optional initial delay.
Parameters
NameInRequiredType
durationquerynonumber
numbytesquerynointeger
codequerynointeger
delayquerynonumber
Responses
StatusDescriptionSchema
200A dripped response.—
GET/links/{n}/{offset}Generate a page containing n links to other pages which do the same.
Parameters
NameInRequiredType
npathyesint
offsetpathyesint
Responses
StatusDescriptionSchema
200HTML links.—
GET/range/{numbytes}Streams n random bytes generated with given seed, at given chunk size per packet.
Parameters
NameInRequiredType
numbytespathyesint
Responses
StatusDescriptionSchema
200Bytes.—
GET/stream-bytes/{n}Streams n random bytes generated with given seed, at given chunk size per packet.
Parameters
NameInRequiredType
npathyesint
Responses
StatusDescriptionSchema
200Bytes.—
GET/stream/{n}Stream n JSON responses
Parameters
NameInRequiredType
npathyesint
Responses
StatusDescriptionSchema
200Streamed JSON responses.—
GET/uuidReturn a UUID4.
Responses
StatusDescriptionSchema
200A UUID4.—
Cookies4

Creates, reads and deletes Cookies

GET/cookiesReturns cookie data.
Responses
StatusDescriptionSchema
200Set cookies.—
GET/cookies/deleteDeletes cookie(s) as provided by the query string and redirects to cookie list.
Parameters
NameInRequiredType
freeformqueryno—
Responses
StatusDescriptionSchema
200Redirect to cookie list—
GET/cookies/setSets cookie(s) as provided by the query string and redirects to cookie list.
Parameters
NameInRequiredType
freeformqueryno—
Responses
StatusDescriptionSchema
200Redirect to cookie list—
GET/cookies/set/{name}/{value}Sets a cookie and redirects to cookie list.
Parameters
NameInRequiredType
namepathyesstring
valuepathyesstring
Responses
StatusDescriptionSchema
200Set cookies and redirects to cookie list.—
Images5

Returns different image formats

GET/imageReturns a simple image of the type suggest by the Accept header.
Responses
StatusDescriptionSchema
200An image.—
GET/image/jpegReturns a simple JPEG image.
Responses
StatusDescriptionSchema
200A JPEG image.—
GET/image/pngReturns a simple PNG image.
Responses
StatusDescriptionSchema
200A PNG image.—
GET/image/svgReturns a simple SVG image.
Responses
StatusDescriptionSchema
200An SVG image.—
GET/image/webpReturns a simple WEBP image.
Responses
StatusDescriptionSchema
200A WEBP image.—
Redirects4

Returns different redirect responses

GET/absolute-redirect/{n}Absolutely 302 Redirects n times.
Parameters
NameInRequiredType
npathyesint
Responses
StatusDescriptionSchema
302A redirection.—
GET/redirect-to302/3XX Redirects to the given URL.
Parameters
NameInRequiredType
urlqueryyesstring
status_codequerynoint
Responses
StatusDescriptionSchema
302A redirection.—
GET/redirect/{n}302 Redirects n times.
Parameters
NameInRequiredType
npathyesint
Responses
StatusDescriptionSchema
302A redirection.—
GET/relative-redirect/{n}Relatively 302 Redirects n times.
Parameters
NameInRequiredType
npathyesint
Responses
StatusDescriptionSchema
302A redirection.—
Anything2

Returns anything that is passed to request

GET/anythingReturns anything passed in request data.
Responses
StatusDescriptionSchema
200Anything passed in request—
GET/anything/{anything}Returns anything passed in request data.
Responses
StatusDescriptionSchema
200Anything passed in request—

Try it

Developer reference

Base URLhttps://httpbin.org
Key endpoints
  • GET/get
  • GET/headers
  • GET/ip
  • GET/status/{codes}

Availability

Uptime100%
Median latency243 ms
Last checkUp · 200 · Sep 2026

9 checks since Sep 2026. A person runs this check by hand, not an automated monitor.