GEN API Keys API
Create and manage Personal Access Tokens (PATs) for API authentication.
Create and manage Personal Access Tokens (PATs) for API authentication.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/gen-pro:gen-pro-api-keys-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Auto Content Engine API Keys API
description: 'The GEN Auto Content Engine API takes a raw idea all the way to a published video — agent setup, idea research, vidsheet production, layer composition, render, and publish.
## The 5-step journey
Every operation belongs to one phase of a 5-step user journey. Each operation carries an `x-phase` extension you can filter on:
| Phase | Meaning |
|-------|---------|
| `setup` | Step 1 — Set Up Your Agent (identity, voice, personality, API keys, workspaces) |
| `ideas` | Step 2 — Generate Content Ideas (trending data, research, refinement, preferences) |
| `convert` | Step 3 — Convert Idea to Vidsheet (clone template or build custom engine) |
| `edit` | Step 4 — Edit & Generate (cells, layers, creation cards, trigger + poll) |
| `export` | Step 5 — Export & Publish (render, download, publish to social) |
Full journey-oriented docs: https://api.gen.pro
## Authentication
All endpoints require authentication via one of:
- **API Key** (recommended): Pass your API key in the `X-API-Key` header. Create keys on the agent''s API page in the GEN dashboard.
- **JWT**: Pass a Bearer JWT in the `Authorization: Bearer ` header.
## Base URLs
```
https://api.gen.pro/v1 — agent setup, vidsheets, generations, renders, publishing
https://agent.gen.pro/v1 — content ideas, research, conversations, chat
https://agent-core.gen.pro/v1 — agent core (brand profile, watchlists, scheduled tasks)
https://python.gen.pro — social publishing integration (connect, schedule, remove posts)
```
Each operation carries its own `servers` entry, so a generated client or a
hand-written call goes to the backend that serves the route.
## Credits
All `/v1/vidsheet/` endpoints require an active GEN credit balance.
If your organization has no usable credits, requests return `422` with error code `usable_gen_credit_required`.
Credits can be funded with x402 by calling `POST /v1/x402_credit_purchase`
with `workspace_id` plus `amount_usd` or `credits`. If `network` is omitted,
GEN returns every configured payment option in `payment_methods` and
`payment_required.accepts`; show the Sui, Solana, and Base options to the
user or calling agent and sign one selected accept entry. Workspace funding
wallets are backend settlement infrastructure; the user-facing payment
choices are the returned payment methods.'
version: 1.0.0
contact:
name: GEN Support
url: https://gen.pro
license:
name: Proprietary
servers:
- url: https://api.gen.pro/v1
description: Auto Content Engine API
- url: https://agent.gen.pro/v1
description: Agent Chat API
- url: https://agent-core.gen.pro/v1
description: Agent Core API (watchlists)
- url: https://python.gen.pro
description: Publishing integration API (social connect and scheduling)
security:
- apiKey: []
- bearerAuth: []
tags:
- name: API Keys
description: Create and manage Personal Access Tokens (PATs) for API authentication.
paths:
/persisted_tokens:
get:
operationId: listApiKeys
x-mcp-tool: gen_discover
x-mcp-branch: platform.api_keys
x-phase: setup
summary: List API keys
description: Returns all API keys for the authenticated user, including revoked and expired ones.
tags:
- API Keys
responses:
'200':
description: List of API keys
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiKey'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ApiValidationError'
post:
operationId: createApiKey
x-mcp-tool: gen_platform_action
x-mcp-branch: create_api_key
x-phase: setup
summary: Create API key
description: 'Creates a new API key. The plain-text key is returned **only once** in the response.
Store it securely — it cannot be retrieved again.'
tags:
- API Keys
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: Human-readable label. Auto-generated if omitted.
example: My n8n workflow
expires_in:
type: integer
description: Seconds until expiration. Omit for non-expiring keys.
example: 2592000
responses:
'201':
description: API key created. The `token` field contains the plain-text key.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiKey'
- type: object
properties:
token:
type: string
description: The plain-text API key. Store it now — it won't be shown again.
example: gen_abc123def456...
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ApiValidationError'
/persisted_tokens/{id}:
patch:
operationId: updateApiKey
x-mcp-tool: gen_platform_action
x-mcp-branch: update_api_key
x-phase: setup
summary: Rename API key
tags:
- API Keys
parameters:
- $ref: '#/components/parameters/TokenId'
requestBody:
content:
application/json:
schema:
type: object
required:
- persisted_token
properties:
persisted_token:
type: object
properties:
name:
type: string
example: Renamed key
responses:
'200':
description: Updated API key
content:
application/json:
schema:
$ref: '#/components/schemas/ApiKey'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/ApiValidationError'
/persisted_tokens/{id}/revoke:
delete:
operationId: revokeApiKey
x-mcp-tool: gen_platform_action
x-mcp-branch: revoke_api_key
x-phase: setup
summary: Revoke API key
description: Permanently revokes a single API key. This cannot be undone.
tags:
- API Keys
parameters:
- $ref: '#/components/parameters/TokenId'
responses:
'200':
description: Key revoked
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/ApiValidationError'
/persisted_tokens/revoke_all:
delete:
operationId: revokeAllApiKeys
x-mcp-tool: gen_platform_action
x-mcp-branch: revoke_all_api_keys
x-phase: setup
summary: Revoke all API keys
description: Revokes every active API key for the authenticated user.
tags:
- API Keys
responses:
'200':
description: All keys revoked
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Successfully revoked 3 tokens
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ApiValidationError'
components:
responses:
NotFound:
description: Resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: Not found
error_code: not_found
ApiValidationError:
description: Validation failed or the request could not be processed.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
Unauthorized:
description: Missing or invalid authentication.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: Unauthorized
error_code: unauthorized
parameters:
TokenId:
name: id
in: path
required: true
schema:
type: string
schemas:
ApiError:
type: object
required:
- code
properties:
code:
type: string
description: The stable machine-readable failure code.
message:
type: string
description: Human-readable failure detail.
errors:
type: array
description: Field-level validation failures.
items:
type: object
retryable:
type: boolean
description: Whether retrying can succeed without changing the request.
new_change_set_required:
type: boolean
description: Whether the caller must begin a new edit group.
funding_error_kind:
type: string
description: The credit or payment failure category.
Error:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
error_code:
type: string
description: Machine-readable error code.
ApiKey:
type: object
properties:
id:
type: string
name:
type: string
token_type:
type: string
created_at:
type: string
format: date-time
expires_at:
type: string
format: date-time
nullable: true
last_used_at:
type: string
format: date-time
nullable: true
revoked_at:
type: string
format: date-time
nullable: true
status:
type: string
enum:
- active
- expired
- revoked
securitySchemes:
apiKey:
type: apiKey
in: header
name: X-API-Key
description: Personal Access Token (PAT). Create one in Settings > API Keys.
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Bearer JWT issued by the GEN dashboard sign-in.