---
title: NSW government schools, locations and enrolments
resource: https://publicdata.au/d/nsw-public-schools/
publisher: NSW Department of Education
licence: CC BY 4.0
licence_url: https://creativecommons.org/licenses/by/4.0/
version: 2026-10-02
rows: 2210
fields: 45
source: https://data.nsw.gov.au/data/dataset/78c10ea3-8d04-4c9c-b255-bbf8547e37e7/resource/3e6d5f6a-055c-440d-a690-fc0537c31095/download/master_dataset.csv
source_sha256: 2bc63daaf71d056e52f09af7e9a75e153e3747147e97de3ab0959d1cebd96972
language: en-AU
operator: National Digital
not_endorsed: true
---

# NSW government schools, locations and enrolments

Every NSW government school with its address, contacts, school type, latest enrolment, student background shares, electorates, council area and coordinates. Updated monthly.

Published by NSW Department of Education under CC BY 4.0 and republished here in other formats, with cells typed and suppressed values made null. NSW Department of Education has not endorsed this site.

Also called: NSW public schools master dataset, NSW government school locations, NSW public school enrolment numbers, Find a NSW public school by suburb.

## Download

Latest version, redirects to `https://publicdata.au/d/nsw-public-schools/v/2026-10-02/`:

- csv: https://publicdata.au/d/nsw-public-schools/latest/data.csv (1.4 MB)
- xlsx: https://publicdata.au/d/nsw-public-schools/latest/data.xlsx (626 KB)
- json: https://publicdata.au/d/nsw-public-schools/latest/data.json (3.3 MB)
- geojson: https://publicdata.au/d/nsw-public-schools/latest/data.geojson (3.5 MB)
- parquet: https://publicdata.au/d/nsw-public-schools/latest/data.parquet (241 KB)
- sqlite: https://publicdata.au/d/nsw-public-schools/latest/data.sqlite (1.4 MB)
- duckdb: https://publicdata.au/d/nsw-public-schools/latest/data.duckdb (700 KB)
- gpkg: https://publicdata.au/d/nsw-public-schools/latest/data.gpkg (1.6 MB)
- geo.parquet: https://publicdata.au/d/nsw-public-schools/latest/data.geo.parquet (234 KB)
- ndjson: https://publicdata.au/d/nsw-public-schools/latest/data.ndjson (3.3 MB)
- arrow: https://publicdata.au/d/nsw-public-schools/latest/data.arrow (387 KB)
- csv.gz: https://publicdata.au/d/nsw-public-schools/latest/data.csv.gz (231 KB)

Pinned version 2026-10-02: `https://publicdata.au/d/nsw-public-schools/v/2026-10-02/data.<format>`. Dated versions never change.

## Query

The query API returns only the rows you ask for, as JSON, NDJSON or CSV, from the same typed rows as the files. It needs no key. Rows: https://publicdata.au/api/v1/datasets/nsw-public-schools/rows. Counts and sums: https://publicdata.au/api/v1/datasets/nsw-public-schools/aggregate.

- Rows: https://publicdata.au/api/v1/datasets/nsw-public-schools/rows?limit=5
- Aggregate: https://publicdata.au/api/v1/datasets/nsw-public-schools/aggregate?group=lga&metric=sum.latest_year_enrolment_fte

Each filter is `field=operator.value` in the query string, and every filter must match. A number or date field compares as a number or date, and a text field compares as text. Values are case-sensitive except with `ilike`. Prefix `not.` to negate a filter, as `not.eq.value`. Operators: `eq.value`, `neq.value`, `gt.value`, `gte.value`, `lt.value`, `lte.value`, `like.*text*`, `ilike.*text*`, `in.(a,b,c)`, `is.null`.

- `select`: Fields to return, comma-separated. Every field when absent.
- `order`: `field.asc` or `field.desc`, comma-separated. The publisher's row order when absent.
- `limit`: Rows per page, 1 to 10,000. 100 when absent.
- `offset`: Rows to skip. The `next` URL in each answer sets it for you.
- `group`: On `aggregate`, fields to group by, comma-separated.
- `metric`: On `aggregate`, `count`, `sum.field`, `avg.field`, `min.field` or `max.field`, comma-separated. `count` when absent.
- `format`: `json`, `ndjson` or `csv`. JSON carries the provenance header, and the others carry it in response headers.

Without a version the API answers from the newest loaded version, and that answer changes when the publisher releases again. Put `versions/<date>/` before `rows` or `aggregate` for an answer that never changes. `/api/v1/datasets/<slug>/versions` lists the loaded versions. The API allows 60 requests in 10 seconds from one address. Above that it answers 429 for 10 seconds with a `Retry-After` header, a `RateLimit-Policy` header and a JSON body that gives the limit. Every API answer carries the same `RateLimit-Policy`. A client should wait the `Retry-After` seconds, or read the files, which have no limit. OpenAPI for this dataset: https://publicdata.au/d/nsw-public-schools/openapi.json

## Explore

Charts and dashboards in the browser: https://publicdata.au/d/nsw-public-schools/explore/. A dashboard can be shared as a link or embedded.

## Fields

| field | type | publisher's header | note |
|---|---|---|---|
| `school_code` | integer | School_code |  |
| `ageid` | integer | AgeID |  |
| `school_name` | string | School_name |  |
| `street` | string | Street |  |
| `town_suburb` | string | Town_suburb |  |
| `postcode` | string | Postcode |  |
| `phone` | string | Phone |  |
| `school_email` | string | School_Email |  |
| `website` | string | Website |  |
| `fax` | string | Fax |  |
| `latest_year_enrolment_fte` | number | latest_year_enrolment_FTE | Full-time equivalent enrolments as reported to the ABS National Schools Statistics Collection, as at August. |
| `indigenous_pct` | integer | Indigenous_pct | Per cent of FTE students who identify as Aboriginal or Torres Strait Islander. The Department writes np where the student number is five or fewer; it is null here with a suppressed flag. |
| `lbote_pct` | integer | LBOTE_pct | Per cent of students, by headcount, from a language background other than English, as at March. np where the student number is five or fewer. |
| `level_of_schooling` | string | Level_of_schooling |  |
| `selective_school` | string | Selective_school |  |
| `opportunity_class` | boolean | Opportunity_class |  |
| `school_specialty_type` | string | School_specialty_type |  |
| `school_subtype` | string | School_subtype |  |
| `preschool_ind` | boolean | Preschool_ind |  |
| `distance_education` | string | Distance_education |  |
| `intensive_english_centre` | boolean | Intensive_english_centre |  |
| `school_gender` | string | School_gender |  |
| `late_opening_school` | boolean | Late_opening_school |  |
| `date_1st_teacher` | date | Date_1st_teacher | The date the first teacher was on duty, which the Department treats as the date the school opened. |
| `lga` | string | LGA |  |
| `electorate_from_2023` | string | electorate_from_2023 |  |
| `electorate_2015_2022` | string | electorate_2015_2022 |  |
| `fed_electorate_from_2025` | string | fed_electorate_from_2025 |  |
| `fed_electorate_2016_2024` | string | fed_electorate_2016_2024 |  |
| `operational_directorate` | string | Operational_directorate |  |
| `principal_network` | string | Principal_network |  |
| `operational_directorate_office` | string | Operational_directorate_office |  |
| `operational_directorate_office_phone` | string | Operational_directorate_office_phone |  |
| `operational_directorate_office_address` | string | Operational_directorate_office_address |  |
| `facs_district` | string | FACS_district |  |
| `local_health_district` | string | Local_health_district |  |
| `aecg_region` | string | AECG_region |  |
| `asgs_remoteness` | string | ASGS_remoteness |  |
| `latitude` | number | Latitude | As published. The Department's data dictionary does not state the datum. |
| `longitude` | number | Longitude | As published. The Department's data dictionary does not state the datum. |
| `assets_unit` | string | Assets unit |  |
| `sa4` | string | SA4 |  |
| `foei_value` | number | FOEI_Value | Family Occupation and Education Index, the Department's school-level index of educational disadvantage. A higher value means more disadvantage. |
| `date_extracted` | date | Date_extracted | The night the file was extracted. Fields come from different update cycles, so not every field was refreshed on this date. |
| `support_classes` | string | Support_classes |  |

Key: `school_code`.

## Versions

- 2026-10-02: 2210 rows, 45 fields, sha256 2bc63daaf71d. https://publicdata.au/d/nsw-public-schools/v/2026-10-02/

Machine-readable: https://publicdata.au/d/nsw-public-schools/versions.json, https://publicdata.au/d/nsw-public-schools/changes.json, https://publicdata.au/d/nsw-public-schools/datapackage.json, https://publicdata.au/d/nsw-public-schools/schema.json, https://publicdata.au/d/nsw-public-schools/history.tar.zst

## Same subject, other publishers

- [Full-time equivalent enrolments in government schools by school type, South Australia](https://publicdata.au/d/sa-school-enrolments-by-type/) (SA)
- [Government primary school zones, South Australia](https://publicdata.au/d/sa-primary-school-zones/) (SA)
- [Government high school zones, South Australia](https://publicdata.au/d/sa-high-school-zones/) (SA)
- [School locations, Victoria](https://publicdata.au/d/vic-school-locations/) (Vic)
- [Public school term dates, New South Wales, 2019 to 2025](https://publicdata.au/d/nsw-school-term-dates/) (NSW)
- [Government primary school zones for 2027, Victoria](https://publicdata.au/d/vic-school-zones-primary-2027/) (Vic)
- [State school enrolments by school and year level, February census, Queensland 2015 to 2019](https://publicdata.au/d/qld-state-school-enrolments-february/) (Qld)
- [State and non-state school details, Queensland](https://publicdata.au/d/qld-school-details/) (Qld)
- [State school catchment areas, primary, Queensland](https://publicdata.au/d/qld-school-catchments-primary/) (Qld)
- [State school catchment areas, junior secondary, Queensland](https://publicdata.au/d/qld-school-catchments-junior-secondary/) (Qld)
- [State school catchment areas, senior secondary, Queensland](https://publicdata.au/d/qld-school-catchments-senior-secondary/) (Qld)
- [Child care services, children and hourly fees by area, Greater Sydney and Melbourne, 2012-13 to 2015-16](https://publicdata.au/d/au-child-care-services-by-sa3-2012-2016/) (Cth)

## Attribution and citation

NSW Department of Education, NSW Government, Master dataset: NSW government school locations and student enrolment numbers, sourced 3 October 2026, https://data.nsw.gov.au/data/dataset/nsw-education-nsw-public-schools-master-dataset, licensed under CC BY 4.0.

The licence requires the publisher's attribution. We ask that you also name publicdata.au and link to the version you used.

Plain text: NSW Department of Education, NSW Government, Master dataset: NSW government school locations and student enrolment numbers, sourced 3 October 2026, https://data.nsw.gov.au/data/dataset/nsw-education-nsw-public-schools-master-dataset, licensed under CC BY 4.0. Serialised and versioned by National Digital at publicdata.au, https://publicdata.au/d/nsw-public-schools/v/2026-10-02/

Harvard: NSW Department of Education (2026) NSW government schools, locations and enrolments, version 2026-10-02 [data set], CC BY 4.0, sourced 3 October 2026. Serialised and versioned by National Digital at publicdata.au. Available at: https://publicdata.au/d/nsw-public-schools/v/2026-10-02/

Markdown: Data: [NSW government schools, locations and enrolments](https://data.nsw.gov.au/data/dataset/nsw-education-nsw-public-schools-master-dataset), NSW Department of Education, [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), sourced 3 October 2026. Files: [publicdata.au](https://publicdata.au/d/nsw-public-schools/v/2026-10-02/) by [National Digital](https://nationaldigital.com.au/).

## Questions

### How do I download NSW government schools as a CSV file?

Open https://publicdata.au/d/nsw-public-schools/latest/data.csv. It redirects to the newest dated version, which is https://publicdata.au/d/nsw-public-schools/v/2026-10-02/data.csv today. The same path serves Excel, JSON, GeoJSON, Parquet, SQLite, DuckDB, GeoPackage, GeoParquet, NDJSON, Arrow. A dated URL never changes, so use it when the file must stay the same.

### Can I open NSW government schools in Excel?

Yes. https://publicdata.au/d/nsw-public-schools/v/2026-10-02/data.xlsx is a workbook with the 2,210 rows on a records sheet, the field list on a second sheet and the provenance on a third. The CSV also opens in Excel. https://publicdata.au/d/nsw-public-schools/v/2026-10-02/data.csv.gz is the CSV at about a tenth of the size.

### What years does NSW government schools cover?

The current version covers 1849 to 2025. Each release from Department of Education becomes a new dated version here, and earlier versions stay online.

### How often is NSW government schools updated?

Department of Education releases it monthly. This site checks the portal every week and adds a dated version when the file changes.

### Can I use NSW government schools commercially?

Yes. CC BY 4.0 allows commercial use, redistribution and derived works as long as the attribution is kept. The attribution string is in this page's side column and inside every file.

### Is this the official source for NSW government schools?

No. The publisher is NSW Department of Education, and its page is https://data.nsw.gov.au/data/dataset/nsw-education-nsw-public-schools-master-dataset. This site republishes the publisher's file with one change. The ICSEA value column is left out because ACARA licenses ICSEA for non-commercial educational use only, and the Department has been asked whether its CC BY 4.0 licence covers it. The publisher's own file includes that column, so it is not kept beside each version.

### What coordinate system does NSW government schools use?

Latitude and longitude in decimal degrees as published. The Department's data dictionary does not state the datum; GDA94 is the NSW Government's standard and differs from GDA2020 and WGS84 by under 2 metres. The GeoJSON file uses the same coordinates, which is what GeoJSON expects.

### What is in each row?

One NSW government school, with its code, name, address and contacts, the level of schooling and the kinds of classes it offers, its latest full-time equivalent enrolment, the share of Aboriginal and Torres Strait Islander students and of students from a language background other than English, the areas it falls in and its latitude and longitude.

### What does a null percentage mean?

The Department writes np where five or fewer students are counted, so the percentage is not published. Those cells are null here with a suppressed flag.

### Are the fields all current?

The file carries the date it was extracted, but the fields come from different collections. Enrolments are as at August of the latest year, language background as at March, and the index of disadvantage as at May, each updated once a year.

### Why is the ICSEA value not here?

The Department's file carries each school's ICSEA value, which it sources from ACARA. ACARA's terms for My School allow its content to be reproduced for non-commercial educational use only, so the column is left out until the Department confirms that its CC BY 4.0 licence covers it. Every other column is published.

## What this site did to the data

Cells were typed, headers were renamed to snake_case and the encoding was made UTF-8. Rows were left alone. Nothing is derived. The publisher's file is beside every version as `source.csv`.

## Improve this dataset

This page is built from [register/nsw-public-schools.yaml](https://github.com/National-Digital/publicdata.au/blob/main/register/nsw-public-schools.yaml) on GitHub, and a fix to it is welcome as a pull request. https://publicdata.au/contribute/ explains how.
