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¢
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_..." } }}
| Tool | What it does | What it spends |
|---|---|---|
| plan | Previews what Corent would do for an intent, and what it would cost. | Nothing |
| create | Takes an intent and a max_cost_cents ceiling, decides everything, generates. | Up to the ceiling |
| generate_image | One image from a prompt and a tier. Takes reference images, so a face or product holds across a series. | The image |
| generate_video | One 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_video | Changes a clip you already have: add, remove, replace or change something, at the source length. | The edited clip, on completion |
| extend_video | Continues a clip forward or backward from a reference video. | The new footage, on completion |
| plan_film | Turns 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_film | Makes 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_film | The film's stage, from writing to editing, and the finished video once it is done. | Nothing |
| cancel_film | Stops a film that has not finished. | Nothing; a cancelled film is not billed |
| generate_speech | Narration from text, in a voice from list_voices. | Per 1,000 characters |
| upscale_image | Makes an existing image bigger and sharper. Send a url. | Flat, no tier |
| remove_background | Cuts the subject out and returns a PNG with a real transparent background. | Flat, no tier |
| inpaint_image | Regenerates only the masked region. Every pixel outside the mask is left untouched, byte for byte. | The edit |
| upload_image | Sends a file up and hands back a url that every other tool accepts as an image, mask or reference. | Nothing |
| list_media | Finds past jobs: what was made, when, for how much, and the url to reuse it. | Nothing |
| get_job | The state of one job, and the charge once it lands. | Nothing |
| list_models | The 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.
| Recipe | What it makes | The chain |
|---|---|---|
| make-a-film | One 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-reel | A 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-series | One 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-clip | A 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-variations | One 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-explainer | A 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.
| Output | Endpoint | What comes back | The charge |
|---|---|---|---|
| Image | POST /v1/images/generate | The image inline, usually. A slow render returns a job id instead. | meta.cost_cents, from 3¢ |
| Video | POST /v1/videos/generate | 202 and a job id. Read GET /v1/jobs/{id}/stream instead of polling. | On the job, from 18¢ a clip |
| Voice | POST /v1/audio/speech | The finished audio file, synchronously. | meta.cost_cents, 9¢ per 1,000 characters |
| Text | POST /v1/chat/completions | An 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.
| Limit | What it does |
|---|---|
| Per-request ceiling | max_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 cap | New 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 balance | GET /v1/account/balance, in cents. Top up from $5 by card, $10 in crypto. No subscription. |
| Balance at zero | The request returns 402 and is not charged. Nothing generates until funds land. |
| Failed generations | Never billed, failover included. The receipt reads billed: false, cost_cents: 0. |
| Blind retries | Send 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.