Before your first call
The base address is https://app.postfjord.com/api, and every path below starts with /v1. Send your key in a header on every call:
Authorization: Bearer pf_live_...
Make the key in Postfjord under Settings, Apps. A key belongs to one workspace and has one level:
- read looks and never changes anything.
- draft makes and edits drafts, and never gives a post a date.
- publish may also schedule, publish, send emails and replies, and switch automations on.
A call outside the key's level answers 403. The API is included from the Solo plan.
Errors and limits
An error comes back as { "error": "<code>", "message": "..." } with a matching status:
400a field is wrong, and the message says which.401the key is missing, wrong or revoked.403the key's level does not allow it, or the workspace is paused or suspended.404it does not exist in this workspace.409the thing is in the wrong state, for example a post that is already out.429more than 60 calls a minute for the key, or the workspace's AI budget is spent.
Retries and dry runs
Send an Idempotency-Key header with any call that makes or sends something. If a call times out, send it again with the same key: the first answer comes back with Idempotent-Replayed: true, and nothing is made twice. Keys are kept for 24 hours.
Add ?dryRun=1 to POST /v1/posts or PATCH /v1/posts/{id} to check a post without saving it. The answer says if the real call would go through and, if not, why.
Times always carry their time zone, like 2026-11-03T09:00:00-05:00. A time without one is refused.