Compose a 1-on-1 inbox message
Queues a single direct message to one fan. Every outbound is screened and paced before delivery; live delivery is gated and currently runs in shadow mode (intent is recorded, nothing is delivered). The response status is 'sent', 'shadow', or 'blocked'. Requires a write-scoped key.
Authorization
bearerAuth Your al_live_<prefix>_<secret> API key. Mint and manage keys in the dashboard.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/api/admin/inbox/send" \ -H "Content-Type: application/json" \ -d '{ "fan_id": "fan_8841920", "text": "got something special for you 💋", "media_ids": [ "med_771" ], "price_cents": 1500, "operator_id": 7 }'{ "status": "shadow", "firewall": { "state": "pass", "reasons": [], "policy_version": "v3" }, "outcome": { "ok": true, "mode": "shadow", "result": "recorded" }}{ "detail": "Not authenticated"}{ "detail": [ { "loc": [ "body", "fan_id" ], "msg": "ensure this value has at least 1 characters", "type": "value_error.any_str.min_length" } ]}Read a conversation thread
Reads the live message thread for one fan, normalized to a stable shape. Message bodies are not stored on our side; they are re-read live at request time. If the underlying read fails the response degrades to an empty list with error=true instead of failing. Requires a read-scoped key.
Suggested price for a fan
Returns a suggested pay-to-view price and spend tier for one fan, for use when composing an inbox message. Requires a read-scoped key.