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.

Updated

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 example https://omniposts.dev/v1/channels.
  • Format: requests and responses are JSON (Content-Type: application/json). File uploads use multipart/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.yaml as a new collection. The spec lists https://omniposts.dev as 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, queued and 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