Forumulate API
The full Forumulate REST API — identity, organizations, spaces, docs authoring, publishing, search, AI, webhooks, and the public reader. Authenticate with a Personal Access Token (Bearer) or the session cookie. Download this spec at `/openapi.json` to generate a client SDK (e.g. with openapi-generator). **Set a non-default `User-Agent` on every request.** The edge WAF challenges requests that carry a default `curl`/library User-Agent (you get a Cloudflare 1010 block, not a JSON error), so a first-time integration silently fails until a custom UA is set — any identifying string (e.g. `my-app-integration/1.0`) passes. ## Conventions **Organizations take an id or a slug.** `/orgs/{orgId}/…` accepts either the uuid or the name in `slug`. A name that is not yours is a 404, never a 500. **A collection is keyed after its path.** `/spaces` answers `{ spaces }`, `/webhooks` answers `{ webhooks }`, `/orgs` answers `{ orgs }` — and `{ organizations }` too, which is what it has always answered. **State your version and you get the envelope.** Send `Forumulate-Version: 2026-09-01` and every collection carries `page` (`limit`, `has_more`, `next_cursor`, `total`); walks also carry `sync.checkpoint`. Send nothing and you get the pre-envelope shape, plus `Deprecation` and `Sunset` headers saying so. **Rate limits are per minute.** Every response carries `RateLimit-Limit`, `RateLimit-Policy` (`600;w=60` — the limit and the window in seconds), `RateLimit-Remaining` and `RateLimit-Reset`. A 429 also carries `Retry-After`. **Removals are discoverable for 30 days.** `include_deleted=true` carries tombstones, so an incremental sync never has to fall back to a full list to learn what went away. **Slots carry roles, and the vocabulary is published.** `GET /roles` returns the controlled list, each role's canonical reading position and a gloss, plus what an unroled slot does. It is versioned: a new role is a version bump, not a silent change to how your articles order themselves. **Chunks are ours to split.** `GET /orgs/{orgId}/spaces/{spaceId}/items/{itemId}/chunks` returns retrieval-grade chunks with a per-chunk `contentHash`, so you re-embed what changed rather than everything. The split is a contract once you store a `chunkId`: `policy.version` changing is a breaking change. **Webhook deliveries** are signed `X-Forumulate-Signature: v1,sha256=<hex>` over `${timestamp}.${rawBody}`, with `X-Forumulate-Timestamp`, `X-Forumulate-Event` and `X-Forumulate-Delivery` (the key to dedupe on). `GET /orgs/{orgId}/webhooks/events` says which event means which change.
Servers
URL | Description |
|---|---|
| Production |
Authentication
This API authenticates with: Bearer token (Authorization: Bearer <token>); API key (cookie "forumulate_session").
Reference
Health — 3 endpoints
ApiActivity — 1 endpoint
Auth — 2 endpoints
Sessions — 3 endpoints
Pat — 5 endpoints
User — 5 endpoints
AtlasWebhook — 1 endpoint
AtlasAdmin — 1 endpoint
Rbac — 1 endpoint
CustomRole — 4 endpoints
GroupGrant — 3 endpoints
SpaceTypes — 2 endpoints
Roles — 1 endpoint
Shape — 6 endpoints
HubIntro — 3 endpoints
Org — 26 endpoints
Space — 40 endpoints
Member — 8 endpoints
Invite — 3 endpoints
Audit — 3 endpoints
CustomField — 5 endpoints
Screening — 3 endpoints
ServiceAccount — 7 endpoints
ThemeComponent — 4 endpoints
Course — 2 endpoints
CoursePublic — 1 endpoint
Collection — 8 endpoints
Page — 15 endpoints
Revision — 12 endpoints
PublishAll — 1 endpoint
ChangeRequest — 21 endpoints
Library — 7 endpoints
Search — 1 endpoint
Discovery — 11 endpoints
Version — 3 endpoints
Translation — 3 endpoints
OpenApi — 11 endpoints
OpenApiProxy — 1 endpoint
ContentRule — 3 endpoints
Collab — 2 endpoints
CommentModeration — 5 endpoints
Import — 4 endpoints
Deepl — 3 endpoints
ShareLink — 4 endpoints
OrgLibrary — 3 endpoints
OrgAnalytics — 1 endpoint
SpaceSnapshot — 4 endpoints
Template — 1 endpoint
PageTemplate — 4 endpoints
Webhook — 9 endpoints
Notification — 11 endpoints
Push — 4 endpoints
Unsubscribe — 2 endpoints
MailEvents — 1 endpoint
MailAdmin — 5 endpoints
MailProvider — 4 endpoints
MailWebhook — 1 endpoint
Settings — 3 endpoints
Asset — 5 endpoints
Automation — 6 endpoints
PublicReaction — 1 endpoint
Blog — 35 endpoints
Newsletter — 4 endpoints
Extras — 18 endpoints
PublicBlog — 11 endpoints
Community — 9 endpoints
GrowthReports — 1 endpoint
Forum — 17 endpoints
ForumTopics — 11 endpoints
ForumTaxonomy — 28 endpoints
ForumTools — 29 endpoints
PublicForum — 36 endpoints
Roadmap — 7 endpoints
PublicRoadmap — 8 endpoints
Reputation — 16 endpoints
PublicOnebox — 1 endpoint
InboundEmail — 1 endpoint
Group — 11 endpoints
ComposerDraft — 4 endpoints
Moderation — 16 endpoints
CannedReply — 5 endpoints
Relationship — 8 endpoints
Changelog — 8 endpoints
PublicChangelog — 7 endpoints
Events — 8 endpoints
EventsPublic — 2 endpoints
Ai — 6 endpoints
AiOrg — 4 endpoints
OrgLens — 1 endpoint
AiProvider — 4 endpoints
UnifiedSearch — 6 endpoints
Retrieval — 1 endpoint
EmbeddingProvider — 5 endpoints
Item — 11 endpoints
Questions — 11 endpoints
Status — 13 endpoints
PublicStatus — 5 endpoints
InternalStatus — 1 endpoint
Progression — 2 endpoints
Wallet — 5 endpoints
PublicContact — 3 endpoints
Contact — 8 endpoints
PublicCareers — 1 endpoint
Careers — 2 endpoints
SpaceTemplate — 3 endpoints
SpaceTemplateActions — 2 endpoints
Metrics — 1 endpoint
Backup — 2 endpoints
AtlasEnterprise — 13 endpoints
Impersonation — 2 endpoints
DataExplorer — 1 endpoint
BadgeQueryGrant — 6 endpoints
QueueAdmin — 4 endpoints
Problems — 1 endpoint
Github — 5 endpoints
GithubWebhook — 2 endpoints
GithubAgentAdmin — 3 endpoints
GithubAgentWebhook — 1 endpoint
PublicOrg — 1 endpoint
PublicSpaceIndex — 1 endpoint
Public — 39 endpoints
Viewer — 1 endpoint
VisitorOidc — 2 endpoints
Embed — 4 endpoints
LegalPublic — 4 endpoints
Extension — 9 endpoints
ExtApi — 8 endpoints
Render — 4 endpoints
Registry — 7 endpoints
PublicRegistry — 2 endpoints
PlatformReview — 3 endpoints
StripeWebhook — 1 endpoint
SsoAdmin — 3 endpoints
SsoAuth — 2 endpoints
SamlAdmin — 2 endpoints
SamlAuth — 3 endpoints
LtiAdmin — 2 endpoints
LtiAuth — 3 endpoints
ScimAdmin — 2 endpoints
Scim — 5 endpoints
ScimGroups — 6 endpoints
DiscourseConnectAdmin — 3 endpoints
DiscourseConnectAuth — 2 endpoints
ReaderSignup — 3 endpoints
ReaderAuth — 4 endpoints
ReaderAuthPublic — 1 endpoint
ReaderDomain — 4 endpoints
Integrations — 6 endpoints
Domain — 9 endpoints
PublicDomain — 1 endpoint
AcmeChallenge — 1 endpoint
Address — 1 endpoint
Site — 10 endpoints
PublicSite — 3 endpoints
Onboarding — 3 endpoints
CookieMunch — 1 endpoint
Consent — 5 endpoints
ConsentPublic — 2 endpoints
ConsentWebhook — 1 endpoint
Messaging — 15 endpoints
Chat — 14 endpoints
Billing — 3 endpoints
BillingWebhook — 1 endpoint
SlackAdmin — 4 endpoints
SlackWebhook — 2 endpoints
Mcp — 2 endpoints
McpAgent — 2 endpoints