Official Python SDK for the Arara API
Project description
Arara Python SDK
O SDK oficial da Arara para Python. Esta biblioteca permite integrar facilmente as funcionalidades de mensageria (WhatsApp), gestão de templates, inteligência artificial (Brain), campanhas e pagamentos diretamente no seu aplicativo ou servidor.
🚀 Destaques (Features)
- Suporte Nativo a Async/Sync: Escolha entre operações bloqueantes ou assíncronas (
httpxbaseado). - Type Safety: Utiliza Pydantic V2 para validação rigorosa de dados e suporte total a autocompletar em IDEs.
- Resiliência: Lógica de Retries automática com backoff exponencial integrada.
- Tratamento de Erros Profissional: Hierarquia de exceções clara para cada status HTTP relevante.
- Arquitetura Modular: Recursos organizados por domínio (Messages, Templates, Brain, etc).
📦 Instalação
pip install arara-api-sdk
Nota: Requer Python 3.8 ou superior.
🔑 Autenticação
A autenticação é feita via Bear API Key. Você pode obter sua chave no painel da Arara.
O SDK busca automaticamente a variável de ambiente ARARA_API_KEY caso nenhuma chave seja passada no construtor.
export ARARA_API_KEY="ara_live_..."
🛠️ Uso Rápido (Quick Start)
Modo Síncrono (Standard)
Ideal para scripts simples ou servidores que não utilizam async/await.
from arara_api_sdk import AraraClient
from arara_api_sdk.models.message import SendMessageRequest
# O uso de Context Manager garante que os recursos sejam fechados corretamente
with AraraClient(api_key="your_api_key") as client:
request = SendMessageRequest(
receiver="5511999999999",
body="Hello World from Arara SDK!",
media_url="https://ararahq.com/l/FtFmja" # Opcional: Anexo
)
response = client.messages.send(request)
print(f"Message ID: {response.id} | Status: {response.status}")
Modo Assíncrono (High Performance)
Recomendado para aplicações FastAPI, aiohttp ou volumes massivos de dados.
import asyncio
from arara_api_sdk import AraraClient
from arara_api_sdk.models.message import SendMessageRequest
async def send_bulk():
async with AraraClient() as client:
request = SendMessageRequest(
receiver="5511999999999",
template_name="welcome_message",
variables=["Amos"],
scheduled_at="2024-12-25T10:00:00Z" # Opcional: Agendamento ISO8601
)
response = await client.messages.send_async(request)
print(f"Async Sent: {response.id}")
asyncio.run(send_bulk())
📂 Visão Geral dos Módulos
💬 Mensagens (Messages)
Envio de mensagens de texto simples ou baseadas em templates aprovados.
client.messages.send(request)
client.messages.get(message_id)
📝 Templates
Gestão completa do ciclo de vida de modelos de mensagem do WhatsApp.
client.templates.list()
client.templates.create(create_request)
client.templates.get_status(template_id)
🧠 AI Brain
Interface direta com o motor de Inteligência Artificial da Arara.
response = client.brain.prompt(BrainRequest(prompt="Como configurar meu webhook?"))
print(response.answer)
🏢 Organizações & Webhooks
Gestão de membros, números de telefone e configuração de webhooks de recebimento.
webhook = client.organizations.get_webhook()
members = client.organizations.list_members()
⚙️ Configuração Avançada
Você pode customizar o comportamento do HttpClient no momento da inicialização:
client = AraraClient(
api_key="...",
timeout=60.0, # Custom timeout in seconds
max_retries=5, # Exponential backoff retries
base_url="https://..." # Custom API endpoint
)
⚠️ Tratamento de Erros (Error Handling)
O SDK mapeia erros da API para exceções Python específicas:
from arara_api_sdk.exceptions import (
AraraAuthError,
AraraValidationError,
AraraResourceNotFoundError
)
try:
client.messages.send(request)
except AraraAuthError:
# Error 401
pass
except AraraResourceNotFoundError:
# Error 404
pass
except AraraValidationError as e:
# Error 400 - Validation details are in e.response_body
print(e.response_body)
👩💻 Desenvolvimento e Testes
Se você deseja contribuir ou rodar os testes localmente:
- Crie um ambiente virtual:
python -m venv .venv - Ative:
source .venv/bin/activate - Instale as dependências:
pip install -e ".[test]" - Rode os testes:
pytest tests/
📄 Licença
Distribuído sob a licença MIT. Veja LICENSE para mais informações.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ararahq_sdk-1.8.0.tar.gz.
File metadata
- Download URL: ararahq_sdk-1.8.0.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.16.5 cpython/3.12.11 HTTPX/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd8e89184ef9ad1e68abddff6c0fe641fc78d201ba7ca6e87d6e83835fb3da38
|
|
| MD5 |
485eaeddc8308913f72e464030de5098
|
|
| BLAKE2b-256 |
e6d90bdd73a9834dc4f777e94b4390273ff4eba3e4f73fe1e99b38e6a22995c6
|
File details
Details for the file ararahq_sdk-1.8.0-py3-none-any.whl.
File metadata
- Download URL: ararahq_sdk-1.8.0-py3-none-any.whl
- Upload date:
- Size: 18.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.16.5 cpython/3.12.11 HTTPX/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
356a19a8f4bdfa08f01e05d9afbd173f8b8e64252b7dafc5b9cf3dacbcfcbf80
|
|
| MD5 |
8cd2609a4a96e3994a5e058a72819175
|
|
| BLAKE2b-256 |
1dadec610a21df8968d9b7429210ebda4d54bb4449376f084ba5d02b668661e4
|