Authority file
The ask
This document is written for somebody inside an issuing authority who has been asked to help and has no budget, no project and no appetite for an integration. It asks for one file.
You are not asked to build an API, to host a service, to run a key ceremony, to sign anything legal, to enter an agreement with Revow or with anybody else, or to collect anything new from your licensees. Tier A is an export you probably already produce, put at an address that does not change.
Tier A: the file
A CSV at a stable HTTPS address on a domain the authority already controls.
licence,status,trade,legal_name,updated
4102938,active,real-estate-agent,Northpier Property Pty Ltd,2026-11-08
4102955,suspended,real-estate-agent,Calloway Group Pty Ltd,2026-11-08
4103011,active,auctioneer,Brightwater Holdings Pty Ltd,2026-11-08
4103047,active,resident-letting-agent,Seabright Letting Pty Ltd,2026-11-08| Column | Required | Notes |
|---|---|---|
| licence | Yes | Exactly as the authority writes it, including letters and leading zeros. |
| status | Yes | One of active, suspended, expired, cancelled. Other values are passed through unchanged. |
| trade | No | Where one file covers several licence classes. |
| legal_name | No | The name the licence is held under. Improves matching considerably. |
| updated | No | The date this row last changed. |
Extra columns are allowed and ignored. Personal data must not appear: no home addresses, no dates of birth, no contact details. Publishing less is always acceptable.
The manifest
A small JSON file beside the CSV saying what it covers and how often it changes, so a consumer knows when a file is stale rather than guessing.
{
"rvw": 5,
"tier": "B",
"authority": "au-qld-fair-trading",
"jurisdiction": "AU-QLD",
"trades": [
"real-estate-agent",
"auctioneer",
"resident-letting-agent"
],
"file": "https://revow.org/examples/licences.csv",
"digest": "sha256:a051281d9aae92f188fd079e0261922ceac68afe614a0a10b3084428d83357ed",
"cadence": "daily",
"updated": "2026-11-08T22:00:00Z",
"key": "0xc936d60f4e0087b0feffa96400fcac68474fc97f"
}Tier B: sign it
Tier A is forgeable by anybody who can intercept the fetch or mirror the file somewhere convincing. Signing removes that, and the whole cost is one key and one DNS record on a domain the authority already owns.
_revow.example.qld.gov.au. 3600 IN TXT "v=revow1; key=0xc936d60f4e0087b0feffa96400fcac68474fc97f"The signature covers the manifest, and the manifest carries the digest of the CSV. Rotating the key is a DNS change. There is no registration step and nothing to tell Revow about.
Tier C: the column that changes everything
Tier C adds one optional column, key, holding an address the licensee supplied. With it, the authority is directly asserting that this licence and this key belong together, which is the only thing in the whole model that closes the copied number problem.
It is also the only tier that asks the authority for something new: a field at renewal, or a form a licensee can submit once. Everything above works without it, and this document is ordered so that an authority can stop at any tier and still have helped.
What a consumer does with the file
- Fetch the manifest
Over HTTPS, from the address the authority published.
- Check the signature where there is one
Resolve the key from DNS at the authority domain. Unsigned is tier A and is reported as tier A.
- Fetch and hash the CSV
Compare with the digest in the manifest. A mismatch is a failure, not a warning.
- Report the age
The reader is told when the authority last updated the file, in plain words, not shown a tick.
Status of this ask
No authority has published a file under this specification. 54 registers across 37 jurisdictions have been surveyed and the current state of each is on the register index. If you work at one and want to try, the contact page reaches a person.