# What you need

> Parklio has no sandbox or simulator: every integration works against real hardware.
> This page lists what to request, buy and set up **before** you write code.

## Checklist

- [ ] **An API account**, provisioned by Parklio, with its **Super Admin** credentials.
- [ ] **An API subscription for each product** you'll control through the API.
- [ ] **Hardware:** at least one Parklio product.
- [ ] **A Gateway on the same lot**, online and in Bluetooth range of your products, if
      you'll control them remotely (from your backend, Zapier or the PMS).
- [ ] **Products and Gateway paired** with your account, using the Parklio Connect app.
- [ ] **An API token**, created once by the Super Admin.

Which of these you need depends on your path; see [Choose your path](/get-started/choose-your-path).
For example, an app built with the Parklio SDK talks to products over Bluetooth and
doesn't need a Gateway.

## 1. Get an API account

Contact [info@parklio.com](mailto:info@parklio.com). Parklio provisions a dedicated
**API account** for your integration, and you receive the credentials of its **Super
Admin**: the user who pairs your hardware in the Connect app and creates your API
tokens.

Use this account for your integration rather than an existing Parklio Connect account.
A Connect account is meant for a single lot.

## 2. Subscribe each product to the API

Controlling a product through the API needs an active API subscription **for that
product**: subscriptions are per product, per month. Start one in the API tab at
[subscriptions.parklio.com](https://subscriptions.parklio.com/?product=api).

Without it, remote-control calls such as
[`POST /v2/products/{id}/state`](/api/endpoints/products-change-state) return 403 with
error code `30`. See [Plans and permissions](/concepts/plans-and-permissions).

## 3. Get the hardware

Pick products based on what you're protecting or monitoring:

| Product | Use case |
| --- | --- |
| [Parklio Barrier](https://parklio.com/en/parking-protection/parking-barrier) | Reserve and protect a single parking space |
| Parklio Gate, Chain or Bollard | Control vehicle access to a lot or zone |
| Parklio Brain | Retrofit an existing gate or garage door so Parklio can control it |
| Parklio LPR camera | Recognize license plates at entries and exits |
| Parklio Gateway ([manual](https://parklio.com/assets/support/gateway/Parklio-Gateway-UM.pdf)) | Connects your products to the Parklio cloud; needed for remote control |

Purchasing goes through the Parklio team directly; there's no self-serve storefront.
Email [info@parklio.com](mailto:info@parklio.com) with the products you're interested
in and a short description of your use case. The team will help size your order: how
many products and how much Gateway coverage your lot needs.

Hardware and API access are purchased separately: you need both.

Manuals:
[Barrier](https://parklio.com/assets/support/barrier/Parklio-barrier-usermanual.pdf) ·
[Gateway](https://parklio.com/assets/support/gateway/Parklio-Gateway-UM.pdf)

## 4. Pair the hardware with the Connect app

The only way to add products and Gateways to an account is the **Parklio Connect app**
(called "Parklio" in the app stores). The API has no pairing endpoints. Log in to the
app with your **Super Admin** credentials.

**Add a product**

1. In the **Lots** tab, select the lot and zone.
2. Add the product, following its manual (for example the
   [Barrier user manual](https://parklio.com/assets/support/barrier/Parklio-barrier-usermanual.pdf)).

**Add a Gateway**

1. Make sure the Gateway has a network connection (Ethernet or mobile), following the
   [Gateway manual](https://parklio.com/assets/support/gateway/Parklio-Gateway-UM.pdf).
2. On the lot screen, before tapping **Add**, put the Gateway into pairing mode with a
   short press of its power button. Its LEDs start blinking.
3. Tap **Add** to link the Gateway to the lot.

Add the Gateway to the **same lot** as the products it should reach.

## 5. Create an API token

Log in **once** through the API as the Super Admin, and create an API token. Your
integration then uses only the API token. See [Authentication](/api/authentication).

:::warning
Logging in through the API signs that user out of the Connect app. Never log in with a
person's credentials at runtime.
:::

## Verify it worked

- [`GET /v2/products`](/api/endpoints/products-find-all) with your API token lists your
  products.
- The products you'll control remotely show `"status": "online"`.

If a product stays offline, see [Troubleshooting](/resources/troubleshooting).

## Next

Make your first call with the [Quickstart](/get-started/quickstart).
