Model comparison · 2026-10-17
Nemotron 3.5 Super VL: free vs paid row
nvidia/nemotron-3.5-super-vl-free vs nvidia/nemotron-3.5-super-vl: price, 1,000,000 and 262,144-token context, daily quota, reasoning and data notice.
Short answer: one endpoint, two ids
LLMTR (llmtr.com) is a gateway that gives access to language models from different providers through one OpenAI-compatible API. NVIDIA's Nemotron 3.5 Super VL is offered there as two rows: nvidia/nemotron-3.5-super-vl-free and nvidia/nemotron-3.5-super-vl. Both are called with the same API key on the /v1/chat/completions endpoint at https://llmtr.com/v1, and moving from one to the other means changing the model string. Both rows are listed under the NVIDIA provider on LLMTR, and each has its own model page.
The free row costs $0.00 within a daily usage quota and offers a 1,000,000-token context. The paid row is deducted from credit at $0.15 input, $0.02 input read from cache and $0.50 output per 1M tokens, and offers a 262,144-token context. NVIDIA describes the model as an MoE model with 120 billion parameters in total and 12 billion active per token that reads text, images and video; both rows accept those inputs.
What is the difference between the free and paid Nemotron 3.5 Super VL rows?
The difference sits in four places: price, context window, usage limit and the data notice on the model cards. Input types, reasoning being on by default and the way it is switched off, reasoning_effort not being supported, tool calling and JSON output are the same on both rows. On both rows images and video go in image_url and video_url parts as base64 data URLs, and code that asks for JSON output through response_format stays the same when you change the id. The table shows the two cards' values on 17 October 2026.
One more detail differs in the card wording: the paid row's card describes tool calling along with auto, required and a named function for tool_choice; the free row's card lists tool calling without spelling out the tool_choice forms. If your code sends tool_choice: required or a specific function name, try that on the free row with your own requests.
| Property | nvidia/nemotron-3.5-super-vl-free | nvidia/nemotron-3.5-super-vl |
|---|---|---|
| Price | $0.00/1M tokens input, $0.00/1M tokens output | $0.15/1M tokens input, $0.02/1M tokens input read from cache, $0.50/1M tokens output |
| Context window | 1,000,000 tokens | 262,144 tokens |
| Usage limit | daily usage quota; HTTP 429 with Retry-After at the limit | not affected by the free row's quota; deducted from credit |
| Input | text, image, video | text, image, video |
| Tool calling | listed on the model card | listed on the model card; tool_choice auto, required, named function |
| JSON object mode and JSON Schema | listed on the model card | listed on the model card |
| Reasoning | on by default; off with reasoning: false or :fast | on by default; off with reasoning: false or :fast |
| reasoning_effort | not supported; HTTP 400 invalid_request | not supported; HTTP 400 invalid_request |
| Data notice (model card) | text, images and videos may be logged by the provider and may be used to improve the model; do not send sensitive, personal or customer data | prompts and completions may be logged by the provider |
How is cost calculated on the paid row?
On the paid row the amount is calculated from the token counts in the response's usage field. A request with 20,000 input tokens and 1,000 output tokens costs (20,000 x $0.15 + 1,000 x $0.50) / 1M = $0.0035; a thousand of those come to $3.50. The catalog has no separate price rule for images or video; media input is billed through the input tokens reported in usage. On the free row the same request costs $0.00.
Reasoning is on by default, and reasoning tokens are counted in completion_tokens; on the paid row they are billed at the output price. For work with short answers, reasoning: false removes that share. The $0.02 cache price applies only to the tokens reported in the response's usage.prompt_tokens_details.cached_tokens field; a hit is not guaranteed, so budget with the full input price.
To estimate a monthly budget, add up the usage values of a few real requests and multiply them with the same formula. The example code at the end of this article does that at the full input price; if there is a cache hit, the real amount stays below that upper bound. In requests with images or video the number of input tokens depends on the media, so make the estimate with your own files.
Context window and usage limit
NVIDIA's model card mentions a context of up to 1M tokens; on LLMTR the window differs by row. On the free row the prompt plus max_tokens should stay within 1,000,000 tokens; on the paid row it cannot exceed 262,144 tokens. According to the paid row's card, max_tokens is accepted up to what the context window leaves after the prompt; check finish_reason on long answers, because length means the response is incomplete.
The free row comes with a daily usage quota. HTTP 429 means one of the free usage limits has been reached; that limit can be daily or per minute, and the response carries a Retry-After header. The paid row is not affected by that quota; each request is deducted from credit at the catalog price in effect when it is processed. Top up your balance from Dashboard > Billing.
When the free row returns 429, you can route the request to the paid row instead of holding it for the Retry-After period. When you do, check that the prompt fits in 262,144 tokens and that the content fits the paid row's data notice; every routed request is deducted from credit. Because the reasoning setting and tool definitions are sent the same way on both rows, routing only changes the model string.
Reasoning, the data notice and when to pick which
NVIDIA's model card switches reasoning on and off with the enable_thinking key in the chat template. On LLMTR you send the same thing on both rows: reasoning: false in the request body or the :fast suffix at the end of the model id. You do not need to change that setting when you change the id. On both rows the reasoning trace arrives in message.reasoning_content.
The data notices differ. The free row's card says the text, images and videos you send may be logged by the provider and may be used to improve the model, and asks you not to send sensitive, personal or customer data. The paid row's card says prompts and completions may be logged by the provider. Assess your content against the notice on each card.
The choice rests on three questions: does the prompt go beyond 262,144 tokens, does the traffic fit in the daily quota, and does the content you send fit the data notice on the card in question. During development you can work with non-sensitive samples on the free row and, before switching, run the same samples on the paid row to see the token counts. The example below sends the same prompt to both rows, switches reasoning off on both and prints the amount for the paid row at the full input price.
An example that sends the same prompt to nvidia/nemotron-3.5-super-vl-free and nvidia/nemotron-3.5-super-vl and prints the token counts and the paid row's amount.
import os
from openai import OpenAI
client = OpenAI(base_url="https://llmtr.com/v1", api_key=os.environ["LLMTR_API_KEY"])
# Paid row prices in USD per 1M tokens (LLMTR catalog, 17 October 2026).
INPUT_PRICE = 0.15
OUTPUT_PRICE = 0.50
messages = [{"role": "user", "content": "List three checks to run before approving an invoice."}]
for model in ["nvidia/nemotron-3.5-super-vl-free", "nvidia/nemotron-3.5-super-vl"]:
response = client.chat.completions.create(
model=model,
messages=messages,
max_tokens=1024,
# The same off switch works on both rows.
extra_body={"reasoning": False},
)
usage = response.usage
print(model, usage.prompt_tokens, usage.completion_tokens)
if not model.endswith("-free"):
# Full input price; cached input, when reported, bills at 0.02 instead.
cost = (usage.prompt_tokens * INPUT_PRICE + usage.completion_tokens * OUTPUT_PRICE) / 1_000_000
print(f"paid row cost: {cost:.6f} USD")
print(response.choices[0].message.content)
Move from the free Nemotron 3.5 Super VL row to the paid row
Try both rows with the same prompt, top up your balance and change the model id to nvidia/nemotron-3.5-super-vl.
- Side-by-side run. Send the same prompt with nvidia/nemotron-3.5-super-vl-free and nvidia/nemotron-3.5-super-vl and compare the token counts in usage.
- Balance. Top up your balance from Dashboard > Billing; each paid-row request is deducted from credit at the catalog price in effect when it is processed.
- Change the id. Set the model string to nvidia/nemotron-3.5-super-vl, make sure the prompt fits in 262,144 tokens and keep an eye on finish_reason.
Frequently asked questions
What is the difference between the free and paid Nemotron 3.5 Super VL rows?
nvidia/nemotron-3.5-super-vl-free costs $0.00 with a daily quota and offers a 1,000,000-token context; nvidia/nemotron-3.5-super-vl costs $0.15 input, $0.02 input read from cache and $0.50 output per 1M tokens and offers a 262,144-token context. The data notices differ too; input types and the way reasoning is switched off are the same.
What changes in my code when I move from the free row to the paid row?
The model string changes: you write nvidia/nemotron-3.5-super-vl instead of nvidia/nemotron-3.5-super-vl-free. The API key, the endpoint, reasoning: false and :fast stay the same; if the prompt goes beyond 262,144 tokens, you need to shorten it.
Is the cache discount on the paid row guaranteed?
No. The $0.02 per 1M tokens price applies only to the tokens reported in the response's usage.prompt_tokens_details.cached_tokens field. A hit is not guaranteed; calculate cost with the full input price of $0.15.