Anunciando SDKs Oficiais para brapi.dev
Estamos muito felizes em anunciar o lançamento das nossas SDKs oficiais para TypeScript/JavaScript e Python! Integrar a API da B3 nunca foi tão fácil.
O Que São as SDKs?
SDKs (Software Development Kits) são bibliotecas que facilitam a integração com nossa API, oferecendo:
- Tipos completos - Autocomplete e validação no seu IDE
- Tratamento de erros - Exceções tipadas e mensagens claras
- Retry automático - Tentativas inteligentes em caso de falha
- API moderna - Suporte a async/await e promises
- Sempre atualizado - Gerado automaticamente com nossa API
SDK TypeScript/JavaScript
Instalação
npm install brapi
# ou
yarn add brapi
# ou
pnpm add brapi
# ou
bun add brapi
Exemplo de Uso
import Brapi from 'brapi';
const client = new Brapi({
apiKey: process.env.BRAPI_API_KEY,
});
// Tipos automáticos!
const quote = await client.quote.retrieve('PETR4');
console.log(quote.results[0]);
// {
// symbol: 'PETR4',
// regularMarketPrice: 38.45,
// regularMarketChangePercent: 2.15,
// ...
// }
Características
✅ Tipos TypeScript completos - IntelliSense em todo lugar
✅ Bundle otimizado - Tree-shakeable e pequeno
✅ Node.js e Browser - Funciona em qualquer ambiente
✅ Next.js ready - Exemplos para App Router e Pages Router
✅ Tratamento de erros - Exceções tipadas por status code
Exemplo Next.js
// app/stock/[ticker]/page.tsx
import Brapi from 'brapi';
const client = new Brapi({
apiKey: process.env.BRAPI_API_KEY,
});
export default async function StockPage({
params,
}: {
params: { ticker: string };
}) {
const quote = await client.quote.retrieve(params.ticker);
const stock = quote.results[0];
return (
<div>
<h1>{stock.shortName}</h1>
<p>R$ {stock.regularMarketPrice.toFixed(2)}</p>
</div>
);
}
SDK Python
Instalação
pip install brapi
# Com suporte a aiohttp (opcional)
pip install brapi[aiohttp]
Exemplo de Uso
from brapi import Brapi
client = Brapi(api_key="seu_token")
# Type hints completos!
quote = client.quote.retrieve(tickers="PETR4")
print(quote.results[0].regular_market_price)
Características
✅ Type hints completos - Autocomplete no IDE
✅ Python 3.8+ - Compatível com versões modernas
✅ Sync e Async - Cliente síncrono e assíncrono
✅ Powered by httpx - HTTP/2 e connection pooling
✅ aiohttp support - Performance otimizada
Exemplo Assíncrono
import asyncio
from brapi import AsyncBrapi
async def main():
async with AsyncBrapi(api_key="seu_token") as client:
quote = await client.quote.retrieve(tickers="PETR4")
print(quote.results[0].regular_market_price)
asyncio.run(main())
Integração com FastAPI
from fastapi import FastAPI
from brapi import AsyncBrapi
app = FastAPI()
client = AsyncBrapi(api_key="seu_token")
@app.get("/api/quote/{ticker}")
async def get_quote(ticker: str):
quote = await client.quote.retrieve(tickers=ticker)
return {
'symbol': quote.results[0].symbol,
'price': quote.results[0].regular_market_price,
}
Por Que Usar as SDKs?
Antes (Sem SDK)
// TypeScript sem SDK
const response = await fetch(
`https://brapi.dev/api/quote/PETR4?token=${token}`
);
if (!response.ok) {
// Você precisa tratar erros manualmente
throw new Error(`HTTP ${response.status}`);
}
const data = await response.json();
// Sem tipos, sem autocomplete 😢
const price = data.results[0].regularMarketPrice;
# Python sem SDK
import requests
response = requests.get(
f'https://brapi.dev/api/quote/PETR4?token={token}'
)
if response.status_code != 200:
# Tratamento manual de erros
raise Exception(f'HTTP {response.status_code}')
data = response.json()
# Sem type hints 😢
price = data['results'][0]['regularMarketPrice']
Depois (Com SDK)
// TypeScript com SDK
const quote = await client.quote.retrieve('PETR4');
// ✅ Tipos completos, autocomplete, retry automático
const price = quote.results[0].regularMarketPrice;
# Python com SDK
quote = client.quote.retrieve(tickers="PETR4")
# ✅ Type hints, autocomplete, retry automático
price = quote.results[0].regular_market_price
Tratamento de Erros Inteligente
As SDKs lançam exceções específicas por tipo de erro:
TypeScript
try {
const quote = await client.quote.retrieve('INVALID');
} catch (error) {
if (error instanceof Brapi.NotFoundError) {
console.log('Ticker não encontrado');
} else if (error instanceof Brapi.RateLimitError) {
console.log('Limite de requisições atingido');
} else if (error instanceof Brapi.AuthenticationError) {
console.log('Token inválido');
}
}
Python
from brapi import NotFoundError, RateLimitError
try:
quote = client.quote.retrieve(tickers="INVALID")
except NotFoundError:
print("Ticker não encontrado")
except RateLimitError:
print("Limite de requisições atingido")
Retry Automático
As SDKs tentam automaticamente em caso de:
- Erros de conexão
- Timeouts (408)
- Rate limits (429)
- Erros de servidor (5xx)
const client = new Brapi({
apiKey: process.env.BRAPI_API_KEY,
maxRetries: 3, // Tenta até 3 vezes
});
client = Brapi(
api_key="seu_token",
max_retries=3, # Tenta até 3 vezes
)
Gerado com Stainless
Nossas SDKs são geradas automaticamente usando Stainless, garantindo:
- ✅ Sempre sincronizadas com a API
- ✅ Tipos precisos e atualizados
- ✅ Documentação inline
- ✅ Padrões de indústria
- ✅ Testes automáticos
Migração Fácil
Já usa a API com fetch/requests? Migrar é simples:
TypeScript
// Antes
const response = await fetch(`https://brapi.dev/api/quote/${ticker}?token=${token}`);
const data = await response.json();
const price = data.results[0].regularMarketPrice;
// Depois
const quote = await client.quote.retrieve(ticker);
const price = quote.results[0].regularMarketPrice;
Python
# Antes
response = requests.get(f'https://brapi.dev/api/quote/{ticker}?token={token}')
data = response.json()
price = data['results'][0]['regularMarketPrice']
# Depois
quote = client.quote.retrieve(tickers=ticker)
price = quote.results[0].regular_market_price
Recursos Disponíveis
Ambas as SDKs suportam todos os endpoints da API:
- ✅ Cotações de ações, ETFs, FIIs
- ✅ Criptomoedas
- ✅ Moedas (câmbio)
- ✅ Inflação
- ✅ Taxa de juros
- ✅ Dados fundamentalistas (módulos)
- ✅ Histórico de preços
Começe Agora
TypeScript/JavaScript
npm install brapi
Documentação: /docs/sdks/typescript
GitHub: github.com/brapi-dev/brapi-typescript
NPM: npmjs.com/package/brapi
Python
pip install brapi
Documentação: /docs/sdks/python
GitHub: github.com/brapi-dev/brapi-python
PyPI: pypi.org/project/brapi
Feedback e Contribuições
As SDKs são open-source! Contribuições, issues e feedback são muito bem-vindos:
Próximos Passos
Explore a documentação completa:
Conclusão
Estamos muito animados com o lançamento dessas SDKs! Elas representam nosso compromisso em oferecer a melhor experiência para desenvolvedores que trabalham com dados financeiros do Brasil.
Instale agora e comece a construir aplicações incríveis com dados da B3! 🚀
Dúvidas ou sugestões? Entre em contato com nossa equipe de suporte ou abra uma issue no GitHub.
Gostou do anúncio? Compartilhe com outros desenvolvedores!