Guia por bolsai 2 jul 2026 13 min de leitura

Ações de saneamento na B3 em 2026: análise fundamentalista com API

As ações de saneamento na B3 em 2026 vivem um momento peculiar: um setor de infraestrutura regulada, historicamente estável e pagador de proventos, empurrado para um ciclo pesado de investimentos pelo marco regulatório da universalização. Este guia explica o contexto setorial de forma verificável, mostra quais indicadores fundamentalistas fazem sentido para concessionárias de água e esgoto e ensina a puxar a lista real do setor via API em Python, sem depender de rankings prontos que envelhecem em poucos dias.

O que é o setor de saneamento na bolsa

O setor de saneamento na B3 reúne concessionárias de água e esgoto, empresas de infraestrutura regulada cuja receita vem de tarifas cobradas pelo abastecimento de água tratada, pela coleta e pelo tratamento de esgoto, além de serviços correlatos como resíduos sólidos. São nomes como SBSP3, SAPR11, SAPR4, CSMG3 e ORVR3. Por serem serviços essenciais com demanda pouco elástica, tendem a ter receita previsível, mas dependem de revisões tarifárias periódicas e de investimentos elevados em ativo imobilizado.

Do ponto de vista de análise, saneamento se comporta como um híbrido: parte utility clássica (receita recorrente, alavancagem mais alta e estável, sensibilidade a juros) e parte projeto de infraestrutura de longo prazo (fluxo de caixa moldado por ciclos de CapEx). Essa dupla natureza muda quais métricas realmente importam e por que um dividend yield isolado engana com frequência no setor. Antes de qualquer código, vale entender o pano de fundo regulatório que redesenhou as teses das companhias.

Contexto: o marco regulatório e a corrida pela universalização

O marco legal do saneamento básico, consolidado pela Lei nº 14.026/2020, que atualizou a Lei nº 11.445/2007, reorganizou o setor em torno de uma meta central: universalizar o acesso a água tratada e a esgotamento sanitário até o fim de 2033, com objetivos de atender 99% da população com água potável e 90% com coleta e tratamento de esgoto. A lei também ampliou a exigência de licitação com participação de empresas públicas e privadas, encerrou o direito de preferência das companhias estaduais e atribuiu à Agência Nacional de Águas e Saneamento Básico (ANA) o papel de editar normas de referência para a regulação.

Para quem investe, três consequências práticas se destacam. Primeiro, o setor entrou em um ciclo de investimentos pesados: cumprir as metas exige aportes bilionários em redes de água e esgoto, o que pressiona o fluxo de caixa livre no curto prazo. Segundo, a composição societária das companhias vem mudando, com movimentos de desestatização e entrada de capital privado alterando a governança e o apetite por eficiência. Terceiro, o risco regulatório ganhou peso: revisões tarifárias, contratos e enquadramento das metas passam a determinar boa parte do valor das empresas. Nenhum desses fatores aparece diretamente em um único indicador, e por isso a análise precisa cruzar valuation, endividamento, rentabilidade e o momento do ciclo de CapEx.

Este guia não cita valores de cotação, múltiplos ou dividend yield de empresas específicas. Números do setor mudam a cada pregão, e cada balanço trimestral reprecifica as teses. Em vez de decorar uma tabela que já nasce velha, o objetivo aqui é ensinar a consultar os dados atuais diretamente na fonte, via API, sempre que você precisar deles.

Quais indicadores importam para uma concessionária de saneamento

Aplicar réguas genéricas de análise fundamentalista a uma concessionária regulada leva a conclusões erradas. O setor tem características estruturais que reposicionam a leitura de cada métrica. Os campos abaixo são todos entregues pelo endpoint /fundamentals/{ticker} da bolsai, calculados em TTM (últimos doze meses). A definição conceitual de cada um está no guia análise fundamentalista para iniciantes.

Endividamento: o eixo central

Como o setor é intensivo em capital e financia obras com dívida, os indicadores de alavancagem são o primeiro filtro. A net_debt_ebitda mede quantos anos de geração operacional seriam necessários para quitar a dívida líquida: utilities operam com essa métrica estruturalmente mais alta que empresas de consumo, mas há um teto além do qual o risco de refazer a estrutura de capital cresce. A net_debt_equity complementa mostrando a proporção entre dívida líquida e patrimônio, e a current_ratio indica a folga de curto prazo para honrar compromissos. Em um setor que precisa investir para cumprir metas, ler esses três em conjunto vale mais do que olhar qualquer múltiplo de preço isolado.

Rentabilidade: ROE, ROIC e margens

O roe (retorno sobre patrimônio) e o roic (retorno sobre capital investido) revelam se a companhia gera valor acima do custo do capital que emprega, um ponto crítico quando o CapEx é elevado. Em concessionárias, o ROIC comparado ao custo de capital diz mais sobre a qualidade da tese do que o ROE isolado, porque a estrutura de capital pesada distorce o retorno sobre patrimônio. As margens operacionais, ebit_margin e net_margin, mostram quanto da receita tarifária sobra depois dos custos de operação e da depreciação dos ativos. Margens do setor costumam ser relevantes, mas o teste real é a estabilidade delas ao longo dos ciclos tarifários.

Valuation: P/L, P/VP e EV/EBITDA

O pl (preço sobre lucro) precisa ser lido com cautela porque o lucro contábil de uma empresa de infraestrutura oscila com depreciação e itens não recorrentes. O pvp (preço sobre valor patrimonial) tem relevância especial no setor porque grande parte do valor está no ativo imobilizado regulado, e a base de ativos serve de referência para as tarifas. O ev_ebitda é o múltiplo preferido para comparar concessionárias entre si, já que neutraliza diferenças de estrutura de capital e isola a geração operacional. Ainda assim, o EV/EBITDA subestima o custo real de sustentação em setores que reinvestem boa parte do EBITDA em CapEx, tema aprofundado no guia de análise fundamentalista.

Proventos: dividend yield com ressalva

O dividend_yield (em base TTM) é o indicador que mais atrai investidores ao setor, historicamente associado a boas distribuições. Mas é justamente onde mora a maior armadilha em 2026: uma empresa no auge do ciclo de investimentos pode reduzir a distribuição para financiar as obras exigidas pelas metas de universalização. Um yield elevado no passado não garante continuidade, e uma queda de preço pode inflar o número artificialmente. Vale cruzar o dividend yield com o endividamento e com o histórico de proventos, disponível no endpoint /dividends/{ticker}.

Dimensão Campo na API Por que importa em saneamento
Endividamento net_debt_ebitda, net_debt_equity, current_ratio Setor financia obras com dívida; alavancagem alta é normal, mas tem limite
Rentabilidade roe, roic, ebit_margin, net_margin ROIC versus custo de capital indica se o CapEx gera valor
Valuation pl, pvp, ev_ebitda EV/EBITDA compara concessionárias; P/VP reflete base de ativos regulada
Proventos dividend_yield Atrativo histórico, mas pode cair no ciclo de investimentos
Crescimento cagr_revenue_5y, cagr_earnings_5y Mostra a trajetória de expansão da receita tarifária

Como descobrir o nome exato do setor na API

Antes de filtrar o setor, é preciso saber com que rótulo ele aparece. Os setores da bolsai seguem os nomes oficiais da CVM em português, e saneamento pode figurar como um setor próprio ou como um sub-setor associado a utilidade pública, dependendo do enquadramento. Em vez de assumir a taxonomia, o caminho robusto é listar todos os setores disponíveis com o endpoint /companies/sectors e copiar a string exata.

  1. Crie uma conta gratuita no dashboard e copie sua API key.
  2. Chame /companies/sectors para ver todos os nomes de setor válidos, com a contagem de empresas em cada um.
  3. Localize o rótulo de saneamento na lista e use exatamente essa string no parâmetro sector do /screener.
import requests

BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"Authorization": "Bearer SUA_CHAVE_AQUI"}

r = requests.get(f"{BASE}/companies/sectors", headers=HEADERS)
r.raise_for_status()
setores = r.json()["sectors"]

# Procura qualquer setor que mencione saneamento ou utilidade pública
for s in setores:
    nome = s["name"]
    if "sanea" in nome.lower() or "utilidade" in nome.lower():
        print(nome, "->", s["count"], "empresas")

A resposta segue o formato {"sectors": [{"name": "...", "count": N}, ...], "total": N}. O bloco de saída abaixo é apenas ilustrativo do formato, com um rótulo hipotético para mostrar como o resultado se parece. O nome real e a contagem você obtém rodando a chamada com sua chave.

# saída ilustrativa do formato (o rótulo e a contagem reais vêm da sua chamada) Saneamento -> N empresas

Se o rótulo exato divergir do exemplo, use o que a sua chamada retornar. Esse passo evita o erro mais comum ao filtrar setores por API: inventar um nome que não existe na taxonomia e receber uma lista vazia. A mesma disciplina de descobrir o setor em vez de assumi-lo vale para qualquer outro segmento, como no guia de ações de energia elétrica na B3.

Puxando a lista real do setor com o /screener

Com o nome do setor em mãos, o endpoint /screener devolve as empresas do segmento já com os indicadores populados. Ele aceita o parâmetro sector e operadores de comparação em qualquer campo de fundamentos: _gt (maior que), _gte, _lt (menor que), _lte e _eq, além de sort, order e limit. Esse é o jeito correto de montar uma lista de "melhores ações de saneamento": em vez de fixar um ranking que envelhece, você descreve os critérios e deixa a API devolver a relação de hoje.

import requests

BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"Authorization": "Bearer SUA_CHAVE_AQUI"}

# Troque pelo rótulo exato retornado por /companies/sectors
SETOR = "Saneamento"

params = {
    "sector": SETOR,
    "sort": "dividend_yield",
    "order": "desc",
    "limit": 50,
}

r = requests.get(f"{BASE}/screener", params=params, headers=HEADERS)
r.raise_for_status()

# O corpo pode vir como lista ou envelopado; trata os dois casos
payload = r.json()
linhas = payload["data"] if isinstance(payload, dict) else payload

for row in linhas:
    print(
        f"{row.get('ticker', ''):7}",
        f"P/L={row.get('pl')}",
        f"P/VP={row.get('pvp')}",
        f"DY={row.get('dividend_yield')}",
    )

Rodar esse trecho devolve as concessionárias de saneamento ordenadas pelo dividend yield do momento. Como os valores mudam a cada fechamento, esta página não reproduz o resultado: a lista real é a que sai da sua execução. Para restringir o universo, some filtros de qualidade e de segurança financeira, uma prática detalhada no tutorial de como construir um screener em Python.

params = {
    "sector": SETOR,
    "roe_gt": 8,                 # rentabilidade mínima
    "net_debt_ebitda_lt": 4,  # alavancagem sob controle
    "dividend_yield_gt": 4,       # piso de proventos
    "sort": "roic",
    "order": "desc",
    "limit": 50,
}

r = requests.get(f"{BASE}/screener", params=params, headers=HEADERS)

Os números nos filtros acima são pontos de partida ilustrativos, não recomendações. Em um setor de alavancagem estruturalmente alta, um teto de dívida líquida sobre EBITDA precisa ser mais generoso do que em consumo, e o piso de dividend yield deve reconhecer que empresas em pleno ciclo de CapEx distribuem menos. O ponto é o método: ajuste os limites à sua tese e rode a consulta quando quiser a lista atual.

Rode a análise do setor com sua própria chave

Plano gratuito com 200 requisições por dia, sem cartão de crédito. Login com Google e a chave aparece no dashboard.

Criar conta gratuita

Exemplo prático: um raio-x de fundamentos por ticker

Depois de identificar os candidatos com o screener, o passo seguinte é abrir os fundamentos de cada empresa. O endpoint /fundamentals/{ticker} devolve o conjunto completo de indicadores para um papel. O exemplo abaixo é totalmente executável: basta trocar a chave. Ele monta um pequeno raio-x setorial percorrendo uma lista de tickers de saneamento e imprimindo os campos que mais importam para o setor.

import requests

BASE = "https://api.usebolsai.com/api/v1"
HEADERS = {"Authorization": "Bearer SUA_CHAVE_AQUI"}

# Confirme a lista atual do setor via /screener; estes são exemplos conhecidos
TICKERS = ["SBSP3", "SAPR11", "CSMG3", "ORVR3"]

def fundamentos(ticker):
    """Busca fundamentos de um ticker. Devolve dict ou None."""
    r = requests.get(f"{BASE}/fundamentals/{ticker}", headers=HEADERS, timeout=15)
    if r.status_code == 200:
        return r.json()
    return None

print(f"{'TICKER':8}{'P/VP':>7}{'ROIC':>8}{'DL/EBITDA':>12}{'DY':>8}")
for t in TICKERS:
    d = fundamentos(t)
    if not d:
        print(f"{t:8}  (sem dados)")
        continue
    print(
        f"{t:8}"
        f"{str(d.get('pvp')):>7}"
        f"{str(d.get('roic')):>8}"
        f"{str(d.get('net_debt_ebitda')):>12}"
        f"{str(d.get('dividend_yield')):>8}"
    )

A resposta de /fundamentals/{ticker} traz, entre outros campos, pl, pvp, ev_ebitda, roe, roic, ebit_margin, net_margin, dividend_yield, net_debt_ebitda, net_debt_equity, current_ratio, market_cap e o carimbo reference_date. O tratamento de None não é cosmético: empresas com prejuízo no período retornam pl nulo, e alguns indicadores podem vir vazios quando o balanço mais recente ainda não foi processado. A saída abaixo é ilustrativa do formato da tabela; os números reais dependem da sua execução e do dia.

TICKER P/VP ROIC DL/EBITDA DY SBSP3 ... ... ... ... SAPR11 ... ... ... ... CSMG3 ... ... ... ... ORVR3 ... ... ... ...

Para acompanhar a evolução dos múltiplos ao longo de vários trimestres, o endpoint /fundamentals/{ticker}/history devolve a série histórica dos mesmos campos, e o /dividends/{ticker} traz o histórico de proventos com ex_date, value e type. Cruzar a trajetória dos investimentos com a distribuição de proventos é o que separa uma leitura superficial de dividend yield de uma análise consciente do ciclo do setor.

Comparando as concessionárias entre si

As grandes concessionárias listadas carregam teses distintas. Algumas passaram por desestatização e reorganizaram a operação em torno de metas de eficiência; outras mantêm controle estatal e são olhadas mais pela ótica de renda; há ainda estruturas de controle misto, com governança intermediária. Essas diferenças de estrutura societária e de estágio no ciclo de investimentos se refletem nos indicadores, e é por isso que uma comparação lado a lado, com os mesmos campos para todas, ajuda mais do que analisar cada uma isoladamente.

A bolsai não expõe um endpoint REST de comparação direta: a comparação se faz no cliente, consultando /fundamentals/{ticker} para cada papel e organizando os resultados, exatamente como no exemplo anterior. Quem usa fluxos com inteligência artificial pode delegar essa montagem a um agente via integração MCP, que expõe ferramentas para consultar cotação, fundamentos, dividendos e para rodar o screener por linguagem natural.

Cuidado ao comparar setores diferentes com as mesmas réguas. O P/L, o EV/EBITDA e a dívida líquida sobre EBITDA de uma concessionária de saneamento contam uma história diferente dos de uma varejista ou de uma empresa de tecnologia. Utilities operam com alavancagem mais alta por natureza; filtrar saneamento com tetos pensados para consumo elimina justamente as empresas típicas do setor. Restrinja o filtro ao segmento com o parâmetro sector antes de comparar múltiplos.

Metodologia e limitações dos dados

A bolsai calcula os fundamentos a partir de dados oficiais da CVM (demonstrações DFP e ITR), da B3 (preços e eventos societários) e do Banco Central (indicadores macroeconômicos). O lucro líquido em base TTM usa a conta consolidada da CVM, consistente com a metodologia do Fundamentus, e o EBIT segue uma definição limpa a partir do lucro bruto menos as despesas operacionais. A acurácia dos indicadores é de 96% frente ao Fundamentus em dados de DFP recentes de 2025. Três limitações merecem atenção específica no setor de saneamento.

Cadência de final de dia. As cotações são atualizadas uma vez por dia, às 20:30 BRT, após o fechamento do pregão. Dados de empresas, balanços e proventos são atualizados semanalmente, aos sábados, e os fundamentos são recalculados após cada ingestão de balanços. A bolsai não é uma fonte intraday nem uma corretora, e não executa ordens.

Defasagem contábil. Fundamentos refletem o último balanço disponível. Em um setor que passa por revisões tarifárias e grandes aportes de CapEx, um indicador calculado sobre um trimestre antigo pode não capturar mudanças recentes na estrutura de capital ou na tarifa. Sempre confira o campo reference_date e, quando possível, olhe a série de /fundamentals/{ticker}/history em vez de um único ponto.

Passar no filtro não é recomendação. Um screener é uma ferramenta de pré-seleção. Aparecer na lista significa "merece ser estudado", não "deve ser comprado". A análise qualitativa do setor, que inclui risco hídrico, risco regulatório, cronograma de metas e composição societária, precisa ser feita separadamente sobre os nomes que sobraram do filtro quantitativo.

Perguntas frequentes

Quais ações de saneamento existem na B3 em 2026?

O setor reúne concessionárias de água e esgoto listadas na B3, entre nomes conhecidos como SBSP3, SAPR11, SAPR4, CSMG3 e ORVR3. A lista exata muda com aberturas de capital, mudanças de composição societária e reclassificações da CVM, por isso o caminho correto é gerar a relação atual via API: descubra o nome do setor em /companies/sectors e consulte /screener com o parâmetro sector. Assim você trabalha sempre com a lista viva, não com uma tabela desatualizada.

Qual o setor CVM correto para filtrar saneamento na API?

Os setores seguem os rótulos oficiais da CVM em português. Saneamento costuma aparecer como setor ou como sub-setor ligado a utilidade pública. Como esses rótulos podem variar, consulte primeiro o endpoint /companies/sectors, que lista todos os nomes válidos com a contagem de empresas, copie a string exata e use-a no parâmetro sector do /screener. Não assuma a taxonomia: descubra-a.

Por que dividend yield alto em saneamento pode enganar?

Saneamento é intensivo em capital e passa por um ciclo de investimentos pesados ligado às metas de universalização. Uma empresa em fase de CapEx elevado pode reduzir a distribuição de proventos para financiar obras, então um dividend yield historicamente alto não garante continuidade. Além disso, uma queda forte de preço infla o yield artificialmente. Vale cruzar dividend_yield com o payout implícito, com net_debt_ebitda e com o ciclo de investimento da companhia.

Preciso de plano pago para analisar o setor de saneamento?

Não para começar. O plano gratuito da bolsai libera 200 requisições por dia e entrega o snapshot atual de fundamentos, cotação e dividendos, o suficiente para consultar as poucas concessionárias do setor e rodar um screener setorial. O plano Pro (R$49/mês, 10.000 requisições/dia) desbloqueia o histórico completo, útil para acompanhar a evolução dos múltiplos ao longo de vários trimestres.

Os dados de saneamento são em tempo real?

Não. As cotações são de fechamento, atualizadas uma vez por dia às 20:30 BRT, após o encerramento do pregão da B3. Dados de empresas, demonstrações financeiras e proventos são atualizados semanalmente, aos sábados, e os fundamentos são recalculados após cada ingestão de balanços. A bolsai é uma fonte analítica de dados de final de dia, não uma feed intraday nem uma corretora.

Leia também

Disclaimer: Este conteúdo é educacional e não constitui recomendação de investimento. Os tickers citados servem para ilustrar o funcionamento técnico dos endpoints e não representam sugestão de compra ou venda. Nenhum valor de cotação, múltiplo ou dividend yield de empresa específica é afirmado aqui, justamente porque esses dados mudam a cada pregão e devem ser consultados na fonte. Decisões de alocação envolvem risco e devem considerar perfil pessoal, horizonte e o contexto regulatório e macroeconômico do setor.

por bolsai · 2 de julho de 2026 · 13 min de leitura

Comece agora

Analisar ações de saneamento na B3 em 2026 é menos sobre memorizar uma lista e mais sobre ter um método para consultar os dados atuais quando a decisão aparece. Com a API bolsai, o fluxo é direto: descubra o setor em /companies/sectors, puxe a lista com /screener e abra os fundamentos de cada candidato em /fundamentals/{ticker}. O plano gratuito dá 200 requisições por dia, o suficiente para rodar todos os exemplos deste guia sobre um setor pequeno como o de saneamento.

Fontes oficiais utilizadas pela bolsai: B3, CVM e Banco Central. Conheça também a integração via MCP para usar a API com Claude e outros agentes de IA.