Get Started

Quickstart

Publish your first post in 5 minutes

This guide gets you from zero to a scheduled post in five minutes. You can follow along in the dashboard or through the API — pick the path that fits your workflow.

We’ll use X (Twitter) as the example channel because it takes two clicks to connect. Every other channel works the same way.

Dashboard path

1

Create your OpenPost account

Sign up at openpost.so/signup. You’ll get a 7-day free trial on any plan (Plus, Pro, or Max). Your card is required but won’t be charged until day 7 — cancel any time before then and you pay nothing. Pick the plan that matches the features you need.

2

Connect a channel

In the left nav, click Connections, then + Add channel. Pick X (Twitter). You’ll be sent to X, shown the scopes we’re requesting, and redirected back.

The scopes we request: tweet.read, tweet.write, users.read, offline.access. Nothing more. You can disconnect at any time from the same screen.

3

Compose your first post

Click Createin the left nav. Pick your newly connected channel at the top. Type your post. You’ll see a live preview on the right showing exactly what it will look like when it ships.

Try adding an image, a link, and a hashtag — each platform’s preview updates with its own rendering rules (link unfurling, image aspect ratio, character count).

4

Schedule or publish

Two options at the bottom of the composer:

  • Publish now— sends to the channel within seconds.
  • Schedule— pick a time, or let us drop it into your next open queue slot.

Either way, you’ll land back on the Posts list with a new entry. Click it to see the publish status, engagement, and a link to the live post.

5

Watch it go live

If you scheduled a post, the calendar view under Calendarwill show it in its time slot. OpenPost publishes on the minute — never late, never clustered.

Done? You've seen the whole loop.

That’s the full cycle of OpenPost. Repeat for any channel, or read the full composer guide for advanced formats like threads, carousels, and reels.

API path

Every dashboard action is available via our REST API. Here’s the same flow as above, in code.

1

Grab an API key

In the dashboard, go to Settings → API Keys and click + Generate key. Keys are shown once — copy yours somewhere safe. Prefix is op_live_ for live keys, op_test_ for keys that post to a sandboxed channel.

shell
export OP_KEY=op_live_xxxxxxxxxxxxxxxxxxxx
2

Check the connection

A quick /health ping confirms your key is valid.

curl
curl https://api.openpost.so/v1/health \
  -H "Authorization: Bearer $OP_KEY"

You should get back:

json
{
  "ok": true,
  "workspace": "acme-inc",
  "key_name": "default"
}
3

List your channels

Before you can post, check which channels are connected.

curl
curl https://api.openpost.so/v1/integrations \
  -H "Authorization: Bearer $OP_KEY"

Each connected channel has an id, a platform, and a display name. Grab the ID of the one you want to post to.

4

Create a post

Choose your language — same request, different syntax:

curl -X POST https://api.openpost.so/v1/posts \
  -H "Authorization: Bearer $OP_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Hello world from OpenPost.",
    "integrations": ["int_abc123"],
    "schedule_at": "2026-04-20T14:00:00Z"
  }'
5

Confirm it's in the queue

List your scheduled posts and you’ll see the new one:

curl
curl https://api.openpost.so/v1/posts?status=scheduled \
  -H "Authorization: Bearer $OP_KEY"

Using a test key?

Posts created with op_test_keys are rendered and stored, but never sent to the real platform. You’ll get back a live_url of nullwhen they “publish.” Great for CI.

Next steps

Last updated April 2026 Edit this page