> ## 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.

# Models FAQ

> Frequently asked questions about the Runcrate Models API.

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 />

<AccordionGroup>
  <Accordion title="How do I call the API?">
    The Runcrate Models API is **OpenAI-compatible**. Point your existing OpenAI SDK or HTTP client to `https://api.runcrate.ai/v1` and use your Runcrate API key. See the [Quickstart](/getting-started/quickstart) for examples.
  </Accordion>

  <Accordion title="Can I use the OpenAI SDK?">
    Yes. Both the Python and JavaScript OpenAI SDKs work with Runcrate. Just change the `base_url` (Python) or `baseURL` (JavaScript) to `https://api.runcrate.ai/v1` and use your Runcrate API key.

    ```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",
    )
    ```
  </Accordion>

  <Accordion title="Which models are best for my use case?">
    | Use Case                    | Recommended Models                    |
    | --------------------------- | ------------------------------------- |
    | General chat and assistants | GPT-4o, Claude 4 Sonnet, DeepSeek-V3  |
    | Complex reasoning and math  | DeepSeek-R1, QwQ                      |
    | Code generation             | Codestral, DeepSeek-Coder, Qwen-Coder |
    | Image generation            | FLUX.1, FLUX.2, Stable Diffusion      |
    | Video generation            | Sora 2, Veo 3, Kling                  |
    | Voice synthesis             | Kokoro, Orpheus                       |
    | Transcription               | Whisper                               |

    Check the [Model Catalog](/models/model-catalog) for the full list with pricing.
  </Accordion>

  <Accordion title="Is streaming supported?">
    Yes. Streaming is supported for all chat completion models. Set `stream: true` in your request to receive responses as server-sent events.
  </Accordion>

  <Accordion title="How is model usage billed?">
    * **Text models** (chat, code, reasoning) — billed per token (input + output)
    * **Image generation** — billed per image
    * **Video generation** — billed per video
    * **Text-to-speech** — billed per generation
    * **Speech-to-text** — billed per audio minute

    Rates vary by model. Check the [Model Catalog](/models/model-catalog) or [Pricing](/billing/pricing) page.
  </Accordion>

  <Accordion title="What is the Playground?">
    The Playground is a web-based interface in the dashboard where you can test any model interactively without writing code. Go to **Dashboard → Playground** to try it. It uses your workspace's default API key.
  </Accordion>

  <Accordion title="Are there rate limits?">
    Yes, rate limits apply to prevent abuse. Limits vary by model and account. If you hit a rate limit, you will receive a `429 Too Many Requests` response. Wait briefly and retry.
  </Accordion>

  <Accordion title="How do I check model pricing?">
    Go to the [Model Catalog](/models/model-catalog) in the dashboard or the [Pricing](/billing/pricing) page in the docs. Each model shows its per-token or per-generation rate.
  </Accordion>
</AccordionGroup>
