Register or fetch a vault by client_id (idempotent)
POST
/vaults/register
const url = 'https://api.engram.page/vaults/register';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"client_id":"obsidian-9f1b2c3d4e5f","name":"My Vault"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.engram.page/vaults/register \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "client_id": "obsidian-9f1b2c3d4e5f", "name": "My Vault" }'Used by the plugin on first sync. Returns 201 with status: created for a new vault, or 200 with status: existing when the client_id already maps to one.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Name + client_id
Media typeapplication/json
RegisterVaultRequest
object
client_id
required
Client-generated stable vault id.
string
name
required
string
Example
{ "client_id": "obsidian-9f1b2c3d4e5f", "name": "My Vault"}Responses
Section titled “Responses”Existing vault
Media typeapplication/json
RegisterVaultResponse
object
attachment_count
integer
created_at
string format: date-time
deleted_at
string format: date-time
description
string
encrypted
Always true — vaults are encrypted at rest.
boolean
id
required
string format: uuid
is_default
boolean
name
required
string
note_count
integer
purge_at
When a soft-deleted vault is hard-purged (deleted_at + 30d).
string format: date-time
slug
string
status
string
Example
{ "status": "created"}Newly created vault
Media typeapplication/json
RegisterVaultResponse
object
attachment_count
integer
created_at
string format: date-time
deleted_at
string format: date-time
description
string
encrypted
Always true — vaults are encrypted at rest.
boolean
id
required
string format: uuid
is_default
boolean
name
required
string
note_count
integer
purge_at
When a soft-deleted vault is hard-purged (deleted_at + 30d).
string format: date-time
slug
string
status
string
Example
{ "status": "created"}Name and client_id are required
Media typeapplication/json
MessageError
object
error
required
string
Example
{ "error": "not found"}Vault cap reached