Bono API Concepts
Pages, post blocks, and credits
Bono content is organized into Pages each containing Blocks; the API exposes /pages and a post-shaped subset of blocks under /posts. Paid endpoints spend credits from the same balance as the Bono app at the same price (a post 10, an image 5, a snippet 2, a carousel 20, a video 50, a training data submission 2). GET /v1/credits shows the balance and monthly API spend.
Sharing training data with guardrails
POST /v1/pages/:pageId/training/sources accepts notes, transcripts, document text, or a public https URL. Bono checks size, scans for prompt injection, blocks private-network URLs, runs moderation, and removes emails, phone numbers, card and ID numbers, and secrets before anything is stored. Extracted memories wait for the owner to approve them before they count.
Async jobs, pagination, idempotency
Carousel, video, and image generation are asynchronous; the endpoint returns 202 Accepted with a job id and pollUrl. List endpoints use limit/skip pagination. Pass an Idempotency-Key header on paid POSTs so a retry replays the first response instead of charging again.