Skip to main content

Documentation Index

Fetch the complete documentation index at: https://juditdocs.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Como Obter sua API Key

  1. Entre em contato com nossa equipe comercial
  2. Forneça informações sobre seu caso de uso e volume esperado
  3. Receba sua API Key por email seguro
  4. Configure a chave em sua aplicação
Importante: Sua API Key é única e pessoal. Nunca compartilhe ou exponha publicamente.

Configuração da API Key

Método de Autenticação

A API Key deve ser enviada no header api-key de todas as requisições:
GET /requests
Host: requests.prod.judit.io
api-key: sua-api-key-aqui
Content-Type: application/json

Exemplos de Configuração

cURL:
# Definir variável de ambiente
export JUDIT_API_KEY="sua-api-key-aqui"

# Usar em requisições
curl -X GET "https://requests.prod.judit.io/requests" \
  -H "api-key: $JUDIT_API_KEY" \
  -H "Content-Type: application/json"
Python:
import os
import requests

# Configurar API Key
api_key = os.getenv('JUDIT_API_KEY')

# Headers padrão
headers = {
    'api-key': api_key,
    'Content-Type': 'application/json'
}

# Fazer requisição
response = requests.get(
    'https://requests.prod.judit.io/requests',
    headers=headers
)
JavaScript:
// Configurar API Key
const apiKey = process.env.JUDIT_API_KEY;

// Headers padrão
const headers = {
    'api-key': apiKey,
    'Content-Type': 'application/json'
};

// Fazer requisição
const response = await fetch('https://requests.prod.judit.io/requests', {
    method: 'GET',
    headers: headers
});

Boas Práticas de Segurança

1. Use Variáveis de Ambiente

Nunca hardcode sua API Key no código:
# ❌ ERRADO - Nunca faça isso
api_key = "sk_live_1234567890abcdef"

# ✅ CORRETO - Use variáveis de ambiente
api_key = os.getenv('JUDIT_API_KEY')

2. Configure Variáveis de Ambiente

Linux/macOS:
# No arquivo ~/.bashrc ou ~/.zshrc
export JUDIT_API_KEY="sua-api-key-aqui"

# Ou para sessão atual
export JUDIT_API_KEY="sua-api-key-aqui"
Windows:
# Command Prompt
set JUDIT_API_KEY=sua-api-key-aqui

# PowerShell
$env:JUDIT_API_KEY="sua-api-key-aqui"
Docker:
# Dockerfile
ENV JUDIT_API_KEY=""

# docker-compose.yml
environment:
  - JUDIT_API_KEY=${JUDIT_API_KEY}

3. Arquivo .env (Desenvolvimento)

# .env
JUDIT_API_KEY=sua-api-key-aqui
JUDIT_BASE_URL=https://requests.prod.judit.io
# Python com python-dotenv
from dotenv import load_dotenv
import os

load_dotenv()
api_key = os.getenv('JUDIT_API_KEY')

4. Rotação de Chaves

  • Monitore o uso de sua API Key regularmente
  • Solicite nova chave se suspeitar de comprometimento
  • Implemente rotação automática em ambientes críticos

Tratamento de Erros de Autenticação

Erro 401 - Unauthorized

{
  "error": "Unauthorized",
  "message": "API key inválida ou ausente",
  "code": "INVALID_API_KEY"
}
Possíveis causas:
  • API Key não fornecida
  • API Key inválida ou expirada
  • Header api-key mal formatado
Como resolver:
def handle_auth_error(response):
    if response.status_code == 401:
        error_data = response.json()
        
        if error_data.get('code') == 'INVALID_API_KEY':
            print("Erro: API Key inválida")
            print("Verifique se a chave está correta e ativa")
            
        # Log do erro para debugging
        logging.error(f"Erro de autenticação: {error_data}")
        
        return None
    
    return response.json()

Erro 403 - Forbidden

{
  "error": "Forbidden",
  "message": "Acesso negado para este recurso",
  "code": "INSUFFICIENT_PERMISSIONS"
}
Possíveis causas:
  • API Key válida mas sem permissão para o recurso
  • Limite de uso excedido
  • Recurso não disponível no seu plano

Validação da API Key

Teste de Conectividade

import requests

def test_api_key(api_key):
    """Testa se a API Key está válida"""
    headers = {'api-key': api_key}
    
    try:
        response = requests.get(
            'https://requests.prod.judit.io/requests',
            headers=headers,
            params={'page': 1, 'page_size': 1}
        )
        
        if response.status_code == 200:
            print("✅ API Key válida")
            return True
        elif response.status_code == 401:
            print("❌ API Key inválida")
            return False
        else:
            print(f"⚠️ Erro inesperado: {response.status_code}")
            return False
            
    except requests.RequestException as e:
        print(f"❌ Erro de conexão: {e}")
        return False

# Usar a função
api_key = os.getenv('JUDIT_API_KEY')
test_api_key(api_key)

Monitoramento de Uso

def check_api_usage(response):
    """Monitora uso da API através dos headers"""
    
    # Rate limit info
    limit = response.headers.get('X-RateLimit-Limit')
    remaining = response.headers.get('X-RateLimit-Remaining')
    reset = response.headers.get('X-RateLimit-Reset')
    
    if limit and remaining:
        usage_percent = ((int(limit) - int(remaining)) / int(limit)) * 100
        
        print(f"Uso da API: {usage_percent:.1f}%")
        print(f"Requisições restantes: {remaining}")
        
        if usage_percent > 80:
            print("⚠️ Próximo do limite de rate limit!")

Configuração por Ambiente

Desenvolvimento

# config/development.py
import os

API_KEY = os.getenv('JUDIT_API_KEY_DEV')
BASE_URL = 'https://requests.prod.judit.io'
TIMEOUT = 30

Produção

# config/production.py
import os

API_KEY = os.getenv('JUDIT_API_KEY_PROD')
BASE_URL = 'https://requests.prod.judit.io'
TIMEOUT = 10
RETRY_ATTEMPTS = 3

Classe de Configuração

class JuditConfig:
    def __init__(self, environment='production'):
        self.environment = environment
        self.api_key = self._get_api_key()
        self.base_url = 'https://requests.prod.judit.io'
        
    def _get_api_key(self):
        key_name = f'JUDIT_API_KEY_{self.environment.upper()}'
        api_key = os.getenv(key_name)
        
        if not api_key:
            raise ValueError(f"API Key não encontrada: {key_name}")
            
        return api_key
    
    @property
    def headers(self):
        return {
            'api-key': self.api_key,
            'Content-Type': 'application/json'
        }

# Uso
config = JuditConfig('production')
response = requests.get(f"{config.base_url}/requests", 
    headers=config.headers)

Próximos Passos

Suporte: Em caso de problemas com autenticação, entre em contato com nosso suporte técnico.