Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.runflow.io/llms.txt

Use this file to discover all available pages before exploring further.

Pricing: $0.06/image. Endpoint: POST /v1/models/ideogram/v3/runs.
Generate high-quality images, posters, and logos with Ideogram V3. Features exceptional typography handling and realistic outputs optimized for commercial and creative use.

Overview

Pricing

  • Base price: $0.06/image
  • Note: Balanced (default)

Ideogram v3 API

Endpoint: POST /v1/models/ideogram/v3/runs

Run the model

Python

import requests

response = requests.post(
    "https://api.runflow.io/v1/models/ideogram/v3/runs",
    headers={"Authorization": "Bearer RUNFLOW_API_KEY"},
    json={
        "input": {
            "prompt": "Product packaging design for an artisan coffee bag, front label featuring the brand name 'ALTITUDE COFFEE CO.' in bold vintage slab-serif at the top, a detailed woodcut-style illustration of a mountain coffee plantation in the center, origin text 'SINGLE ORIGIN - COLOMBIAN SUPREMO' in smaller caps below the illustration, tasting notes 'NOTES: DARK CHOCOLATE, CARAMEL, TOASTED WALNUT' in elegant thin serif at the bottom, roast level indicator showing 'MEDIUM-DARK ROAST', net weight '340g / 12oz' in the corner, kraft paper texture background with deep burgundy and gold ink, premium specialty coffee aesthetic",
            "image_size": "portrait_4_3",
            "expand_prompt": False,
            "negative_prompt": "blurry text, misspelled, low quality, generic",
            "rendering_speed": "QUALITY"
        },
        "callback_url": "https://your-server.com/webhook"
    },
)

data = response.json()
print(data)

Node.js

const response = await fetch(
  "https://api.runflow.io/v1/models/ideogram/v3/runs",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer RUNFLOW_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
        "input": {
            "prompt": "Product packaging design for an artisan coffee bag, front label featuring the brand name 'ALTITUDE COFFEE CO.' in bold vintage slab-serif at the top, a detailed woodcut-style illustration of a mountain coffee plantation in the center, origin text 'SINGLE ORIGIN - COLOMBIAN SUPREMO' in smaller caps below the illustration, tasting notes 'NOTES: DARK CHOCOLATE, CARAMEL, TOASTED WALNUT' in elegant thin serif at the bottom, roast level indicator showing 'MEDIUM-DARK ROAST', net weight '340g / 12oz' in the corner, kraft paper texture background with deep burgundy and gold ink, premium specialty coffee aesthetic",
            "image_size": "portrait_4_3",
            "expand_prompt": false,
            "negative_prompt": "blurry text, misspelled, low quality, generic",
            "rendering_speed": "QUALITY"
        },
        "callback_url": "https://your-server.com/webhook"
    }),
  }
);

const data = await response.json();
console.log(data);

cURL

curl -X POST https://api.runflow.io/v1/models/ideogram/v3/runs \
  -H "Authorization: Bearer $RUNFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
    "input": {
        "prompt": "Product packaging design for an artisan coffee bag, front label featuring the brand name 'ALTITUDE COFFEE CO.' in bold vintage slab-serif at the top, a detailed woodcut-style illustration of a mountain coffee plantation in the center, origin text 'SINGLE ORIGIN - COLOMBIAN SUPREMO' in smaller caps below the illustration, tasting notes 'NOTES: DARK CHOCOLATE, CARAMEL, TOASTED WALNUT' in elegant thin serif at the bottom, roast level indicator showing 'MEDIUM-DARK ROAST', net weight '340g / 12oz' in the corner, kraft paper texture background with deep burgundy and gold ink, premium specialty coffee aesthetic",
        "image_size": "portrait_4_3",
        "expand_prompt": false,
        "negative_prompt": "blurry text, misspelled, low quality, generic",
        "rendering_speed": "QUALITY"
    },
    "callback_url": "https://your-server.com/webhook"
}
JSON

Request parameters

ParameterTypeRequiredDescription
inputobjectrequiredModel input parameters. See “Input schema” below.
callback_urlstring | nulloptionalWebhook URL - POSTed when the run reaches a terminal state.
metadataobject | nulloptionalArbitrary key-value pairs attached to the run.

Input schema

FieldTypeRequiredAllowed valuesDescription
promptstringrequiredAny
num_imagesintegeroptionalAnyNumber of images to generate.
image_sizestringoptionalAnyThe resolution of the generated image
stylestringoptionalAnyThe style type to generate with. Cannot be used with style_codes.
style_presetstringoptionalAnyStyle preset for generation. The chosen style preset will guide the generation.
expand_promptbooleanoptionalAnyDetermine if MagicPrompt should be used in generating the request or not.
rendering_speedstringoptionalTURBO, BALANCED, QUALITYThe rendering speed to use.
sync_modebooleanoptionalAnyIf True, the media will be returned as a data URI and the output data won’t be available in the request history.
color_palettejsonoptionalAnyA color palette for generation, must EITHER be specified via one of the presets (name) or explicitly via hexadecimal representations of the color with optional weights (members)
style_codesjsonoptionalAnyA list of 8 character hexadecimal codes representing the style of the image. Cannot be used in conjunction with style_reference_images or style
seedintegeroptionalAnySeed for the random number generator
image_urlsimage_listoptionalAnyA set of images to use as style references (maximum total size 10MB across all style references). The images should be in JPEG, PNG or WebP format
negative_promptstringoptionalAnyDescription of what to exclude from an image. Descriptions in the prompt take precedence to descriptions in the negative prompt.

Output schema

FieldTypeDescription
outputsjsonUnified output array - one entry per generated artifact with url/type/width/height/duration/etc.
seedjsonSeed used for the random number generator
nsfw_detectedjsontrue if the provider flagged output as NSFW, false if cleared, null if not checked.
timingjsonProvider timing info (inference_ms etc.), or null.

Callback payload

When you provide a callback_url, Runflow POSTs to it once the run reaches a terminal state.
FieldTypeDescription
eventstringEvent type: “run.completed”, “run.failed”, or “run.cancelled”.
run_idstringThe unique identifier of the run.
statusstringTerminal status: “succeeded”, “failed”, or “cancelled”.
outputobject | nullThe run output. Null if the run failed or was cancelled.
duration_msnumber | nullTotal run duration in milliseconds.
created_atstring | nullISO 8601 timestamp when the run was created.
completed_atstring | nullISO 8601 timestamp when the run reached terminal state.
metadataobject | nullThe metadata object passed at run creation, if any.
  • Retries: 3 attempts with exponential backoff (1s, 2s). Retries on 5xx / network errors only.
  • Headers: Runflow-Request-Id is always sent. Runflow-Signature is sent if a signing secret is configured.

Additional Resources

Browse all models

Browse the catalog.

Run lifecycle

Callbacks, polling, statuses.

Callbacks

Handle async results.

Pricing

How requests bill out.