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

# Query API Overview

> Programmatically access your Raindrop data

# Query API

<Note>
  The Query API is currently in beta. Contact [support@raindrop.ai](mailto:support@raindrop.ai) for access.
</Note>

The Raindrop Query API lets you programmatically access events, signals, users, and conversations from your Raindrop account.

## Base URL

```
https://query.raindrop.ai
```

## Authentication

All API requests require a Bearer token. Get your API key from the [Raindrop dashboard](https://raindrop.ai).

<Warning>
  Use your **Organization API Key** for the Query API, not the Write Key you use for ingesting data. For security purposes, these keys are different and have separate permissions.
</Warning>

```bash theme={null}
curl https://query.raindrop.ai/v1/events \
  -H "Authorization: Bearer YOUR_ORG_API_KEY"
```

## Projects

Reads are scoped to a single [project](/docs/platform/projects). By default the Query API reads from your org's **Production** project (slug `default`), so single-project orgs need nothing extra. If your org has multiple projects, target one by sending its slug in the `X-Raindrop-Project-Id` header:

```bash theme={null}
curl https://query.raindrop.ai/v1/events \
  -H "Authorization: Bearer YOUR_ORG_API_KEY" \
  -H "X-Raindrop-Project-Id: support-prod"
```

Omitting the header (or sending `default`) reads from the Production project. An archived or unknown project is rejected with a `403`, and a malformed slug with a `400`.

## Resources

<CardGroup cols={2}>
  <Card title="Events" icon="bolt" href="/docs/api-reference/events/list-events">
    Query and search your event data
  </Card>

  <Card title="Signals" icon="signal" href="/docs/api-reference/signals/list-signals">
    Access signal definitions and matches
  </Card>

  <Card title="Users" icon="users" href="/docs/api-reference/users/list-users">
    Get user profiles and activity
  </Card>

  <Card title="Conversations" icon="comments" href="/docs/api-reference/conversations/list-conversations">
    Browse conversation threads
  </Card>
</CardGroup>

## Pagination

All list endpoints support cursor-based pagination:

```json theme={null}
{
  "data": [...],
  "meta": {
    "cursor": "eyJvZmZzZXQiOjUwfQ==",
    "has_more": true
  }
}
```

Pass the `cursor` value to fetch the next page:

```bash theme={null}
curl "https://query.raindrop.ai/v1/events?cursor=eyJvZmZzZXQiOjUwfQ=="
```

## Filtering

Most endpoints support filtering by timestamp and other fields:

```bash theme={null}
# Events from the last 7 days
curl "https://query.raindrop.ai/v1/events?timestamp[gte]=2024-01-01T00:00:00Z"

# Events for a specific user
curl "https://query.raindrop.ai/v1/events?user_id=user_123"

# Events matching a signal
curl "https://query.raindrop.ai/v1/events?signal=signal-uuid"
```

## Rate Limits

Rate limits per API key:

* **400 RPM** for most endpoints
* **50 RPM** for `GET /v1/events/search`
* **40 RPS** across all endpoints combined; a `GET /v1/events/search` request is rejected once combined usage reaches **20 RPS**


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.