> For the complete documentation index, see [llms.txt](https://docs.flowbookings.io/knowledgebase/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flowbookings.io/knowledgebase/integrations/zapier-integration-guide/api-reference.md).

# API Reference

The FlowBookings Zapier API allows you to connect your booking system with thousands of other apps. Use triggers to react when bookings are created or updated, and actions to manage your bookings automatically.

### Quick Links

* [**Bookings**](/knowledgebase/integrations/zapier-integration-guide/api-reference/bookings.md) - Retrieve and update booking information
* [**Services**](/knowledgebase/integrations/zapier-integration-guide/api-reference/bookings.md) - Access your service catalogue

### Authentication

Every API request must include your FlowBookings API key.

#### How to Get Your API Key

1. Log in to your FlowBookings account
2. Go to **Dashboard → Integrations → API Key**
3. Copy your API key (or generate a new one if needed)

#### How to Use Your API Key

Include your API key in the `x-api-key` header on every request:

```bash
curl https://api.flowbookings.io/api/zapier/bookings?page=1 \
  -H "x-api-key: your_api_key_here"
```

#### Security

* **Keep it private**: Never share your API key in public forums or code repositories
* **Account access**: Your API key only accesses your own bookings and services
* **If compromised**: Generate a new key immediately from your dashboard

### Base URL

All API requests should be made to:

```
https://api.flowbookings.io
```

### Response Format

All successful responses return data in JSON format with this structure:

```json
{
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 25,
    "hasMore": false
  }
}
```

### Pagination

List endpoints return paginated results. Use these parameters to navigate through pages:

* `page` - Page number (starts at 1)
* `limit` - Items per page (1-100, default: 25)
* `hasMore` - Boolean indicating if more pages exist

**Example:**

```bash
# Get page 2 with 50 items per page
GET /api/zapier/bookings?page=2&limit=50
```

### Filtering

Some endpoints support filtering to retrieve specific data:

* `status` - Filter bookings by status (PENDING, APPROVED, CANCELED, etc.)
* `updatedSince` - Get only items updated after a specific date

**Example:**

```bash
# Get only approved bookings updated since March 1st
GET /api/zapier/bookings?status=APPROVED&updatedSince=2024-03-01T00:00:00.000Z
```

### Error Handling

When something goes wrong, the API returns an error response:

```json
{
  "error": "validation_error",
  "messages": ["Invalid status. Use: APPROVED, PENDING, CANCELED, NO_SHOW, REJECTED, or COMPLETED"]
}
```

**Common error codes:**

* `unauthorized` - API key is missing or invalid
* `validation_error` - Request contains invalid data
* `not_found` - Requested item doesn't exist
* `server_error` - Something went wrong on our end

### Support

Need help with the API? Contact us: <https://www.flowbookings.io/contact>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.flowbookings.io/knowledgebase/integrations/zapier-integration-guide/api-reference.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
