Skip to main content

Developer overview

post.buzz exposes a versioned REST API under /api/v1/... for integrating publishing, accounts, media, inbox, analytics, teams, and imports into your own tooling. It's authenticated with API keys, returns JSON, and publishes a machine-readable OpenAPI specification.

Base URL​

All REST endpoints are mounted under /api on your API origin, so the effective paths are /api/v1/.... The exact host depends on your deployment (the same origin that serves the app also serves the API).

https://<your-api-origin>/api/v1/...

OpenAPI specification​

The full machine-readable spec (OpenAPI 3.1.0) is always available at:

GET https://<your-api-origin>/api/openapi.json

Use it to generate typed clients, explore schemas, or verify a field name against the version you're running. Every endpoint listed below appears in the spec.

REST vs tRPC​

post.buzz's own frontend talks to the backend over tRPC at /api/trpc, which gives it end-to-end type safety. The REST API is a thinner, stable, publicly-documented surface for third-party integrations, automation scripts, and anything that isn't part of the post.buzz frontend.

REST APItRPC
Path/api/v1/.../api/trpc/...
AuthAPI key (Bearer)Session cookie
Use forExternal integrations(internal)
StabilityVersioned, documentedFluid

Endpoint map​

Every endpoint requires an API key and an active or trialing subscription — without one, every call returns 403 subscription_required.

Posts​

EndpointMethodPurpose
/v1/postsGETList posts (filter by status, search q)
/v1/postsPOSTCreate / schedule / cross-post (201)
/v1/posts/{id}GETPost detail
/v1/posts/{id}PATCHUpdate caption, schedule, accounts, poll
/v1/posts/{id}DELETEDelete a draft or scheduled post
/v1/posts/{id}/retryPOSTRetry a failed publish
/v1/posts/{id}/reschedulePOSTMove a scheduled post
/v1/posts/{id}/analyticsGETPer-post insight

Accounts & platforms​

EndpointMethodPurpose
/v1/accountsGETList connected accounts
/v1/accounts/connect-urlGETGet an OAuth connect URL
/v1/accounts/{id}GETAccount profile
/v1/accounts/{id}/refreshPOSTRefresh OAuth tokens server-side
/v1/accounts/{id}DELETEDisconnect an account
/v1/accounts/{id}/toolsGETList platform tools
/v1/accounts/{id}/tools/{tool}POSTRun reddit-flairs / pinterest-boards
/v1/platformsGETAll platforms + capabilities
/v1/platforms/{platform}GETOne platform's capabilities and fields

Organization, usage & diagnostics​

EndpointMethodPurpose
/v1/organizationGETOrg, plan, limits, account counts
/v1/usageGETPost quota + credit balance
/v1/diagnostics/setupGETConnectivity/ownership/quota self-check for a key

Media​

EndpointMethodPurpose
/v1/mediaPOSTIngest media from a URL
/v1/media/uploadPOSTMultipart file upload
/v1/mediaGETList media (filter by type)
/v1/media/{id}GETMedia detail
/v1/media/{id}DELETEDelete media

Comments, inbox & analytics​

EndpointMethodPurpose
/v1/commentsPOSTSchedule a first comment
/v1/commentsGETList scheduled comments
/v1/comments/{id}GET/PATCH/DELETEDetail / reschedule / delete (pending only)
/v1/comments/{id}/retryPOSTRetry a failed comment
/v1/inboxGETList inbox items (filter/slice)
/v1/inbox/{itemId}/replyPOSTReply to an inbox item
/v1/inbox/{itemId}/replies/{replyId}PATCHEdit a sent reply (Facebook)
/v1/analytics/summaryGETLatest insights per account
/v1/best-timesGETRecommended posting times
/v1/accounts/{id}/analyticsGETAccount-level analysis
/v1/accounts/{id}/analytics/refreshPOSTForce insight refresh (rate-limited)

Teams & imports​

EndpointMethodPurpose
/v1/teamsGET/POSTList / create teams
/v1/teams/{id}GET/PATCH/DELETEDetail / rename / delete (409 if in use)
/v1/teams/{id}/accountsPOSTAssign an account to a team
/v1/teams/{id}/accounts/{accountId}DELETEUnassign (returns to default team)
/v1/imports/posts/csvPOSTStart a CSV post-import job
/v1/imports/posts/csvGETList import jobs
/v1/imports/posts/csv/{id}GETJob summary
/v1/imports/posts/csv/{id}/rowsGETPer-row outcomes (SUCCESS/FAILED)
/v1/imports/posts/csv/{id}/retryPOSTRetry failed rows
tip

A complete, always-current list — with request/response schemas for every route — is available from GET /api/openapi.json.

Conventions​

  • JSON in, JSON out. Request bodies are application/json; responses are application/json.
  • Success envelope. Successful responses wrap the payload as { "data": ... }. Creating a post returns 201; every other success — including all other POST, PATCH, and DELETE — returns 200.
  • Validation. Each route validates input against a schema before the handler runs; invalid input short-circuits with 400.
  • Pagination. List endpoints accept limit and offset query params.
  • Errors. Two documented shapes plus per-route codes — see Errors.
  • Limits. Platform media limits, plan quotas, and the few real rate limits — see Limits.

Next​

  1. Authentication — get and use an API key.
  2. REST API — conventions in depth.
  3. Posts — the core endpoint.
  4. Webhooks — outbound event delivery.