⚡ Developer Docs — Schedule to 18 social networks over plain HTTP
HookpostHookpost
API Reference

Hookpost Public API

Schedule and manage posts across every channel you have connected, straight from your own code. Plain REST over HTTPS, JSON in and out, authenticated with a single API key.

Base URL

https://hookpost.hookstep.in/api/public/v1

Authentication

Every request carries your API key in the Authorization header. Note there is no Bearer prefix — send the key on its own. A request without it returns 401 No API Key found.

Authorization: YOUR_API_KEY

Find your key in the app under Settings → Public API. You can rotate it there at any time; the old key stops working immediately, so update anything using it.

Keep it server-side. The key grants full access to your organisation's channels and posts. Never ship it in a browser bundle, a mobile app, or a public repo.

Your first request

Confirm the key works before writing anything else:

curl "https://hookpost.hookstep.in/api/public/v1/is-connected" \
  -H "Authorization: YOUR_API_KEY"

Then list the channels you have connected:

curl "https://hookpost.hookstep.in/api/public/v1/integrations" \
  -H "Authorization: YOUR_API_KEY"

Each channel comes back with an id — that is what you reference when creating a post.

Creating a post

type decides what happens: schedule queues it for date, now publishes immediately, and draft saves it without publishing. Dates are ISO 8601 in UTC.

curl -X POST "https://hookpost.hookstep.in/api/public/v1/posts" \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "schedule",
    "date": "2026-09-10T09:00:00.000Z",
    "shortLink": false,
    "tags": [],
    "posts": [
      {
        "integration": { "id": "YOUR_CHANNEL_ID" },
        "value": [
          { "content": "Shipped something small today.", "image": [] }
        ]
      }
    ]
  }'

Some channels require extra fields — YouTube needs a title and visibility, Pinterest needs a board. Call /integration-settings/:id to see what a given channel expects, and pass them as a settings object on the post.

Endpoints

Posts

GET/postsList posts in a date range
POST/postsCreate a post — schedule it, publish now, or save a draft
DELETE/posts/:idDelete a single post
DELETE/posts/group/:groupDelete every post in a group
PUT/posts/:id/settingsUpdate a post’s per-channel settings
PUT/posts/:id/statusUpdate a post’s status
GET/posts/:id/missingCheck which channels a post has not gone out on
GET/find-slot/:idNext free slot in your posting schedule

Channels

GET/integrationsList connected channels
GET/social/:integrationStart connecting a channel
DELETE/integrations/:idDisconnect a channel
GET/integration-settings/:idRead a channel’s settings schema
GET/is-connectedCheck whether the API key is valid
GET/groupsList customer groups

Media

POST/uploadUpload a file
POST/upload-from-urlUpload from a remote URL
POST/generate-videoGenerate a video (requires AI credits)

Analytics & account

GET/analytics/:integrationChannel-level analytics
GET/analytics/post/:postIdPer-post analytics
GET/usersUsers in your organisation
GET/notificationsYour notifications

Client libraries

Everything above is plain HTTP, so any language works. If you would rather not hand-roll the requests, these wrap the same API and take the same key:

Node.js

Typed client for the endpoints above. Works in ESM and CommonJS.

npm install @hookpost/node
@hookpost/node on npm
Command line

Schedule, list and delete posts from a terminal or a CI job.

npm install -g hookpost
hookpost on npm
n8n

A community node for n8n workflows. Install it from Settings → Community Nodes, then create a Hookpost API credential with the key above.

n8n-nodes-hookpost
n8n-nodes-hookpost on npm

Rate limits & plans

The API is rate limited per key. Public API access is included on paid plans — if your key returns 401 No subscription found, the organisation needs an active plan rather than a new key.

Prefer natural language?

If you want an AI assistant to schedule posts for you rather than writing HTTP calls yourself, Hookpost also speaks the Model Context Protocol. See the MCP connector or the Claude setup guide.

Building an integration other people will connect their own Hookpost account to? Use OAuth apps instead of asking them for an API key.