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 | /posts | List posts in a date range |
| POST | /posts | Create a post — schedule it, publish now, or save a draft |
| DELETE | /posts/:id | Delete a single post |
| DELETE | /posts/group/:group | Delete every post in a group |
| PUT | /posts/:id/settings | Update a post’s per-channel settings |
| PUT | /posts/:id/status | Update a post’s status |
| GET | /posts/:id/missing | Check which channels a post has not gone out on |
| GET | /find-slot/:id | Next free slot in your posting schedule |
Channels
| GET | /integrations | List connected channels |
| GET | /social/:integration | Start connecting a channel |
| DELETE | /integrations/:id | Disconnect a channel |
| GET | /integration-settings/:id | Read a channel’s settings schema |
| GET | /is-connected | Check whether the API key is valid |
| GET | /groups | List customer groups |
Media
| POST | /upload | Upload a file |
| POST | /upload-from-url | Upload from a remote URL |
| POST | /generate-video | Generate a video (requires AI credits) |
Analytics & account
| GET | /analytics/:integration | Channel-level analytics |
| GET | /analytics/post/:postId | Per-post analytics |
| GET | /users | Users in your organisation |
| GET | /notifications | Your 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:
Typed client for the endpoints above. Works in ESM and CommonJS.
npm install @hookpost/node@hookpost/node on npmSchedule, list and delete posts from a terminal or a CI job.
npm install -g hookposthookpost on npmA community node for n8n workflows. Install it from Settings → Community Nodes, then create a Hookpost API credential with the key above.
n8n-nodes-hookpostn8n-nodes-hookpost on npmRate 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.
