← Home
Developers
API reference
Build on Anna. Every endpoint below is served by the imanna host — authenticate, call, integrate.
publicbearersessioninstallingest-keyadmin
public — no auth · bearer — your imanna account token (Authorization: Bearer) · session — account cookie or bearer · install — module install id / HMAC · ingest-key — per-project ingest key · admin — operator session.
Chat & build
POST/v1/completeMetered brain completion — server injects the hosted skills, returns output only.bearer
POST/v1/interactThe interaction pipeline (chat → clarify → plan → mockup → build → done).bearer
POST/v1/askOne-shot question answered with the account/project context.bearer
POST/v1/buildBuild a project into real files (single-pass, or the orchestrated job when above the activation line).bearer
POST/v1/build/planPlan a build + return the activation decision and a forward credit range (the confirm card).bearer
GET/v1/build/jobPoll an async orchestrated build job (by id, or lookup by project).bearer
POST/v1/review/planPlan a code review over an existing project (chunked review units).bearer
Projects
GET·POST·DELETE/v1/projectsList (owned + shared, each with role + hasBuild) / create / update / delete a project.bearer
GET/v1/projects/interactionA project’s plan, tasklist and content-safe trace.bearer
GET/v1/projects/filesThe built file list (no bodies) + draft/hasBuild flags. Collaborators pass ?owner=<id>.bearer
GET·PUT/v1/projects/fileRead one built file / save an edit (owner or edit-collaborator).bearer
GET/v1/projects/buildThe built manifest WITH file bodies — what a desktop writes to disk (…/files carries no bodies).bearer
POST/v1/projects/local-writtenConfirm a machine-hosted build reached your folder; releases the cloud working copy. Owner only.bearer
POST/v1/projects/uploadDrop an inert asset into a project (stored non-executable).bearer
GET/v1/projects/downloadDownload the project build as a .zip.bearer
GET·POST·DELETE/v1/projects/collaboratorsList / invite (view|edit) / remove a project collaborator.bearer
POST/v1/projects/leaveDecline or leave a project shared with you (drops your share + the owner’s entry for you).bearer
GET·POST/v1/projects/inboxA project’s ingest inbox (records posted by an Anna-built integration via the ingest key).bearer
POST/v1/projects/proxyGuarded server-side fetch for a project panel (SSRF-guarded, CORS-enabled).ingest-key
GET/v1/projects/widgetThe merchant chat widget snippet for a project.public
Project knowledge base
GET·POST·DELETE/v1/projects/kbList / create / delete a project’s KB entries (help or api docs).bearer
POST/v1/projects/kb/publishPublish a project KB as a public help center (four layouts).bearer
POST/v1/projects/kb/generateGenerate help / API doc drafts from the project’s built files.bearer
GET/v1/projects/kb/searchSearch a project’s KB (also used to answer project-scoped chat).bearer
GET/v1/kbThe account product KB (what the business sells) — list/put/delete.bearer
GET/v1/kb/publicA published project KB served read-only as a help center.public
Skills, memory & learning
POST·GET/v1/skills/putSave a learned skill to the per-account skill store.bearer
GET/v1/skills/listList the account’s learned skills.bearer
GET/v1/skills/groupsThe capability groups the account can activate.bearer
POST·GET/v1/memory/putWrite a project memory fact (the ingestor’s brain cache).bearer
GET/v1/memory/listList a project’s memory facts.bearer
POST/v1/traces/outcomeRecord a run’s outcome (kept/reverted) for the learning flywheel.bearer
GET/v1/traces/scoresSkill scores computed from the trace log.bearer
POST/v1/learn/scanScan a project’s files → drift/coverage findings.bearer
POST/v1/learn/coverageCoverage audit for a project (uncovered code the brain doesn’t document).bearer
Images & 3D
POST/v1/image/generateGenerate an image inline — raster (photo/art) or exact vector (chart/logo/overlay).bearer
GET·POST/v1/3d/keyStore/clear the account’s own Tripo API key (BYO) + connection status.bearer
POST/v1/3d/generateSubmit a text/image → GLB Tripo generation (full access, BYO key; no entitlement gate).bearer
GET/v1/3d/statusPoll a Tripo task → status/progress/GLB url.bearer
POST/v1/3d/uploadAttach a user 3D model file to a chat (full access; stored inert).bearer
GET/v1/3d/modelsThe 3D lane library — saved models, in-flight tasks, and the lane’s own storage budget.bearer
GET/v1/3d/modelOne saved model: manifest (named parts, triangles, world dimensions), ancestry, and which edits are local vs regeneration.bearer
GET/v1/3d/model/downloadDownload a saved model — a permanent link, unlike Tripo’s ~24h url.bearer
POST/v1/3d/model/patchLocal JSON-only edits (scale/move/rotate/rename/remove/material/ground/units). Forks a new model, never overwrites, costs no credits, never rewrites geometry.bearer
POST/v1/3d/model/renameRelabel a saved model (the asset is untouched).bearer
POST/v1/3d/model/deleteDelete a saved model — frees the 3D lane’s own quota only; project storage is unaffected.bearer
Modules
GET/v1/modulesThe module catalog + the account’s activation state.bearer
POST/v1/modules/activateSelf-activate a module on a project (free, full access).bearer
POST/v1/autodocs/generateGenerate Markdown docs for a project (Auto-docs module).bearer
GET·POST/v1/merchant/configThe merchant (customer-chatbot) module config.bearer
Marketing & analytics
POST/v1/marketing/generateGenerate organic social content from a brief.install
GET·POST/v1/marketing/configThe marketing module config (brand, platforms).bearer
POST/v1/marketing/analyzeAnalyze a brand/brief for content direction.bearer
POST/v1/marketing/mediaGenerate marketing media (image) for a post.bearer
POST/v1/marketing/schedule/enqueueEnqueue a scheduled post for later publish.install
GET/v1/marketing/platformsConnected marketing/ad platforms + their status.bearer
GET·POST/v1/marketing/oauth/startStart a marketing platform OAuth (state-signed browser flow).public
GET/v1/marketing/oauth/callbackOAuth callback for a marketing platform.public
POST/v1/marketing/oauth/disconnectDisconnect a marketing platform.bearer
POST/v1/marketing/ga4/connectConnect GA4 (Measurement ID + Property ID, optional MP API secret) for server-side events.bearer
POST/v1/marketing/publishPublish content to a connected platform.bearer
GET/v1/marketing/reportLive campaign metrics (spend/clicks/conversions) for the customer.bearer
GET/v1/marketing/performanceDaily ad performance + GA4 site traffic + the paid-traffic join, in one answer.bearer
GET·POST/v1/marketing/ads/listList ad campaigns (Google/Meta).bearer
POST/v1/marketing/ads/statusPause/enable an ad campaign.bearer
POST/v1/marketing/ads/budgetSet an ad campaign budget.bearer
POST/v1/marketing/gtm/connectStore an account-default or per-project GTM container id (interim snippet inject).bearer
POST/v1/marketing/gtm/oauth/startStart the Tag Manager API OAuth (edit + publish scopes) → a consent URL.bearer
GET/v1/marketing/gtm/oauth/callbackTag Manager OAuth callback (browser, state-signed) — vaults the token.public
GET/v1/marketing/gtm/containersThe connected account → container → workspace tree (empty + connected:false when no token).bearer
POST/v1/marketing/gtm/oauth/disconnectDisconnect the Tag Manager API (drops the tokens) while KEEPING the container-id snippet connect.bearer
GET/v1/marketing/gtm/containerWhat is ALREADY in a workspace — its tags, triggers and variables (the container view).bearer
POST/v1/marketing/gtm/tags/planAnna plans a tag set (GA4 config + events, optional Meta pixel) and stores a review.bearer
GET/v1/marketing/gtm/reviewThe stored tag review (by ?reviewId= or ?projectId=), with each item’s decision.bearer
POST/v1/marketing/gtm/review/decideApprove/reject one proposed tag.bearer
POST/v1/marketing/gtm/tags/applyCreate the APPROVED tags (+ triggers/variables), cut a version and publish. Dry-run unless MKT_GTM_PUBLISH_LIVE is armed.bearer
POST/v1/marketing/meta/test-callsApp Review evidence: one Graph call per requested Instagram/Facebook permission. Reads by default.bearer
Agenda (calendar)
GET/v1/agenda/connectStart Google Calendar OAuth.bearer
GET/v1/agenda/callbackGoogle Calendar OAuth callback.public
GET/v1/agenda/statusCalendar connection status.bearer
POST/v1/agenda/disconnectDisconnect the calendar.bearer
GET·POST/v1/agenda/configAgenda module config.bearer
GET/v1/agenda/calendarsList the connected account’s calendars.bearer
GET/v1/agenda/eventsUpcoming events from a calendar.bearer
POST/v1/agendaThe public agenda relay (module install).install
Messaging channels
GET/v1/channels/statusMessaging channel connection status.bearer
POST/v1/channels/connectConnect a messaging channel.bearer
POST/v1/channels/disconnectDisconnect a channel.bearer
POST/v1/channels/testSend a channel test message.bearer
GET·POST/v1/channels/meta/webhookMeta (WhatsApp/Instagram/Messenger) webhook verify + receive.public
GET·POST/v1/channels/threads/webhookThreads webhook verify + receive (replies, mentions). Separate app, secret and payload shape from Meta.public
Account & auth
POST/account/api/registerInvite-gated registration → session cookie.public
POST/account/api/loginPassword login (returns a 2FA challenge when enrolled).public
POST/account/api/login/2faComplete a 2FA-gated sign-in (verify the second factor).public
POST/account/api/logoutEnd the session.session
GET/account/api/meThe signed-in profile + billing/packs.session
GET/account/api/usageThis period’s usage rollup (requests/tokens/credits).session
GET/account/api/2faTwo-factor status (enabled/method).session
POST/account/api/2fa/totp/startBegin authenticator (TOTP) enrollment → secret + otpauth URL.session
POST/account/api/2fa/totp/confirmConfirm TOTP enrollment with a code → 2FA on.session
POST/account/api/2fa/email/startBegin email-code enrollment (refused when email delivery is unavailable).session
POST/account/api/2fa/email/confirmConfirm email-code enrollment → 2FA on.session
POST/account/api/2fa/disableTurn two-factor off.session
POST/account/api/prefsPresentation prefs (experience/autonomy/review depth).session
POST/account/api/change-passwordChange your password.session
POST/account/api/forgot-passwordStart a self-service password reset (non-enumerating).public
GET/account/api/downloadsGated installer downloads manifest.session
GET/account/api/notificationsYour in-app notifications (e.g. a project shared with you); ?unread=1 filters.session
POST/account/api/notifications/readMark notification(s) read (by id, or all).session
Billing, files & storage
GET/v1/packsCredit top-up packs (priced by country).public
POST/v1/checkoutStart a Stripe checkout for a credit pack.bearer
GET/v1/storageCloud storage usage + quota/pricing.bearer
GET·POST/v1/filesAccount cloud files (list/put).bearer
GET/v1/files/downloadDownload an account cloud file.bearer
GET·POST·DELETE/v1/files/folderFolder upload: policy + batched store + resume.bearer
GET/v1/reportPlain-text usage report.bearer
Help & docs
GET/v1/helpThe product help center (categorized articles + changelog).public
GET/docs/apiThis API reference (add ?format=json for the machine-readable table).public
GET/v1/door/manifestEditor-plugin tool descriptions + argument schemas, so an installed door updates its own wording without a re-download.public
GET/config.jsonRuntime config the client reads (env, version, model options).public
GET/healthzLiveness probe.public
Admin (operator)
POST/admin/api/users/project-buildRead a user’s built files (operator debugging).admin
POST/admin/api/users/project-seedSeed a whole project build from a manifest (recovery).admin
POST/admin/api/users/project-reconcile-statusFlip a draft-that-has-a-build to live (the proj-2 repair).admin
POST/admin/api/projects/copyCopy a project (record + build) to another account.admin
In your editor
You don’t have to call the API by hand to use Anna in an editor: Anna Connect registers the anna-brain MCP server into Claude Code, Claude Desktop, Cursor, Windsurf, VS Code (Copilot agent mode), Zed and the Codex CLI — plus a JetBrains snippet you paste in, and your editor’s own AI calls Anna’s tools directly.