PlateAPI vs Scraping State Government Rego Portals
If you need Australian vehicle registration data in your application, there are two realistic options: use an API like PlateAPI, or scrape the state government registration check portals yourself. Both get you vehicle data from a plate number, but the trade-offs are significant. This is a practical comparison.
The two approaches
| PlateAPI | Scraping state portals | |
|---|---|---|
| Coverage | All 8 states and territories in one endpoint | You build and maintain 8 separate scrapers |
| Setup time | Minutes -- sign up, get a key, make a GET request | Weeks to months, depending on scraping experience |
| Response format | Structured JSON (year range, make, model, body, engine) | Varies per portal -- HTML parsing, inconsistent fields |
| Response time | Under 3 seconds, typically 1.5-2.5 seconds | 5-15 seconds per portal, plus CAPTCHA solving time |
| Reliability | Managed uptime, status page, health endpoint | Breaks when any portal changes its HTML or adds bot protection |
| Maintenance | None -- API updates are handled by PlateAPI | Ongoing -- portal changes, CAPTCHA updates, IP blocks |
| Cost | Free tier (20/month), paid from A$29/month | Free to call, but developer time and infrastructure costs add up |
| Legal risk | None -- PlateAPI is a licensed data service | Most state portal terms of use prohibit automated access |
Coverage: one endpoint vs eight scrapers
Australia has eight separate state and territory registration systems: NSW (Service NSW), VIC (VicRoads), QLD (TMR), SA (EzyReg), WA (DoT), TAS (Transport Tasmania), NT (MVR), and ACT (Access Canberra). Each one has a different web interface, different form fields, different response formats, and different bot protection.
PlateAPI covers all eight in a single GET request. You pass the plate and the state code, and the response format is identical regardless of which state the vehicle is registered in. With scraping, you need to build, test, and maintain a separate scraper for each portal -- and any one of them can break independently when the government updates its website.
Reliability and maintenance
This is where scraping costs the most in practice. Government portals are not built for automated access. They change without notice -- a redesigned form, a new CAPTCHA provider, an updated session flow. When that happens, your scraper breaks and your application stops identifying vehicles until you fix it.
PlateAPI handles this upstream. When a data source changes, PlateAPI's infrastructure adapts and your API calls keep returning the same structured JSON. The status page tracks uptime, and the /api/v1/health endpoint is available for your own monitoring.
CAPTCHAs and bot protection
Most state rego portals use CAPTCHAs or other bot detection to prevent automated lookups. Solving CAPTCHAs programmatically means either paying a CAPTCHA-solving service (adding cost and latency) or using browser automation tools like Puppeteer or Playwright (adding infrastructure complexity and memory usage). Either way, you are working against the portal's intended use.
PlateAPI does not require CAPTCHA solving. You make a standard HTTP GET request with your API key and receive a JSON response.
Data consistency
Each state portal returns different fields in different formats. NSW might give you a make and model as separate fields; another state might return a single description string. Some portals include the body type, others do not. Some return a model year, others return an expiry date but no vehicle details at all.
PlateAPI normalises this into a consistent JSON structure across all states: year_range, make, model, body, engine, and description. If you pass detailed=true, you also get chassis codes, drivetrain, fuel type, engine code, and power output where available. One response format, regardless of which state the plate belongs to.
Legal considerations
Most state government rego check portals include terms of use that prohibit automated access, scraping, or commercial use of the data. Whether or how strictly this is enforced varies, but building a commercial product on top of scraping puts you in a grey area.
PlateAPI is a licensed data service. Using it for your application is straightforward -- you are calling an API you pay for, with clear terms of service.
Cost comparison
Scraping is "free" in the sense that the portals do not charge per lookup. But the real cost is developer time: building 8 scrapers, handling CAPTCHAs, normalising data, running headless browser infrastructure, and maintaining all of it when portals change. For a team billing developer time at typical Australian rates, the first portal break that takes a day to fix costs more than a year of PlateAPI's Starter plan.
PlateAPI's pricing starts at $0 (20 lookups/month, no credit card) for evaluation. The Starter plan at A$29/month covers 400 lookups -- enough for most small to mid-size auto parts stores and workshop tools. Growth (A$89/month) and Enterprise (A$549/month) tiers are available for higher volumes.
When scraping might make sense
To be fair, there are narrow cases where scraping could be the right choice:
- You only need one state and your volume is very low
- You need data fields that no API provides (like CTP insurer from the NSW portal)
- You are building a research tool for personal use, not a commercial product
For anything that needs to work reliably across multiple states, serve paying customers, or be maintained by a team that has other things to build -- an API is the practical choice.
Getting started
Create a free account and test with real plates in minutes. The live demo shows the data you get back, the API reference covers every endpoint and parameter, and the sandbox plate TEST123 works for integration builds and CI without consuming quota.
PlateAPI turns Australian number plates into structured vehicle data -- one REST endpoint, all eight states, free tier included.