REST API · v1.6.8

Build on your
forum with the REST API

Every RaxBoard install ships a Bearer-authenticated REST API. Issue scoped keys, then read and write forums, threads, posts, members, private messages and moderation — all over HTTP.

# Base URL
https://your-forum.com/api/v1

OpenAPI specification

A machine-readable OpenAPI 3.1 document describes every endpoint, scope and schema. Point Swagger UI, Postman or an SDK generator at your forum’s spec — or explore it interactively below.

https://your-forum.com/api/openapi.json

Authentication

Send your key as a Bearer token in the Authorization header. Every endpoint under /api/v1 requires it; requests without a valid key return 401.

Authorization: Bearer <YOUR_API_KEY>

Getting an API key

Keys are created inside your forum, never on raxboard.com:

  • Members with permission create their own keys at Account → API Keys.
  • Administrators issue keys for any member from the Admin Panel → API Keys.
  • The secret token is shown once at creation — store it securely, it cannot be recovered.

Scopes

Each key carries one or more scopes. The broad umbrellas (read, write, admin) include their finer-grained members; private messages and admin actions require their explicit scope.

ScopeNameDescription
*Full accessEverything below. Grant only to fully trusted integrations.
readReadRead public forums, threads, posts and users.
writeWriteAll non-admin write actions (post, thread, react, edit).
thread:writeCreate threadsStart new threads.
post:writeCreate postsReply to threads.
post:manageManage postsEdit and delete posts.
react:writeReactAdd or remove reactions.
conversation:readRead messagesRead the owner's private conversations.
conversation:writeSend messagesStart and reply to private conversations.
tokenManage API keysList and revoke your own API keys.
adminAdministrationAll administrative actions below.
admin:usersManage usersBan, unban and manage member accounts.
admin:contentModerate contentModerate threads and posts.

Rate limiting

Each key has a per-minute request limit (default 60). Responses carry rate-limit headers; exceeding the limit returns HTTP 429 with Retry-After.

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
X-RateLimit-Reset: 1750000000
Retry-After: 42

Responses & errors

Successful responses are wrapped in { success: true, data: ... }. Errors return a consistent envelope with a machine-readable code and a human message, plus the right HTTP status.

{ "success": false, "error": { "code": "insufficient_scope", "message": "Requires scope: post:write" } }

Endpoint reference

87 endpoints
Discovery
GET/api/v1read
POST/api/v1/authread
Forums
GET/api/v1/forumsread
GET/api/v1/forums/{id}read
Threads
GET/api/v1/threadsread
POST/api/v1/threadsthread:write
GET/api/v1/threads/{id}read
GET/api/v1/threads/{id}/postsread
Posts
GET/api/v1/postsread
POST/api/v1/postspost:write
GET/api/v1/posts/{id}read
PUT/api/v1/posts/{id}post:manage
DELETE/api/v1/posts/{id}post:manage
POST/api/v1/posts/{id}/reactreact:write
Users
GET/api/v1/usersread
GET/api/v1/users/meread
GET/api/v1/users/{id}read
Notifications & search
GET/api/v1/notifications/alertsread
GET/api/v1/searchread
Private messages
GET/api/v1/messagesconversation:read
POST/api/v1/messagesconversation:write
GET/api/v1/messages/{id}conversation:read
POST/api/v1/messages/{id}/replyconversation:write
Administration
POST/api/v1/admin/users/{id}/banadmin:users
POST/api/v1/admin/users/{id}/unbanadmin:users
POST/api/v1/admin/threads/{id}/deleteadmin:content
POST/api/v1/admin/threads/{id}/restoreadmin:content
POST/api/v1/admin/posts/{id}/deleteadmin:content
POST/api/v1/admin/posts/{id}/approveadmin:content
Notifications & reactions
POST/api/v1/notifications/alerts/{id}/readwrite
POST/api/v1/notifications/alerts/read-allwrite
GET/api/v1/notifications/alerts/countread
GET/api/v1/reactionsread
DELETE/api/v1/posts/{id}/reactreact:write
Bookmarks
POST/api/v1/threads/{id}/bookmarkwrite
POST/api/v1/posts/{id}/bookmarkwrite
GET/api/v1/users/me/bookmarksread
GET/api/v1/users/me/bookmarks/labelsread
Follow, walls, ignore & block
POST/api/v1/users/{id}/followwrite
DELETE/api/v1/users/{id}/followwrite
GET/api/v1/users/{id}/followersread
GET/api/v1/users/{id}/followingread
GET/api/v1/users/{id}/wallread
POST/api/v1/users/{id}/wallwrite
POST/api/v1/users/{id}/ignorewrite
DELETE/api/v1/users/{id}/ignorewrite
POST/api/v1/users/{id}/blockwrite
DELETE/api/v1/users/{id}/blockwrite
Watch & mark-read
POST/api/v1/threads/{id}/watchwrite
DELETE/api/v1/threads/{id}/watchwrite
POST/api/v1/forums/{id}/readwrite
POST/api/v1/forums/read-allwrite
Tags, prefixes & polls
GET/api/v1/tagsread
GET/api/v1/tags/{slug}/threadsread
GET/api/v1/forums/{id}/prefixesread
GET/api/v1/polls/{id}read
POST/api/v1/polls/{id}/votewrite
DELETE/api/v1/polls/{id}/votewrite
Reports & flags
POST/api/v1/threads/{id}/reportwrite
POST/api/v1/posts/{id}/reportwrite
GET/api/v1/admin/reportsadmin:content
POST/api/v1/admin/reports/{id}/resolveadmin:content
Attachments
POST/api/v1/attachmentswrite
GET/api/v1/attachments/{id}read
Account self-service
PUT/api/v1/users/mewrite
GET/api/v1/users/me/preferencesread
PUT/api/v1/users/me/preferenceswrite
PUT/api/v1/users/me/custom-fields/{field_id}write
GET/api/v1/users/me/ignoredread
GET/api/v1/users/me/tokenstoken
DELETE/api/v1/users/me/tokens/{id}token
Directory & stats
GET/api/v1/users/onlineread
GET/api/v1/user-groupsread
GET/api/v1/user-groups/{id}/membersread
GET/api/v1/nodesread
GET/api/v1/statsread
Events, clubs & drafts
GET/api/v1/eventsread
POST/api/v1/events/{id}/rsvpwrite
GET/api/v1/clubsread
POST/api/v1/clubs/{id}/joinwrite
GET/api/v1/users/me/drafts/{key}read
POST/api/v1/users/me/drafts/{key}write
Realtime
POST/api/v1/broadcast/authread
GET/api/v1/broadcast/pollread
GET/api/v1/presence/thread/{thread_id}read
GET/api/v1/presence/onlineread
POST/api/v1/push/subscriberead

Code examples

Replace your-forum.com with your own domain and YOUR_API_KEY with a key you created.

curl -H "Authorization: Bearer YOUR_API_KEY" \
     https://your-forum.com/api/v1/users/me

Webhooks

Beyond the REST API, your forum can push HMAC-signed webhooks to external services when events fire — configure them in Admin Panel → Webhooks.

This reference applies to the API on your own RaxBoard install. Back to docs →