{"info":{"_postman_id":"407e47e9-45bb-4378-b922-5fc446cff428","name":"API para Integração de Parceiros","description":"<html><head></head><body><p>A <strong>API de Parceiros do Bradial Chat</strong> permite que empresas e desenvolvedores integrem seus sistemas diretamente ao nosso ecossistema de comunicação. Com essa API, você pode automatizar interações, gerenciar conversas e enviar mensagens em tempo real, melhorarando a experiência do seu atendimento.</p>\n<p>🔗 <strong>Entre em contato com um dos nossos consultores para mais informações e acesso à API!</strong></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"36820202","collectionId":"407e47e9-45bb-4378-b922-5fc446cff428","publishedId":"2sAYk8uNVx","public":true,"customColor":{"top-bar":"3087E9","right-sidebar":"303030","highlight":"3087E9"},"publishDate":"2026-04-15T14:50:08.000Z"},"item":[{"name":"Chat","item":[{"name":"Campanhas","item":[{"name":"Contatos","item":[{"name":"Listar contatos","id":"3b9d64c7-1725-83ed-7f3e-12f3bf796cd2","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId/contacts","description":"<p>Lista os contatos de uma campanha, com status de envio, entrega e respostas, uma página por vez (<code>cursor</code>).</p>\n<p><strong>Filtros.</strong> <code>deliveryFilter</code> · <code>repliedButton</code> (quem tocou no botão) · <code>reply=free</code> (quem respondeu citando a mensagem, sem tocar em botão). <code>repliedButton</code> e <code>reply</code> não podem ir juntos.</p>\n<p><strong>Status do contato.</strong> <code>0</code> agendado · <code>1</code> em andamento · <code>2</code> enviado · <code>3</code> erro · <code>4</code> bloqueado pelo limite de envio.</p>\n<p><strong>Entrega.</strong> <code>1</code> entregue · <code>2</code> lida · <code>3</code> falhou.</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId","contacts"],"host":["https://api.bradial.com.br"],"query":[{"disabled":true,"description":{"content":"<p>Opcional: delivered (entregues), not_delivered (não entregues), read (lidas), scheduled (aguardando) ou blocked (bloqueados pelo limite de envio).</p>\n","type":"text/plain"},"key":"deliveryFilter","value":"read"},{"disabled":true,"description":{"content":"<p>Opcional: quem tocou neste botão de resposta rápida (texto exato do botão, até 64 caracteres). Não combina com reply.</p>\n","type":"text/plain"},"key":"repliedButton","value":"Confirmar"},{"disabled":true,"description":{"content":"<p>Opcional: free traz quem respondeu citando a mensagem da campanha sem tocar em um botão (Outros). Não combina com repliedButton.</p>\n","type":"text/plain"},"key":"reply","value":"free"},{"disabled":true,"description":{"content":"<p>Opcional. O nextCursor da página anterior.</p>\n","type":"text/plain"},"key":"cursor","value":""}],"variable":[{"type":"any","key":"campaignId"}]}},"response":[{"id":"110aef43-dc21-2d02-740d-d36fcbe42abf","name":"200 — todos os contatos","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6JYAYCZ0K8T2B6WQH3RNE4D/contacts"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"Mariana Albuquerque\",\n            \"phone\": \"+5511987650001\",\n            \"isGroup\": false,\n            \"status\": 2,\n            \"deliveryStatus\": 2,\n            \"repliedButtons\": [\"Quero o cupom\"],\n            \"firstRepliedAt\": \"2026-11-27T12:07:44.210Z\",\n            \"freeRepliedAt\": null,\n            \"error\": null,\n            \"sentAt\": \"2026-11-27T12:00:18.532Z\",\n            \"variables\": null\n        },\n        {\n            \"name\": \"João Pedro Ramos\",\n            \"phone\": \"+5531991230002\",\n            \"isGroup\": false,\n            \"status\": 2,\n            \"deliveryStatus\": 2,\n            \"repliedButtons\": [],\n            \"firstRepliedAt\": \"2026-11-27T12:22:05.917Z\",\n            \"freeRepliedAt\": \"2026-11-27T12:22:05.917Z\",\n            \"error\": null,\n            \"sentAt\": \"2026-11-27T12:00:18.740Z\",\n            \"variables\": null\n        },\n        {\n            \"name\": \"Ana Beatriz Lima\",\n            \"phone\": \"+5521998760003\",\n            \"isGroup\": false,\n            \"status\": 3,\n            \"deliveryStatus\": 3,\n            \"repliedButtons\": [],\n            \"firstRepliedAt\": null,\n            \"freeRepliedAt\": null,\n            \"error\": \"131049\",\n            \"sentAt\": \"2026-11-27T12:00:19.104Z\",\n            \"variables\": null\n        }\n    ],\n    \"items\": 3,\n    \"nextCursor\": \"eyJjYW1wYWlnbl9pZCI6IjAxTTZKWUFZQ1owSzhUMkI2V1FIM1JORTREIiwicGhvbmUiOiIrNTUyMTk5ODc2MDAwMyJ9\"\n}"},{"id":"de5bedb7-ca4e-856f-0223-5262c27b6ffc","name":"200 — quem tocou em um botão","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/campaigns/01M6JYAYCZ0K8T2B6WQH3RNE4D/contacts?repliedButton=Quero o cupom","host":["https://api.bradial.com.br"],"path":["chat","v1","campaigns","01M6JYAYCZ0K8T2B6WQH3RNE4D","contacts"],"query":[{"key":"repliedButton","value":"Quero o cupom"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"Mariana Albuquerque\",\n            \"phone\": \"+5511987650001\",\n            \"isGroup\": false,\n            \"status\": 2,\n            \"deliveryStatus\": 2,\n            \"repliedButtons\": [\"Quero o cupom\"],\n            \"firstRepliedAt\": \"2026-11-27T12:07:44.210Z\",\n            \"freeRepliedAt\": null,\n            \"error\": null,\n            \"sentAt\": \"2026-11-27T12:00:18.532Z\",\n            \"variables\": null\n        }\n    ],\n    \"items\": 1,\n    \"nextCursor\": null\n}"},{"id":"ee1ffb49-29cc-1f5d-4b80-61eeae062359","name":"200 — quem respondeu citando a mensagem","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/campaigns/01M6JYAYCZ0K8T2B6WQH3RNE4D/contacts?reply=free","host":["https://api.bradial.com.br"],"path":["chat","v1","campaigns","01M6JYAYCZ0K8T2B6WQH3RNE4D","contacts"],"query":[{"key":"reply","value":"free"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"João Pedro Ramos\",\n            \"phone\": \"+5531991230002\",\n            \"isGroup\": false,\n            \"status\": 2,\n            \"deliveryStatus\": 2,\n            \"repliedButtons\": [],\n            \"firstRepliedAt\": \"2026-11-27T12:22:05.917Z\",\n            \"freeRepliedAt\": \"2026-11-27T12:22:05.917Z\",\n            \"error\": null,\n            \"sentAt\": \"2026-11-27T12:00:18.740Z\",\n            \"variables\": null\n        }\n    ],\n    \"items\": 1,\n    \"nextCursor\": null\n}"},{"id":"413911ce-0775-087b-9c20-0df50e9dddeb","name":"400 — dois filtros de resposta juntos","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/campaigns/01M6JYAYCZ0K8T2B6WQH3RNE4D/contacts?repliedButton=Quero o cupom&reply=free","host":["https://api.bradial.com.br"],"path":["chat","v1","campaigns","01M6JYAYCZ0K8T2B6WQH3RNE4D","contacts"],"query":[{"key":"repliedButton","value":"Quero o cupom"},{"key":"reply","value":"free"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"This audience batch is not valid.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP006\",\n        \"message\": \"This audience batch is not valid.\",\n        \"reason\": \"When a batch has more than 100 rows or contact ids, no row with a valid phone, a contact id outside the account or with no number to send to, a label outside the account, or an API key sends the labels shape. A label audience, its preview or the contact picker naming a label id the account does not have answers it too, and so does a contact list filtered by reply=free and by a replied button at once.\"\n    }\n}"}],"_postman_id":"3b9d64c7-1725-83ed-7f3e-12f3bf796cd2"},{"name":"Estatísticas","id":"8f65bfaa-5b65-e050-e86b-aef84d39fc9c","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId/contacts/stats","description":"<p>Relatório da campanha: totais por status e por entrega, envios por hora (UTC), respostas por botão (<code>byButton</code>) e respostas que citam a mensagem sem tocar em botão (<code>freeReplied</code>).</p>\n<p><code>replied</code> soma as duas formas de resposta. <code>limit</code> é o limite de contatos da conta para a campanha; <code>null</code> significa sem limite ou indisponível no momento.</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId","contacts","stats"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"campaignId"}]}},"response":[{"id":"7d38cea0-a7bf-b180-b0f5-57d0d0ab709f","name":"200 — WhatsApp - API Oficial, template com botões","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6JYAYCZ0K8T2B6WQH3RNE4D/contacts/stats"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"total\": 1240,\n        \"byStatus\": { \"0\": 0, \"1\": 12, \"2\": 1180, \"3\": 31, \"4\": 17 },\n        \"byDeliveryStatus\": { \"1\": 402, \"2\": 731, \"3\": 31 },\n        \"byHour\": {\n            \"2026-11-27T12:00:00.000Z\": { \"sent\": 1012, \"delivered\": 948, \"read\": 512 },\n            \"2026-11-27T13:00:00.000Z\": { \"sent\": 168, \"delivered\": 185, \"read\": 219 }\n        },\n        \"replied\": 214,\n        \"freeReplied\": 58,\n        \"byButton\": [\n            { \"label\": \"Quero o cupom\", \"count\": 131 },\n            { \"label\": \"Não tenho interesse\", \"count\": 25 }\n        ],\n        \"limit\": 1000\n    }\n}"},{"id":"f159a5a8-de8a-e833-f3d1-4ebac1e8ad06","name":"200 — WhatsApp - API Web","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y/contacts/stats"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"total\": 320,\n        \"byStatus\": { \"0\": 0, \"1\": 0, \"2\": 316, \"3\": 4 },\n        \"byDeliveryStatus\": { \"1\": 118, \"2\": 194, \"3\": 4 },\n        \"byHour\": {\n            \"2026-11-10T13:00:00.000Z\": { \"sent\": 320, \"delivered\": 312, \"read\": 194 }\n        },\n        \"replied\": 41,\n        \"freeReplied\": 41,\n        \"byButton\": [],\n        \"limit\": null\n    }\n}"}],"_postman_id":"8f65bfaa-5b65-e050-e86b-aef84d39fc9c"},{"name":"Adicionar contatos (ids)","id":"a1aca0e6-adcb-5995-e77e-7d9225f643f5","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"contactIds\": [5501, 5502, 5503]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId/contacts","description":"<p>Adiciona contatos da conta a uma campanha agendada criada com <code>\"source\": \"manual\"</code>. Até 100 ids por chamada; para mais, envie em lotes. Repetir um contato não o duplica.</p>\n<p><strong>Limite.</strong> 600 requisições por minuto.</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId","contacts"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"campaignId"}]}},"response":[{"id":"8bdbd10e-f939-fa26-cc7d-d87a71efc1f9","name":"200 — contatos adicionados","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"contactIds\": [5501, 5502, 5503]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y/contacts"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"sent\": 3,\n        \"nextAfter\": null\n    }\n}"},{"id":"80a10eb7-5c31-2d3a-7ec5-140c0f0542bc","name":"400 — contato de outra conta","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"contactIds\": [5501, 990001]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y/contacts"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"This audience batch is not valid.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP006\",\n        \"message\": \"This audience batch is not valid.\",\n        \"reason\": \"When a batch has more than 100 rows or contact ids, no row with a valid phone, a contact id outside the account or with no number to send to, a label outside the account, or an API key sends the labels shape. A label audience, its preview or the contact picker naming a label id the account does not have answers it too, and so does a contact list filtered by reply=free and by a replied button at once.\"\n    }\n}"},{"id":"9b05e731-48c1-925e-5f51-f2445c0e48e9","name":"400 — campanha de planilha","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"contactIds\": [5501, 5502]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6PE1JF235X04Y5G8NN3T8SP/contacts"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The audience does not match how this campaign was created.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP012\",\n        \"message\": \"The audience does not match how this campaign was created.\",\n        \"reason\": \"When labels or contact ids are sent to a campaign created from a spreadsheet, rows to one created from labels, or more than one shape in one request. A spreadsheet campaign takes no contact from another source.\"\n    }\n}"}],"_postman_id":"a1aca0e6-adcb-5995-e77e-7d9225f643f5"},{"name":"Adicionar contatos (planilha)","id":"e2bc3796-e12d-1fd6-56b5-11affa921e07","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"rows\": [\n        { \"phone\": \"+5511987654321\", \"name\": \"Maria Souza\", \"columns\": { \"cidade\": \"São Paulo\", \"valor\": \"R$ 120,00\" } },\n        { \"phone\": \"+5521998765432\", \"columns\": { \"cidade\": \"Rio\" } }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId/contacts","description":"<p>Adiciona linhas a uma campanha agendada criada com <code>\"source\": \"import\"</code>, mesmo que os números ainda não sejam contatos da conta. Até 100 linhas por chamada.</p>\n<p><code>phone</code> vai com o código do país. <code>columns</code> (até 20) alimentam as variáveis <code>{{import.&lt;coluna&gt;}}</code>. Números repetidos são descartados, e reenviar um lote não duplica contatos.</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId","contacts"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"campaignId"}]}},"response":[{"id":"ca01e732-50e6-5dc7-457f-e1ca68f6ebab","name":"200 — linhas adicionadas","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"rows\": [\n        { \"phone\": \"+5511987654321\", \"name\": \"Maria Souza\", \"columns\": { \"valor\": \"R$ 120,00\", \"vencimento\": \"15/11\" } },\n        { \"phone\": \"+5521998765432\", \"name\": \"Carlos Lima\", \"columns\": { \"valor\": \"R$ 89,90\", \"vencimento\": \"20/11\" } }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6PE1JF235X04Y5G8NN3T8SP/contacts"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"sent\": 2,\n        \"nextAfter\": null\n    }\n}"},{"id":"35067d55-617a-c366-948a-dc2a2c8d2fc5","name":"400 — nenhuma linha com número válido","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"rows\": [\n        { \"phone\": \"sem telefone\", \"name\": \"Maria Souza\" }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6PE1JF235X04Y5G8NN3T8SP/contacts"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"This audience batch is not valid.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP006\",\n        \"message\": \"This audience batch is not valid.\",\n        \"reason\": \"When a batch has more than 100 rows or contact ids, no row with a valid phone, a contact id outside the account or with no number to send to, a label outside the account, or an API key sends the labels shape. A label audience, its preview or the contact picker naming a label id the account does not have answers it too, and so does a contact list filtered by reply=free and by a replied button at once.\"\n    }\n}"}],"_postman_id":"e2bc3796-e12d-1fd6-56b5-11affa921e07"},{"name":"Remover contato","id":"49274a37-34e3-510a-2f5d-203cecf40bec","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId/contacts/:phone","description":"<p>Remove um contato de uma campanha agendada. <code>:phone</code> é o telefone como aparece em <strong>Listar contatos</strong>, codificado para URL (<code>+</code> vira <code>%2B</code>).</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId","contacts",":phone"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"campaignId"},{"type":"any","key":"phone"}]}},"response":[{"id":"92357098-b069-8497-8fd4-08caad9e79c6","name":"204 — contato removido","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y/contacts/%2B5511987650001"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"8dacdc51-d4ea-1e6a-d787-ed483a468806","name":"404 — contato não está na campanha","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y/contacts/%2B5511900000000"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"This contact is not in the campaign.\",\n    \"statusCode\": 404,\n    \"error\": {\n        \"code\": \"CAMP015\",\n        \"message\": \"This contact is not in the campaign.\",\n        \"reason\": \"When campaign-api answered 404 on removing a contact, usually because it was already removed. campaign-api answers the same 404 when the campaign is gone, so a client counts either as removed and reloads. The phone is taken as stored, legacy punctuation included; one that no stored phone can be (empty, past 255 characters, a slash or a backslash, a control character, exactly . or .., or a value that does not decode) answers it before any upstream call.\",\n        \"metadata\": { \"status\": 404 }\n    }\n}"}],"_postman_id":"49274a37-34e3-510a-2f5d-203cecf40bec"}],"id":"514160bd-7b81-4997-ac66-dea934615b3f","_postman_id":"514160bd-7b81-4997-ac66-dea934615b3f","description":""},{"name":"Recorrências","item":[{"name":"Listar recorrências","id":"b5afe247-019d-4e5f-6255-1b7195a1fcba","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/recurrences","description":"<p>Lista as recorrências da conta, ou seja, as campanhas criadas com <code>recurrence</code>.</p>\n<p><strong>Status.</strong> <code>active</code> (tem envios pela frente) · <code>finished</code> (todas as ocorrências saíram) · <code>ended</code> (encerrada antes do fim).</p>\n","urlObject":{"path":["chat","v1","campaigns","recurrences"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"307a245a-6b27-57a7-899a-0074ad52a66b","name":"200 — recorrências da conta","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/recurrences"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"01M6HC4R6Y5B1M8Q2J7D3P9XKE\",\n            \"name\": \"Lembrete de boleto\",\n            \"status\": \"active\",\n            \"channel\": \"Bradial\",\n            \"inbox\": { \"id\": 12, \"name\": \"Comercial SP\", \"channelType\": \"Channel::Bradial\" },\n            \"creator\": { \"apiKey\": true },\n            \"templateName\": null,\n            \"rule\": { \"frequency\": \"weekly\", \"interval\": 1, \"startsAt\": \"2026-11-04T12:00:00.000Z\" },\n            \"total\": 4,\n            \"done\": 1,\n            \"remaining\": 3,\n            \"nextAt\": \"2026-11-11T12:00:00.000Z\",\n            \"endsAt\": \"2026-11-25T12:00:00.000Z\",\n            \"endedAt\": null,\n            \"createdAt\": \"2026-11-01T10:20:44.107Z\"\n        },\n        {\n            \"id\": \"01M6RAYJX4V5EM4HVA8J38BQR5\",\n            \"name\": \"Pesquisa de satisfação\",\n            \"status\": \"ended\",\n            \"channel\": \"Whatsapp\",\n            \"inbox\": { \"id\": 34, \"name\": \"WhatsApp Oficial Loja\", \"channelType\": \"Channel::Whatsapp\" },\n            \"creator\": { \"id\": 87, \"name\": \"Mariana Costa\" },\n            \"templateName\": \"pesquisa_satisfacao\",\n            \"rule\": { \"frequency\": \"monthly\", \"interval\": 1, \"startsAt\": \"2026-08-05T13:00:00.000Z\" },\n            \"total\": 6,\n            \"done\": 3,\n            \"remaining\": 0,\n            \"nextAt\": null,\n            \"endsAt\": \"2027-01-05T13:00:00.000Z\",\n            \"endedAt\": \"2026-10-20T16:24:13.508Z\",\n            \"createdAt\": \"2026-08-01T11:47:20.612Z\"\n        }\n    ],\n    \"items\": 2\n}"}],"_postman_id":"b5afe247-019d-4e5f-6255-1b7195a1fcba"},{"name":"Obter recorrência","id":"dd4ceb99-554a-2d84-ed3e-c5dd67934af8","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/recurrences/:recurrenceId","description":"<p>Retorna uma recorrência com todas as ocorrências. Cada ocorrência é uma campanha comum, que pode ser lida em <strong>Obter campanha</strong>.</p>\n<p>O id da recorrência vem em <code>recurrenceId</code> em cada campanha dela.</p>\n","urlObject":{"path":["chat","v1","campaigns","recurrences",":recurrenceId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"recurrenceId"}]}},"response":[{"id":"88d227c5-569f-21be-7b28-31cbd92f1985","name":"200 — recorrência com ocorrências","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/recurrences/01M6HC4R6Y5B1M8Q2J7D3P9XKE"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01M6HC4R6Y5B1M8Q2J7D3P9XKE\",\n        \"name\": \"Lembrete de boleto\",\n        \"status\": \"active\",\n        \"channel\": \"Bradial\",\n        \"inbox\": { \"id\": 12, \"name\": \"Comercial SP\", \"channelType\": \"Channel::Bradial\" },\n        \"creator\": { \"apiKey\": true },\n        \"templateName\": null,\n        \"rule\": { \"frequency\": \"weekly\", \"interval\": 1, \"startsAt\": \"2026-11-04T12:00:00.000Z\" },\n        \"total\": 4,\n        \"done\": 1,\n        \"remaining\": 3,\n        \"nextAt\": \"2026-11-11T12:00:00.000Z\",\n        \"endsAt\": \"2026-11-25T12:00:00.000Z\",\n        \"endedAt\": null,\n        \"createdAt\": \"2026-11-01T10:20:44.107Z\",\n        \"occurrences\": [\n            { \"id\": \"01M6HC4R7N2V8XQ3K5T9WB1ZDA\", \"name\": \"Lembrete de boleto\", \"status\": 2, \"scheduledAt\": \"2026-11-04T12:00:00.000Z\" },\n            { \"id\": \"01M6HC4R7P4W1C6Y8N3Q5T7ZBE\", \"name\": \"Lembrete de boleto\", \"status\": 0, \"scheduledAt\": \"2026-11-11T12:00:00.000Z\" },\n            { \"id\": \"01M6HC4R7Q8D2F5H9K1M3R6VXA\", \"name\": \"Lembrete de boleto\", \"status\": 0, \"scheduledAt\": \"2026-11-18T12:00:00.000Z\" },\n            { \"id\": \"01M6HC4R7R3G7J1L4N8P2S5WYC\", \"name\": \"Lembrete de boleto\", \"status\": 0, \"scheduledAt\": \"2026-11-25T12:00:00.000Z\" }\n        ]\n    }\n}"},{"id":"b0cdd65b-a2d9-a29f-d828-e2a9dc888a9d","name":"404 — recorrência inexistente","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/recurrences/01M6ZZZZZZZZZZZZZZZZZZZZZZ"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Campaign not found.\",\n    \"statusCode\": 404,\n    \"error\": {\n        \"code\": \"CAMP001\",\n        \"message\": \"Campaign not found.\",\n        \"reason\": \"When campaign-api answered 404 for the campaign or recurrence id in this account, or the id is malformed. campaign-api keys every campaign by account, so an id from another account is a 404 there too.\",\n        \"metadata\": { \"status\": 404 }\n    }\n}"}],"_postman_id":"dd4ceb99-554a-2d84-ed3e-c5dd67934af8"},{"name":"Encerrar recorrência","id":"c7fc2481-9e40-9cfe-76da-c65f8e6991ea","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/recurrences/:recurrenceId/cancelled","description":"<p>Encerra uma recorrência: as ocorrências que ainda não saíram são canceladas, e as já enviadas continuam no histórico. Sem corpo.</p>\n","urlObject":{"path":["chat","v1","campaigns","recurrences",":recurrenceId","cancelled"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"recurrenceId"}]}},"response":[{"id":"c38d8960-21a1-939a-68d1-7bbce78ce1da","name":"204 — recorrência encerrada","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/recurrences/01M6HC4R6Y5B1M8Q2J7D3P9XKE/cancelled"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"04e46475-6788-8569-bf30-ae2570cab9e6","name":"400 — recorrência já encerrada","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/recurrences/01M6RAYJX4V5EM4HVA8J38BQR5/cancelled"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"This action is not allowed for the campaign in its current state.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP003\",\n        \"message\": \"This action is not allowed for the campaign in its current state.\",\n        \"reason\": \"When campaign-api answered 422 on start, cancel or undoing a skip, or 409 on delete or on ending a series that already ended: a series occurrence cannot be deleted, a campaign that left SCHEDULED cannot be started or deleted, and only a skipped occurrence dated in the future, of a series not ended, can be restored. The BFF also answers it on its own, before any write, when the read behind a cancel finds a campaign that is not IN_PROGRESS and is not, for a user, a scheduled series occurrence: a standalone scheduled campaign, which can only be deleted, or any scheduled campaign for an API key, which has no route to undo a skip.\",\n        \"metadata\": { \"status\": 409 }\n    }\n}"}],"_postman_id":"c7fc2481-9e40-9cfe-76da-c65f8e6991ea"}],"id":"b3a83e16-492d-4df4-9024-bdf1269634c2","_postman_id":"b3a83e16-492d-4df4-9024-bdf1269634c2","description":""},{"name":"Listar campanhas","id":"fedeb7d6-b5e2-b28d-40e6-2b670757f912","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"x-api-key","value":"your_api-key"}],"url":"https://api.bradial.com.br/chat/v1/campaigns","description":"<p>Lista as campanhas da conta, da mais recente para a mais antiga, uma página por vez. Para a próxima página, envie o <code>nextCursor</code> da resposta em <code>cursor</code>; <code>null</code> indica a última.</p>\n<p><strong>Status.</strong> <code>0</code> agendada · <code>1</code> em andamento · <code>2</code> concluída · <code>3</code> cancelada.</p>\n<p><strong>Limite.</strong> 120 requisições por minuto.</p>\n","urlObject":{"path":["chat","v1","campaigns"],"host":["https://api.bradial.com.br"],"query":[{"disabled":true,"description":{"content":"<p>Opcional. Status separados por vírgula: 0 agendada, 1 em andamento, 2 concluída, 3 cancelada. Sem o parâmetro, traz todas.</p>\n","type":"text/plain"},"key":"status","value":"0,1"},{"disabled":true,"description":{"content":"<p>Opcional. O nextCursor da página anterior.</p>\n","type":"text/plain"},"key":"cursor","value":""}],"variable":[]}},"response":[{"id":"9ac404c0-645a-273e-57ad-f2c259dd550a","name":"200 — primeira página","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"01M6GW1K49ANYD084C3Z1H239Y\",\n            \"name\": \"Tabela de preços novembro\",\n            \"status\": 0,\n            \"channel\": \"Bradial\",\n            \"source\": \"manual\",\n            \"inbox\": { \"id\": 12, \"name\": \"Comercial SP\", \"channelType\": \"Channel::Bradial\" },\n            \"creator\": { \"apiKey\": true },\n            \"bradial\": {\n                \"message\": \"Olá {{contact.name}}! Segue a nossa tabela de preços de novembro.\",\n                \"fileName\": \"tabela-precos-novembro.pdf\",\n                \"fileUrl\": null\n            },\n            \"whatsapp\": null,\n            \"autoCloseConversation\": false,\n            \"recurrenceId\": null,\n            \"scheduledAt\": \"2026-11-10T13:00:00.000Z\",\n            \"createdAt\": \"2026-11-03T14:12:09.481Z\",\n            \"updatedAt\": \"2026-11-03T14:12:09.481Z\"\n        },\n        {\n            \"id\": \"01M6JYAYCYFV4WQT40AFXG3779\",\n            \"name\": \"Confirmação de agenda\",\n            \"status\": 2,\n            \"channel\": \"Whatsapp\",\n            \"source\": \"manual\",\n            \"inbox\": { \"id\": 34, \"name\": \"WhatsApp Oficial Loja\", \"channelType\": \"Channel::Whatsapp\" },\n            \"creator\": { \"id\": 87, \"name\": \"Mariana Costa\" },\n            \"bradial\": null,\n            \"whatsapp\": {\n                \"templateName\": \"confirmacao_agenda\",\n                \"parameters\": {\n                    \"header\": null,\n                    \"headerMedia\": null,\n                    \"body\": { \"1\": \"{{contact.name}}\", \"2\": \"11/11 às 14h\" },\n                    \"buttons\": [null, null]\n                }\n            },\n            \"autoCloseConversation\": false,\n            \"recurrenceId\": null,\n            \"scheduledAt\": \"2026-11-10T12:00:00.000Z\",\n            \"createdAt\": \"2026-11-04T09:30:41.950Z\",\n            \"updatedAt\": \"2026-11-10T12:41:07.215Z\"\n        }\n    ],\n    \"items\": 2,\n    \"nextCursor\": \"eyJhY2NvdW50X2lkIjoxMiwiaWQiOiIwMU02SllBWUNZRlY0V1FUNDBBRlhHMzc3OSJ9\"\n}"},{"id":"63a8e19a-b442-b6a7-798a-0b1fb7fd545a","name":"200 — só em andamento, última página","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/campaigns?status=1","host":["https://api.bradial.com.br"],"path":["chat","v1","campaigns"],"query":[{"key":"status","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"01M6RAYJX3EC7D09784CVFWZC4\",\n            \"name\": \"Aviso de entrega — pedidos atrasados\",\n            \"status\": 1,\n            \"channel\": \"Bradial\",\n            \"source\": \"manual\",\n            \"inbox\": { \"id\": 52, \"name\": \"Suporte Pós-venda\", \"channelType\": \"Channel::Bradial\" },\n            \"creator\": { \"apiKey\": true },\n            \"bradial\": {\n                \"message\": \"Oi, {{contact.name}}! Seu pedido teve um atraso na transportadora e chega até sexta-feira.\",\n                \"fileName\": null,\n                \"fileUrl\": null\n            },\n            \"whatsapp\": null,\n            \"autoCloseConversation\": true,\n            \"recurrenceId\": null,\n            \"scheduledAt\": \"2026-11-06T14:00:00.000Z\",\n            \"createdAt\": \"2026-11-06T11:47:20.611Z\",\n            \"updatedAt\": \"2026-11-06T14:00:03.882Z\"\n        }\n    ],\n    \"items\": 1,\n    \"nextCursor\": null\n}"},{"id":"98fa6ab7-6ea8-d77e-cafa-431dde302586","name":"400 — cursor inválido","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/campaigns?cursor=abc","host":["https://api.bradial.com.br"],"path":["chat","v1","campaigns"],"query":[{"key":"cursor","value":"abc"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The campaign list changed since this page was loaded.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP009\",\n        \"message\": \"The campaign list changed since this page was loaded.\",\n        \"reason\": \"When campaign-api answered 422 on a campaign or contact page: the cursor the client sent is malformed or no longer valid. Only the two cursor-paged reads name it, so a 422 on a write is never read as a stale page.\",\n        \"metadata\": { \"status\": 422 }\n    }\n}"}],"_postman_id":"fedeb7d6-b5e2-b28d-40e6-2b670757f912"},{"name":"Obter campanha","id":"4d2469dc-e037-c3ac-58c8-78c0b3fa94af","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId","description":"<p>Retorna uma campanha. <code>:campaignId</code> (aba <strong>Params</strong>) é o id da campanha.</p>\n<p>O anexo salvo vem pronto para abrir em <code>bradial.fileUrl</code> (WhatsApp - API Web) ou em <code>whatsapp.parameters.headerMedia.url</code> (WhatsApp - API Oficial).</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"campaignId"}]}},"response":[{"id":"67dddc49-0a71-a325-b96d-2dc65c95faa0","name":"200 — WhatsApp - API Web, com anexo","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01M6GW1K49ANYD084C3Z1H239Y\",\n        \"name\": \"Tabela de preços novembro\",\n        \"status\": 0,\n        \"channel\": \"Bradial\",\n        \"source\": \"manual\",\n        \"inbox\": { \"id\": 12, \"name\": \"Comercial SP\", \"channelType\": \"Channel::Bradial\" },\n        \"creator\": { \"apiKey\": true },\n        \"bradial\": {\n            \"message\": \"Olá {{contact.name}}! Segue a nossa tabela de preços de novembro.\",\n            \"fileName\": \"tabela-precos-novembro.pdf\",\n            \"fileUrl\": \"https://d3l9j0ya27k1cl.cloudfront.net/brands/3/accounts/12/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f\"\n        },\n        \"whatsapp\": null,\n        \"autoCloseConversation\": false,\n        \"recurrenceId\": null,\n        \"scheduledAt\": \"2026-11-10T13:00:00.000Z\",\n        \"createdAt\": \"2026-11-03T14:12:09.481Z\",\n        \"updatedAt\": \"2026-11-03T14:12:09.481Z\"\n    }\n}"},{"id":"ac22e8af-23b0-b2b7-e17d-f4afb9f8a39f","name":"200 — WhatsApp - API Oficial, com cabeçalho de mídia","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6JYAYCZ0K8T2B6WQH3RNE4D"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01M6JYAYCZ0K8T2B6WQH3RNE4D\",\n        \"name\": \"Black Friday — Clientes VIP\",\n        \"status\": 0,\n        \"channel\": \"Whatsapp\",\n        \"source\": \"manual\",\n        \"inbox\": { \"id\": 34, \"name\": \"WhatsApp Oficial Loja\", \"channelType\": \"Channel::Whatsapp\" },\n        \"creator\": { \"apiKey\": true },\n        \"bradial\": null,\n        \"whatsapp\": {\n            \"templateName\": \"promo_black_friday_2026\",\n            \"parameters\": {\n                \"header\": null,\n                \"headerMedia\": {\n                    \"type\": \"image\",\n                    \"filename\": \"black-friday-vip.jpg\",\n                    \"url\": \"https://d3l9j0ya27k1cl.cloudfront.net/brands/3/accounts/12/9a4d7e12-5c3b-4f8a-8e61-2b7c9d0f4a56\"\n                },\n                \"body\": { \"1\": \"{{contact.name}}\", \"2\": \"30%\" },\n                \"buttons\": [null, null]\n            }\n        },\n        \"autoCloseConversation\": false,\n        \"recurrenceId\": null,\n        \"scheduledAt\": \"2026-11-27T12:00:00.000Z\",\n        \"createdAt\": \"2026-11-04T09:31:02.118Z\",\n        \"updatedAt\": \"2026-11-04T09:31:02.118Z\"\n    }\n}"},{"id":"525b00b8-3616-898c-8263-9e1e100da288","name":"404 — campanha inexistente","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6ZZZZZZZZZZZZZZZZZZZZZZ"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Campaign not found.\",\n    \"statusCode\": 404,\n    \"error\": {\n        \"code\": \"CAMP001\",\n        \"message\": \"Campaign not found.\",\n        \"reason\": \"When campaign-api answered 404 for the campaign or recurrence id in this account, or the id is malformed. campaign-api keys every campaign by account, so an id from another account is a 404 there too.\",\n        \"metadata\": { \"status\": 404 }\n    }\n}"}],"_postman_id":"4d2469dc-e037-c3ac-58c8-78c0b3fa94af"},{"name":"Criar campanha (WhatsApp - API Web)","id":"89074d58-ad5d-309c-b96e-444cf94ad2b8","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Promo Novembro\",\n    \"inboxId\": 12,\n    \"scheduledAt\": \"2026-11-03T13:00:00.000Z\",\n    \"autoCloseConversation\": true,\n    \"bradial\": {\n        \"message\": \"Olá {{contact.name}}, nossa promoção começou!\",\n        \"file\": { \"key\": \"temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f\", \"name\": \"folder.pdf\" }\n    },\n    \"recurrence\": { \"frequency\": \"weekly\", \"interval\": 1, \"occurrences\": 4 }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns","description":"<p>Cria uma campanha agendada em uma caixa de WhatsApp - API Web. Depois de criar, adicione o público em <strong>Contatos › Adicionar contatos</strong>.</p>\n<p><strong><code>inboxId</code>.</strong> O id da caixa de entrada vem de <strong>V2 › Inboxes › FindAll</strong>.</p>\n<p><strong>Limites.</strong> <code>name</code> até 255 caracteres · <code>bradial.message</code> até 1024 · <code>scheduledAt</code> no futuro · recorrência mensal só até o dia 28 (UTC).</p>\n<p><strong>Variáveis.</strong> <code>{{contact.name}}</code> e <code>{{contact.phone}}</code> na mensagem.</p>\n<p><strong>Anexo.</strong> <code>bradial.file.key</code> vem de <strong>Arquivos › 3. Concluir upload</strong>.</p>\n<p><strong>Atenção ao 503.</strong> Um <code>503</code> com <code>metadata.delivery: \"unknown\"</code> significa que a campanha <strong>pode ter sido criada</strong>: confira em <strong>Listar campanhas</strong> antes de tentar de novo.</p>\n","urlObject":{"path":["chat","v1","campaigns"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"ba03f674-828e-f90d-b2d4-b8be5d6e88dd","name":"201 — mensagem simples","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Aviso de feriado\",\n    \"inboxId\": 12,\n    \"scheduledAt\": \"2026-11-14T12:00:00.000Z\",\n    \"bradial\": {\n        \"message\": \"Olá {{contact.name}}! Na sexta, 15/11, não teremos atendimento. Voltamos na segunda.\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01M6Q2T8XK4D7HZB3N5R9W1CYE\",\n        \"name\": \"Aviso de feriado\",\n        \"status\": 0,\n        \"channel\": \"Bradial\",\n        \"source\": \"manual\",\n        \"inbox\": { \"id\": 12, \"name\": \"Comercial SP\", \"channelType\": \"Channel::Bradial\" },\n        \"creator\": { \"apiKey\": true },\n        \"bradial\": {\n            \"message\": \"Olá {{contact.name}}! Na sexta, 15/11, não teremos atendimento. Voltamos na segunda.\",\n            \"fileName\": null,\n            \"fileUrl\": null\n        },\n        \"whatsapp\": null,\n        \"autoCloseConversation\": false,\n        \"recurrenceId\": null,\n        \"scheduledAt\": \"2026-11-14T12:00:00.000Z\",\n        \"createdAt\": \"2026-11-10T18:02:55.330Z\",\n        \"updatedAt\": \"2026-11-10T18:02:55.330Z\"\n    }\n}"},{"id":"64f2b3cc-af7c-3572-a81e-76a1fa1c3e8c","name":"201 — com anexo","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Tabela de preços novembro\",\n    \"inboxId\": 12,\n    \"scheduledAt\": \"2026-11-10T13:00:00.000Z\",\n    \"bradial\": {\n        \"message\": \"Olá {{contact.name}}! Segue a nossa tabela de preços de novembro.\",\n        \"file\": { \"key\": \"temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f\", \"name\": \"tabela-precos-novembro.pdf\" }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01M6GW1K49ANYD084C3Z1H239Y\",\n        \"name\": \"Tabela de preços novembro\",\n        \"status\": 0,\n        \"channel\": \"Bradial\",\n        \"source\": \"manual\",\n        \"inbox\": { \"id\": 12, \"name\": \"Comercial SP\", \"channelType\": \"Channel::Bradial\" },\n        \"creator\": { \"apiKey\": true },\n        \"bradial\": {\n            \"message\": \"Olá {{contact.name}}! Segue a nossa tabela de preços de novembro.\",\n            \"fileName\": \"tabela-precos-novembro.pdf\",\n            \"fileUrl\": null\n        },\n        \"whatsapp\": null,\n        \"autoCloseConversation\": false,\n        \"recurrenceId\": null,\n        \"scheduledAt\": \"2026-11-10T13:00:00.000Z\",\n        \"createdAt\": \"2026-11-03T14:12:09.481Z\",\n        \"updatedAt\": \"2026-11-03T14:12:09.481Z\"\n    }\n}"},{"id":"8c979537-4af6-2099-5692-c98886b17c0d","name":"201 — recorrente semanal","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Lembrete de boleto\",\n    \"inboxId\": 12,\n    \"scheduledAt\": \"2026-11-04T12:00:00.000Z\",\n    \"autoCloseConversation\": true,\n    \"bradial\": {\n        \"message\": \"Olá {{contact.name}}, seu boleto vence esta semana.\"\n    },\n    \"recurrence\": { \"frequency\": \"weekly\", \"interval\": 1, \"occurrences\": 4 }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01M6HC4R7N2V8XQ3K5T9WB1ZDA\",\n        \"name\": \"Lembrete de boleto\",\n        \"status\": 0,\n        \"channel\": \"Bradial\",\n        \"source\": \"manual\",\n        \"inbox\": { \"id\": 12, \"name\": \"Comercial SP\", \"channelType\": \"Channel::Bradial\" },\n        \"creator\": { \"apiKey\": true },\n        \"bradial\": {\n            \"message\": \"Olá {{contact.name}}, seu boleto vence esta semana.\",\n            \"fileName\": null,\n            \"fileUrl\": null\n        },\n        \"whatsapp\": null,\n        \"autoCloseConversation\": true,\n        \"recurrenceId\": \"01M6HC4R6Y5B1M8Q2J7D3P9XKE\",\n        \"scheduledAt\": \"2026-11-04T12:00:00.000Z\",\n        \"createdAt\": \"2026-11-01T10:20:44.107Z\",\n        \"updatedAt\": \"2026-11-01T10:20:44.107Z\"\n    }\n}"},{"id":"edd72bad-9e74-d27d-ce38-330f868afe7c","name":"400 — caixa de entrada inválida","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Aviso de feriado\",\n    \"inboxId\": 9999,\n    \"scheduledAt\": \"2026-11-14T12:00:00.000Z\",\n    \"bradial\": { \"message\": \"Na sexta não teremos atendimento.\" }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"This inbox cannot be used for campaigns.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP004\",\n        \"message\": \"This inbox cannot be used for campaigns.\",\n        \"reason\": \"When the inbox is not in the account, it is archived, the user is not a member of it, it is neither a Bradial nor a WhatsApp inbox, or a Bradial inbox has no gateway configuration.\"\n    }\n}"},{"id":"330505ba-3383-174a-a779-6a2e96d9aea9","name":"400 — data no passado","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Aviso de feriado\",\n    \"inboxId\": 12,\n    \"scheduledAt\": \"2025-01-01T12:00:00.000Z\",\n    \"bradial\": { \"message\": \"Na sexta não teremos atendimento.\" }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The schedule is not valid.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP005\",\n        \"message\": \"The schedule is not valid.\",\n        \"reason\": \"When scheduledAt is not in the future, or a monthly recurrence names a day after the 28th in UTC. Checked here before campaign-api, which evaluates its own minimum date once at boot.\"\n    }\n}"},{"id":"889d20a2-e55b-5e90-49c7-ac140014c10a","name":"503 — pode ter sido criada","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Aviso de feriado\",\n    \"inboxId\": 12,\n    \"scheduledAt\": \"2026-11-14T12:00:00.000Z\",\n    \"bradial\": { \"message\": \"Na sexta não teremos atendimento.\" }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Service Unavailable","code":503,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The campaign service is unavailable.\",\n    \"statusCode\": 503,\n    \"error\": {\n        \"code\": \"CAMP008\",\n        \"message\": \"The campaign service is unavailable.\",\n        \"reason\": \"When campaign-api, or on a test send the Bradial gateway or meta-api, did not answer at all, because of a timeout or a connection failure, or, on a test send, the channel answered a 5xx. On a test send that timed out or was reset after the request went out, or that the channel answered 500 or 504, metadata.delivery is unknown: the message may still arrive. A 502 or 503 from the channel is a plain CAMP008: the proxy in front of it forwarded nothing. A create or a duplicate that timed out or was reset after the request went out carries the same metadata.delivery unknown: campaign-api may have made the campaign, so the client checks the list before it sends again.\",\n        \"metadata\": { \"delivery\": \"unknown\" }\n    }\n}"}],"_postman_id":"89074d58-ad5d-309c-b96e-444cf94ad2b8"},{"name":"Criar campanha (WhatsApp - API Oficial)","id":"4b9c270b-fbe5-32c8-069e-f44cbc99f742","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Lembrete pagamento\",\n    \"inboxId\": your_inbox_id,\n    \"source\": \"manual\",\n    \"scheduledAt\": \"2026-11-10T12:00:00.000Z\",\n    \"autoCloseConversation\": false,\n    \"whatsapp\": {\n        \"templateName\": \"your_template_name\",\n        \"parameters\": {\n            \"header\": { \"1\": \"Novembro\" },\n            \"body\": { \"1\": \"{{contact.name}}\", \"2\": \"10/11\" },\n            \"buttons\": [ null, null ]\n        }\n    },\n    \"recurrence\": { \"frequency\": \"monthly\", \"interval\": 1, \"occurrences\": 6 }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns","description":"<p>Cria uma campanha agendada em uma caixa de WhatsApp - API Oficial, a partir de um template aprovado. Depois de criar, adicione o público em <strong>Contatos › Adicionar contatos</strong>.</p>\n<p><strong><code>inboxId</code> e <code>templateName</code>.</strong> O id da caixa de entrada vem de <strong>V2 › Inboxes › FindAll</strong>, e o nome do template, de <strong>V2 › Inboxes › WhatsApp - API Oficial › Templates › FindAll</strong>.</p>\n<p><strong>Parâmetros do template.</strong> <code>header</code>, <code>body</code> e <code>footer</code> levam as variáveis de cada componente. <code>buttons</code> segue a ordem dos botões do template, com <code>null</code> para botão sem parâmetro. Para cabeçalho de mídia, use <code>{ type, media_key, filename }</code>, com <code>media_key</code> de <strong>Arquivos › 3. Concluir upload</strong>.</p>\n<p><strong>Planilha.</strong> Com <code>\"source\": \"import\"</code>, o público entra por <strong>Adicionar contatos (planilha)</strong> e as variáveis podem usar <code>{{import.&lt;coluna&gt;}}</code>.</p>\n<p><strong>Limites.</strong> <code>scheduledAt</code> no futuro · até 10 botões · variáveis até 1024 caracteres · recorrência mensal só até o dia 28 (UTC).</p>\n<p><strong>Atenção ao 503.</strong> Como em <strong>Criar campanha (WhatsApp - API Web)</strong>: confira a lista antes de tentar de novo.</p>\n","urlObject":{"path":["chat","v1","campaigns"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"8cd744a3-c580-e8cf-7337-83684b2c1e7b","name":"201 — template com variáveis e botões","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Confirmação de agenda\",\n    \"inboxId\": 34,\n    \"scheduledAt\": \"2026-11-10T12:00:00.000Z\",\n    \"whatsapp\": {\n        \"templateName\": \"confirmacao_agenda\",\n        \"parameters\": {\n            \"body\": { \"1\": \"{{contact.name}}\", \"2\": \"11/11 às 14h\" },\n            \"buttons\": [null, null]\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01M6JYAYCYFV4WQT40AFXG3779\",\n        \"name\": \"Confirmação de agenda\",\n        \"status\": 0,\n        \"channel\": \"Whatsapp\",\n        \"source\": \"manual\",\n        \"inbox\": { \"id\": 34, \"name\": \"WhatsApp Oficial Loja\", \"channelType\": \"Channel::Whatsapp\" },\n        \"creator\": { \"apiKey\": true },\n        \"bradial\": null,\n        \"whatsapp\": {\n            \"templateName\": \"confirmacao_agenda\",\n            \"parameters\": {\n                \"header\": null,\n                \"headerMedia\": null,\n                \"body\": { \"1\": \"{{contact.name}}\", \"2\": \"11/11 às 14h\" },\n                \"buttons\": [null, null]\n            }\n        },\n        \"autoCloseConversation\": false,\n        \"recurrenceId\": null,\n        \"scheduledAt\": \"2026-11-10T12:00:00.000Z\",\n        \"createdAt\": \"2026-11-04T09:30:41.950Z\",\n        \"updatedAt\": \"2026-11-04T09:30:41.950Z\"\n    }\n}"},{"id":"026dfa3e-1596-b515-2efb-7e0782227c56","name":"201 — cabeçalho de imagem","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Black Friday — Clientes VIP\",\n    \"inboxId\": 34,\n    \"scheduledAt\": \"2026-11-27T12:00:00.000Z\",\n    \"whatsapp\": {\n        \"templateName\": \"promo_black_friday_2026\",\n        \"parameters\": {\n            \"header\": { \"type\": \"image\", \"media_key\": \"temp/9a4d7e12-5c3b-4f8a-8e61-2b7c9d0f4a56\", \"filename\": \"black-friday-vip.jpg\" },\n            \"body\": { \"1\": \"{{contact.name}}\", \"2\": \"30%\" },\n            \"buttons\": [null, null]\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01M6JYAYCZ0K8T2B6WQH3RNE4D\",\n        \"name\": \"Black Friday — Clientes VIP\",\n        \"status\": 0,\n        \"channel\": \"Whatsapp\",\n        \"source\": \"manual\",\n        \"inbox\": { \"id\": 34, \"name\": \"WhatsApp Oficial Loja\", \"channelType\": \"Channel::Whatsapp\" },\n        \"creator\": { \"apiKey\": true },\n        \"bradial\": null,\n        \"whatsapp\": {\n            \"templateName\": \"promo_black_friday_2026\",\n            \"parameters\": {\n                \"header\": null,\n                \"headerMedia\": { \"type\": \"image\", \"filename\": \"black-friday-vip.jpg\", \"url\": null },\n                \"body\": { \"1\": \"{{contact.name}}\", \"2\": \"30%\" },\n                \"buttons\": [null, null]\n            }\n        },\n        \"autoCloseConversation\": false,\n        \"recurrenceId\": null,\n        \"scheduledAt\": \"2026-11-27T12:00:00.000Z\",\n        \"createdAt\": \"2026-11-04T09:31:02.118Z\",\n        \"updatedAt\": \"2026-11-04T09:31:02.118Z\"\n    }\n}"},{"id":"0d90932f-283f-1af9-5920-49e7f991a641","name":"201 — campanha de planilha","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Cobrança novembro\",\n    \"inboxId\": 34,\n    \"source\": \"import\",\n    \"scheduledAt\": \"2026-11-12T13:00:00.000Z\",\n    \"whatsapp\": {\n        \"templateName\": \"cobranca_valor\",\n        \"parameters\": {\n            \"body\": { \"1\": \"{{contact.name}}\", \"2\": \"{{import.valor}}\", \"3\": \"{{import.vencimento}}\" }\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01M6PE1JF235X04Y5G8NN3T8SP\",\n        \"name\": \"Cobrança novembro\",\n        \"status\": 0,\n        \"channel\": \"Whatsapp\",\n        \"source\": \"import\",\n        \"inbox\": { \"id\": 34, \"name\": \"WhatsApp Oficial Loja\", \"channelType\": \"Channel::Whatsapp\" },\n        \"creator\": { \"apiKey\": true },\n        \"bradial\": null,\n        \"whatsapp\": {\n            \"templateName\": \"cobranca_valor\",\n            \"parameters\": {\n                \"header\": null,\n                \"headerMedia\": null,\n                \"body\": { \"1\": \"{{contact.name}}\", \"2\": \"{{import.valor}}\", \"3\": \"{{import.vencimento}}\" },\n                \"buttons\": []\n            }\n        },\n        \"autoCloseConversation\": false,\n        \"recurrenceId\": null,\n        \"scheduledAt\": \"2026-11-12T13:00:00.000Z\",\n        \"createdAt\": \"2026-11-05T18:02:55.330Z\",\n        \"updatedAt\": \"2026-11-05T18:02:55.330Z\"\n    }\n}"},{"id":"a3eec45b-c90c-65fb-0a61-4db2a0c89196","name":"400 — conteúdo não corresponde ao canal","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Confirmação de agenda\",\n    \"inboxId\": 12,\n    \"scheduledAt\": \"2026-11-10T12:00:00.000Z\",\n    \"whatsapp\": { \"templateName\": \"confirmacao_agenda\" }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The campaign content does not match the inbox channel.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP010\",\n        \"message\": \"The campaign content does not match the inbox channel.\",\n        \"reason\": \"When a Bradial inbox is sent without a bradial block or with a whatsapp one, or a WhatsApp inbox the other way round. The channel is read from the inbox, never from the client.\"\n    }\n}"},{"id":"f7cba1d6-6418-ac90-97f8-0f759f80261a","name":"422 — campos inválidos","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Confirmação de agenda\",\n    \"inboxId\": 34,\n    \"scheduledAt\": \"10/11/2026 12:00\",\n    \"whatsapp\": { \"templateName\": \"\" },\n    \"foo\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": [\n        \"scheduledAt must be a valid ISO 8601 date string\",\n        \"whatsapp.templateName should not be empty\",\n        \"property foo should not exist\"\n    ],\n    \"error\": \"Unprocessable Entity\",\n    \"statusCode\": 422\n}"}],"_postman_id":"4b9c270b-fbe5-32c8-069e-f44cbc99f742"},{"name":"Atualizar campanha","id":"9bba3921-d96e-3f06-0ed6-05a30458f768","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Promo Novembro (adiada)\",\n    \"scheduledAt\": \"2026-11-05T13:00:00.000Z\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId","description":"<p>Altera uma campanha agendada. Envie só os campos que mudam.</p>\n<p><code>bradial.file: null</code> remove o anexo; sem <code>file</code>, o anexo atual é mantido. Uma campanha de planilha muda só o nome e a data.</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"campaignId"}]}},"response":[{"id":"ab083dfb-1d21-b4cf-8ee3-6564e44a25fd","name":"204 — novo nome e data","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Tabela de preços novembro (adiada)\",\n    \"scheduledAt\": \"2026-11-12T13:00:00.000Z\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"293cf574-687f-d838-44de-d3f0bfabf769","name":"204 — nova mensagem, sem anexo","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"bradial\": {\n        \"message\": \"Olá {{contact.name}}! A tabela de novembro está no nosso site.\",\n        \"file\": null\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"0cf051af-a8e8-b3dc-d011-4192bbec7a12","name":"400 — campanha não pode mais ser editada","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"bradial\": { \"message\": \"Nova mensagem\" }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6RAYJX3EC7D09784CVFWZC4"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"This campaign can no longer be edited.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP002\",\n        \"message\": \"This campaign can no longer be edited.\",\n        \"reason\": \"When campaign-api answered 409 on an edit or a contacts write: the campaign left SCHEDULED, or it came from a spreadsheet and the edit changes more than its name and date, or the write removes a contact from it or adds one to its copy. The BFF also answers it on its own, before a content edit, when the campaign it read is not SCHEDULED or came from a spreadsheet. Neither names which, so the client reloads the campaign to see.\"\n    }\n}"}],"_postman_id":"9bba3921-d96e-3f06-0ed6-05a30458f768"},{"name":"Duplicar campanha","id":"c1f207b4-b387-bcc7-095d-f27a59b27037","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"scheduledAt\": \"2026-12-01T13:00:00.000Z\",\n    \"name\": \"Promo Dezembro\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId/duplicate","description":"<p>Cria uma cópia de uma campanha, de qualquer status, com os mesmos contatos. <code>scheduledAt</code> é obrigatório.</p>\n<p>Sem conteúdo no corpo, a cópia mantém a mensagem e o anexo da original. A cópia de uma campanha de planilha muda só o nome e a data.</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId","duplicate"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"campaignId"}]}},"response":[{"id":"1e44b60e-6e00-e16d-94d6-5a629b0c4936","name":"201 — mesma mensagem, nova data","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Tabela de preços dezembro\",\n    \"scheduledAt\": \"2026-12-01T13:00:00.000Z\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y/duplicate"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01M6RAYJA41CQVFDHW1C1P1GAE\",\n        \"name\": \"Tabela de preços dezembro\",\n        \"status\": 0,\n        \"channel\": \"Bradial\",\n        \"source\": \"manual\",\n        \"inbox\": { \"id\": 12, \"name\": \"Comercial SP\", \"channelType\": \"Channel::Bradial\" },\n        \"creator\": { \"apiKey\": true },\n        \"bradial\": {\n            \"message\": \"Olá {{contact.name}}! Segue a nossa tabela de preços de novembro.\",\n            \"fileName\": \"tabela-precos-novembro.pdf\",\n            \"fileUrl\": null\n        },\n        \"whatsapp\": null,\n        \"autoCloseConversation\": false,\n        \"recurrenceId\": null,\n        \"scheduledAt\": \"2026-12-01T13:00:00.000Z\",\n        \"createdAt\": \"2026-11-06T11:47:20.004Z\",\n        \"updatedAt\": \"2026-11-06T11:47:20.004Z\"\n    }\n}"},{"id":"531db846-97ae-8034-de6f-0d3cf1ccda42","name":"400 — cópia de planilha mudando a caixa","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"scheduledAt\": \"2026-12-12T13:00:00.000Z\",\n    \"inboxId\": 41\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6PE1JF235X04Y5G8NN3T8SP/duplicate"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"A copy of a spreadsheet campaign changes only its name and date.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP017\",\n        \"message\": \"A copy of a spreadsheet campaign changes only its name and date.\",\n        \"reason\": \"When campaign-api answered 409 on a duplicate: the original came from a spreadsheet and the copy names another inbox, channel, autoCloseConversation or recurrence than the original's. A copy may be made from any status, so this is the only 409 a duplicate gets.\",\n        \"metadata\": { \"status\": 409 }\n    }\n}"}],"_postman_id":"c1f207b4-b387-bcc7-095d-f27a59b27037"},{"name":"Iniciar campanha","id":"8cee5780-a1ce-2db5-e505-61e68b3dfcb0","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId/in-progress","description":"<p>Começa a enviar agora uma campanha agendada, sem esperar o horário. Sem corpo.</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId","in-progress"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"campaignId"}]}},"response":[{"id":"a4ec43c5-1c3b-5ce8-a11e-5013e63ea612","name":"204 — envio iniciado","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y/in-progress"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"1f5cd05f-0d2f-b257-422a-8a761d5d41df","name":"400 — campanha não está agendada","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6JYAYCYFV4WQT40AFXG3779/in-progress"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"This action is not allowed for the campaign in its current state.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP003\",\n        \"message\": \"This action is not allowed for the campaign in its current state.\",\n        \"reason\": \"When campaign-api answered 422 on start, cancel or undoing a skip, or 409 on delete or on ending a series that already ended: a series occurrence cannot be deleted, a campaign that left SCHEDULED cannot be started or deleted, and only a skipped occurrence dated in the future, of a series not ended, can be restored. The BFF also answers it on its own, before any write, when the read behind a cancel finds a campaign that is not IN_PROGRESS and is not, for a user, a scheduled series occurrence: a standalone scheduled campaign, which can only be deleted, or any scheduled campaign for an API key, which has no route to undo a skip.\",\n        \"metadata\": { \"status\": 422 }\n    }\n}"}],"_postman_id":"8cee5780-a1ce-2db5-e505-61e68b3dfcb0"},{"name":"Cancelar campanha","id":"4b52d45e-33c6-b968-8237-fb7fa23462ea","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId/cancelled","description":"<p>Interrompe uma campanha em andamento: quem ainda não recebeu deixa de receber. Sem corpo.</p>\n<p>Para uma campanha agendada que ainda não começou, use <strong>Remover campanha</strong>.</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId","cancelled"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"campaignId"}]}},"response":[{"id":"07128924-b01c-3c58-bcbd-b5691a06283b","name":"204 — envio interrompido","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6RAYJX3EC7D09784CVFWZC4/cancelled"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"c9a84411-bd2b-a8eb-2c24-352782ad7cf2","name":"400 — campanha ainda agendada","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6GW1K49ANYD084C3Z1H239Y/cancelled"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"This action is not allowed for the campaign in its current state.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP003\",\n        \"message\": \"This action is not allowed for the campaign in its current state.\",\n        \"reason\": \"When campaign-api answered 422 on start, cancel or undoing a skip, or 409 on delete or on ending a series that already ended: a series occurrence cannot be deleted, a campaign that left SCHEDULED cannot be started or deleted, and only a skipped occurrence dated in the future, of a series not ended, can be restored. The BFF also answers it on its own, before any write, when the read behind a cancel finds a campaign that is not IN_PROGRESS and is not, for a user, a scheduled series occurrence: a standalone scheduled campaign, which can only be deleted, or any scheduled campaign for an API key, which has no route to undo a skip.\"\n    }\n}"}],"_postman_id":"4b52d45e-33c6-b968-8237-fb7fa23462ea"},{"name":"Remover campanha","id":"ee9373e5-34c3-0a60-7c6d-739a9c9a4fc7","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/:campaignId","description":"<p>Remove uma campanha agendada.</p>\n<p>Ocorrências de uma recorrência não são removidas uma a uma: use <strong>Recorrências › Encerrar recorrência</strong>.</p>\n","urlObject":{"path":["chat","v1","campaigns",":campaignId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"campaignId"}]}},"response":[{"id":"ee5f0593-532a-5116-a3fc-3dae6d731ff0","name":"204 — campanha removida","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6RAYJA41CQVFDHW1C1P1GAE"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":""},{"id":"d26f4383-2479-cbe0-11a6-aca30404b273","name":"400 — ocorrência de recorrência","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/campaigns/01M6HC4R7N2V8XQ3K5T9WB1ZDA"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"This action is not allowed for the campaign in its current state.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"CAMP003\",\n        \"message\": \"This action is not allowed for the campaign in its current state.\",\n        \"reason\": \"When campaign-api answered 422 on start, cancel or undoing a skip, or 409 on delete or on ending a series that already ended: a series occurrence cannot be deleted, a campaign that left SCHEDULED cannot be started or deleted, and only a skipped occurrence dated in the future, of a series not ended, can be restored. The BFF also answers it on its own, before any write, when the read behind a cancel finds a campaign that is not IN_PROGRESS and is not, for a user, a scheduled series occurrence: a standalone scheduled campaign, which can only be deleted, or any scheduled campaign for an API key, which has no route to undo a skip.\",\n        \"metadata\": { \"status\": 409 }\n    }\n}"}],"_postman_id":"ee9373e5-34c3-0a60-7c6d-739a9c9a4fc7"}],"id":"1b595bb6-f2ab-4ceb-8566-df4adb319cc8","_postman_id":"1b595bb6-f2ab-4ceb-8566-df4adb319cc8","description":""},{"name":"Assistentes","item":[{"name":"Base de Conhecimento","item":[{"name":"Enviar arquivo","id":"70654509-05fb-ffd0-e7df-f56aa7c9da8b","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","description":"<p>O arquivo. Máximo 5 MB. PDF, DOC, DOCX ou TXT.</p>\n","type":"file","value":null}]},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/knowledge-base/files","description":"<p>Envia um arquivo para a base de conhecimento do assistente.</p>\n<p><code>multipart/form-data</code>, <strong>um arquivo por requisição</strong>, no campo <code>file</code>.</p>\n<p><strong>Limites, validados no BFF antes de subir</strong></p>\n<ul>\n<li>Tamanho máximo: <strong>5 MB</strong>.</li>\n<li>Um único arquivo por requisição, e <strong>nenhum outro campo</strong> no formulário.</li>\n<li>Tipos aceitos:<ul>\n<li><code>application/pdf</code> (.pdf)</li>\n<li><code>application/msword</code> (.doc)</li>\n<li><code>application/vnd.openxmlformats-officedocument.wordprocessingml.document</code> (.docx)</li>\n<li><code>text/plain</code> (.txt)</li>\n</ul>\n</li>\n</ul>\n<p>Não defina <code>Content-Type</code> à mão — deixe o Postman montar o boundary do multipart.</p>\n<p><strong>Resposta</strong></p>\n<p><code>data.id</code> é o identificador usado em <strong>Remover arquivo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","knowledge-base","files"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"f0997a06-edca-fd4d-deab-e3c7fe2d0065","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"file","description":"O arquivo. Máximo 5 MB. PDF, DOC, DOCX ou TXT.","type":"file","value":null}]},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/knowledge-base/files","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","knowledge-base","files"],"variable":[{"key":"assistantId"}]},"description":"Envia um arquivo para a base de conhecimento do assistente.\n\n`multipart/form-data`, **um arquivo por requisição**, no campo `file`.\n\n**Limites, validados no BFF antes de subir**\n\n- Tamanho máximo: **5 MB**.\n- Um único arquivo por requisição, e **nenhum outro campo** no formulário.\n- Tipos aceitos:\n  - `application/pdf` (.pdf)\n  - `application/msword` (.doc)\n  - `application/vnd.openxmlformats-officedocument.wordprocessingml.document` (.docx)\n  - `text/plain` (.txt)\n\nNão defina `Content-Type` à mão — deixe o Postman montar o boundary do multipart.\n\n**Resposta**\n\n`data.id` é o identificador usado em **Remover arquivo**."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"f_01JQ9A2B3C4D5E6F7G8H9J0K1L\",\n        \"name\": \"tabela-de-precos-2026.pdf\",\n        \"mimetype\": \"application/pdf\",\n        \"size\": 348211\n    }\n}"}],"_postman_id":"70654509-05fb-ffd0-e7df-f56aa7c9da8b"},{"name":"Remover arquivo","id":"12844f9d-98bf-74ed-332c-7ec9ae51a18a","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/knowledge-base/files/:fileId","description":"<p>Remove um arquivo da base de conhecimento do assistente.</p>\n<p><strong>Parâmetros de caminho</strong></p>\n<ul>\n<li><code>assistantId</code> (ULID)</li>\n<li><code>fileId</code> — o <code>data.id</code> devolvido por <strong>Enviar arquivo</strong>.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","knowledge-base","files",":fileId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"fileId"}]}},"response":[{"id":"b64cfc2c-636c-23b8-e33e-9880ed393702","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/knowledge-base/files/:fileId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","knowledge-base","files",":fileId"],"variable":[{"key":"assistantId"},{"key":"fileId"}]},"description":"Remove um arquivo da base de conhecimento do assistente.\n\n**Parâmetros de caminho**\n\n- `assistantId` (ULID)\n- `fileId` — o `data.id` devolvido por **Enviar arquivo**.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"12844f9d-98bf-74ed-332c-7ec9ae51a18a"},{"name":"Adicionar site","id":"d8d98544-a9fc-89c7-3fd2-dd0c58a9e154","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"url\": \"https://bradial.com.br/precos\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/knowledge-base/websites","description":"<p>Registra um site como fonte da base de conhecimento. O upstream rastreia as páginas do domínio.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>url</code> (string, obrigatório) — não pode ser vazia.</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<p><code>data.domain</code> é o valor que vai no caminho de <strong>Remover site</strong> — repare que é o <strong>domínio</strong>, não a URL que você enviou.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","knowledge-base","websites"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"717476d2-5102-ff36-f167-af7cb32cfda6","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"url\": \"https://bradial.com.br/precos\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/knowledge-base/websites","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","knowledge-base","websites"],"variable":[{"key":"assistantId"}]},"description":"Registra um site como fonte da base de conhecimento. O upstream rastreia as páginas do domínio.\n\n**Corpo**\n\n- `url` (string, obrigatório) — não pode ser vazia.\n\n**Resposta**\n\n`data.domain` é o valor que vai no caminho de **Remover site** — repare que é o **domínio**, não a URL que você enviou."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"domain\": \"bradial.com.br\"\n    }\n}"}],"_postman_id":"d8d98544-a9fc-89c7-3fd2-dd0c58a9e154"},{"name":"Remover site","id":"7d27dc35-8c17-222b-0eec-5cd60a118b07","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/knowledge-base/websites/:domain","description":"<p>Remove um domínio da base de conhecimento do assistente.</p>\n<p><strong>Parâmetros de caminho</strong></p>\n<ul>\n<li><code>domain</code> — exatamente o <code>data.domain</code> devolvido por <strong>Adicionar site</strong>. Pode mandar o domínio cru: o BFF faz o percent-encoding do segmento.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","knowledge-base","websites",":domain"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"domain"}]}},"response":[{"id":"2b721838-325c-baa0-a29f-c6522945b206","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/knowledge-base/websites/:domain","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","knowledge-base","websites",":domain"],"variable":[{"key":"assistantId"},{"key":"domain"}]},"description":"Remove um domínio da base de conhecimento do assistente.\n\n**Parâmetros de caminho**\n\n- `domain` — exatamente o `data.domain` devolvido por **Adicionar site**. Pode mandar o domínio cru: o BFF faz o percent-encoding do segmento.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"7d27dc35-8c17-222b-0eec-5cd60a118b07"}],"id":"5390804a-f2d2-4bba-b531-32c58eba8668","_postman_id":"5390804a-f2d2-4bba-b531-32c58eba8668","description":""},{"name":"Ferramentas","item":[{"name":"Listar ferramentas","id":"50bde5cd-fb0e-9c45-c115-9e9f47d61ada","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools","description":"<p>Lista as ferramentas HTTP do assistente — as chamadas que ele pode disparar contra a sua API durante o atendimento.</p>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><code>data[].auth.secretSet</code> — booleano. O segredo <strong>nunca</strong> é devolvido; este campo só diz se existe um gravado.</li>\n<li><code>items</code> — total de ferramentas.</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","tools"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"9f4dd0ae-34cd-6123-cb7c-7cc2921d4e4a","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","tools"],"variable":[{"key":"assistantId"}]},"description":"Lista as ferramentas HTTP do assistente — as chamadas que ele pode disparar contra a sua API durante o atendimento.\n\n**Resposta**\n\n- `data[].auth.secretSet` — booleano. O segredo **nunca** é devolvido; este campo só diz se existe um gravado.\n- `items` — total de ferramentas."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"consultarPedido\",\n            \"description\": \"Consulta a situação de um pedido pelo número.\",\n            \"parameters\": {\n                \"properties\": {\n                    \"numeroPedido\": {\n                        \"type\": \"string\",\n                        \"description\": \"Número do pedido, só dígitos\"\n                    }\n                },\n                \"required\": [\"numeroPedido\"]\n            },\n            \"api\": {\n                \"method\": \"GET\",\n                \"url\": \"https://api.cliente.com.br/pedidos/{{numeroPedido}}\",\n                \"headers\": { \"Accept\": \"application/json\" }\n            },\n            \"auth\": {\n                \"type\": \"bearer\",\n                \"secretSet\": true\n            },\n            \"errorMessage\": \"Não consegui consultar o pedido agora. Tente de novo em instantes.\",\n            \"enabled\": true\n        }\n    ],\n    \"items\": 1\n}"}],"_postman_id":"50bde5cd-fb0e-9c45-c115-9e9f47d61ada"},{"name":"Criar ferramenta","id":"d22d8a4d-d0e1-f84c-062a-3bf93006a621","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"consultarPedido\",\n    \"description\": \"Consulta a situação de um pedido pelo número. Use quando o cliente perguntar onde está o pedido dele.\",\n    \"parameters\": {\n        \"properties\": {\n            \"numeroPedido\": {\n                \"type\": \"string\",\n                \"description\": \"Número do pedido, só dígitos\"\n            }\n        },\n        \"required\": [\"numeroPedido\"]\n    },\n    \"api\": {\n        \"method\": \"GET\",\n        \"url\": \"https://api.cliente.com.br/pedidos/{{numeroPedido}}\",\n        \"headers\": { \"Accept\": \"application/json\" }\n    },\n    \"auth\": {\n        \"type\": \"bearer\",\n        \"secret\": \"COLE_AQUI_O_TOKEN\"\n    },\n    \"errorMessage\": \"Não consegui consultar o pedido agora. Tente de novo em instantes.\",\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools","description":"<p>Cria uma ferramenta HTTP no assistente.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>name</code> (string, <strong>obrigatório</strong>) — até 64 caracteres, no padrão <code>^[a-z][a-zA-Z0-9]*$</code>: começa com minúscula, só letras e números, <strong>sem <code>_</code> e sem <code>-</code></strong>. Não pode começar com <code>native</code>, prefixo reservado.</li>\n<li><code>description</code> (string, <strong>obrigatório</strong>) — até 500 caracteres. É por ela que o modelo decide quando chamar a ferramenta, então descreva a situação de uso, não a implementação.</li>\n<li><code>parameters</code> (objeto, <strong>obrigatório</strong>)<ul>\n<li><code>properties</code> (objeto) — no máximo <strong>10</strong> parâmetros.</li>\n<li><code>required</code> (array de strings)</li>\n</ul>\n</li>\n<li><code>api</code> (objeto, <strong>obrigatório</strong>)<ul>\n<li><code>method</code> — <code>GET</code>, <code>POST</code>, <code>PUT</code>, <code>PATCH</code> ou <code>DELETE</code>.</li>\n<li><code>url</code> — <strong>obrigatoriamente https</strong>, até 2048 caracteres.</li>\n<li><code>headers</code> (objeto, opcional) — se vier, não pode ser vazio.</li>\n<li><code>body</code> (objeto, opcional) — se vier, não pode ser vazio.</li>\n</ul>\n</li>\n<li><code>auth</code> (objeto, opcional)<ul>\n<li><code>type</code> — <code>none</code>, <code>bearer</code>, <code>apiKey</code> ou <code>basic</code>.</li>\n<li><code>headerName</code> — <strong>obrigatório quando <code>type</code> é <code>apiKey</code></strong>. Até 64 caracteres.</li>\n<li><code>username</code> — até 128 caracteres.</li>\n<li><code>secret</code> — até 4096 caracteres. Enviado só na escrita; nunca volta na leitura.</li>\n</ul>\n</li>\n<li><code>errorMessage</code> (string, <strong>obrigatório</strong>) — até 500 caracteres. É o que o assistente diz ao cliente quando a chamada falha.</li>\n<li><code>enabled</code> (booleano, opcional)</li>\n</ul>\n<p><strong>Interpolação</strong></p>\n<p>Use <code>{{nomeDoParametro}}</code> na <code>url</code>, nos <code>headers</code> e no <code>body</code> para injetar os argumentos que o modelo preencher.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","tools"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"5dbf90f7-652f-0c02-0399-d3c683be5804","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"consultarPedido\",\n    \"description\": \"Consulta a situação de um pedido pelo número. Use quando o cliente perguntar onde está o pedido dele.\",\n    \"parameters\": {\n        \"properties\": {\n            \"numeroPedido\": {\n                \"type\": \"string\",\n                \"description\": \"Número do pedido, só dígitos\"\n            }\n        },\n        \"required\": [\"numeroPedido\"]\n    },\n    \"api\": {\n        \"method\": \"GET\",\n        \"url\": \"https://api.cliente.com.br/pedidos/{{numeroPedido}}\",\n        \"headers\": { \"Accept\": \"application/json\" }\n    },\n    \"auth\": {\n        \"type\": \"bearer\",\n        \"secret\": \"COLE_AQUI_O_TOKEN\"\n    },\n    \"errorMessage\": \"Não consegui consultar o pedido agora. Tente de novo em instantes.\",\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","tools"],"variable":[{"key":"assistantId"}]},"description":"Cria uma ferramenta HTTP no assistente.\n\n**Corpo**\n\n- `name` (string, **obrigatório**) — até 64 caracteres, no padrão `^[a-z][a-zA-Z0-9]*$`: começa com minúscula, só letras e números, **sem `_` e sem `-`**. Não pode começar com `native`, prefixo reservado.\n- `description` (string, **obrigatório**) — até 500 caracteres. É por ela que o modelo decide quando chamar a ferramenta, então descreva a situação de uso, não a implementação.\n- `parameters` (objeto, **obrigatório**)\n  - `properties` (objeto) — no máximo **10** parâmetros.\n  - `required` (array de strings)\n- `api` (objeto, **obrigatório**)\n  - `method` — `GET`, `POST`, `PUT`, `PATCH` ou `DELETE`.\n  - `url` — **obrigatoriamente https**, até 2048 caracteres.\n  - `headers` (objeto, opcional) — se vier, não pode ser vazio.\n  - `body` (objeto, opcional) — se vier, não pode ser vazio.\n- `auth` (objeto, opcional)\n  - `type` — `none`, `bearer`, `apiKey` ou `basic`.\n  - `headerName` — **obrigatório quando `type` é `apiKey`**. Até 64 caracteres.\n  - `username` — até 128 caracteres.\n  - `secret` — até 4096 caracteres. Enviado só na escrita; nunca volta na leitura.\n- `errorMessage` (string, **obrigatório**) — até 500 caracteres. É o que o assistente diz ao cliente quando a chamada falha.\n- `enabled` (booleano, opcional)\n\n**Interpolação**\n\nUse `{{nomeDoParametro}}` na `url`, nos `headers` e no `body` para injetar os argumentos que o modelo preencher."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"consultarPedido\",\n    \"description\": \"Consulta a situação de um pedido pelo número. Use quando o cliente perguntar onde está o pedido dele.\",\n    \"parameters\": {\n        \"properties\": {\n            \"numeroPedido\": {\n                \"type\": \"string\",\n                \"description\": \"Número do pedido, só dígitos\"\n            }\n        },\n        \"required\": [\"numeroPedido\"]\n    },\n    \"api\": {\n        \"method\": \"GET\",\n        \"url\": \"https://api.cliente.com.br/pedidos/{{numeroPedido}}\",\n        \"headers\": { \"Accept\": \"application/json\" }\n    },\n    \"auth\": {\n        \"type\": \"bearer\",\n        \"secretSet\": true\n    },\n    \"errorMessage\": \"Não consegui consultar o pedido agora. Tente de novo em instantes.\",\n    \"enabled\": true\n}"}],"_postman_id":"d22d8a4d-d0e1-f84c-062a-3bf93006a621"},{"name":"Atualizar ferramenta","id":"7e8fb1fe-9432-9497-c86f-2a6a531707be","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PUT","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"description\": \"Consulta a situação de um pedido pelo número, incluindo o código de rastreio.\",\n    \"parameters\": {\n        \"properties\": {\n            \"numeroPedido\": {\n                \"type\": \"string\",\n                \"description\": \"Número do pedido, só dígitos\"\n            }\n        },\n        \"required\": [\"numeroPedido\"]\n    },\n    \"api\": {\n        \"method\": \"GET\",\n        \"url\": \"https://api.cliente.com.br/v2/pedidos/{{numeroPedido}}\",\n        \"headers\": { \"Accept\": \"application/json\" }\n    },\n    \"auth\": { \"type\": \"bearer\" },\n    \"errorMessage\": \"Não consegui consultar o pedido agora. Tente de novo em instantes.\",\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools/:toolName","description":"<p>Substitui a definição de uma ferramenta.</p>\n<p><strong>É um PUT: mande o objeto inteiro</strong>, não só os campos alterados. O que você omitir é perdido.</p>\n<p>Mesmos campos e limites de <strong>Criar ferramenta</strong>, <strong>menos <code>name</code></strong> — o nome vem do caminho e não pode ser trocado. Para renomear, crie outra e remova esta.</p>\n<p><code>secret</code> omitido <strong>mantém</strong> o segredo já gravado.</p>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","tools",":toolName"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"toolName"}]}},"response":[{"id":"89e47f48-72e7-501c-8ce9-73ad4366e8e9","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PUT","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"description\": \"Consulta a situação de um pedido pelo número, incluindo o código de rastreio.\",\n    \"parameters\": {\n        \"properties\": {\n            \"numeroPedido\": {\n                \"type\": \"string\",\n                \"description\": \"Número do pedido, só dígitos\"\n            }\n        },\n        \"required\": [\"numeroPedido\"]\n    },\n    \"api\": {\n        \"method\": \"GET\",\n        \"url\": \"https://api.cliente.com.br/v2/pedidos/{{numeroPedido}}\",\n        \"headers\": { \"Accept\": \"application/json\" }\n    },\n    \"auth\": { \"type\": \"bearer\" },\n    \"errorMessage\": \"Não consegui consultar o pedido agora. Tente de novo em instantes.\",\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools/:toolName","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","tools",":toolName"],"variable":[{"key":"assistantId"},{"key":"toolName"}]},"description":"Substitui a definição de uma ferramenta.\n\n**É um PUT: mande o objeto inteiro**, não só os campos alterados. O que você omitir é perdido.\n\nMesmos campos e limites de **Criar ferramenta**, **menos `name`** — o nome vem do caminho e não pode ser trocado. Para renomear, crie outra e remova esta.\n\n`secret` omitido **mantém** o segredo já gravado.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"7e8fb1fe-9432-9497-c86f-2a6a531707be"},{"name":"Remover ferramenta","id":"06fdbb57-e88a-3be8-039a-8ddc7f0b4d3a","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools/:toolName","description":"<p>Remove a ferramenta do assistente.</p>\n<p><strong>Parâmetros de caminho</strong></p>\n<ul>\n<li><code>toolName</code> — o <code>name</code> da ferramenta, como aparece em <strong>Listar ferramentas</strong>.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","tools",":toolName"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"toolName"}]}},"response":[{"id":"3959ca5d-8da9-0a9c-1854-7a1968ff0198","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools/:toolName","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","tools",":toolName"],"variable":[{"key":"assistantId"},{"key":"toolName"}]},"description":"Remove a ferramenta do assistente.\n\n**Parâmetros de caminho**\n\n- `toolName` — o `name` da ferramenta, como aparece em **Listar ferramentas**.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"06fdbb57-e88a-3be8-039a-8ddc7f0b4d3a"},{"name":"Ativar ou desativar ferramenta","id":"f9911c65-d6a2-e50f-49cf-010320783250","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PATCH","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"enabled\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools/:toolName/enabled","description":"<p>Liga ou desliga a ferramenta sem apagar a configuração. Desligada, ela continua gravada mas o assistente não a enxerga.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>enabled</code> (booleano, <strong>obrigatório</strong>). Precisa estar presente: ausente ou <code>null</code> dá <code>400</code>.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","tools",":toolName","enabled"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"toolName"}]}},"response":[{"id":"4d2529b5-40af-2a77-eed0-ce97841f2305","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"enabled\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools/:toolName/enabled","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","tools",":toolName","enabled"],"variable":[{"key":"assistantId"},{"key":"toolName"}]},"description":"Liga ou desliga a ferramenta sem apagar a configuração. Desligada, ela continua gravada mas o assistente não a enxerga.\n\n**Corpo**\n\n- `enabled` (booleano, **obrigatório**). Precisa estar presente: ausente ou `null` dá `400`.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"f9911c65-d6a2-e50f-49cf-010320783250"},{"name":"Testar ferramenta","id":"bdd3af0d-a3b7-84f9-2726-f8760532b42d","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"toolName\": \"consultarPedido\",\n    \"arguments\": {\n        \"numeroPedido\": \"998877\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools/test","description":"<p>Dispara a ferramenta <strong>de verdade</strong> contra a sua API e devolve o que voltou. Serve para validar a configuração antes de liberar para o assistente.</p>\n<p>Responde <strong>200</strong>, não 201.</p>\n<p><strong>Corpo</strong> — duas formas, escolha uma:</p>\n<ol>\n<li><strong>Testar uma ferramenta já salva:</strong> mande <code>toolName</code>.</li>\n<li><strong>Testar uma definição ainda não salva:</strong> mande <code>tool</code> com o objeto completo (mesmos campos de <strong>Criar ferramenta</strong>). É obrigatório quando <code>toolName</code> não vem.</li>\n</ol>\n<p>E, em qualquer um dos casos:</p>\n<ul>\n<li><code>arguments</code> (objeto, opcional) — os valores dos parâmetros, como o modelo os passaria.</li>\n<li><code>context</code> (objeto, opcional) — pares string/string disponíveis para interpolação.</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><code>status</code> — o HTTP que a <strong>sua</strong> API devolveu, ou <code>null</code> se a chamada nem completou.</li>\n<li><code>durationMs</code> — quanto demorou.</li>\n<li><code>body</code> — o corpo da resposta, como texto.</li>\n<li><code>bytes</code> e <code>truncated</code> — a resposta é cortada quando passa do limite.</li>\n<li><code>error</code> — a falha de transporte (DNS, TLS, timeout), ou <code>null</code>.</li>\n</ul>\n<p>Um <code>status</code> 500 com <code>error: null</code> quer dizer que a sua API respondeu e respondeu erro — a ferramenta está configurada certo.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","tools","test"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"e004bc44-df87-f090-4ce0-a5dd92636c2b","name":"200 OK — a sua API respondeu","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"toolName\": \"consultarPedido\",\n    \"arguments\": {\n        \"numeroPedido\": \"998877\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools/test","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","tools","test"],"variable":[{"key":"assistantId"}]},"description":"Dispara a ferramenta **de verdade** contra a sua API e devolve o que voltou. Serve para validar a configuração antes de liberar para o assistente.\n\nResponde **200**, não 201.\n\n**Corpo** — duas formas, escolha uma:\n\n1. **Testar uma ferramenta já salva:** mande `toolName`.\n2. **Testar uma definição ainda não salva:** mande `tool` com o objeto completo (mesmos campos de **Criar ferramenta**). É obrigatório quando `toolName` não vem.\n\nE, em qualquer um dos casos:\n\n- `arguments` (objeto, opcional) — os valores dos parâmetros, como o modelo os passaria.\n- `context` (objeto, opcional) — pares string/string disponíveis para interpolação.\n\n**Resposta**\n\n- `status` — o HTTP que a **sua** API devolveu, ou `null` se a chamada nem completou.\n- `durationMs` — quanto demorou.\n- `body` — o corpo da resposta, como texto.\n- `bytes` e `truncated` — a resposta é cortada quando passa do limite.\n- `error` — a falha de transporte (DNS, TLS, timeout), ou `null`.\n\nUm `status` 500 com `error: null` quer dizer que a sua API respondeu e respondeu erro — a ferramenta está configurada certo."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"durationMs\": 412,\n    \"body\": \"{\\\"numero\\\":\\\"998877\\\",\\\"situacao\\\":\\\"em transporte\\\",\\\"rastreio\\\":\\\"BR123456789\\\"}\",\n    \"bytes\": 74,\n    \"truncated\": false,\n    \"error\": null\n}"},{"id":"c993c60f-da88-95df-2888-e9d2a870d443","name":"200 OK — a chamada nem completou","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"toolName\": \"consultarPedido\",\n    \"arguments\": {\n        \"numeroPedido\": \"998877\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/tools/test","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","tools","test"],"variable":[{"key":"assistantId"}]},"description":"Dispara a ferramenta **de verdade** contra a sua API e devolve o que voltou. Serve para validar a configuração antes de liberar para o assistente.\n\nResponde **200**, não 201.\n\n**Corpo** — duas formas, escolha uma:\n\n1. **Testar uma ferramenta já salva:** mande `toolName`.\n2. **Testar uma definição ainda não salva:** mande `tool` com o objeto completo (mesmos campos de **Criar ferramenta**). É obrigatório quando `toolName` não vem.\n\nE, em qualquer um dos casos:\n\n- `arguments` (objeto, opcional) — os valores dos parâmetros, como o modelo os passaria.\n- `context` (objeto, opcional) — pares string/string disponíveis para interpolação.\n\n**Resposta**\n\n- `status` — o HTTP que a **sua** API devolveu, ou `null` se a chamada nem completou.\n- `durationMs` — quanto demorou.\n- `body` — o corpo da resposta, como texto.\n- `bytes` e `truncated` — a resposta é cortada quando passa do limite.\n- `error` — a falha de transporte (DNS, TLS, timeout), ou `null`.\n\nUm `status` 500 com `error: null` quer dizer que a sua API respondeu e respondeu erro — a ferramenta está configurada certo."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": null,\n    \"durationMs\": 10004,\n    \"body\": null,\n    \"bytes\": 0,\n    \"truncated\": false,\n    \"error\": \"timeout of 10000ms exceeded\"\n}"}],"_postman_id":"bdd3af0d-a3b7-84f9-2726-f8760532b42d"}],"id":"1f50c705-3d18-4284-a5e1-cde58f5dbff7","_postman_id":"1f50c705-3d18-4284-a5e1-cde58f5dbff7","description":""},{"name":"MCP Servers","item":[{"name":"Listar servidores MCP","id":"844859a3-4e87-b789-59a5-8ff18f2c6925","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers","description":"<p>Lista os servidores MCP ligados ao assistente.</p>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><code>data[].secretSet</code> — booleano. O segredo <strong>nunca</strong> é devolvido; este campo só diz se existe um gravado.</li>\n<li><code>data[].allowedTools</code> — as ferramentas do servidor que o assistente pode usar. O servidor pode anunciar mais do que isso; só as listadas aqui ficam disponíveis.</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","mcp-servers"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"35bc8186-155e-5e96-d6eb-63cc42e86af5","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","mcp-servers"],"variable":[{"key":"assistantId"}]},"description":"Lista os servidores MCP ligados ao assistente.\n\n**Resposta**\n\n- `data[].secretSet` — booleano. O segredo **nunca** é devolvido; este campo só diz se existe um gravado.\n- `data[].allowedTools` — as ferramentas do servidor que o assistente pode usar. O servidor pode anunciar mais do que isso; só as listadas aqui ficam disponíveis."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"mcp_01JQ9B3C4D5E6F7G8H9J0K1L2M\",\n            \"label\": \"crm_interno\",\n            \"serverUrl\": \"https://mcp.cliente.com.br/sse\",\n            \"description\": \"CRM interno do cliente\",\n            \"headerName\": \"X-Api-Key\",\n            \"allowedTools\": [\"buscarCliente\", \"criarOportunidade\"],\n            \"secretSet\": true,\n            \"enabled\": true\n        }\n    ],\n    \"items\": 1\n}"}],"_postman_id":"844859a3-4e87-b789-59a5-8ff18f2c6925"},{"name":"Sondar servidor MCP","id":"84124196-7c48-f42b-e53c-433707d40caf","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"serverUrl\": \"https://mcp.cliente.com.br/sse\",\n    \"headerName\": \"X-Api-Key\",\n    \"secret\": \"COLE_AQUI_O_SEGREDO\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers/probe","description":"<p>Conecta no servidor MCP e devolve as ferramentas que ele anuncia.</p>\n<p>Use <strong>antes</strong> de criar, para saber o que colocar em <code>allowedTools</code>. <strong>Não grava nada.</strong> Responde <strong>200</strong>, não 201.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>serverUrl</code> (string, <strong>obrigatório</strong>) — https, sem usuário e senha embutidos na URL, sem placeholders.</li>\n<li><code>secret</code> (string, opcional) — até 4096 caracteres.</li>\n<li><code>headerName</code> (string, opcional) — o header em que o segredo viaja.</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><code>serverName</code> — como o servidor se identifica.</li>\n<li><code>tools[]</code> — <code>name</code> e <code>description</code> de cada ferramenta anunciada.</li>\n<li><code>error</code> — a falha de conexão, ou <code>null</code>. Um <code>error</code> preenchido com <code>tools</code> vazio quer dizer que o servidor não respondeu.</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","mcp-servers","probe"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"94df6419-fc53-f369-32c7-dd66b438937a","name":"200 OK — servidor respondeu","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"serverUrl\": \"https://mcp.cliente.com.br/sse\",\n    \"headerName\": \"X-Api-Key\",\n    \"secret\": \"COLE_AQUI_O_SEGREDO\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers/probe","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","mcp-servers","probe"],"variable":[{"key":"assistantId"}]},"description":"Conecta no servidor MCP e devolve as ferramentas que ele anuncia.\n\nUse **antes** de criar, para saber o que colocar em `allowedTools`. **Não grava nada.** Responde **200**, não 201.\n\n**Corpo**\n\n- `serverUrl` (string, **obrigatório**) — https, sem usuário e senha embutidos na URL, sem placeholders.\n- `secret` (string, opcional) — até 4096 caracteres.\n- `headerName` (string, opcional) — o header em que o segredo viaja.\n\n**Resposta**\n\n- `serverName` — como o servidor se identifica.\n- `tools[]` — `name` e `description` de cada ferramenta anunciada.\n- `error` — a falha de conexão, ou `null`. Um `error` preenchido com `tools` vazio quer dizer que o servidor não respondeu."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"serverName\": \"CRM Interno\",\n    \"tools\": [\n        {\n            \"name\": \"buscarCliente\",\n            \"description\": \"Busca um cliente por CPF ou CNPJ\"\n        },\n        {\n            \"name\": \"criarOportunidade\",\n            \"description\": \"Abre uma oportunidade no funil\"\n        }\n    ],\n    \"error\": null\n}"},{"id":"58465adf-2542-050d-eb56-97190f301494","name":"200 OK — servidor não respondeu","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"serverUrl\": \"https://mcp.cliente.com.br/sse\",\n    \"headerName\": \"X-Api-Key\",\n    \"secret\": \"COLE_AQUI_O_SEGREDO\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers/probe","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","mcp-servers","probe"],"variable":[{"key":"assistantId"}]},"description":"Conecta no servidor MCP e devolve as ferramentas que ele anuncia.\n\nUse **antes** de criar, para saber o que colocar em `allowedTools`. **Não grava nada.** Responde **200**, não 201.\n\n**Corpo**\n\n- `serverUrl` (string, **obrigatório**) — https, sem usuário e senha embutidos na URL, sem placeholders.\n- `secret` (string, opcional) — até 4096 caracteres.\n- `headerName` (string, opcional) — o header em que o segredo viaja.\n\n**Resposta**\n\n- `serverName` — como o servidor se identifica.\n- `tools[]` — `name` e `description` de cada ferramenta anunciada.\n- `error` — a falha de conexão, ou `null`. Um `error` preenchido com `tools` vazio quer dizer que o servidor não respondeu."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"tools\": [],\n    \"error\": \"Não foi possível conectar ao servidor MCP: 401 Unauthorized\"\n}"}],"_postman_id":"84124196-7c48-f42b-e53c-433707d40caf"},{"name":"Criar servidor MCP","id":"a48e6f85-8a44-5dff-1281-a5e127e477ac","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"label\": \"crm_interno\",\n    \"serverUrl\": \"https://mcp.cliente.com.br/sse\",\n    \"description\": \"CRM interno do cliente\",\n    \"headerName\": \"X-Api-Key\",\n    \"secret\": \"COLE_AQUI_O_SEGREDO\",\n    \"allowedTools\": [\"buscarCliente\", \"criarOportunidade\"],\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers","description":"<p>Liga um servidor MCP ao assistente.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>label</code> (string, <strong>obrigatório</strong>) — até 64 caracteres, no padrão <code>^[a-z][a-z0-9_]*$</code>: minúsculas, dígitos e <code>_</code>, começando por letra. Repare que é <strong>diferente</strong> do padrão de <code>name</code> das ferramentas, que não aceita <code>_</code>.</li>\n<li><code>serverUrl</code> (string, <strong>obrigatório</strong>) — <strong>https</strong>, até 2048 caracteres, sem credenciais embutidas e sem placeholders.</li>\n<li><code>description</code> (string, opcional) — até 500 caracteres.</li>\n<li><code>secret</code> (string, opcional) — até 4096 caracteres. Nunca volta na leitura.</li>\n<li><code>headerName</code> (string, opcional) — até 64 caracteres, o header que carrega o segredo.</li>\n<li><code>allowedTools</code> (array de strings, <strong>obrigatório</strong>) — de <strong>1 a 32</strong> nomes, sem repetição, cada um com até 128 caracteres. Use <strong>Sondar servidor MCP</strong> para descobrir os nomes válidos.</li>\n<li><code>enabled</code> (booleano, opcional)</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","mcp-servers"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"363a5a57-0717-8df2-174d-7eed2ee9ce12","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"label\": \"crm_interno\",\n    \"serverUrl\": \"https://mcp.cliente.com.br/sse\",\n    \"description\": \"CRM interno do cliente\",\n    \"headerName\": \"X-Api-Key\",\n    \"secret\": \"COLE_AQUI_O_SEGREDO\",\n    \"allowedTools\": [\"buscarCliente\", \"criarOportunidade\"],\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","mcp-servers"],"variable":[{"key":"assistantId"}]},"description":"Liga um servidor MCP ao assistente.\n\n**Corpo**\n\n- `label` (string, **obrigatório**) — até 64 caracteres, no padrão `^[a-z][a-z0-9_]*$`: minúsculas, dígitos e `_`, começando por letra. Repare que é **diferente** do padrão de `name` das ferramentas, que não aceita `_`.\n- `serverUrl` (string, **obrigatório**) — **https**, até 2048 caracteres, sem credenciais embutidas e sem placeholders.\n- `description` (string, opcional) — até 500 caracteres.\n- `secret` (string, opcional) — até 4096 caracteres. Nunca volta na leitura.\n- `headerName` (string, opcional) — até 64 caracteres, o header que carrega o segredo.\n- `allowedTools` (array de strings, **obrigatório**) — de **1 a 32** nomes, sem repetição, cada um com até 128 caracteres. Use **Sondar servidor MCP** para descobrir os nomes válidos.\n- `enabled` (booleano, opcional)"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"mcp_01JQ9B3C4D5E6F7G8H9J0K1L2M\",\n    \"label\": \"crm_interno\",\n    \"serverUrl\": \"https://mcp.cliente.com.br/sse\",\n    \"description\": \"CRM interno do cliente\",\n    \"headerName\": \"X-Api-Key\",\n    \"allowedTools\": [\"buscarCliente\", \"criarOportunidade\"],\n    \"secretSet\": true,\n    \"enabled\": true\n}"}],"_postman_id":"a48e6f85-8a44-5dff-1281-a5e127e477ac"},{"name":"Atualizar servidor MCP","id":"8b433c63-5aa5-b1cf-3fb7-ba6824bf5f3c","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"serverUrl\": \"https://mcp.cliente.com.br/sse\",\n    \"description\": \"CRM interno do cliente (produção)\",\n    \"headerName\": \"X-Api-Key\",\n    \"allowedTools\": [\"buscarCliente\", \"criarOportunidade\", \"listarPropostas\"],\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers/:mcpServerId","description":"<p>Substitui a configuração do servidor MCP.</p>\n<p><strong>É um PUT: mande o objeto inteiro.</strong> O que você omitir é perdido.</p>\n<p>Mesmos campos e limites de <strong>Criar servidor MCP</strong>, <strong>menos <code>label</code></strong> — o rótulo vem do registro e não pode ser trocado.</p>\n<p><code>secret</code> omitido <strong>mantém</strong> o segredo já gravado.</p>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","mcp-servers",":mcpServerId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"mcpServerId"}]}},"response":[{"id":"dfdd15b5-f2f8-fb26-4540-ba27d50da0a7","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"serverUrl\": \"https://mcp.cliente.com.br/sse\",\n    \"description\": \"CRM interno do cliente (produção)\",\n    \"headerName\": \"X-Api-Key\",\n    \"allowedTools\": [\"buscarCliente\", \"criarOportunidade\", \"listarPropostas\"],\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers/:mcpServerId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","mcp-servers",":mcpServerId"],"variable":[{"key":"assistantId"},{"key":"mcpServerId"}]},"description":"Substitui a configuração do servidor MCP.\n\n**É um PUT: mande o objeto inteiro.** O que você omitir é perdido.\n\nMesmos campos e limites de **Criar servidor MCP**, **menos `label`** — o rótulo vem do registro e não pode ser trocado.\n\n`secret` omitido **mantém** o segredo já gravado.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"8b433c63-5aa5-b1cf-3fb7-ba6824bf5f3c"},{"name":"Remover servidor MCP","id":"44a04cd0-ce2e-5a10-4c77-45843e3d09f6","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers/:mcpServerId","description":"<p>Desliga e remove o servidor MCP do assistente.</p>\n<p><strong>Parâmetros de caminho</strong></p>\n<ul>\n<li><code>mcpServerId</code> — o <code>id</code> devolvido por <strong>Listar servidores MCP</strong> ou <strong>Criar servidor MCP</strong>.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","mcp-servers",":mcpServerId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"mcpServerId"}]}},"response":[{"id":"be0e8492-4895-b6bd-dcf3-95256daea7ba","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers/:mcpServerId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","mcp-servers",":mcpServerId"],"variable":[{"key":"assistantId"},{"key":"mcpServerId"}]},"description":"Desliga e remove o servidor MCP do assistente.\n\n**Parâmetros de caminho**\n\n- `mcpServerId` — o `id` devolvido por **Listar servidores MCP** ou **Criar servidor MCP**.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"44a04cd0-ce2e-5a10-4c77-45843e3d09f6"},{"name":"Ativar ou desativar servidor MCP","id":"4059725f-13cd-d83b-715f-4cc20161f382","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PATCH","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"enabled\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers/:mcpServerId/enabled","description":"<p>Liga ou desliga o servidor MCP sem apagar a configuração. Desligado, o segredo e a lista de ferramentas permanecem gravados.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>enabled</code> (booleano, <strong>obrigatório</strong>). Ausente ou <code>null</code> dá <code>400</code>.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","mcp-servers",":mcpServerId","enabled"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"mcpServerId"}]}},"response":[{"id":"3c5d84a4-b7ad-39ec-e1ad-5e7441fb26cd","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"enabled\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/mcp-servers/:mcpServerId/enabled","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","mcp-servers",":mcpServerId","enabled"],"variable":[{"key":"assistantId"},{"key":"mcpServerId"}]},"description":"Liga ou desliga o servidor MCP sem apagar a configuração. Desligado, o segredo e a lista de ferramentas permanecem gravados.\n\n**Corpo**\n\n- `enabled` (booleano, **obrigatório**). Ausente ou `null` dá `400`.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"4059725f-13cd-d83b-715f-4cc20161f382"}],"id":"d26161bc-4a46-41c4-aefd-85d922d63bb8","_postman_id":"d26161bc-4a46-41c4-aefd-85d922d63bb8","description":""},{"name":"Sub-agentes","item":[{"name":"Base de Conhecimento","item":[{"name":"Enviar arquivo (sub-agente)","id":"0d03d8ad-38da-a972-74a8-14fc75086761","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>O arquivo. Máximo 5 MB. PDF, DOC, DOCX ou TXT.</p>\n","key":"file","type":"file","value":null}]},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/knowledge-base/files","description":"<p>Envia um arquivo para a base de conhecimento <strong>do sub-agente</strong>, que é separada da do assistente.</p>\n<p><code>multipart/form-data</code>, <strong>um arquivo por requisição</strong>, no campo <code>file</code>.</p>\n<p><strong>Limites</strong> — iguais aos do assistente:</p>\n<ul>\n<li>Tamanho máximo: <strong>5 MB</strong>.</li>\n<li>Um único arquivo, e nenhum outro campo no formulário.</li>\n<li>Tipos aceitos: <code>application/pdf</code>, <code>application/msword</code>, <code>application/vnd.openxmlformats-officedocument.wordprocessingml.document</code>, <code>text/plain</code>.</li>\n</ul>\n<p>Não defina <code>Content-Type</code> à mão — deixe o Postman montar o boundary.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","knowledge-base","files"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"396ef0d3-a07f-9ff7-914c-87068714990f","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"O arquivo. Máximo 5 MB. PDF, DOC, DOCX ou TXT.","key":"file","type":"file","value":null}]},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/knowledge-base/files","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","knowledge-base","files"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Envia um arquivo para a base de conhecimento **do sub-agente**, que é separada da do assistente.\n\n`multipart/form-data`, **um arquivo por requisição**, no campo `file`.\n\n**Limites** — iguais aos do assistente:\n\n- Tamanho máximo: **5 MB**.\n- Um único arquivo, e nenhum outro campo no formulário.\n- Tipos aceitos: `application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `text/plain`.\n\nNão defina `Content-Type` à mão — deixe o Postman montar o boundary."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"f_01JQ9D5E6F7G8H9J0K1L2M3N4P\",\n        \"name\": \"politica-de-remarcacao.pdf\",\n        \"mimetype\": \"application/pdf\",\n        \"size\": 91204\n    }\n}"}],"_postman_id":"0d03d8ad-38da-a972-74a8-14fc75086761"},{"name":"Remover arquivo (sub-agente)","id":"d0afd5c3-ab81-6e8f-1945-688202aa6aef","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/knowledge-base/files/:fileId","description":"<p>Remove um arquivo da base de conhecimento do sub-agente.</p>\n<p><strong>Parâmetros de caminho</strong></p>\n<ul>\n<li><code>fileId</code> — o <code>data.id</code> devolvido por <strong>Enviar arquivo (sub-agente)</strong>.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","knowledge-base","files",":fileId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"},{"type":"any","key":"fileId"}]}},"response":[{"id":"806d3a19-c99f-8683-7ed4-beee283d1530","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/knowledge-base/files/:fileId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","knowledge-base","files",":fileId"],"variable":[{"key":"assistantId"},{"key":"subAgentId"},{"key":"fileId"}]},"description":"Remove um arquivo da base de conhecimento do sub-agente.\n\n**Parâmetros de caminho**\n\n- `fileId` — o `data.id` devolvido por **Enviar arquivo (sub-agente)**.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"d0afd5c3-ab81-6e8f-1945-688202aa6aef"},{"name":"Adicionar site (sub-agente)","id":"2096d184-e997-f8a6-3d2e-fbb5361d83b8","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"url\": \"https://bradial.com.br/ajuda/agendamento\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/knowledge-base/websites","description":"<p>Registra um site como fonte da base de conhecimento do sub-agente.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>url</code> (string, <strong>obrigatório</strong>) — não pode ser vazia.</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<p><code>data.domain</code> é o valor que vai no caminho de <strong>Remover site (sub-agente)</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","knowledge-base","websites"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"500c443a-f63c-3063-5d96-498b84dde74e","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"url\": \"https://bradial.com.br/ajuda/agendamento\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/knowledge-base/websites","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","knowledge-base","websites"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Registra um site como fonte da base de conhecimento do sub-agente.\n\n**Corpo**\n\n- `url` (string, **obrigatório**) — não pode ser vazia.\n\n**Resposta**\n\n`data.domain` é o valor que vai no caminho de **Remover site (sub-agente)**."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"domain\": \"bradial.com.br\"\n    }\n}"}],"_postman_id":"2096d184-e997-f8a6-3d2e-fbb5361d83b8"},{"name":"Remover site (sub-agente)","id":"bac17c59-4094-444e-d6dd-4748a85d6a85","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/knowledge-base/websites/:domain","description":"<p>Remove um domínio da base de conhecimento do sub-agente.</p>\n<p><strong>Parâmetros de caminho</strong></p>\n<ul>\n<li><code>domain</code> — exatamente o <code>data.domain</code> devolvido por <strong>Adicionar site (sub-agente)</strong>. Pode mandar cru: o BFF faz o percent-encoding.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","knowledge-base","websites",":domain"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"},{"type":"any","key":"domain"}]}},"response":[{"id":"dde3644c-2bc0-88c7-f6c6-4a16361d94e6","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/knowledge-base/websites/:domain","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","knowledge-base","websites",":domain"],"variable":[{"key":"assistantId"},{"key":"subAgentId"},{"key":"domain"}]},"description":"Remove um domínio da base de conhecimento do sub-agente.\n\n**Parâmetros de caminho**\n\n- `domain` — exatamente o `data.domain` devolvido por **Adicionar site (sub-agente)**. Pode mandar cru: o BFF faz o percent-encoding.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"bac17c59-4094-444e-d6dd-4748a85d6a85"}],"id":"b20bdf0a-cfbc-415a-9972-66c27ca80c37","_postman_id":"b20bdf0a-cfbc-415a-9972-66c27ca80c37","description":""},{"name":"Ferramentas","item":[{"name":"Listar ferramentas (sub-agente)","id":"636f2401-0fc8-c09b-0871-6ad03a61d4a0","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools","description":"<p>Lista as ferramentas HTTP <strong>do sub-agente</strong>.</p>\n<p>São independentes das do assistente principal: o sub-agente só enxerga as próprias, e o assistente não enxerga estas.</p>\n<p><code>auth.secretSet</code> diz se há segredo gravado; o segredo nunca é devolvido.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"57949bfe-20dd-7353-dd62-dcd9dc897d0c","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Lista as ferramentas HTTP **do sub-agente**.\n\nSão independentes das do assistente principal: o sub-agente só enxerga as próprias, e o assistente não enxerga estas.\n\n`auth.secretSet` diz se há segredo gravado; o segredo nunca é devolvido."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"name\": \"consultarDisponibilidade\",\n            \"description\": \"Consulta os horários livres de uma data.\",\n            \"parameters\": {\n                \"properties\": {\n                    \"data\": {\n                        \"type\": \"string\",\n                        \"description\": \"Data no formato AAAA-MM-DD\"\n                    }\n                },\n                \"required\": [\"data\"]\n            },\n            \"api\": {\n                \"method\": \"GET\",\n                \"url\": \"https://api.cliente.com.br/agenda?data={{data}}\",\n                \"headers\": { \"Accept\": \"application/json\" }\n            },\n            \"auth\": {\n                \"type\": \"none\",\n                \"secretSet\": false\n            },\n            \"errorMessage\": \"Não consegui ver a agenda agora. Tente de novo em instantes.\",\n            \"enabled\": true\n        }\n    ],\n    \"items\": 1\n}"}],"_postman_id":"636f2401-0fc8-c09b-0871-6ad03a61d4a0"},{"name":"Criar ferramenta (sub-agente)","id":"be2961cc-bcb0-347f-b3b0-4298370e9805","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"consultarDisponibilidade\",\n    \"description\": \"Consulta os horários livres de uma data. Use quando o cliente perguntar o que tem disponível.\",\n    \"parameters\": {\n        \"properties\": {\n            \"data\": {\n                \"type\": \"string\",\n                \"description\": \"Data no formato AAAA-MM-DD\"\n            }\n        },\n        \"required\": [\"data\"]\n    },\n    \"api\": {\n        \"method\": \"GET\",\n        \"url\": \"https://api.cliente.com.br/agenda?data={{data}}\",\n        \"headers\": { \"Accept\": \"application/json\" }\n    },\n    \"auth\": { \"type\": \"none\" },\n    \"errorMessage\": \"Não consegui ver a agenda agora. Tente de novo em instantes.\",\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools","description":"<p>Cria uma ferramenta HTTP no sub-agente.</p>\n<p>Mesmos campos e limites de <strong>Assistentes › Ferramentas › Criar ferramenta</strong>:</p>\n<ul>\n<li><code>name</code> até 64 caracteres, padrão <code>^[a-z][a-zA-Z0-9]*$</code>, sem o prefixo reservado <code>native</code>.</li>\n<li><code>description</code> e <code>errorMessage</code> até 500 caracteres cada.</li>\n<li>No máximo <strong>10</strong> parâmetros em <code>parameters.properties</code>.</li>\n<li><code>api.url</code> obrigatoriamente <strong>https</strong>, até 2048 caracteres.</li>\n<li><code>auth.type</code> em <code>none</code>, <code>bearer</code>, <code>apiKey</code> ou <code>basic</code>, com <code>headerName</code> <strong>obrigatório</strong> quando for <code>apiKey</code>.</li>\n</ul>\n<p>Use <code>{{nomeDoParametro}}</code> na <code>url</code>, nos <code>headers</code> e no <code>body</code> para interpolar os argumentos.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"959ba818-472d-cc12-50f7-75e3c8c2412f","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"consultarDisponibilidade\",\n    \"description\": \"Consulta os horários livres de uma data. Use quando o cliente perguntar o que tem disponível.\",\n    \"parameters\": {\n        \"properties\": {\n            \"data\": {\n                \"type\": \"string\",\n                \"description\": \"Data no formato AAAA-MM-DD\"\n            }\n        },\n        \"required\": [\"data\"]\n    },\n    \"api\": {\n        \"method\": \"GET\",\n        \"url\": \"https://api.cliente.com.br/agenda?data={{data}}\",\n        \"headers\": { \"Accept\": \"application/json\" }\n    },\n    \"auth\": { \"type\": \"none\" },\n    \"errorMessage\": \"Não consegui ver a agenda agora. Tente de novo em instantes.\",\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Cria uma ferramenta HTTP no sub-agente.\n\nMesmos campos e limites de **Assistentes › Ferramentas › Criar ferramenta**:\n\n- `name` até 64 caracteres, padrão `^[a-z][a-zA-Z0-9]*$`, sem o prefixo reservado `native`.\n- `description` e `errorMessage` até 500 caracteres cada.\n- No máximo **10** parâmetros em `parameters.properties`.\n- `api.url` obrigatoriamente **https**, até 2048 caracteres.\n- `auth.type` em `none`, `bearer`, `apiKey` ou `basic`, com `headerName` **obrigatório** quando for `apiKey`.\n\nUse `{{nomeDoParametro}}` na `url`, nos `headers` e no `body` para interpolar os argumentos."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"consultarDisponibilidade\",\n    \"description\": \"Consulta os horários livres de uma data. Use quando o cliente perguntar o que tem disponível.\",\n    \"parameters\": {\n        \"properties\": {\n            \"data\": {\n                \"type\": \"string\",\n                \"description\": \"Data no formato AAAA-MM-DD\"\n            }\n        },\n        \"required\": [\"data\"]\n    },\n    \"api\": {\n        \"method\": \"GET\",\n        \"url\": \"https://api.cliente.com.br/agenda?data={{data}}\",\n        \"headers\": { \"Accept\": \"application/json\" }\n    },\n    \"auth\": {\n        \"type\": \"none\",\n        \"secretSet\": false\n    },\n    \"errorMessage\": \"Não consegui ver a agenda agora. Tente de novo em instantes.\",\n    \"enabled\": true\n}"}],"_postman_id":"be2961cc-bcb0-347f-b3b0-4298370e9805"},{"name":"Atualizar ferramenta (sub-agente)","id":"d88240e8-7591-76ad-90a1-de97c603dcb1","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PUT","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"description\": \"Consulta os horários livres de uma data, já descontando os bloqueios.\",\n    \"parameters\": {\n        \"properties\": {\n            \"data\": {\n                \"type\": \"string\",\n                \"description\": \"Data no formato AAAA-MM-DD\"\n            }\n        },\n        \"required\": [\"data\"]\n    },\n    \"api\": {\n        \"method\": \"GET\",\n        \"url\": \"https://api.cliente.com.br/v2/agenda?data={{data}}\",\n        \"headers\": { \"Accept\": \"application/json\" }\n    },\n    \"auth\": { \"type\": \"none\" },\n    \"errorMessage\": \"Não consegui ver a agenda agora. Tente de novo em instantes.\",\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools/:toolName","description":"<p>Substitui a definição da ferramenta do sub-agente.</p>\n<p><strong>É um PUT: mande o objeto inteiro.</strong> O que você omitir é perdido.</p>\n<p><code>name</code> não entra no corpo — vem do caminho e não pode ser trocado.</p>\n<p><code>secret</code> omitido <strong>mantém</strong> o segredo já gravado.</p>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools",":toolName"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"},{"type":"any","key":"toolName"}]}},"response":[{"id":"1e317cd5-b903-9d7c-668a-cc86143fc29b","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PUT","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"description\": \"Consulta os horários livres de uma data, já descontando os bloqueios.\",\n    \"parameters\": {\n        \"properties\": {\n            \"data\": {\n                \"type\": \"string\",\n                \"description\": \"Data no formato AAAA-MM-DD\"\n            }\n        },\n        \"required\": [\"data\"]\n    },\n    \"api\": {\n        \"method\": \"GET\",\n        \"url\": \"https://api.cliente.com.br/v2/agenda?data={{data}}\",\n        \"headers\": { \"Accept\": \"application/json\" }\n    },\n    \"auth\": { \"type\": \"none\" },\n    \"errorMessage\": \"Não consegui ver a agenda agora. Tente de novo em instantes.\",\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools/:toolName","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools",":toolName"],"variable":[{"key":"assistantId"},{"key":"subAgentId"},{"key":"toolName"}]},"description":"Substitui a definição da ferramenta do sub-agente.\n\n**É um PUT: mande o objeto inteiro.** O que você omitir é perdido.\n\n`name` não entra no corpo — vem do caminho e não pode ser trocado.\n\n`secret` omitido **mantém** o segredo já gravado.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"d88240e8-7591-76ad-90a1-de97c603dcb1"},{"name":"Remover ferramenta (sub-agente)","id":"a4e47188-d975-b2d5-fe03-99d5e2434402","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools/:toolName","description":"<p>Remove a ferramenta do sub-agente.</p>\n<p><strong>Parâmetros de caminho</strong></p>\n<ul>\n<li><code>toolName</code> — o <code>name</code> da ferramenta, como aparece em <strong>Listar ferramentas (sub-agente)</strong>.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools",":toolName"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"},{"type":"any","key":"toolName"}]}},"response":[{"id":"27cbd8d5-e75c-136a-f8e8-900ecb18aa09","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools/:toolName","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools",":toolName"],"variable":[{"key":"assistantId"},{"key":"subAgentId"},{"key":"toolName"}]},"description":"Remove a ferramenta do sub-agente.\n\n**Parâmetros de caminho**\n\n- `toolName` — o `name` da ferramenta, como aparece em **Listar ferramentas (sub-agente)**.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"a4e47188-d975-b2d5-fe03-99d5e2434402"},{"name":"Ativar ou desativar ferramenta (sub-agente)","id":"e846b15e-fb47-87bd-7b87-db6d3762d604","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PATCH","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"enabled\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools/:toolName/enabled","description":"<p>Liga ou desliga a ferramenta do sub-agente sem apagar a configuração.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>enabled</code> (booleano, <strong>obrigatório</strong>). Ausente ou <code>null</code> dá <code>400</code>.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools",":toolName","enabled"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"},{"type":"any","key":"toolName"}]}},"response":[{"id":"1e2cd230-1f98-8841-170f-b19cc8612623","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"enabled\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools/:toolName/enabled","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools",":toolName","enabled"],"variable":[{"key":"assistantId"},{"key":"subAgentId"},{"key":"toolName"}]},"description":"Liga ou desliga a ferramenta do sub-agente sem apagar a configuração.\n\n**Corpo**\n\n- `enabled` (booleano, **obrigatório**). Ausente ou `null` dá `400`.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"e846b15e-fb47-87bd-7b87-db6d3762d604"},{"name":"Testar ferramenta (sub-agente)","id":"0ccc1cf2-c354-be48-e4ad-542ae2f01300","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"toolName\": \"consultarDisponibilidade\",\n    \"arguments\": {\n        \"data\": \"2026-10-05\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools/test","description":"<p>Dispara a ferramenta do sub-agente <strong>de verdade</strong> contra a sua API e devolve o resultado.</p>\n<p>Responde <strong>200</strong>, não 201.</p>\n<p><strong>Corpo</strong> — mande <code>toolName</code> (ferramenta já salva) <strong>ou</strong> <code>tool</code> (definição completa ainda não salva, com os mesmos campos de <strong>Criar ferramenta (sub-agente)</strong>). <code>arguments</code> e <code>context</code> são opcionais.</p>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><code>status</code> — o HTTP que a sua API devolveu, ou <code>null</code> se a chamada nem completou.</li>\n<li><code>durationMs</code>, <code>bytes</code>, <code>truncated</code> — a resposta é cortada quando passa do limite.</li>\n<li><code>error</code> — a falha de transporte, ou <code>null</code>.</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools","test"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"83c491ab-46cf-e02d-eb4d-da2fb149dda7","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"toolName\": \"consultarDisponibilidade\",\n    \"arguments\": {\n        \"data\": \"2026-10-05\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/tools/test","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","tools","test"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Dispara a ferramenta do sub-agente **de verdade** contra a sua API e devolve o resultado.\n\nResponde **200**, não 201.\n\n**Corpo** — mande `toolName` (ferramenta já salva) **ou** `tool` (definição completa ainda não salva, com os mesmos campos de **Criar ferramenta (sub-agente)**). `arguments` e `context` são opcionais.\n\n**Resposta**\n\n- `status` — o HTTP que a sua API devolveu, ou `null` se a chamada nem completou.\n- `durationMs`, `bytes`, `truncated` — a resposta é cortada quando passa do limite.\n- `error` — a falha de transporte, ou `null`."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": 200,\n    \"durationMs\": 288,\n    \"body\": \"{\\\"horarios\\\":[\\\"09:00\\\",\\\"10:30\\\",\\\"14:00\\\"]}\",\n    \"bytes\": 39,\n    \"truncated\": false,\n    \"error\": null\n}"}],"_postman_id":"0ccc1cf2-c354-be48-e4ad-542ae2f01300"}],"id":"3f2eb276-57aa-4825-85ce-71dad8e6924f","_postman_id":"3f2eb276-57aa-4825-85ce-71dad8e6924f","description":""},{"name":"MCP Servers","item":[{"name":"Listar servidores MCP (sub-agente)","id":"9fde89c6-7e17-9804-1e6c-7f017b51eea3","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers","description":"<p>Lista os servidores MCP ligados ao sub-agente, independentes dos do assistente principal.</p>\n<p><code>secretSet</code> diz se há segredo gravado; o segredo nunca é devolvido.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"02597b87-1368-c587-e65c-f0059d77c796","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Lista os servidores MCP ligados ao sub-agente, independentes dos do assistente principal.\n\n`secretSet` diz se há segredo gravado; o segredo nunca é devolvido."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"mcp_01JQ9E6F7G8H9J0K1L2M3N4P5Q\",\n            \"label\": \"agenda_google\",\n            \"serverUrl\": \"https://mcp.cliente.com.br/agenda\",\n            \"description\": \"Agenda do cliente\",\n            \"headerName\": \"X-Api-Key\",\n            \"allowedTools\": [\"listarEventos\", \"criarEvento\"],\n            \"secretSet\": true,\n            \"enabled\": true\n        }\n    ],\n    \"items\": 1\n}"}],"_postman_id":"9fde89c6-7e17-9804-1e6c-7f017b51eea3"},{"name":"Sondar servidor MCP (sub-agente)","id":"8baad857-2365-419f-535e-75e21e9c1726","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"serverUrl\": \"https://mcp.cliente.com.br/agenda\",\n    \"headerName\": \"X-Api-Key\",\n    \"secret\": \"COLE_AQUI_O_SEGREDO\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers/probe","description":"<p>Conecta no servidor MCP e devolve as ferramentas anunciadas, para você saber o que colocar em <code>allowedTools</code>.</p>\n<p><strong>Não grava nada.</strong> Responde <strong>200</strong>, não 201.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>serverUrl</code> (string, <strong>obrigatório</strong>) — https, sem credenciais embutidas, sem placeholders.</li>\n<li><code>secret</code> (string, opcional)</li>\n<li><code>headerName</code> (string, opcional)</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><code>tools[]</code> com <code>name</code> e <code>description</code>, <code>serverName</code>, e <code>error</code> (<code>null</code> quando deu certo).</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers","probe"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"0cfd6df6-8606-66ca-870e-945667cb4dc4","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"serverUrl\": \"https://mcp.cliente.com.br/agenda\",\n    \"headerName\": \"X-Api-Key\",\n    \"secret\": \"COLE_AQUI_O_SEGREDO\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers/probe","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers","probe"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Conecta no servidor MCP e devolve as ferramentas anunciadas, para você saber o que colocar em `allowedTools`.\n\n**Não grava nada.** Responde **200**, não 201.\n\n**Corpo**\n\n- `serverUrl` (string, **obrigatório**) — https, sem credenciais embutidas, sem placeholders.\n- `secret` (string, opcional)\n- `headerName` (string, opcional)\n\n**Resposta**\n\n- `tools[]` com `name` e `description`, `serverName`, e `error` (`null` quando deu certo)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"serverName\": \"Agenda\",\n    \"tools\": [\n        {\n            \"name\": \"listarEventos\",\n            \"description\": \"Lista os eventos de um período\"\n        },\n        {\n            \"name\": \"criarEvento\",\n            \"description\": \"Cria um evento na agenda\"\n        }\n    ],\n    \"error\": null\n}"}],"_postman_id":"8baad857-2365-419f-535e-75e21e9c1726"},{"name":"Criar servidor MCP (sub-agente)","id":"3cec34a8-0915-4f5f-9f7a-03cc7e38bed4","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"label\": \"agenda_google\",\n    \"serverUrl\": \"https://mcp.cliente.com.br/agenda\",\n    \"description\": \"Agenda do cliente\",\n    \"headerName\": \"X-Api-Key\",\n    \"secret\": \"COLE_AQUI_O_SEGREDO\",\n    \"allowedTools\": [\"listarEventos\", \"criarEvento\"],\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers","description":"<p>Liga um servidor MCP ao sub-agente.</p>\n<p>Mesmos campos e limites de <strong>Assistentes › MCP Servers › Criar servidor MCP</strong>:</p>\n<ul>\n<li><code>label</code> até 64 caracteres, padrão <code>^[a-z][a-z0-9_]*$</code>.</li>\n<li><code>serverUrl</code> <strong>https</strong>, até 2048 caracteres, sem credenciais embutidas e sem placeholders.</li>\n<li><code>description</code> até 500, <code>secret</code> até 4096, <code>headerName</code> até 64.</li>\n<li><code>allowedTools</code> com <strong>1 a 32</strong> nomes únicos, cada um até 128 caracteres. Use <strong>Sondar servidor MCP (sub-agente)</strong> para descobri-los.</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"15353235-6f0d-4a85-4ba6-ff560cd35533","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"label\": \"agenda_google\",\n    \"serverUrl\": \"https://mcp.cliente.com.br/agenda\",\n    \"description\": \"Agenda do cliente\",\n    \"headerName\": \"X-Api-Key\",\n    \"secret\": \"COLE_AQUI_O_SEGREDO\",\n    \"allowedTools\": [\"listarEventos\", \"criarEvento\"],\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Liga um servidor MCP ao sub-agente.\n\nMesmos campos e limites de **Assistentes › MCP Servers › Criar servidor MCP**:\n\n- `label` até 64 caracteres, padrão `^[a-z][a-z0-9_]*$`.\n- `serverUrl` **https**, até 2048 caracteres, sem credenciais embutidas e sem placeholders.\n- `description` até 500, `secret` até 4096, `headerName` até 64.\n- `allowedTools` com **1 a 32** nomes únicos, cada um até 128 caracteres. Use **Sondar servidor MCP (sub-agente)** para descobri-los."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"mcp_01JQ9E6F7G8H9J0K1L2M3N4P5Q\",\n    \"label\": \"agenda_google\",\n    \"serverUrl\": \"https://mcp.cliente.com.br/agenda\",\n    \"description\": \"Agenda do cliente\",\n    \"headerName\": \"X-Api-Key\",\n    \"allowedTools\": [\"listarEventos\", \"criarEvento\"],\n    \"secretSet\": true,\n    \"enabled\": true\n}"}],"_postman_id":"3cec34a8-0915-4f5f-9f7a-03cc7e38bed4"},{"name":"Atualizar servidor MCP (sub-agente)","id":"947b5dca-24fd-725c-6802-21f102cd77fc","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"serverUrl\": \"https://mcp.cliente.com.br/agenda\",\n    \"description\": \"Agenda do cliente (produção)\",\n    \"headerName\": \"X-Api-Key\",\n    \"allowedTools\": [\"listarEventos\", \"criarEvento\", \"cancelarEvento\"],\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers/:id","description":"<p>Substitui a configuração do servidor MCP do sub-agente.</p>\n<p><strong>É um PUT: mande o objeto inteiro.</strong> <code>label</code> não entra no corpo.</p>\n<p><code>secret</code> omitido <strong>mantém</strong> o segredo já gravado.</p>\n<p>⚠️ Repare que aqui o parâmetro de caminho chama-se <strong><code>:id</code></strong>, e não <code>:mcpServerId</code> como na rota equivalente do assistente. O valor é o mesmo <code>id</code> que a listagem devolve.</p>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers",":id"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"},{"type":"any","key":"id"}]}},"response":[{"id":"f557eaa6-12f6-f8f2-2d2b-d68681e91506","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PUT","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"serverUrl\": \"https://mcp.cliente.com.br/agenda\",\n    \"description\": \"Agenda do cliente (produção)\",\n    \"headerName\": \"X-Api-Key\",\n    \"allowedTools\": [\"listarEventos\", \"criarEvento\", \"cancelarEvento\"],\n    \"enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers/:id","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers",":id"],"variable":[{"key":"assistantId"},{"key":"subAgentId"},{"key":"id"}]},"description":"Substitui a configuração do servidor MCP do sub-agente.\n\n**É um PUT: mande o objeto inteiro.** `label` não entra no corpo.\n\n`secret` omitido **mantém** o segredo já gravado.\n\n⚠️ Repare que aqui o parâmetro de caminho chama-se **`:id`**, e não `:mcpServerId` como na rota equivalente do assistente. O valor é o mesmo `id` que a listagem devolve.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"947b5dca-24fd-725c-6802-21f102cd77fc"},{"name":"Remover servidor MCP (sub-agente)","id":"bb7e9aed-9c42-b6c0-3a63-2abc3ddafe24","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers/:id","description":"<p>Desliga e remove o servidor MCP do sub-agente.</p>\n<p>⚠️ O parâmetro de caminho chama-se <strong><code>:id</code></strong>, e não <code>:mcpServerId</code>. O valor é o <code>id</code> devolvido por <strong>Listar servidores MCP (sub-agente)</strong>.</p>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers",":id"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"},{"type":"any","key":"id"}]}},"response":[{"id":"e7020960-053e-a568-0cba-5949d57f97c0","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers/:id","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers",":id"],"variable":[{"key":"assistantId"},{"key":"subAgentId"},{"key":"id"}]},"description":"Desliga e remove o servidor MCP do sub-agente.\n\n⚠️ O parâmetro de caminho chama-se **`:id`**, e não `:mcpServerId`. O valor é o `id` devolvido por **Listar servidores MCP (sub-agente)**.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"bb7e9aed-9c42-b6c0-3a63-2abc3ddafe24"},{"name":"Ativar ou desativar servidor MCP (sub-agente)","id":"f1427d67-f3b9-280e-4cee-a86d5e6d347c","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PATCH","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"enabled\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers/:id/enabled","description":"<p>Liga ou desliga o servidor MCP do sub-agente sem apagar a configuração.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>enabled</code> (booleano, <strong>obrigatório</strong>). Ausente ou <code>null</code> dá <code>400</code>.</li>\n</ul>\n<p>⚠️ O parâmetro de caminho chama-se <strong><code>:id</code></strong>, e não <code>:mcpServerId</code>.</p>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers",":id","enabled"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"},{"type":"any","key":"id"}]}},"response":[{"id":"a568f428-64ac-7b10-0811-fdfef25450d1","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"enabled\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/mcp-servers/:id/enabled","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","mcp-servers",":id","enabled"],"variable":[{"key":"assistantId"},{"key":"subAgentId"},{"key":"id"}]},"description":"Liga ou desliga o servidor MCP do sub-agente sem apagar a configuração.\n\n**Corpo**\n\n- `enabled` (booleano, **obrigatório**). Ausente ou `null` dá `400`.\n\n⚠️ O parâmetro de caminho chama-se **`:id`**, e não `:mcpServerId`.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"f1427d67-f3b9-280e-4cee-a86d5e6d347c"}],"id":"913640cd-cfe4-401c-b6b3-ef25138bc89e","_postman_id":"913640cd-cfe4-401c-b6b3-ef25138bc89e","description":""},{"name":"Listar sub-agentes","id":"e969ea3d-4cfd-51ac-8fc3-21990b431fee","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents","description":"<p>Lista os sub-agentes do assistente.</p>\n<p>Sub-agente é um especialista para o qual o assistente principal <strong>transfere a conversa</strong> quando o assunto se encaixa no <code>handoffDescription</code> dele.</p>\n<p><strong>Resposta</strong></p>\n<p>A lista é enxuta de propósito: só <code>id</code>, <code>name</code>, <code>handoffDescription</code>, <code>model</code>, <code>enabled</code> e as datas. Para <code>description</code>, <code>temperature</code>, base de conhecimento, agenda e servidores MCP, use <strong>Obter sub-agente</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"f810eb2b-3181-bc9d-13c8-6c8e92998ce0","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents"],"variable":[{"key":"assistantId"}]},"description":"Lista os sub-agentes do assistente.\n\nSub-agente é um especialista para o qual o assistente principal **transfere a conversa** quando o assunto se encaixa no `handoffDescription` dele.\n\n**Resposta**\n\nA lista é enxuta de propósito: só `id`, `name`, `handoffDescription`, `model`, `enabled` e as datas. Para `description`, `temperature`, base de conhecimento, agenda e servidores MCP, use **Obter sub-agente**."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"sa_01JQ9C4D5E6F7G8H9J0K1L2M3N\",\n            \"name\": \"Agendamento\",\n            \"handoffDescription\": \"Assuntos de marcar, remarcar ou cancelar horário, e dúvidas sobre disponibilidade.\",\n            \"model\": \"gpt-4o-mini\",\n            \"enabled\": true,\n            \"createdAt\": \"2026-09-01T10:00:00.000Z\",\n            \"updatedAt\": \"2026-09-18T16:22:40.000Z\"\n        },\n        {\n            \"id\": \"sa_01JR5P8Q9R0S1T2U3V4W5X6Y7Z\",\n            \"name\": \"Segunda via de boleto\",\n            \"handoffDescription\": \"Pedidos de segunda via, código de barras e vencimento de boleto.\",\n            \"model\": \"gpt-4o-mini\",\n            \"enabled\": false,\n            \"createdAt\": \"2026-09-10T08:30:00.000Z\",\n            \"updatedAt\": \"2026-09-21T09:05:13.000Z\"\n        }\n    ],\n    \"items\": 2\n}"}],"_postman_id":"e969ea3d-4cfd-51ac-8fc3-21990b431fee"},{"name":"Obter sub-agente","id":"7779d05b-c8e2-7a6f-c2ba-365a702f7daa","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId","description":"<p>Devolve um sub-agente com a configuração completa: instruções, base de conhecimento, agenda e servidores MCP.</p>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><code>calendar</code> — <code>null</code> quando o sub-agente não tem agenda configurada.</li>\n<li><code>knowledgeBase</code> — arquivos e sites <strong>próprios do sub-agente</strong>, separados dos do assistente.</li>\n<li><code>mcpServers</code> — os servidores ligados a este sub-agente.</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"a514ab4d-269f-54a2-b9ec-299f3770475f","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Devolve um sub-agente com a configuração completa: instruções, base de conhecimento, agenda e servidores MCP.\n\n**Resposta**\n\n- `calendar` — `null` quando o sub-agente não tem agenda configurada.\n- `knowledgeBase` — arquivos e sites **próprios do sub-agente**, separados dos do assistente.\n- `mcpServers` — os servidores ligados a este sub-agente."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"sa_01JQ9C4D5E6F7G8H9J0K1L2M3N\",\n    \"name\": \"Agendamento\",\n    \"handoffDescription\": \"Assuntos de marcar, remarcar ou cancelar horário, e dúvidas sobre disponibilidade.\",\n    \"description\": \"Você cuida da agenda. Confirme sempre a data e o horário antes de gravar.\",\n    \"model\": \"gpt-4o-mini\",\n    \"temperature\": 0.3,\n    \"enabled\": true,\n    \"knowledgeBase\": {\n        \"files\": [],\n        \"websites\": []\n    },\n    \"calendar\": null,\n    \"mcpServers\": [],\n    \"createdAt\": \"2026-09-01T10:00:00.000Z\",\n    \"updatedAt\": \"2026-09-18T16:22:40.000Z\"\n}"}],"_postman_id":"7779d05b-c8e2-7a6f-c2ba-365a702f7daa"},{"name":"Criar sub-agente","id":"df99d533-5631-f7ce-bbee-4ded6ded9df1","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Agendamento\",\n    \"handoffDescription\": \"Assuntos de marcar, remarcar ou cancelar horário, e dúvidas sobre disponibilidade.\",\n    \"description\": \"Você cuida da agenda. Confirme sempre a data e o horário antes de gravar.\",\n    \"model\": \"gpt-4o-mini\",\n    \"temperature\": 0.3\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents","description":"<p>Cria um sub-agente no assistente.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>name</code> (string, <strong>obrigatório</strong>) — até 256 caracteres.</li>\n<li><code>handoffDescription</code> (string, <strong>obrigatório</strong>) — até 1.024 caracteres. <strong>É por este texto que o assistente principal decide transferir</strong>, então descreva os <em>assuntos</em> que o sub-agente resolve, não o sub-agente em si.</li>\n<li><code>description</code> (string, <strong>obrigatório</strong>) — até 156.000 caracteres. As instruções do sub-agente.</li>\n<li><code>model</code> (string, opcional) — um dos <code>id</code> de <strong>Modelos disponíveis</strong>.</li>\n<li><code>temperature</code> (número, opcional) — de <strong>0 a 2</strong>, no máximo <strong>2 casas decimais</strong>.</li>\n<li><code>calendar</code> (objeto, opcional) — agenda. Quando vier, exige <code>enabled</code> (booleano), <code>resources</code> (array), <code>rules</code>, <code>event</code> e <code>operations</code> (objetos).</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"1c74238f-6a70-22b4-e24e-2b3201649e51","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Agendamento\",\n    \"handoffDescription\": \"Assuntos de marcar, remarcar ou cancelar horário, e dúvidas sobre disponibilidade.\",\n    \"description\": \"Você cuida da agenda. Confirme sempre a data e o horário antes de gravar.\",\n    \"model\": \"gpt-4o-mini\",\n    \"temperature\": 0.3\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents"],"variable":[{"key":"assistantId"}]},"description":"Cria um sub-agente no assistente.\n\n**Corpo**\n\n- `name` (string, **obrigatório**) — até 256 caracteres.\n- `handoffDescription` (string, **obrigatório**) — até 1.024 caracteres. **É por este texto que o assistente principal decide transferir**, então descreva os *assuntos* que o sub-agente resolve, não o sub-agente em si.\n- `description` (string, **obrigatório**) — até 156.000 caracteres. As instruções do sub-agente.\n- `model` (string, opcional) — um dos `id` de **Modelos disponíveis**.\n- `temperature` (número, opcional) — de **0 a 2**, no máximo **2 casas decimais**.\n- `calendar` (objeto, opcional) — agenda. Quando vier, exige `enabled` (booleano), `resources` (array), `rules`, `event` e `operations` (objetos)."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"sa_01JQ9C4D5E6F7G8H9J0K1L2M3N\",\n    \"name\": \"Agendamento\",\n    \"handoffDescription\": \"Assuntos de marcar, remarcar ou cancelar horário, e dúvidas sobre disponibilidade.\",\n    \"description\": \"Você cuida da agenda. Confirme sempre a data e o horário antes de gravar.\",\n    \"model\": \"gpt-4o-mini\",\n    \"temperature\": 0.3,\n    \"enabled\": true,\n    \"knowledgeBase\": {\n        \"files\": [],\n        \"websites\": []\n    },\n    \"calendar\": null,\n    \"mcpServers\": [],\n    \"createdAt\": \"2026-09-23T14:40:00.000Z\",\n    \"updatedAt\": \"2026-09-23T14:40:00.000Z\"\n}"}],"_postman_id":"df99d533-5631-f7ce-bbee-4ded6ded9df1"},{"name":"Atualizar sub-agente","id":"66eb2731-5085-b5a9-8a2d-bce6eb10e4e8","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"handoffDescription\": \"Assuntos de marcar, remarcar ou cancelar horário.\",\n    \"temperature\": 0.5\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId","description":"<p>Atualiza o sub-agente. É parcial: mande só os campos que quer mudar.</p>\n<p>Todos os campos de <strong>Criar sub-agente</strong> são aceitos, e aqui todos são opcionais. Os mesmos limites valem: <code>name</code> até 256, <code>handoffDescription</code> até 1.024, <code>description</code> até 156.000, <code>temperature</code> de 0 a 2 com até 2 casas.</p>\n<p><strong>Nulo não passa</strong></p>\n<p>Um campo enviado como <code>null</code> é rejeitado com <code>400</code> — a validação checa presença, não ausência. Para não mexer num campo, <strong>omita-o</strong>; não mande <code>null</code>.</p>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"2af75987-c7dc-c8cc-361c-f299ef9f8c7f","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"handoffDescription\": \"Assuntos de marcar, remarcar ou cancelar horário.\",\n    \"temperature\": 0.5\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Atualiza o sub-agente. É parcial: mande só os campos que quer mudar.\n\nTodos os campos de **Criar sub-agente** são aceitos, e aqui todos são opcionais. Os mesmos limites valem: `name` até 256, `handoffDescription` até 1.024, `description` até 156.000, `temperature` de 0 a 2 com até 2 casas.\n\n**Nulo não passa**\n\nUm campo enviado como `null` é rejeitado com `400` — a validação checa presença, não ausência. Para não mexer num campo, **omita-o**; não mande `null`.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""},{"id":"f1234ccc-9c6e-ebd4-6485-79738f39d8c9","name":"400 Bad Request — campo enviado como null","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"handoffDescription\": \"Assuntos de marcar, remarcar ou cancelar horário.\",\n    \"temperature\": 0.5\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Atualiza o sub-agente. É parcial: mande só os campos que quer mudar.\n\nTodos os campos de **Criar sub-agente** são aceitos, e aqui todos são opcionais. Os mesmos limites valem: `name` até 256, `handoffDescription` até 1.024, `description` até 156.000, `temperature` de 0 a 2 com até 2 casas.\n\n**Nulo não passa**\n\nUm campo enviado como `null` é rejeitado com `400` — a validação checa presença, não ausência. Para não mexer num campo, **omita-o**; não mande `null`.\n\nResponde **204 sem corpo**."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 400,\n    \"message\": [\n        \"temperature must be a number conforming to the specified constraints\"\n    ],\n    \"error\": \"Bad Request\"\n}"}],"_postman_id":"66eb2731-5085-b5a9-8a2d-bce6eb10e4e8"},{"name":"Remover sub-agente","id":"c0ab23e2-142d-4ebd-a0af-28aff59a41ac","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId","description":"<p>Remove o sub-agente, junto com a base de conhecimento, as ferramentas e os servidores MCP próprios dele.</p>\n<p>O assistente principal para de transferir para este assunto.</p>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"5dcf4481-3d40-6435-2490-23e2e43506f3","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Remove o sub-agente, junto com a base de conhecimento, as ferramentas e os servidores MCP próprios dele.\n\nO assistente principal para de transferir para este assunto.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"c0ab23e2-142d-4ebd-a0af-28aff59a41ac"},{"name":"Ativar ou desativar sub-agente","id":"1391c0fd-469d-24a9-e72e-611c7dbe24d8","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"enabled\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/enabled","description":"<p>Liga ou desliga o sub-agente. Desligado, o assistente principal deixa de transferir para ele, mas toda a configuração permanece.</p>\n<p><strong>Corpo</strong></p>\n<ul>\n<li><code>enabled</code> (booleano, <strong>obrigatório</strong>). Ausente ou <code>null</code> dá <code>400</code>.</li>\n</ul>\n<p>Responde <strong>204 sem corpo</strong>.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","enabled"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"},{"type":"any","key":"subAgentId"}]}},"response":[{"id":"640c71ad-b31d-985c-5f91-9ae2385cbca7","name":"204 No Content","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"enabled\": false\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId/sub-agents/:subAgentId/enabled","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId","sub-agents",":subAgentId","enabled"],"variable":[{"key":"assistantId"},{"key":"subAgentId"}]},"description":"Liga ou desliga o sub-agente. Desligado, o assistente principal deixa de transferir para ele, mas toda a configuração permanece.\n\n**Corpo**\n\n- `enabled` (booleano, **obrigatório**). Ausente ou `null` dá `400`.\n\nResponde **204 sem corpo**."},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":""}],"_postman_id":"1391c0fd-469d-24a9-e72e-611c7dbe24d8"}],"id":"a1a37596-8bfb-45ab-a40b-e89913c5f99d","_postman_id":"a1a37596-8bfb-45ab-a40b-e89913c5f99d","description":""},{"name":"Listar assistentes","id":"b2b36db1-15ee-07d1-0ceb-f7380bed5407","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants","description":"<p>Lista todos os assistentes da conta, junto com o consumo de tokens do plano.</p>\n<p>O caminho não carrega <code>accountId</code>: o API Gateway resolve a conta a partir da sua <code>x-api-key</code> e injeta na chamada.</p>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><code>data[]</code> — um item por assistente, com <code>id</code>, <code>name</code>, <code>model</code>, <code>createdAt</code>, <code>updatedAt</code>.</li>\n<li><code>data[].meta.inboxIds</code> — as caixas de entrada em que o assistente atende. Vazio quer dizer que ele não está vinculado a nenhuma.</li>\n<li><code>data[].meta.ignoreContactLabels</code> — etiquetas de contato que fazem o assistente não responder.</li>\n<li><code>metrics</code> — consumo de tokens da conta, ou <code>null</code> quando o upstream não devolve.</li>\n</ul>\n<p>O <code>id</code> do assistente é um ULID e é ele que vai no caminho de todas as demais rotas.</p>\n","urlObject":{"path":["chat","v1","assistants"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"9dc297da-64f5-f575-df74-c9b0253578ab","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants","description":"Lista todos os assistentes da conta, junto com o consumo de tokens do plano.\n\nO caminho não carrega `accountId`: o API Gateway resolve a conta a partir da sua `x-api-key` e injeta na chamada.\n\n**Resposta**\n\n- `data[]` — um item por assistente, com `id`, `name`, `model`, `createdAt`, `updatedAt`.\n- `data[].meta.inboxIds` — as caixas de entrada em que o assistente atende. Vazio quer dizer que ele não está vinculado a nenhuma.\n- `data[].meta.ignoreContactLabels` — etiquetas de contato que fazem o assistente não responder.\n- `metrics` — consumo de tokens da conta, ou `null` quando o upstream não devolve.\n\nO `id` do assistente é um ULID e é ele que vai no caminho de todas as demais rotas."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"01JQ8ZC0X0Q5R3M4N5P6Q7R8S9\",\n            \"name\": \"Atendimento Comercial\",\n            \"model\": \"gpt-4o-mini\",\n            \"createdAt\": \"2026-08-14T13:02:41.000Z\",\n            \"updatedAt\": \"2026-09-19T18:44:07.000Z\",\n            \"meta\": {\n                \"inboxIds\": [12, 18],\n                \"ignoreContactLabels\": [4]\n            }\n        },\n        {\n            \"id\": \"01JR2M4K8T7V6W5X4Y3Z2A1B0C\",\n            \"name\": \"Suporte Técnico\",\n            \"model\": \"gpt-4o\",\n            \"createdAt\": \"2026-09-02T09:15:00.000Z\",\n            \"updatedAt\": \"2026-09-20T11:30:22.000Z\",\n            \"meta\": {\n                \"inboxIds\": [],\n                \"ignoreContactLabels\": []\n            }\n        }\n    ],\n    \"metrics\": {\n        \"tokensUsed\": 1842300,\n        \"planTokens\": 5000000,\n        \"additionalTokens\": 0,\n        \"tokensAvailable\": 3157700\n    }\n}"}],"_postman_id":"b2b36db1-15ee-07d1-0ceb-f7380bed5407"},{"name":"Modelos disponíveis","id":"e0df94f6-af29-7a91-db3b-c6f14b000cc2","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/models","description":"<p>Lista os modelos de linguagem que a marca pode usar em <code>model</code>, tanto no assistente quanto nos sub-agentes.</p>\n<p>A lista é <strong>por marca, não por conta</strong>: duas contas da mesma marca veem exatamente os mesmos modelos.</p>\n<p><strong>Resposta</strong></p>\n<ul>\n<li><code>data[]</code> — repassado do upstream sem reescrita. Use o campo <code>id</code> de cada item como valor de <code>model</code> em <strong>Atualizar assistente</strong> e em <strong>Criar sub-agente</strong>.</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants","models"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"923d73b5-208a-b8ee-3bcc-02230d24976a","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/models","description":"Lista os modelos de linguagem que a marca pode usar em `model`, tanto no assistente quanto nos sub-agentes.\n\nA lista é **por marca, não por conta**: duas contas da mesma marca veem exatamente os mesmos modelos.\n\n**Resposta**\n\n- `data[]` — repassado do upstream sem reescrita. Use o campo `id` de cada item como valor de `model` em **Atualizar assistente** e em **Criar sub-agente**."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"gpt-4o\",\n            \"name\": \"GPT-4o\",\n            \"provider\": \"openai\"\n        },\n        {\n            \"id\": \"gpt-4o-mini\",\n            \"name\": \"GPT-4o mini\",\n            \"provider\": \"openai\"\n        }\n    ]\n}"}],"_postman_id":"e0df94f6-af29-7a91-db3b-c6f14b000cc2"},{"name":"Gerar prompt","id":"13b6d0f8-a913-7594-e907-cebc496fb39e","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"assistant\": \"Atendente comercial da Bradial\",\n    \"company\": \"Plataforma de atendimento ao cliente white-label\",\n    \"service\": \"Tirar dúvidas sobre planos e agendar demonstrações\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/prompt","description":"<p>Gera uma sugestão de prompt (as instruções do assistente) a partir de três frases curtas.</p>\n<p><strong>Não cria nem altera nada</strong> — só devolve o texto, para você revisar e mandar depois em <code>description</code> no PATCH do assistente.</p>\n<p><strong>Corpo</strong> — os três campos são obrigatórios e nenhum pode ser string vazia:</p>\n<ul>\n<li><code>assistant</code> (string) — o papel do assistente. Ex.: \"atendente comercial\".</li>\n<li><code>company</code> (string) — o que a empresa faz.</li>\n<li><code>service</code> (string) — o que o assistente deve resolver.</li>\n</ul>\n<p><strong>Erros</strong></p>\n<ul>\n<li><code>400</code> — algum dos três ausente, vazio ou não-string.</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants","prompt"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"ced3a8b5-d215-0215-8363-49deb04ca597","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"assistant\": \"Atendente comercial da Bradial\",\n    \"company\": \"Plataforma de atendimento ao cliente white-label\",\n    \"service\": \"Tirar dúvidas sobre planos e agendar demonstrações\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/prompt","description":"Gera uma sugestão de prompt (as instruções do assistente) a partir de três frases curtas.\n\n**Não cria nem altera nada** — só devolve o texto, para você revisar e mandar depois em `description` no PATCH do assistente.\n\n**Corpo** — os três campos são obrigatórios e nenhum pode ser string vazia:\n\n- `assistant` (string) — o papel do assistente. Ex.: \"atendente comercial\".\n- `company` (string) — o que a empresa faz.\n- `service` (string) — o que o assistente deve resolver.\n\n**Erros**\n\n- `400` — algum dos três ausente, vazio ou não-string."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"prompt\": \"Você é um atendente comercial da Bradial, uma plataforma de atendimento ao cliente white-label. Seu papel é tirar dúvidas sobre os planos disponíveis e agendar demonstrações com o time comercial. Seja objetivo e cordial. Nunca prometa prazos ou descontos que não estejam descritos na base de conhecimento.\"\n    }\n}"}],"_postman_id":"13b6d0f8-a913-7594-e907-cebc496fb39e"},{"name":"Criar assistente","id":"a24c7638-e754-6935-652a-6c72107f8255","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Atendimento Comercial\",\n    \"description\": \"Você é um atendente comercial. Responda dúvidas sobre planos e agende demonstrações.\",\n    \"businessHours\": {\n        \"monday\": { \"from\": \"09:00\", \"to\": \"18:00\" },\n        \"saturday\": null\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants","description":"<p>Cria um assistente na conta da chave de API.</p>\n<p>Ele nasce <strong>sem vínculo com nenhuma caixa de entrada</strong> — ou seja, não atende ninguém ainda. O vínculo é feito depois, com <code>inboxIds</code> em <strong>Atualizar assistente</strong>.</p>\n<p><strong>Corpo</strong> — todos os campos são opcionais:</p>\n<ul>\n<li><code>name</code> (string) — nome de exibição.</li>\n<li><code>description</code> (string) — as instruções do assistente (o prompt). Use <strong>Gerar prompt</strong> se quiser um ponto de partida.</li>\n<li><code>businessHours</code> (objeto) — horário de atendimento. Formato livre, repassado ao upstream sem validação de shape.</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<p>O assistente criado, com <code>meta.inboxIds</code> e <code>meta.ignoreContactLabels</code> sempre vazios.</p>\n","urlObject":{"path":["chat","v1","assistants"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"490a375b-04e6-0426-bb7b-4eb64893f70b","name":"201 Created","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Atendimento Comercial\",\n    \"description\": \"Você é um atendente comercial. Responda dúvidas sobre planos e agende demonstrações.\",\n    \"businessHours\": {\n        \"monday\": { \"from\": \"09:00\", \"to\": \"18:00\" },\n        \"saturday\": null\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants","description":"Cria um assistente na conta da chave de API.\n\nEle nasce **sem vínculo com nenhuma caixa de entrada** — ou seja, não atende ninguém ainda. O vínculo é feito depois, com `inboxIds` em **Atualizar assistente**.\n\n**Corpo** — todos os campos são opcionais:\n\n- `name` (string) — nome de exibição.\n- `description` (string) — as instruções do assistente (o prompt). Use **Gerar prompt** se quiser um ponto de partida.\n- `businessHours` (objeto) — horário de atendimento. Formato livre, repassado ao upstream sem validação de shape.\n\n**Resposta**\n\nO assistente criado, com `meta.inboxIds` e `meta.ignoreContactLabels` sempre vazios."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01JQ8ZC0X0Q5R3M4N5P6Q7R8S9\",\n        \"name\": \"Atendimento Comercial\",\n        \"description\": \"Você é um atendente comercial. Responda dúvidas sobre planos e agende demonstrações.\",\n        \"model\": \"gpt-4o-mini\",\n        \"temperature\": 0.7,\n        \"businessHours\": {\n            \"monday\": { \"from\": \"09:00\", \"to\": \"18:00\" },\n            \"saturday\": null\n        },\n        \"createdAt\": \"2026-09-23T14:20:05.000Z\",\n        \"updatedAt\": \"2026-09-23T14:20:05.000Z\",\n        \"meta\": {\n            \"inboxIds\": [],\n            \"ignoreContactLabels\": []\n        }\n    }\n}"}],"_postman_id":"a24c7638-e754-6935-652a-6c72107f8255"},{"name":"Obter assistente","id":"666c7fa3-d741-a5e7-c669-9cee4be2e82a","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId","description":"<p>Devolve um assistente com a configuração completa.</p>\n<p><strong>Parâmetro de caminho</strong></p>\n<ul>\n<li><code>assistantId</code> (ULID) — o <code>id</code> devolvido por <strong>Listar assistentes</strong> ou <strong>Criar assistente</strong>.</li>\n</ul>\n<p><strong>Resposta</strong></p>\n<p>O payload do upstream acrescido de <code>meta</code>, que é o que o Bradial Chat guarda do seu lado: <code>inboxIds</code> (as caixas em que ele atende) e <code>ignoreContactLabels</code>.</p>\n<p><strong>Erros</strong></p>\n<ul>\n<li><code>403</code> — o assistente não pertence à conta da chave de API. O BFF resolve o assistente pela conta antes de chamar o upstream, então um id de outra conta nunca chega lá.</li>\n</ul>\n","urlObject":{"path":["chat","v1","assistants",":assistantId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"05bcd0d0-7f45-cefc-947a-1c8fc15ff537","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"GET","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId"],"variable":[{"key":"assistantId"}]},"description":"Devolve um assistente com a configuração completa.\n\n**Parâmetro de caminho**\n\n- `assistantId` (ULID) — o `id` devolvido por **Listar assistentes** ou **Criar assistente**.\n\n**Resposta**\n\nO payload do upstream acrescido de `meta`, que é o que o Bradial Chat guarda do seu lado: `inboxIds` (as caixas em que ele atende) e `ignoreContactLabels`.\n\n**Erros**\n\n- `403` — o assistente não pertence à conta da chave de API. O BFF resolve o assistente pela conta antes de chamar o upstream, então um id de outra conta nunca chega lá."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01JQ8ZC0X0Q5R3M4N5P6Q7R8S9\",\n        \"name\": \"Atendimento Comercial\",\n        \"description\": \"Você é um atendente comercial. Responda dúvidas sobre planos e agende demonstrações.\",\n        \"model\": \"gpt-4o-mini\",\n        \"temperature\": 0.7,\n        \"followUp\": {\n            \"enabled\": true,\n            \"delayMinutes\": 30\n        },\n        \"businessHours\": {\n            \"monday\": { \"from\": \"09:00\", \"to\": \"18:00\" }\n        },\n        \"createdAt\": \"2026-08-14T13:02:41.000Z\",\n        \"updatedAt\": \"2026-09-19T18:44:07.000Z\",\n        \"meta\": {\n            \"inboxIds\": [12, 18],\n            \"ignoreContactLabels\": [4]\n        }\n    }\n}"}],"_postman_id":"666c7fa3-d741-a5e7-c669-9cee4be2e82a"},{"name":"Atualizar assistente","id":"b34f2526-a22a-0fb3-1d2c-a63786701599","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Atendimento Comercial\",\n    \"model\": \"gpt-4o\",\n    \"temperature\": 0.5,\n    \"inboxIds\": [12, 18],\n    \"ignoreContactLabels\": []\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId","description":"<p>Atualiza o assistente. É parcial: mande só os campos que quer mudar.</p>\n<p><strong>Corpo</strong> — todos opcionais:</p>\n<ul>\n<li><code>name</code> (string)</li>\n<li><code>description</code> (string) — as instruções do assistente.</li>\n<li><code>model</code> (string) — um dos <code>id</code> de <strong>Modelos disponíveis</strong>.</li>\n<li><code>temperature</code> (número)</li>\n<li><code>followUp</code> (objeto) — configuração de retomada. Formato livre.</li>\n<li><code>businessHours</code> (objeto) — horário de atendimento. Formato livre.</li>\n<li><code>inboxIds</code> (array de inteiros) — <strong>substitui</strong> o conjunto de caixas de entrada, não soma. Mande <code>[]</code> para desvincular de todas. Omitir deixa como está.</li>\n<li><code>ignoreContactLabels</code> (array de inteiros) — mesma semântica de substituição.</li>\n</ul>\n<p><strong>Atenção com <code>inboxIds</code></strong></p>\n<p>Cada id é conferido contra a conta antes da escrita, com as linhas travadas. Um id de caixa de outra conta derruba a requisição inteira com <code>ASST003</code> e <strong>nada</strong> é gravado — não há gravação parcial.</p>\n<p><strong>Nulo não passa</strong></p>\n<p><code>inboxIds: null</code> e <code>ignoreContactLabels: null</code> são rejeitados com <code>400</code>. Para limpar, use <code>[]</code>; para não mexer, omita o campo.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"18e897dc-9c89-319b-e652-904ccab4e2a8","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Atendimento Comercial\",\n    \"model\": \"gpt-4o\",\n    \"temperature\": 0.5,\n    \"inboxIds\": [12, 18],\n    \"ignoreContactLabels\": []\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId"],"variable":[{"key":"assistantId"}]},"description":"Atualiza o assistente. É parcial: mande só os campos que quer mudar.\n\n**Corpo** — todos opcionais:\n\n- `name` (string)\n- `description` (string) — as instruções do assistente.\n- `model` (string) — um dos `id` de **Modelos disponíveis**.\n- `temperature` (número)\n- `followUp` (objeto) — configuração de retomada. Formato livre.\n- `businessHours` (objeto) — horário de atendimento. Formato livre.\n- `inboxIds` (array de inteiros) — **substitui** o conjunto de caixas de entrada, não soma. Mande `[]` para desvincular de todas. Omitir deixa como está.\n- `ignoreContactLabels` (array de inteiros) — mesma semântica de substituição.\n\n**Atenção com `inboxIds`**\n\nCada id é conferido contra a conta antes da escrita, com as linhas travadas. Um id de caixa de outra conta derruba a requisição inteira com `ASST003` e **nada** é gravado — não há gravação parcial.\n\n**Nulo não passa**\n\n`inboxIds: null` e `ignoreContactLabels: null` são rejeitados com `400`. Para limpar, use `[]`; para não mexer, omita o campo."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"01JQ8ZC0X0Q5R3M4N5P6Q7R8S9\",\n        \"name\": \"Atendimento Comercial\",\n        \"model\": \"gpt-4o\",\n        \"temperature\": 0.5,\n        \"createdAt\": \"2026-08-14T13:02:41.000Z\",\n        \"updatedAt\": \"2026-09-23T14:31:12.000Z\",\n        \"meta\": {\n            \"inboxIds\": [12, 18],\n            \"ignoreContactLabels\": []\n        }\n    }\n}"},{"id":"dd1df75f-e54d-02e3-0d9c-af26fca740bf","name":"400 Bad Request — caixa de outra conta","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Atendimento Comercial\",\n    \"model\": \"gpt-4o\",\n    \"temperature\": 0.5,\n    \"inboxIds\": [12, 18],\n    \"ignoreContactLabels\": []\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId"],"variable":[{"key":"assistantId"}]},"description":"Atualiza o assistente. É parcial: mande só os campos que quer mudar.\n\n**Corpo** — todos opcionais:\n\n- `name` (string)\n- `description` (string) — as instruções do assistente.\n- `model` (string) — um dos `id` de **Modelos disponíveis**.\n- `temperature` (número)\n- `followUp` (objeto) — configuração de retomada. Formato livre.\n- `businessHours` (objeto) — horário de atendimento. Formato livre.\n- `inboxIds` (array de inteiros) — **substitui** o conjunto de caixas de entrada, não soma. Mande `[]` para desvincular de todas. Omitir deixa como está.\n- `ignoreContactLabels` (array de inteiros) — mesma semântica de substituição.\n\n**Atenção com `inboxIds`**\n\nCada id é conferido contra a conta antes da escrita, com as linhas travadas. Um id de caixa de outra conta derruba a requisição inteira com `ASST003` e **nada** é gravado — não há gravação parcial.\n\n**Nulo não passa**\n\n`inboxIds: null` e `ignoreContactLabels: null` são rejeitados com `400`. Para limpar, use `[]`; para não mexer, omita o campo."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"code\": \"ASST003\",\n    \"message\": \"As caixas de entrada 91, 92 não pertencem a esta conta.\",\n    \"inboxIds\": \"91, 92\"\n}"}],"_postman_id":"b34f2526-a22a-0fb3-1d2c-a63786701599"},{"name":"Remover assistente","id":"3b511f00-4145-6325-e19f-0c8e326c3aa0","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api.bradial.com.br/chat/v1/assistants/:assistantId","description":"<p>Remove o assistente, junto com seus sub-agentes, ferramentas, servidores MCP e base de conhecimento.</p>\n<p>As caixas de entrada que apontavam para ele ficam <strong>sem assistente</strong> — as conversas passam a cair direto para os atendentes humanos.</p>\n<p>Operação irreversível.</p>\n","urlObject":{"path":["chat","v1","assistants",":assistantId"],"host":["https://api.bradial.com.br"],"query":[],"variable":[{"type":"any","key":"assistantId"}]}},"response":[{"id":"d2ab34eb-9ff1-b5de-9382-3967d6c4c471","name":"200 OK","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"DELETE","header":[],"url":{"raw":"https://api.bradial.com.br/chat/v1/assistants/:assistantId","host":["https://api.bradial.com.br"],"path":["chat","v1","assistants",":assistantId"],"variable":[{"key":"assistantId"}]},"description":"Remove o assistente, junto com seus sub-agentes, ferramentas, servidores MCP e base de conhecimento.\n\nAs caixas de entrada que apontavam para ele ficam **sem assistente** — as conversas passam a cair direto para os atendentes humanos.\n\nOperação irreversível."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"3b511f00-4145-6325-e19f-0c8e326c3aa0"}],"id":"c89e7fbf-79df-4cf1-a85b-274638516d2a","_postman_id":"c89e7fbf-79df-4cf1-a85b-274638516d2a","description":""},{"name":"Relatórios","item":[{"name":"Atendimentos - Visão geral","id":"89be9973-37c5-2ebc-7c32-4602ddbf2b33","request":{"method":"GET","header":[{"key":"x-api-key","description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n","value":"your_api-key"}],"url":"https://api.bradial.com.br/chat/v1/reports/conversations/overview","description":"<p>Indicadores consolidados de atendimentos no período: totais, curvas e comparação com o período anterior.</p>\n<p><strong>Autenticação.</strong> Envie a chave no header <code>x-api-key</code>. A chave já identifica a conta, então <strong>não existe id de conta na URL</strong> — o gateway resolve a conta a partir da própria chave. O header <code>Authorization</code> é ignorado; a chave é a única credencial.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> são dias no formato <code>AAAA-MM-DD</code>, e <code>until</code> não pode ser anterior a <code>since</code>. Um período de um único dia é agrupado por hora; acima disso, por dia.</p>\n<p><strong>Filtros.</strong> Os nomes dos parâmetros são técnicos. Entre parênteses, como o campo aparece no produto: <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","conversations","overview"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""}],"variable":[]}},"response":[{"id":"a7cdde3e-edc6-c668-08ca-c60855db029a","name":"200 - Uma semana, agrupada por dia","originalRequest":{"method":"GET","header":[{"key":"x-api-key","description":"Chave da conta. Identifica quem chama e a qual conta os dados pertencem.","value":"your_api-key"}],"url":{"raw":"https://api.bradial.com.br/chat/v1/reports/conversations/overview","host":["https://api.bradial.com.br"],"path":["chat","v1","reports","conversations","overview"],"query":[{"key":"since","description":"Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.","value":"2026-08-01"},{"key":"until","description":"Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.","value":"2026-08-31"},{"key":"agentId","description":"Opcional. Restringe ao usuário informado (campo Usuário no produto).","value":"","disabled":true},{"key":"teamId","description":"Opcional. Restringe ao departamento informado.","value":"","disabled":true},{"key":"inboxId","description":"Opcional. Restringe à caixa de entrada informada.","value":"","disabled":true},{"key":"labelId","description":"Opcional. Restringe à etiqueta informada.","value":"","disabled":true}]},"description":"Indicadores consolidados de atendimentos no período: totais, curvas e comparação com o período anterior.\n\n**Autenticação.** Envie a chave no header `x-api-key`. A chave já identifica a conta, então **não existe id de conta na URL** — o gateway resolve a conta a partir da própria chave. O header `Authorization` é ignorado; a chave é a única credencial.\n\n**Período.** `since` e `until` são dias no formato `AAAA-MM-DD`, e `until` não pode ser anterior a `since`. Um período de um único dia é agrupado por hora; acima disso, por dia.\n\n**Filtros.** Os nomes dos parâmetros são técnicos. Entre parênteses, como o campo aparece no produto: `agentId` (Usuário), `teamId` (Departamento), `inboxId` (Caixa de entrada), `labelId` (Etiqueta)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n  \"section\": \"conversations\",\n  \"grain\": \"day\",\n  \"range\": { \"since\": \"2026-08-01\", \"until\": \"2026-08-07\" },\n  \"previousRange\": { \"since\": \"2026-07-25\", \"until\": \"2026-07-31\" },\n  \"kpis\": [\n    { \"id\": \"conversations\", \"value\": 1840, \"previousValue\": 1712, \"spark\": [240, 268, 301, 255, 262, 259, 255] },\n    { \"id\": \"newConversations\", \"value\": 967, \"previousValue\": 903, \"spark\": [128, 141, 158, 134, 138, 136, 132] },\n    { \"id\": \"newContacts\", \"value\": 412, \"previousValue\": 388, \"spark\": [55, 61, 68, 57, 58, 57, 56] },\n    { \"id\": \"outboundConversations\", \"value\": 318, \"previousValue\": 276, \"spark\": [41, 46, 52, 44, 45, 45, 45] },\n    { \"id\": \"incomingMessages\", \"value\": 9420, \"previousValue\": 8871, \"spark\": [1230, 1372, 1541, 1305, 1341, 1327, 1304] },\n    { \"id\": \"outgoingMessages\", \"value\": 11208, \"previousValue\": 10502, \"spark\": [1463, 1632, 1833, 1553, 1595, 1579, 1553] },\n    { \"id\": \"resolutions\", \"value\": 1602, \"previousValue\": 1498, \"spark\": [209, 233, 262, 222, 228, 226, 222] },\n    { \"id\": \"resolutionRate\", \"value\": 87.1, \"previousValue\": 87.5, \"spark\": [87, 87, 87, 87, 87, 87, 87] },\n    { \"id\": \"firstResponseTime\", \"value\": 142, \"previousValue\": 168, \"spark\": [151, 148, 139, 144, 140, 138, 134] },\n    { \"id\": \"resolutionTime\", \"value\": 4380, \"previousValue\": 4712, \"spark\": [4500, 4420, 4310, 4390, 4360, 4340, 4320] }\n  ],\n  \"series\": {\n    \"keys\": [\"conversations\", \"resolutions\"],\n    \"points\": [\n      { \"at\": \"2026-08-01\", \"values\": { \"conversations\": 240, \"resolutions\": 209 } },\n      { \"at\": \"2026-08-02\", \"values\": { \"conversations\": 268, \"resolutions\": 233 } },\n      { \"at\": \"2026-08-03\", \"values\": { \"conversations\": 301, \"resolutions\": 262 } }\n    ]\n  },\n  \"accountConversations\": null\n}"}],"_postman_id":"89be9973-37c5-2ebc-7c32-4602ddbf2b33"},{"name":"Atendimentos - Download","id":"8ab92653-20e3-b277-7e57-85a608458e7a","request":{"method":"GET","header":[{"value":"your_api-key","description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n","key":"x-api-key"}],"url":"https://api.bradial.com.br/chat/v1/reports/conversations/download","description":"<p>Planilha CSV com uma linha por atendimento do período. A resposta é <code>text/csv</code>, não JSON.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Fuso.</strong> As datas dentro do arquivo são escritas no fuso que <code>timezoneOffsetHours</code> indicar. Sem ele, saem em UTC.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","conversations","download"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Fuso em que as datas do arquivo são escritas, de -12 a 14. Padrão 0 (UTC); use -3 para o horário de Brasília.</p>\n","type":"text/plain"},"key":"timezoneOffsetHours","value":"-3"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""}],"variable":[]}},"response":[],"_postman_id":"8ab92653-20e3-b277-7e57-85a608458e7a"},{"name":"Usuários - Visão geral","id":"4d302c28-2f11-16ae-846b-67b48c32ca1f","request":{"method":"GET","header":[{"description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n","key":"x-api-key","value":"your_api-key"}],"url":"https://api.bradial.com.br/chat/v1/reports/agents/overview","description":"<p>Indicadores de desempenho por usuário no período.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Escopo.</strong> Sem <code>agentId</code>, a resposta traz os números da conta inteira. Informe <code>agentId</code> para os de um usuário — é o que a tela do produto faz.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","agents","overview"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto). Sem ele, a resposta é da conta inteira.</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""}],"variable":[]}},"response":[{"id":"7d3b60f7-3f8e-0730-1087-e41c316b18b9","name":"200 - Uma semana, agrupada por dia","originalRequest":{"method":"GET","header":[{"description":"Chave da conta. Identifica quem chama e a qual conta os dados pertencem.","key":"x-api-key","value":"your_api-key"}],"url":{"raw":"https://api.bradial.com.br/chat/v1/reports/agents/overview","host":["https://api.bradial.com.br"],"path":["chat","v1","reports","agents","overview"],"query":[{"description":"Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.","key":"since","value":"2026-08-01"},{"description":"Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.","key":"until","value":"2026-08-31"},{"description":"Opcional. Restringe ao usuário informado (campo Usuário no produto). Sem ele, a resposta é da conta inteira.","key":"agentId","value":"","disabled":true},{"description":"Opcional. Restringe ao departamento informado.","key":"teamId","value":"","disabled":true},{"description":"Opcional. Restringe à caixa de entrada informada.","key":"inboxId","value":"","disabled":true},{"description":"Opcional. Restringe à etiqueta informada.","key":"labelId","value":"","disabled":true}]},"description":"Indicadores de desempenho por usuário no período.\n\n**Autenticação.** Header `x-api-key`. A chave identifica a conta — não há id de conta na URL, e o header `Authorization` é ignorado.\n\n**Período.** `since` e `until` no formato `AAAA-MM-DD`; `until` não pode ser anterior a `since`.\n\n**Escopo.** Sem `agentId`, a resposta traz os números da conta inteira. Informe `agentId` para os de um usuário — é o que a tela do produto faz.\n\n**Filtros.** `agentId` (Usuário), `teamId` (Departamento), `inboxId` (Caixa de entrada), `labelId` (Etiqueta)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n  \"section\": \"agents\",\n  \"grain\": \"day\",\n  \"range\": { \"since\": \"2026-08-01\", \"until\": \"2026-08-07\" },\n  \"previousRange\": { \"since\": \"2026-07-25\", \"until\": \"2026-07-31\" },\n  \"kpis\": [\n    { \"id\": \"conversations\", \"value\": 1840, \"previousValue\": 1712, \"spark\": [240, 268, 301, 255, 262, 259, 255] },\n    { \"id\": \"incomingMessages\", \"value\": 9420, \"previousValue\": 8871, \"spark\": [1230, 1372, 1541, 1305, 1341, 1327, 1304] },\n    { \"id\": \"outgoingMessages\", \"value\": 11208, \"previousValue\": 10502, \"spark\": [1463, 1632, 1833, 1553, 1595, 1579, 1553] },\n    { \"id\": \"resolutions\", \"value\": 1602, \"previousValue\": 1498, \"spark\": [209, 233, 262, 222, 228, 226, 222] },\n    { \"id\": \"resolutionRate\", \"value\": 87.1, \"previousValue\": 87.5, \"spark\": [87, 87, 87, 87, 87, 87, 87] },\n    { \"id\": \"firstResponseTime\", \"value\": 142, \"previousValue\": 168, \"spark\": [151, 148, 139, 144, 140, 138, 134] },\n    { \"id\": \"resolutionTime\", \"value\": 4380, \"previousValue\": 4712, \"spark\": [4500, 4420, 4310, 4390, 4360, 4340, 4320] },\n    { \"id\": \"outboundConversations\", \"value\": 318, \"previousValue\": 276, \"spark\": [41, 46, 52, 44, 45, 45, 45] }\n  ],\n  \"series\": {\n    \"keys\": [\"conversations\", \"resolutions\"],\n    \"points\": [\n      { \"at\": \"2026-08-01\", \"values\": { \"conversations\": 240, \"resolutions\": 209 } },\n      { \"at\": \"2026-08-02\", \"values\": { \"conversations\": 268, \"resolutions\": 233 } },\n      { \"at\": \"2026-08-03\", \"values\": { \"conversations\": 301, \"resolutions\": 262 } }\n    ]\n  },\n  \"accountConversations\": 1840\n}"}],"_postman_id":"4d302c28-2f11-16ae-846b-67b48c32ca1f"},{"name":"CSAT - Visão geral","id":"3bc77d2d-1239-1f2a-b2ee-46972fd6fe9e","request":{"method":"GET","header":[{"description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n","key":"x-api-key","value":"your_api-key"}],"url":"https://api.bradial.com.br/chat/v1/reports/csat/overview","description":"<p>Satisfação do cliente no período: score, taxa de resposta e distribuição por nota.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Sobre o score.</strong> É a <strong>proporção de respostas positivas</strong> — notas 4 e 5 sobre o total de respostas — e não a média das notas. É o mesmo cálculo que a tela do produto mostra.</p>\n<p><strong>Distribuição.</strong> Vem só com as notas que tiveram resposta. Uma nota sem nenhuma resposta no período é omitida em vez de aparecer com zero.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","csat","overview"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""}],"variable":[]}},"response":[{"id":"192b7f81-8ce1-ddb8-4564-b0cc0dce9433","name":"200 - Uma semana, com a distribuição por nota","originalRequest":{"method":"GET","header":[{"description":"Chave da conta. Identifica quem chama e a qual conta os dados pertencem.","key":"x-api-key","value":"your_api-key"}],"url":{"raw":"https://api.bradial.com.br/chat/v1/reports/csat/overview","host":["https://api.bradial.com.br"],"path":["chat","v1","reports","csat","overview"],"query":[{"description":"Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.","key":"since","value":"2026-08-01"},{"description":"Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.","key":"until","value":"2026-08-31"},{"description":"Opcional. Restringe ao usuário informado (campo Usuário no produto).","key":"agentId","value":"","disabled":true},{"description":"Opcional. Restringe ao departamento informado.","key":"teamId","value":"","disabled":true},{"description":"Opcional. Restringe à caixa de entrada informada.","key":"inboxId","value":"","disabled":true},{"description":"Opcional. Restringe à etiqueta informada.","key":"labelId","value":"","disabled":true}]},"description":"Satisfação do cliente no período: score, taxa de resposta e distribuição por nota.\n\n**Autenticação.** Header `x-api-key`. A chave identifica a conta — não há id de conta na URL, e o header `Authorization` é ignorado.\n\n**Período.** `since` e `until` no formato `AAAA-MM-DD`; `until` não pode ser anterior a `since`.\n\n**Sobre o score.** É a **proporção de respostas positivas** — notas 4 e 5 sobre o total de respostas — e não a média das notas. É o mesmo cálculo que a tela do produto mostra.\n\n**Distribuição.** Vem só com as notas que tiveram resposta. Uma nota sem nenhuma resposta no período é omitida em vez de aparecer com zero.\n\n**Filtros.** `agentId` (Usuário), `teamId` (Departamento), `inboxId` (Caixa de entrada), `labelId` (Etiqueta)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"section\": \"csat\",\n  \"grain\": \"day\",\n  \"range\": { \"since\": \"2026-08-01\", \"until\": \"2026-08-07\" },\n  \"previousRange\": { \"since\": \"2026-07-25\", \"until\": \"2026-07-31\" },\n  \"kpis\": [\n    { \"id\": \"csatScore\", \"value\": 92.4, \"previousValue\": 90.8, \"spark\": [92, 93, 92, 91, 93, 92, 93] },\n    { \"id\": \"csatResponses\", \"value\": 298, \"previousValue\": 271, \"spark\": [39, 43, 48, 41, 42, 42, 43] },\n    { \"id\": \"csatResponseRate\", \"value\": 18.6, \"previousValue\": 18.1, \"spark\": [18, 19, 18, 19, 18, 19, 19] },\n    { \"id\": \"resolutions\", \"value\": 1602, \"previousValue\": 1498, \"spark\": [209, 233, 262, 222, 228, 226, 222] }\n  ],\n  \"series\": {\n    \"keys\": [\"conversations\", \"resolutions\"],\n    \"points\": [\n      { \"at\": \"2026-08-01\", \"values\": { \"conversations\": 240, \"resolutions\": 209 } },\n      { \"at\": \"2026-08-02\", \"values\": { \"conversations\": 268, \"resolutions\": 233 } },\n      { \"at\": \"2026-08-03\", \"values\": { \"conversations\": 301, \"resolutions\": 262 } }\n    ]\n  },\n  \"accountConversations\": 1840,\n  \"positiveResponses\": 275,\n  \"distribution\": [\n    { \"rating\": 5, \"count\": 214 },\n    { \"rating\": 4, \"count\": 61 },\n    { \"rating\": 3, \"count\": 12 },\n    { \"rating\": 1, \"count\": 11 }\n  ]\n}"}],"_postman_id":"3bc77d2d-1239-1f2a-b2ee-46972fd6fe9e"},{"name":"CSAT - Respostas","id":"9d86ef21-cec6-e944-6398-8eb078f3e947","request":{"method":"GET","header":[{"description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n","value":"your_api-key","key":"x-api-key"}],"url":"https://api.bradial.com.br/chat/v1/reports/csat/responses","description":"<p>Lista paginada das respostas de CSAT do período, uma linha por resposta.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Paginação.</strong> <code>page</code> começa em 1. O total vem na resposta, para você saber quantas páginas existem.</p>\n<p><strong>Nota.</strong> <code>rating</code> aceita 1 a 5 e é o único endpoint de CSAT que aceita esse filtro: nas demais rotas ele seria um número errado, porque um score calculado só sobre as notas 5 daria sempre 100%.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","csat","responses"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"description":{"content":"<p>Opcional. Página da listagem, começando em 1. Padrão 1.</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe a uma nota, de 1 a 5.</p>\n","type":"text/plain"},"key":"rating","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""}],"variable":[]}},"response":[{"id":"f8bc63d4-1815-9024-a642-e2adc183273f","name":"200 - Primeira página","originalRequest":{"method":"GET","header":[{"description":"Chave da conta. Identifica quem chama e a qual conta os dados pertencem.","value":"your_api-key","key":"x-api-key"}],"url":{"raw":"https://api.bradial.com.br/chat/v1/reports/csat/responses","host":["https://api.bradial.com.br"],"path":["chat","v1","reports","csat","responses"],"query":[{"description":"Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.","value":"2026-08-01","key":"since"},{"description":"Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.","value":"2026-08-31","key":"until"},{"description":"Opcional. Página da listagem, começando em 1. Padrão 1.","value":"1","key":"page"},{"description":"Opcional. Restringe a uma nota, de 1 a 5.","value":"","key":"rating","disabled":true},{"description":"Opcional. Restringe ao usuário informado (campo Usuário no produto).","value":"","key":"agentId","disabled":true},{"description":"Opcional. Restringe ao departamento informado.","value":"","key":"teamId","disabled":true},{"description":"Opcional. Restringe à caixa de entrada informada.","value":"","key":"inboxId","disabled":true},{"description":"Opcional. Restringe à etiqueta informada.","value":"","key":"labelId","disabled":true}]},"description":"Lista paginada das respostas de CSAT do período, uma linha por resposta.\n\n**Autenticação.** Header `x-api-key`. A chave identifica a conta — não há id de conta na URL, e o header `Authorization` é ignorado.\n\n**Período.** `since` e `until` no formato `AAAA-MM-DD`; `until` não pode ser anterior a `since`.\n\n**Paginação.** `page` começa em 1. O total vem na resposta, para você saber quantas páginas existem.\n\n**Nota.** `rating` aceita 1 a 5 e é o único endpoint de CSAT que aceita esse filtro: nas demais rotas ele seria um número errado, porque um score calculado só sobre as notas 5 daria sempre 100%.\n\n**Filtros.** `agentId` (Usuário), `teamId` (Departamento), `inboxId` (Caixa de entrada), `labelId` (Etiqueta)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"conversationId\": 88214,\n      \"contactName\": \"Ana Souza\",\n      \"isGroup\": false,\n      \"respondentName\": \"Ana Souza\",\n      \"agentName\": \"Carlos Lima\",\n      \"rating\": 5,\n      \"feedbackMessage\": \"Atendimento rápido, obrigada!\",\n      \"createdAt\": \"2026-08-03T14:22:10.000Z\"\n    },\n    {\n      \"conversationId\": 88190,\n      \"contactName\": \"Grupo Condomínio Aurora\",\n      \"isGroup\": true,\n      \"respondentName\": \"Marcos Dias\",\n      \"agentName\": \"Beatriz Nunes\",\n      \"rating\": 4,\n      \"feedbackMessage\": null,\n      \"createdAt\": \"2026-08-03T11:05:47.000Z\"\n    }\n  ],\n  \"items\": 298,\n  \"page\": 1\n}"}],"_postman_id":"9d86ef21-cec6-e944-6398-8eb078f3e947"},{"name":"CSAT - Download","id":"51faab5a-26ad-bb14-46a9-3853623075b4","request":{"method":"GET","header":[{"description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n","key":"x-api-key","value":"your_api-key"}],"url":"https://api.bradial.com.br/chat/v1/reports/csat/download","description":"<p>Planilha CSV com uma linha por resposta de CSAT do período. A resposta é <code>text/csv</code>, não JSON.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Fuso.</strong> As datas dentro do arquivo são escritas no fuso que <code>timezoneOffsetHours</code> indicar. Sem ele, saem em UTC.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","csat","download"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Fuso em que as datas do arquivo são escritas, de -12 a 14. Padrão 0 (UTC); use -3 para o horário de Brasília.</p>\n","type":"text/plain"},"key":"timezoneOffsetHours","value":"-3"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""}],"variable":[]}},"response":[],"_postman_id":"51faab5a-26ad-bb14-46a9-3853623075b4"},{"name":"Caixas de Entrada - Visão geral","id":"fb1c9309-5209-859b-25b4-78527d2f7436","request":{"method":"GET","header":[{"description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n","value":"your_api-key","key":"x-api-key"}],"url":"https://api.bradial.com.br/chat/v1/reports/inboxes/overview","description":"<p>Indicadores por caixa de entrada no período.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Escopo.</strong> Sem <code>inboxId</code>, a resposta traz os números da conta inteira. Informe <code>inboxId</code> para os de uma caixa — é o que a tela do produto faz.</p>\n<p><strong>Canais.</strong> O chat interno não entra em nenhum relatório. Uma caixa desse tipo não aparece aqui nem responde por filtro.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","inboxes","overview"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada. Sem ele, a resposta é da conta inteira.</p>\n","type":"text/plain"},"key":"inboxId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""}],"variable":[]}},"response":[{"id":"1ddecf4e-c412-5f61-ec82-cc1c1f369c46","name":"200 - Uma semana, agrupada por dia","originalRequest":{"method":"GET","header":[{"description":"Chave da conta. Identifica quem chama e a qual conta os dados pertencem.","value":"your_api-key","key":"x-api-key"}],"url":{"raw":"https://api.bradial.com.br/chat/v1/reports/inboxes/overview","host":["https://api.bradial.com.br"],"path":["chat","v1","reports","inboxes","overview"],"query":[{"description":"Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.","value":"2026-08-01","key":"since"},{"description":"Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.","value":"2026-08-31","key":"until"},{"description":"Opcional. Restringe à caixa de entrada informada. Sem ele, a resposta é da conta inteira.","value":"","key":"inboxId","disabled":true},{"description":"Opcional. Restringe ao usuário informado (campo Usuário no produto).","value":"","key":"agentId","disabled":true},{"description":"Opcional. Restringe ao departamento informado.","value":"","key":"teamId","disabled":true},{"description":"Opcional. Restringe à etiqueta informada.","value":"","key":"labelId","disabled":true}]},"description":"Indicadores por caixa de entrada no período.\n\n**Autenticação.** Header `x-api-key`. A chave identifica a conta — não há id de conta na URL, e o header `Authorization` é ignorado.\n\n**Período.** `since` e `until` no formato `AAAA-MM-DD`; `until` não pode ser anterior a `since`.\n\n**Escopo.** Sem `inboxId`, a resposta traz os números da conta inteira. Informe `inboxId` para os de uma caixa — é o que a tela do produto faz.\n\n**Canais.** O chat interno não entra em nenhum relatório. Uma caixa desse tipo não aparece aqui nem responde por filtro.\n\n**Filtros.** `agentId` (Usuário), `teamId` (Departamento), `inboxId` (Caixa de entrada), `labelId` (Etiqueta)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n  \"section\": \"inboxes\",\n  \"grain\": \"day\",\n  \"range\": { \"since\": \"2026-08-01\", \"until\": \"2026-08-07\" },\n  \"previousRange\": { \"since\": \"2026-07-25\", \"until\": \"2026-07-31\" },\n  \"kpis\": [\n    { \"id\": \"conversations\", \"value\": 1840, \"previousValue\": 1712, \"spark\": [240, 268, 301, 255, 262, 259, 255] },\n    { \"id\": \"incomingMessages\", \"value\": 9420, \"previousValue\": 8871, \"spark\": [1230, 1372, 1541, 1305, 1341, 1327, 1304] },\n    { \"id\": \"outgoingMessages\", \"value\": 11208, \"previousValue\": 10502, \"spark\": [1463, 1632, 1833, 1553, 1595, 1579, 1553] },\n    { \"id\": \"resolutions\", \"value\": 1602, \"previousValue\": 1498, \"spark\": [209, 233, 262, 222, 228, 226, 222] },\n    { \"id\": \"resolutionRate\", \"value\": 87.1, \"previousValue\": 87.5, \"spark\": [87, 87, 87, 87, 87, 87, 87] },\n    { \"id\": \"firstResponseTime\", \"value\": 142, \"previousValue\": 168, \"spark\": [151, 148, 139, 144, 140, 138, 134] },\n    { \"id\": \"resolutionTime\", \"value\": 4380, \"previousValue\": 4712, \"spark\": [4500, 4420, 4310, 4390, 4360, 4340, 4320] },\n    { \"id\": \"outboundConversations\", \"value\": 318, \"previousValue\": 276, \"spark\": [41, 46, 52, 44, 45, 45, 45] }\n  ],\n  \"series\": {\n    \"keys\": [\"conversations\", \"resolutions\"],\n    \"points\": [\n      { \"at\": \"2026-08-01\", \"values\": { \"conversations\": 240, \"resolutions\": 209 } },\n      { \"at\": \"2026-08-02\", \"values\": { \"conversations\": 268, \"resolutions\": 233 } },\n      { \"at\": \"2026-08-03\", \"values\": { \"conversations\": 301, \"resolutions\": 262 } }\n    ]\n  },\n  \"accountConversations\": 1840\n}"}],"_postman_id":"fb1c9309-5209-859b-25b4-78527d2f7436"},{"name":"Caixas de Entrada - Download","id":"3ecd67db-4d4b-41b7-7e7e-be279df880bc","request":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n"}],"url":"https://api.bradial.com.br/chat/v1/reports/inboxes/download","description":"<p>Planilha CSV com os indicadores por caixa de entrada no período. A resposta é <code>text/csv</code>, não JSON.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Fuso.</strong> As datas dentro do arquivo são escritas no fuso que <code>timezoneOffsetHours</code> indicar. Sem ele, saem em UTC.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","inboxes","download"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Fuso em que as datas do arquivo são escritas, de -12 a 14. Padrão 0 (UTC); use -3 para o horário de Brasília.</p>\n","type":"text/plain"},"key":"timezoneOffsetHours","value":"-3"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""}],"variable":[]}},"response":[],"_postman_id":"3ecd67db-4d4b-41b7-7e7e-be279df880bc"},{"name":"Etiquetas - Visão geral","id":"9191b9eb-3f94-8982-6fbc-8496f445f91c","request":{"method":"GET","header":[{"description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n","key":"x-api-key","value":"your_api-key"}],"url":"https://api.bradial.com.br/chat/v1/reports/labels/overview","description":"<p>Indicadores por etiqueta no período, incluindo o ranking das mais aplicadas.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Escopo.</strong> Sem <code>labelId</code>, a resposta traz os números da conta inteira. Informe <code>labelId</code> para os de uma etiqueta — é o que a tela do produto faz.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","labels","overview"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada. Sem ele, a resposta é da conta inteira.</p>\n","type":"text/plain"},"key":"labelId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""}],"variable":[]}},"response":[{"id":"717ef2db-f71a-021d-4b85-6b3dee21879f","name":"200 - Uma semana, com o ranking de etiquetas","originalRequest":{"method":"GET","header":[{"description":"Chave da conta. Identifica quem chama e a qual conta os dados pertencem.","key":"x-api-key","value":"your_api-key"}],"url":{"raw":"https://api.bradial.com.br/chat/v1/reports/labels/overview","host":["https://api.bradial.com.br"],"path":["chat","v1","reports","labels","overview"],"query":[{"key":"since","description":"Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.","value":"2026-08-01"},{"key":"until","description":"Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.","value":"2026-08-31"},{"key":"labelId","description":"Opcional. Restringe à etiqueta informada. Sem ele, a resposta é da conta inteira.","value":"","disabled":true},{"key":"agentId","description":"Opcional. Restringe ao usuário informado (campo Usuário no produto).","value":"","disabled":true},{"key":"teamId","description":"Opcional. Restringe ao departamento informado.","value":"","disabled":true},{"key":"inboxId","description":"Opcional. Restringe à caixa de entrada informada.","value":"","disabled":true}]},"description":"Indicadores por etiqueta no período, incluindo o ranking das mais aplicadas.\n\n**Autenticação.** Header `x-api-key`. A chave identifica a conta — não há id de conta na URL, e o header `Authorization` é ignorado.\n\n**Período.** `since` e `until` no formato `AAAA-MM-DD`; `until` não pode ser anterior a `since`.\n\n**Escopo.** Sem `labelId`, a resposta traz os números da conta inteira. Informe `labelId` para os de uma etiqueta — é o que a tela do produto faz.\n\n**Filtros.** `agentId` (Usuário), `teamId` (Departamento), `inboxId` (Caixa de entrada), `labelId` (Etiqueta)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n  \"section\": \"labels\",\n  \"grain\": \"day\",\n  \"range\": { \"since\": \"2026-08-01\", \"until\": \"2026-08-07\" },\n  \"previousRange\": { \"since\": \"2026-07-25\", \"until\": \"2026-07-31\" },\n  \"kpis\": [\n    { \"id\": \"conversations\", \"value\": 1840, \"previousValue\": 1712, \"spark\": [240, 268, 301, 255, 262, 259, 255] },\n    { \"id\": \"incomingMessages\", \"value\": 9420, \"previousValue\": 8871, \"spark\": [1230, 1372, 1541, 1305, 1341, 1327, 1304] },\n    { \"id\": \"outgoingMessages\", \"value\": 11208, \"previousValue\": 10502, \"spark\": [1463, 1632, 1833, 1553, 1595, 1579, 1553] },\n    { \"id\": \"resolutions\", \"value\": 1602, \"previousValue\": 1498, \"spark\": [209, 233, 262, 222, 228, 226, 222] },\n    { \"id\": \"resolutionRate\", \"value\": 87.1, \"previousValue\": 87.5, \"spark\": [87, 87, 87, 87, 87, 87, 87] },\n    { \"id\": \"firstResponseTime\", \"value\": 142, \"previousValue\": 168, \"spark\": [151, 148, 139, 144, 140, 138, 134] },\n    { \"id\": \"resolutionTime\", \"value\": 4380, \"previousValue\": 4712, \"spark\": [4500, 4420, 4310, 4390, 4360, 4340, 4320] }\n  ],\n  \"series\": {\n    \"keys\": [\"conversations\", \"resolutions\"],\n    \"points\": [\n      { \"at\": \"2026-08-01\", \"values\": { \"conversations\": 240, \"resolutions\": 209 } },\n      { \"at\": \"2026-08-02\", \"values\": { \"conversations\": 268, \"resolutions\": 233 } },\n      { \"at\": \"2026-08-03\", \"values\": { \"conversations\": 301, \"resolutions\": 262 } }\n    ]\n  },\n  \"accountConversations\": 1840,\n  \"ranking\": [\n    { \"id\": 30, \"name\": \"Segunda via\", \"value\": 412 },\n    { \"id\": 31, \"name\": \"Cancelamento\", \"value\": 268 },\n    { \"id\": 32, \"name\": \"Elogio\", \"value\": 97 }\n  ]\n}"}],"_postman_id":"9191b9eb-3f94-8982-6fbc-8496f445f91c"},{"name":"Etiquetas - Download","id":"e1fe12f8-1482-6b11-3d7a-9572e7768a11","request":{"method":"GET","header":[{"key":"x-api-key","description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n","value":"your_api-key"}],"url":"https://api.bradial.com.br/chat/v1/reports/labels/download","description":"<p>Planilha CSV com os indicadores por etiqueta no período. A resposta é <code>text/csv</code>, não JSON.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Fuso.</strong> As datas dentro do arquivo são escritas no fuso que <code>timezoneOffsetHours</code> indicar. Sem ele, saem em UTC.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","labels","download"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Fuso em que as datas do arquivo são escritas, de -12 a 14. Padrão 0 (UTC); use -3 para o horário de Brasília.</p>\n","type":"text/plain"},"key":"timezoneOffsetHours","value":"-3"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""}],"variable":[]}},"response":[],"_postman_id":"e1fe12f8-1482-6b11-3d7a-9572e7768a11"},{"name":"Departamentos - Visão geral","id":"442ed1a5-4d3a-7492-0d33-611c4f3d9af0","request":{"method":"GET","header":[{"key":"x-api-key","description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n","value":"your_api-key"}],"url":"https://api.bradial.com.br/chat/v1/reports/teams/overview","description":"<p>Indicadores por departamento no período.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Escopo.</strong> Sem <code>teamId</code>, a resposta traz os números da conta inteira. Informe <code>teamId</code> para os de um departamento — é o que a tela do produto faz.</p>\n<p><strong>Nome do parâmetro.</strong> O campo se chama <code>teamId</code> na API e <strong>Departamento</strong> no produto; são a mesma coisa.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","teams","overview"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado. Sem ele, a resposta é da conta inteira.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""}],"variable":[]}},"response":[{"id":"5dbfdb0d-adcb-6317-0931-d0d988d43bb8","name":"200 - Uma semana, com o detalhamento por departamento","originalRequest":{"method":"GET","header":[{"key":"x-api-key","description":"Chave da conta. Identifica quem chama e a qual conta os dados pertencem.","value":"your_api-key"}],"url":{"raw":"https://api.bradial.com.br/chat/v1/reports/teams/overview","host":["https://api.bradial.com.br"],"path":["chat","v1","reports","teams","overview"],"query":[{"key":"since","description":"Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.","value":"2026-08-01"},{"key":"until","description":"Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.","value":"2026-08-31"},{"key":"teamId","description":"Opcional. Restringe ao departamento informado. Sem ele, a resposta é da conta inteira.","value":"","disabled":true},{"key":"agentId","description":"Opcional. Restringe ao usuário informado (campo Usuário no produto).","value":"","disabled":true},{"key":"inboxId","description":"Opcional. Restringe à caixa de entrada informada.","value":"","disabled":true},{"key":"labelId","description":"Opcional. Restringe à etiqueta informada.","value":"","disabled":true}]},"description":"Indicadores por departamento no período.\n\n**Autenticação.** Header `x-api-key`. A chave identifica a conta — não há id de conta na URL, e o header `Authorization` é ignorado.\n\n**Período.** `since` e `until` no formato `AAAA-MM-DD`; `until` não pode ser anterior a `since`.\n\n**Escopo.** Sem `teamId`, a resposta traz os números da conta inteira. Informe `teamId` para os de um departamento — é o que a tela do produto faz.\n\n**Nome do parâmetro.** O campo se chama `teamId` na API e **Departamento** no produto; são a mesma coisa.\n\n**Filtros.** `agentId` (Usuário), `teamId` (Departamento), `inboxId` (Caixa de entrada), `labelId` (Etiqueta)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n  \"section\": \"teams\",\n  \"grain\": \"day\",\n  \"range\": { \"since\": \"2026-08-01\", \"until\": \"2026-08-07\" },\n  \"previousRange\": { \"since\": \"2026-07-25\", \"until\": \"2026-07-31\" },\n  \"kpis\": [\n    { \"id\": \"conversations\", \"value\": 1840, \"previousValue\": 1712, \"spark\": [240, 268, 301, 255, 262, 259, 255] },\n    { \"id\": \"incomingMessages\", \"value\": 9420, \"previousValue\": 8871, \"spark\": [1230, 1372, 1541, 1305, 1341, 1327, 1304] },\n    { \"id\": \"outgoingMessages\", \"value\": 11208, \"previousValue\": 10502, \"spark\": [1463, 1632, 1833, 1553, 1595, 1579, 1553] },\n    { \"id\": \"resolutions\", \"value\": 1602, \"previousValue\": 1498, \"spark\": [209, 233, 262, 222, 228, 226, 222] },\n    { \"id\": \"resolutionRate\", \"value\": 87.1, \"previousValue\": 87.5, \"spark\": [87, 87, 87, 87, 87, 87, 87] },\n    { \"id\": \"firstResponseTime\", \"value\": 142, \"previousValue\": 168, \"spark\": [151, 148, 139, 144, 140, 138, 134] },\n    { \"id\": \"resolutionTime\", \"value\": 4380, \"previousValue\": 4712, \"spark\": [4500, 4420, 4310, 4390, 4360, 4340, 4320] }\n  ],\n  \"series\": {\n    \"keys\": [\"conversations\", \"resolutions\"],\n    \"points\": [\n      { \"at\": \"2026-08-01\", \"values\": { \"conversations\": 240, \"resolutions\": 209 } },\n      { \"at\": \"2026-08-02\", \"values\": { \"conversations\": 268, \"resolutions\": 233 } },\n      { \"at\": \"2026-08-03\", \"values\": { \"conversations\": 301, \"resolutions\": 262 } }\n    ]\n  },\n  \"accountConversations\": 1840,\n  \"breakdown\": [\n    { \"id\": 12, \"name\": \"Suporte\", \"conversationsCount\": 980, \"resolutionsCount\": 861, \"share\": 53.3, \"firstResponseTime\": 128, \"resolutionTime\": 4110, \"spark\": [130, 142, 158, 136, 139, 138, 137] },\n    { \"id\": 13, \"name\": \"Financeiro\", \"conversationsCount\": 512, \"resolutionsCount\": 441, \"share\": 27.8, \"firstResponseTime\": 165, \"resolutionTime\": 5020, \"spark\": [68, 74, 82, 70, 73, 72, 73] }\n  ]\n}"}],"_postman_id":"442ed1a5-4d3a-7492-0d33-611c4f3d9af0"},{"name":"Departamentos - Download","id":"81da9064-52a0-c74f-6773-a812cb57f86c","request":{"method":"GET","header":[{"value":"your_api-key","key":"x-api-key","description":"<p>Chave da conta. Identifica quem chama e a qual conta os dados pertencem.</p>\n"}],"url":"https://api.bradial.com.br/chat/v1/reports/teams/download","description":"<p>Planilha CSV com os indicadores por departamento no período. A resposta é <code>text/csv</code>, não JSON.</p>\n<p><strong>Autenticação.</strong> Header <code>x-api-key</code>. A chave identifica a conta — não há id de conta na URL, e o header <code>Authorization</code> é ignorado.</p>\n<p><strong>Período.</strong> <code>since</code> e <code>until</code> no formato <code>AAAA-MM-DD</code>; <code>until</code> não pode ser anterior a <code>since</code>.</p>\n<p><strong>Fuso.</strong> As datas dentro do arquivo são escritas no fuso que <code>timezoneOffsetHours</code> indicar. Sem ele, saem em UTC.</p>\n<p><strong>Filtros.</strong> <code>agentId</code> (Usuário), <code>teamId</code> (Departamento), <code>inboxId</code> (Caixa de entrada), <code>labelId</code> (Etiqueta).</p>\n","urlObject":{"path":["chat","v1","reports","teams","download"],"host":["https://api.bradial.com.br"],"query":[{"description":{"content":"<p>Obrigatório. Primeiro dia do período, no formato AAAA-MM-DD.</p>\n","type":"text/plain"},"key":"since","value":"2026-08-01"},{"description":{"content":"<p>Obrigatório. Último dia do período, no formato AAAA-MM-DD. Não pode ser anterior a since.</p>\n","type":"text/plain"},"key":"until","value":"2026-08-31"},{"disabled":true,"description":{"content":"<p>Opcional. Fuso em que as datas do arquivo são escritas, de -12 a 14. Padrão 0 (UTC); use -3 para o horário de Brasília.</p>\n","type":"text/plain"},"key":"timezoneOffsetHours","value":"-3"},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao departamento informado.</p>\n","type":"text/plain"},"key":"teamId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe ao usuário informado (campo Usuário no produto).</p>\n","type":"text/plain"},"key":"agentId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à caixa de entrada informada.</p>\n","type":"text/plain"},"key":"inboxId","value":""},{"disabled":true,"description":{"content":"<p>Opcional. Restringe à etiqueta informada.</p>\n","type":"text/plain"},"key":"labelId","value":""}],"variable":[]}},"response":[],"_postman_id":"81da9064-52a0-c74f-6773-a812cb57f86c"}],"id":"6cff7acb-d542-451d-b3e1-0249ec17d919","description":"<p>Indicadores de atendimento do Bradial Chat. São doze endpoints <code>GET</code>: uma <strong>visão geral</strong> em JSON por seção e um <strong>download</strong> em CSV, mais a listagem paginada de respostas de CSAT.</p>\n<h2 id=\"autenticação\">Autenticação</h2>\n<p>Envie a chave no header <code>x-api-key</code>. Ela identifica quem chama <strong>e a qual conta os dados pertencem</strong> — por isso <strong>não existe id de conta na URL</strong>, diferente dos endpoints da pasta V2. O header <code>Authorization</code> é ignorado: a chave é a única credencial aceita aqui.</p>\n<h2 id=\"período\">Período</h2>\n<p><code>since</code> e <code>until</code> são obrigatórios em todas as rotas, no formato <code>AAAA-MM-DD</code>, e <code>until</code> não pode ser anterior a <code>since</code>. Um período de um único dia é agrupado por hora; acima disso, por dia.</p>\n<h2 id=\"filtros\">Filtros</h2>\n<p>Todos opcionais e combináveis. O nome do parâmetro é técnico e nem sempre igual ao rótulo que aparece no produto:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parâmetro</th>\n<th>Como aparece no produto</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>agentId</code></td>\n<td>Usuário</td>\n</tr>\n<tr>\n<td><code>teamId</code></td>\n<td>Departamento</td>\n</tr>\n<tr>\n<td><code>inboxId</code></td>\n<td>Caixa de entrada</td>\n</tr>\n<tr>\n<td><code>labelId</code></td>\n<td>Etiqueta</td>\n</tr>\n</tbody>\n</table>\n</div><p>Sem nenhum filtro de dimensão, a resposta é da conta inteira. As telas do produto sempre aplicam um.</p>\n<h2 id=\"downloads\">Downloads</h2>\n<p>As rotas <code>/download</code> respondem <code>text/csv</code>, não JSON. Elas aceitam <code>timezoneOffsetHours</code>, de -12 a 14, que define o fuso em que as datas são escritas dentro do arquivo; sem ele, saem em UTC. Para o horário de Brasília, use <code>-3</code>.</p>\n<h2 id=\"o-que-não-entra\">O que não entra</h2>\n<p>O chat interno é excluído de todos os relatórios. Uma caixa de entrada desse tipo não aparece nos números nem responde como filtro.</p>\n","_postman_id":"6cff7acb-d542-451d-b3e1-0249ec17d919"},{"name":"Arquivos","item":[{"name":"1. Iniciar upload","id":"3cd49092-640e-ed4c-162f-c4ed93b502d5","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"folder.pdf\",\n    \"size\": 2483019,\n    \"contentType\": \"application/pdf\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/files/uploads","description":"<p><strong>Passo 1 de 3.</strong> Prepara o envio de um arquivo e devolve as URLs para mandar os bytes.</p>\n<h2 id=\"o-fluxo\">O fluxo</h2>\n<ol>\n<li><strong>Iniciar upload</strong> (esta request): informe nome, tamanho e tipo. A resposta traz <code>key</code>, <code>uploadId</code> e uma URL por parte em <code>parts</code>.</li>\n<li><strong>Enviar parte</strong>: para cada item de <code>parts</code>, faça um <code>PUT</code> com os bytes daquela parte na <code>url</code>. Guarde o <code>ETag</code> de cada resposta.</li>\n<li><strong>Concluir upload</strong>: envie <code>key</code>, <code>uploadId</code> e a lista de <code>{ partNumber, eTag }</code>. A resposta confirma a <code>key</code> do arquivo.</li>\n</ol>\n<p>Depois, use a <code>key</code> ao criar a campanha: em <code>bradial.file.key</code> (WhatsApp - API Web) ou em <code>media_key</code> no cabeçalho de mídia (WhatsApp - API Oficial).</p>\n<p>Se algo falhar no meio, chame <strong>Cancelar upload</strong>.</p>\n<h2 id=\"corpo\">Corpo</h2>\n<ul>\n<li><code>name</code>: nome do arquivo, até 255 caracteres.</li>\n<li><code>size</code>: tamanho exato em bytes, até 100 MB (104857600).</li>\n<li><code>contentType</code>: tipo do arquivo. Aceitos: imagens (exceto SVG), áudio, vídeo, PDF, CSV, TXT, RTF, JSON, ZIP, 7z, RAR, TAR e documentos do Office.</li>\n</ul>\n<h2 id=\"partes\">Partes</h2>\n<p>Cada parte tem 5 MB (<code>partSize</code>). Arquivos de até 5 MB têm <strong>uma parte só</strong>: o fluxo inteiro são 3 chamadas.</p>\n","urlObject":{"path":["chat","v1","files","uploads"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"5c3da769-37fb-ba82-ba62-2b8c101134c3","name":"201 — arquivo pequeno (1 parte)","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"tabela-precos-novembro.pdf\",\n    \"size\": 2483019,\n    \"contentType\": \"application/pdf\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/files/uploads"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"key\": \"temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f\",\n        \"uploadId\": \"2~kJ8vQm3XrT5nW7bYc1ZpLd9HfGs0AeUoVi4NtRyMqBx6Kw\",\n        \"partSize\": 5242880,\n        \"parts\": [\n            {\n                \"partNumber\": 1,\n                \"url\": \"https://bradial-api-prod-us-east.s3.us-east-1.amazonaws.com/temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE%2F20261103%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20261103T130112Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&partNumber=1&uploadId=2~kJ8vQm3XrT5nW7bYc1ZpLd9HfGs0AeUoVi4NtRyMqBx6Kw&x-id=UploadPart&X-Amz-Signature=5d1c0e9f7a2b4c6d8e0f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f7a9b1c3d\"\n            }\n        ]\n    }\n}"},{"id":"c342e41c-aa0a-a91f-00c5-4544b7aee645","name":"201 — arquivo grande (3 partes)","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"video-lancamento.mp4\",\n    \"size\": 12582912,\n    \"contentType\": \"video/mp4\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/files/uploads"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"key\": \"temp/8c2e4f61-1a3b-4d5c-9e7f-0b2d4f6a8c10\",\n        \"uploadId\": \"2~Wq4Lr9TzX2nB7cVd1KmP5sJ8hF3yGeUoAi6NtRxMqZb0Kw\",\n        \"partSize\": 5242880,\n        \"parts\": [\n            {\n                \"partNumber\": 1,\n                \"url\": \"https://bradial-api-prod-us-east.s3.us-east-1.amazonaws.com/temp/8c2e4f61-1a3b-4d5c-9e7f-0b2d4f6a8c10?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE%2F20261103%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20261103T130204Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&partNumber=1&uploadId=2~Wq4Lr9TzX2nB7cVd1KmP5sJ8hF3yGeUoAi6NtRxMqZb0Kw&x-id=UploadPart&X-Amz-Signature=1a3c5e7a9b1d3f5a7c9e1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1a3c5e7b9d1f3a\"\n            },\n            {\n                \"partNumber\": 2,\n                \"url\": \"https://bradial-api-prod-us-east.s3.us-east-1.amazonaws.com/temp/8c2e4f61-1a3b-4d5c-9e7f-0b2d4f6a8c10?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE%2F20261103%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20261103T130204Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&partNumber=2&uploadId=2~Wq4Lr9TzX2nB7cVd1KmP5sJ8hF3yGeUoAi6NtRxMqZb0Kw&x-id=UploadPart&X-Amz-Signature=2b4d6f8a0c2e4b6d8f0a2c4e6b8d0f2a4c6e8b0d2f4a6c8e0b2d4f6a8c0e2b4d\"\n            },\n            {\n                \"partNumber\": 3,\n                \"url\": \"https://bradial-api-prod-us-east.s3.us-east-1.amazonaws.com/temp/8c2e4f61-1a3b-4d5c-9e7f-0b2d4f6a8c10?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE%2F20261103%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20261103T130204Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&partNumber=3&uploadId=2~Wq4Lr9TzX2nB7cVd1KmP5sJ8hF3yGeUoAi6NtRxMqZb0Kw&x-id=UploadPart&X-Amz-Signature=3c5e7a9b1d3f5c7e9a1d3b5f7c9e1a3d5b7f9c1e3a5d7b9f1c3e5a7d9b1f3c5e\"\n            }\n        ]\n    }\n}"},{"id":"82e03282-aeb9-fc3f-d806-33a6e6eb3869","name":"422 — arquivo acima de 100 MB","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"apresentacao-completa.mp4\",\n    \"size\": 157286400,\n    \"contentType\": \"video/mp4\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/files/uploads"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": [\n        \"size must not be greater than 104857600\"\n    ],\n    \"error\": \"Unprocessable Entity\",\n    \"statusCode\": 422\n}"}],"_postman_id":"3cd49092-640e-ed4c-162f-c4ed93b502d5"},{"name":"3. Concluir upload","id":"7e56fe70-af20-6136-45e3-ea91e8b8dc64","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f\",\n    \"uploadId\": \"2~abcDEF123\",\n    \"parts\": [\n        { \"partNumber\": 1, \"eTag\": \"\\\"9b2cf535f27731c974343645a3985328\\\"\" }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/files/uploads/complete","description":"<p><strong>Passo 3 de 3.</strong> Fecha o envio depois que todas as partes foram enviadas em <strong>2. Enviar parte</strong>.</p>\n<p><strong>Corpo.</strong></p>\n<ul>\n<li><code>key</code> e <code>uploadId</code>: os valores devolvidos em <strong>1. Iniciar upload</strong>.</li>\n<li><code>parts</code>: um item <code>{ partNumber, eTag }</code> por parte, na ordem, com o <code>ETag</code> exatamente como veio no header da resposta, aspas incluídas.</li>\n</ul>\n<p><strong>Resposta.</strong> <code>{ data: { key, name } }</code>. A <code>key</code> é o que vai na campanha: <code>bradial.file.key</code> (WhatsApp - API Web) ou <code>media_key</code> no cabeçalho de mídia (WhatsApp - API Oficial).</p>\n<p><strong>Validade.</strong> O arquivo fica em uma área temporária até ser usado em uma campanha. Crie a campanha logo depois de concluir o envio.</p>\n","urlObject":{"path":["chat","v1","files","uploads","complete"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"a197f673-5026-27cf-e640-b38c4099ae6c","name":"200 — arquivo pequeno (1 parte)","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f\",\n    \"uploadId\": \"2~kJ8vQm3XrT5nW7bYc1ZpLd9HfGs0AeUoVi4NtRyMqBx6Kw\",\n    \"parts\": [\n        { \"partNumber\": 1, \"eTag\": \"\\\"9b2cf535f27731c974343645a3985328\\\"\" }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/files/uploads/complete"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"key\": \"temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f\",\n        \"name\": \"tabela-precos-novembro.pdf\"\n    }\n}"},{"id":"d04595fd-a31e-5a11-ef42-fc8ac50aff5b","name":"200 — arquivo grande (3 partes)","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"temp/8c2e4f61-1a3b-4d5c-9e7f-0b2d4f6a8c10\",\n    \"uploadId\": \"2~Wq4Lr9TzX2nB7cVd1KmP5sJ8hF3yGeUoAi6NtRxMqZb0Kw\",\n    \"parts\": [\n        { \"partNumber\": 1, \"eTag\": \"\\\"7f3a1c9e5b2d8f4a6c0e1b3d5f7a9c2e\\\"\" },\n        { \"partNumber\": 2, \"eTag\": \"\\\"4b8d2f6a0c4e8b2d6f0a4c8e2b6d0f4a\\\"\" },\n        { \"partNumber\": 3, \"eTag\": \"\\\"c1e5a9d3f7b1e5c9a3d7f1b5e9c3a7d1\\\"\" }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/files/uploads/complete"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"key\": \"temp/8c2e4f61-1a3b-4d5c-9e7f-0b2d4f6a8c10\",\n        \"name\": \"video-lancamento.mp4\"\n    }\n}"},{"id":"95faf849-21e9-b9db-c65d-0af2969e1136","name":"400 — envio inválido ou de outra conta","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f\",\n    \"uploadId\": \"2~kJ8vQm3XrT5nW7bYc1ZpLd9HfGs0AeUoVi4NtRyMqBx6Kw\",\n    \"parts\": [\n        { \"partNumber\": 1, \"eTag\": \"\\\"00000000000000000000000000000000\\\"\" }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/files/uploads/complete"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"value":"application/json; charset=utf-8","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The uploaded file is not valid.\",\n    \"statusCode\": 400,\n    \"error\": {\n        \"code\": \"FILE001\",\n        \"message\": \"The uploaded file is not valid.\",\n        \"reason\": \"When a completed upload is larger than 100 MB, names an upload, parts or a file S3 does not have, as on a retried complete once the file has already been completed, or was started by another brand or account.\"\n    }\n}"}],"_postman_id":"7e56fe70-af20-6136-45e3-ea91e8b8dc64"},{"name":"Cancelar upload","id":"ed5d6855-ca6f-fcd3-9499-0e15ab7a8903","request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[{"value":"application/json","key":"Content-Type"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f\",\n    \"uploadId\": \"2~abcDEF123\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/files/uploads/abort","description":"<p>Cancela um envio que não será concluído, por exemplo quando uma parte falhou ou o arquivo foi trocado. Libera as partes já enviadas.</p>\n<p>Use quando o fluxo <strong>1 → 2 → 3</strong> for interrompido no meio. Depois de <strong>3. Concluir upload</strong>, não é preciso cancelar.</p>\n<p><strong>Corpo.</strong> <code>key</code> e <code>uploadId</code> devolvidos em <strong>1. Iniciar upload</strong>. Cancelar um envio que já não existe também responde <code>200</code>.</p>\n","urlObject":{"path":["chat","v1","files","uploads","abort"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"aaccfdf9-5cd7-adcb-576c-bbb93f9371ff","name":"200 — envio cancelado","originalRequest":{"auth":{"type":"apikey","apikey":{"key":"x-api-key","value":"your_api-key","in":"header"}},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"key\": \"temp/8c2e4f61-1a3b-4d5c-9e7f-0b2d4f6a8c10\",\n    \"uploadId\": \"2~Wq4Lr9TzX2nB7cVd1KmP5sJ8hF3yGeUoAi6NtRxMqZb0Kw\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/chat/v1/files/uploads/abort"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json; charset=utf-8"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": null\n}"}],"_postman_id":"ed5d6855-ca6f-fcd3-9499-0e15ab7a8903"},{"name":"2. Enviar parte","id":"7cb8d095-3399-9148-7759-434368702cf1","request":{"auth":{"type":"noauth","isInherited":false},"method":"PUT","header":[],"body":{"mode":"file","file":{}},"url":"{{part_url}}","description":"<p><strong>Passo 2 de 3.</strong> Envia os bytes de uma parte do arquivo direto para o armazenamento.</p>\n<p><strong>URL.</strong> Cole aqui a <code>url</code> de um item de <code>parts</code> devolvido em <strong>1. Iniciar upload</strong>, no lugar de <code>{{part_url}}</code>. A URL já vem assinada e vale por 1 hora.</p>\n<p><strong>Corpo.</strong> Os bytes da parte, em binário (aba <strong>Body › binary</strong>). Cada parte tem <code>partSize</code> bytes (5 MB), e a última leva o que sobrou. Exemplo para um arquivo de 12 MB: parte 1 = bytes 0 a 5.242.879; parte 2 = 5.242.880 a 10.485.759; parte 3 = o restante.</p>\n<p><strong>Sem <code>x-api-key</code>.</strong> Esta chamada não passa pela API da Bradial. Não envie a chave nem o header <code>Authorization</code>, porque a assinatura vai na própria URL.</p>\n<p><strong>Resposta.</strong> <code>200</code> sem corpo. <strong>Guarde o header <code>ETag</code></strong> de cada parte, com as aspas: ele é obrigatório em <strong>3. Concluir upload</strong>.</p>\n<p>Arquivos de até 5 MB têm uma parte só, então este passo roda uma vez.</p>\n","urlObject":{"host":["{{part_url}}"],"query":[],"variable":[]}},"response":[{"id":"57ca0e59-c830-ae07-6459-882faa66e1c1","name":"200 — parte enviada (guarde o ETag)","originalRequest":{"auth":{"type":"noauth"},"method":"PUT","header":[],"body":{"mode":"file","file":{}},"url":{"raw":"https://bradial-api-prod-us-east.s3.us-east-1.amazonaws.com/temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE%2F20261103%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20261103T130112Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&partNumber=1&uploadId=2~kJ8vQm3XrT5nW7bYc1ZpLd9HfGs0AeUoVi4NtRyMqBx6Kw&x-id=UploadPart&X-Amz-Signature=5d1c0e9f7a2b4c6d8e0f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f7a9b1c3d","protocol":"https","host":["bradial-api-prod-us-east","s3","us-east-1","amazonaws","com"],"path":["temp","3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f"],"query":[{"key":"X-Amz-Algorithm","value":"AWS4-HMAC-SHA256"},{"key":"X-Amz-Credential","value":"AKIAEXAMPLE%2F20261103%2Fus-east-1%2Fs3%2Faws4_request"},{"key":"X-Amz-Date","value":"20261103T130112Z"},{"key":"X-Amz-Expires","value":"3600"},{"key":"X-Amz-SignedHeaders","value":"host"},{"key":"partNumber","value":"1"},{"key":"uploadId","value":"2~kJ8vQm3XrT5nW7bYc1ZpLd9HfGs0AeUoVi4NtRyMqBx6Kw"},{"key":"x-id","value":"UploadPart"},{"key":"X-Amz-Signature","value":"5d1c0e9f7a2b4c6d8e0f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f7a9b1c3d"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"ETag","value":"\"9b2cf535f27731c974343645a3985328\""},{"key":"Content-Length","value":"0"}],"cookie":[],"responseTime":null,"body":""},{"id":"3ce62fdd-0ff8-0438-9e1b-001618746ae9","name":"403 — URL vencida (mais de 1 hora)","originalRequest":{"auth":{"type":"noauth"},"method":"PUT","header":[],"body":{"mode":"file","file":{}},"url":{"raw":"https://bradial-api-prod-us-east.s3.us-east-1.amazonaws.com/temp/3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAEXAMPLE%2F20261103%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20261103T130112Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&partNumber=1&uploadId=2~kJ8vQm3XrT5nW7bYc1ZpLd9HfGs0AeUoVi4NtRyMqBx6Kw&x-id=UploadPart&X-Amz-Signature=5d1c0e9f7a2b4c6d8e0f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f7a9b1c3d","protocol":"https","host":["bradial-api-prod-us-east","s3","us-east-1","amazonaws","com"],"path":["temp","3f1c2a9e-8b7d-4e21-9c55-0a1b2c3d4e5f"],"query":[{"key":"X-Amz-Algorithm","value":"AWS4-HMAC-SHA256"},{"key":"X-Amz-Credential","value":"AKIAEXAMPLE%2F20261103%2Fus-east-1%2Fs3%2Faws4_request"},{"key":"X-Amz-Date","value":"20261103T130112Z"},{"key":"X-Amz-Expires","value":"3600"},{"key":"X-Amz-SignedHeaders","value":"host"},{"key":"partNumber","value":"1"},{"key":"uploadId","value":"2~kJ8vQm3XrT5nW7bYc1ZpLd9HfGs0AeUoVi4NtRyMqBx6Kw"},{"key":"x-id","value":"UploadPart"},{"key":"X-Amz-Signature","value":"5d1c0e9f7a2b4c6d8e0f1a3b5c7d9e1f3a5b7c9d1e3f5a7b9c1d3e5f7a9b1c3d"}]}},"status":"Forbidden","code":403,"_postman_previewlanguage":"xml","header":[{"key":"Content-Type","value":"application/xml"}],"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error>\n    <Code>AccessDenied</Code>\n    <Message>Request has expired</Message>\n    <X-Amz-Expires>3600</X-Amz-Expires>\n    <Expires>2026-11-03T14:01:12Z</Expires>\n    <ServerTime>2026-11-03T14:20:45Z</ServerTime>\n</Error>"}],"_postman_id":"7cb8d095-3399-9148-7759-434368702cf1"}],"id":"35fb594c-886e-453e-a209-e2db117f493a","_postman_id":"35fb594c-886e-453e-a209-e2db117f493a","description":""},{"name":"V2","item":[{"name":"Agents","item":[{"name":"FindAll","id":"a090271e-416e-400c-a46d-7833fd32bb82","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/agents?page=1","description":"<p>Este endpoint permite listar todos os seus agentes.</p>\n","urlObject":{"path":["v2","public-api","v1","agents"],"host":["https://api.bradial.com.br"],"query":[{"key":"page","value":"1"}],"variable":[]}},"response":[{"id":"f271ef64-072e-4e9a-8735-bcf5fc19d645","name":"List","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":{"raw":"https://api.bradial.com.br/v2/public-api/v1/agents?page=1","host":["https://api.bradial.com.br"],"path":["v2","public-api","v1","agents"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"email\": \"alice.santos@example.com\",\n      \"name\": \"Alice Santos\",\n      \"role\": \"administrator\",\n      \"extension\": \"3001\",\n      \"canSpyTickets\": false,\n      \"canAcceptPreassignTickets\": true,\n      \"seeAllPreviousConversation\": true\n    },\n    {\n      \"id\": 2,\n      \"email\": \"bruno.madeira@example.com\",\n      \"name\": \"Bruno Madeira\",\n      \"role\": \"agent\",\n      \"extension\": null,\n      \"canSpyTickets\": false,\n      \"canAcceptPreassignTickets\": false,\n      \"seeAllPreviousConversation\": false\n    },\n    {\n      \"id\": 3,\n      \"email\": \"carla.oliveira@example.com\",\n      \"name\": \"Carla Oliveira\",\n      \"role\": \"supervisor\",\n      \"extension\": \"1188\",\n      \"canSpyTickets\": true,\n      \"canAcceptPreassignTickets\": true,\n      \"seeAllPreviousConversation\": false\n    },\n    {\n      \"id\": 4,\n      \"email\": \"diego.silva@example.com\",\n      \"name\": \"Diego Silva\",\n      \"role\": \"administrator\",\n      \"extension\": null,\n      \"canSpyTickets\": false,\n      \"canAcceptPreassignTickets\": true,\n      \"seeAllPreviousConversation\": true\n    },\n    {\n      \"id\": 5,\n      \"email\": \"erika.monteiro@example.com\",\n      \"name\": \"Érika Monteiro\",\n      \"role\": \"agent\",\n      \"extension\": \"912\",\n      \"canSpyTickets\": false,\n      \"canAcceptPreassignTickets\": true,\n      \"seeAllPreviousConversation\": false\n    }\n  ],\n  \"items\": 5\n}"}],"_postman_id":"a090271e-416e-400c-a46d-7833fd32bb82"},{"name":"FindAll Copy","id":"d19f0450-e6e9-49f3-ad8c-501b14530b62","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/agents?page=1","description":"<p>Este endpoint permite listar todos os seus agentes.</p>\n","urlObject":{"path":["v2","public-api","v1","agents"],"host":["https://api.bradial.com.br"],"query":[{"key":"page","value":"1"}],"variable":[]}},"response":[{"id":"fb7e1763-12ad-4999-842f-734efbb6fcab","name":"List","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":{"raw":"https://api.bradial.com.br/v2/public-api/v1/agents?page=1","host":["https://api.bradial.com.br"],"path":["v2","public-api","v1","agents"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"email\": \"alice.santos@example.com\",\n      \"name\": \"Alice Santos\",\n      \"role\": \"administrator\",\n      \"extension\": \"3001\",\n      \"canSpyTickets\": false,\n      \"canAcceptPreassignTickets\": true,\n      \"seeAllPreviousConversation\": true\n    },\n    {\n      \"id\": 2,\n      \"email\": \"bruno.madeira@example.com\",\n      \"name\": \"Bruno Madeira\",\n      \"role\": \"agent\",\n      \"extension\": null,\n      \"canSpyTickets\": false,\n      \"canAcceptPreassignTickets\": false,\n      \"seeAllPreviousConversation\": false\n    },\n    {\n      \"id\": 3,\n      \"email\": \"carla.oliveira@example.com\",\n      \"name\": \"Carla Oliveira\",\n      \"role\": \"supervisor\",\n      \"extension\": \"1188\",\n      \"canSpyTickets\": true,\n      \"canAcceptPreassignTickets\": true,\n      \"seeAllPreviousConversation\": false\n    },\n    {\n      \"id\": 4,\n      \"email\": \"diego.silva@example.com\",\n      \"name\": \"Diego Silva\",\n      \"role\": \"administrator\",\n      \"extension\": null,\n      \"canSpyTickets\": false,\n      \"canAcceptPreassignTickets\": true,\n      \"seeAllPreviousConversation\": true\n    },\n    {\n      \"id\": 5,\n      \"email\": \"erika.monteiro@example.com\",\n      \"name\": \"Érika Monteiro\",\n      \"role\": \"agent\",\n      \"extension\": \"912\",\n      \"canSpyTickets\": false,\n      \"canAcceptPreassignTickets\": true,\n      \"seeAllPreviousConversation\": false\n    }\n  ],\n  \"items\": 5\n}"}],"_postman_id":"d19f0450-e6e9-49f3-ad8c-501b14530b62"},{"name":"FindOne","id":"4ea4a8c6-59bb-40ce-bdfa-a42bbd665ee7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/agents/your_agent_id","description":"<p>Este endpoint permite buscar um agente específico utilizando o ID.</p>\n","urlObject":{"path":["v2","public-api","v1","agents","your_agent_id"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"fd155406-9e36-43bc-adf8-870caeaa8e4a","name":"FindOne","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/agents/your_agent_id"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"id\": 1,\n    \"email\": \"alice.santos@example.com\",\n    \"name\": \"Alice Santos\",\n    \"role\": \"administrator\",\n    \"extension\": \"3001\",\n    \"canSpyTickets\": false,\n    \"canAcceptPreassignTickets\": true,\n    \"seeAllPreviousConversation\": true\n}"}],"_postman_id":"4ea4a8c6-59bb-40ce-bdfa-a42bbd665ee7"},{"name":"Create","id":"9bdf2c71-c3bd-4bbd-a8c9-fe5277bcff48","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"alice.santos@example.com\",\n    \"name\": \"Alice Santos\",\n    \"role\": \"administrator\",\n    \"extension\": \"3001\",\n    \"canSpyTickets\": false,\n    \"canAcceptPreassignTickets\": true,\n    \"seeAllPreviousConversation\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/agents","description":"<p>Este endpoint permite criar um novo agente.</p>\n","urlObject":{"path":["v2","public-api","v1","agents"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"fa967734-a043-4c0c-a255-ed1b53905ec2","name":"Create","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"alice.santos@example.com\",\n    \"name\": \"Alice Santos\",\n    \"role\": \"administrator\",\n    \"extension\": \"3001\",\n    \"canSpyTickets\": false,\n    \"canAcceptPreassignTickets\": true,\n    \"seeAllPreviousConversation\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/agents"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"id\": 1,\n    \"email\": \"alice.santos@example.com\",\n    \"name\": \"Alice Santos\",\n    \"role\": \"administrator\",\n    \"extension\": \"3001\",\n    \"canSpyTickets\": false,\n    \"canAcceptPreassignTickets\": true,\n    \"seeAllPreviousConversation\": true\n}"}],"_postman_id":"9bdf2c71-c3bd-4bbd-a8c9-fe5277bcff48"},{"name":"SSO","id":"00e959ca-15e7-4a99-9da6-94a37c0ee8d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/agents/your_agent_id/sso","description":"<p>Este endpoint permite realizar login sem o uso de senha, a partir do padrão SSO.</p>\n","urlObject":{"path":["v2","public-api","v1","agents","your_agent_id","sso"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"4e09a9f1-023d-44b7-acfc-1baf4b9ddba4","name":"SSO","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/agents/your_agent_id/sso"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"email\": \"alice.santos@example.com\",\n    \"token\": \"17032812ff2ac4d865229591ec5241372ef2f9d3dd30484fec1e4896202c04f2\"\n}"}],"_postman_id":"00e959ca-15e7-4a99-9da6-94a37c0ee8d0"},{"name":"Update","id":"621777f2-615e-4eb4-bfcc-2b8d770c52b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"extension\": \"3003\",\n    \"canSpyTickets\": false,\n    \"canAcceptPreassignTickets\": false,\n    \"seeAllPreviousConversation\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/agents/your_agent_id","description":"<p>Este endpoint permite atualizar um agente já existente.</p>\n","urlObject":{"path":["v2","public-api","v1","agents","your_agent_id"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"dc8f561f-6e3a-479e-9397-b7fcb0c0b2f6","name":"Update","originalRequest":{"method":"PATCH","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"extension\": \"3003\",\n    \"canSpyTickets\": false,\n    \"canAcceptPreassignTickets\": false,\n    \"seeAllPreviousConversation\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/agents/your_agent_id"},"status":"No Content","code":204,"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":""}],"_postman_id":"621777f2-615e-4eb4-bfcc-2b8d770c52b9"},{"name":"Remove","id":"304c3da4-83f6-43d4-b237-10ffbe5580c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/agents/your_agent_id","description":"<p>Este endpoint permite deletar um agente já existente.</p>\n","urlObject":{"path":["v2","public-api","v1","agents","your_agent_id"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"9d5568e5-fe3a-4963-883d-5872df18b0bb","name":"Remove","originalRequest":{"method":"DELETE","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/agents/your_agent_id"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":""}],"_postman_id":"304c3da4-83f6-43d4-b237-10ffbe5580c8"}],"id":"b395aa47-3e26-482c-ace6-0197465deda2","description":"<p>Este recurso permite executar ações no domínio de <strong>Agentes</strong> no <strong>Chat</strong>.</p>\n","_postman_id":"b395aa47-3e26-482c-ace6-0197465deda2"},{"name":"Contacts","item":[{"name":"FindAll","id":"b85a35e2-4798-496d-a64a-79f4aaaf2256","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/contacts?page=1","description":"<p>Este endpoint permite listar todos os seus contatos.</p>\n","urlObject":{"path":["v2","public-api","v1","contacts"],"host":["https://api.bradial.com.br"],"query":[{"key":"page","value":"1"}],"variable":[]}},"response":[{"id":"91bc3a91-990e-7c69-71cd-e0894ff17abb","name":"List","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":{"raw":"https://api.bradial.com.br/v2/public-api/v1/contacts?page=1","host":["https://api.bradial.com.br"],"path":["v2","public-api","v1","contacts"],"query":[{"key":"page","value":"1"}]},"description":"Este endpoint permite listar todos os seus contatos."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": 101,\n      \"name\": \"Alice Peroni\",\n      \"email\": \"alice.peroni@example.com\",\n      \"phoneNumber\": \"+351912345678\",\n      \"description\": \"Cliente desde 2023, prefere contato por WhatsApp.\",\n      \"labels\": [\"new\"]\n    },\n    {\n      \"id\": 102,\n      \"name\": \"Bruno Teixeira\",\n      \"email\": \"bruno.tx@example.net\",\n      \"phoneNumber\": \"+351987654321\",\n      \"description\": \"Conta corporativa, falar com o financeiro.\",\n      \"labels\": [\"vip\", \"priority\"]\n    },\n    {\n      \"id\": 103,\n      \"name\": \"Carla Mendonça\",\n      \"email\": \"carla.mendonca@example.org\",\n      \"phoneNumber\": \"+351673829102\",\n      \"labels\": [\"inactive\"]\n    },\n    {\n      \"id\": 104,\n      \"name\": \"Daniel Farias\",\n      \"email\": \"daniel.farias@example.com\",\n      \"phoneNumber\": \"+351627384756\",\n      \"labels\": [\"new\", \"lead\"]\n    },\n    {\n      \"id\": 105,\n      \"name\": \"Érika Ramos\",\n      \"email\": \"erika.ramos@example.io\",\n      \"phoneNumber\": \"+351697483920\",\n      \"labels\": []\n    }\n  ],\n  \"items\": 5\n}"}],"_postman_id":"b85a35e2-4798-496d-a64a-79f4aaaf2256"},{"name":"FindOne","id":"0c5ae597-fe1f-4284-88da-4fe602c0660d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/contacts/your_contact_id","description":"<p>Este endpoint permite buscar um contato específico utilizando o ID.</p>\n","urlObject":{"path":["v2","public-api","v1","contacts","your_contact_id"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"2f5f1b1b-5d27-a0f5-ac59-28b41bd5ce3b","name":"Show","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/contacts/your_contact_id","description":"Este endpoint permite buscar um contato específico utilizando o ID."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"value":"application/json","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 101,\n    \"name\": \"Alice Peroni\",\n    \"email\": \"alice.peroni@example.com\",\n    \"phoneNumber\": \"+351912345678\",\n    \"description\": \"Cliente desde 2023, prefere contato por WhatsApp.\",\n    \"labels\": [\"new\"]\n}"}],"_postman_id":"0c5ae597-fe1f-4284-88da-4fe602c0660d"},{"name":"Create","id":"f98468a1-c157-43d9-81e7-6c152fe89926","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Alice Peroni\",\n    \"email\": \"alice.peroni@example.com\",\n    \"phoneNumber\": \"+351912345678\",\n    \"description\": \"Cliente desde 2023, prefere contato por WhatsApp.\",\n    \"labels\": [\n        \"new\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/contacts","description":"<p>Este endpoint permite criar um novo contato.</p>\n","urlObject":{"path":["v2","public-api","v1","contacts"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"a7bd5a40-ac04-70f4-ebac-f91aefa15c2e","name":"Create","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Alice Peroni\",\n    \"email\": \"alice.peroni@example.com\",\n    \"phoneNumber\": \"+351912345678\",\n    \"description\": \"Cliente desde 2023, prefere contato por WhatsApp.\",\n    \"labels\": [\n        \"new\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/contacts","description":"Este endpoint permite criar um novo contato."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"value":"application/json","key":"Content-Type"}],"cookie":[],"responseTime":null,"body":"{\n    \"name\": \"Alice Peroni\",\n    \"email\": \"alice.peroni@example.com\",\n    \"phoneNumber\": \"+351912345678\",\n    \"description\": \"Cliente desde 2023, prefere contato por WhatsApp.\",\n    \"labels\": [\n        \"new\"\n    ]\n}"}],"_postman_id":"f98468a1-c157-43d9-81e7-6c152fe89926"},{"name":"Update","id":"e2bb05d4-d952-4a73-b22d-1b3a0cb9a073","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"description\": \"Cliente desde 2023, prefere contato por WhatsApp.\",\n    \"labels\": [\n        \"new\",\n        \"more\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/contacts/your_contact_id","description":"<p>Este endpoint permite atualizar um contato já existente.</p>\n","urlObject":{"path":["v2","public-api","v1","contacts","your_contact_id"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"3c510dd5-b3ae-4711-a016-6893c103e87e","name":"Update","originalRequest":{"method":"PATCH","header":[{"key":"x-api-key","value":"your_api-key","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"labels\": [\n        \"new\",\n        \"more\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/contacts/your_client-id"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":""}],"_postman_id":"e2bb05d4-d952-4a73-b22d-1b3a0cb9a073"},{"name":"Remove","id":"6518c75b-720c-4f9b-8476-aac8c9ad492b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/contacts/your_contact_id","description":"<p>Este endpoint permite deletar um contato já existente.</p>\n","urlObject":{"path":["v2","public-api","v1","contacts","your_contact_id"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"b441fd09-4098-4173-ac7d-b04752a93ee6","name":"Remove","originalRequest":{"method":"DELETE","header":[{"key":"x-api-key","value":"your_api-key","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/contacts/your_client-id"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":""}],"_postman_id":"6518c75b-720c-4f9b-8476-aac8c9ad492b"}],"id":"e725fa39-cd3f-4cba-ba30-00e7b5e94ba0","description":"<p>Este recurso permite executar ações no domínio de <strong>Contatos</strong> no <strong>Chat</strong>.</p>\n","_postman_id":"e725fa39-cd3f-4cba-ba30-00e7b5e94ba0"},{"name":"Inboxes","item":[{"name":"WhatsApp - API Web","item":[{"name":"Send Text","id":"cadab88e-e031-4e34-91b8-081972711f06","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"},{"key":"integration-token","value":"your_integration-token","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\", // Add country code. ex: +55\n    \"content\": \"Hello\",\n    \"status\": 0,\n    \"isGroup\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/messages/whatsapp/text","description":"<p>Este endpoint permite que você envie mensagens de texto para um contato específico ou para um grupo. Além disso, você pode definir uma opção de <strong>status</strong>:</p>\n<ul>\n<li><p><strong><code>status</code></strong> <strong>(<strong>somente aplicável para novos atendimentos</strong>)</strong></p>\n<ul>\n<li><p><strong>0</strong>: Manter o atendimento em aberto.</p>\n</li>\n<li><p><strong>1</strong>: Fechar o atendimento. após a mensagem ser enviada.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["v2","public-api","v1","messages","whatsapp","text"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"fd806ad4-e553-4ff1-aaad-97e68e091b0d","name":"Personal Contact","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"},{"key":"integration-token","value":"your_integration-token","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"+5519999999999\",\n    \"content\": \"This message was sent by the API!\",\n    \"status\": 0,\n    \"isGroup\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/messages/whatsapp/text"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"account\": {\n        \"id\": 1\n    },\n    \"conversation\": {\n        \"id\": 1,\n        \"displayId\": 1,\n        \"status\": 0\n    },\n    \"message\": {\n        \"id\": 1\n    }\n}"},{"id":"e40bacce-dd56-40d8-85c8-af2beb041421","name":"Group Contact","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"},{"key":"integration-token","value":"your_integration-token","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"11111111111111111\",\n    \"content\": \"This message was sent by the API!\",\n    \"status\": 0,\n    \"isGroup\": true\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/messages/whatsapp/text"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"account\": {\n        \"id\": 1\n    },\n    \"conversation\": {\n        \"id\": 1,\n        \"displayId\": 1,\n        \"status\": 0\n    },\n    \"message\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"cadab88e-e031-4e34-91b8-081972711f06"},{"name":"Send Media","id":"d1848d0a-20a6-468c-9d30-5124966e135e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"},{"key":"integration-token","value":"your_integration-token","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"phone","value":"phone_number","description":"<p>Add country code. ex: +55</p>\n","type":"text"},{"key":"isGroup","value":"false","type":"text"},{"key":"file","type":"file","src":"/Users/gustavoorsoli/Downloads/Respostas Rápidas.txt"},{"key":"status","value":"0","description":"<p>optional</p>\n","type":"text","disabled":true},{"key":"caption","value":"","description":"<p>optional</p>\n","type":"text","disabled":true}]},"url":"https://api.bradial.com.br/v2/public-api/v1/messages/whatsapp/media","description":"<p>Este endpoint permite que você envie mensagens de mídia, como imagens, vídeos ou áudios, para um contato específico ou para um grupo. Além disso, você pode definir uma opção de <strong>status</strong>:</p>\n<ul>\n<li><p><strong><code>status</code></strong> <strong>(<strong>somente aplicável para novos atendimentos</strong>)</strong></p>\n<ul>\n<li><p><strong>0</strong>: Manter o atendimento em aberto.</p>\n</li>\n<li><p><strong>1</strong>: Fechar o atendimento. após a mensagem ser enviada.</p>\n</li>\n</ul>\n</li>\n</ul>\n","urlObject":{"path":["v2","public-api","v1","messages","whatsapp","media"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"c4ab2515-e56c-4e53-837c-c69b813053cd","name":"Personal Contact","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"},{"key":"integration-token","value":"your_integration-token","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"phone","value":"+5519999999999","type":"text"},{"key":"isGroup","value":"false","type":"text"},{"key":"file","type":"file","value":null},{"key":"status","value":"0","type":"text"},{"key":"caption","value":"This message was sent by the API!","type":"text"}]},"url":"https://api.bradial.com.br/v2/public-api/v1/messages/whatsapp/media"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"account\": {\n        \"id\": 1\n    },\n    \"conversation\": {\n        \"id\": 1,\n        \"displayId\": 1,\n        \"status\": 0\n    },\n    \"message\": {\n        \"id\": 1\n    }\n}"},{"id":"d52163c0-c7c3-488c-ad64-5da6df698b07","name":"Group Contact","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"},{"key":"integration-token","value":"your_integration-token","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"phone","value":"11111111111111111","type":"text"},{"key":"isGroup","value":"true","type":"text"},{"key":"file","type":"file","value":null},{"key":"status","value":"0","type":"text"},{"key":"caption","value":"This message was sent by the API!","type":"text"}]},"url":"https://api.bradial.com.br/v2/public-api/v1/messages/whatsapp/media"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"account\": {\n        \"id\": 1\n    },\n    \"conversation\": {\n        \"id\": 1,\n        \"displayId\": 1,\n        \"status\": 0\n    },\n    \"message\": {\n        \"id\": 1\n    }\n}"}],"_postman_id":"d1848d0a-20a6-468c-9d30-5124966e135e"}],"id":"d62e0d37-fdd0-4629-95c5-7c603972347d","description":"<p>Este recurso permite executar ações no domínio do <strong>WhatsApp Não Oficial</strong>.</p>\n","_postman_id":"d62e0d37-fdd0-4629-95c5-7c603972347d"},{"name":"WhatsApp - API Oficial","item":[{"name":"Templates","item":[{"name":"FindAll","id":"d9ec5b8c-fb3c-4a3d-8bfa-ee8142e7ff1a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/templates","description":"<p>Este endpoint permite listar todos os seus modelos.</p>\n","urlObject":{"path":["v2","meta-api","inboxes","your_inbox_id","whatsapp","templates"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"72bd72e2-cc0d-442b-8e1b-6157b4d093d4","name":"Success","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/templates"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"id\": \"664496330009637\",\n        \"name\": \"test_text_02\",\n        \"status\": \"APPROVED\",\n        \"category\": \"UTILITY\",\n        \"language\": \"en\",\n        \"components\": [\n            {\n                \"text\": \"Reminder: Our technician will visit your location on {{1}} at {{2}} for your broadband installation. Please be available.\",\n                \"type\": \"BODY\",\n                \"example\": {\n                    \"body_text\": [\n                        [\n                            \"2025-08-27\",\n                            \"10:00\"\n                        ]\n                    ]\n                }\n            }\n        ],\n        \"sub_category\": \"CUSTOM\",\n        \"parameter_format\": \"POSITIONAL\"\n    }\n]"}],"_postman_id":"d9ec5b8c-fb3c-4a3d-8bfa-ee8142e7ff1a"},{"name":"FindOne","id":"7ea83310-fd08-44b8-837c-b2b894b7c7f7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/templates/your_template_name","description":"<p>Este endpoint permite buscar um modelo específico utilizando o nome como identificador único.</p>\n","urlObject":{"path":["v2","meta-api","inboxes","your_inbox_id","whatsapp","templates","your_template_name"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"a003b283-91ad-46c0-959c-ef08582db240","name":"Success","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/templates/your_template_name"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"664496330009637\",\n    \"name\": \"test_text_02\",\n    \"status\": \"APPROVED\",\n    \"category\": \"UTILITY\",\n    \"language\": \"en\",\n    \"components\": [\n        {\n            \"text\": \"Reminder: Our technician will visit your location on {{1}} at {{2}} for your broadband installation. Please be available.\",\n            \"type\": \"BODY\",\n            \"example\": {\n                \"body_text\": [\n                    [\n                        \"2025-08-27\",\n                        \"10:00\"\n                    ]\n                ]\n            }\n        }\n    ],\n    \"sub_category\": \"CUSTOM\",\n    \"parameter_format\": \"POSITIONAL\"\n}"},{"id":"5792f9ff-5cc2-4e49-af0f-a9b86453f313","name":"Fail","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/templates/your_template_name-n"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Template with name your_template_name not found\",\n    \"error\": \"Not Found\",\n    \"statusCode\": 404\n}"}],"_postman_id":"7ea83310-fd08-44b8-837c-b2b894b7c7f7"},{"name":"Sync","id":"b5dfd9e2-6a05-4a0a-81ef-641e53183ae6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[],"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/templates/sync","description":"<p>Este endpoint permite sincronizar os modelos locais com a API da Meta Cloud.</p>\n","urlObject":{"path":["v2","meta-api","inboxes","your_inbox_id","whatsapp","templates","sync"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"3d10d6cc-f2e4-4a98-bb59-a2f0f1a75c35","name":"Success","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/templates/sync"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"b5dfd9e2-6a05-4a0a-81ef-641e53183ae6"}],"id":"6e198a9e-a5f2-4f5b-b5d4-dc8191faae3c","description":"<p>Este subrecurso permite o gerenciamento dos templates registrados.</p>\n","_postman_id":"6e198a9e-a5f2-4f5b-b5d4-dc8191faae3c"},{"name":"Messages","item":[{"name":"Send Template Message","id":"dcb036da-1434-45d4-90d7-48f2722532e8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"params\": {\n        \"body\": {\n            \"customer_name\": \"João da Silva\",\n            \"insurer_name\": \"Porto Seguro\",\n            \"plate\": \"ABC-1234\",\n            \"inspection_link\": \"https://app.realizavistorias.com.br/vistoria/12345\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template","description":"<p>Este endpoint permite o envio de mensagens a partir de templates pré-aprovados. O objeto <code>parameters</code> deve ser preenchido apenas quando o template contiver variáveis; caso não haja, este campo pode ser removido.</p>\n<p>As mensagens são refletidas no Chat por padrão. Para desativar esse comportamento, utilize <code>echo: false</code> na raiz da requisição.</p>\n","urlObject":{"path":["v2","meta-api","inboxes","your_inbox_id","whatsapp","messages","template"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"8641ac36-6ed3-4734-96d5-a679ef97d694","name":"Template without Parameter","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"53dba44a-6fbf-415c-9edd-3efea15cc9de","name":"Text Template (Named Parameter)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"body\": {\n            \"name\": \"John\",\n            \"contact\": \"support@domain.com.br\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"c677f6fb-4ccb-4ffe-8a30-dca293998c76","name":"Text Template (Positional Parameter)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"body\": {\n            \"1\": \"John\",\n            \"2\": \"support@domain.com.br\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"f8e60475-b6a6-49d0-a4b9-68198554d383","name":"Text Template with Buttons (Copy Code) (Named Parameter)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"body\": {\n            \"codigo\": \"1234\"\n        },\n        \"buttons\": [\n            {\n                \"type\": \"copy_code\",\n                \"code\": \"1234\"\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"eb6a0360-dbb2-4f44-9f87-8d6c99fdb0d5","name":"Text Template with Buttons (URL) (Named Parameter)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"body\": {\n            \"name\": \"John\",\n            \"contact\": \"support@domain.com.br\"\n        },\n        \"buttons\": [\n            {\n                \"type\": \"url\",\n                \"url\": \"https://bradial.com.br/\",\n                \"text\": \"Site\"\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"c004ec1c-7150-4b50-bde1-ead0ec0ab699","name":"Text Template with Buttons (Dynamic URL) (Named Parameter)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"body\": {\n            \"name\": \"John\",\n            \"contact\": \"support@domain.com.br\"\n        },\n        \"buttons\": [\n            {\n                \"type\": \"url\",\n                \"variable\": \"summer2023\"\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"57830e9b-9910-4d77-9fa5-b33bd5cdb35a","name":"Text Template with Buttons (Phone Number) (Named Parameter)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"body\": {\n            \"name\": \"John\",\n            \"contact\": \"support@domain.com.br\"\n        },\n        \"buttons\": [\n            {\n                \"type\": \"phone_number\",\n                \"phoneNumber\": \"15550051310\",\n                \"text\": \"Call\"\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"ffa4feed-68c0-437f-b320-9f89570da3c5","name":"Text Template with Buttons (Quick Reply) (Named Parameter)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"body\": {\n            \"name\": \"John\",\n            \"contact\": \"support@domain.com.br\"\n        },\n        \"buttons\": [\n            {\n                \"type\": \"quick_reply\",\n                \"text\": \"Call\"\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"e6b8712b-d6c7-42b8-a093-6c7ffa6f33d7","name":"Text Template with Buttons (Order/Payment) (Named Parameter)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"body\": {\n            \"name\": \"John\",\n            \"contact\": \"support@domain.com.br\"\n        },\n        \"buttons\": [\n            {\n                \"type\": \"order_details\",\n                \"referenceId\": \"B001\",\n                \"category\": \"digital-goods\",\n                \"paymentSettings\": {\n                    \"type\": \"pix_dynamic_code\",\n                    \"pixDynamicCode\": {\n                        \"code\": \"00020101021226700014br.gov.bcb.pix2548pix.example.com...\",\n                        \"merchantName\": \"Account holder name\",\n                        \"key\": \"39580525000189\",\n                        \"keyType\": \"CNPJ\"\n                    }\n                },\n                \"order\": {\n                    \"tax\": {\n                        \"value\": 0\n                    },\n                    \"items\": [\n                        {\n                            \"retailerId\": \"1234567\",\n                            \"name\": \"Chat\",\n                            \"amount\": {\n                                \"value\": 50000\n                            },\n                            \"quantity\": 1\n                        }\n                    ]\n                }\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"ea3d0a78-e76f-4873-b0c2-3b7955c34e09","name":"Media Template (Image)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"header\": {\n            \"type\": \"image\",\n            \"url\": \"https://URL\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"19e24afb-e996-418e-a4dd-9fd05b88ded7","name":"Media Template (Video)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"header\": {\n            \"type\": \"video\",\n            \"url\": \"https://URL\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"},{"id":"fe1cceba-c2d6-4b97-92f8-716aee71bd5e","name":"Media Template (Document)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"template\": \"your_template_name\",\n    \"parameters\": {\n        \"header\": {\n            \"type\": \"document\",\n            \"url\": \"https://URL\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/template"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ]\n}"}],"_postman_id":"dcb036da-1434-45d4-90d7-48f2722532e8"},{"name":"Send Message","id":"2486181b-09ef-41e7-826b-016dcc16ebb5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"type\": \"text\",\n    \"text\": {\n        \"content\": \"<BODY_TEXT>\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages","description":"<p>Este endpoint permite o envio de mensagens mais flexíveis, desde que a última interação do cliente tenha ocorrido nas últimas 24 horas. Caso a janela de 24 horas seja excedida, é necessário utilizar mensagens baseadas em templates e aguardar uma nova interação do cliente para então voltar a usar este recurso.</p>\n<p>Os formatos disponíveis são: <strong>áudio, documento, imagem, botão, reação, texto e vídeo</strong>.</p>\n<p>Para responder a uma mensagem anterior, utilize o campo <code>replyToMessageId</code>, informando o ID da mensagem original. Este parâmetro <strong>não é válido</strong> para mensagens dos tipos <strong>botão</strong> e <strong>reação</strong>.</p>\n<p>As mensagens são refletidas no Chat por padrão. Para desativar esse comportamento, utilize <code>echo: false</code> na raiz da requisição.</p>\n","urlObject":{"path":["v2","meta-api","inboxes","your_inbox_id","whatsapp","messages"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"85c20b9f-eacf-42c6-8e52-94b79ad6c4a6","name":"Audio Message","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"type\": \"audio\",\n    \"audio\": {\n        \"link\": \"<MEDIA_URL>\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ],\n    \"metadata\": {\n        \"conversation\": {\n            \"displayId\": \"DISPLAY_ID\"\n        }\n    }\n}"},{"id":"a45dda2f-7172-4335-83a3-e5a2e2e3e58c","name":"Document Message","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"type\": \"document\",\n    \"document\": {\n        \"link\": \"<MEDIA_URL>\",\n        \"caption\": \"<MEDIA_CAPTION_TEXT>\", // optional\n        \"filename\": \"<MEDIA_FILENAME>\" // optional\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ],\n    \"metadata\": {\n        \"conversation\": {\n            \"displayId\": \"DISPLAY_ID\"\n        }\n    }\n}"},{"id":"d8c60041-143b-4194-9e66-e7612ad37e9f","name":"Image Message","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"type\": \"image\",\n    \"image\": {\n        \"link\": \"<MEDIA_URL>\",\n        \"caption\": \"<MEDIA_CAPTION_TEXT>\" // optional\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ],\n    \"metadata\": {\n        \"conversation\": {\n            \"displayId\": \"DISPLAY_ID\"\n        }\n    }\n}"},{"id":"761b8703-fef6-4fd6-92c0-8ef8685a7d09","name":"Button Message","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"type\": \"button\",\n    \"button\": {\n        \"body\": \"<BODY_TEXT>\",\n        \"footer\": \"<FOOTER_TEXT\", // optional\n        \"items\": [\n            {\n                \"id\": \"<BUTTON_ID>\",\n                \"label\": \"<BUTTON_LABEL_TEXT>\"\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ],\n    \"metadata\": {\n        \"conversation\": {\n            \"displayId\": \"DISPLAY_ID\"\n        }\n    }\n}"},{"id":"a55b723a-bd5b-4580-a96a-1dea00319efe","name":"URL Button Message","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"type\": \"cta_url\",\n    \"ctaUrl\": {\n        \"body\": \"<BODY_TEXT>\",\n        \"footer\": \"<FOOTER_TEXT\", // optional\n        \"action\": {\n            \"text\": \"<BUTTON_TEXT>\",\n            \"url\": \"<BUTTON_URL>\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ],\n    \"metadata\": {\n        \"conversation\": {\n            \"displayId\": \"DISPLAY_ID\"\n        }\n    }\n}"},{"id":"dd586463-80b4-467e-a73e-46ccb28502a5","name":"Reaction Message","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"type\": \"reaction\",\n    \"reaction\": {\n        \"messageId\": \"<WHATSAPP_MESSAGE_ID>\",\n        \"emoji\": \"<EMOJI>\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ],\n    \"metadata\": {\n        \"conversation\": {\n            \"displayId\": \"DISPLAY_ID\"\n        }\n    }\n}"},{"id":"94643bf6-f723-4e4f-aa54-6a4add1736c8","name":"Text Message","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"type\": \"text\",\n    \"text\": {\n        \"content\": \"<BODY_TEXT>\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ],\n    \"metadata\": {\n        \"conversation\": {\n            \"displayId\": \"DISPLAY_ID\"\n        }\n    }\n}"},{"id":"483b1684-6e71-4556-9b64-67ac3da0ffbf","name":"Video Message","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"type\": \"video\",\n    \"video\": {\n        \"link\": \"<MEDIA_URL>\",\n        \"caption\": \"<MEDIA_CAPTION_TEXT>\" // optional\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ],\n    \"metadata\": {\n        \"conversation\": {\n            \"displayId\": \"DISPLAY_ID\"\n        }\n    }\n}"},{"id":"bda4924c-18f7-47a3-85e9-a35f9d19ebe1","name":"Text Message (Contextual replies)","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"phone\": \"phone_number\",\n    \"type\": \"text\",\n    \"replyToMessageId\": \"<WAMID_TO_REPLY_TO>\",\n    \"text\": {\n        \"content\": \"<BODY_TEXT>\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"messaging_product\": \"whatsapp\",\n    \"contacts\": [\n        {\n            \"input\": \"PHONE_NUMBER\",\n            \"wa_id\": \"WHATSAPP_ID\"\n        }\n    ],\n    \"messages\": [\n        {\n            \"id\": \"wamid.ID\"\n        }\n    ],\n    \"metadata\": {\n        \"conversation\": {\n            \"displayId\": \"DISPLAY_ID\"\n        }\n    }\n}"}],"_postman_id":"2486181b-09ef-41e7-826b-016dcc16ebb5"},{"name":"Mark as Read","id":"75bf5665-d6e7-470b-acbe-edcc57e9ebec","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"your_api-key"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"messageId\": \"<WHATSAPP_MESSAGE_ID>\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/mark-as-read","description":"<p>Este endpoint permite marcar uma mensagem como lida.</p>\n","urlObject":{"path":["v2","meta-api","inboxes","your_inbox_id","whatsapp","messages","mark-as-read"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"67292214-de81-49b1-823b-1a5d274b4a9c","name":"Success","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"messageId\": \"<WHATSAPP_MESSAGE_ID>\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/meta-api/inboxes/your_inbox_id/whatsapp/messages/mark-as-read"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"75bf5665-d6e7-470b-acbe-edcc57e9ebec"}],"id":"257d6e8e-2c2f-458f-8b4a-5c9572b6b047","description":"<p>Este recurso permite o envio de mensagens através da API do WhatsApp.</p>\n","_postman_id":"257d6e8e-2c2f-458f-8b4a-5c9572b6b047"}],"id":"a1f98408-04bf-47fd-a216-0d86626e2fab","description":"<p>Este recurso permite executar ações no domínio do <strong>WhatsApp Oficial</strong>.</p>\n","_postman_id":"a1f98408-04bf-47fd-a216-0d86626e2fab"},{"name":"FindAll","id":"46ee0f07-2c8d-4988-af5e-862f0a490574","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/inboxes?page=1","description":"<p>Este endpoint permite listar todas as suas caixas de entrada.</p>\n","urlObject":{"path":["v2","public-api","v1","inboxes"],"host":["https://api.bradial.com.br"],"query":[{"key":"page","value":"1"}],"variable":[]}},"response":[{"id":"780318bf-1798-4921-b338-418609ff20c6","name":"List","originalRequest":{"method":"GET","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":{"raw":"https://api.bradial.com.br/v2/public-api/v1/inboxes?page=1","host":["https://api.bradial.com.br"],"path":["v2","public-api","v1","inboxes"],"query":[{"key":"page","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"Loja 1\",\n      \"isDefault\": true\n    },\n    {\n      \"id\": 2,\n      \"name\": \"Loja 2\",\n      \"isDefault\": false\n    }\n  ],\n  \"items\": 2\n}"}],"_postman_id":"46ee0f07-2c8d-4988-af5e-862f0a490574"}],"id":"b18a4195-0438-4ef0-a203-fe9478f3b6dd","_postman_id":"b18a4195-0438-4ef0-a203-fe9478f3b6dd","description":""},{"name":"Conversations","item":[{"name":"Private Message","id":"ff31819a-417f-4299-aa9e-7e5081f2005d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"content\": \"Private message for others agents.\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.bradial.com.br/v2/public-api/v1/conversations//messages/private","description":"<p>Este endpoint permite salvar mensagens privadas na conversa.</p>\n","urlObject":{"path":["v2","public-api","v1","conversations","","messages","private"],"host":["https://api.bradial.com.br"],"query":[],"variable":[]}},"response":[{"id":"6db5d7f0-a915-490f-a86a-02e25ce9920a","name":"Create","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"your_api-key","type":"text"}],"url":"https://api.bradial.com.br/v2/public-api/v1/conversations//messages/private"},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":""}],"_postman_id":"ff31819a-417f-4299-aa9e-7e5081f2005d"}],"id":"1aa774b3-d431-42e7-b549-7b8c0e74db33","description":"<p>Este recurso permite executar ações no domínio de <strong>Conversas</strong> no <strong>Chat</strong>.</p>\n","_postman_id":"1aa774b3-d431-42e7-b549-7b8c0e74db33"}],"id":"b060d695-6809-470f-a009-173514ad813c","event":[{"listen":"prerequest","script":{"id":"5bf5b893-7289-4e62-b785-7a97c05da6a6","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"10b47821-179f-4351-be36-261044dbc9a6","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"b060d695-6809-470f-a009-173514ad813c","description":""},{"name":"Webhook","item":[{"name":"Agent","item":[],"id":"3854c416-7b86-42d3-b9e0-f97598a0e1b7","description":"<h3 id=\"evento-agent_added\">Evento: agent_added</h3>\n<p>Este evento será acionado quando um novo agente for criado na conta.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"agent_added\"\n  // &lt;...Agent Attributes&gt;\n}\n\n</code></pre>\n<hr />\n<h3 id=\"evento-agent_updated\">Evento: agent_updated</h3>\n<p>Este evento será acionado quando um agente for atualizado na conta.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"agent_updated\",\n  \"changed_attributes\": [\n    {\n      \"&lt;attribute_name&gt;\": {\n        \"current_value\": \"\",\n        \"previous_value\": \"\"\n      }\n    }\n  ]\n  // &lt;...Agent Attributes&gt;\n}\n\n</code></pre>\n<hr />\n<h3 id=\"evento-agent_removed\">Evento: agent_removed</h3>\n<p>Este evento será acionado quando um agente for removido da conta.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"agent_removed\"\n  // &lt;...Agent Attributes&gt;\n}\n\n</code></pre>\n","_postman_id":"3854c416-7b86-42d3-b9e0-f97598a0e1b7"},{"name":"Conversation","item":[],"id":"0332da49-8194-4c30-824a-59b8fd00d429","description":"<h3 id=\"evento-conversation_created\">Evento: conversation_created</h3>\n<p>Este evento será acionado quando uma nova conversa for criada na conta. O payload do evento é o seguinte:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"conversation_created\"\n  // &lt;...Conversation Attributes&gt;\n}\n\n</code></pre>\n<hr />\n<h3 id=\"evento-conversation_updated\">Evento: conversation_updated</h3>\n<p>Este evento será acionado quando houver uma mudança em qualquer um dos atributos da conversa.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"conversation_updated\",\n  \"changed_attributes\": [\n    {\n      \"&lt;attribute_name&gt;\": {\n        \"current_value\": \"\",\n        \"previous_value\": \"\"\n      }\n    }\n  ]\n  // &lt;...Conversation Attributes&gt;\n}\n\n</code></pre>\n<hr />\n<h3 id=\"evento-conversation_status_changed\">Evento: conversation_status_changed</h3>\n<p>Este evento será acionado quando o status da conversa for alterado.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"conversation_status_changed\"\n  // &lt;...Conversation Attributes&gt;\n}\n\n</code></pre>\n","_postman_id":"0332da49-8194-4c30-824a-59b8fd00d429"},{"name":"Message","item":[],"id":"036de61f-0baf-460b-9af9-a74f438b1b3a","description":"<h3 id=\"evento-message_created\">Evento: message_created</h3>\n<p>Este evento será acionado quando uma mensagem for criada em uma conversa. O payload do evento é o seguinte:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"message_created\"\n  // &lt;...Message Attributes&gt;\n}\n\n</code></pre>\n<hr />\n<h3 id=\"evento-message_updated\">Evento: message_updated</h3>\n<p>Este evento será acionado quando uma mensagem for atualizada em uma conversa. O payload do evento é o seguinte:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"message_updated\"\n  // &lt;...Message Attributes&gt;\n}\n\n</code></pre>\n","_postman_id":"036de61f-0baf-460b-9af9-a74f438b1b3a"},{"name":"Contact","item":[],"id":"13206e61-3037-465d-8006-212f23cd3d6d","description":"<h3 id=\"evento-contact_created\">Evento: contact_created</h3>\n<p>Este evento será acionado quando um contato for criado. O payload do evento é o seguinte:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"contact_created\"\n  // &lt;...Message Attributes&gt;\n}\n\n</code></pre>\n<hr />\n<h3 id=\"evento-contact_updated\">Evento: contact_updated</h3>\n<p>Este evento será acionado quando um contato for atualizado. O payload do evento é o seguinte:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"event\": \"contact_updated\"\n  // &lt;...Message Attributes&gt;\n}\n\n</code></pre>\n","_postman_id":"13206e61-3037-465d-8006-212f23cd3d6d"}],"id":"c2911ee1-59b3-4835-91bb-901b2e3c8666","description":"<p>Um payload de evento pode incluir qualquer um dos seguintes objetos. Os vários tipos de objetos suportados pelo Bradial Chat estão listados abaixo.</p>\n<hr />\n<h3 id=\"account\"><strong>Account</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"integer\",\n  \"name\": \"string\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"inbox\"><strong>Inbox</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"integer\",\n  \"name\": \"string\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"contact\"><strong>Contact</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"integer\",\n  \"name\": \"string\",\n  \"avatar\": \"string\",\n  \"type\": \"contact\",\n  \"phone_number\": \"string\",\n  \"custom_attributes\": \"object\",\n  \"labels\": [\"Array of label objects\"]\n  \"account\": {\n    // &lt;...Account Object&gt;\n  }\n}\n\n</code></pre>\n<hr />\n<h3 id=\"user\"><strong>User</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"integer\",\n  \"name\": \"string\",\n  \"email\": \"string\",\n  \"type\": \"user\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"conversation\"><strong>Conversation</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"additional_attributes\": {\n    \"browser\": {\n      \"device_name\": \"string\",\n      \"browser_name\": \"string\",\n      \"platform_name\": \"string\",\n      \"browser_version\": \"string\",\n      \"platform_version\": \"string\"\n    },\n    \"referer\": \"string\",\n    \"initiated_at\": {\n      \"timestamp\": \"iso-datetime\"\n    }\n  },\n  \"can_reply\": \"boolean\",\n  \"channel\": \"string\",\n  \"id\": \"integer\",\n  \"inbox_id\": \"integer\",\n  \"contact_inbox\": {\n    \"id\": \"integer\",\n    \"contact_id\": \"integer\",\n    \"inbox_id\": \"integer\",\n    \"source_id\": \"string\",\n    \"created_at\": \"datetime\",\n    \"updated_at\": \"datetime\",\n    \"hmac_verified\": \"boolean\"\n  },\n  \"messages\": [\"Array of message objects\"],\n  \"meta\": {\n    \"sender\": {\n      // Contact Object\n    },\n    \"assignee\": {\n      // User Object\n    }\n  },\n  \"status\": \"string\",\n  \"unread_count\": \"integer\",\n  \"agent_last_seen_at\": \"unix-timestamp\",\n  \"contact_last_seen_at\": \"unix-timestamp\",\n  \"timestamp\": \"unix-timestamp\",\n  \"account_id\": \"integer\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"message\"><strong>Message</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"integer\",\n  \"content\": \"string\",\n  \"message_type\": \"integer\",\n  \"created_at\": \"unix-timestamp\",\n  \"private\": \"boolean\",\n  \"source_id\": \"string / null\",\n  \"content_type\": \"string\",\n  \"content_attributes\": \"object\",\n  \"sender\": {\n    \"type\": \"string - contact/user\"\n    // User or Contact Object\n  },\n  \"account\": {\n    // Account Object\n  },\n  \"conversation\": {\n    // Conversation Object\n  },\n  \"inbox\": {\n    // Inbox Object\n  },\n  \"attachments\": [\n    {\n      // Attachment Object\n    }\n  ],\n  \"transcript\": {\n    \"id\": \"integer\",\n    \"content\": \"string / null\"\n  }\n}\n\n</code></pre>\n<hr />\n<h3 id=\"label\"><strong>Label</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"integer\",\n  \"title\": \"string\",\n  \"description\": \"string\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"agent-agent_added--agent_updated\"><strong>Agent (<strong>agent_added / agent_updated</strong>)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"integer\",\n  \"email\": \"string\",\n  \"name\": \"string\",\n  \"role\": \"string\",\n  \"extension\": \"string\",\n  \"can_spy_tickets\": \"boolean\",\n  \"can_accept_preassign_tickets\": \"boolean\",\n  \"see_all_previous_conversation\": \"boolean\",\n  \"account\": {\n    // Account Object\n  }\n}\n\n</code></pre>\n<h3 id=\"agent-agent_removed\"><strong>Agent (<strong>agent_removed</strong>)</strong></h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"id\": \"integer\",\n  \"email\": \"string\",\n  \"account\": {\n    // Account Object\n  }\n}\n\n</code></pre>\n","_postman_id":"c2911ee1-59b3-4835-91bb-901b2e3c8666"}],"id":"3b45ba15-eb3f-4be8-96fb-264c8d1b35aa","description":"<p>Os endpoints do <strong>Bradial Chat</strong> — a plataforma de atendimento — organizados em três blocos.</p>\n<p><strong>Relatórios</strong> entrega os indicadores de atendimento em JSON e em planilhas CSV, autenticado por <code>x-api-key</code>. É a superfície mais nova e a que não pede id de conta na URL: a chave já identifica a conta.</p>\n<p><strong>V2</strong> reúne os endpoints operacionais: usuários, contatos, caixas de entrada e envio de mensagens.</p>\n<p><strong>Webhook</strong> documenta o caminho inverso — os eventos que o Bradial envia para o seu sistema quando algo acontece em um atendimento.</p>\n<p>🔗 <strong>Fale com um dos nossos consultores</strong> para obter acesso e as credenciais.</p>\n","_postman_id":"3b45ba15-eb3f-4be8-96fb-264c8d1b35aa"},{"name":"CRM","item":[],"id":"2d3107d9-fecc-4d13-b035-94137192f1de","description":"<p>🚧 <strong>Em desenvolvimento.</strong> Os endpoints de CRM ainda não estão disponíveis. Esta seção existe para sinalizar o que vem a seguir.</p>\n<p>Nada aqui deve ser integrado por enquanto: enquanto a seção estiver assim, não há contrato publicado, e caminhos, parâmetros e formatos de resposta podem mudar sem aviso.</p>\n<p>🔗 <strong>Fale com um dos nossos consultores</strong> para acompanhar a liberação ou participar dos primeiros testes.</p>\n","_postman_id":"2d3107d9-fecc-4d13-b035-94137192f1de"}],"event":[{"listen":"prerequest","script":{"id":"e753230f-ed6b-4ead-93b6-23955f6b9518","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"f361075a-9b7e-42e7-9e98-cf32083c3dcd","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"api","value":"https://api.bradial.com.br"},{"key":"client-id","value":"your_client-id"},{"key":"client-secret","value":"your_client-secret"},{"key":"api-key","value":"your_api-key"},{"key":"integration-token","value":"your_integration-token"},{"key":"inbox_id","value":"your_inbox_id"},{"key":"template_name","value":"your_template_name"},{"key":"phone_number","value":"phone_number"},{"key":"agent_id","value":"your_agent_id"},{"key":"contact_id","value":"your_contact_id"},{"key":"display_id","value":""}]}