Images · Text to image
Recraft v3 API
Recraft V3. Strong at icons, illustrations, and brand assets.
- Price
- From $0.10 per run $0.10/image
- Typical time
- ~15 s
- Model id
recraft_v3
Recraft v3 runs on one varg API key and one credit balance, the same as every other model here. You pay the provider's price, with no markup.
curl -X POST https://api.varg.ai/v2/tools/image/call \
-H "Authorization: Bearer $VARG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "recraft_v3",
"prompt": "flat design app icon, gradient purple to blue, rounded corners"
}'
Recraft v3 pricing
From $0.10 per run. Prices are in US dollars and are the provider's own, with no markup. For the exact price of a request, send the same body to POST https://api.varg.ai/v2/estimate.
- fal $0.10/image
fal:recraft_v3Text to image
- Per image
- $0.10
- Typical time
- ~15 s
Recraft v3 inputs
The JSON body of the request. Media inputs are URLs: upload a local file with POST /v2/files and pass the URL it returns. Full JSON Schema, no key needed: api.varg.ai/v2/tools/image?model=recraft_v3
| Field | What it does |
|---|---|
model string required | recraft_v3 picks a route automatically. |
prompt string | — |
files array of { url } | — |
aspect_ratio string | Allowed e.g. 16:9 | 9:16 | 1:1 | 4:3 | 3:4 | 21:9 | auto |
Provider options
Optional, under provider_options.<provider>. Only the options of the provider that runs the job apply; pin a route to choose it.
provider_options.fal
| Field | What it does |
|---|---|
prompt string | — |
style string | Allowed any | realistic_image | digital_illustration | vector_illustration | realistic_image/b_and_w | realistic_image/hard_flash | realistic_image/hdr | realistic_image/natural_light | realistic_image/studio_portrait | realistic_image/enterprise | realistic_image/motion_blur | realistic_image/evening_light | realistic_image/faded_nostalgia | realistic_image/forest_life | realistic_image/mystic_naturalism | realistic_image/natural_tones | realistic_image/organic_calm | realistic_image/real_life_glow | realistic_image/retro_realism | realistic_image/retro_snapshot | realistic_image/urban_drama | realistic_image/village_realism | realistic_image/warm_folk | digital_illustration/pixel_art | digital_illustration/hand_drawn | digital_illustration/grain | digital_illustration/infantile_sketch | digital_illustration/2d_art_poster | digital_illustration/handmade_3d | digital_illustration/hand_drawn_outline | digital_illustration/engraving_color | digital_illustration/2d_art_poster_2 | digital_illustration/antiquarian | digital_illustration/bold_fantasy | digital_illustration/child_book | digital_illustration/child_books | digital_illustration/cover | digital_illustration/crosshatch | digital_illustration/digital_engraving | digital_illustration/expressionism | digital_illustration/freehand_details | digital_illustration/grain_20 | digital_illustration/graphic_intensity | digital_illustration/hard_comics | digital_illustration/long_shadow | digital_illustration/modern_folk | digital_illustration/multicolor | digital_illustration/neon_calm | digital_illustration/noir | digital_illustration/nostalgic_pastel | digital_illustration/outline_details | digital_illustration/pastel_gradient | digital_illustration/pastel_sketch | digital_illustration/pop_art | digital_illustration/pop_renaissance | digital_illustration/street_art | digital_illustration/tablet_sketch | digital_illustration/urban_glow | digital_illustration/urban_sketching | digital_illustration/vanilla_dreams | digital_illustration/young_adult_book | digital_illustration/young_adult_book_2 | vector_illustration/bold_stroke | vector_illustration/chemistry | vector_illustration/colored_stencil | vector_illustration/contour_pop_art | vector_illustration/cosmics | vector_illustration/cutout | vector_illustration/depressive | vector_illustration/editorial | vector_illustration/emotional_flat | vector_illustration/infographical | vector_illustration/marker_outline | vector_illustration/mosaic | vector_illustration/naivector | vector_illustration/roundish_flat | vector_illustration/segmented_colors | vector_illustration/sharp_contrast | vector_illustration/thin | vector_illustration/vector_photo | vector_illustration/vivid_shapes | vector_illustration/engraving | vector_illustration/line_art | vector_illustration/line_circuit | vector_illustration/linocut |
style_id string | — |
image_size string | Allowed square_hd | square | portrait_4_3 | portrait_16_9 | landscape_4_3 | landscape_16_9 |
enable_safety_checker boolean | If set to true, the safety checker will be enabled. |
Call the Recraft v3 API
POST https://api.varg.ai/v2/tools/image/call with Authorization: Bearer $VARG_API_KEY. It answers 202 with a job right away.
1. Send the request
curl -X POST https://api.varg.ai/v2/tools/image/call \
-H "Authorization: Bearer $VARG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "recraft_v3",
"prompt": "flat design app icon, gradient purple to blue, rounded corners"
}'JavaScript
const headers = {
Authorization: `Bearer ${process.env.VARG_API_KEY}`,
'Content-Type': 'application/json',
}
const res = await fetch('https://api.varg.ai/v2/tools/image/call', {
method: 'POST',
headers,
body: JSON.stringify({
"model": "recraft_v3",
"prompt": "flat design app icon, gradient purple to blue, rounded corners"
}),
})
const job = await res.json() // { id: "job_…", status: "queued" }Python
import os
import requests
headers = {"Authorization": f"Bearer {os.environ['VARG_API_KEY']}"}
job = requests.post(
"https://api.varg.ai/v2/tools/image/call",
headers=headers,
json={
"model": "recraft_v3",
"prompt": "flat design app icon, gradient purple to blue, rounded corners"
},
).json() # {"id": "job_…", "status": "queued"}2. Get the result
Poll the job until its status is completed, failed or cancelled; Recraft v3 typically takes about 15 s. The result is at output.outputs[0].url.
curl https://api.varg.ai/v2/jobs/$JOB_ID \
-H "Authorization: Bearer $VARG_API_KEY"
# Poll until "status" is completed, failed or cancelled.
# The result is in output.outputs[0].urlJavaScript
let current = job
while (!['completed', 'failed', 'cancelled'].includes(current.status)) {
await new Promise((resolve) => setTimeout(resolve, 3000))
current = await (await fetch(`https://api.varg.ai/v2/jobs/${current.id}`, { headers })).json()
}
console.log(current.output?.outputs?.[0]?.url)Python
import time
while job["status"] not in ("completed", "failed", "cancelled"):
time.sleep(3)
job = requests.get(f"https://api.varg.ai/v2/jobs/{job['id']}", headers=headers).json()
print(job["output"]["outputs"][0]["url"])Or take a webhook instead of polling
Add options.webhook_url and varg POSTs the finished job to it.
{
"model": "recraft_v3",
"prompt": "flat design app icon, gradient purple to blue, rounded corners",
"options": {
"webhook_url": "https://your-app.com/varg-webhook"
}
}From Claude, ChatGPT or Cursor (MCP)
The varg MCP server, https://mcp.varg.ai/mcp, runs Recraft v3 with call_tool. Sign in with varg, no API key to paste. How to connect it
{
"tool": "image",
"input": {
"model": "recraft_v3",
"prompt": "flat design app icon, gradient purple to blue, rounded corners"
},
"wait": true
}Recraft v3 API: questions
- How much does Recraft v3 cost on varg?
- Recraft v3 costs from $0.10 per run on varg ($0.10/image on the cheapest route). varg charges the provider's price with no markup, from one credit balance. For the exact price of a request before you run it, send the same body to POST https://api.varg.ai/v2/estimate.
- How do I call the Recraft v3 API?
- Send POST https://api.varg.ai/v2/tools/image/call with the header "Authorization: Bearer $VARG_API_KEY" and a JSON body that includes "model": "recraft_v3". The call answers 202 with a job right away. Poll GET https://api.varg.ai/v2/jobs/{id} until "status" is "completed", then read output.outputs[0].url, or pass options.webhook_url to be called back.
- Can I use Recraft v3 from Claude, ChatGPT or Cursor?
- Yes. Add the varg MCP server (https://mcp.varg.ai/mcp) to Claude, ChatGPT, Cursor or any other MCP client and sign in with varg, with no API key to paste. The agent runs Recraft v3 with call_tool, passing tool "image" and "model": "recraft_v3".
- How long does a Recraft v3 request take?
- Typically about 15 s on the fastest route, by the catalog's estimate. The API answers at once with a job id, so nothing waits on an open connection while it runs.
For AI agents: this page as Markdown is varg.ai/models/recraft_v3.md, and every model is listed in varg.ai/models/llms.txt.