Skip to main content
The Public API lets external systems work with one Genseo project through explicit, allowlisted endpoints. It is the same foundation used by the Genseo CLI and MCP server.

Base URL

Authentication

Send the project-bound API key as a Bearer token:
There is no cookie fallback for the Public API. Browser sessions, admin sessions, and workspace permissions are not used for Public API authentication.

Project matching

Most endpoints include a projectId 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

MethodPathPurpose
GET/meInspect the current key and project
GET/projectGet the key’s project
GET/projects/{projectId}Get the matching project by ID
GET/projects/{projectId}/keywordsList keywords
POST/projects/{projectId}/keywordsAdd a custom keyword
POST/projects/{projectId}/keywords/generateGenerate keyword ideas
POST/projects/{projectId}/keyword-metricsRefresh keyword metrics
GET/projects/{projectId}/postsList posts
POST/projects/{projectId}/postsCreate a draft post
GET/projects/{projectId}/posts/{postId}Read one post
PATCH/projects/{projectId}/posts/{postId}Update a post
POST/projects/{projectId}/posts/{postId}/generateGenerate post content
POST/projects/{projectId}/posts/{postId}/publishPublish a post
GET/projects/{projectId}/integrationsList integration status
POST/projects/{projectId}/integrations/{provider}/connect-urlCreate an integration connect URL
GET/projects/{projectId}/integrations/{provider}/fieldsList provider fields
POST/projects/{projectId}/integrations/{provider}/mappingSave provider field mapping
GET/projects/{projectId}/webhooksList webhooks
POST/projects/{projectId}/webhooksCreate a webhook
DELETE/projects/{projectId}/webhooks/{webhookId}Delete a webhook

Identity

GET /me

Returns key metadata and the bound project.
Example response:
Agents should call this endpoint before doing anything else.

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.
Agents should preserve existing content when patching. Read the post first, then send only intentional changes.

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 conservative limit parameter where available. Clients should prefer small pages and retry 429 responses with backoff.

Response safety

Responses are allowlisted. The Public API does not return provider secrets, full API key hashes, internal database fields, billing internals, or workspace-wide data.