API Reference
Programmatic access to your Layer8 Systems data. All endpoints require a Clerk JWT and are hosted on your Convex deployment.
Authentication
All endpoints (except /api/shared-note) require a Bearer token obtained from Clerk:
const token = await getToken(); // Clerk SDK
fetch('https://outstanding-gecko-609.convex.site/api/v1/assets', {
headers: { Authorization: `Bearer ${token}` }
});Base URLs
| Environment | URL |
|---|---|
| Production | https://outstanding-gecko-609.convex.site |
| Staging | https://grandiose-civet-55.convex.site |
Rate Limits
Responses include 429 Too Many Requests with a Retry-After: 60 header when a limit is exceeded.
| Endpoint | Limit | Window |
|---|---|---|
| GET /api/v1/assets | 120 req | per user / per minute |
| GET /api/shared-note | 60 req | per IP / per minute |
Assets
/api/v1/assetsList assetsReturns all assets for the authenticated user.
Query Parameters
| Name | Type | Description |
|---|---|---|
| status | string | active | inactive | maintenance | retired | ordered |
| category | string | hardware | software | cloud | peripheral | other |
| type | string | Any asset type string (e.g. "server") |
| search | string | Full-text search across name, serial, location |
/api/v1/assetsCreate an assetRequired fields: name, type, status.
{
"name": "prod-db-01",
"type": "server",
"status": "active",
"manufacturer": "Dell",
"location": "Rack A / U12"
}/api/v1/assets/{id}Get asset by ID/api/v1/assets/{id}Update asset (partial)Send only the fields you want to update. All fields are optional.
/api/v1/assets/{id}Delete assetMaps
/api/v1/mapsList mapsReturns map metadata for the authenticated user. Node and edge data are not included.
/api/v1/maps/{id}Get map by IDNotes
Note: NoteTakr content is client-side encrypted with AES-256-GCM. The API returns only metadata — the encryptedContentfield is intentionally excluded from all API responses. Decryption requires the user’s session key derived from NOTETAKR_MASTER_KEY.
/api/v1/notesList note metadata| Name | Type | Description |
|---|---|---|
| type | string | note | runbook | config | procedure | reference |
/api/v1/notes/{id}Get note metadata by ID/api/shared-noteGet shared note (public, no auth)| Name | Type | Description |
|---|---|---|
| token* | string | The share token from the note's public link |