Simple API OpenAPI Files

Download an OpenAPI JSON file to use in your REST Client.

File Download Links

OpenAPI JSON files are available in the default format and in specific OpenAPI versions. The default openapi.json endpoint currently returns OpenAPI v 3.1.

Open OpenAPI 3.2 In Online UIs

Tool support for OpenAPI 3.2 is still emerging, so these links help compare how each UI handles the same file.

Standard validation

Open the user-facing Simple API OpenAPI 3.2 file.

Less validation

Open the more permissive Simple API OpenAPI 3.2 file for testing edge cases.

OpenAPI 3.2 describes QUERY as a native method. OpenAPI 3.0 and 3.1 include QUERY details using a vendor extension so tools that do not yet understand OpenAPI 3.2 can still load the file.

Example QUERY request:

QUERY /simpleapi/items HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: application/json

type=book

The same endpoint also supports JSONPath QUERY bodies:

QUERY /simpleapi/items HTTP/1.1
Content-Type: application/jsonpath
Accept: application/json

$.items[?(@.type == 'book')]

Useful JSONPath experiments include $.items, $.items[?(@.type == 'cd')], $.items[?(@.numberinstock == 0)], and $.items[?(@.type == 'book' && @.numberinstock > 0)].

The same endpoint also supports Thingifier Structured JSON QUERY bodies:

QUERY /simpleapi/items HTTP/1.1
Content-Type: application/vnd.thingifier.query+json
Accept: application/json

{"filter":{"type":"book"}}

Useful Structured JSON experiments include:

  • {"filter":{"type":"cd"}}
  • {"filter":{"numberinstock":{"greaterThan":0}}}
  • {"filter":{"price":{"lessThan":10}}}
  • {"filter":{"isbn13":{"contains":"123"}}}
  • {"filter":{"type":"book"},"sort":[{"field":"price","direction":"asc"}]}

Read HTTP Methods and Verbs for more about QUERY request bodies, JSONPath, and Structured JSON.

Normal OpenAPI File Explained

The Normal OpenAPI File is intended for use as though you were a user.

It only lists endpoints that are valid to use, and has additional validation on the URL Parameters that you can enter.

When this type of file is loaded into a Swagger UI Generation application it makes it easy to USE the API but makes it harder to TEST the API.

Permissive OpenAPI File Explained

The Permissive OpenAPI File is intended for testing.

It lists all the end points with more Verbs i.e. even verbs that the API defines as not available.

The parameters are also possible to send as empty and type validation is not performed on the parameter values. This makes it possible to use Swagger UI applications to test more extreme situations.