LPG Movement — Brazil Monthly Origin-Destination Volumes

One row is one month and reported product movement between origin and destination markets for Brazilian origin and destination state or region coverage in Brazil, with measured lpg movement and temporal coverage through 2026-05-01. The profiled table has 392,134 rows. Known limitation: The origin/destination state is split across two column pairs from different source vintages: uf_origem/uf_destino (~13% of rows) and uf_de_origem/uf_de_destino (~87% of rows) — coalesce each pair for a single state value. Rows are not unique on the full dimension set (current/historical series overlap); de-duplicate before summing quantidade_de_produto_mil_ton.

anp-brazil-mdpg-glp·13 columns·2.9 MB·Creative Commons Attribution-NoDerivatives 3.0 Unported (site footer) plus ANP portal terms·updated 7d ago

Schema

dateDATE
yearINTEGER
monthINTEGER
agente_reguladoVARCHAR
codigo_do_produtoVARCHAR
nome_do_produtoVARCHAR
regiao_origemVARCHAR
uf_origemVARCHAR
regiao_destinatarioVARCHAR
uf_destinoVARCHAR
mercado_destinatarioVARCHAR
codigo_de_embalagem_glpVARCHAR
quantidade_de_produto_mil_tonDOUBLE

Get this dataset on your machine

subsets sync --bundle medium clones the mid-size tiers as queryable local tables — use --bundle large for the widest tier

pip install subsetsio
subsets sync --bundle small # or medium, or large
subsets serve # search + SQL at http://localhost:8080

Free and open — the data syncs straight from the public bucket, and search + SQL run entirely on your machine. See docs →

Query it locally

Full docs →
Bash
subsets serve   # local API on http://localhost:8080
curl -s -X POST "http://localhost:8080/query" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT * FROM \"anp-brazil-mdpg-glp\" LIMIT 5"}'

No account, no API key — the data syncs straight from bundles.subsets.io and every query runs on your machine. See the local API reference.