Você montou sua carteira de dividendos com as Elétricas e Seguradoras que recomendamos. Agora, como acompanhar os pagamentos de forma visual e automática?
Neste tutorial, vamos construir uma aplicação web real usando Python e Streamlit que se conecta à API da brapi.dev para buscar o histórico de proventos e projetar sua renda passiva.
O que vamos construir?
Um dashboard que:
- Recebe uma lista de tickers (ex:
TAEE11,BBSE3). - Busca os dividendos pagos nos últimos 12 meses.
- Exibe gráficos de barras mensais e o Dividend Yield atual.
Pré-requisitos
Você precisará de Python instalado e um editor de código (VS Code).
pip install streamlit pandas requests plotlyPasso 1: Configurando a Conexão com a API
Crie um arquivo chamado app.py. Vamos começar criando a função que busca os dados na brapi.
import streamlit as st
import pandas as pd
import requests
import plotly.express as px
# Configuração da Página
st.set_page_config(page_title="Dashboard de Dividendos", layout="wide")
# Token da brapi (Pegue o seu em https://brapi.dev/dashboard)
API_TOKEN = "SEU_TOKEN_AQUI"
@st.cache_data
def get_dividends(tickers):
"""
Busca dados de dividendos para uma lista de tickers.
"""
tickers_str = ",".join(tickers)
url = f"https://brapi.dev/api/quote/{tickers_str}"
params = {
'token': API_TOKEN,
'dividends': 'true', # Habilita o retorno de dividendos
}
response = requests.get(url, params=params)
if response.status_code != 200:
st.error("Erro ao conectar na API da brapi.")
return []
return response.json().get('results', [])Passo 2: Processando os Dados
A API retorna os dados brutos. Precisamos transformá-los em um DataFrame do Pandas para facilitar a análise.
def process_data(results):
all_dividends = []
for stock in results:
symbol = stock['symbol']
dividends = stock.get('dividendsData', {}).get('cashDividends', [])
for div in dividends:
# Filtrar apenas dividendos aprovados/pagos
all_dividends.append({
'Ticker': symbol,
'Data Com': div.get('approvedOn'),
'Data Pagamento': div.get('paymentDate'),
'Valor': div.get('rate'),
'Tipo': div.get('type') # Dividendo ou JCP
})
df = pd.DataFrame(all_dividends)
if not df.empty:
# Converter datas e criar coluna Mês/Ano
df['Data Pagamento'] = pd.to_datetime(df['Data Pagamento'])
df['Mes_Ano'] = df['Data Pagamento'].dt.strftime('%Y-%m')
return dfPasso 3: Criando a Interface Visual
Agora, vamos usar o poder do Streamlit para criar a interface.
st.title("💰 Dashboard de Renda Passiva 2026")
st.markdown("Acompanhe os proventos da sua carteira de forma simples.")
# Input do Usuário
tickers_input = st.text_input("Digite os tickers separados por vírgula:", "TAEE11,BBSE3,VALE3,ITUB4")
tickers_list = [t.strip().upper() for t in tickers_input.split(",")]
if st.button("Buscar Proventos"):
with st.spinner('Consultando a brapi.dev...'):
results = get_dividends(tickers_list)
df = process_data(results)
if df.empty:
st.warning("Nenhum dividendo encontrado ou tickers inválidos.")
else:
# Filtro de Data (Últimos 12 meses, por exemplo)
# Para simplificar, vamos mostrar tudo que a API retornou
# Métricas Gerais
col1, col2 = st.columns(2)
total_pago = df['Valor'].sum()
col1.metric("Total Recebido (R$)", f"R$ {total_pago:,.2f}")
col2.metric("Qtd. Pagamentos", len(df))
# Gráfico de Pagamentos por Mês
st.subheader("📅 Pagamentos por Mês")
df_grouped = df.groupby('Mes_Ano')['Valor'].sum().reset_index()
fig = px.bar(df_grouped, x='Mes_Ano', y='Valor', color='Valor',
title="Evolução da Renda Passiva", text_auto=True)
st.plotly_chart(fig, use_container_width=True)
# Detalhamento por Ativo
st.subheader("📊 Detalhamento por Ativo")
df_asset = df.groupby('Ticker')['Valor'].sum().reset_index()
fig2 = px.pie(df_asset, values='Valor', names='Ticker', title="Quem pagou mais?")
st.plotly_chart(fig2, use_container_width=True)
# Tabela de Dados
st.subheader("Extrato Detalhado")
st.dataframe(df.sort_values('Data Pagamento', ascending=False))Passo 4: Rodando a Aplicação
No seu terminal, execute:
streamlit run app.pyUma aba do navegador abrirá automaticamente. Você verá seu dashboard funcionando!
Conclusão e Próximos Passos
Este é um MVP (Produto Mínimo Viável). Você pode evoluir este projeto para:
- Input de Quantidade: Permitir que o usuário digite quantas ações tem de cada empresa para calcular o valor real recebido (hoje o script mostra o valor por 1 ação).
- Cálculo de Yield: Cruzar o valor pago com o preço atual (
regularMarketPriceda API) para calcular o Dividend Yield da carteira. - Deploy: Subir seu app gratuitamente no Streamlit Cloud.
A API da brapi.dev fornece todos os dados necessários para você construir ferramentas profissionais.
Quer aprender mais? Veja como criar um Bot de Telegram para Alertas no próximo tutorial.
