# OpenAPI definition

> The Endpoints reference in these docs is generated from a **curated** copy of the
> Parklio API's OpenAPI definition. Download it and use it directly:

**[Download the curated OpenAPI definition](pathname:///openapi/parklio.json)**
(`https://docs.parklio.com/openapi/parklio.json`)

It's curated, which means:

- it lists only the operations meant for integrators, grouped the same way as this
  reference; internal and device-facing operations are left out;
- operation ids are stable and readable, for example `products-change-state`;
- documentation errors in the raw definition are corrected, for example the error
  examples and the API-token create response.

## Using the definition

Import the JSON into Postman, Insomnia or any other OpenAPI-compatible tool, or
generate a typed client from it, for example:

```bash title="Generate a TypeScript client"
npx @openapitools/openapi-generator-cli generate \
  -i https://docs.parklio.com/openapi/parklio.json \
  -g typescript-fetch \
  -o ./parklio-client
```

Most endpoints require a bearer token. See [Authentication](./authentication.md)
for how to get one.

## The raw definition

The API also serves its own, uncurated definition. It includes operations that aren't
for integrators, and it changes with every API deploy. Prefer the curated file above.

| | Link |
| --- | --- |
| Interactive Swagger UI | [api.parklio.com/api](https://api.parklio.com/api) |
| Raw OpenAPI JSON | [api.parklio.com/api-json](https://api.parklio.com/api-json) |
