Asn APIliv.asn.au ↗
Search the Law Institute of Victoria's lawyer referral directory. Get Victorian law firm names, addresses, phone, email, practice areas, and languages via 2 endpoints.
What is the Asn API?
The LIV Find a Lawyer API exposes 2 endpoints for querying the Law Institute of Victoria's public referral directory, covering law firms across Victoria, Australia. The search_lawyers endpoint returns firm-level records with contact details, practice areas, accredited specialisations, and languages spoken, filterable by postcode, area of law category code, and firm name. A companion list_areas_of_law endpoint enumerates every category code accepted by the search filter.
curl -X GET 'https://api.parse.bot/scraper/5a69f77a-3525-4b07-82cf-e14fa167c268/search_lawyers?limit=5&postcode=3000&firm_name=Aitken&area_of_law=CB' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace liv-asn-au-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: LIV Find Your Lawyer — search Victoria's lawyer directory."""
from parse_apis.liv_find_your_lawyer_referral_service_api import LIV, InvalidInput
client = LIV()
# List available areas of law to discover category codes.
for area in client.areaoflaws.list(limit=5):
print(area.category_code, area.category_name, "-", area.sub_category_name)
# Search for Criminal Law firms in Melbourne CBD (postcode 3000).
firm = client.firms.search(postcode="3000", area_of_law="CR", limit=1).first()
if firm:
print(firm.firm_name, firm.phone, firm.suburb, firm.accredited_speciality)
# Search by firm name across all postcodes and areas.
try:
for f in client.firms.search(firm_name="Aitken", limit=3):
print(f.firm_name, f.email, f.languages)
except InvalidInput as exc:
print(f"Invalid input: {exc}")
print("exercised: areaoflaws.list / firms.search (by location+area, by name) / InvalidInput catch")
Search the LIV lawyer referral directory. Supports filtering by postcode, area of law category code, and firm name. Returns law firm details including contact information, practice areas, languages spoken, and accredited specialisations. Results are randomised by the upstream service. All filter parameters are optional; omitting all returns the full directory (capped by limit).
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return. Must be between 1 and 500. |
| postcode | string | Australian postcode(s) to filter by. Supports comma-separated list for multiple postcodes (e.g. '3000' or '3000,3001,3002'). When omitted, no location filter is applied. |
| firm_name | string | Firm name or partial name to search for (e.g. 'Aitken'). Case-insensitive partial match. When omitted, no firm name filter is applied. |
| area_of_law | string | Area of law category code to filter by (e.g. 'CR' for Criminal Law, 'FA' for Family Law, 'PR' for Property Law). Use the list_areas_of_law endpoint to get available codes. When omitted, all areas are returned. |
{
"type": "object",
"fields": {
"results": "array of law firm objects with id, firm_name, phone, email, website, full_address, street, suburb, postcode, area_of_law_codes, accredited_speciality, languages, referral_contact, referral_email, referral_phone, notes",
"total_count": "integer — total number of matching firms"
},
"sample": {
"data": {
"results": [
{
"id": "200029",
"email": "[email protected]",
"notes": "",
"phone": "+1 (555) 012-3456",
"street": "Level 28, 140 William Street",
"suburb": "Melbourne",
"website": "http://www.aitken.com.au",
"postcode": "3000",
"firm_name": "Aitken Partners",
"languages": "Cantonese,Mandarin,Hokkian,Malay,Greek,Italian",
"contact_key": "3f1ea590-944c-41f2-bc86-83292a633545",
"full_address": "Level 28 140 William Street Melbourne, 3000 Australia",
"referral_email": "[email protected]",
"referral_phone": "",
"referral_contact": "John Doe Jane Doe",
"area_of_law_codes": "AD05,AD08,AD99,BA01,BA02,CB01",
"accredited_speciality": "Commercial Litigation - Property Law - Wills & Estates"
}
],
"total_count": 106
},
"status": "success"
}
}About the Asn API
What the API returns
The search_lawyers endpoint returns an array of law firm objects alongside a total_count integer. Each firm record can include the firm name, physical address, phone number, email address, website URL, practice areas, languages spoken by staff, and any accredited specialisations held by the firm. You can pass up to 500 results per call using the limit parameter, filter by one or more Australian postcodes (comma-separated), filter by a partial or full firm name, and narrow results to a specific area of law using a category code such as CR (Criminal Law), FA (Family Law), or PR (Property Law).
Area of law codes
Before searching, use list_areas_of_law to retrieve the full taxonomy. It returns an areas_of_law array where each element carries a category_code, category_name, and sub_category_name. Pass a category_code directly to the area_of_law parameter in search_lawyers to filter by that practice area. This endpoint takes no input parameters and reflects whatever categories the LIV directory currently recognises.
Coverage and behaviour
The directory covers law firms participating in the LIV Find Your Lawyer referral service in Victoria. Results from search_lawyers are randomised on each call — the same query run twice may return the same firms in a different order. Postcode filtering accepts a comma-separated string for multi-suburb searches (e.g. '3000,3001,3002'), making it straightforward to cover a geographic radius by supplying multiple codes. Firm name matching is case-insensitive and partial, so a query for 'Aitken' will match any firm whose name contains that string.
The Asn API is a managed, monitored endpoint for liv.asn.au — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when liv.asn.au 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 liv.asn.au 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?+
- Build a postcode-based lawyer finder that surfaces local Victorian firms with phone and email contact details.
- Populate a legal directory app with practice area taxonomy from
list_areas_of_lawfor guided search navigation. - Cross-reference LIV accredited specialisations against firm names to identify specialists in a given field.
- Filter firms by language spoken to match clients with non-English-speaking-background legal services.
- Aggregate firm website URLs for a Victorian legal sector research dataset.
- Monitor which firms appear under a specific area of law category across multiple Victorian postcodes.
- Verify a law firm's LIV directory listing, address, and contact details programmatically.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the Law Institute of Victoria publish an official developer API for this directory?+
What does `search_lawyers` return, and how do filters interact?+
total_count. The postcode, area_of_law, and firm_name parameters are all optional and can be combined in a single request. Omitting firm_name applies no name filter; passing a partial string matches any firm whose name contains it. Results are randomised per call, so repeated identical queries may return firms in a different order.Is individual solicitor-level data (e.g. individual lawyer profiles, bar numbers) included?+
Does the API cover law firms outside Victoria or outside the LIV referral service?+
How should I discover valid `area_of_law` category codes before searching?+
list_areas_of_law first. It returns the complete set of category_code values (e.g. CR, FA, PR) along with their human-readable category_name and sub_category_name. Use those codes directly as the area_of_law parameter in search_lawyers. Passing an unrecognised code will not match any results.