anex.sh pricing details

What every model costs, in batch and in realtime, on api.anex.sh and oai.anex.sh alike.

Credits and estimates

You buy prepaid credits (1 credit = 1 US cent, USD) and jobs consume them. Each model has its own rates, and a smaller model costs you less.

A price depends on the mode, batch or realtime, and never on which API you call: api.anex.sh and the OpenAI-compatible oai.anex.sh bill the same work at the same price.

Estimates are free, and the credit amount shown at approval is a hard cap: an approved job never consumes more. Unused credits stay on your balance. Your job gets its own estimate based on current prices; the tables below are just representative examples.

Text output models

The next three tables are batch prices: jobs on api.anex.sh and batches on the OpenAI-compatible API. Realtime prices are in the realtime table.

modelinput
/ 1M tokens
cached
input / 1M
output
/ 1M
image
/ 1,000
audio
/ hour
video
/ hour
qwen3.8-27btext + image + video$0.18$0.045$0.90$0.57 MP-$0.0828
gemma4-31btext + image$0.20$0.05$1.00$0.10--
gemma4-12btext + image + audio + video$0.12$0.03$0.60$0.18$0.0342$0.0864
qwen3-14btext$0.025$0.006$0.125---
nemotron-3-nano-omni-30btext + image + audio + video$0.12$0.03$0.60$0.36 MP$0.01908$0.2304

An image costs the price per 1,000 images, or per 1,000 megapixels where it is marked MP (megapixel), its size capped at the largest the model reads.

Cached input is any part of a prompt the server has already processed in the same job - typically a shared instruction prefix repeated across rows. It bills at a quarter of the input rate, automatically: batch jobs with a common prompt prefix routinely see more than half their input tokens at the cached rate, which is why output tokens now carry more of the price than input tokens. There is nothing to configure and no way to lose money by it: a cache miss simply bills at the normal input rate.

Every input token bills at the input rate, the tokens an image or clip becomes included, and each image and each second of audio or video adds its fee: per image on the two Gemma models, per megapixel (MP) on the others, and per second of the clip for audio and video. What each fee counts, with two worked examples, is under how media is billed below. A video's tokens grow with the frames sampled from it, so a higher video_fps costs more per second of clip; the fee per second stays the same. A job that is cancelled or stops part-way pays for the rows that ran.

A job is billed at the prices in force when it was approved, so a job approved before a price change settles at the prices it was quoted.

Embedding output models

modelinput
/ 1M tokens
image
/ 1,000
video
/ hour
qwen3-vl-embedding-8btext + image + video$0.03$0.071 MP$0.01836
qwen3-vl-embedding-2btext + image + video$0.007$0.025 MP$0.00504
qwen3-embedding-8btext$0.03--

An embedding job bills every input token at the input rate, the tokens an image or video becomes included, plus the image or video fee in the table. It has no output or cached-input charges. The two qwen3-vl-embedding models put text, images, and video (up to 4 images or 1 video per row) in one vector space, and every embedding model truncates to a narrower vector via the per-request dimensions parameter. See embedding jobs for the job shape.

Decision output models

modelanswersinput
/ 1M tokens
minimum
job price
layachoice, score, yes/no$0.005$0.05

A decision model answers typed questions about a text instead of writing a reply: one answer per question, with a probability per option, in a single pass. Its price is per input token, and it reads the text once per question, so a request's billed tokens are the text plus each question's own words, summed over the questions. There are no output tokens. The table is the batch rate; the realtime rate is in the realtime table. See decision jobs for the request shape and the question types.

Realtime prices

A realtime request is answered right away and billed on its own, from the same credit balance as batch jobs, at these prices. Its total is rounded to a millionth of a cent, and there is no minimum price.

modelinput
/ 1M tokens
cached
input / 1M
output
/ 1M
image
/ 1,000
audio
/ hour
video
/ hour
gemma4-12btext + image + audio + video$0.24$0.06$1.20$0.36$0.0684$0.1728
nemotron-3-nano-omni-30btext + image + audio + video$0.24$0.06$1.20$0.72 MP$0.03816$0.4608
qwen3-vl-embedding-2btext + image + video$0.014--$0.05 MP-$0.01008
qwen3-vl-embedding-8btext$0.121-----
qwen3-embedding-8btext$0.033-----
layatext, typed questions$0.033-----

The realtime price of the two 8B embedding models can change from day to day; the table shows today's price, which is never less than $0.033 per 1M input tokens.

Realtime chat, and realtime image and video embeddings, are on the OpenAI-compatible API. The realtime API on api.anex.sh embeds text queries, on all three embedding models, and laya answers on both.

How media is billed

A request or batch row with images, audio or video costs its tokens plus a media fee. It is billed the same way in batch and in realtime, on api.anex.sh and on the OpenAI-compatible oai.anex.sh.

  • Every input token bills at the input rate, the tokens each image, audio clip and video becomes included: they are all in usage.prompt_tokens (the cached part bills at the cached rate). completion_tokens, reasoning included, bills at the output rate.
  • Each image (or each megapixel of it, where the table says MP) and each second of audio or video adds the model's fee. The fee is not in usage: it is the fee per image, per megapixel or per second, times the quantity in the table below.
feemodelsquantity billed
per imagegemma4-12b, gemma4-31beach image counts once, whatever its size: these models read every image at the same 280 tokens
per megapixelqwen3.8-27b, nemotron-3-nano-omni-30b, qwen3-vl-embedding-8b, qwen3-vl-embedding-2bthe image's width times its height in pixels, as its file states them, capped at the largest size the model reads (156,800 pixels on qwen3.8-27b and the embedding models, 3,145,728 pixels on nemotron-3-nano-omni-30b), divided by 1,000,000; summed over the images, not rounded
per second of audiogemma4-12b, nemotron-3-nano-omni-30bthe clip's length as its file header states it, to the millisecond
per second of videogemma4-12b, nemotron-3-nano-omni-30b, qwen3.8-27b, qwen3-vl-embedding-8b, qwen3-vl-embedding-2bthe clip's length as its file header states it, to the millisecond, whatever frame rate it is sampled at
nonelaya, qwen3-14b, qwen3-embedding-8btext only, tokens alone

A clip's header length is checked against its content when the request or row runs. If the two are more than half a second or 2% apart, whichever is larger, the request or row fails with media_length_mismatch and is not billed. A file that cannot be read fails with media_unreadable, also unbilled, and a file whose header states no length is billed on the length of its content.

The rate tables show each fee per 1,000 images, per 1,000 megapixels or per hour, so the figures stay short; a fee is billed pro rata. Batch fees are in the batch tables and realtime fees in the realtime table. A realtime request's total, tokens and fee together, is rounded to a millionth of a cent. A batch job's total is rounded once, to whole credits (1 credit = 1 cent), and is never below the model's minimum job price.

Two worked examples. A 1,600 x 1,200 photo with a one-line question on nemotron-3-nano-omni-30b. usage came back with 1,929 prompt tokens and 27 completion tokens. The photo is 1,920,000 pixels, under the 3,145,728 cap, so it is 1.92 megapixels.

partrealtime requestbatch row, before the job's rounding and minimum
1,929 prompt tokens at $0.24 / $0.12 per 1M$0.00046296$0.00023148
27 completion tokens at $1.20 / $0.60 per 1M$0.0000324$0.0000162
1.92 megapixels at $0.72 / $0.36 per 1,000$0.0013824$0.0006912
total$0.00187776$0.00093888

A 10-second video with a one-line question on gemma4-12b. usage came back with 769 prompt tokens, the video's frames included, and 16 completion tokens. The file's header states 10.000 seconds.

partrealtime requestbatch row, before the job's rounding and minimum
769 prompt tokens at $0.24 / $0.12 per 1M$0.00018456$0.00009228
16 completion tokens at $1.20 / $0.60 per 1M$0.0000192$0.0000096
10 seconds at $0.1728 / $0.0864 per hour$0.00048$0.00024
total$0.00068376$0.00034188

Minimum job price

Every job also has a minimum price: qwen3.8-27b $0.12, gemma4-31b $0.29, gemma4-12b $0.05, qwen3-14b $0.07, nemotron-3-nano-omni-30b $0.06, laya $0.05, and $0.02 for each embedding model. A job whose token price is below its model's minimum is billed the minimum; a job whose token price is above it pays its token price and nothing more. It applies to batch jobs on both APIs; a realtime request has no minimum.

Batch pricing rewards volume: once a job's token price clears the minimum, you pay the token price alone, so batching more rows into one larger job is the cheapest way to run them.

What jobs actually cost

example jobmodelassumed per rowestimate
Classify 1M support ticketsqwen3-14b≈300 tokens in, 10 out≈ $9
Caption 100,000 photosgemma4-31b1 image, ≈200 tokens in, 60 out≈ $26
Transcribe 1,000 hours of audionemotron-3-nano-omni-30baudio at 12.5 tokens/s, ≈12k transcript tokens out per hour≈ $32
Describe 10,000 one-minute videosnemotron-3-nano-omni-30bvideo at 296 tokens/s, ≈500 tokens out≈ $63

Rows sharing a prompt prefix bill its repeat occurrences at the cached input rate, so cache-heavy jobs come in noticeably under these figures.