ERNIE 5.1 is Baidu's current flagship text model on Qianfan. The production API model ID is ernie-5.1; the earlier ERNIE-5.1-Preview label is not an interchangeable alias.
That small naming detail matters. A model page, a benchmark entry, and an API identifier can describe the same family without being valid substitutes in a request. Keep the exact ID in configuration and verify it against the provider catalog before deployment.
What the API currently exposes
Baidu's developer-facing model list gives ERNIE 5.1 a 128K-token context window, up to 119K input, and up to 65,536 output tokens. The model is listed as text-to-text, with tool calling and Qianfan Web Search support.
One official models API example contains larger metadata values. Those fields do not line up cleanly with the limits in the model list, so 128K is the safer production planning figure. Do not promise a 248K request until your account and endpoint have passed a boundary test.
The model is a practical fit for:
- agent workflows that call tools and search;
- Chinese-language retrieval and synthesis;
- long reports that still fit inside a controlled 128K budget;
- applications that already use an OpenAI-shaped client.
It is not yet documented as a multimodal API model. Baidu describes broader ERNIE family capabilities elsewhere, but the ernie-5.1 API metadata lists text input and text output.
Direct pricing
Baidu publishes separate mainland China and international rate cards. The international prices below are in USD per 1M tokens and were checked on September 11, 2026.
| Input length | Input | Output |
|---|---|---|
| Up to 32K | $0.56 | $2.53 |
| Above 32K, up to 128K | $0.84 | $3.10 |
The mainland Qianfan rates are ¥4 input and ¥18 output per 1M tokens up to 32K, then ¥6 input and ¥22 output above 32K. These are two regional price lists, not currency conversions.
No ERNIE 5.1 cache price is published in either current rate-card row. Treat that as “not documented,” not as a zero-cost cache tier.
First request with the OpenAI SDK
Qianfan provides an OpenAI-compatible v2 endpoint. Keep the credential in an environment variable:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["QIANFAN_API_KEY"],
base_url="https://qianfan.baidubce.com/v2/",
)
response = client.chat.completions.create(
model="ernie-5.1",
messages=[{"role": "user", "content": "Summarize the deployment risks."}],
)
print(response.choices[0].message.content)The same request shape works with curl:
curl https://qianfan.baidubce.com/v2/chat/completions \
-H "Authorization: Bearer $QIANFAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"ernie-5.1","messages":[{"role":"user","content":"Reply with OK"}]}'Production checks that prevent expensive surprises
Start with a short request, then test the largest payload your application will actually send. Record input tokens, output tokens, latency, status, and the price tier selected by input length. A request crossing 32K changes both input and output rates.
Set an output cap below the documented maximum. A large context window is not an invitation to fill every token: tool results, retrieved documents, and the answer all need headroom. Retry only idempotent work, and handle authentication, balance, rate-limit, and upstream errors separately.
AIWave uses an OpenAI-compatible request shape for Chinese model routes, but its public catalog did not list ernie-5.1 when this guide was checked. Do not swap in that ID based on this article alone. Use a currently listed ERNIE model or wait until the exact route and dated price appear in the public catalog.
That is the production rule worth keeping: documentation tells you what a provider offers; your live catalog tells you what your account can call today.
Primary references
Test the route with your own workload
Use one key, choose an explicit model ID, and check every request against the ledger.
Run a first request