Developers
RoVisuals for Developers
Generate Roblox thumbnails, icons, vector assets and logos from your own code. Available on every plan; requests use your RoVisuals account's credits.
Quickstart
- Create an API key in Settings.
- Generate an image:
curl https://www.rovisuals.dev/api/v1/generate/thumbnail \ -H "Authorization: Bearer $ROVISUALS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt": "A noob escaping a lava obby, title text OBBY RUSH"}'The request returns when the image is ready, usually in under 30 seconds:
json
{ "id": "6f1c2a9e-5b7d-4e1a-9c3f-2d8e4b7a1c55", "type": "thumbnail", "status": "completed", "image_url": "https://…/thumbnail/1791246603411-butlg.png", "size": "1920x1080", "credits_remaining": 38}API keys are linked to your RoVisuals account, which means they can spend your credits. Keep them secure. You can always revoke your API key in Settings if you suspect anything.
Generate images
POST/api/v1/generate/{thumbnail|icon|vector|logo}
| Type | Size | Aspect ratio | Background | Credits |
|---|---|---|---|---|
| thumbnail | 1920×1080 | 16:9 | Opaque | 2 |
| icon | 1024×1024 | 1:1 | Opaque | 2 |
| vector | 1024×1024 | 1:1 | Transparent | 1 |
| logo | 1024×1024 | 1:1 | Transparent | 2 |
| Field | Required | Applies to | Description |
|---|---|---|---|
| prompt | Required | all | What to make (2,000 characters max). Describe the content; Roblox styling is added automatically. |
| reference_images | Optional | all | Public image URLs for reference images. Limits apply based on subscription tier (3: Free, Starter; 6: Pro; 8: Studio). |
| style | Optional | vector, logo | default, flat, realistic, fantasy, drawn, simulator, anime, adventure, rpg. Default default (no preset). |
| outline | Optional | vector | Outline around the asset (default false), color via outline_color (a hex code like #ff0000 or a color name, default black). |
curl https://www.rovisuals.dev/api/v1/generate/icon \ -H "Authorization: Bearer $ROVISUALS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt": "My hero holding a sword", "reference_images": ["https://example.com/hero.png"]}'Retries: send an Idempotency-Key header (any unique string, e.g. a UUID) to retry safely. If the connection drops, retrying with the same key returns the first image instead of generating and charging again.
Other endpoints
| Endpoint | Returns |
|---|---|
| GET /api/v1/images/{id} | One generation with its status: processing, completed or failed. |
| GET /api/v1/account | Your credits, plan and limits. |
Rate limits
| Free | Starter | Pro | Studio | |
|---|---|---|---|---|
| Generations per minute | 3 | 5 | 10 | 15 |
| Generations at a time | 4 | 4 | 4 | 4 |
Errors
Errors return { "error": { "code": "…", "message": "…" } }:
| Status | Code | Meaning |
|---|---|---|
| 200 | Success. | |
| 400 | invalid_request / reference_limit | A field is missing or invalid, a reference image couldn't be used, or too many reference images. |
| 401 | unauthorized | Missing, invalid or revoked API key. |
| 402 | insufficient_credits | Not enough credits; includes required and available. |
| 404 | not_found | No such generation in your account. |
| 409 | request_in_progress | A request with the same Idempotency-Key is still running; retry shortly. |
| 429 | rate_limited | A limit was hit; retry after Retry-After seconds. |
| 502 | generation_failed | The image couldn't be generated. You weren't charged. |
Resources
Ready to build?