# Getting Started

> Published: 2026-08-06
> Updated: 2026-08-06
> Canonical: https://finalpos.com/docs/getting-started

The Final POS Public API is a JSON REST API at api.finalpos.com for managing point-of-sale resources such as products, customers, orders, taxes, and outlets. Endpoints are organized into singular CRUD routes, plural bulk routes, and multi-step workflow routes. Every request is authenticated with an API key created in the Final POS dashboard.

The Final POS Public API lets you programmatically manage the core resources that power your point-of-sale system — products, customers, orders, taxes, outlets, and more.

## Base URL

All requests are made against a single base URL:

```
https://api.finalpos.com
```

## Request & Response Format

- **Content type:** `application/json` for both requests and responses.
- **Character encoding:** UTF-8.

## API Structure

The API is organized into three areas (paths use your deployment’s API prefix, e.g. `/v1` or `/v1/api`):

| Area          | Convention                                                                                  | Example                                                                          |
| ------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| **CRUD**      | Singular endpoints for single-record operations (create, read, update, delete).             | `POST …/customer`, `GET …/customer/{id}`                                         |
| **Bulk**      | Plural endpoints for multi-record operations (bulk create, list, bulk update, bulk delete). | `POST …/customers`, `GET …/customers`                                            |
| **Workflows** | Multi-step operations composed across domains; all live under `…/workflows/<segment>`.      | `POST …/workflows/outlet-product`, `GET …/workflows/tax/by-tax-rate/{taxRateId}` |

## Test Your Connection

Before creating an API key, you can verify connectivity with the public health endpoint — it requires **no authentication**:

```
curl https://api.finalpos.com/v1/public/health
```

A `200 OK` response means you can reach the API.

Every other endpoint requires a valid `x-api-key` header. Calling one without a key (or with an invalid one) returns `401 Unauthorized` — that is the API working as intended, not an outage. Create a key and add the header as described in [Authentication](authentication.md), and the same request will succeed.

## Next Steps

- **[Authentication](authentication.md)** — Create an API key and learn how permissions work.
- **[API Reference](/openapi-reference/)** — Browse all available endpoints grouped by domain.