Public API
A small, predictable JSON API for drafting and scheduling posts from programs, scripts and AI agents. Designed to be hand-callable from curl and machine-friendly enough for an LLM to consume.
Already have an account? Issue an API key and follow the connect-your-agent quick start in Settings → Developers.
Open Settings → DevelopersBase URL
https://postme.live/api/v1One-minute quickstart
- Open Settings → Developers and create an API key. Copy it once; we only store its hash.
- Discover your channels:
bash curl https://postme.live/api/v1/channels \ -H "Authorization: Bearer pml_live_<lookup>_<secret>" - Create a post (lands as a draft in v1):
bash curl -X POST https://postme.live/api/v1/posts \ -H "Authorization: Bearer pml_live_<lookup>_<secret>" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "caption": "We just shipped v0.20!", "channels": [{ "id": "<channel-id-from-step-2>" }] }' - Review the draft at the
review_urlreturned in the response, or in the dashboard, and publish from there.
Drafts by default, scheduling opt-in
Posts created through the API are persisted with status: "draft" unless you pass scheduled_for (ISO 8601, at least 2 minutes ahead) or publish_now: true — both create a queued post and consume one post-quota slot. Content rules are per-platform: text-only posts publish fine to Facebook and webhooks; Instagram and YouTube need media. See Posts → Scheduling.
Create a draft, review or revise it with PATCH /posts/{id}, then publish the same draft by patching in scheduled_for or publish_now. To keep something draft-only, simply omit both when creating.
Conventions
- Auth. Every request needs
Authorization: Bearer pml_live_…. - Idempotency. Every write needs an
Idempotency-Keyheader. Replays return the original response for 24h. - Encoding. Request and response bodies are JSON (
application/json) unless explicitly multipart. - Naming. JSON keys are
snake_case. Timestamps are RFC-3339 in UTC. Ids are UUIDv4. - Status.
2xxis success,4xxis your fault,5xxis ours. See Errors. - Rate limit. Plan-based, per key: 5 req/min on Free, 30 on Solo and Agency (per brand workspace). See Rate limits.
Machine-readable spec
The OpenAPI 3.1 spec is the contract: it's what we test against and what we generate clients from.
Download openapi.yaml · paste into editor.swagger.io for an interactive view.