API reference
Calendar
Manage content calendar entries for planning and scheduling posts.
List Entries
GET /api/v1/calendar/entries
Retrieve calendar entries within a date range.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
start_date | string | Yes | Start date in YYYY-MM-DD format |
end_date | string | Yes | End date in YYYY-MM-DD format |
start_date must be on or before end_date, and the range must not exceed 366 days. Requests outside these bounds return 400.
Example
curl "https://powerpost.ai/api/v1/calendar/entries?start_date=2026-03-01&end_date=2026-03-31" \
-H "x-api-key: pp_live_sk_YOUR_KEY" \
-H "X-Workspace-Id: YOUR_WORKSPACE_ID"Response
{
"entries": [
{
"entry_id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Product launch announcement",
"description": "Share the new feature across all channels",
"scheduled_date": "2026-03-25",
"scheduled_time": "14:00",
"platforms": ["instagram", "tiktok", "x"],
"created_at": "2026-03-19T10:00:00Z",
"updated_at": "2026-03-19T10:00:00Z"
}
]
}Create Entry
POST /api/v1/calendar/entries
Create a new calendar entry for planning future content.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Entry title (max 500 characters) |
description | string | No | Entry description (max 5000 characters) |
scheduled_date | string | Yes | Target date in YYYY-MM-DD format |
scheduled_time | string | No | Target time in HH:MM format |
platforms | string[] | No | Platform names to target. See Post types. Omit for all. |
Example
curl -X POST https://powerpost.ai/api/v1/calendar/entries \
-H "x-api-key: pp_live_sk_YOUR_KEY" \
-H "X-Workspace-Id: YOUR_WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"title": "Product launch announcement",
"description": "Share the new feature across all channels",
"scheduled_date": "2026-03-25",
"scheduled_time": "14:00",
"platforms": ["instagram", "tiktok", "x"]
}'Response
{
"entry_id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Product launch announcement",
"description": "Share the new feature across all channels",
"scheduled_date": "2026-03-25",
"scheduled_time": "14:00",
"platforms": ["instagram", "tiktok", "x"],
"created_at": "2026-03-19T10:00:00Z",
"updated_at": "2026-03-19T10:00:00Z"
}Get Entry
GET /api/v1/calendar/entries/{id}
Retrieve a single calendar entry by ID.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The calendar entry ID (UUID) |
Example
curl https://powerpost.ai/api/v1/calendar/entries/550e8400-e29b-41d4-a716-446655440000 \
-H "x-api-key: pp_live_sk_YOUR_KEY" \
-H "X-Workspace-Id: YOUR_WORKSPACE_ID"Response
{
"entry_id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Product launch announcement",
"description": "Share the new feature across all channels",
"scheduled_date": "2026-03-25",
"scheduled_time": "14:00",
"platforms": ["instagram", "tiktok", "x"],
"created_at": "2026-03-19T10:00:00Z",
"updated_at": "2026-03-19T10:00:00Z"
}Update Entry
PATCH /api/v1/calendar/entries/{id}
Update an existing calendar entry. Only include the fields you want to change. At least one field must be provided — sending an empty body returns 400.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The calendar entry ID (UUID) |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
title | string | No | Entry title (max 500 characters) |
description | string | No | Entry description (max 5000 characters) |
scheduled_date | string | No | Target date in YYYY-MM-DD format |
scheduled_time | string | No | Target time in HH:MM format |
platforms | string[] | No | Platform names to target. See Post types. Omit for all. |
Example
curl -X PATCH https://powerpost.ai/api/v1/calendar/entries/550e8400-e29b-41d4-a716-446655440000 \
-H "x-api-key: pp_live_sk_YOUR_KEY" \
-H "X-Workspace-Id: YOUR_WORKSPACE_ID" \
-H "Content-Type: application/json" \
-d '{
"title": "Updated launch announcement",
"scheduled_date": "2026-03-28"
}'Response
{
"entry_id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Updated launch announcement",
"description": "Share the new feature across all channels",
"scheduled_date": "2026-03-28",
"scheduled_time": "14:00",
"platforms": ["instagram", "tiktok", "x"],
"created_at": "2026-03-19T10:00:00Z",
"updated_at": "2026-03-20T09:15:00Z"
}Delete Entry
DELETE /api/v1/calendar/entries/{id}
Delete a calendar entry.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The calendar entry ID (UUID) |
Example
curl -X DELETE https://powerpost.ai/api/v1/calendar/entries/550e8400-e29b-41d4-a716-446655440000 \
-H "x-api-key: pp_live_sk_YOUR_KEY" \
-H "X-Workspace-Id: YOUR_WORKSPACE_ID"Response
{
"success": true
}Errors
| Code | Description |
|---|---|
| 400 | Invalid request (missing fields, bad date format) |
| 401 | Invalid API key |
| 403 | Workspace access denied |
| 404 | Calendar entry not found |
| 429 | Rate limit exceeded |