Skip to content
Docs / Channels

API reference

Channels

A channel is one connected account: a LinkedIn profile, a YouTube channel, a Telegram group. Channels are connected in the app; the API reads them.

List channels

GET/api/public/v1/channels

Returns every channel connected to the key’s workspace, sorted by network and name.

The channel object

idinteger
Use it as channel_id when you schedule a post.
platformstring
The network: linkedin, youtube, bluesky, mastodon, telegram, discord, lemmy, tumblr, pinterest, webhook.
namestring
The account or page name, as the network shows it.
usernamestring or null
The handle, where the network has one.
avatar_urlstring or null
The account’s picture.
needs_reconnectboolean
True when the network revoked access. Posts to it fail until someone reconnects it in the app.
posting_timesarray of strings
Times of day, like 09:00, in the workspace’s time zone. The queue picks from these.
reconnect_bystring or null
When access runs out, for networks whose access can’t renew on its own. Reconnect before then.
created_atstring
When the channel was connected.
curl https://api.postzora.com/api/public/v1/channels \
  -H "Authorization: Bearer $POSTZORA_API_KEY"
Response
{
  "data": [
    {
      "id": 12,
      "platform": "linkedin",
      "name": "Acme",
      "username": "acme",
      "avatar_url": "https://media.licdn.com/dms/image/acme.png",
      "needs_reconnect": false,
      "posting_times": ["09:00", "12:30", "17:00"],
      "reconnect_by": null,
      "created_at": "2026-09-02T10:14:03.000000Z"
    },
    {
      "id": 15,
      "platform": "bluesky",
      "name": "Acme",
      "username": "acme.bsky.social",
      "avatar_url": null,
      "needs_reconnect": false,
      "posting_times": ["10:00", "16:00"],
      "reconnect_by": null,
      "created_at": "2026-09-02T10:14:03.000000Z"
    }
  ]
}

Get post settings

GET/api/public/v1/channels/{id}/post-settings

Some networks take more than text: YouTube needs a title and a visibility, Pinterest a board. This returns the fields a channel takes, so you can filltargets[].settings when you create a post.

Networks with no extra settings return an empty list. Where the options depend on the account, like Pinterest boards, they’re read from the network live.

Each field

namestring
The key to use in settings.
labelstring
What the app calls it.
typestring
text or select.
optionsarray
For select: the allowed values, each with a label.
defaultstring
Used when you leave the field out.
requiredboolean
Whether a post must set it before it can be scheduled.
curl https://api.postzora.com/api/public/v1/channels/21/post-settings \
  -H "Authorization: Bearer $POSTZORA_API_KEY"
Response
{
  "data": [
    {
      "name": "title",
      "label": "Title",
      "type": "text",
      "placeholder": "What the video is called on YouTube",
      "required": true
    },
    {
      "name": "privacy",
      "label": "Visibility",
      "type": "select",
      "options": [
        { "value": "public", "label": "Public" },
        { "value": "unlisted", "label": "Unlisted" },
        { "value": "private", "label": "Private" }
      ],
      "default": "public",
      "required": true
    }
  ]
}

Questions about the API? Email [email protected].