Primeiros passos com a API
A API REST do Radar DOU permite integrar o monitoramento do Diário Oficial em seus próprios sistemas, automatizar processos e criar soluções personalizadas.
O que é a API do Radar DOU?
Nossa API RESTful oferece acesso programático a todas as funcionalidades do sistema:
- Buscar publicações com filtros avançados
- Gerenciar alertas automaticamente
- Criar e consultar favoritos
- Acessar coleções de documentos
- Receber webhooks em tempo real
- Exportar dados em múltiplos formatos
Casos de Uso
A API é ideal para:
- Intranets corporativas: Exiba publicações relevantes no sistema interno
- Sistemas jurídicos: Integre com software de gestão de escritórios
- Dashboards personalizados: Crie visualizações customizadas
- Automação: Processos automáticos com publicações do DOU
- Análise de dados: Extraia e analise grandes volumes
- Notificações: Sistemas próprios de alertas
Antes de Começar
Você precisa:
- Uma conta ativa no Radar DOU
- Conhecimentos básicos de HTTP/REST
- Familiaridade com JSON
- Ambiente de desenvolvimento configurado
Obtendo sua API Key
Passo 1: Acessar o Painel de API
- Faça login no Radar DOU
- Vá para Menu → Chaves de API
- Ou acesse diretamente:
/api-keys
Passo 2: Criar Nova Chave
- Clique em "Criar Nova Chave"
- Dê um nome descritivo (ex: "Integração Intranet")
- Selecione as permissões necessárias
- Clique em "Gerar Chave"
⚠️ Importante: Copie e guarde sua chave imediatamente. Ela só será exibida uma vez. Trate-a como uma senha!
URL Base da API
https://api.radardou.com.br/v1
Todas as requisições devem usar esta URL base como prefixo.
Autenticação
Todas as requisições devem incluir sua API Key no header:
Authorization: Bearer SUA_API_KEY_AQUI
Primeira Requisição
Exemplo com cURL
curl -X GET "https://api.radardou.com.br/v1/publications?limit=10" \ -H "Authorization: Bearer SUA_API_KEY_AQUI" \ -H "Content-Type: application/json"
Exemplo com JavaScript (Node.js)
const fetch = require('node-fetch');
const API_KEY = 'SUA_API_KEY_AQUI';
const BASE_URL = 'https://api.radardou.com.br/v1';
async function getPublications() {
const response = await fetch(`${BASE_URL}/publications?limit=10`, {
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
}
getPublications();Exemplo com Python
import requests
API_KEY = 'SUA_API_KEY_AQUI'
BASE_URL = 'https://api.radardou.com.br/v1'
headers = {
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
}
response = requests.get(f'{BASE_URL}/publications?limit=10', headers=headers)
data = response.json()
print(data)Estrutura da Resposta
Todas as respostas seguem este formato JSON:
{
"success": true,
"data": {
"publications": [...],
"pagination": {
"page": 1,
"limit": 10,
"total": 1000,
"totalPages": 100
}
}
}Principais Endpoints
1. Listar Publicações
GET /publications
Busca publicações com filtros opcionais
Parâmetros:
q- Palavra-chavesecao- Seção do DOU (1, 2, 3, extra)tipo_ato- Tipo de atoorgao- Órgão emissordata_inicio- Data inicial (YYYY-MM-DD)data_fim- Data final (YYYY-MM-DD)page- Página (padrão: 1)limit- Resultados por página (padrão: 20)
2. Detalhes de uma Publicação
GET /publications/:id
Retorna detalhes completos de uma publicação específica
3. Criar Alerta
POST /alerts
Cria um novo alerta personalizado
Body (JSON):
{
"nome": "Meu Alerta",
"palavras_chave": ["licitação", "tecnologia"],
"secao": "3",
"tipo_ato": "Aviso de Licitação",
"frequencia": "diaria",
"ativo": true
}4. Listar Alertas
GET /alerts
Lista todos os seus alertas
5. Gerenciar Favoritos
POST /favorites
Adiciona uma publicação aos favoritos
Códigos de Status HTTP
200 OK- Requisição bem-sucedida201 Created- Recurso criado com sucesso400 Bad Request- Parâmetros inválidos401 Unauthorized- API Key inválida ou ausente403 Forbidden- Sem permissão para o recurso404 Not Found- Recurso não encontrado429 Too Many Requests- Rate limit excedido500 Internal Server Error- Erro no servidor
Rate Limits
Limites de requisições por plano:
- Gratuito / Trial (7 dias): 1.000 req/hora
- Plano Profissional: 5.000 req/dia
- Plano Premium: 10.000 req/dia
- Plano Empresarial: 100.000 req/dia
Headers de resposta incluem informações sobre seu limite:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 985
X-RateLimit-Reset: 1640000000
Tratamento de Erros
Sempre verifique o status HTTP e trate erros apropriadamente:
try {
const response = await fetch(url, options);
if (!response.ok) {
const error = await response.json();
throw new Error(`API Error: ${error.message}`);
}
const data = await response.json();
return data;
} catch (error) {
console.error('Erro na requisição:', error);
// Implemente retry ou fallback
}Melhores Práticas
- Nunca exponha sua API Key: Mantenha no backend, use variáveis de ambiente
- Implemente cache: Evite requisições repetidas desnecessárias
- Use paginação: Não tente buscar todos os dados de uma vez
- Respeite rate limits: Implemente backoff exponencial
- Valide dados: Sempre valide parâmetros antes de enviar
- Log de erros: Mantenha registro de falhas para debugging
- Teste em ambiente de desenvolvimento: Use dados de teste primeiro
Recursos Adicionais
- Documentação completa: /api-docs
- Exemplos de código: /exemplos-uso
- SDKs oficiais: JavaScript, Python, PHP (em breve)
- Postman Collection: Baixe e importe para testes
Próximos Passos
- Explore todos os endpoints na documentação completa
- Teste com Postman ou Insomnia
- Implemente tratamento de erros robusto
- Configure webhooks para notificações em tempo real
- Considere usar nossos SDKs oficiais para facilitar
💡 Dica: Comece com requisições simples e aumente a complexidade gradualmente. Use o Postman para testar endpoints antes de implementar em produção.
Ainda tem dúvidas?
Converse com nosso assistente virtual especializado para obter ajuda personalizada sobre qualquer funcionalidade.
