CharGen Account & catalog API
Your account balance and the priced model catalog (org-pinned prices).
Your account balance and the priced model catalog (org-pinned prices).
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/char-gen-com:char-gen-com-account-catalog-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: CharGen Partner Account & catalog API
description: 'Wholesale generation API for images, video, audio, 3D models and structured D&D entities. Authenticate every call with `Authorization: Bearer YOUR_API_KEY` (keys are minted in the developer portal at char-gen.com/developers). Generations are asynchronous: POST returns 202 with an id, poll GET /partner/v1/generations/{id} for status and results (renders on POST /partner/v1/generations, structured D&D entities on POST /partner/v1/entities). Billing is a prepaid USD wallet; GET /partner/v1/models lists your per-model prices.'
version: v1
servers:
- url: https://api.char-gen.com
description: Production
tags:
- name: Account & catalog
description: Your account balance and the priced model catalog (org-pinned prices).
paths:
/partner/v1/models:
get:
tags:
- Account & catalog
operationId: models
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/ModelPriceDto'
'400':
description: Bad Request
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
'401':
description: Unauthorized
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
'402':
description: Payment Required
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
'404':
description: Not Found
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
'409':
description: Conflict
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
'422':
description: Unprocessable Entity
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
summary: Models
x-summary-source: derived
/partner/v1/account:
get:
tags:
- Account & catalog
operationId: account
responses:
'200':
description: OK
content:
'*/*':
schema:
type: object
'400':
description: Bad Request
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
'401':
description: Unauthorized
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
'402':
description: Payment Required
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
'404':
description: Not Found
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
'409':
description: Conflict
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
'422':
description: Unprocessable Entity
content:
'*/*':
schema:
type: object
additionalProperties:
type: string
summary: Account
x-summary-source: derived
components:
schemas:
ModelCapabilities:
type: object
properties:
requiresReferenceImage:
type: boolean
description: 'True when the model is image-to-image only: referenceImageUrl is REQUIRED (image and video families).'
supportsReferenceImage:
type: boolean
description: True when the model accepts an optional referenceImageUrl (image, video and model3d families).
minSizePx:
type: integer
format: int32
description: 'Image only: minimum Size dimension in pixels per side. ENFORCED at dispatch.'
example: 256
maxSizePx:
type: integer
format: int32
description: 'Image only: maximum Size dimension in pixels per side. ENFORCED at dispatch.'
example: 1536
qualityOptions:
type: array
description: 'Image only: accepted Premium Quality values for the models priced by quality (GPT Image and Ideogram families). Null when quality does not change the price.'
items:
type: string
videoDurations:
type: array
description: 'Video only: the accepted Video Duration values in seconds. ENFORCED at dispatch - other values are rejected with 400.'
items:
type: integer
format: int32
resolutions:
type: array
description: 'Video only: the Resolution presets the model supports. Null when the model has no resolution selector. Advisory.'
items:
type: string
requiresVideoDuration:
type: boolean
description: 'Video only: true when requestFields["Video Duration"] is REQUIRED for this model.'
supportsGenerateAudio:
type: boolean
description: 'Video only: true when the model supports requestFields["Generate Audio"] (may multiply the price - see pricingNote).'
audioKind:
type: string
description: 'Audio only: what the model produces.'
enum:
- music
- sfx
- tts
durationRangeSeconds:
type: array
description: 'Audio only: [min, max] accepted Duration in seconds for duration-billed models. Null when the model ignores Duration.'
items:
type: integer
format: int32
requiresSourceModel:
type: boolean
description: 'Model3d only: true for the 3D tools (model in, model out). They REQUIRE input.sourceModelUrl, an https link to a GLB, glTF, FBX, OBJ or STL file, and take no referenceImageUrl. ENFORCED at dispatch.'
ModelPriceDto:
type: object
properties:
type:
type: string
model:
type: string
priceUsd:
type: number
format: double
pricingNote:
type: string
requiresReferenceImage:
type: boolean
capabilities:
$ref: '#/components/schemas/ModelCapabilities'
description: 'Machine-readable per-model capabilities: which requestFields values this model accepts. Family-inapplicable fields are omitted.'