Headless Board API

Public Board API endpoints and the @cavuno/board SDK for building a custom job-posting flow on a headless board.

The Board API endpoints under /v1/boards/:identifier/ require no authentication and are designed for headless boards that implement their own posting UI. The :identifier is your board slug.

List job-posting plans

Returns the board's available plans. Pass the chosen plan's id as selectedPlan when submitting a job.

Submit a job posting

Creates the job and returns a status-discriminated result. Branch on .status: checkout (redirect to .checkoutUrl), published, pending_approval, or invoice_sent.

Check billing status

Body: { email }. Returns { hasActiveBilling } — whether this email already has billing credit on the board.

Send a billing-verification token

Body: { email }. Sends a verification token to the address. Pass the token to the billing-options endpoint.

Get billing options

Body: { verificationToken }. Returns the credit options for the verified email. Use one option as selectedBilling in the job submission.

Check subscription entitlements

Body: { email, planId }. Returns the featured slots and active entitlements the email's subscription grants for the given plan.

Use the @cavuno/board SDK

Install @cavuno/board and call the board.jobPosting namespace:

The namespace also exposes plans() and create(input) for the full posting flow. See the SDK job-posting guide and job-posting reference for the complete flow.

Next steps

Implement the status branches described in the SDK job-posting guide, then submit a test posting and confirm the result is handled as checkout, published, pending_approval, or invoice_sent rather than assuming every submission redirects to checkout.