OpenAPI reference · Posts
List the workspace's custom post statuses
/post-statusesReturns the workspace's custom statuses (the kanban columns).
Use a returned id as the statusId when calling
PATCH /posts/{postId} — or as the statusId filter on
GET /posts, which is the only way to list one named column
when a workspace runs several inside a single category.
With projectId the response also carries the board's counts:
postCount on every column plus a counts rollup for the
project, which answers "what's in my pipeline?" in one call
instead of one GET /posts per category. Statuses are
workspace-scoped and posts are project-scoped, so without a
projectId every postCount is null and counts is null.
Required scope: posts:read.
Authorization
AuthorizationstringrequiredBearer token in the Authorization header.
Pass
Authorization: Bearer scripe_sk_live_<...>(orscripe_sk_test_<...>for test keys) on every request. Keys are scoped to a single workspace and can be revoked from the Scripe dashboard.The same header also accepts an OAuth 2.1 access token (
scripe_oat_*); both credentials share one scope vocabulary and every operation below documents the scope it requires. An API key can hold every scope named on this surface exceptwebhooks:manage, which is grantable to OAuth tokens only today — the webhook-endpoint operations answer403 scope_missingto every API key. Operations that name no scope accept any valid token of the workspace.
Query parameters
projectIdstringCount posts in this project. Omit for the columns alone.
Header parameters
Scripe-Api-VersionstringPin the API version. Format
YYYY-MM-DD. Omit to receive the currently rolling default. Unknown versions return400 version_unsupported.
Responses
- 200
All custom statuses for the workspace.
- 401
Missing, malformed, expired, or revoked API key.
- 403
Plan not eligible, scope missing, or workspace mismatch.
- 429
Sliding-window rate limit exceeded.
Example request
curl --request GET \
--url 'https://api.scripe.io/v1/post-statuses' \
--header 'Authorization: Bearer <token>'Example response (200)
{
"data": [
{
"id": "string",
"title": "string",
"description": "string",
"category": "suggested",
"color": "string",
"order": 0,
"isDefault": true,
"postCount": 0
}
],
"counts": {
"projectId": "string",
"total": 0,
"byCategory": {
"suggested": 493,
"draft": 126,
"inProgress": 3,
"review": 4,
"scheduled": 0,
"published": 31
},
"uncategorized": 0
}
}