Skip to main content
GET
/
api
/
v1
/
vault
/
schema
curl -X GET https://alfred.black/api/v1/vault/schema \
  -H "Authorization: Bearer alf_your_key_here"
{
  "known_types": [
    "person", "org", "project", "task", "event", "note", "location",
    "process", "account", "asset", "conversation", "input", "run",
    "session", "decision",
    "assumption", "constraint", "contradiction", "synthesis"
  ],
  "status_by_type": {
    "project": ["active", "paused", "completed", "abandoned", "proposed"],
    "task": ["todo", "active", "blocked", "done", "cancelled"],
    "session": ["active", "completed"],
    "input": ["unprocessed", "processed", "deferred"],
    "person": ["active", "inactive"],
    "org": ["active", "inactive"],
    "location": ["active", "inactive"],
    "note": ["draft", "active", "review", "final"],
    "decision": ["draft", "final", "superseded", "reversed"],
    "process": ["active", "proposed", "design", "deprecated"],
    "run": ["active", "completed", "blocked", "cancelled"],
    "account": ["active", "suspended", "closed", "pending"],
    "asset": ["active", "retired", "maintenance", "disposed"],
    "conversation": ["active", "waiting", "resolved", "closed", "archived"],
    "assumption": ["active", "challenged", "invalidated", "confirmed"],
    "constraint": ["active", "expired", "waived", "superseded"],
    "contradiction": ["unresolved", "resolved", "accepted"],
    "synthesis": ["draft", "active", "superseded"]
  },
  "list_fields": [
    "tags", "aliases", "related", "relationships", "participants",
    "outputs", "depends_on", "blocked_by", "based_on", "supports",
    "challenged_by", "approved_by", "confirmed_by", "invalidated_by",
    "cluster_sources", "governed_by", "references", "project"
  ],
  "required_fields": ["type", "created"],
  "name_field_by_type": {
    "conversation": "subject",
    "input": "subject"
  },
  "type_directory": {
    "project": "project",
    "task": "task",
    "person": "person",
    "org": "org",
    "location": "location",
    "note": "note",
    "decision": "decision",
    "process": "process",
    "run": "run",
    "event": "event",
    "account": "account",
    "asset": "asset",
    "conversation": "conversation",
    "assumption": "assumption",
    "constraint": "constraint",
    "contradiction": "contradiction",
    "synthesis": "synthesis"
  }
}

Overview

Returns the complete vault schema including all record types, valid status values, list fields, required fields, and name field overrides. Use this to understand what record types are available and how they’re structured.

Response

known_types
array
All 19 valid record types.
status_by_type
object
Map of record type to allowed status values. Types without status constraints (e.g., event) are omitted.
list_fields
array
Field names that accept multiple values as arrays.
required_fields
array
Globally required fields (applies to all types).
name_field_by_type
object
Types that use a different title field instead of name. Only conversation and input (which use subject) are listed.
type_directory
object
Map of record type to its directory in the vault.

Request Example

curl -X GET https://alfred.black/api/v1/vault/schema \
  -H "Authorization: Bearer alf_your_key_here"

Response Example

{
  "known_types": [
    "person", "org", "project", "task", "event", "note", "location",
    "process", "account", "asset", "conversation", "input", "run",
    "session", "decision",
    "assumption", "constraint", "contradiction", "synthesis"
  ],
  "status_by_type": {
    "project": ["active", "paused", "completed", "abandoned", "proposed"],
    "task": ["todo", "active", "blocked", "done", "cancelled"],
    "session": ["active", "completed"],
    "input": ["unprocessed", "processed", "deferred"],
    "person": ["active", "inactive"],
    "org": ["active", "inactive"],
    "location": ["active", "inactive"],
    "note": ["draft", "active", "review", "final"],
    "decision": ["draft", "final", "superseded", "reversed"],
    "process": ["active", "proposed", "design", "deprecated"],
    "run": ["active", "completed", "blocked", "cancelled"],
    "account": ["active", "suspended", "closed", "pending"],
    "asset": ["active", "retired", "maintenance", "disposed"],
    "conversation": ["active", "waiting", "resolved", "closed", "archived"],
    "assumption": ["active", "challenged", "invalidated", "confirmed"],
    "constraint": ["active", "expired", "waived", "superseded"],
    "contradiction": ["unresolved", "resolved", "accepted"],
    "synthesis": ["draft", "active", "superseded"]
  },
  "list_fields": [
    "tags", "aliases", "related", "relationships", "participants",
    "outputs", "depends_on", "blocked_by", "based_on", "supports",
    "challenged_by", "approved_by", "confirmed_by", "invalidated_by",
    "cluster_sources", "governed_by", "references", "project"
  ],
  "required_fields": ["type", "created"],
  "name_field_by_type": {
    "conversation": "subject",
    "input": "subject"
  },
  "type_directory": {
    "project": "project",
    "task": "task",
    "person": "person",
    "org": "org",
    "location": "location",
    "note": "note",
    "decision": "decision",
    "process": "process",
    "run": "run",
    "event": "event",
    "account": "account",
    "asset": "asset",
    "conversation": "conversation",
    "assumption": "assumption",
    "constraint": "constraint",
    "contradiction": "contradiction",
    "synthesis": "synthesis"
  }
}