sra.org.uk APIwww.sra.org.uk ↗
Search and retrieve UK solicitor records from the SRA register. Look up by name, SRA number, or enumerate the full directory with authorisation and regulatory data.
curl -X GET 'https://api.parse.bot/scraper/64700c10-9b35-4b89-9f8d-5eaa99353f24/search_persons?query=smith&page_size=10' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for solicitors (persons) in the SRA register. The search matches exact words within names (case-insensitive). Returns paginated results from up to 1000 matches per query. The SRA backend may be slow for very common surnames (e.g. smith, jones) with large result sets.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-indexed) |
| queryrequired | string | Name word to search for (min 2 chars). Matches exact words in solicitor names. |
| page_size | integer | Results per page (1-500) |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"source": "string, always 'sra_solicitors_register'",
"results": "array of {full_name, sra_number, profile_url, status, workplace}",
"next_page": "boolean, whether more results are available on the next page",
"page_size": "integer, results per page",
"query_prefix": "string, the search query used",
"capped_at_1000": "boolean, whether the SRA caps results at 1000",
"total_matching": "integer, total results the SRA reports for this query",
"results_fetched": "integer, number of results actually retrieved from upstream"
},
"sample": {
"data": {
"page": 1,
"source": "sra_solicitors_register",
"results": [
{
"status": "SRA-regulated solicitor",
"full_name": "Akhter Husain Patel",
"workplace": "LEX LEGAL UK LIMITED",
"sra_number": "297428",
"profile_url": "https://www.sra.org.uk/consumers/register/person/?sraNumber=297428"
}
],
"next_page": true,
"page_size": 10,
"query_prefix": "patel",
"capped_at_1000": false,
"total_matching": 791,
"results_fetched": 60
},
"status": "success"
}
}About the sra.org.uk API
The SRA Solicitors Register API provides 3 endpoints for querying the UK Solicitors Regulation Authority register at sra.org.uk. Use search_persons to find solicitors by name word, get_person_detail to retrieve authorisation status, type of lawyer, and regulatory record for a specific SRA number, or enumerate_persons to systematically walk the register by common first names and surnames.
What the API covers
The API surfaces the public register maintained by the Solicitors Regulation Authority (SRA), which lists individuals authorised to practise as solicitors in England and Wales. Each solicitor record includes full_name, sra_number, profile_url, status, and workplace at the list level, with authorisation, type_of_lawyer, regulator, and regulatory_record available in the detail endpoint.
Searching and pagination
search_persons accepts a query string (minimum 2 characters) and matches exact words within solicitor names, case-insensitively. Results are paginated via page and page_size (up to 500 per page), and the total_matching field tells you how many records the SRA reports for that query. The SRA caps result sets at 1000 records, reflected in the capped_at_1000 boolean — queries on very common surnames like "smith" or "jones" will hit this cap, and results_fetched may be lower than total_matching. Response time for high-frequency surnames can be slower due to the size of those result sets.
Retrieving individual records
get_person_detail takes a single sra_number and returns the full profile for that solicitor: authorisation details, type_of_lawyer, the regulator body, and regulatory_record. This is the endpoint to use for verification workflows where you already have an SRA number from a search result or an external source.
Systematic enumeration
enumerate_persons is designed for bulk directory traversal. Supply a common name word — first names like "john" or "priya", surnames like "patel" or "williams" — and page through up to 1000 results per name. Because the 1000-record cap means some names return partial sets, the status field distinguishes complete (all matches returned) from capped (results truncated). Deduplicating across calls by sra_number is necessary when a solicitor's name contains multiple common words.
- Verify a solicitor's authorisation status and regulator before instructing them on a matter
- Build a searchable UK solicitor directory for a legal services platform using name-word search
- Cross-reference
sra_numbervalues against internal CRM records to confirm regulated status - Enumerate the SRA register systematically by surname to build a research dataset of practising solicitors
- Retrieve
regulatory_recorddata to flag solicitors with disciplinary history in compliance checks - Populate firm or individual profiles with
type_of_lawyerandworkplacefields from live register data - Monitor changes to a specific solicitor's
authorisationstatus by pollingget_person_detailon a schedule
| 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 | 250 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 SRA provide an official developer API for the register?+
What does `get_person_detail` return beyond what appears in search results?+
search_persons and enumerate_persons return full_name, sra_number, profile_url, status, and workplace. get_person_detail adds authorisation details, type_of_lawyer, regulator, and regulatory_record — the fields most relevant for compliance verification.What happens when a surname search returns more than 1000 results?+
capped_at_1000 is true and status in enumerate_persons is capped. The total_matching field still reflects the full count the SRA reports, so you can see the gap between what was fetched and what exists. For very common surnames, combining the surname query with a first-name word in separate calls and deduplicating by sra_number is the recommended approach.Does the API cover SRA-regulated law firms or organisations, not just individuals?+
Can I filter search results by authorisation status, type of lawyer, or location?+
search_persons and enumerate_persons endpoints do not accept filter parameters beyond the name-word query and pagination controls. Filtering by status, type_of_lawyer, or geography must be applied client-side after retrieving results. You can fork this API on Parse and revise it to add server-side filtering if the source supports it.