Get started

Getting started

From zero to your first published post in a few minutes. You can do all of this from the dashboard, but here we drive it from the CLI and API — the primary surfaces.

1. Create a workspace

Sign up with email or Google at socializer.co. Your account is a tenant — an isolated workspace with its own profiles, posts, members, and audit log. Tenant isolation is enforced in Postgres with row-level security, so one workspace can never read another's data.

2. Mint an API key

The API and CLI authenticate with a tenant-scoped bearer key (sk_…). Create one from Settings → API keys in the dashboard. Treat it like a password — it grants full access to the workspace it belongs to. See Authentication & API keys for details and scoping.

3. Install the CLI

The flagship CLI mirrors the REST API one-to-one and ships as a public package:

shell
# install globally
$ bun install -g @hasnatools/socializer

# point it at the API and log in with your key
$ socializer --api-url https://socializer.co \
    --api-key sk_live_… login

Config is written to ~/.socializer/config.toml, so subsequent commands need no flags. Every command supports --help, --json, and --dry-run on writes.

4. Connect, compose, approve, schedule

Connect a profile, compose once and adapt per network, then approve and schedule. Bluesky and Mastodon are the quickest to connect for a first run:

socializer · CLI
# connect an account
$ socializer auth login bluesky --handle you.bsky.social

# compose a draft across networks (lands as draft, needs approval)
$ socializer compose --text "gm — shipping Socializer today 🚀" \
    --networks bluesky,mastodon

# review the per-network variants, then approve and schedule
$ socializer posts show <post-id>
$ socializer approve <post-id>
$ socializer schedule <post-id> --at "2026-07-01T09:00:00Z"

That's the whole loop. Nothing ships to a connected account until a human approves it, and every step is recorded in the immutable audit log.

Prefer raw HTTP?

Every CLI command is a REST call. The same draft over the API:

curl
curl -X POST https://socializer.co/api/v1/posts \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "body": "gm — shipping Socializer today 🚀",
    "targets": [{ "profile_id": "prof_…" }]
  }'

Explore every endpoint interactively in the API reference.