Live for Claude Code, Cursor & VS Code
MCP server
Let your AI assistant make images, videos and audio with Gireta, paid from your own credits.
https://gireta.com/api/mcp- Step 1
Create an API key
Make a key on this page and keep it somewhere safe. It spends credits from your account.
YOUR_API_KEY - Step 2
Add the server
Run this once in your terminal. It registers the server for every project.
claude mcp add --transport http gireta https://gireta.com/api/mcp --header "Authorization: Bearer YOUR_API_KEY" - Step 3
Ask for media
In a session, ask for an image or a video and Claude calls Gireta for you.
Make a 9:16 product shot of my mug on marble
Replace YOUR_API_KEY with a key from below. Keys never leave your machine except to reach Gireta.
What you can ask for
Ready-made jobs for Claude, ChatGPT or Cursor once the server is connected.
Build with the Gireta API
The same models and credits as the app, over plain REST. Create a key, send a prompt, poll for the result.
Quick start
Start a job. Send an Idempotency-Key so a retried request never charges twice.
curl https://gireta.com/api/v1/generations \
-H "Authorization: Bearer $NOVA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 6f1c-order-42" \
-d '{"model": "nano-banana-2", "prompt": "A glass perfume bottle on wet black stone, studio light", "aspect_ratio": "4:5"}'Then poll until it settles.
const res = await fetch("https://gireta.com/api/v1/generations/" + id, {
headers: { Authorization: `Bearer ${process.env.NOVA_API_KEY}` },
});
const { data } = await res.json();
if (data.status === "succeeded") console.log(data.outputs[0].url);Endpoints
Base URL https://gireta.com/api/v1
GET /modelsEvery model with its settings and default credit cost. No key needed.
GET /meYour account, plan and credit balance.
POST /generationsStart an image, video or audio job. Returns 201 with the job, or 402 when you are out of credits.
GET /generations/{id}Poll a job. status moves from queued to running to succeeded or failed. Failed jobs are refunded.
GET /generationsYour latest jobs, newest first. Use ?limit= up to 100.
POST /uploadsUpload a reference image (multipart, field file). Pass the returned url in image_urls.
Generation body
{
"model": "seedance-2.5", // id from GET /models
"prompt": "Slow dolly in on a ceramic mug, steam rising",
"aspect_ratio": "9:16", // one of the model's aspect_ratios
"resolution": "720p", // one of the model's resolutions
"duration": 8, // video only, one of the model's durations
"sound": true, // video models with sound
"image_urls": ["https://.../api/uploads/<id>"] // your own uploads only
}Settings a model does not support fall back to its defaults. The cost in credits comes back on every job, and the same request always costs the same.
Errors and limits
401missing or invalid key402not enough credits400unknown model, empty prompt or a reference image that is not yours429more than 120 requests or 30 new jobs a minute
Errors look like {"error": {"code": "insufficient_credits", "message": "..."}}.