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

# API Overview

> Dashtray REST API reference

# API Reference

Dashtray provides a complete REST API for managing notifications, API keys, and account information.

## Base URL

```
https://api.dashtray.app
```

## Authentication

All endpoints require an API key:

```bash theme={null}
Authorization: Bearer sk_test_...
```

## Content Type

All requests and responses use JSON:

```bash theme={null}
Content-Type: application/json
```

## Endpoints

### Notifications

* `POST /api/v1/notifications/send` - Send a notification
* `GET /api/v1/notifications` - List notifications

### Alerts

* `GET /api/v1/alerts` - List notification alerts

### Statistics

* `GET /api/v1/stats` - Get account stats and plan info

### API Keys

* `POST /api/v1/api-keys/generate` - Create a new API key
* `GET /api/v1/api-keys` - List your API keys
* `DELETE /api/v1/api-keys/{keyId}` - Revoke an API key

## Rate Limiting

Rate limits are per API key and based on your plan:

| Plan | Requests/Minute |
| - | - |
| Starter | 100 |
| Pro | 1,000 |

When rate limited, you'll receive a `429 Too Many Requests` response with a `Retry-After: 60` header.

## Pagination

List endpoints use cursor-based pagination:

```
GET /api/v1/notifications?limit=10&cursor=<cursor>&search=<query>
```

**Parameters:**

* `limit` (integer) - Results per page (default: 50, max: 100)
* `cursor` (string) - Opaque cursor from the previous response's `nextCursor`
* `search` (string) - Optional text filter

**Response:**

```json theme={null}
{
  "ok": true,
  "notifications": [ ... ],
  "pagination": {
    "nextCursor": "n_abc456",
    "isDone": false
  }
}
```

Keep requesting with `nextCursor` until `isDone` is `true`.

## Response Format

### Success Response

Each endpoint wraps its payload in a named field (e.g. `notification`, `notifications`, `alerts`, `stats`, `apiKey`, `apiKeys`):

```json theme={null}
{
  "ok": true,
  "notification": { ... }
}
```

### Error Response

```json theme={null}
{
  "ok": false,
  "error": "Human-readable error message",
  "code": "ERROR_CODE",
  "statusCode": 400
}
```

## Common Status Codes

| Code | Meaning |
| - | - |
| 200 | OK - Request succeeded |
| 400 | Bad Request - Invalid input |
| 401 | Unauthorized - Invalid API key |
| 404 | Not Found - Resource doesn't exist |
| 429 | Too Many Requests - Rate limited |
| 500 | Server Error - Try again later |

## Next Steps

* 🔧 See [all endpoints](/api-reference/endpoints)
* ❌ Read about [error codes](/api-reference/errors)
* 📚 Check out [examples](/mcp/examples)


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