Layer8 Systems/API Reference
v1

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

EnvironmentURL
Productionhttps://outstanding-gecko-609.convex.site
Staginghttps://grandiose-civet-55.convex.site

Rate Limits

Responses include 429 Too Many Requests with a Retry-After: 60 header when a limit is exceeded.

EndpointLimitWindow
GET /api/v1/assets120 reqper user / per minute
GET /api/shared-note60 reqper IP / per minute

Assets

GET/api/v1/assetsList assets

Returns all assets for the authenticated user.

Query Parameters

NameTypeDescription
statusstringactive | inactive | maintenance | retired | ordered
categorystringhardware | software | cloud | peripheral | other
typestringAny asset type string (e.g. "server")
searchstringFull-text search across name, serial, location
POST/api/v1/assetsCreate an asset

Required fields: name, type, status.

{
  "name": "prod-db-01",
  "type": "server",
  "status": "active",
  "manufacturer": "Dell",
  "location": "Rack A / U12"
}
GET/api/v1/assets/{id}Get asset by ID
PATCH/api/v1/assets/{id}Update asset (partial)

Send only the fields you want to update. All fields are optional.

DELETE/api/v1/assets/{id}Delete asset

Maps

GET/api/v1/mapsList maps

Returns map metadata for the authenticated user. Node and edge data are not included.

GET/api/v1/maps/{id}Get map by ID

Notes

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.

GET/api/v1/notesList note metadata
NameTypeDescription
typestringnote | runbook | config | procedure | reference
GET/api/v1/notes/{id}Get note metadata by ID
GET/api/shared-noteGet shared note (public, no auth)
NameTypeDescription
token*stringThe share token from the note's public link