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

# AI Code Generation API

> Generate, review, and fix code using Qwen3 Coder 480B and DeepSeek V3.2. Structured output for automated code pipelines with curl, Python, and TypeScript examples.

export const RuncrateStyles = () => {
  if (typeof document !== 'undefined' && !document.getElementById('runcrate-overrides')) {
    const s = document.createElement('style');
    s.id = 'runcrate-overrides';
    s.textContent = `
      /* Match Runcrate's rounding scale (--radius: 0.75rem) */
      .rounded-sm { border-radius: 0.5rem !important; }   /* 8px */
      .rounded-md { border-radius: 0.625rem !important; } /* 10px */
      .rounded-lg { border-radius: 0.75rem !important; }  /* 12px */
      .rounded-l-sm { border-top-left-radius: 0.5rem !important; border-bottom-left-radius: 0.5rem !important; }
      .rounded-r-sm { border-top-right-radius: 0.5rem !important; border-bottom-right-radius: 0.5rem !important; }
      .rounded-l-md { border-top-left-radius: 0.625rem !important; border-bottom-left-radius: 0.625rem !important; }
      .rounded-r-md { border-top-right-radius: 0.625rem !important; border-bottom-right-radius: 0.625rem !important; }
      .rounded-l-lg { border-top-left-radius: 0.75rem !important; border-bottom-left-radius: 0.75rem !important; }
      .rounded-r-lg { border-top-right-radius: 0.75rem !important; border-bottom-right-radius: 0.75rem !important; }

      /* Cards: never pure white in light mode */
      .card { background-color: #fcfcfc !important; border-radius: 0.75rem !important; }
      html.dark .card { background-color: #141414 !important; }

      /* Docs hero box */
      .rc-hero { background-color: #fcfcfc; border: 1px solid #e0e0e0; }
      html.dark .rc-hero { background-color: #141414; border-color: #242424; }
      html.dark .rc-hero h1 { color: #f5f5f5; }

      /* Runcrate scrollbar — thin, transparent track, hide-until-hover thumb */
      ::-webkit-scrollbar { width: 6px; height: 6px; background-color: transparent; }
      ::-webkit-scrollbar-track { background-color: transparent; }
      ::-webkit-scrollbar-thumb { background-color: rgba(155, 155, 155, 0.5); border-radius: 10px; transition: opacity 0.3s ease; opacity: 0; }
      ::-webkit-scrollbar-thumb:hover { background-color: rgba(155, 155, 155, 0.7); }
      *:hover::-webkit-scrollbar-thumb,
      *:focus::-webkit-scrollbar-thumb,
      *:active::-webkit-scrollbar-thumb { opacity: 1; }
      * { scrollbar-width: thin; scrollbar-color: rgba(155, 155, 155, 0.5) transparent; }
    `;
    document.head.appendChild(s);
  }
  return null;
};

<RuncrateStyles />

Use purpose-built coding models to generate functions, review pull requests, and fix bugs programmatically. These models are trained specifically for code and outperform general-purpose models on programming tasks.

## Recommended code models

| Model                                       | Strengths                                             |
| ------------------------------------------- | ----------------------------------------------------- |
| `Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo` | 480B MoE, fast inference, strong across all languages |
| `deepseek-ai/DeepSeek-V3.2`                 | Excellent reasoning, good for complex refactors       |

***

## Generate a function

<CodeGroup>
  ```bash curl theme={"theme":"github-dark"}
  curl https://api.runcrate.ai/v1/chat/completions \
    -H "Authorization: Bearer rc_live_YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo",
      "messages": [
        {"role": "system", "content": "You are a senior software engineer. Write clean, production-ready code with error handling. Return only the code, no explanation."},
        {"role": "user", "content": "Write a Python function that retries an HTTP request with exponential backoff. Accept a URL, max retries (default 3), and base delay (default 1.0)."}
      ],
      "max_tokens": 1024
    }'
  ```

  ```python Python theme={"theme":"github-dark"}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.runcrate.ai/v1",
      api_key="rc_live_YOUR_API_KEY",
  )

  response = client.chat.completions.create(
      model="Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo",
      messages=[
          {"role": "system", "content": "You are a senior software engineer. Write clean, production-ready code with error handling. Return only the code, no explanation."},
          {"role": "user", "content": "Write a Python function that retries an HTTP request with exponential backoff. Accept a URL, max retries (default 3), and base delay (default 1.0)."},
      ],
      max_tokens=1024,
  )
  print(response.choices[0].message.content)
  ```

  ```typescript TypeScript theme={"theme":"github-dark"}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://api.runcrate.ai/v1",
    apiKey: "rc_live_YOUR_API_KEY",
  });

  const response = await client.chat.completions.create({
    model: "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo",
    messages: [
      { role: "system", content: "You are a senior software engineer. Write clean, production-ready code with error handling. Return only the code, no explanation." },
      { role: "user", content: "Write a TypeScript function that debounces an async callback, cancelling pending invocations when called again." },
    ],
    max_tokens: 1024,
  });

  console.log(response.choices[0].message.content);
  ```
</CodeGroup>

***

## Automated code review

Pass a diff and get structured feedback:

````python theme={"theme":"github-dark"}
from openai import OpenAI
import json

client = OpenAI(
    base_url="https://api.runcrate.ai/v1",
    api_key="rc_live_YOUR_API_KEY",
)

diff = """\
-def process_payment(amount):
-    charge = stripe.Charge.create(amount=amount, currency='usd')
+def process_payment(amount, idempotency_key=None):
+    charge = stripe.Charge.create(amount=amount, currency='usd', idempotency_key=idempotency_key)
"""

response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-V3.2",
    messages=[
        {"role": "system", "content": "Review the code diff. Return a JSON array of objects with keys: line, severity (info/warning/error), comment."},
        {"role": "user", "content": f"Review this diff:\n\n```diff\n{diff}\n```"},
    ],
    max_tokens=1024,
)

reviews = json.loads(response.choices[0].message.content)
for review in reviews:
    print(f"[{review['severity'].upper()}] {review['comment']}")
````

***

## Next steps

* [Extract structured data](/examples/structured-output) — use structured output with JSON schemas for reliable code analysis pipelines.
* [Route between models](/examples/multi-model-routing) — use a fast model for linting and a strong model for complex refactors.
* [SDKs overview](/sdks/overview) — Python, TypeScript, and Vercel AI SDK setup.
