Product & API Documentation
WorkClear supports both non-technical operations teams and developer integrations. Monitor licences for cancellations, suspensions, and expiry in the dashboard, or verify/search via API across 7 states with 779K licence records.
https://www.workclear.com.au/apiTest coverage first
Use web search and the status page to confirm the licence categories your workflow needs.
Try searchChoose an API tier
API access starts on Pro, with higher monthly call volume on Business and Enterprise.
Compare pricingBuild server-side
Keep API keys out of client code and call WorkClear from your own backend service.
AuthenticationQuick Start
Get your first API response in under two minutes.
Create an account
Sign up at workclear.com.au/signup — API access is available on paid plans.
Get your API key
Generate a key from your dashboard. Keys start with wc_live_.
Make your first request
Authentication
All API v1 endpoints require authentication. Pass your API key via the x-api-key request header.
Header Authentication (recommended)
Security tip: Never expose your API key in client-side code. Always call the WorkClear API from your backend server.
API Key Format
| Prefix | Description |
|---|---|
| wc_live_ | API key — requests count against your monthly quota |
Unauthenticated Endpoints
The following endpoints do not require an API key:
GET /api/status— System health check
Dashboard Workflows
Built for operations and compliance teams who need more than one-off checks. Search current licences, move the important ones into a watchlist, review risk changes on a schedule, and export evidence when a team needs an audit trail.
Monitor current licences continuously without building your own reminder workflow
The watchlist is designed for teams that need to keep checking the same set of licences over time. Instead of relying on spreadsheets or manual calendar reminders, it gives you a single place to review what changed, what is due soon, and what now needs attention.
- Add licences from dashboard search or bulk verification results in one click.
- Scheduled checks surface inactive, cancelled, surrendered, overdue, and expiring-soon items.
- Filters let your team focus quickly on attention-needed items, pending first checks, overdue reviews, or healthy/current licences.
- Email alerts and CSV exports make it easier to review changes, share evidence, and clean up the list in bulk.
Last checked
07 Mar, 06:04 AM
Next expected
08 Mar, 06:00 AM
Checks run
42 / 42
8 items selected
Status changed since last check
What gets flagged
Status changes, inactive or surrendered records, upcoming expiry, overdue checks, and licences that still need their first scheduled review.
How teams review it
Use built-in filters, risk-priority ordering, selection tools, and bulk actions to work through the highest-risk records first.
How you share it
Export filtered watchlist data to CSV with status, monitoring categories, attention reason, expiry timing, and check timestamps.
Search & Verify
Fast single-licence checks from the dashboard
- Search by licence number, name, or ABN.
- View status, licence class, state, and expiry in one result card.
- Save to history or add to Watchlist directly from the result.
Licence: QLD-DEMO-54898
State: QLD
Class: Builder - Open
Expiry: 31 Jan 2028
Bulk CSV
Upload contractor lists and verify them in batches
CSV processing pipeline
218 / 320 rows processed
Post-run actions
- Filter invalid/expiring rows
- Bulk-add selected rows to Watchlist
- Export CSV/PDF evidence for project teams
Exports
Produce shareable CSV and PDF verification outputs
Useful for audits, onboarding packs, and internal compliance sign-off.
Alerts & Audit Trail
Who changed, what changed, and when it was checked
Watchlist events include high-risk status changes (cancelled, suspended, revoked) with check timing for incident response and evidence trails.
Verify Licence
/api/v1/verifyLook up a licence by its licence number. Returns full details including holder name, status, expiry date, data source, and any published register metadata. Searches across all current coverage by default, or filter to a specific state and sector.
Canonical endpoint: /api/v1/verify. The legacy /api/verify alias remains available for compatibility.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| licence_number | string | Required | The licence number to verify |
| state | string | Optional | State code: QLD, NSW, VIC, SA, WA, ACT, NT, TAS. Searches all states if omitted. |
| sector | string | Optional | "contractor" (default) or "real_estate". Real-estate is currently live for QLD and WA. |
Request
Response
| Field | Type | Description |
|---|---|---|
| status | string | "active", "expired", "inactive", "unknown", "source_absent", or "not_found" |
| state | string | Australian state code (QLD, NSW, VIC, etc.) |
| licence_number | string | The licence number |
| licensee_name | string | Name of the licence holder |
| abn | string | null | Australian Business Number |
| licence_type | string | null | "Individual", "Business", "Person", etc. |
| licence_classes | array | List of authorised work classes |
| issue_date | string | null | Licence issue date (YYYY-MM-DD) |
| expiry_date | string | null | Licence expiry date (YYYY-MM-DD) |
| source | string | Data source (e.g. "QBCC Licensed Contractors Register") |
| valid_currently | boolean | False when expired, inactive, unknown, or absent from the latest source refresh |
| source_absent_at | string | null | When the record was first missing from a completed source refresh |
Search Licences
/api/v1/searchSearch for licences by name, ABN, or supported sector-specific fields. Supports state filtering, sector selection, and pagination.
Canonical endpoint: /api/v1/search. The legacy /api/search alias remains available for compatibility.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | Required | Search query — name, holder name, or ABN depending on sector |
| state | string | Optional | Filter by state (QLD, NSW, VIC, SA, WA, ACT, NT, TAS) |
| type | string | Optional | "name", "abn", or "licence_type" (auto-detected if omitted) |
| sector | string | Optional | "contractor" (default) or "real_estate". Real-estate is currently live for QLD and WA. |
| limit | integer | Optional | Max results to return (default: 10, max: 100) |
| include_absent | boolean | Optional | Set to "true" to include records absent from the latest source refresh. Hidden by default. |
Request
Response
Bulk Verify
/api/verify/bulkVerify multiple licence numbers in one request. Supports sector-aware batches, including QLD real-estate licence lists.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| licences | string[] | Required | Array of licence numbers to verify (max 100 per request) |
| state | string | Optional | Optional state filter. For current real-estate coverage, use QLD. |
| sector | string | Optional | "contractor" (default) or "real_estate". |
Request
Response
Data Coverage
/api/v1/coverageReturns data coverage information — which states are available, record counts, data sources, and when data was last updated.
Request
Response
Current Coverage
| State | Records | Source | Status |
|---|---|---|---|
| QLD | 120K+ | QBCC | Live |
| NSW | 262K+ | NSW Fair Trading | Live |
| VIC | 184K+ | VBA / ESV | Live |
| SA | — | Consumer & Business Services | Coming Soon |
| WA | 96K+ | WA Building Commission | Live |
| ACT | 23K+ | ACT Construction Occupations | Live |
| NT | 13K+ | NT Licensing | Live |
| TAS | 13K+ | CBOS Tasmania | Live |
Health Check
/api/healthNo auth requiredMinimal service health endpoint. Use this for uptime probes and infrastructure monitoring. This is not a licence lookup endpoint.
Request
Response
System Status
/api/statusNo auth requiredPublic system and data-status snapshot. Returns monitored state health and record coverage. No authentication required. For simple uptime checks, use /api/health.
Request
Response
See real-time status on our Status Page.
Check Licence Status
/api/v1/statusQuick validity check — returns whether a licence is currently valid with a simple boolean is_valid flag. Lighter response than the full verify endpoint.
Naming note: /api/status is platform status, while /api/v1/status is licence status.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| licence_number | string | Required | The contractor licence number |
| state | string | Optional | State code (QLD, NSW, VIC, etc.). Recommended for accuracy. |
Request
Response
Rate Limits
API calls are rate-limited based on your plan. Monthly API limits reset on the 1st of each month. Web lookups on workclear.com.au are free and unlimited for all plans.
| Plan | API Calls | Price | Best For |
|---|---|---|---|
| Free | Web only (no API access) | $0 | Manual lookups |
| Pro | 1,000 / month | $29/mo | Growing businesses |
| Business | 10,000 / month | $99/mo | High-volume applications |
| Enterprise | Unlimited | Custom | Custom SLAs & support |
Rate Limit Headers
When you exceed your rate limit, the API returns a 429 status with these headers:
| Header | Description |
|---|---|
| X-RateLimit-Limit | Your monthly limit |
| X-RateLimit-Remaining | Remaining calls this month |
| Retry-After | Seconds until the monthly limit can be retried |
Need higher limits? Compare plans or contact us for Enterprise pricing.
Error Codes
The API uses standard HTTP status codes. All error responses include a JSON body with an error field.
| Code | Meaning | What to Do |
|---|---|---|
| 200 | Success | Request succeeded. Check the response body — a 200 with "status": "not_found" means no licence was matched. |
| 400 | Bad Request | Invalid or missing parameters. Check that licence_number is provided and state is a valid code. |
| 401 | Unauthorized | Missing or invalid API key. Verify your x-api-key header. |
| 429 | Rate Limited | You've hit your monthly limit. Upgrade your plan or wait for the next monthly reset. |
| 500 | Server Error | Something went wrong on our side. Retry after a moment. If it persists, contact support. |
Error Response Format
Python Integration
Use the standard requestslibrary to integrate WorkClear into any Python application. Here's a ready-to-use client class:
Official Python SDK coming soon. Install via pip install workclear — we'll announce it when it's ready.
JavaScript / Node Integration
Works with Node.js, Deno, Bun, or any runtime with fetchsupport. Here's a reusable client class:
Official npm package coming soon. Install via npm install @workclear/sdk — we'll announce it when it's ready.
Webhooks
Coming Soon
Get notified when a watched licence status changes — expiry alerts, suspension notifications, and renewal confirmations delivered to your endpoint.
Interested? Let us know and we'll notify you when it's live.
Ready to build licence checks into your workflow?
Start with free web search, then choose a paid plan when you need API access, bulk checks, monitoring, or reusable evidence.