POST /api/public/v1/requests.
Go to platform.opennotes.ai and click Sign Up. Enter your email and a password, then confirm your email.
After confirming your email, sign in and open the API Keys dashboard. Click Create Key, give it a descriptive name (e.g.
Production Discourse), and select the Discourse Plugin scope template. Copy the key immediately — it is shown only once.Store the key in a secret manager (1Password, AWS Secrets Manager, GCP Secret Manager). If you lose it you must revoke and re-mint.
curl -X POST https://api.opennotes.ai/api/public/v1/requests \
-H "Authorization: Bearer <api_key>" \
-H "X-Adapter-Platform: discourse" \
-H "X-Adapter-User-Id: 42" \
-H "X-Adapter-Username: alice" \
-H "X-Adapter-Trust-Level: 2" \
-H "X-Adapter-Admin: false" \
-H "X-Adapter-Scope: <community_server_id>" \
-H "Content-Type: application/json" \
-d '{
"data": {
"type": "requests",
"attributes": {
"request_id": "<post_id>",
"requested_by": "42",
"community_server_id": "<community_server_id>",
"original_message_content": "Hello world — my first moderation request",
"platform_message_id": "<post_id>"
}
}
}'
{
"data": {
"type": "requests",
"id": "01940000-0000-7000-0000-000000000001",
"attributes": {
"request_id": "<post_id>",
"status": "pending",
"community_server_id": "<community_server_id>"
}
},
"jsonapi": { "version": "1.1" }
}
Open Notes scores the content asynchronously. You can either poll
GET /api/public/v1/requests/{request_id} or register a webhook to receive the consensus decision automatically. See Webhooks for delivery semantics.Next steps
Register a community
Full walkthrough of the platform.opennotes.ai registration flow.
Manage instances
Add Discourse forums, Discord guilds, or other platform instances.
Public API contract
What every integration must do and what the server guarantees in return.
Headers and auth
Authorization bearer + X-Adapter-* header flow end-to-end.