Skip to content
NVIDIA logo

nemotron-3-120b-a12b

Text Generation • NVIDIA

View as MarkdownAgent setup
  • Cloudflare-hosted
  • Function calling
  • Reasoning

NVIDIA Nemotron 3 Super is a hybrid MoE model with leading accuracy for multi-agent applications and specialized agentic AI systems.

Model Info
Context Window ↗256,000 tokens
Terms and Licenselink ↗
Function calling ↗Yes
ReasoningYes
Unit Pricing$0.50 per M input tokens, $1.50 per M output tokens

Reasoning effort

Nemotron supports normal reasoning, low reasoning, and reasoning turned off. It does not currently select these modes from the top-levelreasoning_effort field. Pass the corresponding options through chat_template_kwargs instead.

To use low reasoning, set both enable_thinking andlow_effort:

response = client.chat.completions.create(
    model="@cf/nvidia/nemotron-3-120b-a12b",
    messages=[{"role": "user", "content": "What is the capital of Japan?"}],
    max_tokens=16000,
    temperature=1.0,
    top_p=0.95,
    extra_body={
        "chat_template_kwargs": {
            "enable_thinking": True,
            "low_effort": True,
        }
    },
)

The low-effort option appends {reasoning effort: low} to the latest user message. To turn reasoning off, setenable_thinking to False. For coding agents, setforce_nonempty_content to True in the samechat_template_kwargs object.

For more information, refer to NVIDIA's Nemotron API client example.

Playground

Try out this model with Workers AI LLM Playground. It does not require any setup or authentication and is an instant way to preview and test a model directly in the browser.

Launch the LLM Playground

Usage


export interface Env {
  AI: Ai;
}

export default {
  async fetch(request, env): Promise<Response> {

    const messages = [
      { role: "system", content: "You are a friendly assistant" },
      {
        role: "user",
        content: "What is the origin of the phrase Hello, World",
      },
    ];

    const stream = await env.AI.run("@cf/nvidia/nemotron-3-120b-a12b", {
      messages,
      stream: true,
    });

    return new Response(stream, {
      headers: { "content-type": "text/event-stream" },
    });
  },
} satisfies ExportedHandler<Env>;

export interface Env {
  AI: Ai;
}

export default {
  async fetch(request, env): Promise<Response> {

    const messages = [
      { role: "system", content: "You are a friendly assistant" },
      {
        role: "user",
        content: "What is the origin of the phrase Hello, World",
      },
    ];
    const response = await env.AI.run("@cf/nvidia/nemotron-3-120b-a12b", { messages });

    return Response.json(response);
  },
} satisfies ExportedHandler<Env>;

import os
import requests

ACCOUNT_ID = "your-account-id"
AUTH_TOKEN = os.environ.get("CLOUDFLARE_AUTH_TOKEN")

prompt = "Tell me all about PEP-8"
response = requests.post(
  f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/nvidia/nemotron-3-120b-a12b",
    headers={"Authorization": f"Bearer {AUTH_TOKEN}"},
    json={
      "messages": [
        {"role": "system", "content": "You are a friendly assistant"},
        {"role": "user", "content": prompt}
      ]
    }
)
result = response.json()
print(result)

curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run/@cf/nvidia/nemotron-3-120b-a12b \
  -X POST \
  -H "Authorization: Bearer $CLOUDFLARE_AUTH_TOKEN" \
  -d '{ "messages": [{ "role": "system", "content": "You are a friendly assistant" }, { "role": "user", "content": "Why is pizza so good" }]}'

Parameters

Input

model
stringID of the model to use (for example, '@cf/nvidia/nemotron-3-120b-a12b').
frequency_penalty
number | nullPenalizes new tokens based on their existing frequency in the text so far.
logit_bias
object | nullModify the likelihood of specified tokens appearing in the completion. Maps token IDs to bias values from -100 to 100.
logprobs
boolean | nullWhether to return log probabilities of the output tokens.
top_logprobs
integer | nullHow many top log probabilities to return at each token position (0-20). Requires logprobs=true.
max_tokens
integer | nullThe maximum number of tokens to generate.
max_completion_tokens
integer | nullAn upper bound for the number of tokens that can be generated for a completion.
metadata
object | nullSet of key-value pairs that can be attached to the object.
modalities
array | nullOutput types requested from the model.
n
integer | nullHow many chat completion choices to generate for each input message.
parallel_tool_calls
booleandefault: trueWhether to enable parallel function calling during tool use.
presence_penalty
number | nullPenalizes new tokens based on whether they appear in the text so far.
seed
integer | nullIf specified, the system will make a best effort to sample deterministically.
store
boolean | nullWhether to store the output for model distillation or evaluation.
stream
boolean | nullIf true, partial message deltas will be sent as server-sent events.
temperature
number | nullSampling temperature between 0 and 2.
top_p
number | nullNucleus sampling: considers the results of the tokens with top_p probability mass.
user
stringA unique identifier representing your end-user, for abuse monitoring.
prompt
stringrequiredminLength: 1The input text prompt for the model to generate a response.

Output

Synchronous — Send a request and receive a complete response
id
stringA unique identifier for the chat completion.
object
string
created
integerUnix timestamp (seconds) of when the completion was created.
model
stringThe model used for the chat completion.
system_fingerprint
string | null
Streaming — Send a request with `stream: true` and receive server-sent events
type
string
contentType
text/event-stream
format
binary

API Schemas (Raw)

SynchronousInput
SynchronousOutput
StreamingInput
StreamingOutput

Was this helpful?