TaskRabbit Scraper at a glance
TaskRabbit Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes kind, recordid, taskid, url and displayname, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $3.00 per 1,000 results on the Apify Free plan and from $1.60 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Web data
- Pricing
- $3.00 per 1,000 results (Free plan), from $1.60 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 21 options
Scrape TaskRabbit taskers by US city and service. Extract hourly rates, ratings, reviews, completed tasks, elite status, and availability. Track NEW, UPDATED, REAPPEARED, and EXPIRED taskers with incremental runs, resume, and MCP export.
What TaskRabbit Scraper can do
- Real rate data. Per-category hourly rates, the client-facing rate and the service fee, alongside ratings, review counts and completed tasks.
- Availability signal. Each enriched profile carries the tasker's on-duty status, hours worked and years on the platform.
- City and service search. Paste city names and service categories; cities are matched against the source's own city pages automatically.
- Nine link shapes in URL mode. Paste tasker ids, profile links (by id or name slug), tasker API and review-page links, city or city + service pages, the locations index or the city sitemap, and skip the search entirely.
- Optional review records. One row per public review (default cap of 20 per tasker), plus each city page's recent service testimonials.
- Recurring monitoring. Scheduled runs classify every record as NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED, with per-campaign state you can name or share and ignoreFieldsForChanges to silence noisy fields.
Choose what to collect
These inputs let you configure TaskRabbit Scraper - Taskers, Rates, Ratings & Availability. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Search finds taskers for your cities and service categories. URL mode reads one or more taskers by id or profile link. |
locationsarray | Where to look: one entry per city. US city names like New York, Portland, OR or Austin, Texas. Names are matched to the source's own city pages automatically. |
servicesarray | Search mode: service categories such as furniture assembly, TV mounting, moving, house cleaning, handyman or lawn mowing. Friendly names and source slugs both work. |
profileInputsarray | URL mode: numeric tasker ids, tasker API or profile links (by id or by name slug), tasker review-page links, /locations city or city + service links, the locations index, or the city sitemap. City, index and sitemap links expand into the city's popular services and read them until Max items. Unsupported links are logged as warnings and skipped. Left untouched, it scrapes one example per link shape. |
urlsarray | Alias for Tasker links, ids or city links; accepts the same link shapes. |
maxItemsinteger | Stop after this many records (0 = no limit; the run then stops when taskers or reviews run out). Tasker, review, city review, service FAQ and EXPIRED records all share this one budget, and each tasker's reviews are read right after that tasker, so with reviews on a small Max items returns fewer taskers (lower Max reviews per tasker to get more taskers). Tasker records are marked kind=tasker, reviews kind=review, city testimonials kind=city_review. |
includeProfilesboolean | On by default. Search mode then reads each tasker's public profile for hourly rates, categories, hours worked, availability and review stats. Turn off for a lighter card-only pull (no rates). |
Show 14 more inputs
| Input | What it controls |
|---|---|
includeReviewsboolean | Off by default. Emits one review record per public review, kind=review, up to Max reviews per tasker. Review rows share the Max items budget. Works wherever the tasker record is emitted. |
maxReviewsPerTaskerinteger | Bound on review rows fetched per tasker when Also fetch tasker reviews is on. Hard cap per tasker (maximum 100); the source serves reviews 10 per page. |
includeCityReviewsboolean | Off by default. Also emits the recent service testimonials the source shows on each city page, kind=city_review. These rows share the Max items budget. |
scrapeServiceInfoboolean | Off by default. Also emits one record per city and service page with its frequently asked questions and answers, kind=service_info. Each record counts toward Max items and is a normal result record. |
maxTaskersPerPageinteger | Take at most this many featured taskers from each city and service page (1-20, default 6). The source currently features 6 taskers per page, so values above 6 return the same 6. |
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue a large pull without returning items already collected there. |
incrementalModeboolean | Turn this on for daily or recurring monitoring. The first run returns every matching record as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED records. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). State is kept separately for each search, filter and lookup setup; use State key to name or deliberately share a monitoring campaign. |
stateKeystring | Optional. Name this monitoring campaign to keep its state stable, or deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically from the search and filter settings. |
emitUnchangedboolean | Off by default. Turn on to also return records that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have. |
emitExpiredboolean | Off by default. Turn on to also return records that were present in a previous run but are no longer found, marked EXPIRED. This returns, and bills, extra rows. Only produced once a run has fully scanned the tracked search. |
ignoreFieldsForChangesarray | Output field names that should NOT make a tasker count as UPDATED. Always ignored: imageUrl, avatarUrl, ratingDistribution and categories.inDemand (rotating image addresses, a breakdown derived from the review count, and a live demand flag; reviewsCount and totalReviewCount still catch new reviews). Add fields such as bio or description here if changes to them are not relevant to you. Use a dotted path (for example categories.hourlyRateDisplay) to ignore a field inside a nested list. Ignored fields are still returned in the output. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write or digest. Leave empty to skip; never changes the dataset output. |
notionParentPageUrlstring | URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
kindkindrecordIdrecordIdtaskIdtaskIdurlurldisplayNamedisplayNameslugslugcitySlugcitySlugcityNamecityNamemetroIdmetroIdmetroNamemetroNameserviceSlugserviceSlugserviceNameserviceNameShow 47 more fields
v3CategoryIdv3CategoryIdv3TaskTemplateIdv3TaskTemplateIdaverageRatingaverageRatingreviewsCountreviewsCounttotalReviewCounttotalReviewCounttasksCounttasksCounttaskCountProfiletaskCountProfileeliteeliteonDutyonDutypositiveRatingpositiveRatinghoursWorkedhoursWorkedrabbitSinceYearrabbitSinceYearvehicleTypevehicleTypebiobiodescriptiondescriptionimageUrlimageUrlavatarUrlavatarUrlphoneNumberMaskedphoneNumberMaskedcategoriescategoriesratingDistributionratingDistributionsourcesourcechangeTypechangeTypechangedFieldschangedFieldsfirstSeenAtfirstSeenAtlastSeenAtlastSeenAtdataTypedataTypetaskerIdtaskerIdnamenameisEliteisEliteprofileUrlprofileUrllocationlocationserviceservicetotalTaskerstotalTaskersfaqsfaqsreviewIdreviewIdtaskerNametaskerNametaskerUrltaskerUrlposterNameposterNameratingratingpositivepositivemessagemessagecategoryNamecategoryNamecategoryIdcategoryIdcanceledcanceledcreatedAtcreatedAtreviewTypereviewTypeauthorNameauthorNameExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"kind": "tasker",
"recordId": "3000042",
"taskId": 3000042,
"displayName": "Sample T.",
"citySlug": "portland",
"serviceSlug": "assemble-furniture",
"cityName": "Portland, OR",
"metroId": 1058,
"serviceName": "Furniture Assembly",
"v3CategoryId": 33,
"v3TaskTemplateId": 7,
"averageRating": 4.9,
"reviewsCount": 120,
"tasksCount": 210,
"elite": false,
"bio": "Sample bio text describing experience with assembly and mounting work.",
"imageUrl": "https://www.taskrabbit.com/img/sample-card.jpg",
"source": "profile",
"slug": "sample-t--9",
"url": "https://www.taskrabbit.com/profile/sample-t--9",
"metroName": "Portland",
"hoursWorked": 812.5,
"positiveRating": "98%",
"onDuty": true,
"taskCountProfile": 512,
"rabbitSinceYear": 2019,
"vehicleType": "none",
"phoneNumberMasked": "XXXXXXXXXX99",
"description": "Sample profile description text.",
"avatarUrl": "https://www.taskrabbit.com/img/sample-avatar.jpg",
"categories": [
{
"categoryId": 33,
"categoryName": "Furniture Assembly",
"focused": true,
"hourlyRate": 42,
"hourlyRateDisplay": "$42.00/hr",
"hourlyRateCurrency": "usd",
"posterRateDisplay": "$49.50/hr",
"serviceFeePercent": 15,
"inDemand": true
}
],
"totalReviewCount": 340,
"ratingDistribution": {
"1": 2,
"2": 3,
"3": 10,
"4": 45,
"5": 280
}
}Ways to use this data
- Gig marketplace researchers: compare tasker hourly rates and service demand across cities and categories.
- Local services directories: feed live tasker cards (rates, ratings, availability) into your own site or app.
- Marketplace analysts: track rating distributions, review volume and elite status over time.
- Pricing teams: pull the going hourly rate for a service category across several cities at once.
- Quality and sentiment analysts: collect a tasker's public reviews for service quality or sentiment analysis.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does TaskRabbit Scraper return?
The documented output for TaskRabbit Scraper includes kind, recordid, taskid, url, displayname, slug, cityslug and cityname. Availability of each field depends on the source page and the selected mode.
How much does TaskRabbit Scraper cost?
It costs $3.00 per 1,000 results on the Apify Free plan and from $1.60 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I get only new or changed taskers on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared records by default, and unchanged ones are not billed unless you turn on Emit unchanged records.
Why does a city only return a handful of taskers?
Each city and service pair carries up to 6 featured taskers, the same number the source itself shows there; there is no deeper public listing behind that page. Add more cities or services to widen coverage.
Why did my run fail instead of returning an empty dataset?
If the site refuses every request, or none of the given cities and services matched a real page, the run stops with a clear message so "no taskers found" is never confused with "nothing could be read". Check the city and service names, or try again in a few minutes for a connection problem.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
