Portal do Desenvolvedor / Autenticação
Portal do Desenvolvedor

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ódigoSignificadoAção
401 UnauthorizedCredenciais inválidas ou ausentesVerifique seu usuário e senha
403 ForbiddenSem permissão para o recursoVerifique 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

  1. Nunca exponha credenciais no frontend — Use a API apenas em código server-side (backend)
  2. Use variáveis de ambiente — Armazene credenciais em variáveis de ambiente, nunca hardcoded
  3. HTTPS obrigatório — Todas as requisições devem usar HTTPS
  4. Rotacione credenciais — Altere suas credenciais periodicamente
  5. 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