TaskRabbit Scraper - Taskers, Profiles & Company Contacts
Pricing
from $2.20 / 1,000 results
TaskRabbit Scraper - Taskers, Profiles & Company Contacts
Collect TaskRabbit featured Taskers, public profiles, service catalogs, jobs and company contacts in the US, UK, Canada, France, Germany, Spain, Italy and Portugal. Pay per delivered row plus a start fee; export JSON, CSV or Excel.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Features
Share
TaskRabbit Scraper
Collect TaskRabbit Taskers, service catalogs, jobs and company contacts across eight countries as rows you can export.
- Featured Tasker names, ratings, review counts and Elite status.
- Public profiles, service categories and available reviews.
- City and service catalogs, leadership and careers listings.
- Published company emails, legal addresses and copyright contacts.
- Pay only for the rows you receive: $3.00 per 1,000 rows on the Free plan plus a small start fee.
What does TaskRabbit Scraper do?
TaskRabbit Scraper collects public information from TaskRabbit.com and its country sites. It supports the United States, United Kingdom, Canada, France, Germany, Spain, Italy and Portugal. French Canadian catalogs use market: "ca-fr"; featured Taskers there may be unavailable.
- Featured Taskers: select a city and service, or supply page URLs in
detailUrls. - Profiles: supply
profileSlugfor a Tasker row followed by available category and review rows. - Catalogs: collect cities, services, service groups or city-service combinations.
- Company pages: collect company contacts, careers listings or leadership.
- Optional enrichment:
enrichDetailsis off by default. With city/service inputs infeaturedmode, it adds profile details and available category/review rows;featuredandcrawlcan also add a company row if space remains. Featured pages supplied throughdetailUrlsdo not receive this enrichment. Each extra row is billed at the same price.
This is an unofficial tool, not affiliated with TaskRabbit. It does not book services or log in.
What data can you extract from TaskRabbit?
Each row represents one entity. Fields vary by kind; the examples below are illustrative.
Common fields
| Field | Description | Example |
|---|---|---|
id | Entity identifier | example-id |
kind | Row type | tasker |
name | Name or title | Jane Doe |
url | Entity or source page | https://www.taskrabbit.com/locations/chicago/help-moving |
market | Selected country site | us |
Taskers: kind: "tasker"
| Field | Description | Example |
|---|---|---|
taskerId | Tasker identifier | example-tasker-id |
averageRating | Featured-card rating | 4.9 |
reviewsCount | Featured-card review count | 42 |
tasksCount | Reported task count | 65 |
elite | Elite badge indicator | false |
Tasker categories: kind: "tasker-category"
| Field | Description | Example |
|---|---|---|
taskerId | Parent Tasker identifier | example-tasker-id |
categoryId | Service category identifier | 123 |
rabbitHourlyRateCents | Reported Tasker hourly rate in cents | 4500 |
formattedRate | Source-formatted price, when present | $45 |
Reviews: kind: "review"
| Field | Description | Example |
|---|---|---|
taskerId | Parent Tasker identifier | example-tasker-id |
displayRating | Displayed review rating | 5 |
message | Review text | Example review text |
Cities: kind: "city"
| Field | Description | Example |
|---|---|---|
slug | City URL segment | chicago |
regionName | Region heading in the catalog | Illinois |
Services: kind: "service"
| Field | Description | Example |
|---|---|---|
slug | Service URL segment | help-moving |
groupSlug | Service group, when present | moving |
City-service entries: kind: "city-service"
| Field | Description | Example |
|---|---|---|
citySlug | City URL segment | chicago |
serviceSlug | Service URL segment | help-moving |
Jobs: kind: "job"
| Field | Description | Example |
|---|---|---|
department | Careers department | Engineering |
locationText | Location as published | Remote |
Leadership: kind: "leader"
| Field | Description | Example |
|---|---|---|
person.name | Listed leader | Jane Doe |
person.role | Role found in the biography | Chief Executive Officer |
bio | Biography excerpt | Example biography text |
Company: kind: "company"
| Field | Description | Example |
|---|---|---|
phones | Published company numbers, not Tasker phones | [{"value":"+1 555 0100","type":"copyright-dmca"}] |
emails | Published company email addresses | [{"value":"name@example.com","type":"press"}] |
address.full | Published company mailing address | Example company mailing address |
leadAbsences | Explanations for missing contact fields | {} |
How to scrape TaskRabbit
- Open TaskRabbit Scraper in Apify Console. A free Apify account is enough to try it.
- Fill a target such as
citySlug, or choose an explicitsearchTypebelow. - Set
maxResultsto5for a small first run. - Click Start and wait for completion.
- Download the dataset or read its rows through the API.
An empty input {} starts the Chicago help-moving example with at most 3 rows. It still follows the event prices below. With searchType: "auto", filling a target selects its mode automatically. For a different mode, clear unused example fields first.
Featured Taskers
Use citySlug and serviceSlug, or a featured-page URL in detailUrls. Explicit searchType: "featured" without slugs uses the market's default city and service.
Profiles
Use profileSlug from an existing public profile. The Tasker comes first, followed by available category and review rows within maxResults. These child rows do not require enrichDetails in profile mode.
Services
Choose searchType: "services" for the country's service catalog. No target is required.
Locations
Choose searchType: "locations" for the city catalog. No target is required.
City pages
Choose searchType: "city" and citySlug for that city's service links. An omitted city uses the market default.
Service groups
Fill groupSlug for services within a group, such as moving in the US.
Service landing pages
Fill both groupSlug and serviceSlug for cities listed for that service.
Crawl
Choose searchType: "crawl" to collect featured Taskers across city-service pages. citySlug and serviceSlug can narrow the crawl; maxPages limits featured pages.
Careers
Choose searchType: "careers" for published jobs, departments and location text.
Company
Choose searchType: "company" for one combined company-contact row from the press, privacy, terms and company contact-information pages. Missing pages can leave fields empty.
Press
Choose searchType: "press" for the same combined company-contact row, including published press emails. This does not restrict collection to the press page.
About
Choose searchType: "about" for listed leaders and their biographies.
Privacy
Choose searchType: "privacy" for the same combined company-contact row, including available privacy contacts. This does not restrict collection to the privacy page.
Terms
Choose searchType: "terms" for the same combined company-contact row, including available legal and copyright contacts. This does not restrict collection to the terms page.
What to fill in
| Field | What to enter | Default |
|---|---|---|
searchType | auto or a mode described above. | auto |
citySlug | City URL segment; US example: chicago. | Empty; form example chicago |
serviceSlug | Local service URL segment; US example: help-moving. | Empty; form example help-moving |
profileSlug | Existing public profile slug. | Empty |
groupSlug | Service group URL segment; US example: moving. | Empty |
detailUrls | List of supported TaskRabbit page URLs. Each URL is an input. | Empty |
market | us, uk, ca, ca-fr, fr, de, es, it, pt. | us |
maxResults | Maximum rows delivered and charged per URL or selected target. Above 70, the control plane uses nextCursor for further batches, up to 200 rows per input if the source has enough rows. | 70; form example 3 |
enrichDetails | Add profile details and extra rows for featured city/service inputs, or company information for crawl. Does not enrich featured detailUrls; all rows share the limit. | false |
maxPages | Featured-page budget for crawl, from 1 to 50. | 1 |
Examples for each mode follow. Replace the illustrative jane-doe profile slug with a real public slug.
Featured Taskers:
{"citySlug":"chicago","serviceSlug":"help-moving","maxResults":5}
Profile:
{"profileSlug":"jane-doe","maxResults":5}
Service catalog:
{"searchType":"services","maxResults":5}
City catalog:
{"searchType":"locations","maxResults":5}
City page:
{"searchType":"city","citySlug":"chicago","maxResults":5}
Service group:
{"groupSlug":"moving","maxResults":5}
Service landing:
{"groupSlug":"moving","serviceSlug":"help-moving","maxResults":5}
Crawl:
{"searchType":"crawl","citySlug":"chicago","maxPages":1,"maxResults":5}
Careers:
{"searchType":"careers","maxResults":5}
Company contacts:
{"searchType":"company","maxResults":1}
Press:
{"searchType":"press","maxResults":1}
Leadership:
{"searchType":"about","maxResults":5}
Privacy:
{"searchType":"privacy","maxResults":1}
Terms:
{"searchType":"terms","maxResults":1}
maxResults is the most rows each detailUrls URL delivers and charges; without URLs, the selected city/service/mode is one input. The default is 70. Above 70, the control plane continues using nextCursor, up to 200 rows per input if the source has enough rows. The run remains subject to your maximum charge and free-plan allowance. maxItems and limit are accepted as the same setting.
- Target priority is
detailUrls,profileSlug,groupSlug,serviceSlug, thencitySlug; compatible fields can work together. - Close misspellings are corrected; other unknown fields and invalid optional filters are ignored with a note.
- Invalid targets stop the run with a message such as
INVALID_INPUT: detailUrls — detailUrls must be taskrabbit.com (or .co.uk/.ca/.fr/.de/.es/.it/.pt) page URLs. No rows are charged; the start fee can still apply. - The
INPUT_REPORTrecord in the run's key-value store lists fields filled, corrected or ignored.
Output example
Illustrative featured Tasker row; the name and identifier are placeholders:
{"id": "example-tasker-id","kind": "tasker","name": "Jane Doe","taskerId": "example-tasker-id","url": "https://www.taskrabbit.com/locations/chicago/help-moving","citySlug": "chicago","serviceSlug": "help-moving","averageRating": 4.9,"reviewsCount": 42,"tasksCount": 65,"elite": false,"market": "us","phones": [],"emails": []}
Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. Featured-card url values can point to the shared city-service page rather than an individual profile.
Why use this TaskRabbit scraper?
- Pay per row. Row charges apply to dataset rows, not pages attempted.
- Partial results. The Actor can deliver partial rows returned before its wait ends. Delivery is not guaranteed after a manual abort or platform timeout; inspect the dataset. Only delivered rows incur row charges.
- Readable input errors. Validation messages name the field and correction.
- Missing contacts stay missing. Featured cards do not become invented phone or email leads.
- Several inputs.
detailUrlsaccepts multiple pages, each with its own row limit. - No setup. You do not need a TaskRabbit account, cookies or to set up proxies.
How much does it cost to scrape TaskRabbit?
Pay-per-event pricing has a $0.005 start event plus a price per delivered row. Start events are counted per GB of allocated memory, with a minimum of one; the default 512 MB uses one. Platform usage is included in these prices.
| Apify plan | Price per row | Price per 1,000 rows |
|---|---|---|
| Free | $0.003 | $3.00 |
| Starter | $0.003 | $3.00 |
| Scale | $0.0026 | $2.60 |
| Business | $0.0022 | $2.20 |
| Platinum | $0.002 | $2.00 |
| Diamond | $0.0016 | $1.60 |
maxResultsapplies per input: default70, maximum200. Larger requests are collected in parts of 70, subject to available rows.- Free Apify plan users are limited to 200 rows per run and 10 runs of this Actor.
- Set Maximum cost per run in the run options (
maxTotalChargeUsdin the API) to cap the whole run. - Taskers, categories, reviews, catalog entries, jobs, leaders and company rows use the same row price. Empty runs have no row charges, but still incur the start fee.
Example: three URLs delivering five rows each cost 15 × $0.003 + $0.005 = $0.050 on the Free plan at default memory.
What happens when the run timeout is too short
When the selected timeout is too short, an eligible run can pause rather than fail. Its status message says "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." It appears as ABORTED temporarily.
When results are ready, the same run resumes automatically and delivers into the same dataset. A successful delivery finishes as SUCCEEDED. Rows already delivered are skipped so they are not charged twice. Resumed delivery with existing rows can show "Resumed: delivering N rows."
- Automatic pauses are limited to at most 3 per run. Keep the default 900-second timeout to reduce interruptions.
- Synchronous endpoints (
run-sync,run-sync-get-dataset-items) wait at most 300 seconds and can return an empty dataset while the run is paused. For longer jobs, start asynchronously and read the dataset after SUCCEEDED, or use a success webhook.
Use with AI agents and the API
Apify MCP server (Claude, ChatGPT, Cursor, VS Code)
Add this Actor to a client that supports remote MCP servers:
https://mcp.apify.com?tools=lentic_clockss/taskrabbit-scraper
Sign in with Apify using OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool returns run and dataset IDs; read rows with get-dataset-items. For clients without remote support, use npx @apify/actors-mcp-server --tools lentic_clockss/taskrabbit-scraper with APIFY_TOKEN.
Example prompt: "Get five featured Taskers for Chicago moving from TaskRabbit. Return names, ratings and review counts."
Apify API
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/taskrabbit-scraper").call(run_input={"citySlug": "chicago", "serviceSlug": "help-moving", "maxResults": 5})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/taskrabbit-scraper').call({citySlug: 'chicago', serviceSlug: 'help-moving', maxResults: 5});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Over HTTP, send the JSON input to POST https://api.apify.com/v2/acts/lentic_clockss~taskrabbit-scraper/runs with your token in the Authorization: Bearer header. After completion, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.
Integrations
Use the Actor's Integrations tab for Google Sheets, Make, Zapier, n8n, Slack, Airtable or a webhook. Use Apify Schedules for recurring runs.
FAQ
Is it legal to scrape TaskRabbit?
This Actor reads public information. You are responsible for reviewing TaskRabbit's terms and applicable data-protection law. Processing personal data requires a lawful basis; public visibility alone does not grant unrestricted reuse.
Why did my run end as ABORTED?
An ABORTED status means the run was stopped, for example by a manual abort. It is not a pause that this Actor resumes by itself. Check the status message, log and dataset before deciding whether to start a new run; a new run has its own start fee.
How many results can I get?
Up to 200 rows per input, subject to source availability and your spending cap. Free-plan runs stop at 200 rows overall. Featured panels contain a small selection, not all Taskers in a city.
Why are some fields empty?
Different pages expose different fields. Featured cards lack personal phone, email and street-address data. Check leadAbsences for contact explanations. Company copyright numbers are not Tasker or customer-service numbers.
Do I need a TaskRabbit account?
No. You need an Apify account to run the Actor, but no TaskRabbit login or API key.
Can I search by keyword, postcode or booking availability?
No. Keyword search, near-me forms, booking, hiring, map search, contact forms and login are outside scope, even where legacy choices remain in the input form.
Why did a service slug work in one country but fail elsewhere?
Slugs are local. UK furniture assembly uses assemble-furniture; Germany uses mobelmontage. Select the correct market and inspect its catalogs instead of reusing US slugs.
What if the run returns no rows?
A confirmed search with no matches can finish successfully with an empty dataset. Check RUN_SUMMARY for the reason; failed runs also write ERROR_SUMMARY. Check the country and local slugs before retrying.
Does enrichment guarantee an extra company row?
No. Extra rows use the same limit. Categories and reviews can fill it first, and company collection can fail. Use searchType: "company" when company information is the goal.
Limitations
- Australia is not supported. French Canadian featured panels may be empty even when catalogs exist.
- Featured pages are not full Tasker search results and have no ordinary page-by-page pagination.
- Profile category and review rows depend on what the profile returns; this is not a full review-history export.
- A missing page or changed page format can produce fewer rows or a failed run.
crawlenrichment adds company information, not individual profile enrichment. Featured URLs indetailUrlsreturn cards without optional profile enrichment.- Personal contact details are not promised. Published company legal contacts must not be treated as Tasker leads.
Related scrapers
More local services and lead generation scrapers from the same publisher:
- Nextdoor Business Scraper
- Google Maps Scraper for Leads, CRM, and Reviews
- AlloVoisins Scraper
- Angi Scraper
- HomeStars Scraper
- Jiffy On Demand Scraper
- Care.com Scraper
- Yelp Business Scraper
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Found a problem or need another field? Open an issue in the Issues tab of this Actor's page and include the run ID and the input you used.