Nemotron 3.5 Super API: Pricing, Documentation
by NVIDIA
Nemotron API provides advanced multimodal processing that seamlessly transforms visual media into actionable text. By integrating state-of-the-art vision and audio processing, the system can deeply analyze both static images and dynamic video files to generate precise descriptions, structured transcriptions, and context-aware summaries. Whether extracting complex data structures from document images or reasoning through a chronological video sequence, the API bridges the gap between rich sensory data and clear textual analysis.

Models Version
Get 10% Cashback on Your First Payment (up to $500)
Add funds and get 10% cashback on your first payment (up to $500).
Nemotron 3.5 Super API Documentation
Ask NVIDIA Nemotron 3.5 Super a question or give it a task in prompt, with optional instructions in system_prompt. Set reasoning_mode to think to also get the model's reasoning, and cap the answer with max_tokens. Asynchronous: submit returns a request_id; poll the status endpoint until the request is COMPLETED, then read the answer from output.output.
POST https://gateway.pixazo.ai/nemotron-3-5-super-text/v1/text-to-textAuthentication
All requests require an API key passed via header.
| Header | Type | Required | Description |
|---|---|---|---|
| Ocp-Apim-Subscription-Key | string | Yes | Your API subscription key |
Text to Text - Nemotron 3.5 Super Text
Request Code
POST https://gateway.pixazo.ai/nemotron-3-5-super-text/v1/text-to-text
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
{
"prompt": "Explain in two sentences why the sky looks blue.",
"max_tokens": 256
}import requests
url = "https://gateway.pixazo.ai/nemotron-3-5-super-text/v1/text-to-text"
headers = {
"Content-Type": "application/json",
"Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
"prompt": "Explain in two sentences why the sky looks blue.",
"max_tokens": 256
}
resp = requests.post(url, json=data, headers=headers)
print(resp.json())const res = await fetch("https://gateway.pixazo.ai/nemotron-3-5-super-text/v1/text-to-text", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
},
body: JSON.stringify({
"prompt": "Explain in two sentences why the sky looks blue.",
"max_tokens": 256
})
});
console.log(await res.json());curl -X POST 'https://gateway.pixazo.ai/nemotron-3-5-super-text/v1/text-to-text' \
-H 'Content-Type: application/json' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--data-raw '{"prompt": "Explain in two sentences why the sky looks blue.", "max_tokens": 256}'Output
{
"request_id": "nemotron-3-5-super-text_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/nemotron-3-5-super-text_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}Webhook (Optional)
Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.
| Header | Required | Description |
|---|---|---|
| X-Webhook-URL | To enable | HTTPS URL to receive the Webhook callback. |
| X-Webhook-Mode | No | terminal (default, one callback on COMPLETED/ERROR) or sync (per-poll callbacks). |
Example: enable Webhook
curl -X POST 'https://gateway.pixazo.ai/nemotron-3-5-super-text/v1/text-to-text' \
-H 'Content-Type: application/json' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
-H 'X-Webhook-URL: https://your-server.com/webhook' \
--data-raw '{"prompt": "Explain in two sentences why the sky looks blue.", "max_tokens": 256}'Callback Payload (success)
{
"request_id": "nemotron-3-5-super-text_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "COMPLETED",
"model_id": "nemotron-3-5-super-text",
"error": null,
"output": {
"media_url": [
"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.json"
],
"media_type": "application/json",
"output": "The answer.",
"finish_reason": "stop",
"usage": {
"input_tokens": 52,
"output_tokens": 61
}
},
"created_at": "2026-10-09T10:04:54.387Z",
"completed_at": "2026-10-09 10:06:21"
}Failure callback shape
{
"request_id": "nemotron-3-5-super-text_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "ERROR",
"model_id": "nemotron-3-5-super-text",
"error": "Description of the failure"
}Delivery semantics
- terminal mode: one Webhook callback when the request is COMPLETED or ERROR.
- sync mode: a Webhook callback on every poll while the request is processing (status
PROCESSING), plus the final COMPLETED/ERROR callback. - Callbacks are idempotent on
request_id— de-duplicate on it. - Respond
200within a few seconds; the Webhook endpoint must be HTTPS.
Request Parameters
| Parameter | Required | Type | Default | Allowed values / range | Description |
|---|---|---|---|---|---|
prompt | Yes | string | — | Non-empty text, up to 100000 characters | Your question or task. |
system_prompt | No | string | — | Text, up to 20000 characters | Instructions that steer how the model answers, for example Answer in one sentence. |
reasoning_mode | No | string | "no_think" | think, no_think | think returns the model's reasoning in output.reasoning before the answer; no_think answers directly. |
max_tokens | No | integer | 1024 | Whole number, 1 to 32000 | The most tokens the model may generate, reasoning included. A small value can cut the answer short (see Reasoning and max_tokens below). |
temperature | No | number | 1 | 0 to 2 | Sampling temperature: lower values give more focused answers. |
top_p | No | number | 0.95 | 0.01 to 1 | Nucleus sampling: the share of probability mass the model samples from. |
enable_safety_checker | No | boolean | true | true, false | Check the request for unsafe content. |
Good to know
- Each request returns one answer.
batch_size,num_images,number_of_images,nandcountare rejected — send one request per answer. - This API has no length setting: use
max_tokensto cap the answer.duration,seconds,num_frames,frames_per_secondandmusic_length_msare rejected. - Send every field at the top level of the JSON body;
parameters,contentandtextare rejected. max_tokenstakes a whole number from 1 to 32000 (1024when you leave it out); any other value is refused at submit.image_url,video_url,image_urlsandvideo_urlsare rejected (this endpoint answers text only: use Nemotron 3.5 Super Vision for an image or Nemotron 3.5 Super Video for a video).messagesis rejected (send the question asprompt).max_new_tokensandmax_completion_tokensare rejected (usemax_tokens).- Use the JSON types shown:
prompt,system_promptandreasoning_modeare strings,max_tokensis a whole number (not"1024"),temperatureandtop_pare numbers, andenable_safety_checkeristrueorfalse. - Omit a field instead of sending
null. - Results are always returned as a URL in
output.media_url;sync_modeis accepted only asfalse. - Webhooks are set with the
X-Webhook-URL/X-Webhook-Modeheaders;webhook_url,webhook_modeandcallback_urlin the JSON body are rejected. streamis not supported: the result is delivered when the job completes.- Options this API does not offer are rejected:
inputandmodel.
Reasoning and max_tokens
max_tokenscaps everything the model generates, its reasoning included. When the cap is reached,output.finish_reasonislengthinstead ofstop.- With
reasoning_modethink, the reasoning comes first: a smallmax_tokenscan be used up by the reasoning, andoutput.outputis then an empty string. Allow a few thousand tokens forthink. - An empty or cut-short answer is billed like any other: you pay for the tokens used, shown in
output.usage.
Example: show the reasoning
{
"prompt": "Is 1001 a prime number? Answer yes or no.",
"reasoning_mode": "think",
"max_tokens": 4096
}Instructions
- Put standing instructions (tone, length, format) in
system_promptand the question itself inprompt. - There is no conversation history: each request stands alone. To continue a conversation, include the earlier turns in
prompt.
Example: instructions in system_prompt
{
"system_prompt": "You are a concise assistant. Answer in one sentence.",
"prompt": "What does an API gateway do?",
"temperature": 0.6
}Example Request
{
"prompt": "Explain in two sentences why the sky looks blue.",
"max_tokens": 256
}Example Response
{
"request_id": "nemotron-3-5-super-text_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/nemotron-3-5-super-text_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}Request Headers
| Header | Required | Description |
|---|---|---|
| Content-Type | Yes | application/json |
| Ocp-Apim-Subscription-Key | Yes | Your API subscription key. |
| X-Webhook-URL | No | Enable Webhook callbacks (see Webhook section). |
| X-Webhook-Mode | No | terminal (default) or sync (see Webhook section). |
Response Handling
| Status Code | Meaning |
|---|---|
| 202 | Accepted — request queued; returns request_id and polling_url. |
| 400 | Invalid request — a required field is missing, a value has the wrong type, is too long, out of range or not one of the allowed values, or a field this operation does not accept was sent. The message says what to fix. |
| 401 | Unauthorized — missing or invalid subscription key. |
| 402 | Insufficient balance for the hold this request needs. |
| 429 | Too many requests. |
| 500 | Internal server error. |
Parameter problems are caught when you submit and returned as a 400, before any hold is placed on your balance. Problems that need the model to run are reported through the status endpoint as status: "ERROR", with a message in error saying what went wrong. Failed requests are not billed — the hold is released in full.
| Condition | How it surfaces |
|---|---|
| Missing or invalid subscription key | synchronous 401 |
| Balance too low for the hold | synchronous 402 |
Missing or empty prompt, prompt not a string, or longer than 100000 characters | synchronous 400 |
system_prompt not a string, or longer than 20000 characters | synchronous 400 |
reasoning_mode not one of the allowed values (written exactly as listed) | synchronous 400 |
enable_safety_checker not true or false — for example the string "true" | synchronous 400 |
max_tokens not a whole number from 1 to 32000 — for example 0, 32001 or the string "1" | synchronous 400 |
temperature not a number — for example the string "5" | synchronous 400 |
top_p not a number — for example the string "5" | synchronous 400 |
sync_mode set to anything other than false (results are always returned as a URL in output.media_url) | synchronous 400 |
image_url, video_url, image_urls, video_urls (this endpoint answers text only: use Nemotron 3.5 Super Vision for an image or Nemotron 3.5 Super Video for a video) | synchronous 400 |
messages (send the question as prompt) | synchronous 400 |
max_new_tokens, max_completion_tokens (use max_tokens) | synchronous 400 |
batch_size, num_images, number_of_images, n, count (one answer per request) | synchronous 400 |
duration, seconds, num_frames, frames_per_second, music_length_ms (use max_tokens to cap the answer) | synchronous 400 |
parameters, content, text (send the fields at the top level of the JSON body) | synchronous 400 |
webhook_url, webhook_mode, callback_url in the JSON body (use the X-Webhook-URL / X-Webhook-Mode headers) | synchronous 400 |
stream (the result is delivered when the job completes) | synchronous 400 |
input, model (not accepted by this operation) | synchronous 400 |
| A request the model refuses, for example under its content policy (the safety checker) | status: "ERROR" |
Example error responses
A refused request returns error, a message that joins every problem found, and the same problems one by one in violations.
Missing prompt (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'prompt' is required",
"violations": [
"'prompt' is required"
]
}max_tokens above 32000 (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'max_tokens' must be <= 32000 (got 40000)",
"violations": [
"'max_tokens' must be <= 32000 (got 40000)"
]
}A chat-style messages list (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'prompt' is required; 'messages' must be one of: (got [{\"role\":\"user\",\"content\":\"Hello\"}]); 'messages' is not accepted. Send the question as 'prompt' and optional instructions as 'system_prompt'.",
"violations": [
"'prompt' is required",
"'messages' must be one of: (got [{\"role\":\"user\",\"content\":\"Hello\"}])",
"'messages' is not accepted. Send the question as 'prompt' and optional instructions as 'system_prompt'."
]
}An image sent to the text endpoint (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'image_url' must be one of: (got \"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg\"); 'image_url' is not accepted. This endpoint answers text only: use nemotron-3-5-super-vision for an image or nemotron-3-5-super-video for a video.",
"violations": [
"'image_url' must be one of: (got \"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg\")",
"'image_url' is not accepted. This endpoint answers text only: use nemotron-3-5-super-vision for an image or nemotron-3-5-super-video for a video."
]
}More than one answer per request (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'n' must be one of: (got 2); 'n' is not supported: each request returns one answer. Send one request per question.",
"violations": [
"'n' must be one of: (got 2)",
"'n' is not supported: each request returns one answer. Send one request per question."
]
}Retrieving Results
Poll the status endpoint with the request_id from the submit response until status is COMPLETED or ERROR, then read the answer in output.output (the same JSON is stored as a file at output.media_url[0]). Treat any status other than QUEUED, PROCESSING or COMPLETED as a failure.
Endpoint
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEYcURL example
curl 'https://gateway.pixazo.ai/v2/requests/status/nemotron-3-5-super-text_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'Completed response
{
"request_id": "nemotron-3-5-super-text_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "COMPLETED",
"model_id": "nemotron-3-5-super-text",
"error": null,
"output": {
"media_url": [
"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.json"
],
"media_type": "application/json",
"output": "The answer.",
"finish_reason": "stop",
"usage": {
"input_tokens": 52,
"output_tokens": 61
}
},
"created_at": "2026-10-09T10:04:54.387Z",
"completed_at": "2026-10-09 10:06:21"
}Response Fields
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique request identifier. |
| status | string | QUEUED, PROCESSING, COMPLETED or ERROR. |
| model_id | string | The model that handled the request — nemotron-3-5-super-text for this endpoint. |
| output.output | string | The answer. It can be empty when max_tokens runs out during the reasoning. |
| output.reasoning | string | The model's reasoning, only with reasoning_mode think. |
| output.finish_reason | string | stop (the answer is complete) or length (max_tokens was reached). |
| output.usage | object | input_tokens and output_tokens: what the request is billed for. |
| output.truncated | boolean | Present and true only when a text longer than 32 KB was shortened in this response; the file at output.media_url[0] holds it in full. |
| output.media_url | array of strings | URL of a JSON file holding the same fields in full. |
| output.media_type | string | application/json. |
| created_at | string | Request creation timestamp. |
| completed_at | string | Completion timestamp. |
| error | string | Error message when status is ERROR. |
| polling_url | string | Status URL for this request (submit response only). |
Status Values & Flow
QUEUED → PROCESSING → COMPLETED (success) or ERROR (failure).
Typical workflow
- Send the request to
POST https://gateway.pixazo.ai/nemotron-3-5-super-text/v1/text-to-text. - Save the
request_idfrom the202response. - Poll
GET /v2/requests/status/{request_id}every 10 seconds or so, or use a Webhook instead. - When
statusisCOMPLETED, read the answer inoutput.output(the same JSON is stored as a file atoutput.media_url[0]).
How Billing Is Measured
Billing is measured per 1,000 tokens of input plus output (your prompt and instructions count as input; the answer and any reasoning count as output), rounded up to the next 1,000, with a minimum of one unit per request. A hold for the most the request can use is placed when you submit; when the answer is ready, the charge is set from the tokens actually used, shown in output.usage, and the rest of the hold is released. A failed request is not charged. The current rate is shown in the pricing panel on this page.
Nemotron 3.5 Super API Pricing
Nemotron 3.5 Super API Documentation
Ask NVIDIA Nemotron 3.5 Super about one image: send the image in image_url (JPEG or PNG) and your question in prompt, for example to describe a scene or read text and charts. Asynchronous: submit returns a request_id; poll the status endpoint until the request is COMPLETED, then read the answer from output.output.
POST https://gateway.pixazo.ai/nemotron-3-5-super-vision/v1/image-to-textAuthentication
All requests require an API key passed via header.
| Header | Type | Required | Description |
|---|---|---|---|
| Ocp-Apim-Subscription-Key | string | Yes | Your API subscription key |
Image to Text - Nemotron 3.5 Super Vision
Request Code
POST https://gateway.pixazo.ai/nemotron-3-5-super-vision/v1/image-to-text
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
{
"prompt": "Describe this image in one sentence.",
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg",
"max_tokens": 256
}import requests
url = "https://gateway.pixazo.ai/nemotron-3-5-super-vision/v1/image-to-text"
headers = {
"Content-Type": "application/json",
"Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
"prompt": "Describe this image in one sentence.",
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg",
"max_tokens": 256
}
resp = requests.post(url, json=data, headers=headers)
print(resp.json())const res = await fetch("https://gateway.pixazo.ai/nemotron-3-5-super-vision/v1/image-to-text", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
},
body: JSON.stringify({
"prompt": "Describe this image in one sentence.",
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg",
"max_tokens": 256
})
});
console.log(await res.json());curl -X POST 'https://gateway.pixazo.ai/nemotron-3-5-super-vision/v1/image-to-text' \
-H 'Content-Type: application/json' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--data-raw '{"prompt": "Describe this image in one sentence.", "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg", "max_tokens": 256}'Output
{
"request_id": "nemotron-3-5-super-vision_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/nemotron-3-5-super-vision_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}Webhook (Optional)
Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.
| Header | Required | Description |
|---|---|---|
| X-Webhook-URL | To enable | HTTPS URL to receive the Webhook callback. |
| X-Webhook-Mode | No | terminal (default, one callback on COMPLETED/ERROR) or sync (per-poll callbacks). |
Example: enable Webhook
curl -X POST 'https://gateway.pixazo.ai/nemotron-3-5-super-vision/v1/image-to-text' \
-H 'Content-Type: application/json' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
-H 'X-Webhook-URL: https://your-server.com/webhook' \
--data-raw '{"prompt": "Describe this image in one sentence.", "image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg", "max_tokens": 256}'Callback Payload (success)
{
"request_id": "nemotron-3-5-super-vision_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "COMPLETED",
"model_id": "nemotron-3-5-super-vision",
"error": null,
"output": {
"media_url": [
"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.json"
],
"media_type": "application/json",
"output": "The answer.",
"finish_reason": "stop",
"usage": {
"input_tokens": 52,
"output_tokens": 61
}
},
"created_at": "2026-10-09T10:04:54.387Z",
"completed_at": "2026-10-09 10:06:21"
}Failure callback shape
{
"request_id": "nemotron-3-5-super-vision_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "ERROR",
"model_id": "nemotron-3-5-super-vision",
"error": "Description of the failure"
}Delivery semantics
- terminal mode: one Webhook callback when the request is COMPLETED or ERROR.
- sync mode: a Webhook callback on every poll while the request is processing (status
PROCESSING), plus the final COMPLETED/ERROR callback. - Callbacks are idempotent on
request_id— de-duplicate on it. - Respond
200within a few seconds; the Webhook endpoint must be HTTPS.
Request Parameters
| Parameter | Required | Type | Default | Allowed values / range | Description |
|---|---|---|---|---|---|
prompt | Yes | string | — | Non-empty text, up to 100000 characters | Your question or task. |
image_url | Yes | string | — | A publicly reachable https URL (recommended) or a base64 data URI of a JPEG or PNG image | The image to ask about. Other formats (WebP, GIF, HEIC, ...) are refused at submit. |
system_prompt | No | string | — | Text, up to 20000 characters | Instructions that steer how the model answers, for example Answer in one sentence. |
reasoning_mode | No | string | "no_think" | think, no_think | think returns the model's reasoning in output.reasoning before the answer; no_think answers directly. |
max_tokens | No | integer | 1024 | Whole number, 1 to 32000 | The most tokens the model may generate, reasoning included. A small value can cut the answer short (see Reasoning and max_tokens below). |
temperature | No | number | 1 | 0 to 2 | Sampling temperature: lower values give more focused answers. |
top_p | No | number | 0.95 | 0.01 to 1 | Nucleus sampling: the share of probability mass the model samples from. |
enable_safety_checker | No | boolean | true | true, false | Check the request for unsafe content. |
Good to know
- Each request returns one answer.
batch_size,num_images,number_of_images,nandcountare rejected — send one request per answer. - This API has no length setting: use
max_tokensto cap the answer.duration,seconds,num_frames,frames_per_secondandmusic_length_msare rejected. - Send every field at the top level of the JSON body;
parameters,contentandtextare rejected. - Send one image as
image_url: a publicly reachablehttpsURL (recommended) or a base64 data URI of a JPEG or PNG. An image in another format is refused at submit, with nothing charged. max_tokenstakes a whole number from 1 to 32000 (1024when you leave it out); any other value is refused at submit.video_url,video_urlsandimage_urlsare rejected (this endpoint reads one image, asimage_url; use Nemotron 3.5 Super Video for a video).messagesis rejected (send the question asprompt).max_new_tokensandmax_completion_tokensare rejected (usemax_tokens).- Use the JSON types shown:
prompt,system_promptandreasoning_modeare strings,max_tokensis a whole number (not"1024"),temperatureandtop_pare numbers, andenable_safety_checkeristrueorfalse. - Omit a field instead of sending
null. - Results are always returned as a URL in
output.media_url;sync_modeis accepted only asfalse. - Webhooks are set with the
X-Webhook-URL/X-Webhook-Modeheaders;webhook_url,webhook_modeandcallback_urlin the JSON body are rejected. streamis not supported: the result is delivered when the job completes.- Options this API does not offer are rejected:
inputandmodel.
Reasoning and max_tokens
max_tokenscaps everything the model generates, its reasoning included. When the cap is reached,output.finish_reasonislengthinstead ofstop.- With
reasoning_modethink, the reasoning comes first: a smallmax_tokenscan be used up by the reasoning, andoutput.outputis then an empty string. Allow a few thousand tokens forthink. - An empty or cut-short answer is billed like any other: you pay for the tokens used, shown in
output.usage. - The image counts as input tokens: a larger image uses more of them.
Example: show the reasoning
{
"prompt": "How many people are in this image? Explain briefly.",
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg",
"reasoning_mode": "think",
"max_tokens": 4096
}Example Request
{
"prompt": "Describe this image in one sentence.",
"image_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg",
"max_tokens": 256
}Example Response
{
"request_id": "nemotron-3-5-super-vision_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/nemotron-3-5-super-vision_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}Request Headers
| Header | Required | Description |
|---|---|---|
| Content-Type | Yes | application/json |
| Ocp-Apim-Subscription-Key | Yes | Your API subscription key. |
| X-Webhook-URL | No | Enable Webhook callbacks (see Webhook section). |
| X-Webhook-Mode | No | terminal (default) or sync (see Webhook section). |
Response Handling
| Status Code | Meaning |
|---|---|
| 202 | Accepted — request queued; returns request_id and polling_url. |
| 400 | Invalid request — a required field is missing, a value has the wrong type, is too long, out of range or not one of the allowed values, or a field this operation does not accept was sent. The message says what to fix. |
| 401 | Unauthorized — missing or invalid subscription key. |
| 402 | Insufficient balance for the hold this request needs. |
| 429 | Too many requests. |
| 500 | Internal server error. |
Parameter problems are caught when you submit and returned as a 400, before any hold is placed on your balance. Problems that need the model to run are reported through the status endpoint as status: "ERROR", with a message in error saying what went wrong. Failed requests are not billed — the hold is released in full.
| Condition | How it surfaces |
|---|---|
| Missing or invalid subscription key | synchronous 401 |
| Balance too low for the hold | synchronous 402 |
Missing or empty prompt, prompt not a string, or longer than 100000 characters | synchronous 400 |
Missing or empty image_url, image_url not a string | synchronous 400 |
system_prompt not a string, or longer than 20000 characters | synchronous 400 |
reasoning_mode not one of the allowed values (written exactly as listed) | synchronous 400 |
enable_safety_checker not true or false — for example the string "true" | synchronous 400 |
max_tokens not a whole number from 1 to 32000 — for example 0, 32001 or the string "1" | synchronous 400 |
temperature not a number — for example the string "5" | synchronous 400 |
top_p not a number — for example the string "5" | synchronous 400 |
sync_mode set to anything other than false (results are always returned as a URL in output.media_url) | synchronous 400 |
video_url, video_urls, image_urls (this endpoint reads one image, as image_url; use Nemotron 3.5 Super Video for a video) | synchronous 400 |
messages (send the question as prompt) | synchronous 400 |
max_new_tokens, max_completion_tokens (use max_tokens) | synchronous 400 |
batch_size, num_images, number_of_images, n, count (one answer per request) | synchronous 400 |
duration, seconds, num_frames, frames_per_second, music_length_ms (use max_tokens to cap the answer) | synchronous 400 |
parameters, content, text (send the fields at the top level of the JSON body) | synchronous 400 |
webhook_url, webhook_mode, callback_url in the JSON body (use the X-Webhook-URL / X-Webhook-Mode headers) | synchronous 400 |
stream (the result is delivered when the job completes) | synchronous 400 |
input, model (not accepted by this operation) | synchronous 400 |
An image_url whose file is not a JPEG or PNG image (for example WebP, GIF or HEIC) | synchronous 400 |
| An image that cannot be downloaded or read | status: "ERROR" |
| A request the model refuses, for example under its content policy (the safety checker) | status: "ERROR" |
Example error responses
A refused request returns error, a message that joins every problem found, and the same problems one by one in violations.
Missing image_url (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'image_url' is required",
"violations": [
"'image_url' is required"
]
}A reasoning mode that does not exist (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'reasoning_mode' must be one of: \"think\", \"no_think\" (got \"deep\")",
"violations": [
"'reasoning_mode' must be one of: \"think\", \"no_think\" (got \"deep\")"
]
}A video sent to the image endpoint (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'video_url' must be one of: (got \"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-5s.mp4\"); 'video_url' is not accepted. This endpoint reads one image: use nemotron-3-5-super-video for a video.",
"violations": [
"'video_url' must be one of: (got \"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-5s.mp4\")",
"'video_url' is not accepted. This endpoint reads one image: use nemotron-3-5-super-video for a video."
]
}More than one image per request (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'image_urls' must be one of: (got [\"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg\",\"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg\"]); 'image_urls' is not accepted: each request reads at most one image, as 'image_url' (nemotron-3-5-super-vision).",
"violations": [
"'image_urls' must be one of: (got [\"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg\",\"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg\"])",
"'image_urls' is not accepted: each request reads at most one image, as 'image_url' (nemotron-3-5-super-vision)."
]
}top_p of 0 (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'top_p' must be >= 0.01 (got 0)",
"violations": [
"'top_p' must be >= 0.01 (got 0)"
]
}Retrieving Results
Poll the status endpoint with the request_id from the submit response until status is COMPLETED or ERROR, then read the answer in output.output (the same JSON is stored as a file at output.media_url[0]). Treat any status other than QUEUED, PROCESSING or COMPLETED as a failure.
Endpoint
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEYcURL example
curl 'https://gateway.pixazo.ai/v2/requests/status/nemotron-3-5-super-vision_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'Completed response
{
"request_id": "nemotron-3-5-super-vision_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "COMPLETED",
"model_id": "nemotron-3-5-super-vision",
"error": null,
"output": {
"media_url": [
"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.json"
],
"media_type": "application/json",
"output": "The answer.",
"finish_reason": "stop",
"usage": {
"input_tokens": 52,
"output_tokens": 61
}
},
"created_at": "2026-10-09T10:04:54.387Z",
"completed_at": "2026-10-09 10:06:21"
}Response Fields
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique request identifier. |
| status | string | QUEUED, PROCESSING, COMPLETED or ERROR. |
| model_id | string | The model that handled the request — nemotron-3-5-super-vision for this endpoint. |
| output.output | string | The answer. It can be empty when max_tokens runs out during the reasoning. |
| output.reasoning | string | The model's reasoning, only with reasoning_mode think. |
| output.finish_reason | string | stop (the answer is complete) or length (max_tokens was reached). |
| output.usage | object | input_tokens and output_tokens: what the request is billed for. |
| output.truncated | boolean | Present and true only when a text longer than 32 KB was shortened in this response; the file at output.media_url[0] holds it in full. |
| output.media_url | array of strings | URL of a JSON file holding the same fields in full. |
| output.media_type | string | application/json. |
| created_at | string | Request creation timestamp. |
| completed_at | string | Completion timestamp. |
| error | string | Error message when status is ERROR. |
| polling_url | string | Status URL for this request (submit response only). |
Status Values & Flow
QUEUED → PROCESSING → COMPLETED (success) or ERROR (failure).
Typical workflow
- Send the request to
POST https://gateway.pixazo.ai/nemotron-3-5-super-vision/v1/image-to-text. - Save the
request_idfrom the202response. - Poll
GET /v2/requests/status/{request_id}every 10 seconds or so, or use a Webhook instead. - When
statusisCOMPLETED, read the answer inoutput.output(the same JSON is stored as a file atoutput.media_url[0]).
How Billing Is Measured
Billing is measured per 1,000 tokens of input plus output (your prompt, instructions and the image count as input; the answer and any reasoning count as output), rounded up to the next 1,000, with a minimum of one unit per request. A hold for the most the request can use is placed when you submit; when the answer is ready, the charge is set from the tokens actually used, shown in output.usage, and the rest of the hold is released. A failed request is not charged. The current rate is shown in the pricing panel on this page.
Nemotron 3.5 Super API Pricing
Nemotron 3.5 Super API Documentation
Ask NVIDIA Nemotron 3.5 Super about one video: send the video in video_url (MP4, 2 minutes or less) and your question in prompt, for example to summarize what happens or find a moment. Asynchronous: submit returns a request_id; poll the status endpoint until the request is COMPLETED, then read the answer from output.output.
POST https://gateway.pixazo.ai/nemotron-3-5-super-video/v1/video-to-textAuthentication
All requests require an API key passed via header.
| Header | Type | Required | Description |
|---|---|---|---|
| Ocp-Apim-Subscription-Key | string | Yes | Your API subscription key |
Video to Text - Nemotron 3.5 Super Video
Request Code
POST https://gateway.pixazo.ai/nemotron-3-5-super-video/v1/video-to-text
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY
{
"prompt": "Summarize what happens in this video in one sentence.",
"video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-5s.mp4",
"max_tokens": 256
}import requests
url = "https://gateway.pixazo.ai/nemotron-3-5-super-video/v1/video-to-text"
headers = {
"Content-Type": "application/json",
"Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
"prompt": "Summarize what happens in this video in one sentence.",
"video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-5s.mp4",
"max_tokens": 256
}
resp = requests.post(url, json=data, headers=headers)
print(resp.json())const res = await fetch("https://gateway.pixazo.ai/nemotron-3-5-super-video/v1/video-to-text", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
},
body: JSON.stringify({
"prompt": "Summarize what happens in this video in one sentence.",
"video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-5s.mp4",
"max_tokens": 256
})
});
console.log(await res.json());curl -X POST 'https://gateway.pixazo.ai/nemotron-3-5-super-video/v1/video-to-text' \
-H 'Content-Type: application/json' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
--data-raw '{"prompt": "Summarize what happens in this video in one sentence.", "video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-5s.mp4", "max_tokens": 256}'Output
{
"request_id": "nemotron-3-5-super-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/nemotron-3-5-super-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}Webhook (Optional)
Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.
| Header | Required | Description |
|---|---|---|
| X-Webhook-URL | To enable | HTTPS URL to receive the Webhook callback. |
| X-Webhook-Mode | No | terminal (default, one callback on COMPLETED/ERROR) or sync (per-poll callbacks). |
Example: enable Webhook
curl -X POST 'https://gateway.pixazo.ai/nemotron-3-5-super-video/v1/video-to-text' \
-H 'Content-Type: application/json' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
-H 'X-Webhook-URL: https://your-server.com/webhook' \
--data-raw '{"prompt": "Summarize what happens in this video in one sentence.", "video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-5s.mp4", "max_tokens": 256}'Callback Payload (success)
{
"request_id": "nemotron-3-5-super-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "COMPLETED",
"model_id": "nemotron-3-5-super-video",
"error": null,
"output": {
"media_url": [
"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.json"
],
"media_type": "application/json",
"output": "The answer.",
"finish_reason": "stop",
"usage": {
"input_tokens": 52,
"output_tokens": 61
}
},
"created_at": "2026-10-09T10:04:54.387Z",
"completed_at": "2026-10-09 10:06:21"
}Failure callback shape
{
"request_id": "nemotron-3-5-super-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "ERROR",
"model_id": "nemotron-3-5-super-video",
"error": "Description of the failure"
}Delivery semantics
- terminal mode: one Webhook callback when the request is COMPLETED or ERROR.
- sync mode: a Webhook callback on every poll while the request is processing (status
PROCESSING), plus the final COMPLETED/ERROR callback. - Callbacks are idempotent on
request_id— de-duplicate on it. - Respond
200within a few seconds; the Webhook endpoint must be HTTPS.
Request Parameters
| Parameter | Required | Type | Default | Allowed values / range | Description |
|---|---|---|---|---|---|
prompt | Yes | string | — | Non-empty text, up to 100000 characters | Your question or task. |
video_url | Yes | string | — | A publicly reachable https URL (recommended) or a base64 data URI of an MP4 video of 2 minutes or less | The video to ask about. A video measured longer than 2 minutes is refused at submit. |
system_prompt | No | string | — | Text, up to 20000 characters | Instructions that steer how the model answers, for example Answer in one sentence. |
reasoning_mode | No | string | "no_think" | think, no_think | think returns the model's reasoning in output.reasoning before the answer; no_think answers directly. |
max_tokens | No | integer | 1024 | Whole number, 1 to 32000 | The most tokens the model may generate, reasoning included. A small value can cut the answer short (see Reasoning and max_tokens below). |
temperature | No | number | 1 | 0 to 2 | Sampling temperature: lower values give more focused answers. |
top_p | No | number | 0.95 | 0.01 to 1 | Nucleus sampling: the share of probability mass the model samples from. |
enable_safety_checker | No | boolean | true | true, false | Check the request for unsafe content. |
Good to know
- Each request returns one answer.
batch_size,num_images,number_of_images,nandcountare rejected — send one request per answer. - This API has no length setting: use
max_tokensto cap the answer.duration,seconds,num_frames,frames_per_secondandmusic_length_msare rejected. - Send every field at the top level of the JSON body;
parameters,contentandtextare rejected. - Send one video as
video_url: a publicly reachablehttpsURL (recommended) or a base64 data URI of an MP4 of 2 minutes or less. A video measured longer than 2 minutes is refused at submit, with nothing charged. max_tokenstakes a whole number from 1 to 32000 (1024when you leave it out); any other value is refused at submit.image_url,image_urlsandvideo_urlsare rejected (this endpoint reads one video, asvideo_url; use Nemotron 3.5 Super Vision for an image).messagesis rejected (send the question asprompt).max_new_tokensandmax_completion_tokensare rejected (usemax_tokens).- Use the JSON types shown:
prompt,system_promptandreasoning_modeare strings,max_tokensis a whole number (not"1024"),temperatureandtop_pare numbers, andenable_safety_checkeristrueorfalse. - Omit a field instead of sending
null. - Results are always returned as a URL in
output.media_url;sync_modeis accepted only asfalse. - Webhooks are set with the
X-Webhook-URL/X-Webhook-Modeheaders;webhook_url,webhook_modeandcallback_urlin the JSON body are rejected. streamis not supported: the result is delivered when the job completes.- Options this API does not offer are rejected:
inputandmodel.
Reasoning and max_tokens
max_tokenscaps everything the model generates, its reasoning included. When the cap is reached,output.finish_reasonislengthinstead ofstop.- With
reasoning_modethink, the reasoning comes first: a smallmax_tokenscan be used up by the reasoning, andoutput.outputis then an empty string. Allow a few thousand tokens forthink. - An empty or cut-short answer is billed like any other: you pay for the tokens used, shown in
output.usage. - The video counts as input tokens: a longer video uses more of them. The content of the frames does not change the count.
Example: show the reasoning
{
"prompt": "What changes between the start and the end of this video?",
"video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-5s.mp4",
"reasoning_mode": "think",
"max_tokens": 4096
}Example Request
{
"prompt": "Summarize what happens in this video in one sentence.",
"video_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/video/input-5s.mp4",
"max_tokens": 256
}Example Response
{
"request_id": "nemotron-3-5-super-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "QUEUED",
"polling_url": "https://gateway.pixazo.ai/v2/requests/status/nemotron-3-5-super-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}Request Headers
| Header | Required | Description |
|---|---|---|
| Content-Type | Yes | application/json |
| Ocp-Apim-Subscription-Key | Yes | Your API subscription key. |
| X-Webhook-URL | No | Enable Webhook callbacks (see Webhook section). |
| X-Webhook-Mode | No | terminal (default) or sync (see Webhook section). |
Response Handling
| Status Code | Meaning |
|---|---|
| 202 | Accepted — request queued; returns request_id and polling_url. |
| 400 | Invalid request — a required field is missing, a value has the wrong type, is too long, out of range or not one of the allowed values, or a field this operation does not accept was sent. The message says what to fix. |
| 401 | Unauthorized — missing or invalid subscription key. |
| 402 | Insufficient balance for the hold this request needs. |
| 429 | Too many requests. |
| 500 | Internal server error. |
Parameter problems are caught when you submit and returned as a 400, before any hold is placed on your balance. Problems that need the model to run are reported through the status endpoint as status: "ERROR", with a message in error saying what went wrong. Failed requests are not billed — the hold is released in full.
| Condition | How it surfaces |
|---|---|
| Missing or invalid subscription key | synchronous 401 |
| Balance too low for the hold | synchronous 402 |
Missing or empty prompt, prompt not a string, or longer than 100000 characters | synchronous 400 |
Missing or empty video_url, video_url not a string | synchronous 400 |
system_prompt not a string, or longer than 20000 characters | synchronous 400 |
reasoning_mode not one of the allowed values (written exactly as listed) | synchronous 400 |
enable_safety_checker not true or false — for example the string "true" | synchronous 400 |
max_tokens not a whole number from 1 to 32000 — for example 0, 32001 or the string "1" | synchronous 400 |
temperature not a number — for example the string "5" | synchronous 400 |
top_p not a number — for example the string "5" | synchronous 400 |
sync_mode set to anything other than false (results are always returned as a URL in output.media_url) | synchronous 400 |
image_url, image_urls, video_urls (this endpoint reads one video, as video_url; use Nemotron 3.5 Super Vision for an image) | synchronous 400 |
messages (send the question as prompt) | synchronous 400 |
max_new_tokens, max_completion_tokens (use max_tokens) | synchronous 400 |
batch_size, num_images, number_of_images, n, count (one answer per request) | synchronous 400 |
duration, seconds, num_frames, frames_per_second, music_length_ms (use max_tokens to cap the answer) | synchronous 400 |
parameters, content, text (send the fields at the top level of the JSON body) | synchronous 400 |
webhook_url, webhook_mode, callback_url in the JSON body (use the X-Webhook-URL / X-Webhook-Mode headers) | synchronous 400 |
stream (the result is delivered when the job completes) | synchronous 400 |
input, model (not accepted by this operation) | synchronous 400 |
A video_url measured longer than 2 minutes (the response names the measured length) | synchronous 400 |
| A video that cannot be downloaded or read, or one the model does not accept | status: "ERROR" |
| A request the model refuses, for example under its content policy (the safety checker) | status: "ERROR" |
Example error responses
A refused request returns error, a message that joins every problem found, and the same problems one by one in violations.
Missing video_url (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'video_url' is required",
"violations": [
"'video_url' is required"
]
}A length setting (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'duration' must be one of: (got 10); 'duration' is not accepted: this API has no length setting. Use 'max_tokens' to cap the answer.",
"violations": [
"'duration' must be one of: (got 10)",
"'duration' is not accepted: this API has no length setting. Use 'max_tokens' to cap the answer."
]
}An image sent to the video endpoint (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'image_url' must be one of: (got \"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg\"); 'image_url' is not accepted. This endpoint reads one video: use nemotron-3-5-super-vision for an image.",
"violations": [
"'image_url' must be one of: (got \"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/images/input.jpg\")",
"'image_url' is not accepted. This endpoint reads one video: use nemotron-3-5-super-vision for an image."
]
}max_tokens as a string (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'max_tokens' must be integer (got string)",
"violations": [
"'max_tokens' must be integer (got string)"
]
}Instructions inside an input object (synchronous 400)
{
"error": "Invalid request parameters",
"message": "'prompt' is required; 'input' must be one of: (got {\"prompt\":\"Summarize what happens in this video in one sentence.\"}); 'input' is not accepted by this model. Send the fields at the top level of the JSON body.",
"violations": [
"'prompt' is required",
"'input' must be one of: (got {\"prompt\":\"Summarize what happens in this video in one sentence.\"})",
"'input' is not accepted by this model. Send the fields at the top level of the JSON body."
]
}Retrieving Results
Poll the status endpoint with the request_id from the submit response until status is COMPLETED or ERROR, then read the answer in output.output (the same JSON is stored as a file at output.media_url[0]). Treat any status other than QUEUED, PROCESSING or COMPLETED as a failure.
Endpoint
GET https://gateway.pixazo.ai/v2/requests/status/{request_id}
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEYcURL example
curl 'https://gateway.pixazo.ai/v2/requests/status/nemotron-3-5-super-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'Completed response
{
"request_id": "nemotron-3-5-super-video_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "COMPLETED",
"model_id": "nemotron-3-5-super-video",
"error": null,
"output": {
"media_url": [
"https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.json"
],
"media_type": "application/json",
"output": "The answer.",
"finish_reason": "stop",
"usage": {
"input_tokens": 52,
"output_tokens": 61
}
},
"created_at": "2026-10-09T10:04:54.387Z",
"completed_at": "2026-10-09 10:06:21"
}Response Fields
| Field | Type | Description |
|---|---|---|
| request_id | string | Unique request identifier. |
| status | string | QUEUED, PROCESSING, COMPLETED or ERROR. |
| model_id | string | The model that handled the request — nemotron-3-5-super-video for this endpoint. |
| output.output | string | The answer. It can be empty when max_tokens runs out during the reasoning. |
| output.reasoning | string | The model's reasoning, only with reasoning_mode think. |
| output.finish_reason | string | stop (the answer is complete) or length (max_tokens was reached). |
| output.usage | object | input_tokens and output_tokens: what the request is billed for. |
| output.truncated | boolean | Present and true only when a text longer than 32 KB was shortened in this response; the file at output.media_url[0] holds it in full. |
| output.media_url | array of strings | URL of a JSON file holding the same fields in full. |
| output.media_type | string | application/json. |
| created_at | string | Request creation timestamp. |
| completed_at | string | Completion timestamp. |
| error | string | Error message when status is ERROR. |
| polling_url | string | Status URL for this request (submit response only). |
Status Values & Flow
QUEUED → PROCESSING → COMPLETED (success) or ERROR (failure).
Typical workflow
- Send the request to
POST https://gateway.pixazo.ai/nemotron-3-5-super-video/v1/video-to-text. - Save the
request_idfrom the202response. - Poll
GET /v2/requests/status/{request_id}every 10 seconds or so, or use a Webhook instead. - When
statusisCOMPLETED, read the answer inoutput.output(the same JSON is stored as a file atoutput.media_url[0]).
How Billing Is Measured
Billing is measured per 1,000 tokens of input plus output (your prompt, instructions and the video count as input; the answer and any reasoning count as output), rounded up to the next 1,000, with a minimum of one unit per request. A hold for the most the request can use is placed when you submit; when the answer is ready, the charge is set from the tokens actually used, shown in output.usage, and the rest of the hold is released. A failed request is not charged. The current rate is shown in the pricing panel on this page.
Nemotron 3.5 Super API Pricing
⚡ Performance
Live usage measured on Pixazo's gateway, split by model version. Generation time is how long a generation takes end-to-end (lower is better). Success rate is the percent of generations that complete (higher is better).
〰 Uptime
Percent of generations that succeeded over the selected period, per model version.