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
Resources
Next Steps
Proceed to ideogram-local-dev-loop for development workflow setup.
Source: jeremylongshore/claude-code-plugins-plus-skills → skills/.curated/ideogram-hello-world/SKILL.md
Also appears in: jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/ideogram-pack/skills/ideogram-hello-world/SKILL.md
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". '4---56# Ideogram Hello World78## Overview910Generate 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.1112## Prerequisites1314- Completed `ideogram-install-auth` setup15- `IDEOGRAM_API_KEY` environment variable set16- Node.js 18+ or Python 3.10+1718## Instructions1920### Step 1: Quick Test with curl2122```bash23set -euo pipefail24# 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```3839### Step 2: TypeScript -- Generate and Download4041```typescript42// hello-ideogram.ts43import { writeFileSync } from "fs";4445async 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 });6465 if (!response.ok) {66 throw new Error(`Generation failed: ${response.status} ${await response.text()}`);67 }6869 const result = await response.json();70 const image = result.data[0];7172 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);7879 // Download immediately -- URLs expire after ~1 hour80 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}8586helloIdeogram().catch(console.error);87```8889### Step 3: Python -- Generate and Download9091```python92# hello_ideogram.py93import os, requests9495response = 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()112113image = response.json()["data"][0]114print(f"URL: {image['url']}")115print(f"Seed: {image['seed']}")116117# Download the image (URLs expire)118img_data = requests.get(image["url"]).content119with open("hello-ideogram.png", "wb") as f:120 f.write(img_data)121print("Saved to hello-ideogram.png")122```123124## Key Parameters Quick Reference125126| 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 |133134## Response Shape135136```json137{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```151152## Error Handling153154| 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 |160161## Output162163- Generated image file downloaded locally164- Console output with URL, seed, resolution, and safety status165- Seed value for reproducible regeneration166167## Resources168169- [Legacy Generate Endpoint](https://developer.ideogram.ai/api-reference/api-reference/generate)170- [V3 Generate Endpoint](https://developer.ideogram.ai/api-reference/api-reference/generate-v3)171- [Ideogram Prompt Tips](https://docs.ideogram.ai/using-ideogram/generation-settings/style)172173## Next Steps174175Proceed to `ideogram-local-dev-loop` for development workflow setup.176177---178179**Source:** [`jeremylongshore/claude-code-plugins-plus-skills`](https://github.com/jeremylongshore/claude-code-plugins-plus-skills) → `skills/.curated/ideogram-hello-world/SKILL.md`180181**Also appears in:** `jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/ideogram-pack/skills/ideogram-hello-world/SKILL.md`