PowerPost APIv1
PowerPost APIv1
PowerPost APIQuickstartAuthenticationWorkspacesInput Types

API Reference

Upload MediaGenerate ContentGenerationsGenerate ImagesGenerate VideosPosts & PublishingAnalyticsCalendarGet Credits

Guides

WebhooksError CodesChangelog

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

ParameterTypeRequiredDescription
start_datestringYesStart date in YYYY-MM-DD format
end_datestringYesEnd date in YYYY-MM-DD format

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"
const res = await fetch(
  'https://powerpost.ai/api/v1/calendar/entries?start_date=2026-03-01&end_date=2026-03-31',
  {
    headers: {
      'x-api-key': 'pp_live_sk_YOUR_KEY',
      'X-Workspace-Id': 'YOUR_WORKSPACE_ID',
    },
  }
)
const data = await res.json()
import requests

res = requests.get(
"https://powerpost.ai/api/v1/calendar/entries",
headers={
"x-api-key": "pp_live_sk_YOUR_KEY",
"X-Workspace-Id": "YOUR_WORKSPACE_ID",
},
params={
"start_date": "2026-03-01",
"end_date": "2026-03-31",
},
)
data = res.json()

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

FieldTypeRequiredDescription
titlestringYesEntry title (max 500 characters)
descriptionstringNoEntry description (max 5000 characters)
scheduled_datestringYesTarget date in YYYY-MM-DD format
scheduled_timestringNoTarget time in HH:MM format
platformsstring[]NoTarget platforms (instagram, tiktok, youtube, x, facebook, linkedin)

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"]
  }'
const res = await fetch('https://powerpost.ai/api/v1/calendar/entries', {
  method: 'POST',
  headers: {
    'x-api-key': 'pp_live_sk_YOUR_KEY',
    'X-Workspace-Id': 'YOUR_WORKSPACE_ID',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    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'],
  }),
})
const data = await res.json()
import requests

res = requests.post(
"https://powerpost.ai/api/v1/calendar/entries",
headers={
"x-api-key": "pp_live_sk_YOUR_KEY",
"X-Workspace-Id": "YOUR_WORKSPACE_ID",
"Content-Type": "application/json",
},
json={
"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"],
},
)
data = res.json()

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

ParameterTypeDescription
idstringThe 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"
const res = await fetch(
  'https://powerpost.ai/api/v1/calendar/entries/550e8400-e29b-41d4-a716-446655440000',
  {
    headers: {
      'x-api-key': 'pp_live_sk_YOUR_KEY',
      'X-Workspace-Id': 'YOUR_WORKSPACE_ID',
    },
  }
)
const data = await res.json()
import requests

res = requests.get(
"https://powerpost.ai/api/v1/calendar/entries/550e8400-e29b-41d4-a716-446655440000",
headers={
"x-api-key": "pp_live_sk_YOUR_KEY",
"X-Workspace-Id": "YOUR_WORKSPACE_ID",
},
)
data = res.json()

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.


Path Parameters

ParameterTypeDescription
idstringThe calendar entry ID (UUID)

Request Body

FieldTypeRequiredDescription
titlestringNoEntry title (max 500 characters)
descriptionstringNoEntry description (max 5000 characters)
scheduled_datestringNoTarget date in YYYY-MM-DD format
scheduled_timestringNoTarget time in HH:MM format
platformsstring[]NoTarget platforms (instagram, tiktok, youtube, x, facebook, linkedin)

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"
  }'
const res = await fetch(
  'https://powerpost.ai/api/v1/calendar/entries/550e8400-e29b-41d4-a716-446655440000',
  {
    method: 'PATCH',
    headers: {
      'x-api-key': 'pp_live_sk_YOUR_KEY',
      'X-Workspace-Id': 'YOUR_WORKSPACE_ID',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      title: 'Updated launch announcement',
      scheduled_date: '2026-03-28',
    }),
  }
)
const data = await res.json()
import requests

res = requests.patch(
"https://powerpost.ai/api/v1/calendar/entries/550e8400-e29b-41d4-a716-446655440000",
headers={
"x-api-key": "pp_live_sk_YOUR_KEY",
"X-Workspace-Id": "YOUR_WORKSPACE_ID",
"Content-Type": "application/json",
},
json={
"title": "Updated launch announcement",
"scheduled_date": "2026-03-28",
},
)
data = res.json()

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

ParameterTypeDescription
idstringThe 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"
const res = await fetch(
  'https://powerpost.ai/api/v1/calendar/entries/550e8400-e29b-41d4-a716-446655440000',
  {
    method: 'DELETE',
    headers: {
      'x-api-key': 'pp_live_sk_YOUR_KEY',
      'X-Workspace-Id': 'YOUR_WORKSPACE_ID',
    },
  }
)
const data = await res.json()
import requests

res = requests.delete(
"https://powerpost.ai/api/v1/calendar/entries/550e8400-e29b-41d4-a716-446655440000",
headers={
"x-api-key": "pp_live_sk_YOUR_KEY",
"X-Workspace-Id": "YOUR_WORKSPACE_ID",
},
)
data = res.json()

Response

{
  "success": true
}

Errors

CodeDescription
400Invalid request (missing fields, bad date format)
401Invalid API key
403Workspace access denied
404Calendar entry not found
429Rate limit exceeded

Analytics

Fetch performance metrics for published post items.

Get Credits

Check your current credit balance.

On this page

List EntriesQuery ParametersExampleResponseCreate EntryRequest BodyExampleResponseGet EntryPath ParametersExampleResponseUpdate EntryPath ParametersRequest BodyExampleResponseDelete EntryPath ParametersExampleResponseErrors