Start here
Manifest has a REST API so your own systems can read the register. A key is issued in the app, and it reaches one thing: your assets.
- Three routes. List assets, fetch one asset, upsert assets. That is all of it.
- Nothing else is reachable. No users, no audit trail, no attachments, no contracts. Not restricted for your key — not built.
- Reads only your register. The organisation comes from the key itself and is never read from the request, so a key cannot be pointed at anybody else’s fleet.
What a key can never read
This half is not a permission and there is no setting for it.
| Held back | What it is |
|---|
| Regulated data | Whether a device is in scope for cardholder data, health records, controlled unclassified information or EU personal data |
| Disposal evidence | The witness, the wipe certificate, who authorised it, how it was sanitised |
| Condition notes | What a technician wrote about the machine |
| Lease payments | What a leased device costs per month |
| Key escrow | Whether a recovery key is held by somebody other than the owner |
| Photographs and attachments | Every file on a record |
These are encrypted on your device with a key we never receive. We could only ever hand an integration the encrypted bytes, which are of no use to it. So there is no switch: the field names are not on the list the database will accept, and a key asking for one is refused before the request reaches your data.
Every field a key can read: 39 of them
The left column is the name you will see in the JSON. Everything here can be switched off for a given key except the first four.
The record itself
| Field | What it is |
|---|
id | Record id |
seq_id | Change cursor |
updated_at | Last changed |
is_deleted | Removed |
Identity
| Field | What it is |
|---|
asset_tag | Asset tag |
serial_number | Serial number |
make | Make |
model | Model |
asset_type | Type |
People
| Field | What it is |
|---|
assigned_user_id | Holder's id |
assigned_user_name | Holder's name |
department | Department |
Where it is
| Field | What it is |
|---|
location_site | Site |
site_id | Site id |
stockroom_id | Stockroom id |
Condition
| Field | What it is |
|---|
status | Status |
status_changed_at | Status changed |
criticality | Criticality |
flagged_for_audit | Flagged |
last_audited_at | Last verified |
has_obligations | Carries regulated data |
Dates
| Field | What it is |
|---|
install_date | Installed |
purchase_date | Purchased |
warranty_expiration_date | Warranty expires |
refresh_target_date | Refresh due |
Money and supplier
| Field | What it is |
|---|
purchase_price | Purchase price |
acquisition_type | How it was acquired |
vendor | Vendor |
purchase_order_number | PO number |
ownership | Ownership |
Network and disk
| Field | What it is |
|---|
hostname | Hostname |
mac_address | MAC address |
ip_address | IP address |
encryption_status | Disk encryption |
encryption_method | Encryption method |
data_classification | Classification |
Where the row came from
| Field | What it is |
|---|
external_id | Your own id |
external_source | Which system sent it |
external_modified_at | When that system changed it |
The first four always travel. seq_id is the cursor your system follows changes with, id is how a record is addressed, and updated_at and is_deleted are how you know what changed and what went away. A key without them returns pages that cannot be followed, so they are shown locked rather than offered and then quietly put back.
The two worth thinking about are People and Network. The first names a person; if the system holding the key is not yours, that is personal data crossing a boundary. The second is a map of your estate: useful to a scanner, and useful to anything else.
How a key is configured
In the app, under Settings, API access. Only an owner can issue one or change what it reaches.
| Preset | Sends | When |
|---|
| Everything readable | All 39 fields. | The default. Fine when the system holding the key is yours. |
| Nothing about people | 36 fields. | Drops the holder's name, their id and their department. This is the one to use when the other system belongs to somebody else. |
| Hardware only | 25 fields. | Tags, serials, models, status, dates and location. No people, no prices, no network addresses. |
| Choose fields | Any subset. | Every field is a switch, except the four the record cannot be read without. |
- Chosen when the key is issued. Issuing a key that reads everything and narrowing it afterwards is not the same thing: the first call to the change feed returns your whole register.
- Changing it later works, with one limit. Switching a field off stops it being sent from that key’s next request onward. It does not reach into the other system and remove what it already pulled.
- A key cannot write what it cannot read. Send a field outside its scope and the whole batch is refused, naming the field — rather than the field being dropped and the request reported as a success.
The other limits on a key
- Shown once. We keep only a fingerprint, so we cannot show it to you again — only replace it.
- A year, then it stops. You renew from the app. The key nobody has thought about for four years is the one that gets left behind.
- 120 requests a minute.
- Read, or read and write. Separate from the field list: one is what it may do, the other is what it may see.
- Revocable, and never deleted. A revoked key stays in the list so the trail entries it wrote still resolve to a name.
More on where your register lives and what we can read is on the security page.
I am an automated assistant, not a person. I answer from the public pages and cannot see accounts, subscriptions, orders or anything of yours — for those, write to the address above and a person will read it. Never type your recovery phrase here, or anywhere else.