Quick Start
1. Create an API Key
Go to Settings → API and create a new API key with the scopes you need.
2. Make Your First Request
curl -X GET "https://lapse.watch/api/v1/items" \
-H "Authorization: Bearer lapse_k_YOUR_API_KEY"Authentication
All API requests require authentication using an API key. Include your key in the Authorization header:
Authorization: Bearer lapse_k_your_api_key_hereAPI Key Scopes
| Scope | Permissions |
|---|---|
| read | List and view items and contacts |
| write | Create and update items |
| delete | Delete items |
Rate Limiting
API requests are rate limited per team to ensure fair usage:
- Read operations: 60 requests per minute
- Write operations: 20 requests per minute
- Delete operations: 10 requests per minute
Rate limit information is included in response headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
Endpoints
| Method | Path | Scope | Description |
|---|---|---|---|
| GET | /api/v1/items | read | List all items with optional filtering |
| POST | /api/v1/items | write | Create a new item |
| GET | /api/v1/items/:id | read | Get a single item by ID |
| PUT | /api/v1/items/:id | write | Update an item |
| DELETE | /api/v1/items/:id | delete | Delete an item |
| POST | /api/v1/items/bulk | write | Bulk create items (max 100) |
| DELETE | /api/v1/items/bulk | delete | Bulk delete items (max 100) |
| GET | /api/v1/contacts | read | List alert contacts |
| GET | /api/v1/contacts/:id | read | Get a single contact |
Example: Create an Item
curl -X POST "https://lapse.watch/api/v1/items" \
-H "Authorization: Bearer lapse_k_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "ssl_cert",
"name": "Production API",
"hostname": "api.example.com",
"expiry_date": "2025-12-31T00:00:00Z"
}'OpenAPI Specification
Download our OpenAPI 3.0 specification for use with API clients, code generators, or documentation tools.
Download openapi.yamlError Handling
| Status | Description |
|---|---|
| 401 | Invalid or missing API key |
| 403 | API key lacks required scope |
| 404 | Resource not found |
| 422 | Validation failed (check details field) |
| 429 | Rate limit exceeded |
| 500 | Internal server error |