> ## Documentation Index
> Fetch the complete documentation index at: https://docs.higgsfield.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Grok Image 2.0 Generate and Edit API

> Transform and refine source images with Grok Imagine 2.0.

<div className="models-color-scope" aria-hidden="true" />

<div className="model-workflow-tabs" aria-label="Grok Image 2.0 endpoints">
  <a className="model-workflow-tab is-active" href="/docs/models/grok-image-2/generate-and-edit">Generate and edit</a>
</div>

**Endpoint:** `POST https://api.higgsfield.ai/xai/grok-imagine-image-2.0`

**Endpoint ID:** `xai/grok-imagine-image-2.0`

<a className="model-playground-card" href="https://console.higgsfield.ai/models/xai%2Fgrok-imagine-image-2.0/playground" target="_blank" rel="noreferrer">
  <span className="model-playground-icon">▶</span>
  <span className="model-playground-copy"><span className="model-playground-title">Try Grok Image 2.0 Generate and Edit</span><span>Open the model in the Higgsfield Playground with your own inputs.</span></span>
  <span className="model-card-arrow">↗</span>
</a>

## Quick Start

<CodeGroup>
  ```python Python theme={"dark"}
  import higgsfield_client

  result = higgsfield_client.subscribe(
      "xai/grok-imagine-image-2.0",
      arguments={'prompt': 'A cinematic glass pavilion in a misty pine forest at sunrise',
       'image_urls': ['https://cdn.example.com/reference-1.jpg'],
       'resolution': '1k',
       'aspect_ratio': 'auto',
       'quality': 'medium'},
  )

  print(result["images"][0]["url"])
  ```

  ```typescript TypeScript theme={"dark"}
  import { config, higgsfield } from "@higgsfield/client/v2";

  config({ credentials: process.env.HF_CREDENTIALS });

  const result = await higgsfield.subscribe(
    "xai/grok-imagine-image-2.0",
    {
      input: {
        "prompt": "A cinematic glass pavilion in a misty pine forest at sunrise",
        "image_urls": [
          "https://cdn.example.com/reference-1.jpg"
        ],
        "resolution": "1k",
        "aspect_ratio": "auto",
        "quality": "medium"
      },
      withPolling: true,
    },
  );

  if (result.isCompleted) console.log(result.jobs[0].results?.raw.url);
  ```

  ```bash cURL theme={"dark"}
  curl --request POST \
    --url https://api.higgsfield.ai/xai/grok-imagine-image-2.0 \
    --header "Authorization: Key ${HF_API_KEY_ID}:${HF_API_KEY_SECRET}" \
    --header "Content-Type: application/json" \
    --data '{
    "prompt": "A cinematic glass pavilion in a misty pine forest at sunrise",
    "image_urls": [
      "https://cdn.example.com/reference-1.jpg"
    ],
    "resolution": "1k",
    "aspect_ratio": "auto",
    "quality": "medium"
  }'
  ```
</CodeGroup>

## Input Schema

<ParamField body="prompt" type="string" required>
  Natural-language instructions describing the desired output.
</ParamField>

<ParamField body="quality" type="string" default="medium">
  Generation quality preset. Supported values: `low`, `medium`.
</ParamField>

<ParamField body="image_urls" type="array">
  Publicly accessible reference image URLs. Accepts `0`–`10` items.
</ParamField>

<ParamField body="resolution" type="string" default="1k">
  Output resolution. Supported values: `1k`, `2k`.
</ParamField>

<ParamField body="aspect_ratio" type="string" default="auto">
  Output aspect ratio. Supported values: `auto`, `1:1`, `1:2`, `2:1`, `3:2`, `2:3`, `4:3`, `3:4`, `16:9`, `9:16`.
</ParamField>

## Output Schema

<ResponseField name="status" type="string" required>
  Request state. A newly accepted request returns `queued`.
</ResponseField>

<ResponseField name="request_id" type="string" required>
  Stable identifier used for polling, cancellation, and support.
</ResponseField>

<ResponseField name="status_url" type="string" required>
  URL to poll until the request reaches a terminal state.
</ResponseField>

<ResponseField name="cancel_url" type="string" required>
  URL used to cancel a request before processing starts.
</ResponseField>

<ResponseField name="images" type="array">
  Completed image outputs. Each item contains a download `url`.
</ResponseField>

## Input Example

```json theme={"dark"}
{
  "prompt": "A cinematic glass pavilion in a misty pine forest at sunrise",
  "image_urls": [
    "https://cdn.example.com/reference-1.jpg"
  ],
  "resolution": "1k",
  "aspect_ratio": "auto",
  "quality": "medium"
}
```

## Output Example

<CodeGroup>
  ```json Accepted theme={"dark"}
  {
    "status": "queued",
    "request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff",
    "status_url": "https://api.higgsfield.ai/requests/d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff/status",
    "cancel_url": "https://api.higgsfield.ai/requests/d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff/cancel"
  }
  ```

  ```json Completed theme={"dark"}
  {
    "status": "completed",
    "request_id": "d7e6c0f3-6699-4f6c-bb45-2ad7fd9158ff",
    "images": [
      {
        "url": "https://cdn.example.com/output.png"
      }
    ]
  }
  ```
</CodeGroup>

<Tip>
  Use an SDK for automatic polling, or poll the returned [status URL](/docs/concepts/polling).
</Tip>


## Related topics

- [Grok Image 2.0 API](/docs/models/grok-image-2.md)
- [Marketing Studio Image Generate and Edit API](/docs/models/marketing-studio-image/generate-and-edit.md)
- [Image Generation API](/docs/models/image-generation.md)
- [Model API Reference](/docs/models.md)
- [Video Generation API](/docs/models/video-generation.md)
