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

# API Overview

This section provides an overview of how to use the Gleap API, including authentication and querying.

## Two server-side APIs

Gleap ships two server-side APIs — this page documents the **admin REST API**, where everything happens **as your team**: tickets you create belong to the project, replies you post are teammate replies.

To build your own support experience on top of Gleap — creating conversations and sending messages **as the end customer** from your backend, with every event pushed back to you — use the [Conversations API (server-to-server)](/documentation/s2s/overview) instead.

|         | Admin REST API (this page)                           | [Conversations API](/documentation/s2s/overview)                                                            |
| ------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| Acts as | Your team                                            | The end customer                                                                                            |
| Use for | Automation, reporting, syncing tickets & contacts    | Headless support: your own chat UI, backend-to-backend                                                      |
| Auth    | `Authorization: Bearer <API key>` + `Project` header | `Authorization: Bearer <service-account token>`                                                             |
| Events  | —                                                    | [Realtime stream](/documentation/s2s/stream) (recommended) + [signed webhooks](/documentation/s2s/webhooks) |
| Spec    | —                                                    | [OpenAPI](https://api.gleap.io/s2s-openapi.json)                                                            |

## Base URL

All API requests should be made to your region's API host, followed by `/v3`:

```
https://api.gleap.io/v3
```

The API host depends on the [data region](/documentation/guides/data-regions) of your project:

| Data region  | API host                  |
| ------------ | ------------------------- |
| EU (default) | `https://api.gleap.io`    |
| US           | `https://api.us.gleap.ai` |

<Info>
  The examples on this page use the EU host. If your project lives in another region, replace `https://api.gleap.io` with your region's host. API tokens are per project and only valid in the project's region.
</Info>

## Authentication

The Gleap API uses Bearer token authentication along with a project identifier header.

### Getting your API Key and Project ID

1. Navigate to your [Gleap dashboard](https://app.gleap.ai)
2. Go to **Project Settings** → **Security** → **API Key**
3. Generate your API key
4. Your **Project ID** is also displayed on this page

<Warning>
  Keep your API key secure and never expose it in client-side code or public
  repositories.
</Warning>

### Required Headers

Include both headers in every API request:

```
Authorization: Bearer YOUR_API_KEY
Project: YOUR_PROJECT_ID
```

**Example request:**

```bash theme={null}
curl -X GET https://api.gleap.io/v3/tickets \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Project: YOUR_PROJECT_ID" \
  -H "Content-Type: application/json"
```

## Querying

All find endpoints (GET requests that return lists of resources) support querying on any property that exists on the document.

### Discovering Available Properties

To see which attributes are available on a document, fetch a single document first:

```bash theme={null}
curl -X GET https://api.gleap.io/v3/tickets/TICKET_ID \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Project: YOUR_PROJECT_ID"
```

This will return the full document structure showing all available properties you can query on.

### Query Examples

#### Exact Match

Query for tickets with a specific status:

```
GET https://api.gleap.io/v3/tickets?status=OPEN
```

Query for tickets assigned to a specific user:

```
GET https://api.gleap.io/v3/tickets?processingUser=user123
```

#### Date Range Queries

Query using comparison operators (`>=`, `<=`, `>`, `<`) for date fields:

```
GET https://api.gleap.io/v3/tickets?createdAt>=2025-09-01T00:00:00.000Z&createdAt<=2025-09-01T23:00:00.000Z
```

This example fetches all tickets created on September 1st, 2025 (between 00:00:00 and 23:00:00 UTC).

**Date format:** Use ISO 8601 format: `YYYY-MM-DDTHH:mm:ss.sssZ`

#### Combining Multiple Query Parameters

You can combine multiple query parameters using `&`:

```
GET https://api.gleap.io/v3/tickets?status=OPEN&priority=HIGH&createdAt>=2025-01-01T00:00:00.000Z
```

This returns all open tickets with high priority created after January 1st, 2025.

#### Multiple Values

Query for documents matching any of several values:

```
GET https://api.gleap.io/v3/tickets?status=OPEN,DONE,INPROGRESS
```

## Rate Limits

The API enforces rate limits to ensure fair usage. Limits are applied per API key:

* **Most endpoints:** 1000 requests per 60 seconds
* **Ticket endpoints** (`POST /tickets`, `POST /tickets/compose`, `GET /tickets`, `GET /tickets/search`, `GET /tickets/extendedsearch`, `GET /tickets/by-session-query`): 200 requests per 60 seconds

If you exceed the rate limit, you'll receive a `429 Too Many Requests` response with a `Retry-After` header telling you how many seconds to wait before retrying.
