PIRB Online APIpirbonline.co.za ↗
Search the PIRB public register of ~9,000 licensed South African plumbers by name, registration number, company, or province via a single API endpoint.
What is the PIRB Online API?
The PIRB Online API provides access to the full Plumbing Industry Registration Board public register of approximately 9,000 licensed South African plumbers through a single search_plumbers endpoint. Query by plumber name, registration number, company name, province, or specialization and receive matching records with registration status, province, and affiliated company details in one structured response.
curl -X GET 'https://api.parse.bot/scraper/6443d6de-5f2f-4b4f-a5d9-8018e806e4d6/search_plumbers?query=Gareth' \ -H 'X-API-Key: $PARSE_API_KEY'
Search PIRB registered plumbers by name, registration number, company name, province, or specialization. The site loads all registered plumbers and filters client-side, so this endpoint fetches the full dataset (~9000 records) and applies the query filter. Each call makes one upstream request regardless of result count. Returns all matching records with registration details.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search term matched case-insensitively against plumber name, registration number, company name, province, and specialization fields. |
{
"type": "object",
"fields": {
"total": "integer count of matching results",
"results": "array of matching plumber records"
},
"sample": {
"data": {
"total": 24,
"results": [
{
"name": "Gareth Jearey",
"status": "Active",
"company": "Zipp Plumbers cc",
"province": "Kwazulu Natal",
"designation": "Licensed Plumber",
"expiry_date": "2027-01-28 00:00:00",
"specialization": "Solar, Heat Pump",
"regional_ranking": "1",
"registration_number": "1663/09"
}
]
},
"status": "success"
}
}About the PIRB Online API
What the API Returns
The search_plumbers endpoint returns a total integer count of matches alongside a results array of plumber records. Each record includes the plumber's name, registration number, current registration status, province, and associated company. The dataset covers the full PIRB public register — roughly 9,000 entries — and filters are applied server-side against all records in one call.
Querying the Register
The single required input parameter is query (string). It is matched case-insensitively across multiple fields simultaneously: plumber name, registration number, company name, province, and specialization. This means a search for "Cape Town" will surface plumbers in the Western Cape by province, while a search for a company name returns all plumbers affiliated with that firm. There is no need to specify which field to search — the match runs across all of them.
Scope and Freshness
Coverage is limited to South Africa. Only plumbers listed on the PIRB's publicly accessible verification register are included. The data reflects what PIRB publishes on their verification page at any given time; records for suspended, lapsed, or revoked registrations will appear if PIRB includes them in the public dataset, allowing you to check status before engaging a contractor.
Practical Uses
This API is well suited for contractor vetting workflows, compliance checks in property transactions, and directory services targeting the South African construction and property sector. Because the full dataset is returned and filtered in a single call, integrating it into background-check or onboarding pipelines is straightforward.
The PIRB Online API is a managed, monitored endpoint for pirbonline.co.za — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pirbonline.co.za changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official pirbonline.co.za API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Verify a plumber's registration status before approving a hire or contract
- Check whether a specific company's staff hold valid PIRB registrations
- Build a contractor directory filtered by province for a real estate or property management platform
- Automate compliance checks that require confirmed licensed tradespeople on South African construction projects
- Look up a plumber by registration number to confirm credentials match a submitted CV or invoice
- Filter plumbers by specialization to match the right trade category to a specific job type
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does PIRB provide an official developer API?+
What does the search_plumbers endpoint actually return for each record?+
results array includes the plumber's full name, registration number, current registration status, province, and associated company name. The total field gives the count of records matching your query.Can I retrieve plumbers filtered strictly by province without mixing other fields in the query?+
query parameter matches across all fields at once — name, registration number, company, province, and specialization — so there is no way to restrict the match to province alone in the current endpoint. A province-only query will still work but may return incidental matches from other fields. You can fork this API on Parse and revise it to add a dedicated province filter parameter.