> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flipapp.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Authenticate and call the Flip REST API for products and related catalogue resources.

The Flip API gives you programmatic access to manage products and related catalogue
data in your organisation. Requests and responses use JSON.

## Base URL

```
https://api.flipapp.app/functions/v1/api
```

Endpoint pages in this reference use paths like `/api/products` relative to
`/functions/v1`.

## Authentication

Integrators typically authenticate with an **API key**. Include it on every
request:

```bash theme={null}
curl "https://api.flipapp.app/functions/v1/api/products" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Accept-Version: 1.0"
```

| Header           | Required               | Purpose                                                          |
| ---------------- | ---------------------- | ---------------------------------------------------------------- |
| `x-api-key`      | Yes (for API key auth) | Your organisation API key. The key is bound to one organisation. |
| `Accept-Version` | Recommended            | API version. Use `1.0`. Defaults to `1.0` if omitted.            |
| `Content-Type`   | For JSON bodies        | `application/json`                                               |

### Getting an API key

1. Sign in to Flip.
2. Open **Organisation settings → API keys**.
3. Create a key or copy an existing one.
4. Treat the key like a password — don't commit it or share it in public channels.

<Note>
  App sessions can also call the API with a Bearer JWT and must send
  `x-organization-id` for the active organisation. API keys do not need that
  header — the organisation comes from the key.
</Note>

## Response envelope

Successful and failed responses share a common shape:

```json theme={null}
{
  "success": true,
  "data": {},
  "meta": {},
  "error": null
}
```

| Field     | When present                                                 |
| --------- | ------------------------------------------------------------ |
| `success` | Always — `true` or `false`                                   |
| `data`    | On success — the resource or list                            |
| `meta`    | On paginated lists — `page`, `limit`, `total`, `total_pages` |
| `error`   | On failure — message and error code                          |

## Products

Start with the core product endpoints:

<Columns cols={2}>
  <Card title="List products" icon="list" href="/api-reference/products/list">
    Paginated product list with search and filters.
  </Card>

  <Card title="Get a product" icon="book-open" href="/api-reference/products/get">
    Full product detail, territories, sales rights, and collateral.
  </Card>

  <Card title="Create a product" icon="plus" href="/api-reference/products/create">
    Create a product, optionally with prices, contributors, and collateral.
  </Card>

  <Card title="Update a product" icon="pen-to-square" href="/api-reference/products/update">
    Partial updates with nested sync for related records.
  </Card>
</Columns>
