{"openapi":"3.1.0","info":{"title":"Clickmixhub Public API","version":"1.0.0","description":"API pública do Clickmixhub para integrações externas, contatos, conversas, canais e webhooks."},"servers":[{"url":"https://api.clickmixhub.com/v1","description":"Produção"},{"url":"https://clickmixhub.com/api/public/v1","description":"Rota direta no domínio principal"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key"}},"schemas":{"Error":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"}}},"Contact":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"identifier":{"type":["string","null"]},"phone_number":{"type":["string","null"]},"email":{"type":["string","null"]},"avatar_url":{"type":["string","null"]},"custom_attributes":{"type":"object"},"tags":{"type":"array","items":{"type":"string"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}}}},"paths":{"/account":{"get":{"summary":"Dados da conta autenticada","responses":{"200":{"description":"Conta retornada com sucesso"},"401":{"description":"Chave inválida"}}}},"/contacts":{"get":{"summary":"Lista contatos","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":100}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Lista de contatos"}}},"post":{"summary":"Cria contato","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"identifier":{"type":"string"},"phone_number":{"type":"string"},"email":{"type":"string","format":"email"},"avatar_url":{"type":"string","format":"uri"},"custom_attributes":{"type":"object"},"tags":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"201":{"description":"Contato criado"},"400":{"description":"Payload inválido"}}}},"/contacts/{id}":{"get":{"summary":"Busca contato por ID","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Contato encontrado"},"404":{"description":"Contato não encontrado"}}}},"/inboxes":{"get":{"summary":"Lista canais/inboxes","responses":{"200":{"description":"Lista de canais"}}}},"/conversations":{"get":{"summary":"Lista conversas","parameters":[{"name":"status","in":"query","schema":{"type":"string","enum":["open","resolved","pending"]}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":100}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Lista de conversas"}}}},"/conversations/{id}/messages":{"get":{"summary":"Lista mensagens de uma conversa","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":100}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Lista de mensagens"}}}},"/webhooks":{"get":{"summary":"Lista webhooks configurados","responses":{"200":{"description":"Lista de webhooks"}}}}}}