API do data.rio¶
O portal data.rio é uma instância do ArcGIS Hub rodando em pcrj.maps.arcgis.com. Não há documentação própria do IPP — tudo segue o padrão público da ArcGIS REST API. Esta página resume os endpoints úteis para o caso de uso do ACEC-Hub, validados experimentalmente no Relatório 02.
Endpoints principais¶
| O que você quer | Endpoint | Notas |
|---|---|---|
| Metadados de um grupo | GET /sharing/rest/community/groups/{group_id}?f=json |
Owner, criação, contagem |
| Listar itens de um grupo | GET /sharing/rest/content/groups/{group_id}?f=json&num=100&start=1 |
Paginado via nextStart |
| Metadados completos de um item | GET /sharing/rest/content/items/{id}?f=json |
Inclui typeKeywords, description, etc. |
| Baixar arquivo de um item | GET /sharing/rest/content/items/{id}/data |
Para Excel, PDF, CSV Collection, Image |
| Search global | GET /sharing/rest/search?q=group:{group_id}&f=json&num=100 |
Filtros via q |
| Feature Service GeoJSON | URL externa do pgeo3.rio.rj.gov.br/... + ?f=geojson |
Vem no campo url do item |
Base usada: https://pcrj.maps.arcgis.com/sharing/rest. Sem autenticação.
Padrões por tipo de item¶
| Tipo | url no manifest |
Como acessar |
|---|---|---|
| Microsoft Excel | vazio | /items/{id}/data retorna application/vnd...spreadsheetml.sheet |
| vazio | /items/{id}/data retorna application/pdf |
|
| CSV Collection | vazio | /items/{id}/data retorna application/zip (CSVs dentro) |
| Image | vazio | /items/{id}/data retorna image/png (geralmente) |
| Feature Service | URL do ArcGIS Server externo | Consumir como GeoJSON/MapServer direto |
| Web Mapping Application | URL do app | Página web — não baixe |
| Hub Site Application | URL do hub | Página web — não baixe |
| Document Link | URL externa | Apenas um link curador |
Importante: o nome real do arquivo aparece no header Content-Disposition da resposta de /data (ex.: filename="3726.xlsx"). O ID amigável do título fica só no metadata title.
Grupo Educação¶
group_id = 91117c15dceb41eaa08df881fa9f9310
group_url = https://www.data.rio/search?groupIds=91117c15dceb41eaa08df881fa9f9310
total = 186 itens (snapshot 2026-05-05)
Exemplo: baixar todos os Excels¶
import json, urllib.request
from pathlib import Path
PORTAL = "https://pcrj.maps.arcgis.com/sharing/rest"
manifest = json.loads(Path("data/manifest.json").read_text(encoding="utf-8"))
dest = Path("data/raw/excel")
dest.mkdir(parents=True, exist_ok=True)
for item in manifest["items"]:
if item["type"] != "Microsoft Excel":
continue
url = f"{PORTAL}/content/items/{item['id']}/data"
out = dest / f"{item['id']}.xlsx"
if out.exists():
continue
urllib.request.urlretrieve(url, out)
Custo total estimado: ~100 MiB (127 arquivos, média ~800 KiB cada).
Caveats¶
sizeestá em bytes, apesar de aparentar KB em alguma documentação informal.- Rate-limiting: nenhum sinal explícito; mantenha um
sleepde ~0.3s entre chamadas para não estressar o portal. - Versionamento: o portal não expõe histórico de revisões. Cada
modifiedé o último update. Para reprodutibilidade científica, faça snapshot local + DOI Zenodo. - Nomes de arquivo: opacos no portal (
3726.xlsx). Para nomes humanos, sempre cruze com otitledo manifest.
Search global (descobrindo itens fora do Grupo Educação)¶
Para buscar items em qualquer grupo do portal (ex.: geometria de bairros, que não está no Grupo Educação):
Foi assim que dc94b29fc3594a5bb4d297bee0c9a3f2 ("Limite de Bairros", IPP) foi achado — Feature Service hospedado em pgeo3.rio.rj.gov.br/arcgis/rest/services/Cartografia/Limites_administrativos/MapServer/4. 166 features cobrindo os bairros oficiais do município, incluindo nome, codbairro, codra, rp, cod_rp. Download via ?f=geojson&where=1=1&outFields=*&outSR=4326.
Itens cobertos pelo probe¶
Validados em produção (HTTP 200, conteúdo esperado):
918dd39478594792a9cfa7080b84c0b5— Excel — Base IPS por RAeafc70844f41438da45a79563fd1d310— PDF — Estudos Cariocas (PNAD)0a220ea7972449e39a28210dd317f636— Feature Service — Escolas Municipais7001b082c7174c539bfbf4e8b34c682c— Document Link — Painel.RIO8644dbd04a0c472faa2b727718a8bcad— CSV Collection — Taxa de Analfabetismo
Respostas brutas em data/raw/probe/.