Autenticação
A API do eAgenda suporta dois métodos de autenticação: Basic Auth e Cookie Auth. Este guia explica como configurar e usar cada um de forma segura.
Basic Auth (recomendado para integrações)
A autenticação HTTP Basic é o método recomendado para integrações server-to-server.
Como funciona
Cada requisição deve incluir o header Authorization com suas credenciais codificadas em Base64:
Authorization: Basic base64(usuario:senha)
Exemplo prático
# Codificar credenciais em Base64
echo -n "meu@email.com:minha_senha" | base64
# Resultado: bWV1QGVtYWlsLmNvbTptaW5oYV9zZW5oYQ==
# Fazer a requisição
curl -X GET https://eagenda.com.br/api/v3/accounts/ \
-H "Authorization: Basic bWV1QGVtYWlsLmNvbTptaW5oYV9zZW5oYQ=="
A maioria das bibliotecas HTTP faz a codificação automaticamente:
Python:
import requests
response = requests.get(
"https://eagenda.com.br/api/v3/accounts/",
auth=("meu@email.com", "minha_senha")
)
print(response.json())
JavaScript (Node.js):
const response = await fetch("https://eagenda.com.br/api/v3/accounts/", {
headers: {
"Authorization": "Basic " + btoa("meu@email.com:minha_senha")
}
});
const data = await response.json();
PHP:
$ch = curl_init("https://eagenda.com.br/api/v3/accounts/");
curl_setopt($ch, CURLOPT_USERPWD, "meu@email.com:minha_senha");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);
C# (.NET):
using var client = new HttpClient();
var credentials = Convert.ToBase64String(
System.Text.Encoding.UTF8.GetBytes("meu@email.com:minha_senha")
);
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", credentials);
var response = await client.GetAsync("https://eagenda.com.br/api/v3/accounts/");
var json = await response.Content.ReadAsStringAsync();
Respostas de erro de autenticação
| Código | Significado | Ação |
|---|---|---|
401 Unauthorized | Credenciais inválidas ou ausentes | Verifique seu usuário e senha |
403 Forbidden | Sem permissão para o recurso | Verifique as permissões da conta |
Exemplo de erro 401
{
"detail": "As credenciais de autenticação não foram fornecidas."
}
Boas práticas de segurança
- Nunca exponha credenciais no frontend — Use a API apenas em código server-side (backend)
- Use variáveis de ambiente — Armazene credenciais em variáveis de ambiente, nunca hardcoded
- HTTPS obrigatório — Todas as requisições devem usar HTTPS
- Rotacione credenciais — Altere suas credenciais periodicamente
- Princípio do menor privilégio — Use contas com apenas as permissões necessárias
Exemplo com variáveis de ambiente
import os
import requests
response = requests.get(
"https://eagenda.com.br/api/v3/accounts/",
auth=(os.environ["EAGENDA_USER"], os.environ["EAGENDA_PASSWORD"])
)
# .env (nunca comite este arquivo!)
EAGENDA_USER=meu@email.com
EAGENDA_PASSWORD=minha_senha_segura