로드 중
로드 중
Bearer 키 하나로 Vortixy Chat을 프로젝트에 통합하세요. 플랜과 동일한 할당량입니다. 대시보드 → 내 API에서 키 만들기
Vortixy는 학습, 글쓰기, 연구, 계획 및 일상 업무를 위한 차분한 AI 작업 공간입니다. 공개 API는 /chat에서 사용하는 동일한 Chat을 공개하여 자신의 앱, 스크립트 또는 워크스페이스에서 호출할 수 있게 합니다. 모든 키는 현재 요금제 — Free, Go $2, Pro $5 또는 Max $9 — 의 한도를 그대로 상속하며, 모든 할당량은 웹과 API 간에 공유됩니다.
https://www.vortixy.net/api/v1Authorization: Bearer vtx_live_...application/jsonAuthorization 헤더에 키를 보내세요. 클라이언트 코드나 쿼리 파라미터에 노출하지 마세요.
curl https://www.vortixy.net/api/v1/chat \
-H "Authorization: Bearer vtx_live_abc123..." \
-H "Content-Type: application/json" \
-d '{"message":"Hello Vortixy"}'Scopes: chat, images, search, tasks, usage. 키는 플랜 할당량을 공유합니다.
메시지를 전송하고, 선택적으로 대화 기록을 포함하거나 웹 검색을 활성화하거나 사고 깊이를 조정합니다. 핌랜의 일일 메시지 및 토큰 한도에서 차감됩니다.
챗봇 준비: system으로 봇 페르소나 추가(8k자), stream:true로 NDJSON 델타, webSearch로 라이브 소스. 호출마다 토큰·요청·web 검색 차감 — 웹과 공유(00:00 UTC 리셋).
POST /api/v1/chat의 모든 JSON 필드. message만 필수 — 나머지는 선택입니다.
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
| message | string | yes | 사용자 메시지(1–32,000자). |
| history | array | no | 이전 턴: [{ role: 'user' | 'assistant', content: string }](최대 20). |
| system | string | no | 봇 페르소나 / 지시(최대 8k). 별칭 instructions도 허용. |
| provider | string | no | gemini(관리형, 기본값). BYOK는 Dashboard → 설정 → AI 키에서 키를 저장한 뒤 provider openai / anthropic / deepseek / gemini 와 BYOK 모델 ID를 사용하세요. |
| model | string | no | 모델 ID — 아래 표 참조. provider+플랜에서 허용되어야 합니다. |
| thinkingLevel | enum | no | none | low | medium | high | xhigh | max(xhigh/max는 GPT-5.6 전용). |
| webSearch | boolean | no | true이면 실시간 웹 검색 활성화. 일일 할당량에 포함. |
| stream | boolean | no | true이면 NDJSON 스트리밍(delta → done). 기본값 false(JSON). |
팁: provider/model을 생략하면 플랜 최적 모델을 사용합니다. 챗봇은 stream:true로.
Reasoning is now automatic per mode — Fast uses low, Smart uses high, Auto chooses intelligently based on your question. You no longer need to pick a level. The API still accepts thinkingLevel but it is optional and overridden by the mode.
| Level | 설명 |
|---|---|
| none | 추론 없음 — 가장 빠르고 토큰 최소. |
| low | 가벼운 추론 — 약간의 고민이 담긴 빠른 답변. |
| medium | 균형 잡힌 추론 — 대부분 작업에 적합. |
| high | 깊은 추론 — 복잡한 분석·계획에. |
| xhigh | 매우 깊음 — 프론티어 모델 전용, 어려운 문제용. |
| max | 최대 — 사고 예산 전체 사용, 가장 느리고 비쌈. |
Fast → low/medium, Smart → medium/high, Auto → chooses low→high per query. No user selector needed — the system is intelligent per moment.
Pick a mode, not a model. Vortixy routes intelligently to make the most of your quota — no need to choose a specific model. All modes share your plan quotas (00:00 UTC).
| Mode | When to use | Thinking | Speed |
|---|---|---|---|
| Fast | Quick answers for simple tasks — fastest, most efficient. | low / medium | Fastest |
| Smart | Thorough reasoning for complex tasks — deeper, step-by-step. | medium / high | Thorough |
| Auto | Vortixy chooses the best mode automatically per question (heuristic, zero extra cost). | auto (low → high) | Auto-chooses |
Smart has an animated glow when selected (shimmer border). Auto is the default — recommended for most tasks.
Save your provider key once in Dashboard → Settings → AI keys (AES-256-GCM encrypted, never exposed) — then call with provider + model. Same 00:00 UTC quotas as managed.
| 모델 | 제공자 | Access | 사고 | 컨텍스트 |
|---|---|---|---|---|
| gemini-3.8-flash:byok | gemini | Free — needs key | none, low, medium, high | 1049k |
| gemini-3.7-flash:byok | gemini | Free — needs key | none, low, medium, high | 1049k |
| gemini-3.6-flash:byok | gemini | Free — needs key | none, low, medium, high | 256k |
| gpt-5.6-sol | openai | Free — needs key | none, low, medium, high, xhigh, max | 256k |
| gpt-5.6-terra | openai | Free — needs key | none, low, medium, high, xhigh, max | 256k |
| gpt-5.6-luna | openai | Free — needs key | none, low, medium, high, xhigh, max | 256k |
| claude-fable-5 | anthropic | Free — needs key | none, high | 256k |
| claude-opus-5 | anthropic | Free — needs key | none, high | 256k |
| claude-sonnet-5 | anthropic | Free — needs key | none, high | 256k |
| claude-haiku-4-5 | anthropic | Free — needs key | none, high | 200k |
| deepseek-v4-pro | deepseek | Free — needs key | none, high | 256k |
| deepseek-v4-flash | deepseek | Free — needs key | none, high | 256k |
BYOK catalog: gpt-5.6-sol/terra/luna (openai), claude-opus-5/fable-5/sonnet-5/haiku-4-5 (anthropic), deepseek-v4-pro/flash (deepseek), gemini-3.8-flash:byok / gemini-3.7-flash:byok (gemini). All available on Free when key is present — no upgrade needed.
컨텍스트 윈도우는 모델마다 다르며 최대 1M (3.8/3.7) / 256k (나머지) 토큰입니다. 각 요청에는 요금제 한도도 적용됩니다: Free 10k, Go 20k, Pro 35k 또는 Max 50k 토큰. 적용 예산의 85%를 넘으면 오래된 턴을 자동으로 압축합니다. 공개 API는 상태를 저장하지 않으므로 호출할 때마다 `history`로 기록을 다시 보내세요.
요청에서 사용할 수 있는 컨텍스트는 요금제 한도(10k/20k/35k/50k 토큰)와 모델 윈도우(최대 1M (3.8/3.7) / 256k (나머지)) 중 더 작은 값입니다. 통합에서는 한도에 맞는 기록만 보내고 오래된 턴은 요약하세요. 너무 큰 요청은 거부될 수 있습니다.
// Basic — only required field
{ "message": "Explain quantum computing simply" }
// With system persona (chatbot) — 8k chars
{
"message": "What do you sell?",
"system": "You are a friendly shop assistant for Acme. Answer briefly in Spanish."
}
// With history — multi-turn conversation
{
"message": "And what about entanglement?",
"history": [
{ "role": "user", "content": "Hi" },
{ "role": "assistant", "content": "Hello! How can I help?" },
{ "role": "user", "content": "Explain quantum computing" }
]
}
// Full request — all variants together
{
"message": "Latest AI breakthroughs with sources",
"history": [{ "role": "user", "content": "Hi" }],
"system": "You are Acme support. Be concise.",
"provider": "gemini", // managed (default) — BYOK dashboard-only for other providers
"model": "gemini-3.5-flash", // any available managed model from the table above
"thinkingLevel": "high", // none | low | medium | high | xhigh | max
"webSearch": true, // true = live web grounding + sources[]
"stream": false // false = JSON, true = NDJSON deltas
}// 200 OK — non-streaming response
{
"answer": "Quantum computing uses qubits...",
"model": "gemini-3.5-flash",
"usage": { "tokensEstimated": 42, "tokensReserved": 42, "webSearch": true },
"sources": [{ "title": "Quantum computing — Wikipedia", "url": "https://en.wikipedia.org/wiki/Quantum_computing" }],
"plan": "pro"
}// Streaming (NDJSON) — ideal for chatbots
const res = await fetch("https://www.vortixy.net/api/v1/chat", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.VORTIXY_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ message: "Hello!", system: "Be concise.", stream: true, thinkingLevel: "medium" })
});
for await (const line of res.body.pipeThrough(new TextDecoderStream()).pipeThrough(splitNDJSON())) {
const evt = JSON.parse(line);
if (evt.type === "delta") process.stdout.write(evt.delta);
if (evt.type === "sources") console.log("sources", evt.sources);
if (evt.type === "done") console.log("\nusage", evt.usage);
}
// curl variants — pick the one you need
// 1) Basic
curl -X POST https://www.vortixy.net/api/v1/chat -H "Authorization: Bearer $VORTIXY_API_KEY" -H "Content-Type: application/json" -d '{"message":"Hello"}'
// 2) With web search + high thinking
curl -X POST https://www.vortixy.net/api/v1/chat -H "Authorization: Bearer $VORTIXY_API_KEY" -H "Content-Type: application/json" -d '{"message":"Latest AI news","webSearch":true,"thinkingLevel":"high"}'
// 3) Chatbot persona + streaming (NDJSON)
curl -N -X POST https://www.vortixy.net/api/v1/chat -H "Authorization: Bearer $VORTIXY_API_KEY" -H "Content-Type: application/json" -d '{"message":"Hi","system":"You are Acme bot.","stream":true}'스트리밍은 delta → done(NDJSON, Content-Type: application/x-ndjson)을 전송. webSearch:true이면 웹 검색을 통한 그라운딩 소스도 함께 제공(일일 할당량에 포함).
현재 플랜에서 사용 가능한 모델 목록(플랜 게이트, 할당량 비용 없음). 챗봇의 모델 피커에 활용하세요.
curl https://www.vortixy.net/api/v1/models -H "Authorization: Bearer vtx_live_..."// 200 OK — example for Pro plan (more models on Max, fewer on Free)
{
"plan": "pro",
"defaultModel": "gemini-3.5-flash",
"models": [
{ "id": "gemini-3.5-flash", "label": "Gemini 3.5 Flash", "provider": "gemini", "thinkingLevels": ["none","low","medium","high"] },
{ "id": "gemini-3.5-flash-lite", "label": "Gemini 3.5 Flash Lite", "provider": "gemini", "thinkingLevels": ["none","low","medium","high"] },
{ "id": "gemini-3.1-flash-lite", "label": "Gemini 3.1 Flash Lite", "provider": "gemini", "thinkingLevels": ["none","low","medium","high"] }
]
}Note: gemini-3.8-flash/gemini-3.7-flash/gemini-3.6-flash temporarily paused (effective 3.5+lite) — example shows effective models only.
Free는 Fast 모드만 포함; Go, Pro, Max는 Fast, Smart, Auto 모드를 포함합니다 — 할당량은 플랜에 따라 스케일됩니다(하루 12k/50k/120k/250k 토큰, 5/20/50/100 요청). BYOK 모델은 키가 필요하며 여기에 표시되지 않습니다.
OpenAI, Anthropic, DeepSeek 또는 Gemini 키를 가져오세요. 앱에서 한 번 설정하면 어디서나 사용 가능 — 웹과 API가 동일한 저장된 키와 동일한 일일 할당량을 공유합니다(00:00 UTC 초기화).
BYOK 예시
# 1) Save your provider key once in Vortixy (Dashboard → Settings → AI keys)
# OpenAI sk-..., Anthropic sk-ant-..., DeepSeek sk-..., Gemini AQ./AIza...
# 2) Call the API with the same Vortixy Bearer key, but specify the BYOK provider+model
curl https://www.vortixy.net/api/v1/chat \
-H "Authorization: Bearer vtx_live_..." \
-H "Content-Type: application/json" \
-d '{
"message": "Explain quantum computing with deep reasoning",
"provider": "openai",
"model": "gpt-5.6-terra",
"thinkingLevel": "high",
"stream": false
}'
# Anthropic example
curl https://www.vortixy.net/api/v1/chat \
-H "Authorization: Bearer vtx_live_..." \
-H "Content-Type: application/json" \
-d '{"message":"Write a haiku about the sea","provider":"anthropic","model":"claude-opus-5"}'
# DeepSeek example
curl https://www.vortixy.net/api/v1/chat \
-H "Authorization: Bearer vtx_live_..." \
-H "Content-Type: application/json" \
-d '{"message":"Solve this algorithm","provider":"deepseek","model":"deepseek-v4-pro","thinkingLevel":"high"}'// JS — BYOK via Vortixy API (same quotas, same Bearer key)
const res = await fetch("https://www.vortixy.net/api/v1/chat", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.VORTIXY_API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({
message: "Deep research with my own OpenAI key",
provider: "openai",
model: "gpt-5.6-sol",
thinkingLevel: "xhigh", // xhigh/max only on GPT-5.6 — works via BYOK
webSearch: true,
stream: false
})
});
const data = await res.json();
// data.answer, data.sources, data.usage, data.model키가 없으면 403 byokMissing을 받게 됩니다 — Dashboard에 추가한 후 다시 시도하세요. BYOK 요청도 플랜의 토큰 / 요청 / 검색에 포함됩니다.
BYOK catalog: gpt-5.6-sol / terra / luna (openai), claude-opus-5 / fable-5 / sonnet-5 / haiku-4-5 (anthropic), deepseek-v4-pro / flash (deepseek), gemini-3.8-flash:byok / gemini-3.7-flash:byok / gemini-3.6-flash:byok (gemini). Managed Gemini models stay available without BYOK.
표준 또는 품질 모드로 이미지를 생성합니다. 핌랜의 일일 이미지 한도에서 차감됩니다.
curl https://www.vortixy.net/api/v1/images \
-H "Authorization: Bearer vtx_live_..." \
-H "Content-Type: application/json" \
-d '{"prompt":"a cozy minimalist living room, warm light","quality":"quality"}'{ "image": { "mimeType": "image/png", "base64": "..." }, "remaining": 49 }quality: "standard"(빠름·저비용) 또는 "quality"(고품질). 일일 이미지 할당량에 포함(Free 2/일, Go 8, Pro 30, Max 60).
토큰을 소모하지 않고 현재 요금제와 남은 할당량을 확인하세요.
curl https://www.vortixy.net/api/v1/usage -H "Authorization: Bearer vtx_live_..."{ "plan":"pro","limits":{"aiTokensPerDay":120000,"aiRequestsPerDay":50},"resetsInSeconds": 43200 }webSearch: true를 설정하면 Vortixy가 필요할 때 웹에서 최신 정보를 가져옵니다. 리서치 모드는 복잡한 질문을 병렬 하위 쿼리로 분할하고 출처를 반환합니다.
await fetch("https://www.vortixy.net/api/v1/chat", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.VORTIXY_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ message: "Latest AI breakthroughs with sources", webSearch: true })
});webSearch: false(기본값, 웹 없음) | true(고급 웹 검색, 5개 결과, 인용 소스). true 호출당 일일 웹 검색 할당량에 1회 차감(Free 10/일, Go 25/일, Pro 50/일, Max 100/일).
프로젝트와 예약 작업으로 체계적으로 관리하세요. 대시보드나 채팅에서 관리할 수 있으며, API는 공간, 파일, 작업에 대한 동일한 핌랜 한도를 따릅니다.
예시: 채팅에서 "매주 월요일 오전 9시에 이번 주를 요약하도록 알려줘"라고 말하면 — Vortixy가 대시보드에서 확인할 수 있는 예약 작업을 생성합니다.
Guarda conversaciones en Vortixy para no reenviar el historial cada vez. Mismo límite que tu plan (Free 30, Go 100, Pro 300, Max 400).
GET /api/v1/chats # lista tus chats
POST /api/v1/chats # {title} -> crea uno
GET /api/v1/chats/:id # detalle
PATCH /api/v1/chats/:id # {title} renombra
DELETE /api/v1/chats/:id
GET /api/v1/chats/:id/messages?limit=50
POST /api/v1/chats/:id/messages # {role, content}// POST /api/v1/chats
{ "title": "Mi proyecto Tesis" }
// -> { "chat": { "id": "uuid", "title": "Mi proyecto Tesis" } }
// POST /api/v1/chats/uuid/messages
{ "role": "user", "content": "Hola" }Sube PDFs, Word, texto o imágenes (20 MiB) para usarlos luego en el chat. Cuenta como artefacto diario (Free 3/día, Go 10/día, Pro 25/día, Max 60/día).
curl https://www.vortixy.net/api/v1/files \
-H "Authorization: Bearer vtx_live_..." -F file=@tarea.pdf
# JSON alternativo
curl -X POST https://www.vortixy.net/api/v1/files \
-H "Authorization: Bearer vtx_live_..." -H "Content-Type: application/json" \
-d '{"name":"tarea.pdf","mimeType":"application/pdf","base64":"..."}'GET /api/v1/files?limit=20 -> { "files": [{ "id": "...", "name": "tarea.pdf" }] }Crea espacios con instrucciones fijas. Límites Free 1 / Go 3 / Pro 8 / Max 15.
GET /api/v1/projects
POST /api/v1/projects # {title, subject, instructions}
GET /api/v1/projects/:id
PATCH /api/v1/projects/:id
DELETE /api/v1/projects/:idGenera flashcards o quiz desde un texto (Free 2/día, Go 5/día, Pro 12/día, Max 20/día). Luego puedes exportar a Anki.
curl https://www.vortixy.net/api/v1/study/generate \
-H "Authorization: Bearer vtx_live_..." -H "Content-Type: application/json" \
-d '{"content":"texto largo de apuntes...","kind":"flashcards","count":10}'{ "kind": "flashcards", "items": [{ "front": "¿Qué es...?", "back": "Es..." }] }Mismo chat pero con formato OpenAI: {messages:[{role,content}]}. Ideal para usar cualquier SDK de OpenAI cambiando solo la URL base a https://www.vortixy.net/api/v1.
// OpenAI SDK
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://www.vortixy.net/api/v1",
apiKey: process.env.VORTIXY_API_KEY
});
const res = await client.chat.completions.create({
model: "gemini-3.5-flash",
messages: [{role:"user", content:"Hola"}]
});
console.log(res.choices[0].message.content);curl https://www.vortixy.net/api/v1/chat/completions \
-H "Authorization: Bearer vtx_live_..." -H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"Hola"}],"stream":false}'Vortixy expone un espejo 100% compatible con el formato de OpenAI Chat Completions (2026). Cambia solo baseURL y tu apiKey — el mismo código funciona con el SDK oficial de OpenAI, Vercel AI SDK, LangChain o cualquier cliente compatible. Streaming usa SSE estándar data: {...} + data: [DONE] (como OpenAI 2026). Las mismas cuotas del plan (tokens/requests/búsquedas) se comparten con /api/v1/chat.
// OpenAI JS SDK — sin cambiar lógica
import OpenAI from "openai";
const vortixy = new OpenAI({
baseURL: "https://www.vortixy.net/api/v1",
apiKey: process.env.VORTIXY_API_KEY, // vtx_live_...
});
const res = await vortixy.chat.completions.create({
model: "gemini-3.5-flash",
messages: [
{ role: "system", content: "Eres un tutor amable." },
{ role: "user", content: "Explícame fotosíntesis en 3 bullets" }
],
stream: false,
// web_search / webSearch también soportado (alias):
// web_search: true
});
console.log(res.choices[0].message.content);
// res.usage => { prompt_tokens, completion_tokens, total_tokens }
// res.sources => [{title, url}] si webSearch:true
// Streaming SSE (igual que OpenAI 2026)
const stream = await vortixy.chat.completions.create({
model: "gemini-3.5-flash",
messages: [{ role: "user", content: "Hola" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}// Vercel AI SDK (2026)
import { createOpenAI } from "@ai-sdk/openai";
const vortixy = createOpenAI({
baseURL: "https://www.vortixy.net/api/v1",
apiKey: process.env.VORTIXY_API_KEY,
});
const { text } = await generateText({
model: vortixy("gemini-3.5-flash"),
prompt: "Resume este PDF en 5 puntos",
});curl https://www.vortixy.net/api/v1/chat/completions \
-H "Authorization: Bearer vtx_live_..." -H "Content-Type: application/json" \
-d '{
"model": "gemini-3.5-flash",
"messages": [{"role":"user","content":"Hola"}],
"stream": false
}'
# con búsqueda web (alias 2026 tolerante):
# "web_search": true o "webSearch": true -> grounding Tavily + sources[]
# Python
# from openai import OpenAI
# client = OpenAI(base_url="https://www.vortixy.net/api/v1", api_key="vtx_live_...")
# res = client.chat.completions.create(model="gemini-3.5-flash", messages=[{"role":"user","content":"Hola"}])Nota 2026: formato idéntico a OpenAI — id: chatcmpl-..., object: chat.completion, choices[0].message, usage y streaming data: {choices: [{delta: {content: "..."}}]} + data: [DONE]. Envelope SSE estándar (OpenAI-compatible). 401 sin Bearer, 429 con Retry-After/RateLimit-*.
Recibe avisos en tu servidor cuando algo pasa. Máx 5 por cuenta.
GET /api/v1/webhooks # lista
POST /api/v1/webhooks # {url, events:["chat.completed","task.completed","quota.warning"]}
DELETE /api/v1/webhooks?id=uuidSpec completo en GET /api/v1/openapi para importar en Postman, Insomnia o generar SDK.
curl https://www.vortixy.net/api/v1/openapi모든 오류는 RFC 9457을 따르며 현지화된 메시지를 반환합니다. 프로그래밍 처리를 위해 code 필드를 확인하세요.
{ "error": "You reached the daily quota. Try again after 2h.", "code": "quotaExceeded", "retryAfter": 7200 }| Status | Code | When |
|---|---|---|
| 400 | validation | 잘못된 JSON 또는 범위 밖 필드 |
| 401 | apiKeyInvalid | 없거나 유효하지 않은 Bearer 키 |
| 403 | planRequired | 플랜에서 허용되지 않은 모델 |
| 403 | byokMissing | 이 제공업체의 BYOK 키가 없습니다 — Dashboard → 설정 → AI 키에서 저장하세요 |
| 429 | quotaExceeded | 일일 토큰 / 요청 / 검색 한도 도달 |
| 502 | aiEngineFailed | 업스트림 모델 오류 |
헤더: RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, Retry-After, WWW-Authenticate on 401.
복사·붙여넣기 후 실행하세요. Node 18+에는 fetch가 이미 포함되어 있습니다.
// Node 18+ — no install needed
const res = await fetch("https://www.vortixy.net/api/v1/chat", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.VORTIXY_API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify({
message: "Turn these notes into a plan: ...",
system: "You are a concise assistant.",
thinkingLevel: "medium",
webSearch: false,
stream: false
})
});
const data = await res.json();
console.log(data.answer);
// Streaming chatbot
const streamRes = await fetch("https://www.vortixy.net/api/v1/chat", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.VORTIXY_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ message: "Hello!", stream: true })
});
for await (const chunk of streamRes.body) {
// parse NDJSON lines: {type:"delta", delta:"..."} -> {type:"done", answer:"..."}
}
// Image
const imgRes = await fetch("https://www.vortixy.net/api/v1/images", {
method: "POST",
headers: { Authorization: "Bearer " + process.env.VORTIXY_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ prompt: "minimalist logo for Vortixy", quality: "quality" })
});
const { image } = await imgRes.json();
// image.base64 -> save as PNG
// Python — same API
// import requests
// r = requests.post("https://www.vortixy.net/api/v1/chat",
// headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"},
// json={"message": "Hello!", "thinkingLevel": "high", "webSearch": True})
// print(r.json()["answer"])