Metadados da organização
Cinco endpoints de leitura que devolvem a configuração da conta. São eles que dizem quais valores a API aceita nos outros endpoints: quais chaves existem em fields, quais etiquetas você pode aplicar, quem pode receber uma carteira.
| Rota | Escopo | Devolve |
|---|---|---|
GET /fields |
contacts:read |
Campos personalizados de contato |
GET /tags |
contacts:read |
Etiquetas de contato ou de conversa |
GET /pipelines |
contacts:read |
Funis e suas etapas, na ordem |
GET /users |
contacts:read |
Membros da organização |
GET /quick-replies |
conversations:read |
Respostas rápidas da equipe |
Limite: 60 requisições por minuto em cada um. Todos devolvem o envelope de lista, com next_cursor sempre null: configuração de conta é lista curta e vem inteira.
/fields
As chaves daqui são exatamente as aceitas em fields no POST /contacts e nos tokens {{chave}} de template e campanha. Mandar uma chave que não está cadastrada devolve 400 com unknown_fields.
curl "https://api.wevi.chat/functions/v1/fields" \
-H "Authorization: Bearer wevi_SUA_CHAVE"
{
"data": [
{
"key": "plano",
"label": "Plano dental",
"type": "select",
"options": ["Particular", "OdontoPrev", "Amil Dental"],
"placeholder": null,
"position": 0
}
],
"next_cursor": null,
"has_more": false
}
/tags
Por padrão devolve as etiquetas de contato. Passe ?type=conversation para as de conversa.
curl "https://api.wevi.chat/functions/v1/tags?type=conversation" \
-H "Authorization: Bearer wevi_SUA_CHAVE"
{
"data": [{ "id": "aaaa...", "name": "Urgente", "color": "#ef4444", "type": "conversation", "created_at": "..." }],
"next_cursor": null,
"has_more": false
}
/pipelines
Cada funil já vem com as etapas na ordem em que aparecem no painel. Os ids daqui são os aceitos em POST /contacts/stage.
{
"data": [
{
"id": "c24cde19-...",
"name": "Funil de vendas",
"position": 0,
"is_default": true,
"auto_enroll": true,
"stages": [
{ "id": "00741eec-...", "name": "Contato", "color": "#3B82F6", "position": 0 },
{ "id": "3af8c4a2-...", "name": "Lead", "color": "#8B5CF6", "position": 1 }
],
"created_at": "2026-06-12T11:50:00Z"
}
],
"next_cursor": null,
"has_more": false
}
/users
Quem pode virar dono de carteira ou receber uma conversa. Use ?assignable=true para filtrar só os papéis elegíveis, ou ?role=atendente para um papel específico.
{
"data": [
{
"id": "ca5dd03e-...",
"name": "Adriano Silveira",
"email": "adriano@exemplo.com",
"role": "admin",
"is_owner": true,
"member_since": "2026-06-12T11:47:27Z"
}
],
"next_cursor": null,
"has_more": false
}
O email daqui é o que POST /contacts/assign espera em assigned_user_email.
/quick-replies
As respostas rápidas que a equipe usa no inbox, com o atalho de cada uma.
{
"data": [
{ "id": "...", "shortcut": "horario", "title": "Horário de funcionamento", "content": "Atendemos de segunda a sexta, das 9h às 18h.", "created_at": "...", "updated_at": "..." }
],
"next_cursor": null,
"has_more": false
}