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

# Credits & Pricing

> Understanding how VoidAI credits work

VoidAI uses a credit-based billing system. You spend credits when making API requests, and the cost depends on the model and tokens used.

## How Credits Work

For most models (chat, completions):

```
credits = total_tokens × model_multiplier
```

For fixed-cost models (images, audio, video):

```
credits = fixed_base_cost
```

## Model Multipliers

Different models have different multipliers based on their capabilities and costs:

### Chat Models

| Model                        | Multiplier | Plan     |
| ---------------------------- | ---------- | -------- |
| `gpt-4.1-nano`               | 0.1        | All      |
| `gpt-4o-mini`                | 0.25       | All      |
| `gpt-5.1`                    | 0.75       | All      |
| `gpt-4o`                     | 1.25       | All      |
| `o3-mini`                    | 0.25       | All      |
| `o3`                         | 0.5        | Basic+   |
| `o1`                         | 5.0        | Premium+ |
| `claude-3-5-haiku-20241022`  | 1.0        | All      |
| `claude-sonnet-4-5-20250929` | 1.75       | Basic+   |
| `claude-opus-4-5-20251101`   | 4.0        | Basic+   |
| `gemini-2.0-flash`           | 0.5        | All      |
| `gemini-2.5-pro`             | 1.0        | All      |
| `deepseek-v3`                | 0.1        | All      |
| `deepseek-r1`                | 0.35       | All      |
| `lumina`                     | 0.3        | All      |

### Fixed Cost Models

| Model                     | Credits | Type              |
| ------------------------- | ------- | ----------------- |
| `gpt-image-1`             | 2,000   | Image generation  |
| `imagen-3.0-generate-002` | 2,500   | Image generation  |
| `flux-kontext-pro`        | 3,000   | Image generation  |
| `midjourney`              | 75,000  | Image generation  |
| `text-embedding-3-small`  | 50      | Embeddings        |
| `text-embedding-3-large`  | 50      | Embeddings        |
| `tts-1`                   | 75      | Text-to-speech    |
| `tts-1-hd`                | 150     | Text-to-speech    |
| `whisper-1`               | 10      | Transcription     |
| `sora-2`                  | 5,000   | Video generation  |
| `sora-2-pro`              | 15,000  | Video generation  |
| `omni-moderation-latest`  | 0       | Moderation (free) |

## Example Calculation

If you send a request using `gpt-5.1` (multiplier: 0.75) with:

* Input tokens: 1,000
* Output tokens: 500
* Total tokens: 1,500

**Credits charged:** 1,500 × 0.75 = **1,125 credits**

## Plans

Different plans have access to different models:

| Plan          | Access                                             |
| ------------- | -------------------------------------------------- |
| **Free**      | Basic models (gpt-4o-mini, gemini-2.0-flash, etc.) |
| **Basic**     | + Claude Sonnet, o3, Sora                          |
| **Premium**   | + Claude Opus, o1, Premium image models            |
| **Pro/Ultra** | All models including Midjourney                    |

## Checking Your Balance

Your current credit balance is available in your [dashboard](https://voidai.app).

## Discounts

VoidAI offers personalized daily discounts on select models. When you have an active discount:

```
discounted_credits = credits / discount_multiplier
```

For example, with a 2x discount on a model:

* Normal cost: 1,000 credits
* Discounted cost: 500 credits

Check your active discounts via the [My Discounts](/api-reference/discounts/my-discounts) endpoint.

## Rate Limiting

In addition to credits, there's a rate limit of **100 requests per minute** per API key. If exceeded, you'll receive a `429 Too Many Requests` error.

<CodeGroup>
  ```python Python theme={null}
  from openai import OpenAI, RateLimitError
  import time

  client = OpenAI(
      api_key="sk-voidai-your_key_here",
      base_url="https://api.voidai.app/v1"
  )

  def request_with_retry(messages, max_retries=3):
      for attempt in range(max_retries):
          try:
              return client.chat.completions.create(
                  model="gpt-5.1",
                  messages=messages
              )
          except RateLimitError:
              if attempt < max_retries - 1:
                  time.sleep(2 ** attempt)
              else:
                  raise

  response = request_with_retry([{"role": "user", "content": "Hello!"}])
  ```
</CodeGroup>

## Tips to Optimize Costs

<CardGroup cols={2}>
  <Card title="Choose the right model" icon="scale-balanced">
    Use smaller models (gpt-4o-mini, deepseek-v3) for simple tasks. Save premium models for complex work.
  </Card>

  <Card title="Use discounts" icon="percent">
    Check your daily discounts and time high-volume work accordingly.
  </Card>

  <Card title="Cache responses" icon="database">
    Cache responses for repeated identical queries to avoid duplicate costs.
  </Card>

  <Card title="Optimize prompts" icon="compress">
    Shorter prompts = fewer input tokens = lower costs.
  </Card>
</CardGroup>
