RODOVIAS

API Ocorrências Rodoviárias

Documentação da API pública de consulta de ocorrências rodoviárias

Autenticação e Acesso

O acesso a esta API é restrito a usuários autenticados. Para consumir os endpoints, é obrigatório solicitar uma chave de acesso (API Key) e fornecê-la em cada requisição.

Como solicitar acesso:

Faça login com a sua conta do portal e acesse a página de Minha Conta. Na seção Minhas APIs, você poderá solicitar acesso ao produto Ocorrências Rodoviárias.

Cabeçalho de Autorização

Envie a chave no cabeçalho HTTP Authorization precedida pelo prefixo Api-Key :

Authorization: Api-Key cci_rodovias_ocorrencias_live_<sua_chave>

Limites e Boas Práticas (Rate Limit)

  • O limite padrão desta API é de 12 requisições por hora por credencial.
  • Além da cota por credencial, há proteção de rajada por IP na borda para preservar a estabilidade do serviço.
  • Recomendamos a adoção de cache local no cliente e polling com intervalo máximo de uma chamada a cada 5 minutos.

Códigos de Resposta HTTP

401 Unauthorized Chave ausente, inválida, expirada, rotacionada ou de outro produto.
403 Forbidden IP de origem do cliente não permitido na allowlist da credencial.
429 Too Many Requests Limite de requisições excedido. Aguarde a redefinição da janela horária.

1. Consulta de Ocorrências

GET

Retorna o histórico paginado de ocorrências publicadas que correspondem aos filtros aplicados.

https://ccm.artesp.sp.gov.br/rodovias/api/ocorrencias/
Parâmetro Tipo Exemplo Descrição
filtro_cod string oc1234 Código OC ou número MITS da ocorrência.
filtro_data_inicio string 2026-06-01 Data inicial no formato YYYY-MM-DD (a partir de 2021-11-16). Quando nenhum filtro é informado, a consulta usa automaticamente os últimos 7 dias.
filtro_data_fim string 2026-06-25 Data final no formato YYYY-MM-DD. Período máximo de 365 dias.
filtro_concessionaria string 12,30 Lote(s) de concessionária(s) separados por vírgula (obtenha a lista em /rodovias/api/ocorrencias/filtros/concessionarias/).
filtro_rodovia string sp-280,sp-330 Slug(s) de rodovia(s) separados por vírgula (obtenha a lista em /rodovias/api/ocorrencias/filtros/rodovias/).
filtro_municipio string 3550308,3509502 Código(s) IBGE de município(s) separados por vírgula (obtenha a lista em /rodovias/api/ocorrencias/filtros/municipios/).
filtro_classe string Acidente,Obra Classes de ocorrência separadas por vírgula. Valores permitidos (sensíveis a maiúsculas/minúsculas):
  • Acidente
  • Evento natural
  • Obra
  • Ocorrência
Qualquer outro valor resultará em status 400.
filtro_subclasse string Colisão,Pane Subclasses separadas por vírgula (obtenha em /rodovias/api/ocorrencias/filtros/subclasses/).
filtro_finalizada integer 1 Filtro de status operacional. Valores permitidos:
  • 1 (Ativa)
  • 0 (Finalizada)
Deixe vazio para retornar todas as ocorrências independentemente do status.
include string fim,interdicoes Lista de blocos de relacionamento a serem expandidos no payload, separados por vírgula. Valores estritamente aceitos:
  • fim (vítimas)
  • interdicoes (bloqueios de faixas)
  • congestionamentos (trechos lentificados)
  • veiculos (veículos envolvidos)
  • atualizacoes (histórico de atualizações)
Qualquer valor ausente desta lista resultará em status 400.
limit integer 20 Quantidade de itens por página. Default: 50. Máximo: 100.
offset integer 40 Deslocamento inicial para paginação. Default: 0.
{
  "meta": {
    "versao": "1.0.0",
    "timestamp": "2026-06-25T12:00:00-03:00",
    "limit": 50,
    "offset": 0,
    "count": 123,
    "next": "http://localhost:8000/rodovias/api/ocorrencias/?limit=50&offset=50",
    "previous": null,
    "next_offset": 50,
    "previous_offset": null,
    "filtros_aplicados": {
      "filtro_data_inicio": "2026-01-01",
      "filtro_data_fim": "2026-01-31",
      "filtro_finalizada": "0",
      "include": ["fim", "interdicoes"]
    }
  },
  "results": [
    {
      "slug": "oc87",
      "classe": "Acidente",
      "subclasse_oc": "Não se aplica",
      "subclasse_ac": "Colisão",
      "tipo_ac": "Colisão traseira",
      "dinamica_oc": "...",
      "cod_conc": "CCI-01",
      "rodovia": {
        "slug": "sp-280",
        "nome": "SP-280"
      },
      "concessionarias": [
        {
          "lote": 12,
          "nome": "ViaOeste"
        }
      ],
      "municipios": [
        {
          "cod_ibge": "3505708",
          "nome": "Barueri"
        }
      ],
      "km_inicial": 12.5,
      "km_final": 13.0,
      "cond_climaticas": "Tempo bom",
      "dt_hr_conhecimento": "2026-06-25T10:00:00-03:00",
      "dt_hr_oc": "2026-06-25T10:00:00-03:00",
      "dt_hr_termino": null,
      "status": "ativa",
      "pista": "DUPLA",
      "sentido": "SUL",
      "lat": -23.5,
      "lng": -46.6,
      "origem_comunicacao_conc": "Conc 1",
      "origem_comunicacao_cci": "Concessionária",
      "observacoes_cci": "Obs 1",
      "criado_em": "2026-06-25T10:05:00-03:00",
      "atualizado_em": "2026-06-25T10:05:00-03:00",
      "fim": [
        {
          "tipo": "LEVE",
          "qtd": 2,
          "obs": "Feridos leves",
          "veiculo_id": null
        }
      ],
      "interdicoes": []
    }
  ]
}

2. Valores Disponíveis para Filtros

Para facilitar a montagem dos filtros, a API disponibiliza endpoints específicos para cada catálogo. Os catálogos de rodovias e municípios são de grande volume e possuem paginação e busca textual.

Concessionárias

GET
https://ccm.artesp.sp.gov.br/rodovias/api/ocorrencias/filtros/concessionarias/

Retorna a lista de concessionárias ativas.

{
  "meta": { "versao": "1.0.0", "timestamp": "..." },
  "results": [
    { "lote": 12, "nome": "Concessionária X" }
  ]
}

Rodovias (Paginado)

GET
https://ccm.artesp.sp.gov.br/rodovias/api/ocorrencias/filtros/rodovias/?q=SP-2&limit=50&offset=0

Parâmetros: q (busca por código da rodovia), limit (máx 100) e offset.

{
  "meta": {
    "versao": "1.0.0",
    "timestamp": "...",
    "limit": 50,
    "offset": 0,
    "count": 123,
    "next": "...",
    "previous": null,
    "next_offset": 50,
    "previous_offset": null,
    "q": "SP-2"
  },
  "results": [
    { "slug": "sp-280", "nome": "SP-280" }
  ]
}

Municípios (Paginado)

GET
https://ccm.artesp.sp.gov.br/rodovias/api/ocorrencias/filtros/municipios/?q=sao&limit=50&offset=0

Parâmetros: q (busca por nome do município), limit (máx 100) e offset.

{
  "meta": {
    "versao": "1.0.0",
    "timestamp": "...",
    "limit": 50,
    "offset": 0,
    "count": 123,
    "next": "...",
    "previous": null,
    "next_offset": 50,
    "previous_offset": null,
    "q": "sao"
  },
  "results": [
    { "cod_ibge": "3550308", "nome": "São Paulo" }
  ]
}

Subclasses

GET
https://ccm.artesp.sp.gov.br/rodovias/api/ocorrencias/filtros/subclasses/

Retorna as subclasses e o tipo de classe ao qual pertencem.

{
  "meta": { "versao": "1.0.0", "timestamp": "..." },
  "results": [
    { "nome": "Colisão", "tipo": "acidente" },
    { "nome": "Pane", "tipo": "ocorrencia" }
  ]
}

Informações Gerais

  • Versão 1.0.0
  • Atualização Em tempo real
  • Formato JSON (UTF-8)
  • Rate Limit Até 12 req/hora

Exemplo cURL

curl -H "Authorization: Api-Key cci_rodovias_ocorrencias_live_<key_id>_<random>" "https://ccm.artesp.sp.gov.br/rodovias/api/ocorrencias/?filtro_rodovia=sp-280&include=fim,interdicoes"

Rate Limit Headers

X-RateLimit-Limit Total de requisições permitidas (1 hora)
X-RateLimit-Remaining Requisições restantes na janela
Retry-After Segundos para próxima tentativa