Docs › API reference › Introduction
OmniPosts HTTP API reference: base URL, auth and resources
Base URL, formats and a map of the OmniPosts HTTP API, with the two words it uses for a post and the result for one channel.
The OmniPosts API lets your code do what the app does: connect to your channels, send or schedule posts, read the result for each channel, and get told when something happens. The web app uses this same API.
Basics
- Base URL:
https://omniposts.dev - Paths: every endpoint is under
/v1, for examplehttps://omniposts.dev/v1/channels. - Format: requests and responses are JSON (
Content-Type: application/json). File uploads usemultipart/form-data. - Times: every timestamp is an ISO-8601 instant in UTC, for example
2026-10-20T09:30:00Z. - Ids: every id is a UUID.
- One organization per call. A key or a session belongs to one organization, and every call acts for it. You never send an organization id.
A first call:
Read Authentication to get a key.
curl https://omniposts.dev/v1/me \
-H "Authorization: Bearer omniposts_..."
Try it
- Interactive reference: /swagger-ui.html lists every endpoint, field and status, and lets you send requests from the page.
- The spec: /openapi.yaml is the OpenAPI 3.0 file the reference is built from, and /openapi.json is the same document as JSON. When a page in these docs and the spec disagree, the spec is right.
- For AI tools: /llms.txt is a short index of the site, and /llms-full.txt is every page of these docs as one Markdown file.
- Insomnia or Postman: import
https://omniposts.dev/openapi.yamlas a new collection. The spec listshttps://omniposts.devas its server, so requests work after you add your key as a Bearer token.
A post and a result for one channel
Two words appear in paths and field names:
- A group is one post that you send to one or more channels. In these docs we call it a post. It has a body, an optional time, and a list of targets.
- A target is the result for one channel. Each channel you name gets its own target with its own status
(
published,failed,queuedand so on), its own link on the platform, and its own failure reason if it went wrong.
One post to three channels is one group with three targets. A target can fail while the others succeed, so a
post can end up partial. See Posts and
Posts and results.
Where to go next
| Page | What it covers |
|---|---|
| Authentication | API keys, the session cookie, and what a key cannot do |
| Errors | The error envelope, status and code pairs, and the per-channel failure object |
| Idempotency | Making a retry of "create a post" safe |
| Pagination | Cursors and page sizes |
| Rate limits | The limits, and what a 429 looks like |
| Providers | What each platform supports: limits, media rules, settings |
| Channels | List, connect and disconnect channels |
| Posts | Create, list, edit, cancel and retry posts, and the results inbox |
| Videos | One video to one channel, with typed settings for its platform |
| Drafts | Autosaved drafts and publishing them |
| Queue | Your weekly posting times |
| Media | Uploads and image descriptions |
| Reports | Delivery, metrics, performance and audience reports |
| Webhooks | Signed events, and how to verify them |
| Account | Who you are, API keys, your plan, data export and deletion |