API reference

The Engrym REST API is described by the canonical OpenAPI 3.1 specification at infra/openapi/openapi.json (Engrym REST API v1.0.0). This page is auto-generated from that artifact.

All endpoints are versioned under /v1. Authentication uses bearer tokens; consult the MCP setup and CLI reference pages for higher-level integration paths.

Total operations: 75 across 9 resource groups.


Health

Liveness probe for the Engrym REST API. Returns a fixed status payload.

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/health | Liveness + dependency health probe. |

Version

Reports the API version + build metadata.

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/version | API version + deploy metadata. |

Authentication

Signup, signin, signout, and identity introspection. The dashboard signup flow uses the public surface; CLI / SDK consumers use access tokens bound to the project.

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/auth/me | Return the authenticated user profile. | | POST | /v1/auth/signin | Sign in with email + password. | | POST | /v1/auth/signout | Invalidate the active session. | | POST | /v1/auth/signup | Create a fresh account. |

Projects

Project CRUD + nested resources: documents, Brain atoms, decisions, intents, conflicts, sessions, watcher, extraction, mirror, imports, API keys. Nested sub-resources are listed in their own sub-sections below.

Core

Top-level project CRUD + archive.

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/projects | List projects. | | POST | /v1/projects | Create a project. | | GET | /v1/projects/\{projectId\} | Read a project. | | PATCH | /v1/projects/\{projectId\} | Update a project. |

API keys

Per-project API key CRUD (for CLI / SDK auth).

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/projects/\{projectId\}/api-keys | List the calling user's API keys. | | POST | /v1/projects/\{projectId\}/api-keys | Issue an API key. | | DELETE | /v1/projects/\{projectId\}/api-keys/\{keyId\} | Revoke an API key. |

Archive

| Method | Path | Summary | | ------ | ---- | ------- | | POST | /v1/projects/\{projectId\}/archive | Archive a project (soft-delete). |

Billing

| Method | Path | Summary | | ------ | ---- | ------- | | POST | /v1/projects/\{projectId\}/billing/checkout-session | Create a Stripe Checkout Session. | | POST | /v1/projects/\{projectId\}/billing/portal-session | Create a Stripe Customer Portal session. | | GET | /v1/projects/\{projectId\}/billing/subscription | Read the project's Stripe subscription mirror row. |

Brain

Knowledge atom CRUD + search + context queries + deprecation + supersedence.

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/projects/\{projectId\}/brain/atoms | List/query atoms. | | POST | /v1/projects/\{projectId\}/brain/atoms | Create an atom. | | GET | /v1/projects/\{projectId\}/brain/atoms/\{atomId\} | Read an atom. | | PATCH | /v1/projects/\{projectId\}/brain/atoms/\{atomId\} | Update atom metadata (tags, confidence). | | POST | /v1/projects/\{projectId\}/brain/atoms/\{atomId\}/deprecate | Deprecate an atom. | | POST | /v1/projects/\{projectId\}/brain/atoms/\{atomId\}/supersede | Supersede an atom with a successor. | | GET | /v1/projects/\{projectId\}/brain/context | Read the unified team-context payload. | | GET | /v1/projects/\{projectId\}/brain/search | Search atoms. |

Conflicts

Conflict detection + resolution + dismiss.

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/projects/\{projectId\}/conflicts | List active conflicts. | | POST | /v1/projects/\{projectId\}/conflicts/check | Pre-check: active intents touching the given files. | | POST | /v1/projects/\{projectId\}/conflicts/\{conflictId\}/dismiss | Dismiss a conflict (false positive). | | POST | /v1/projects/\{projectId\}/conflicts/\{conflictId\}/resolve | Resolve a conflict. |

Decisions

Decision log CRUD + Markdown export.

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/projects/\{projectId\}/decisions | List decisions. | | POST | /v1/projects/\{projectId\}/decisions | Log a decision. | | GET | /v1/projects/\{projectId\}/decisions/\{decisionId\} | Read a decision. |

Decisions.md

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/projects/\{projectId\}/decisions.md | Export the canonical decision-log markdown. |

Documents

Project document CRUD + versions + revert.

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/projects/\{projectId\}/documents | List documents in a project. | | POST | /v1/projects/\{projectId\}/documents | Create a document. | | GET | /v1/projects/\{projectId\}/documents/\{docId\} | Read a document. | | PATCH | /v1/projects/\{projectId\}/documents/\{docId\} | Update a document. | | DELETE | /v1/projects/\{projectId\}/documents/\{docId\} | Soft-delete a document. | | POST | /v1/projects/\{projectId\}/documents/\{docId\}/revert | Revert document to a historical version. | | GET | /v1/projects/\{projectId\}/documents/\{docId\}/versions | List document versions. |

Extraction

Project extraction config + bulk re-extraction.

| Method | Path | Summary | | ------ | ---- | ------- | | PATCH | /v1/projects/\{projectId\}/extraction/config | Update per-project extraction provider/model/budget/BYOK. | | POST | /v1/projects/\{projectId\}/extraction/re-extract-all | Enqueue re-extraction for every document in a project. |

Imports

Bulk-import job CRUD.

| Method | Path | Summary | | ------ | ---- | ------- | | POST | /v1/projects/\{projectId\}/imports | Run an import job. | | GET | /v1/projects/\{projectId\}/imports/\{importId\} | Read import job status. | | DELETE | /v1/projects/\{projectId\}/imports/\{importId\} | Cancel a pending or running import job. |

Intents

Active intent broadcast + list + retract.

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/projects/\{projectId\}/intents | List active intents. | | POST | /v1/projects/\{projectId\}/intents | Broadcast an intent. | | DELETE | /v1/projects/\{projectId\}/intents/\{intentId\} | Release an intent (transition active → released). |

Git mirror

Configure, status, test, and force-push the Git mirror.

| Method | Path | Summary | | ------ | ---- | ------- | | POST | /v1/projects/\{projectId\}/mirror/configure | Configure git mirror. | | POST | /v1/projects/\{projectId\}/mirror/push | Trigger an immediate mirror push. | | GET | /v1/projects/\{projectId\}/mirror/status | Read git mirror status. | | POST | /v1/projects/\{projectId\}/mirror/test | Test git mirror connection. |

Onboarding

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/projects/\{projectId\}/onboarding | Read first-run onboarding status. | | POST | /v1/projects/\{projectId\}/onboarding/complete | Complete first-run onboarding. |

Sessions

Session lifecycle + active session retrieval.

| Method | Path | Summary | | ------ | ---- | ------- | | POST | /v1/projects/\{projectId\}/sessions | Start a session. | | GET | /v1/projects/\{projectId\}/sessions/latest | Read the caller's latest session for this project. | | PATCH | /v1/projects/\{projectId\}/sessions/\{sessionId\} | Save session state. | | POST | /v1/projects/\{projectId\}/sessions/\{sessionId\}/end | End a session. |

Watcher

Watcher insight retrieval + manual run trigger + config.

| Method | Path | Summary | | ------ | ---- | ------- | | PATCH | /v1/projects/\{projectId\}/watcher/config | Update per-project Watcher configuration (503 stub at v1). | | GET | /v1/projects/\{projectId\}/watcher/insights | List Watcher insights for a project (503 stub at v1). | | POST | /v1/projects/\{projectId\}/watcher/run | Trigger an ad-hoc Watcher run (503 stub at v1). |

Teams

Team CRUD + member management + invitations. Teams own projects; members inherit project access through team membership.

| Method | Path | Summary | | ------ | ---- | ------- | | POST | /v1/teams | Create a team. | | POST | /v1/teams/invites/\{inviteId\}/accept | Accept a team invite. | | GET | /v1/teams/\{teamId\} | Read a team. | | PATCH | /v1/teams/\{teamId\} | Update a team. | | POST | /v1/teams/\{teamId\}/invites | Issue a team invite. | | GET | /v1/teams/\{teamId\}/members | List team members. |

Billing

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/billing/tiers | List the pricing tiers (display fields). | | POST | /v1/billing/webhook | Stripe webhook receiver (Stripe → server). |

Newsletter

| Method | Path | Summary | | ------ | ---- | ------- | | POST | /v1/newsletter/confirm | Confirm a newsletter signup. | | POST | /v1/newsletter/resend-webhook | Resend delivery-event webhook receiver. | | POST | /v1/newsletter/signup | Subscribe to the newsletter. | | POST | /v1/newsletter/unsubscribe | Unsubscribe from the newsletter. |

Providers

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/providers | List the provider/model catalog. |

Users

| Method | Path | Summary | | ------ | ---- | ------- | | GET | /v1/users/\{userId\}/billing/subscriptions | List the user's Stripe subscriptions. |