{"openapi":"3.1.0","info":{"title":"IA-ULTIMATE API","version":"1.0.0","description":"API para agentes autônomos (OpenClaw, CyberStrike, LangChain, AutoGen, n8n).\n\nModelo: Gemma4 puro com loop ReAct. Ferramentas: web_search, http_request, fetch_url, read_file, write_file, list_dir, run_shell, remember_fact, recall_fact, spawn_agent, create_tool, sys_info, search_files, process_list, nmap_scan, http_probe.\n\n**Autenticação:** envie a chave em `Authorization: Bearer <key>` ou no header `x-api-key`."},"servers":[{"url":"http://localhost:8787","description":"local"},{"url":"/","description":"este servidor"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Chave de API (iau_...)"},"apiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"ChatMessage":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant","tool"]},"content":{"type":"string"}},"required":["role","content"]},"ChatRequest":{"type":"object","properties":{"messages":{"type":"array","items":{"$ref":"#/components/schemas/ChatMessage"}},"stream":{"type":"boolean","default":false,"description":"Resposta em SSE"},"agentic":{"type":"boolean","default":false,"description":"Executa o loop ReAct com ferramentas"},"planned":{"type":"boolean","default":false,"description":"Decompõe o objetivo e executa passo a passo"},"session_id":{"type":"string","description":"Isola a conversa/memória"},"system":{"type":"string","description":"System prompt customizado"},"tools":{"type":"array","description":"Ferramentas no formato OpenAI (function calling). O gateway traduz para ReAct.","items":{"type":"object"}}},"required":["messages"]},"AgentRequest":{"type":"object","properties":{"input":{"type":"string","description":"Objetivo em linguagem natural"},"session_id":{"type":"string"},"plan":{"type":"boolean","default":false},"include_steps":{"type":"boolean","default":true},"system":{"type":"string"}},"required":["input"]},"ToolRequest":{"type":"object","properties":{"name":{"type":"string","description":"Nome da ferramenta"},"args":{"type":"object","description":"Argumentos"},"session_id":{"type":"string"}},"required":["name"]},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"type":{"type":"string"}}}}}}},"paths":{"/health":{"get":{"tags":["Sistema"],"summary":"Healthcheck (sem auth)","security":[],"responses":{"200":{"description":"Status do serviço"}}}},"/v1/models":{"get":{"tags":["Sistema"],"summary":"Lista modelos (compat OpenAI)","responses":{"200":{"description":"OK"}}}},"/v1/tools":{"get":{"tags":["Ferramentas"],"summary":"Catálogo de ferramentas","responses":{"200":{"description":"Lista + descrição textual","content":{"application/json":{"example":{"protocol":"react-prompt","tools":[{"type":"function","function":{"name":"run_shell"}}]}}}}}}},"/v1/chat/completions":{"post":{"tags":["Chat"],"summary":"Chat OpenAI-compatible (streaming + tool calling)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatRequest"}}}},"responses":{"200":{"description":"Resposta (JSON ou SSE quando stream=true)"},"401":{"description":"Chave ausente/inválida","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Créditos insuficientes"}}}},"/v1/agent":{"post":{"tags":["Agente"],"summary":"Loop ReAct completo (executa ferramentas sozinho)","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRequest"},"example":{"input":"Enumere os serviços na porta 443 de example.com","session_id":"op1"}}}},"responses":{"200":{"description":"output + steps + iterations"}}}},"/v1/tool":{"post":{"tags":["Ferramentas"],"summary":"Execução direta de uma ferramenta","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolRequest"},"example":{"name":"run_shell","args":{"command":"id; uname -a"}}}}},"responses":{"200":{"description":"{ tool, result }"},"404":{"description":"Ferramenta desconhecida"}}}},"/v1/usage":{"get":{"tags":["Conta"],"summary":"Uso da própria chave","responses":{"200":{"description":"créditos + estatísticas + eventos"}}}},"/v1/sessions/reset":{"post":{"tags":["Conta"],"summary":"Limpa a sessão","responses":{"200":{"description":"OK"}}}},"/api/admin/keys":{"get":{"tags":["Admin"],"summary":"Lista chaves","responses":{"200":{"description":"OK"}}},"post":{"tags":["Admin"],"summary":"Cria chave","requestBody":{"content":{"application/json":{"example":{"label":"openclaw-prod","credits":100000,"note":"agente"}}}},"responses":{"201":{"description":"Chave criada"}}}},"/api/admin/keys/{key}":{"patch":{"tags":["Admin"],"summary":"Atualiza chave (créditos, label, expires_at)","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}},"delete":{"tags":["Admin"],"summary":"Exclui chave","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/api/admin/keys/{key}/revoke":{"post":{"tags":["Admin"],"summary":"Revoga chave","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/api/admin/stats":{"get":{"tags":["Admin"],"summary":"Estatísticas globais + série horária","responses":{"200":{"description":"OK"}}}},"/api/admin/usage":{"get":{"tags":["Admin"],"summary":"Eventos de uso","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":100}},{"name":"key","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}}},"tags":[{"name":"Sistema"},{"name":"Chat"},{"name":"Agente"},{"name":"Ferramentas"},{"name":"Conta"},{"name":"Admin"}]}