Ideogram Hello World
Overview
Generate your first AI image with Ideogram. Demonstrates the legacy /generate endpoint (JSON body) and the V3 /v1/ideogram-v3/generate endpoint (multipart form). Both return temporary image URLs that must be downloaded promptly.
Prerequisites
- Completed
ideogram-install-auth setup
IDEOGRAM_API_KEY environment variable set
- Node.js 18+ or Python 3.10+
Instructions
Step 1: Quick Test with curl
set -euo pipefail
# Legacy endpoint (V_2 model, JSON body)
curl -s -X POST https://api.ideogram.ai/generate \
-H "Api-Key: $IDEOGRAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image_request": {
"prompt": "A cheerful golden retriever wearing sunglasses on a beach, with text saying \"Hello Ideogram!\"",
"model": "V_2",
"style_type": "REALISTIC",
"aspect_ratio": "ASPECT_16_9",
"magic_prompt_option": "AUTO"
}
}' | jq '.data[0] | {url, seed, resolution, is_image_safe}'
Step 2: TypeScript -- Generate and Download
// hello-ideogram.ts
import { writeFileSync } from "fs";
async function helloIdeogram() {
// Generate an image with embedded text (Ideogram's specialty)
const response = await fetch("https://api.ideogram.ai/generate", {
method: "POST",
headers: {
"Api-Key": process.env.IDEOGRAM_API_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({
image_request: {
prompt: 'Modern poster design with bold text "HELLO WORLD" in neon gradient, dark background, clean typography',
model: "V_2",
style_type: "DESIGN",
aspect_ratio: "ASPECT_1_1",
magic_prompt_option: "AUTO",
num_images: 1,
},
}),
});
if (!response.ok) {
throw new Error(`Generation failed: ${response.status} ${await response.text()}`);
}
const result = await response.json();
const image = result.data[0];
console.log("Generated image:");
console.log(" URL:", image.url);
console.log(" Seed:", image.seed);
console.log(" Resolution:", image.resolution);
console.log(" Style:", image.style_type);
console.log(" Safe:", image.is_image_safe);
// Download immediately -- URLs expire after ~1 hour
const imgResponse = await fetch(image.url);
const buffer = Buffer.from(await imgResponse.arrayBuffer());
writeFileSync("hello-ideogram.png", buffer);
console.log("Saved to hello-ideogram.png");
}
helloIdeogram().catch(console.error);
Step 3: Python -- Generate and Download
# hello_ideogram.py
import os, requests
response = requests.post(
"https://api.ideogram.ai/generate",
headers={
"Api-Key": os.environ["IDEOGRAM_API_KEY"],
"Content-Type": "application/json",
},
json={
"image_request": {
"prompt": 'Modern poster design with bold text "HELLO WORLD" in neon gradient, dark background',
"model": "V_2",
"style_type": "DESIGN",
"aspect_ratio": "ASPECT_1_1",
"magic_prompt_option": "AUTO",
}
},
)
response.raise_for_status()
image = response.json()["data"][0]
print(f"URL: {image['url']}")
print(f"Seed: {image['seed']}")
# Download the image (URLs expire)
img_data = requests.get(image["url"]).content
with open("hello-ideogram.png", "wb") as f:
f.write(img_data)
print("Saved to hello-ideogram.png")
Key Parameters Quick Reference
| Parameter |
Values |
Default |
model |
V_1, V_1_TURBO, V_2, V_2_TURBO, V_2A, V_2A_TURBO |
V_2 |
style_type |
AUTO, GENERAL, REALISTIC, DESIGN, RENDER_3D, ANIME |
AUTO |
aspect_ratio |
ASPECT_1_1, ASPECT_16_9, ASPECT_9_16, ASPECT_3_2, ASPECT_2_3, ASPECT_4_3, ASPECT_3_4, ASPECT_10_16, ASPECT_16_10, ASPECT_1_3, ASPECT_3_1 |
ASPECT_1_1 |
magic_prompt_option |
AUTO, ON, OFF |
AUTO |
num_images |
1-4 |
1 |
Response Shape
{
"created": "2025-01-15T10:30:00Z",
"data": [
{
"url": "https://ideogram.ai/assets/image/...",
"prompt": "expanded prompt if magic_prompt was ON",
"resolution": "1024x1024",
"is_image_safe": true,
"seed": 12345,
"style_type": "DESIGN"
}
]
}
Error Handling
| Error |
HTTP Status |
Cause |
Solution |
| Auth error |
401 |
Missing or invalid Api-Key header |
Check IDEOGRAM_API_KEY env var |
| Safety rejected |
422 |
Prompt failed content filter |
Remove flagged terms, rephrase |
| Rate limited |
429 |
Too many in-flight requests |
Wait and retry with backoff |
| Bad request |
400 |
Invalid parameter values |
Check enum values match exactly |
Output
- Generated image file downloaded locally
- Console output with URL, seed, resolution, and safety status
- Seed value for reproducible regeneration
Examples
Generate a fictional test image in a sandbox and record fixture=hello-image-v1; rights=test-owned; destination=sandbox-gallery; result=accepted; output_retention=none; cleanup=complete.
Resources
Next Steps
Proceed to ideogram-local-dev-loop for development workflow setup.
1---2name: ideogram-hello-world3description: Create a minimal working Ideogram image generation example. Use when starting a new Ideogram integration, testing your setup, or learning basic Ideogram API patterns. Trigger with phrases like "ideogram hello world", "ideogram example", "ideogram quick start", "simple ideogram code", "first ideogram image".4license: MIT5---6# Ideogram Hello World
7
8## Overview
9
10Generate your first AI image with Ideogram. Demonstrates the legacy `/generate` endpoint (JSON body) and the V3 `/v1/ideogram-v3/generate` endpoint (multipart form). Both return temporary image URLs that must be downloaded promptly.
11
12## Prerequisites
13
14- Completed `ideogram-install-auth` setup
15- `IDEOGRAM_API_KEY` environment variable set
16- Node.js 18+ or Python 3.10+
17
18## Instructions
19
20### Step 1: Quick Test with curl
21
22```bash
23set -euo pipefail
24# Legacy endpoint (V_2 model, JSON body)
25curl -s -X POST https://api.ideogram.ai/generate \
26 -H "Api-Key: $IDEOGRAM_API_KEY" \
27 -H "Content-Type: application/json" \
28 -d '{
29 "image_request": {
30 "prompt": "A cheerful golden retriever wearing sunglasses on a beach, with text saying \"Hello Ideogram!\"",
31 "model": "V_2",
32 "style_type": "REALISTIC",
33 "aspect_ratio": "ASPECT_16_9",
34 "magic_prompt_option": "AUTO"
35 }
36 }' | jq '.data[0] | {url, seed, resolution, is_image_safe}'
37```
38
39### Step 2: TypeScript -- Generate and Download
40
41```typescript
42// hello-ideogram.ts
43import { writeFileSync } from "fs";
44
45async function helloIdeogram() {
46 // Generate an image with embedded text (Ideogram's specialty)
47 const response = await fetch("https://api.ideogram.ai/generate", {
48 method: "POST",
49 headers: {
50 "Api-Key": process.env.IDEOGRAM_API_KEY!,
51 "Content-Type": "application/json",
52 },
53 body: JSON.stringify({
54 image_request: {
55 prompt: 'Modern poster design with bold text "HELLO WORLD" in neon gradient, dark background, clean typography',
56 model: "V_2",
57 style_type: "DESIGN",
58 aspect_ratio: "ASPECT_1_1",
59 magic_prompt_option: "AUTO",
60 num_images: 1,
61 },
62 }),
63 });
64
65 if (!response.ok) {
66 throw new Error(`Generation failed: ${response.status} ${await response.text()}`);
67 }
68
69 const result = await response.json();
70 const image = result.data[0];
71
72 console.log("Generated image:");
73 console.log(" URL:", image.url);
74 console.log(" Seed:", image.seed);
75 console.log(" Resolution:", image.resolution);
76 console.log(" Style:", image.style_type);
77 console.log(" Safe:", image.is_image_safe);
78
79 // Download immediately -- URLs expire after ~1 hour
80 const imgResponse = await fetch(image.url);
81 const buffer = Buffer.from(await imgResponse.arrayBuffer());
82 writeFileSync("hello-ideogram.png", buffer);
83 console.log("Saved to hello-ideogram.png");
84}
85
86helloIdeogram().catch(console.error);
87```
88
89### Step 3: Python -- Generate and Download
90
91```python
92# hello_ideogram.py
93import os, requests
94
95response = requests.post(
96 "https://api.ideogram.ai/generate",
97 headers={
98 "Api-Key": os.environ["IDEOGRAM_API_KEY"],
99 "Content-Type": "application/json",
100 },
101 json={
102 "image_request": {
103 "prompt": 'Modern poster design with bold text "HELLO WORLD" in neon gradient, dark background',
104 "model": "V_2",
105 "style_type": "DESIGN",
106 "aspect_ratio": "ASPECT_1_1",
107 "magic_prompt_option": "AUTO",
108 }
109 },
110)
111response.raise_for_status()
112
113image = response.json()["data"][0]
114print(f"URL: {image['url']}")
115print(f"Seed: {image['seed']}")
116
117# Download the image (URLs expire)
118img_data = requests.get(image["url"]).content
119with open("hello-ideogram.png", "wb") as f:
120 f.write(img_data)
121print("Saved to hello-ideogram.png")
122```
123
124## Key Parameters Quick Reference
125
126| Parameter | Values | Default |
127|-----------|--------|---------|
128| `model` | `V_1`, `V_1_TURBO`, `V_2`, `V_2_TURBO`, `V_2A`, `V_2A_TURBO` | `V_2` |
129| `style_type` | `AUTO`, `GENERAL`, `REALISTIC`, `DESIGN`, `RENDER_3D`, `ANIME` | `AUTO` |
130| `aspect_ratio` | `ASPECT_1_1`, `ASPECT_16_9`, `ASPECT_9_16`, `ASPECT_3_2`, `ASPECT_2_3`, `ASPECT_4_3`, `ASPECT_3_4`, `ASPECT_10_16`, `ASPECT_16_10`, `ASPECT_1_3`, `ASPECT_3_1` | `ASPECT_1_1` |
131| `magic_prompt_option` | `AUTO`, `ON`, `OFF` | `AUTO` |
132| `num_images` | 1-4 | 1 |
133
134## Response Shape
135
136```json
137{
138 "created": "2025-01-15T10:30:00Z",
139 "data": [
140 {
141 "url": "https://ideogram.ai/assets/image/...",
142 "prompt": "expanded prompt if magic_prompt was ON",
143 "resolution": "1024x1024",
144 "is_image_safe": true,
145 "seed": 12345,
146 "style_type": "DESIGN"
147 }
148 ]
149}
150```
151
152## Error Handling
153
154| Error | HTTP Status | Cause | Solution |
155|-------|-------------|-------|----------|
156| Auth error | 401 | Missing or invalid `Api-Key` header | Check `IDEOGRAM_API_KEY` env var |
157| Safety rejected | 422 | Prompt failed content filter | Remove flagged terms, rephrase |
158| Rate limited | 429 | Too many in-flight requests | Wait and retry with backoff |
159| Bad request | 400 | Invalid parameter values | Check enum values match exactly |
160
161## Output
162
163- Generated image file downloaded locally
164- Console output with URL, seed, resolution, and safety status
165- Seed value for reproducible regeneration
166
167## Examples
168
169Generate a fictional test image in a sandbox and record `fixture=hello-image-v1; rights=test-owned; destination=sandbox-gallery; result=accepted; output_retention=none; cleanup=complete`.
170
171## Resources
172
173- [Legacy Generate Endpoint](https://developer.ideogram.ai/api-reference/api-reference/generate)
174- [V3 Generate Endpoint](https://developer.ideogram.ai/api-reference/api-reference/generate-v3)
175- [Ideogram Prompt Tips](https://docs.ideogram.ai/using-ideogram/generation-settings/style)
176
177## Next Steps
178
179Proceed to `ideogram-local-dev-loop` for development workflow setup.