← Docs

API reference

These endpoints back the dashboard. They are not yet a public API — there are no API tokens, so everything session-authenticated requires a browser session and will not work from a script.

Conventions

  • Success is { ok: true, ... }. Failure is { error: string } with a non-2xx status.
  • 404 is returned for a server you cannot see — deliberately not 403, which would confirm it exists.
  • 402 means your plan does not allow it, and carries an upgrade object naming the tier that would.
  • 429 carries Retry-After in seconds.
  • Every mutation writes an audit-log entry. Secret values never appear in one.

Configuration

Session-authenticated. Every route is scoped to one server and fails closed.

POST/api/servers/{serverId}/settingsSession · admin
Channels, prefix, commerce environment
GETPOST/api/servers/{serverId}/automodSession · admin
List or create automod rules · Create is limited by plan
PATCHDELETE/api/servers/{serverId}/automod/{ruleId}Session · admin
Update or remove a rule
POST/api/servers/{serverId}/verificationSession · admin
Verification config, publishes the panel
GETPOST/api/servers/{serverId}/ticket-panelsSession · admin
Ticket panels
POST/api/servers/{serverId}/automationSession · admin
Auto-roles, sticky, voice hubs, anti-nuke, role panels
GETPOST/api/servers/{serverId}/autorespondersSession · admin
Autoresponders
GETPOST/api/servers/{serverId}/embedsSession · admin
Saved embeds
POST/api/servers/{serverId}/messagesSession · admin
Welcome/goodbye, snipe, analytics toggles

Commerce

Requires a plan that includes commerce. Keys are encrypted on write and never returned.

POST/api/servers/{serverId}/stripe-keysSession · admin
Store Stripe credentials · Key is verified against Stripe before storage
POST/api/servers/{serverId}/sellauth-keysSession · admin
Store SellAuth credentials · Pro and above
POST/api/servers/{serverId}/sellauth-syncSession · admin
Import SellAuth products
GETPOST/api/servers/{serverId}/productsSession · admin
Catalogue
POST/api/servers/{serverId}/orders/{orderId}/refundSession · owner
Refund an order

Billing

Your subscription to poi-bot, on our Stripe account.

POST/api/servers/{serverId}/billingSession · owner
Start checkout or open the billing portal

Webhooks

No session. A valid signature is the authentication.

POST/api/webhooks/stripe/{serverId}Stripe signature
Tenant Stripe events · Verified against that server's stored secret
POST/api/webhooks/sellauth/{serverId}HMAC signature
Tenant SellAuth events
POST/api/webhooks/platformPlatform Stripe signature
Subscription lifecycle
GET/api/bot/config/{serverId}HMAC signature
Bot configuration poll

Example: a plan-limited response

HTTP/1.1 402 Payment Required { "error": "You have reached the Starter limit of 25 products. Upgrade to Pro for more.", "upgrade": { "currentTier": "STARTER", "requiredTier": "PRO", "limit": 25 } }