Fastest path into a spreadsheet:
- Click Download CSV at the top of this page — you'll need a free account
- Open the file in Excel or Google Sheets
Each download counts as one request. Free accounts: 10 requests per month for sampling and testing. Previews and metadata browsing do not count.
Need the entire table as one file? Expand Full snapshot file in the header after logging in.
Recommended: use the Download CSV button at the top of this page — open directly in Excel. No formulas or Power Query required.
Advanced — live refresh with Power Query
Excel 365 or 2016+: Data → Get Data → From Other Sources → Blank Query → Advanced Editor
let
apiKey = "your_key_here",
url = "https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data",
source = Json.Document(Web.Contents(url,
[Headers = [#"X-API-Key" = apiKey]])),
toTable = Table.FromList(source, Splitter.SplitByNothing(), {"Record"}),
cols = Record.FieldNames(toTable{0}[Record]),
result = Table.ExpandRecordColumn(toTable, "Record", cols)
in
result
Fetch all data (JSON)
curl https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data \
-H "X-API-Key: your_key_here"
Filter by date range
curl "https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data?start=2020-01-01&end=2024-12-31" \
-H "X-API-Key: your_key_here"
Download as CSV
curl "https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data?format=csv" \
-H "X-API-Key: your_key_here" -o nzdep2023_sa2.csv
Fetch all data (JSON)
curl https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data ^
-H "X-API-Key: your_key_here"
Filter by date range
curl "https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data?start=2020-01-01&end=2024-12-31" ^
-H "X-API-Key: your_key_here"
Download as CSV
curl "https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data?format=csv" ^
-H "X-API-Key: your_key_here" -o nzdep2023_sa2.csv
PowerShell alternative
Invoke-RestMethod `
-Uri "https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data" `
-Headers @{ "X-API-Key" = "your_key_here" } | ConvertTo-Json
Install the client library
pip install eolas-data
Fetch all data
from eolas_data import Client
client = Client("your_key_here")
df = client.get("nzdep2023_sa2")
print(df.head())
Filter by date range
df = client.get("nzdep2023_sa2", start="2020-01-01", end="2024-12-31")
print(df.head())
Download as CSV
df = client.get("nzdep2023_sa2")
df.to_csv("nzdep2023_sa2.csv", index=False)
Snowflake access is available on the
Enterprise plan. Data is served as a zero-copy Iceberg share — no ETL, always up to date.
One-time setup — mount the share
CREATE DATABASE vs_warehouse
FROM SHARE MRWTYQY-WZ79363.vs_warehouse_share;
Query this dataset
SELECT *
FROM vs_warehouse.STATS_NZ.NZDEP2023_SA2
ORDER BY date DESC
LIMIT 100;
Filter by date range
SELECT *
FROM vs_warehouse.STATS_NZ.NZDEP2023_SA2
WHERE date >= '2020-01-01'
AND date <= '2024-12-31'
ORDER BY date;
Export to CSV from a worksheet
-- Run the query above, then use
-- Results → Download as CSV in the Snowflake UI
Install the client library
remotes::install_github("phildonovan/eolas-r")
Fetch all data
library(eolas)
eolas_key("your_key_here")
df <- eolas_get("nzdep2023_sa2")
head(df)
Filter by date range
df <- eolas_get("nzdep2023_sa2", start = "2020-01-01", end = "2024-12-31")
head(df)
Download as CSV
df <- eolas_get("nzdep2023_sa2")
write.csv(df, "nzdep2023_sa2.csv", row.names = FALSE)
Open Power BI Desktop → Home → Transform data → Advanced Editor, paste the query below.
Fetch all data
let
apiKey = "your_key_here",
url = "https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data",
source = Json.Document(Web.Contents(url,
[Headers = [#"X-API-Key" = apiKey]])),
toTable = Table.FromList(source, Splitter.SplitByNothing(), {"Record"}),
cols = Record.FieldNames(toTable{0}[Record]),
result = Table.ExpandRecordColumn(toTable, "Record", cols)
in
result
Filter by date range
let
apiKey = "your_key_here",
url = "https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data?start=2020-01-01&end=2024-12-31",
source = Json.Document(Web.Contents(url,
[Headers = [#"X-API-Key" = apiKey]])),
toTable = Table.FromList(source, Splitter.SplitByNothing(), {"Record"}),
cols = Record.FieldNames(toTable{0}[Record]),
result = Table.ExpandRecordColumn(toTable, "Record", cols)
in
result
In Google Sheets: Extensions → Apps Script, paste the script below, then run getVSData(). It will write the data into the active sheet.
Fetch all data
function getVSData() {
const apiKey = "your_key_here";
const url = "https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data";
const res = UrlFetchApp.fetch(url, { headers: { "X-API-Key": apiKey } });
const data = JSON.parse(res.getContentText());
const sheet = SpreadsheetApp.getActiveSheet();
const headers = Object.keys(data[0]);
const rows = data.map(r => headers.map(h => r[h] ?? ""));
sheet.clearContents();
sheet.getRange(1, 1, 1, headers.length).setValues([headers]);
sheet.getRange(2, 1, rows.length, headers.length).setValues(rows);
}
Filter by date range
function getVSData() {
const apiKey = "your_key_here";
const url = "https://api.eolas.fyi/v1/datasets/nzdep2023_sa2/data?start=2020-01-01&end=2024-12-31";
const res = UrlFetchApp.fetch(url, { headers: { "X-API-Key": apiKey } });
const data = JSON.parse(res.getContentText());
const sheet = SpreadsheetApp.getActiveSheet();
const headers = Object.keys(data[0]);
const rows = data.map(r => headers.map(h => r[h] ?? ""));
sheet.clearContents();
sheet.getRange(1, 1, 1, headers.length).setValues([headers]);
sheet.getRange(2, 1, rows.length, headers.length).setValues(rows);
}