httpstat.us
This is a super simple service for generating different HTTP codes.
It's useful for testing how your own scripts deal with varying responses.
Just add the status code you want to the URL, like this: httpstat.us/200.
We'll return a response like this:
HTTP/1.1 {status code} {status description}
Content-Type: text/plain or application/json
Content-Length: {something}
{any custom response headers}
{status code} {status description}
{list of any custom response headers we added}
To get a JSON response back, you need to ensure that the Accept header contains 'application/json'. Then we'll JSON encode the response and send the Content-Type header accordingly.
To get a random response back, use the random/{range}
endpoint,
for example
httpstat.us/random/200,201,500-504.
You can duplicate ranges in order to increase their probability.
If you want a delay on the response add a query string or provide a header of X-HttpStatus-Sleep
for the sleep duration (the time in ms, max 5 minutes*), like this:
httpstat.us/200?sleep=5000.
*When using the hosted instance the timeout is actually 230 seconds, which is the max timeout allowed by an Azure App Service (see this thread post). If you host it yourself expect the limits to be different.
If you want to return additional headers to the client, you can send them in the request with the X-HttpStatus-Response-
prefix. A header of X-HttpStatus-Response-Foo: Bar
will append the Foo: Bar
header in the response.
Here are all the codes we support (and any special notes):
- 100
- Continue
- 101
- Switching Protocols
- 102
- Processing
- 103
- Early Hints
- 200
- OK
- 201
- Created
- 202
- Accepted
- 203
- Non-Authoritative Information
- 204
- No Content
- 205
- Reset Content
- 206
- Partial Content
- 207
- Multi-Status
- 208
- Already Reported
- 226
- IM Used
- 300
- Multiple Choices
- 301
- Moved Permanently
- 302
- Found
- 303
- See Other
- 304
- Not Modified
- 305
- Use Proxy
- 306
- Switch Proxy
- 307
- Temporary Redirect
- 308
- Permanent Redirect
- 400
- Bad Request
- 401
- Unauthorized
- 402
- Payment Required
- 403
- Forbidden
- 404
- Not Found
- 405
- Method Not Allowed
- 406
- Not Acceptable
- 407
- Proxy Authentication Required
- 408
- Request Timeout
- 409
- Conflict
- 410
- Gone
- 411
- Length Required
- 412
- Precondition Failed
- 413
- Request Entity Too Large
- 414
- Request-URI Too Long
- 415
- Unsupported Media Type
- 416
- Requested Range Not Satisfiable
- 417
- Expectation Failed
- 418
- I'm a teapot
- 421
- Misdirected Request
- 422
- Unprocessable Entity
- 423
- Locked
- 424
- Failed Dependency
- 425
- Too Early
- 426
- Upgrade Required
- 428
- Precondition Required
- 429
- Too Many Requests
- 431
- Request Header Fields Too Large
- 451
- Unavailable For Legal Reasons
- 500
- Internal Server Error
- 501
- Not Implemented
- 502
- Bad Gateway
- 503
- Service Unavailable
- 504
- Gateway Timeout
- 505
- HTTP Version Not Supported
- 506
- Variant Also Negotiates
- 507
- Insufficient Storage
- 508
- Loop Detected
- 510
- Not Extended
- 511
- Network Authentication Required
- 419
- CSRF Token Missing or Expired (non-standard status code)
- 420
- Enhance Your Calm (non-standard status code)
- 440
- Login Time-out (non-standard status code)
- 444
- No Response (non-standard status code)
- 449
- Retry With (non-standard status code)
- 450
- Blocked by Windows Parental Controls (non-standard status code)
- 460
- Client closed the connection with AWS Elastic Load Balancer (non-standard status code)
- 463
- The load balancer received an X-Forwarded-For request header with more than 30 IP addresses (non-standard status code)
- 494
- Request header too large (non-standard status code)
- 495
- SSL Certificate Error (non-standard status code)
- 496
- SSL Certificate Required (non-standard status code)
- 497
- HTTP Request Sent to HTTPS Port (non-standard status code)
- 498
- Invalid Token (Esri) (non-standard status code)
- 499
- Client Closed Request (non-standard status code)
- 520
- Web Server Returned an Unknown Error (non-standard status code)
- 521
- Web Server Is Down (non-standard status code)
- 522
- Connection Timed out (non-standard status code)
- 523
- Origin Is Unreachable (non-standard status code)
- 524
- A Timeout Occurred (non-standard status code)
- 525
- SSL Handshake Failed (non-standard status code)
- 526
- Invalid SSL Certificate (non-standard status code)
- 527
- Railgun Error (non-standard status code)
- 530
- Origin DNS Error (non-standard status code)
- 561
- Unauthorized (AWS Elastic Load Balancer) (non-standard status code)
If you need to enable CORS, all endpoints have been configured to allow all origins, headers, and HTTP methods.
If you send any other three digit number that's not in that list, we'll return it too. Or, send us a pull request to add full support for a new code.
Enjoy!