---
title: Migration Program outcome by stream and citizenship, Australia, 1996-97 onwards
resource: https://publicdata.au/d/au-migration-program-by-citizenship/
publisher: Department of Home Affairs
licence: CC BY 3.0 AU
licence_url: https://creativecommons.org/licenses/by/3.0/au/
version: 2025-11-10
rows: 16641
fields: 5
source: https://data.gov.au/data/dataset/2fe5e2a9-8a3d-4dcf-baec-c5147d953150/resource/b59a15df-86ea-4c4c-95be-4dd9fc9f8ac4/download/2024-25-historical-migration-statistics.xlsx
source_sha256: 0f8ed4639e9e252c4658d58858a1d1c3daf15a368bc1b686b60255c9e71578dd
language: en-AU
operator: National Digital
not_endorsed: true
---

# Migration Program outcome by stream and citizenship, Australia, 1996-97 onwards

Permanent visas granted under the Migration Program each financial year since 1996-97, by stream and country of citizenship.

Published by Department of Home Affairs under CC BY 3.0 AU and republished here in other formats, with cells typed and suppressed values made null. Department of Home Affairs has not endorsed this site.

Also called: Australian immigration statistics by country, Migration Program outcome by citizenship, Permanent visas granted by nationality.

## Download

Latest version, redirects to `https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/`:

- csv: https://publicdata.au/d/au-migration-program-by-citizenship/latest/data.csv (1.0 MB)
- xlsx: https://publicdata.au/d/au-migration-program-by-citizenship/latest/data.xlsx (462 KB)
- json: https://publicdata.au/d/au-migration-program-by-citizenship/latest/data.json (2.1 MB)
- parquet: https://publicdata.au/d/au-migration-program-by-citizenship/latest/data.parquet (39 KB)
- sqlite: https://publicdata.au/d/au-migration-program-by-citizenship/latest/data.sqlite (2.0 MB)
- duckdb: https://publicdata.au/d/au-migration-program-by-citizenship/latest/data.duckdb (300 KB)
- ndjson: https://publicdata.au/d/au-migration-program-by-citizenship/latest/data.ndjson (2.1 MB)
- arrow: https://publicdata.au/d/au-migration-program-by-citizenship/latest/data.arrow (224 KB)
- csv.gz: https://publicdata.au/d/au-migration-program-by-citizenship/latest/data.csv.gz (93 KB)

Pinned version 2025-11-10: `https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/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/au-migration-program-by-citizenship/rows. Counts and sums: https://publicdata.au/api/v1/datasets/au-migration-program-by-citizenship/aggregate.

- Rows: https://publicdata.au/api/v1/datasets/au-migration-program-by-citizenship/rows?year=eq.2024%E2%80%9325&stream=eq.Skill%20stream&citizenship=neq.Skill%20stream%20total&limit=5
- Aggregate: https://publicdata.au/api/v1/datasets/au-migration-program-by-citizenship/aggregate?group=citizenship&metric=sum.places&year=eq.2024%E2%80%9325&stream=eq.Skill%20stream&citizenship=neq.Skill%20stream%20total

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/au-migration-program-by-citizenship/openapi.json

## Explore

Charts and dashboards in the browser: https://publicdata.au/d/au-migration-program-by-citizenship/explore/. A dashboard can be shared as a link or embedded.

## Smaller files

- by `table`: https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/by/table/index.json lists 2 files

## Fields

| field | type | publisher's header | note |
|---|---|---|---|
| `table` | string | (sheet) | 3.2 for 1996-97 to 2016-17, and 3.3 from 2017-18. |
| `year` | string | (row header 1) |  |
| `stream` | string | (column header 1) |  |
| `citizenship` | string | (column header 2) |  |
| `places` | integer | (cell) |  |

Key: `table, year, stream, citizenship`.

## Versions

- 2025-11-10: 16641 rows, 5 fields, sha256 0f8ed4639e9e. https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/

Machine-readable: https://publicdata.au/d/au-migration-program-by-citizenship/versions.json, https://publicdata.au/d/au-migration-program-by-citizenship/changes.json, https://publicdata.au/d/au-migration-program-by-citizenship/datapackage.json, https://publicdata.au/d/au-migration-program-by-citizenship/schema.json, https://publicdata.au/d/au-migration-program-by-citizenship/history.tar.zst

## Part of Historical Migration Statistics

- [Migration Program outcome by stream, Australia, 1984-85 onwards](https://publicdata.au/d/au-migration-program-outcome/)
- [Humanitarian Program visa grants, Australia, 1977-78 onwards](https://publicdata.au/d/au-humanitarian-program-grants/)
- [Settler arrivals by country of birth, Australia, 1959 to 1996](https://publicdata.au/d/au-settler-arrivals-by-country/)
- [Permanent additions by country of birth, Australia, 1996-97 to 2016-17](https://publicdata.au/d/au-permanent-additions-by-country/)

## Same subject, other publishers

- [Interstate and overseas driver licences transferred to the ACT](https://publicdata.au/d/act-licences-transferred-to-act/) (ACT)
- [Driver licences transferred interstate, ACT](https://publicdata.au/d/act-licences-transferred-interstate/) (ACT)
- [Driver licences transferred to Victoria each quarter, by origin](https://publicdata.au/d/vic-driver-licence-transfers-to-victoria/) (Vic)
- [Driver licences transferred from Victoria each quarter](https://publicdata.au/d/vic-driver-licence-transfers-from-victoria/) (Vic)

## Attribution and citation

Department of Home Affairs, Australian Government, Historical Migration Statistics, sourced 29 September 2026, https://data.gov.au/data/dataset/historical-migration-statistics, licensed under CC BY 3.0 AU.

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

Plain text: Department of Home Affairs, Australian Government, Historical Migration Statistics, sourced 29 September 2026, https://data.gov.au/data/dataset/historical-migration-statistics, licensed under CC BY 3.0 AU. Serialised and versioned by National Digital at publicdata.au, https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/

Harvard: Department of Home Affairs (2025) Migration Program outcome by stream and citizenship, Australia, 1996-97 onwards, version 2025-11-10 [data set], CC BY 3.0 AU, sourced 29 September 2026. Serialised and versioned by National Digital at publicdata.au. Available at: https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/

Markdown: Data: [Historical Migration Statistics](https://data.gov.au/data/dataset/historical-migration-statistics), Department of Home Affairs, [CC BY 3.0 AU](https://creativecommons.org/licenses/by/3.0/au/), sourced 29 September 2026. Files: [publicdata.au](https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/) by [National Digital](https://nationaldigital.com.au/).

## Questions

### How do I download Migration Program outcome by stream and citizenship, Australia as a CSV file?

Open https://publicdata.au/d/au-migration-program-by-citizenship/latest/data.csv. It redirects to the newest dated version, which is https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/data.csv today. The same path serves Excel, JSON, Parquet, SQLite, DuckDB, NDJSON, Arrow. A dated URL never changes, so use it when the file must stay the same.

### Can I open Migration Program outcome by stream and citizenship, Australia in Excel?

Yes. https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/data.xlsx is a workbook with the 16,641 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/au-migration-program-by-citizenship/v/2025-11-10/data.csv.gz is the CSV at about a tenth of the size.

### What years does Migration Program outcome by stream and citizenship, Australia cover?

The current version covers the years since 1996. Each release from Home Affairs becomes a new dated version here, and earlier versions stay online.

### How often is Migration Program outcome by stream and citizenship, Australia updated?

Home Affairs releases it yearly. This site checks the portal every week and adds a dated version when the file changes.

### Can I use Migration Program outcome by stream and citizenship, Australia commercially?

Yes. CC BY 3.0 AU 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 Migration Program outcome by stream and citizenship, Australia?

No. The publisher is Department of Home Affairs, and its page is https://data.gov.au/data/dataset/historical-migration-statistics. This site republishes the publisher's file without changing its content. The original sits beside every version as source.xlsx with its SHA-256, so the two can be compared.

### How do I get only the rows for one table?

Every version has one JSON file per value of table, 2 files in the current version, listed with row counts at https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/by/table/index.json. For example https://publicdata.au/d/au-migration-program-by-citizenship/v/2025-11-10/by/table/3-2.json holds the 12,537 rows where table is 3.2.

### Why are there two tables?

The publisher reports a break in the series from 2017-18 because of system changes and reporting conventions. Table 3.2 covers 1996-97 to 2016-17 and table 3.3 covers 2017-18 onwards. The table column says which one a row comes from.

### What does a suppressed value mean?

The publisher shows fewer than 5 visas as "<5", and a small negative figure as "> -5". Each is kept here as a null value with a suppressed flag, and never as 0 or 5.

## 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.xlsx`.

## Improve this dataset

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