API de ofertas Algar

Consulta somente leitura (GET), em JSON. Preços coletados direto da loja oficial da Algar, com atualização automática toda segunda e quinta.

Última atualização
Próxima coletasegunda ou quinta, por volta das 06:17

Endpoints

GET https://ofertasalgar.com.br/api/cidades/{slug}.json
Ofertas de uma cidade: internet, combos e (para empresas) celular. Retorna 404 quando a Algar não publica oferta na cidade.
GET https://ofertasalgar.com.br/api/cidades.json
Todas as cidades atendidas pela Algar, com temOfertaParaVoce, temOfertaEmpresas e o link da consulta. Use para descobrir o slug ou saber se a cidade só tem consulta de viabilidade.
GET https://ofertasalgar.com.br/api/ofertas.json
Todas as 225 cidades com oferta em uma única resposta.
GET https://ofertasalgar.com.br/api/servicos.json
Catálogo de serviços adicionais (streaming, assistência, nuvem): 20 para você e 6 para empresas. O preço é nacional, igual em todas as cidades, e o serviço é somado ao plano de internet.
GET https://ofertasalgar.com.br/api/mudancas.json
O que mudou de uma coleta para a outra: preço que subiu ou caiu, plano novo, plano que saiu e campanha que entrou ou terminou, com o número de cidades afetadas. A Algar não avisa quando mexe nos preços — este é o histórico.

Como montar o slug

Nome da cidade sem acentos, em minúsculas, com hífens no lugar de espaços e símbolos, seguido de hífen e da UF. Exemplos: Uberlândia/MG → uberlandia-mg, São Paulo/SP → sao-paulo-sp, Pau d'Arco/TO → pau-d-arco-to.

slug = nome.normalize('NFD').replace(/[̀-ͯ]/g, '')
         .toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '') + '-' + uf.toLowerCase()

Exemplo

curl https://ofertasalgar.com.br/api/cidades/uberlandia-mg.json
{
  "atualizadoEm": "2026-10-12T11:29:42.377Z",
  "cidade": { "slug": "uberlandia-mg", "nome": "Uberlândia", "uf": "MG", "ddd": "34" },
  "paraVoce": {
    "pagina": "https://ofertasalgar.com.br/uberlandia-mg/",
    "campanha": null,
    "internet": [
      { "nome": "Internet Fibra 800 Mega", "velocidadeMega": 800, "servicoAdicional": null,
        "preco": 109.9, "precoTexto": "R$ 109,90", "precoDe": 119.9,
        "selo": "OFERTA EXCLUSIVA SITE", "condicao": "Valor por 12 meses com débito automático." }
    ],
    "combos": [ ... ]
  },
  "empresas": {
    "pagina": "https://ofertasalgar.com.br/empresas/uberlandia-mg/",
    "campanha": { "tipo": "black-friday", "titulo": "PRÉ BLACK ALGAR",
                  "subtitulo": "Ofertas exclusivas CNPJ - site e whatsapp" },
    "internet": [ ... ], "combos": [ ... ],
    "celular": [
      { "nome": "Celular Empresas 50 Giga", "franquiaGB": 50, "ilimitado": false,
        "preco": 50, "precoTexto": "R$ 50,00", "precoDe": null, ... }
    ]
  }
}

Campos

CampoSignificado
precoPreço mensal válido, em reais (número). Quando há promoção, já é o valor promocional.
precoDePreço "de" (riscado na loja) quando há promoção; null quando não há.
velocidadeMegaVelocidade em Mega (1 Giga = 1000).
servicoAdicionalServiço do combo (ex.: Disney+, Super Wi-Fi); null na internet pura.
franquiaGB / ilimitadoCelular: franquia de dados em GB, ou ilimitado: true.
paraVoce / empresasnull quando a cidade não tem oferta publicada naquele segmento (só consulta de viabilidade).
campanhaCampanha sazonal em andamento na loja da Algar naquele segmento: { tipo, titulo, subtitulo }, com tipo entre black-friday, cyber-monday, natal, ano-novo, consumidor e aniversario. É null fora de campanha.
atualizadoEmData e hora da última coleta na loja da Algar, em UTC. Use para saber se os preços mudaram desde a sua última leitura.

Atualização dos preços

Uma rotina automática lê a loja oficial da Algar toda segunda e quinta, por volta das 06:17 (horário de Brasília), e publica os preços novos em seguida. Se a coleta vier com algo fora do padrão, nada é publicado: a API continua com os últimos preços válidos em vez de servir dado quebrado.

Para saber se mudou alguma coisa desde a última vez, sem baixar tudo de novo:

curl -s -H 'If-Modified-Since: Sun, 12 Oct 2026 13:57:25 GMT' -o /dev/null -w '%{http_code}\n' \
  https://ofertasalgar.com.br/api/cidades/uberlandia-mg.json

Erros

Erros retornam o status HTTP correspondente com corpo em JSON (Content-Type: application/json):

HTTP 404
{ "erro": { "codigo": "SEM_OFERTA", "mensagem": "Não há ofertas publicadas para esta cidade." } }
CódigoQuando
SEM_OFERTAA cidade existe na lista da Algar, mas não tem oferta publicada (só consulta de viabilidade).
CIDADE_NAO_ENCONTRADAO slug não corresponde a nenhuma cidade da lista.
ENDPOINT_NAO_ENCONTRADOEndereço inexistente dentro de /api/.

Uso no navegador (CORS)

Leitura liberada para qualquer origem: Access-Control-Allow-Origin: *, métodos GET, HEAD, OPTIONS e cabeçalhos Content-Type, Accept, inclusive nas respostas de erro. As respostas trazem Last-Modified e aceitam cache condicional (If-Modified-Since → 304).

Ofertas e disponibilidade variam conforme o endereço; valores conforme publicados pela Algar Telecom.

Cidades com oferta (225)

cidades.json · ofertas.json · servicos.json · mudancas.json · Voltar ao site