DEV Community

Russell Yapp
Russell Yapp

Posted on

Australian education providers (CRICOS) as clean rows, with the names that look like people left out

Australia keeps a public register of education providers that may enrol overseas students: the Commonwealth Register of Institutions and Courses for Overseas Students, known as CRICOS. The Department of Education publishes it on data.gov.au as CSV files under the Creative Commons Attribution 2.5 Australia licence (CC BY 2.5 AU). The files are open, but they come as separate tables with long address blocks, and a provider can be a company, a university, a TAFE or a sole trader.

I built an Apify Actor that reads two of the files, Institutions and Courses, and returns one fixed row per provider: CRICOS Register Lookup (Australia). It is ready for a spreadsheet, a script or an AI agent.

Not affiliated with or endorsed by the Department of Education.

What a row holds

One row per provider, in a fixed field order:

  • providerCode, the CRICOS provider code (five digits and a capital letter, for example 00001K);
  • providerName, when the name rule shows it (see below), and nameWithheld, which says whether the name is left out;
  • institutionType as the register spells it (for example Government or Private);
  • state, postcode and city of the provider's postal address;
  • institutionCapacity, as a whole number;
  • courseCount (rows in the Courses file for the provider, expired courses included) and activeCourseCount (the ones the register marks as not expired);
  • website, when neither name is left out;
  • snapshotDate, from the Last-Modified header of the Institutions file the run read.

There are no postal address lines, location names, contact details or course fees in the output. The Institutions file does contain addresses and websites; the Actor reads it in memory for the run and returns only the fields above.

Two modes

search (the default) returns the providers that pass your filters, sorted by provider code. Filters are states (ACT, NSW, NT, QLD, SA, TAS, VIC, WA), institutionTypes, up to 50 postcodes, and nameContains (2 to 80 characters, matched against the name in the output). maxItems caps the rows returned: 100 by default through the API, 10 in the Console form, at most 2,000.

lookup takes 1 to 20 provider codes. Codes that are not in the register are listed in the run summary and the rest are returned.

The name rule

Some providers are sole traders, and a register of businesses can still carry a person's name. So the Actor does not simply print every name. It leaves a name out unless the name rule finds an organisation cue and no person shape. Where the name is left out, the row still has the provider code, type, state, postcode and city, and nameWithheld is true.

The rule is a pattern test, not a judgement about any person. It can be wrong both ways: it can let through a college named after a person, and it leaves out a name made of what looks like a person's name plus a word such as College, even when it belongs to an organisation. A search by name only matches the names that are shown, so it cannot be used to find a name that was left out.

The share left out is about 24% of providers (365 of 1,547, measured 28 October 2026). A row whose name is left out still gives the postal state, postcode and city, which for a sole trader can be a home locality. If you appear in the register and want your entry left out, the privacy page on the Yappman Data website describes how to ask.

Price

$0.002 per row returned, which is $2.00 per 1,000 rows, flat on every Apify plan. There is no start fee and no run fee. Refused, empty and source-problem runs are not charged. The run's maximum charge stops it at the last row it can pay for.

When not to use it

Do not use it to decide whether a provider may enrol a student, or as proof of a provider's registration. The register is the authority; the Actor returns a dated copy of two of its files. A provider that is missing from a result has not necessarily closed.

Source and credit

The data is CC BY 2.5 AU. The Actor's output carries this line:

  • Contains data from the Commonwealth Register of Institutions and Courses for Overseas Students (CRICOS), Department of Education, Australian Government, licensed under Creative Commons Attribution 2.5 Australia (CC BY 2.5 AU). This Actor filters and reshapes the data; changes were made.

It makes two requests to data.gov.au per run, builds them itself (the input takes no URLs, headers or query strings) and stops if the source answers with a rate-limit refusal.

The Store page is here: yappman/cricos-register. Ratings and reviews there help other buyers judge whether this Actor fits their use.

Top comments (2)

Collapse
 
0xgollum profile image
0xGollum •

Withholding names that look like people is a nice touch for a public register: sole traders are exactly where open data turns into personal data. Curious about the edge cases of the rule: companies named after their founders ("Smith & Jones Pty Ltd") or trading names that read like first names. Do you lean towards withholding when in doubt, and do you expose a reason field so a buyer can tell "withheld by rule" from "missing in source"?

Collapse
 
yappman profile image
Russell Yapp •

Yes, withhold is the default: a name is shown only if the rule finds an organisation cue and no person shape, so anything uncertain is left out. It's a pattern test and can be wrong both ways, so a company named after its founder can be withheld, the same way a person's name plus a word like College is. At the moment the row only says whether the name was withheld (nameWithheld), not why, so a buyer can't tell the two cases apart. A reason code is a useful suggestion, thanks.