OpenRouter [Vision]
I-integrate
openrouter/router/vision
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/openrouter/router/vision?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"model": "openai/gpt-6-sol"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/openrouter/router/vision?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"model": "openai/gpt-6-sol"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"model": "openai/gpt-6-sol",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/openrouter/router/vision", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/fil/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "openrouter/router/vision",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"model": "openai/gpt-6-sol"
}
}
Tawagin ang modelong OpenRouter [Vision] (openrouter/router/vision) sa pamamagitan ng Doitong API. Dokumentasyon para sa mga agent: https://doitong.com/fil/developers/models/openrouter/router/vision.md
POST https://api.doitong.com/v1/run/openrouter/router/vision?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"model": "openai/gpt-6-sol"
}
Kung ang response status ay "queued" o "running", i-poll ang GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 hanggang maging "succeeded"; nasa outputs[].url ang mga file. Ang POST https://api.doitong.com/v1/quote/openrouter/router/vision na may parehong body ay nagbabalik ng eksaktong presyo bago patakbuhin.
Hanggang $14.34 bawat pagtakbo sinisingil ayon sa aktuwal na paggamit, at nire-refund ang natitira Patakbuhin ito sa page na ito
Ang bago mong API key. Ipinapakita lang ito ngayon at nasa code at sa field ng API key sa ibaba na. Panatilihin itong sikreto: huwag kailanman ilagay sa code na tumatakbo sa browser.
Dito mapupunta ang iyong unang resulta
Bumuo ng kahilingan sa ibaba at patakbuhin ito gamit ang iyong API key. Kinokopya ang mga output sa aming storage, na pinananatili nang walang hanggan o 7 araw nang libre.
Bumuo ng kahilingan
Ang mga control ay binubuo mula sa schema ng modelo. Nagbabago ang code at presyo habang ina-adjust mo ang mga ito.
/run/openrouter/router/vision?wait=20
presyo → $14.34
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/openrouter/router/vision?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"model": "openai/gpt-6-sol"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/openrouter/router/vision?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"model": "openai/gpt-6-sol"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"model": "openai/gpt-6-sol",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/openrouter/router/vision", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "openrouter/router/vision",
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"model": "openai/gpt-6-sol"
},
"wait_seconds": 20
}
}
}
Patakbuhin ang kahilingang ito
Nananatili ang iyong key sa browser na ito: ipinapadala lamang ito sa Doitong API at sine-save (localStorage) lamang kung pipiliin mo ang Tandaan. Kumuha ng API key
Tungkol sa OpenRouter [Vision]
Tumatanggap ng `prompt` at pangalan ng vision-capable language modelo sa `model`, pagkatapos ay nagbabalik ng teksto na sagot. Mag-attach ng mga larawan sa pamamagitan ng `image_urls` at dokumento sa pamamagitan ng `pdf_urls`, na PDF file lamang ang tinatanggap. Sinusuportahan din ang `system_prompt`, `temperature` mula 0 hanggang 2, `max_tokens`, opsyonal na reasoning output at web search.
Mga parameter
Ipadala ang canonical na pangalan o ang native na pangalan, hindi pareho. Mga canonical na pangalan
image_urlsopsyonal
images
pdf_urlsopsyonal
promptkinakailangan
system_promptopsyonal
modelkinakailangan
reasoningopsyonal
temperatureopsyonal
max_tokensopsyonal
enable_web_searchopsyonal
web_search_optionsopsyonal
web_search_options.engineopsyonal
web_search_options.max_resultsopsyonal
web_search_options.max_usesopsyonal
web_search_options.max_total_resultsopsyonal
web_search_options.search_context_sizeopsyonal
web_search_options.max_charactersopsyonal
web_search_options.allowed_domainsopsyonal
web_search_options.excluded_domainsopsyonal
web_search_options.user_locationopsyonal
web_search_options.user_location.typeopsyonal
web_search_options.user_location.cityopsyonal
web_search_options.user_location.regionopsyonal
web_search_options.user_location.countryopsyonal
web_search_options.user_location.timezoneopsyonal
Tumatanggap ang mga parameter ng file ng pampublikong https:// URL, data: URI na hanggang 10 MB, o file_url ng isang upload. Mga file
Output
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "openrouter/router/vision",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 14340,
"usd": "14.34",
"charged": 14340,
"refunded": 0
},
"input": {
"prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
"model": "openai/gpt-6-sol"
},
"output": {
"output": "A close-up of a tiger's face focusing on its bright orange iris and the area around its eye, with white fur eyebrows and a contrasting black and rich orange striped fur pattern. The word \"FLUX\" is overlaid in bold, white, brush-stroke styled text across the tiger's face.",
"usage": {
"prompt_tokens": 1,
"completion_tokens": 1,
"total_tokens": 0,
"cost": 1.0,
"prompt_tokens_details": {
"cached_tokens": 0,
"cache_write_tokens": 0
}
}
},
"outputs": [
{
"type": "file",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Mga field ng output
- output
- stringResultang ginawa ng modelo.
- usage
- object {prompt_tokens, completion_tokens, total_tokens, cost, prompt_tokens_details} | nullMga detalye ng pagkonsumo ng token.
Iba pang variant ng OpenRouter Router
Higit pang modelo: LLM
Para sa mga AI agent: nasa Markdown ang pahinang ito sa https://doitong.com/fil/developers/models/openrouter/router/vision.md. Lahat ng modelo at gabay: https://doitong.com/developers/llms.txt