TotallyLegal Jobs Scraper
Pricing
$1.49 / 1,000 result scrapeds
TotallyLegal Jobs Scraper
Scrape UK legal job listings from TotallyLegal.com — the UK's dedicated legal jobs board. Returns title, firm name, location, salary range, practice area, PQE level, contract type and full job description. Filter by keyword and location.
Pricing
$1.49 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
2
Monthly active users
15 days ago
Last modified
Categories
Share

Extract job listings from totallylegal.com at scale, in a clean, consistent structure ready for analysis, job boards, recruiting tools and market research. No API key required.
Why this scraper?
🎯 Built for the United Kingdom
A dedicated UK legal scraper, not a global tool with a country dropdown. Search, locations and currency (GBP) are tuned for totallylegal.com.
📄 Complete job data
Full job title and description, direct listing URL and publish date for every record.
💶 Salary data
Salary information parsed from the listing where the employer publishes it, in GBP. Missing salaries are returned as null, never guessed.
🏢 Company details
Hiring company name plus the profile details the source publishes, such as logo and company page.
📍 Location fields
Structured location data for every listing, ready for filtering and analysis.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | (empty) | Search keywords to filter jobs (e.g. 'solicitor', 'paralegal', 'in-house counsel'). Leave empty to scrape all jobs. |
maxResults | integer | 100 | Maximum number of jobs to scrape. Set to 0 for unlimited. |
fetchDetails | boolean | true | Fetch each job's detail page to get full description, practice area, PQE level, contract type, workplace, and other rich fields. Recommended: true. |
delayMs | integer | 300 | Milliseconds to wait between HTTP requests. Increase if you get rate-limited. |
startPage | integer | 1 | Page number to start scraping from (1 = first page). |
Output schema
Every field below is present on every record. Fields the source does not publish for a given job are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
id | number | Internal Madgex job ID |
title | string | Job title |
url | string | Full URL to job detail page |
location | string | Job location (from listing) |
salary | string | Salary description e.g. £Competitive package |
company | string | Recruiting company / law firm |
descriptionSnippet | string | Short description from listing page |
logoUrl | string | Company logo image URL |
jobRef | string | Employer's internal job reference code |
datePosted | string | Date posted (human-readable from GTM e.g. 20 Apr 2026) |
practiceArea | string | Practice area(s) e.g. Commercial Litigation,Corporate |
pqeLevel | string | PQE experience required e.g. NQ, 2-4, 5-7, 8+ |
salaryBand | string | Salary band range e.g. £70,000 - £99,999 |
contractType | string | e.g. Permanent, Contract, Temporary |
hours | string | e.g. Full Time, Part Time |
workplace | string | e.g. Hybrid, Office, Remote |
jobCategory | string | Job category taxonomy e.g. In House Counsel, Solicitor |
applicationMethod | string | Email, URL, External |
applicationUrl | string | Direct application URL (if available) |
recruiterType | string | Recruitment Agency or In-House |
locationFull | string | Full location hierarchy e.g. United Kingdom,England,South East England,London (Greater) |
salaryMin | number | Minimum salary (null if not published by the employer). |
salaryMax | number | Maximum salary (null if not published by the employer). |
description | string | Full job description HTML (from detail page) |
descriptionMarkdown | string | Full description converted to Markdown. |
datePostedIso | string | Date posted in ISO 8601 (from JSON-LD) |
validThrough | string | Application deadline ISO 8601 |
directApply | boolean | Whether direct apply is supported |
employmentType | string | Schema.org type e.g. FULL_TIME |
addressRegion | string | Address region from JSON-LD |
addressCountry | string | Country code e.g. GB |
scrapedAt | string | ISO timestamp when the record was scraped |
Example record
{"id": 4050136,"title": "Landlord and Tenant Solicitor","url": "https://www.totallylegal.com/job/4050136/landlord-and-tenant-solicitor/","location": "London","salary": "£50k - 75k per year + Benefits Package","company": "G2 Legal Limited","descriptionSnippet": "Landlord & Tenant Solicitor – LondonI've been instructed on a new and exciting opportunity for an experienced Landlord & Tenant Solicitor to join th","logoUrl": "https://www.totallylegal.com/getasset/3e5034fa-6b8e-45d2-bc69-4bc649f18115/;w=148","jobRef": "60514-1-JC-27MALS","datePosted": "02 Jul 2026","practiceArea": "Commercial Property,Housing,Litigation","pqeLevel": "NQ,2-4,5-7,8-10,10+","salaryBand": "£70,000 - £99,999","contractType": "Permanent","hours": "Full Time","workplace": "Hybrid","jobCategory": "Solicitor","applicationMethod": "Email","applicationUrl": "","recruiterType": "Recruitment Agency","locationFull": "Europe,United Kingdom,England,South East England,London (Greater),Europe,United Kingdom,England,South East England,London (Greater),London (Central)","salaryMin": 70000,"salaryMax": 99999,"description": " <p><strong><em>Landlord & Tenant Solicitor – London</em></strong></p><p>I've been instructed on a new and exciting opportunity for an experienced Landlord & Tenant Solicitor to join this lea …","descriptionMarkdown": "**_Landlord & Tenant Solicitor – London_**\n\nI've been instructed on a new and exciting opportunity for an experienced Landlord & Tenant Solicitor to join this leading team.\n\n**What is in it for you?** …","datePostedIso": "2026-07-02T15:12:56.383Z","validThrough": "2026-07-30T03:13:00.000Z","directApply": true,"employmentType": "FULL_TIME","addressRegion": "London (Greater)","addressCountry": "GB","scrapedAt": "2026-07-02T15:21:10.395Z"}
Examples
Search for paralegal roles in London:
{"searchQuery": "paralegal","maxResults": 100}
Broad nationwide crawl:
{"searchQuery": "paralegal","maxResults": 1000}
Larger run with a hard cap:
{"searchQuery": "paralegal","maxResults": 500}
Daily feed (run on a schedule):
{"searchQuery": "paralegal","maxResults": 500}
Schedule this input in the Apify Scheduler (for example daily at 07:00) to keep an always-fresh feed of the newest listings.
💰 Pricing
$1.49 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.9 |
| 100,000 | ~$149 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $1.49 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Salary is only returned when the employer publishes it — many listings carry
nullsalary fields. - Company details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be removed by the source at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: totallylegal.com — the United Kingdom job listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl