---
title: "Create image from text - Recraft V4.1"
method: POST
path: "/v1/ai/text-to-image/recraft-v4-1"
tags: ["text-to-image"]
---

# Create image from text - Recraft V4.1

`POST /v1/ai/text-to-image/recraft-v4-1`

## Request

- Base URL: `https://api.magnific.com`
- URL: `https://api.magnific.com/v1/ai/text-to-image/recraft-v4-1`
- Auth: API key in header `x-magnific-api-key`

Generate an image from a text prompt using Recraft V4.1, the latest
Recraft generation.

**Key Features:**
- Improved text rendering and design over V4
- `tier` selects price and output size: `mid` matches V4, `pro` matches V4 Pro
- `variant` selects how literally the model follows the prompt:
  `standard` applies its own art direction, `utility` renders neutrally

**Best for:**
- `standard`: finished design pieces
- `utility`: diagrams, wireframes, UI mockups and any asset that must
  follow the prompt exactly

**Output:** one image per request, delivered as a URL in the task's
`generated` array. Exact sizes are listed under `aspect_ratio`.

**Credits:** `tier: mid` is billed as Recraft V4 and `tier: pro` as
Recraft V4 Pro. `variant` does not affect the price.

The request is processed asynchronously: the endpoint returns a task id
immediately. Retrieve the result by polling the task endpoint or by
providing an optional `webhook_url`.

## Request body

- TtirecraftV41RequestContent
  - `prompt` string, required: Text description of the image you want to generate. **Tips:** - Recraft's strength is rendering legible text inside the image, so spell out any wording the design must contain - Describe layout, palette and typography, not just the subject **Examples:** - Simple: "A storefront sign that reads OPEN DAILY 9AM" - Detailed: "A storefront sign that reads OPEN DAILY 9AM, flat vector poster style, cream and navy palette, bold rounded display type"
  - `aspect_ratio` 'square_1_1' | 'horizontal_2_1' | 'vertical_1_2' | 'standard_3_2' | 'portrait_2_3' | 'classic_4_3' | 'traditional_3_4' | 'social_5_4' | 'social_post_4_5' | 'widescreen_16_9' | 'social_story_9_16': Aspect ratio of the generated image, expressed as *_width_height. Recraft renders from a fixed set of sizes, so the output dimensions are the ones listed below and are **not always the exact mathematical ratio the name suggests** — `widescreen_16_9` renders 1344x768, which is 7:4. | `aspect_ratio` | V4 / V4.1 `mid` | V4 Pro / V4.1 `pro` | |---|---|---| | `square_1_1` | 1024x1024 | 2048x2048 | | `horizontal_2_1` | 1536x768 | 3072x1536 | | `vertical_1_2` | 768x1536 | 1536x3072 | | `standard_3_2` | 1280x832 | 2560x1664 | | `portrait_2_3` | 832x1280 | 1664x2560 | | `classic_4_3` | 1216x896 | 2432x1792 | | `traditional_3_4` | 896x1216 | 1792x2432 | | `social_5_4` | 1152x896 | 2304x1792 | | `social_post_4_5` | 896x1152 | 1792x2304 | | `widescreen_16_9` | 1344x768 | 2688x1536 | | `social_story_9_16` | 768x1344 | 1536x2688 |
  - `tier` 'mid' | 'pro': Quality tier, which selects both the price and the output size. - `mid`: the V4 sizes listed under `aspect_ratio` (default) - `pro`: twice the linear dimensions, four times the pixels **Credits:** `mid` is billed as Recraft V4 and `pro` as Recraft V4 Pro.
  - `variant` 'standard' | 'utility': How much art direction the model applies on top of the prompt. - `standard`: the model adds its own visual judgement — palette, decoration, display typography (default) - `utility`: a literal, neutral render with no invented colour or ornament. Use it for diagrams, wireframes, UI mockups and any asset that must follow the prompt exactly Does not affect the price.
  - `enhance_prompt` boolean: Rewrite the prompt with an LLM before generating, which generally produces a richer design. Any text the image must render is preserved verbatim. Set it to `false` to send the prompt exactly as written, which is what you want when you need a deterministic input.
  - `webhook_url` string, uri: Optional callback URL that will receive asynchronous notifications whenever the task changes status. The payload sent to this URL is the same as the corresponding GET endpoint response, but without the data field.

## Response `200`

OK - The request has succeeded and the Recraft V4.1 process has started.

- GetStyleTransferTaskStatus200Response
  - `data` TaskDetail, required
    - `task_id` string, uuid, required: Task identifier
    - `status` 'CREATED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED', required: Task status
    - `generated` string[], required

## Other responses

- `400`: Bad Request - The server could not understand the request due to invalid syntax.
- `401`: Unauthorized - The client must authenticate itself to get the requested response.
- `500`: Internal Server Error - The server has encountered a situation it doesn't know how to handle.
- `503`: Service Unavailable

---

[API](https://skmtc.dev/magnific/apis/magnific-api.md) · [All operations](https://skmtc.dev/magnific/apis/magnific-api/llms.txt) · [OpenAPI document](https://skmtc.dev/magnific/apis/magnific-api/revisions/60711fb082c7?raw)
