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

# Router.Images.Edits SDK Reference

> SDK reference for the Router.Images.Edits API, available in Node.js and Python.

## Router.Images.Edits

### Create an Edit

Edit an Image

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.router.images.edits.create(model="LeBaron", prompt="<value>", n=1, retry={
          "on_codes": [
              429,
              500,
              502,
              503,
              504,
          ],
      }, cache={
          "ttl": 3600,
          "type": "exact_match",
      }, load_balancer={
          "type": "weight_based",
          "models": [
              {
                  "model": "openai/gpt-4o",
                  "weight": 0.7,
              },
          ],
      }, timeout={
          "call_timeout": 30000,
      }, orq={
          "retry": {
              "on_codes": [
                  429,
                  500,
                  502,
                  503,
                  504,
              ],
          },
          "fallbacks": [
              {
                  "model": "openai/gpt-4o-mini",
              },
          ],
          "prompt": {
              "id": "prompt_01ARZ3NDEKTSV4RRFFQ69G5FAV",
              "version": "latest",
          },
          "identity": {
              "id": "contact_01ARZ3NDEKTSV4RRFFQ69G5FAV",
              "display_name": "Jane Doe",
              "email": "jane.doe@example.com",
              "metadata": [
                  {
                      "department": "Engineering",
                      "role": "Senior Developer",
                  },
              ],
              "logo_url": "https://example.com/avatars/jane-doe.jpg",
              "tags": [
                  "hr",
                  "engineering",
              ],
          },
          "cache": {
              "ttl": 3600,
              "type": "exact_match",
          },
          "load_balancer": {
              "type": "weight_based",
              "models": [
                  {
                      "model": "openai/gpt-4o",
                      "weight": 0.7,
                  },
                  {
                      "model": "anthropic/claude-3-5-sonnet",
                      "weight": 0.3,
                  },
              ],
          },
          "timeout": {
              "call_timeout": 30000,
          },
      })

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.router.images.edits.create({
      model: "LeBaron",
      prompt: "<value>",
      retry: {
        onCodes: [
          429,
          500,
          502,
          503,
          504,
        ],
      },
      cache: {
        ttl: 3600,
        type: "exact_match",
      },
      loadBalancer: {
        type: "weight_based",
        models: [
          {
            model: "openai/gpt-4o",
            weight: 0.7,
          },
        ],
      },
      timeout: {
        callTimeout: 30000,
      },
      orq: {
        retry: {
          onCodes: [
            429,
            500,
            502,
            503,
            504,
          ],
        },
        fallbacks: [
          {
            model: "openai/gpt-4o-mini",
          },
        ],
        prompt: {
          id: "prompt_01ARZ3NDEKTSV4RRFFQ69G5FAV",
          version: "latest",
        },
        identity: {
          id: "contact_01ARZ3NDEKTSV4RRFFQ69G5FAV",
          displayName: "Jane Doe",
          email: "jane.doe@example.com",
          metadata: [
            {
              "department": "Engineering",
              "role": "Senior Developer",
            },
          ],
          logoUrl: "https://example.com/avatars/jane-doe.jpg",
          tags: [
            "hr",
            "engineering",
          ],
        },
        cache: {
          ttl: 3600,
          type: "exact_match",
        },
        loadBalancer: {
          type: "weight_based",
          models: [
            {
              model: "openai/gpt-4o",
              weight: 0.7,
            },
            {
              model: "anthropic/claude-3-5-sonnet",
              weight: 0.3,
            },
          ],
        },
        timeout: {
          callTimeout: 30000,
        },
      },
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "model": str,  # required
        "prompt": str,  # required
        "image": Optional[Any],
        "n": OptionalNullable[float],
        "size": OptionalNullable[str],
        "quality": OptionalNullable[CreateImageEditQuality],
        "response_format": Optional[Literal["url", "b64_json"]],
        "user": Optional[str],
        "name": Optional[str],
        "fallbacks": {  # optional
            "model": str,  # required
        },
        "retry": {  # optional
            "count": Optional[float],
            "on_codes": List[float],
        },
        "cache": {  # optional
            "ttl": Optional[float],
            "type": Literal["exact_match"],  # required
        },
        "load_balancer": Union[CreateImageEditLoadBalancer1],
        "timeout": {  # optional
            "call_timeout": float,  # required
        },
        "orq": {  # optional
            "name": Optional[str],
            "retry": {  # optional
                "count": Optional[float],
                "on_codes": List[float],
            },
            "fallbacks": {  # optional
                "model": str,  # required
            },
            "prompt": {  # optional
                "id": str,  # required
                "version": Literal["latest"],  # required
            },
            "identity": {  # optional
                "id": str,  # required
                "display_name": Optional[str],
                "email": Optional[str],
                "metadata": List[Dict[str, Any]],
                "logo_url": Optional[str],
                "tags": List[str],
            },
            "~~`contact`~~": {  # optional
                "id": str,  # required
                "display_name": Optional[str],
                "email": Optional[str],
                "metadata": List[Dict[str, Any]],
                "logo_url": Optional[str],
                "tags": List[str],
            },
            "cache": {  # optional
                "ttl": Optional[float],
                "type": Literal["exact_match"],  # required
            },
            "load_balancer": Union[CreateImageEditLoadBalancerRouterImagesEdits1],
            "timeout": {  # optional
                "call_timeout": float,  # required
            },
        },
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      model: string;  // required
      image?: any;
      prompt: string;  // required
      n?: number;
      size?: string;
      quality?: string;
      responseFormat?: string;
      user?: string;
      name?: string;
      fallbacks?: {
        model: string;  // required
      };
      retry?: {
        count?: number;
        onCodes?: number[];
      };
      cache?: {
        ttl?: number;
        type: string;  // required
      };
      loadBalancer?: string;
      timeout?: {
        callTimeout: number;  // required
      };
      orq?: {
        name?: string;
        retry?: {
          count?: number;
          onCodes?: number[];
        };
        fallbacks?: {
          model: string;  // required
        };
        prompt?: {
          id: string;  // required
          version: string;  // required
        };
        identity?: {
          id: string;  // required
          displayName?: string;
          email?: string;
          metadata?: Record<string, any>[];
          logoUrl?: string;
          tags?: string[];
        };
        ~~`contact`~~?: {
          id: string;  // required
          displayName?: string;
          email?: string;
          metadata?: Record<string, any>[];
          logoUrl?: string;
          tags?: string[];
        };
        cache?: {
          ttl?: number;
          type: string;  // required
        };
        loadBalancer?: string;
        timeout?: {
          callTimeout: number;  // required
        };
      };
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "created": float,
        "output_format": Optional[str],
        "size": Optional[str],
        "quality": Optional[str],
        "data": {
            "b64_json": Optional[str],
            "url": Optional[str],
        },
        "usage": {  # optional
            "total_tokens": float,
            "input_tokens": float,
            "output_tokens": float,
            "input_tokens_details": {
                "text_tokens": float,
                "image_tokens": float,
            },
        },
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      created: number;
      outputFormat?: string;
      size?: string;
      quality?: string;
      data: {
        b64Json?: string;
        url?: string;
      };
      usage?: {
        totalTokens: number;
        inputTokens: number;
        outputTokens: number;
        inputTokensDetails: {
          textTokens: number;
          imageTokens: number;
        };
      };
    }
    ```
  </CodeGroup>
</Expandable>
