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!