Real vectors, from your AI app or your code
Image generators hand back pictures. The Hungry JPEG hands back layered SVG files: one layer per color, sharp at any size, ready for a website, an app, a print file or a shirt. Connect us to Claude, ChatGPT or Cursor, or call the API from your own code.
Connect an AI app (MCP)
Our MCP server address:
https://thehungryjpeg.com/api/mcpYou sign in to The Hungry JPEG, see what the app can do, and pick its daily limit. Disconnect it any time on your account page.
Claude
In Claude, open Settings › Connectors, choose Add custom connector and paste the address above. Then ask: “Make me a retro camping badge that says Wild Pines, as an SVG.”
ChatGPT
Turn on developer mode in ChatGPT's connector settings, create a connector with the address above, and choose OAuth when it asks how to sign in.
Claude Code
claude mcp add --transport http thehungryjpeg https://thehungryjpeg.com/api/mcpThen run /mcp in Claude Code to sign in.
Cursor and other MCP apps
{
"mcpServers": {
"thehungryjpeg": { "url": "https://thehungryjpeg.com/api/mcp" }
}
}Apps that can't sign in with OAuth can send an API key instead, as an Authorization: Bearer header.
What the app can do
| Tool | What it does | Cost |
|---|---|---|
generate_vector | Draws new designs from a description (tier, shape, and optional purpose, style and palette) and waits up to about 45 seconds for them. | 20 / 25 / 40 |
get_generation | Progress and results of a generation that's still drawing. | Free |
get_svg | A vector's file: small SVGs inline, otherwise a download link that works for an hour. SVG or a 4,000 px PNG. | Free |
get_account | Your credits, and how much of the app's daily limit is left. | Free |
REST API
Make an API key on your account page and send it as a bearer token. Base address:
https://thehungryjpeg.com/api/v1| Request | What it does |
|---|---|
POST /generations | Starts a generation. JSON body: prompt (required), tier (standard, detailed, premium), shape (square, portrait, landscape), purpose, style, palette, share. Answers at once with a generation_id. |
GET /generations/{id} | Status (queued, drawing, vectorizing, ready, failed) and, when ready, the designs with their vector_id, title, colors and preview. |
GET /vectors/{id}?format=svg | A vector's details and a download link valid for an hour (small SVGs inline). format=png for a 4,000 px PNG. |
GET /vectors/{id}/file?format=svg | The file itself. |
GET /account | Credits and today's limit. |
GET /options | Tiers, prices and the purpose, style and palette choices. No key needed. |
Example
curl -X POST https://thehungryjpeg.com/api/v1/generations \
-H "Authorization: Bearer $THJ_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt": "a retro camping badge that says Wild Pines", "tier": "detailed", "purpose": "logo"}'
# then, every 15 seconds or so, until "status" is "ready":
curl https://thehungryjpeg.com/api/v1/generations/GENERATION_ID -H "Authorization: Bearer $THJ_KEY"
# and save a design:
curl -o badge.svg "https://thehungryjpeg.com/api/v1/vectors/VECTOR_ID/file?format=svg" -H "Authorization: Bearer $THJ_KEY"Errors
Errors come back as JSON with an error sentence and a code: credits (402, not enough credits), daily_cap (402, the key's daily limit), busy (429, two generations already running), content_blocked (422, brands, characters or content we don't allow), rate_limited (429). You're never charged for a refused or failed generation.
The same license applies as on the site: see the terms.