Pricing

How TokenRoc pricing works.

Requests are charged to your prepaid TokenRoc balance. What you pay depends on the model and its billing unit: tokens for text, images for image generation, and seconds for video.

Current rates in Model Square

The basics

Three things to know.

Text

Text models are billed per token.

Input tokens (the prompt and any conversation history you send) and output tokens (the model's reply) are counted separately. Each has its own rate, quoted per 1 million tokens. The counts are the ones reported in the response's usage field.

Chargeinput tokens ÷ 1M × input rate
+ output tokens ÷ 1M × output rate

Tiered models. Some models, such as glm-5.1, have tiered rates. The input length of a request decides which tier applies, and that tier's input and output rates are used for the whole request. Model Square lists the tiers for these models.

Example with illustrative rates, not current prices. 12,000 input tokens at $1.00 per 1M, and 800 output tokens at $4.00 per 1M:

12,000 ÷ 1M × $1.00 + 800 ÷ 1M × $4.00 = $0.012 + $0.0032 = $0.0152

Selected text models

Image

Image models are billed per generated image.

You pay for each image returned. The response's usage.image_count is the number of images charged, and it always equals the number of entries in data. Reference images you send are not charged.

Chargeimages returned × price per image × resolution factor

The resolution factor is 1 unless a model charges more at a higher resolution. kling/kling-v3-omni-image-generation is billed at 2× for 4K; 1K and 2K use its listed rate.

Your balance must cover the request before it starts. If the request fails, nothing is charged for it.

Example with an illustrative rate, not a current price. Three images ("n": 3) at $0.03 per image: 3 × $0.03 = $0.09.

The same three images at 4K on a model with a 2× factor: 3 × $0.03 × 2 = $0.18.

Selected image models

Video

Video models are billed per generated second.

Each video model has a per-second rate for its base setting, shown in Model Square. Higher resolution, audio, or a reference video multiply that rate by a factor set for the model.

Chargeseconds generated × price per second
× resolution or audio factor

  • When you submit, TokenRoc reserves the cost of the duration you asked for, at the resolution and audio setting you chose. If your balance cannot cover it, the task is not created.
  • When the task completes, the charge is settled to the length the provider reports. Any difference from the reservation is returned to your balance or charged.
  • If the task fails, the reserved amount is returned to your balance.

Wan models also accept "duration": -1, which lets the provider choose the length. TokenRoc then reserves the maximum of 30 seconds and settles to the length generated.

Example with an illustrative rate, not a current price. 5 seconds at 720P on a model whose 480P base rate is $0.05 per second and whose 720P factor is 2×:

5 × $0.05 × 2 = $0.50

Selected video models

Questions

Pricing questions.

Still have a question? Contact us.

Where can I see the current price of a model?

In Model Square. It lists every model you can call, with its exact ID, billing unit, and current rate. This page explains how those rates become a charge and does not repeat them.

Can I use an existing SDK?

For text models, yes. Point an OpenAI-compatible client at https://api.tokenroc.com/v1 and use your TokenRoc key. The quickstart has a complete example.

Image and video models use their own routes, POST /v1/images/generations and POST /v1/videos. See the image guide and the video guide.

Am I charged when an image or video request fails?

If an image request fails, nothing is charged for it. The image guide's error table lists each case.

If a video task ends with the status failed, the amount reserved for it is returned to your balance. If only your script stopped waiting, the task is still running and has not failed. See stopped waiting, or failed.

Where can I check what I was charged?

Your usage logs show each request and its charge. The dashboard summarizes activity across your account, and the Wallet page shows your balance and top-ups.

What happens to an unused balance?

It stays in your account. Credits do not expire. Top-ups are non-refundable except in the special circumstances listed in the Refund Policy.

Who can help with a billing question?

Check your usage logs and the status page first. For anything else, contact us with the time of the request and the model involved. Never include your API key.