Get a key

Docs / For agents

Set a ceiling. Agents never spend past it.

One key in front of image, video, voice and LLMs, on prepaid credit, with the spend limit enforced by the API rather than by the agent.

The ceiling

A limit is a parameter, not an instruction

The agent says what it wants and the most it may spend. Corent decides the rest.

tool: create{  "intent": "a 10-second vertical sunrise clip",  "max_cost_cents": 50} → video-air · 9:16 · 10s · 44¢ billed

Ceiling 50¢

Billed 44¢
6¢ unspent
One create call: 44¢ billed against a 50¢ ceiling, checked before it spent

Checked before it spends

The ceiling is enforced server-side, so a looping agent cannot argue its way past it.

No model, no tier

The agent describes the outcome. The router picks the model and sets the parameters.

The charge comes back

meta.cost_cents rides on every successful response, and every request keeps a receipt.

MCP

One paste connects an agent

Hosted, or run the package locally. Either way the key stays server-side.

The hosted connector signs you in with your normal Corent login, Google included. No key to find first. Pasting a key still works, for a client that cannot open a browser.

Hosted, nothing to install

https://mcp.corent.tech/mcp Streamable HTTP

Any MCP client, config file

"mcpServers": {  "corent": {    "command": "npx",    "args": ["-y", "corent-mcp"],    "env": { "CORENT_API_KEY": "co_live_..." }  }}
ToolWhat it doesWhat it spends
planPreviews what Corent would do for an intent, and what it would cost.Nothing
createTakes an intent and a max_cost_cents ceiling, decides everything, generates.Up to the ceiling
generate_imageOne image from a prompt and a tier. Takes reference images, so a face or product holds across a series.The image
generate_videoOne clip from a prompt, or from a still it animates. Takes reference images, videos and audio, and can hand back the last frame so the next shot starts where this one ended. Returns a job id.The clip, on completion
edit_videoChanges a clip you already have: add, remove, replace or change something, at the source length.The edited clip, on completion
extend_videoContinues a clip forward or backward from a reference video.The new footage, on completion
plan_filmTurns one sentence into a film plan: the script, the characters, every scene with its dialogue, and the price. The agent shows it and asks before spending.Nothing
make_filmMakes the planned film: writes, casts, shoots with the same characters and spoken lines, checks, reshoots, and joins it into one video with sound. Takes a max_cost_cents ceiling.Up to the ceiling; nothing if it fails or is cancelled
get_filmThe film's stage, from writing to editing, and the finished video once it is done.Nothing
cancel_filmStops a film that has not finished.Nothing; a cancelled film is not billed
generate_speechNarration from text, in a voice from list_voices.Per 1,000 characters
upscale_imageMakes an existing image bigger and sharper. Send a url.Flat, no tier
remove_backgroundCuts the subject out and returns a PNG with a real transparent background.Flat, no tier
inpaint_imageRegenerates only the masked region. Every pixel outside the mask is left untouched, byte for byte.The edit
upload_imageSends a file up and hands back a url that every other tool accepts as an image, mask or reference.Nothing
list_mediaFinds past jobs: what was made, when, for how much, and the url to reuse it.Nothing
get_jobThe state of one job, and the charge once it lands.Nothing
list_modelsThe models an agent can pin by name, with live status and quality score.Nothing

Recipes

Six skills, shipped as prompts

The hosted connector carries each of these as a prompt an agent can pick up whole. The chain is the order the tools run in. Connect Corent in Claude or ChatGPT and pick one from the prompt list.

RecipeWhat it makesThe chain
make-a-filmOne sentence to one finished film. Corent plans it and shows the price, the user says yes, then Corent writes, casts, shoots and joins it, with the stage reported every minute.plan_film → make_film → get_film
product-ugc-reelA vertical creator-style reel for one product: photo in, hook line, three cuts, narration, ready to post.upload_image → plan → generate_image (references) → generate_video → generate_speech → get_job
character-seriesOne character, many scenes. The first render becomes the reference for every render after it, so the face holds.generate_image → generate_image (references) → list_media
storyboard-to-clipA storyboard of stills becomes a sequence of clips, each animated from its frame, then joined in order.upload_image → generate_image (references) → generate_video → get_job → list_media
ad-variationsOne approved ad, eight variants: different hooks, crops and voices, every one costed before it renders.plan → generate_image (references) → generate_video → generate_speech → get_job
faceless-explainerA narrated explainer with no presenter: script to voice, voice to timed scenes, scenes to one clip.plan → generate_speech → generate_image → generate_video → get_job

make-a-film hands the whole job to Corent, so a story with several characters or anything over about 30 seconds starts there. A 50 second 720p film with five characters costs roughly $10 to $20, the charge never goes above max_cost_cents, and a film that fails or is cancelled is not billed.

character-series keeps the character with reference images on every clip, and storyboard-to-clip chains shots with the last frame, so each clip starts on the frame the one before it ended on.

Every step in a chain is a normal tool call with the normal price, and a failed step is never billed. A recipe that stops halfway has spent only what finished.

HTTP

For agents that do not speak MCP

One request, one result, the cost on the response.

The request

curl -X POST \  https://api.corent.tech/v1/images/generate \  -H "Authorization: Bearer co_live_..." \  -H "Content-Type: application/json" \  -d '{    "prompt": "a matte black watch on marble",    "tier": "air"  }'

The response

{  "status": "completed",  "images": [{ "url": "https://..." }],  "meta": {    "model": "image-air",    "cost_cents": 2,    "duration_ms": 1500  }}

Deciding what to generate on its own? Send the raw request to /v1/intent/execute with confirm_estimated_cost_cents_up_to, and Corent picks the tier conservatively rather than letting an agent reach for the most expensive one.

Reach

Four kinds of output, one balance

Same key, same credits, the exact charge returned every time.

OutputEndpointWhat comes backThe charge
ImagePOST /v1/images/generateThe image inline, usually. A slow render returns a job id instead.meta.cost_cents, from 3¢
VideoPOST /v1/videos/generate202 and a job id. Read GET /v1/jobs/{id}/stream instead of polling.On the job, from 18¢ a clip
VoicePOST /v1/audio/speechThe finished audio file, synchronously.meta.cost_cents, 9¢ per 1,000 characters
TextPOST /v1/chat/completionsAn OpenAI-compatible completion. Streaming and tool calls pass through.corent.cost_cents, from 3¢ a response

Budget

What stops a runaway loop

Six limits, every one of them outside the agent.

LimitWhat it does
Per-request ceilingmax_cost_cents on create, confirm_estimated_cost_cents_up_to over HTTP. Past it, Corent returns the plan and the estimate and spends nothing.
Per-key daily capNew keys start at $10 a day, with a rate limit and a concurrent-job limit beside it. Raising a cap needs a dashboard login, so a leaked key cannot raise its own.
Prepaid balanceGET /v1/account/balance, in cents. Top up from $5 by card, $10 in crypto. No subscription.
Balance at zeroThe request returns 402 and is not charged. Nothing generates until funds land.
Failed generationsNever billed, failover included. The receipt reads billed: false, cost_cents: 0.
Blind retriesSend an Idempotency-Key. A repeated key returns the original job instead of charging twice.

Next

Two minutes in. Take a key.

Prepaid credits from $5. No subscription. Failed generations are never billed.