Base URL
Authentication
Send the project-bound API key as a Bearer token:Project matching
Most endpoints include aprojectId path parameter. That ID must exactly match the project attached to the API key.
If the key belongs to Project A and a request uses Project B, the API returns 403 project_forbidden.
Endpoints
Identity
GET /me
Returns key metadata and the bound project.
Project
GET /project
Returns the project attached to the API key.
GET /projects/{projectId}
Returns the same project when projectId exactly matches the key’s project.
Keywords
GET /projects/{projectId}/keywords
Lists keywords for the project.
POST /projects/{projectId}/keywords
Adds a custom keyword.
POST /projects/{projectId}/keywords/generate
Starts keyword generation for the project. Generation may return 202 Accepted when work continues asynchronously.
POST /projects/{projectId}/keyword-metrics
Refreshes metrics for one or more keywords.
Posts
GET /projects/{projectId}/posts
Lists posts for the project.
POST /projects/{projectId}/posts
Creates a draft post.
GET /projects/{projectId}/posts/{postId}
Reads one post. The post must belong to the same project as the key.
PATCH /projects/{projectId}/posts/{postId}
Updates allowlisted fields on a post.
POST /projects/{projectId}/posts/{postId}/generate
Starts or queues content generation for a post.
POST /projects/{projectId}/posts/{postId}/publish
Publishes through the project’s configured integration. Agents should ask before publishing unless autonomous publishing is explicitly enabled by the user.
Integrations
GET /projects/{projectId}/integrations
Lists connected providers and readiness status.
POST /projects/{projectId}/integrations/{provider}/connect-url
Creates a provider connect URL when supported. The user may still need to complete OAuth or provider authorization in the browser.
GET /projects/{projectId}/integrations/{provider}/fields
Lists available provider fields for mapping.
POST /projects/{projectId}/integrations/{provider}/mapping
Saves field mapping.
Webhooks
GET /projects/{projectId}/webhooks
Lists webhooks.
POST /projects/{projectId}/webhooks
Creates a webhook endpoint.
DELETE /projects/{projectId}/webhooks/{webhookId}
Deletes a webhook. The webhook must belong to the key’s project.
Pagination
List endpoints support a conservativelimit parameter where available. Clients should prefer small pages and retry 429 responses with backoff.

