# Model API pricing

<!-- Generated H3 pricing: do not edit these rates by hand. -->

H3 charges per output second. Confirm currently effective rates with [GET /api/v1/pricing/config](https://phosor.ai/api/v1/pricing/config).

10 credits = USD 1. Prices and billing are in USD.

| Model | 480p USD/sec | 768p USD/sec | 480p credits/sec | 768p credits/sec |
|---|---:|---:|---:|---:|
| `text-to-video`, `image-to-video` | $0.0045 | $0.012 | 0.045 | 0.12 |
| `text-to-video/turbo`, `image-to-video/turbo` | $0.006 | $0.012 | 0.06 | 0.12 |
| `reference-to-video` | $0.0045 | $0.012 | 0.045 | 0.12 |
| `reference-to-video/turbo` | $0.006 | $0.012 | 0.06 | 0.12 |

Reference-to-video adds reference inputs to the output charge:

| Model | Tier | Output USD/sec | Reference images | Reference audio USD/clip | Reference video USD/sec |
|---|---|---:|---|---:|---:|
| `reference-to-video` | 480p | $0.0045 | first 5 free, then $0.0075 each | $0 | $0.0045 |
| `reference-to-video` | 768p | $0.012 | first 5 free, then $0.0075 each | $0 | $0.012 |
| `reference-to-video/turbo` | 480p | $0.006 | first 5 free, then $0.0025 each | $0 | $0.006 |
| `reference-to-video/turbo` | 768p | $0.012 | first 5 free, then $0.0025 each | $0 | $0.012 |

```text
inputs_usd = round(max(image_count - free_image_count, 0) * image_rate
                   + audio_count * audio_rate
                   + round(sum(actual_reference_video_seconds), 3) * reference_video_rate, 6)
total_usd = round(output_billable_seconds * output_rate + inputs_usd, 6)
total_credits = round(total_usd * 10, 4)
```

Reference video uses the actual combined duration of all clips, even when longer than the output; it is not capped at output duration. Reference audio remains free. Rounding follows the Gateway (Python rounding).

Turbo 768p example: 5 output seconds + 9 images + 14.75 reference-video seconds + 3 audio clips = USD 0.247.

Existing task charges remain as recorded; current rates do not reprice past tasks.
