API REFERENCE
Generate Image
On this page
/api/content/imageGenerate an image from a text prompt. Pass image_urls to edit those images with the prompt instead of generating a new one. Returns the image URL.
Authentication
x-api-key in header
bearerAuth bearer
Request
curl --request POST \
--url 'https://api.recoupable.dev/api/content/image' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"prompt": "string",
"image_urls": [
"string"
],
"num_images": 1,
"aspect_ratio": "21:9",
"output_format": "webp",
"sync_mode": false
}'Try it
Fill in the fields, send the request from your browser, and read the live response. The curl below updates as you type.
Kept in this browser tab only and cleared when it closes.
curl --request POST \
--url 'https://recoup-api.vercel.app/api/content/image' \
--header 'Content-Type: application/json' \
--data '{
"prompt": "string",
"image_urls": [
"string"
],
"num_images": 1,
"aspect_ratio": "21:9",
"output_format": "webp",
"sync_mode": false
}'Request body required
Image generation parameters
application/json
promptstringText prompt used to generate or edit the image
image_urlsarray<string>Reference images to edit (1-10 HTTP(S) URLs). When provided, edits these images with prompt instead of generating a new one.
minItems: 1 · maxItems: 10
Item properties for image_urls
string
num_imagesintegerNumber of images to generate (1-4)
Default: 1
minimum: 1 · maximum: 4
aspect_ratiostring · enumOutput aspect ratio. If omitted, the model chooses automatically based on the request.
Values: "21:9", "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16", "9:21"
output_formatstring · enumFormat of the generated image
Values: "jpeg", "png", "webp"
Default: "webp"
sync_modebooleanIf true, the image is returned as a data URI and is not persisted in the request history
Default: false
Responses
200Image generated successfully+
application/json
imageUrlstringrequiredURL of the first generated image
format: uri
imagesarray<string>requiredURLs of all generated images. Contains one element when num_images is 1.
Item properties for images
string
400Validation failed — invalid or missing request body fields+
application/json
errorstringrequiredError message describing what went wrong
401Unauthorized — invalid or missing API key+
application/json
errorstringrequiredError message describing what went wrong
402Insufficient credits. Charged per generated image at the pinned model's rate ($0.01 per image). A free-tier account without sufficient credits receives a 402.+
application/json
errorstringrequiredError message describing what went wrong
500Internal server error+
application/json
errorstringrequiredError message describing what went wrong
Full specification
Download the OpenAPI file for complete schemas, constraints, and examples.
Download content.jsonView operation source
{
"description": "Generate an image from a text prompt. Pass `image_urls` to edit those images with the prompt instead of generating a new one. Returns the image URL.",
"security": [
{
"apiKeyAuth": []
},
{
"bearerAuth": []
}
],
"requestBody": {
"description": "Image generation parameters",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentCreateImageRequest"
}
}
}
},
"responses": {
"200": {
"description": "Image generated successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentCreateImageResponse"
}
}
}
},
"400": {
"description": "Validation failed — invalid or missing request body fields",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentErrorResponse"
}
}
}
},
"401": {
"description": "Unauthorized — invalid or missing API key",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentErrorResponse"
}
}
}
},
"402": {
"description": "Insufficient credits. Charged per generated image at the pinned model's rate ($0.01 per image). A free-tier account without sufficient credits receives a 402.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentErrorResponse"
}
}
}
},
"500": {
"description": "Internal server error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ContentErrorResponse"
}
}
}
}
}
}