Freelancer Scraper
Pricing
from $3.00 / 1,000 results
Freelancer Scraper
Scrape Freelancer project pages from direct URLs, Freelancer search queries, or job category URLs. Extract project title, budget or hourly rate, bid counts, days left, skills, and project descriptions.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(16)
Developer
Crawler Bros
Actor stats
16
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape Freelancer.com project pages from direct URLs, search queries, category browse, or user profiles.
Modes
This actor supports four input modes — combine them freely:
- Project URLs — paste direct project URLs into
projectUrls. - Search queries — keywords (e.g.
python,react native,data entry) listed insearchQueries. - Category URLs — paste a category-listing URL (e.g.
https://www.freelancer.com/jobs/python/) intocategoryUrls. - User profiles — paste an employer/freelancer profile URL (e.g.
https://www.freelancer.com/u/username) intouserUrlsto scrape projects posted by that user.
Filters & sorting
| Field | Type | Description |
|---|---|---|
projectType | enum | any, fixed, hourly — restrict to fixed-price or hourly projects. |
sortBy | enum | latest, lowest_budget, highest_budget, lowest_bids, highest_bids. |
minBidCount | integer (0-1000) | Drop projects with fewer than N bids. |
searchPages | integer (1-10) | Pages to crawl per search/category/user URL. |
maxItems | integer (1-500) | Hard cap on emitted records. |
Anti-bot
| Field | Default | Description |
|---|---|---|
useProxy | false | Route HTTP requests through Apify proxy. Freelancer.com is normally reachable without it. |
autoEscalateOnBlock | true | Automatically retry blocked fetches via residential Apify proxy. |
proxyConfiguration | {} | Apify proxy configuration (advanced; only used when useProxy is on). |
Output
Each record can include:
title/pageTitle/slugprojectId/statusbudget(raw display string, e.g."$250-750 USD") /budgetMinMax({"min": 250, "max": 750, "currency": "USD"})hourlyRate(raw display string, e.g."$15-30 USD / hr") /hourlyRateMinMax({"min": 15, "max": 30, "currency": "USD"})paymentType/averageBid(numeric —intwhen the source is whole,floatotherwise)bidCount/daysLeft/postedTextdescriptionskillsmarketplaceRating/marketplaceReviewCount/marketplaceDescriptionsourceUrl/canonicalUrlrecordType/scrapedAt
Empty values are omitted from output.
Use cases
- Monitor public freelance demand by skill or budget tier.
- Track sort-rank movements for budget-sensitive projects.
- Build project-intelligence datasets keyed by employer (via user URLs).
- Research freelance marketplace trends across project types.
Notes
- This actor is HTTP-first (no browser).
- Empty values are omitted from output (no
null, blank strings, or empty arrays).
FAQ
Q: Why does sortBy=highest_budget mix projects with different currencies?
Freelancer's listing endpoint sorts by raw numeric budget upstream — it does not convert to a common currency. As a result a ₹1,000,000 INR project can rank above a $5,000 USD project even though USD-equivalent the USD job is larger. This actor returns results in the raw upstream order; USD-equivalent ranking is not applied client-side. For strict price comparison, restrict to a single currency by appending currency=USD (or another ISO code) to the source Freelancer search URL, then pass that URL via categoryUrls.
Q: How do I sort or filter on numeric budget locally?
Use the new budgetMinMax / hourlyRateMinMax companion fields — both contain numeric min, max, and currency (e.g. {"min": 250, "max": 750, "currency": "USD"}). The string budget / hourlyRate fields are kept verbatim for display.