Api
Stored in the apis collection. createdAt and updatedAt are maintained automatically.
Returned by GET /api, POST /api, GET /api/:id.
Example
One real Api as returned by GET /api, taken from the data array. Recorded from a live response, so the defaults, denormalised snapshots and populated fields are the actual ones:
{
"_id": "6a957347859eafb47bf22638",
"ipRestriction": "open",
"type": "permanent",
"company": "6a9572df859eafb47bf225d7",
"createdBy": {
"_id": "6a9572df859eafb47bf225d9",
"name": "Docs Test User",
"email": "test@test.test",
"status": "owner"
},
"updatedBy": {
"_id": "6a9572df859eafb47bf225d9",
"name": "Docs Test User",
"email": "test@test.test",
"status": "owner"
},
"maskedKey": "***********2982",
"createdAt": "2026-08-31T12:27:51.300Z",
"updatedAt": "2026-08-31T12:27:51.300Z",
"__v": 0
}
:::note Trimmed for reading A populated reference is shown by the fields that identify it rather than in full — it arrives as the entire referenced document. Long arrays are cut to the first two entries and marked, long strings are truncated, and any field that could carry a credential is dropped rather than masked. :::
Fields
| Field | Type | Notes |
|---|---|---|
key | string | default b72827c21a51e6a7a4e9a799c59f003b6165dc73be422d0a8f42a16c0369b783 · unique |
maskedKey | string | |
ipRestriction | string | default open · one of open, restricted |
type | string | default permanent · one of permanent, temporary |
durationMinutes | number | |
company | ObjectId -> Company | |
createdBy | ObjectId -> Member | |
updatedBy | ObjectId -> Member | |
_id | ObjectId | |
createdAt | date | set once |
updatedAt | date |