{"openapi":"3.1.0","info":{"title":"CSolar Agent API","version":"1.0.0","description":"Orçamentos de energia solar para agentes de IA. Fluxo: estimate → register → draft → confirm."},"servers":[{"url":"https://csolar.com.br"}],"components":{"securitySchemes":{"agentKey":{"type":"http","scheme":"bearer","description":"Chave agk_ obtida em /api/agent/register"}}},"paths":{"/api/agent/estimate":{"post":{"summary":"Estimativa rápida sem chave (não persiste nada)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"consumo_kwh_mes":{"type":"number","description":"Consumo mensal em kWh (ou informe valor_conta_mes)"},"valor_conta_mes":{"type":"number","description":"Valor mensal da conta de luz em R$"},"cidade":{"type":"string"}},"required":[]}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Dados inválidos"},"401":{"description":"Chave ausente/inválida"},"429":{"description":"Limite atingido"},"503":{"description":"Agent API pausada"}}}},"/api/agent/register":{"post":{"summary":"Registra o agente e emite chave temporária","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agent_name":{"type":"string"},"platform":{"type":"string"},"customer_email":{"type":"string","format":"email","description":"E-mail do cliente humano representado"},"consent":{"type":"boolean","description":"Deve ser true: cliente autorizou o orçamento"}},"required":["agent_name","customer_email","consent"]}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Dados inválidos"},"401":{"description":"Chave ausente/inválida"},"429":{"description":"Limite atingido"},"503":{"description":"Agent API pausada"}}}},"/api/agent/quotes/draft":{"post":{"summary":"Cria rascunho e devolve eco estruturado + draft_id","security":[{"agentKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nome_completo":{"type":"string"},"email":{"type":"string"},"telefone":{"type":"string"},"cidade":{"type":"string"},"consumo":{"type":"number","description":"kWh/mês"},"tipo_telhado":{"type":"string"},"observacoes":{"type":"string"}},"required":["nome_completo","consumo"]}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Dados inválidos"},"401":{"description":"Chave ausente/inválida"},"429":{"description":"Limite atingido"},"503":{"description":"Agent API pausada"}}}},"/api/agent/quotes/{draftId}/confirm":{"post":{"summary":"Confirma o rascunho e cria o orçamento real (consome 1 da cota)","security":[{"agentKey":[]}],"parameters":[{"name":"draftId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Orçamento criado"}}}},"/api/agent/quotes/{draftId}":{"get":{"summary":"Status/resultado do orçamento","security":[{"agentKey":[]}],"parameters":[{"name":"draftId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}},"/api/agent/quotes/{draftId}/handoff":{"post":{"summary":"Cliente quer falar com humano da CSolar","security":[{"agentKey":[]}],"parameters":[{"name":"draftId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"}}}}}}