exe.st

Simple tools for testing your API calls.

These tools provide quick, memorable ways to test your connections or API calls.

Endpoints:

Base endpoints:

Any of the following base endpoints are valid:

/api

When working with an HTTP request library or designing an HTML form, there is a need to see what the library or your browser is sending as a request. Did it send an Authorization header? What form data did it send? Simply swap the API's endpoint or your form's action with https://exe.st/api to get those answers.

Response:

Returns the request headers, query string, and post data from the user agent or browser. Coming soon: cookies.

The response is formatted as indented JSON. The following sections will be included if the corresponding data is sent:

Example:

$ curl http://exe.st/api
{
  "request_headers": {
    "accept": "*/*",
    "content-length": "0",
    "host": "exe.st",
    "user-agent": "curl/7.64.1",
    "x-forwarded-for": "192.0.2.127",
    "x-forwarded-port": "443",
    "x-forwarded-proto": "https"
  }
}

Example (GET):

$ curl 'http://exe.st/api?first_name=Gary&last_name=Smith&first_name=Leroy'
{
  "parsed_query_string": [
    {
      "key": "first_name",
      "value": "Gary"
    },
    {
      "key": "last_name",
      "value": "Smith"
    },
    {
      "key": "first_name",
      "value": "Leroy"
    }
  ],
  "raw_query_string": "first_name=Gary&last_name=Smith&first_name=Leroy",
  "request_headers": {
    "accept": "*/*",
    "content-length": "0",
    "host": "exe.st",
    "user-agent": "curl/7.64.1",
    "x-forwarded-for": "192.0.2.127",
    "x-forwarded-port": "443",
    "x-forwarded-proto": "https"
  }
}

Example (POST):

$ curl http://exe.st/api -d 'first_name=Gary&last_name=Smith&first_name=Leroy'
{
  "parsed_post_data": [
    {
      "key": "first_name",
      "value": "Gary"
    },
    {
      "key": "last_name",
      "value": "Smith"
    },
    {
      "key": "first_name",
      "value": "Leroy"
    }
  ],
  "raw_post_data": "Zmlyc3RfbmFtZT1HYXJ5Jmxhc3RfbmFtZT1TbWl0aCZmaXJzdF9uYW1lPUxlcm95",
  "request_headers": {
    "accept": "*/*",
    "content-length": "48",
    "content-type": "application/x-www-form-urlencoded",
    "host": "exe.st",
    "user-agent": "curl/7.64.1",
    "x-forwarded-for": "192.0.2.127",
    "x-forwarded-port": "443",
    "x-forwarded-proto": "https"
  }
}

/api/{HTTP code}

How does your code handle errors returned from an API? Testing that can be tricky since you may not be able to get the API to generate the errors you want to test. With this endpoint, swap the endpoint to the API with https://exe.st/api/{the error code you want to test} to see how your code reacts.

This function supports all 97 accepted and unofficial HTTP status codes detailed on the Wikipedia List of HTTP status codes page.

Response:

For most HTTP status codes, this simply returns the code you request. Exceptions are noted below under each status code.

A body is returned with each error, but it is irrelevant. The status code from the response header is what's important.

2xx Success:

Example 200 - OK
$ curl -I http://exe.st/api/200
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 496
Connection: keep-alive
Date: Wed, 24 Feb 2021 23:02:12 GMT
...

3xx Redirection:

301 and 302 redirects - A "location" header is included pointing to https://exe.st, using the protocol with which it was requested.
Example 301 - Moved Permanently
$ curl -I https://exe.st/api/301
HTTP/2 301 
content-type: text/html
content-length: 503
location: https://exe.st
date: Thu, 25 Feb 2021 02:03:06 GMT
...

4xx Client Errors:

401 Unauthorized - A "www-authenticate" header is included requesting basic authentication.

You can specify a different authentication scheme to be returned by adding it to the endpoint. Available schemes are 'basic', 'bearer', 'digest', 'hoba', 'mutual', and 'aws4-hmac-sha256'.
Example 401 - Unauthorized (default)
$ curl -i https://exe.st/api/401
HTTP/2 401 
content-type: text/html
content-length: 524
date: Thu, 25 Feb 2021 16:38:29 GMT
www-authenticate: Basic realm="Access to the exe.st API.", charset="UTF-8"
...
Example 401 - Unauthorized (bearer)
$ curl -i https://exe.st/api/401/bearer
HTTP/2 401 
content-type: text/html
content-length: 524
date: Thu, 25 Feb 2021 16:45:03 GMT
www-authenticate: Bearer realm="Access to the exe.st API.", charset="UTF-8"
...

5xx Server Errors:

Example 503 - Service Unavailable
$ curl -i https://exe.st/api/503
HTTP/2 503 
content-type: text/html
content-length: 531
date: Thu, 25 Feb 2021 16:34:42 GMT
...

/api/auth

Is your code authorizing properly? Use this endpoint to test if your code is sending credentials properly.

Response:

Responds with an HTTP status code of 200 OK if authentication is successful. Returns a code of 403 Forbidden if authentication failed.

You can specify the authentication scheme to require by including the scheme in the endpoint. Otherwise, any of the following will succeed with the right credentials. For example, to require "bearer" authentication, call https://exe.st/auth/bearer. Supported schemes are 'basic' and 'bearer'.

Basic Authentication:

A username of "guest" and a password of "pencil" will return a status code of 200. Any other credentials or no credentials will return a 403 Forbidden.
Example 200 - OK (valid credentials)
$ curl -i -u guest:pencil https://exe.st/api/auth/basic
HTTP/2 200 
content-type: text/html
content-length: 504
date: Thu, 25 Feb 2021 17:31:56 GMT
...
Example 403 - Forbidden (wrong password)
$ curl -i -u guest:1234 https://exe.st/api/auth/basic
HTTP/2 403 
content-type: text/html
content-length: 521
date: Thu, 25 Feb 2021 17:48:29 GMT
...

Bearer Authentication:

A token of "0123456789" will return a status code of 200. Any other token or no token will return a 403 Forbidden.
Example 200 - OK (corrent token)
$ curl -i -H 'Authorization: Bearer 0123456789' https://exe.st/api/auth/bearer
HTTP/2 200 
content-type: text/html
content-length: 504
date: Thu, 25 Feb 2021 22:01:50 GMT
...
Example 403 - Forbidden (wrong token)
$ curl -i -H 'Authorization: Bearer AaAaAaAaA' https://exe.st/api/auth/bearer
HTTP/2 403 
content-type: text/html
content-length: 521
date: Thu, 25 Feb 2021 17:55:38 GMT
...

/ip

Do you need to whitelist your IP address? Sometimes your address isn't obvious since VPNs and proxy servers will present a different IP than your router. This tells you what a server sees as your external IP address for HTTP requests.

Response:

Returns your IP address as seen by a server outside your local network.

The output is returned as plaintext.

Example:

$ curl http://exe.st/ip
192.0.2.127

/minecraft/circle

Building a large circular structure in Minecraft can be challenging. This endpoint generates a list of coordinates for a circle based on the radius (r) and center coordinates (x and z) specified in the query string.

Response:

Returns a list of x,z coordinates.

The output is returned as plaintext.

Example:

$ curl 'http://exe.st/minecraft/circle?r=59&x=14&z=134'
-45,134
-45,135
-45,136
-45,137
-45,138
-45,139
-45,140
-45,141
-44,142
-44,143
-44,144
-44,145
-44,146
-44,147
-43,148
-43,149
-43,150
-42,151
...