Freelancer Scraper avatar

Freelancer Scraper

Pricing

from $0.85 / 1,000 scraped project or profiles

Go to Apify Store
Freelancer Scraper

Freelancer Scraper

Scrape public Freelancer.com projects and freelancer profiles from keywords, project URLs, category URLs, and profile URLs. Export project titles, budgets, bid counts, skills, hourly rates, ratings, profile URLs, and source metadata.

Pricing

from $0.85 / 1,000 scraped project or profiles

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

🔎 Find Freelancer.com projects and profiles

Freelancer Scraper collects public Freelancer.com project listings and freelancer profile cards from keywords, project URLs, category URLs, and profile URLs. Use it to export project titles, descriptions, budgets, hourly rates, bid counts, skills, profile rates, ratings, review counts, profile URLs, source URLs, and scrape metadata.

Start with a simple keyword such as python, keep Include projects enabled, and set Result limit to a small number for your first run. When the dataset looks right, add more keywords, job category pages, direct project URLs, or profile URLs and export the results as JSON, CSV, Excel, XML, RSS, or through the Apify API.

✅ What this Freelancer scraper does

  • Searches public Freelancer.com project listings by keyword.
  • Scrapes project rows from Freelancer.com job category pages and direct project URLs.
  • Scrapes freelancer profile rows from keyword searches and direct profile URLs or usernames.
  • Saves one dataset row per accepted project listing or freelancer profile.
  • Extracts source context so each row keeps the input target and source URL that produced it.
  • Lets you choose project rows, profile rows, or both in the same run.
  • Supports project sorting, fixed-price versus hourly filtering, minimum bid count, profile country filtering, and profile rating filtering.
  • Charges only for saved project and profile rows.

This Actor focuses on public Freelancer.com data. It does not log in, place bids, message clients or freelancers, submit forms, scrape private account pages, or enrich rows from third-party services.

📦 What data you get

Project rows can include:

  • recordType: project
  • projectId, title, url, sourceUrl, inputType, inputValue, and position
  • status, description, and projectType
  • budget and hourlyRate objects with parsed amounts, currency, and display text when visible
  • bidStats with bid count and average bid when available
  • skills
  • owner fields when Freelancer.com exposes them
  • submittedAt, updatedAt, and scrapedAt

Profile rows can include:

  • recordType: profile
  • profileId, username, displayName, url, sourceUrl, inputType, inputValue, and position
  • tagline, description, country, and city
  • hourlyRate, rating, reviewCount, and earningsScore
  • skills, avatarUrl, isOnline, and scrapedAt

Some fields can be empty when Freelancer.com does not show that value on the public page or card.

🧭 Common use cases

  • Find fresh Freelancer.com jobs that match your skills or agency services.
  • Monitor project demand for a niche, tech stack, or service category.
  • Build a lead list of project URLs with budgets, bid counts, and skills.
  • Research freelancer rates, ratings, locations, and skill positioning.
  • Compare fixed-price and hourly project opportunities.
  • Send Freelancer.com project or profile data to a spreadsheet, warehouse, webhook, or API workflow.

🚀 How to run it

  1. Open the Input tab.
  2. Add one or more Search keywords, such as python, React developer, data scraping, or WordPress.
  3. Choose whether to save project listings, freelancer profiles, or both.
  4. Set Result limit to a small number for the first run.
  5. Optionally add direct project URLs, job category URLs, profile URLs, or usernames.
  6. Run the Actor.
  7. Open the dataset and export the rows or pull them through the Apify API.

Good target examples:

  • python
  • React developer
  • https://www.freelancer.com/jobs/python/
  • https://www.freelancer.com/projects/python/example-project
  • https://www.freelancer.com/u/exampleuser

⚙️ Input

FieldWhat it does
searchQueriesFreelancer.com search keywords for project listings and, when enabled, freelancer profiles.
projectUrlsDirect Freelancer.com project URLs to save as project rows.
categoryUrlsFreelancer.com job category URLs to scan for project listings.
profileUrlsFreelancer.com profile URLs or usernames to save as profile rows.
includeProjectsSaves project listing rows from keywords, project URLs, and category URLs.
includeProfilesSaves freelancer profile rows from keywords and profile URLs.
maxItemsMaximum project and profile rows to save across the run.
sortBySort order for project search results.
projectTypeKeeps fixed-price projects, hourly projects, or both.
minBidCountSkips project rows with fewer bids than the selected number.
countryOptional country filter for profile rows.
minRatingOptional minimum rating for profile rows.

🧪 Example project input

{
"searchQueries": ["python"],
"includeProjects": true,
"includeProfiles": false,
"maxItems": 25,
"sortBy": "latest",
"projectType": "any",
"minBidCount": 0
}

🧪 Example profile input

{
"searchQueries": ["python developer"],
"includeProjects": false,
"includeProfiles": true,
"maxItems": 25,
"country": "India",
"minRating": 4.5
}

🧾 Output example

📌 Project row

{
"recordType": "project",
"projectId": 40478300,
"title": "Roblox Digital Goods Delivery Automation",
"url": "https://www.freelancer.com/projects/roblox/Roblox-Digital-Goods-Delivery-Automation",
"sourceUrl": "https://www.freelancer.com/api/projects/0.1/projects/active/",
"inputType": "searchQuery",
"inputValue": "python",
"position": 1,
"status": "active",
"description": "Project description text when visible...",
"projectType": "fixed",
"budget": {
"min": 1500,
"max": 3000,
"currency": "USD",
"text": "USD 1500-3000"
},
"hourlyRate": {
"min": null,
"max": null,
"currency": null,
"text": null
},
"bidStats": {
"bidCount": 12,
"averageBid": 2400
},
"skills": ["PHP", "JavaScript", "Python", "WordPress", "C++ Programming"],
"owner": {
"id": null,
"username": null,
"displayName": null,
"country": null
},
"submittedAt": "2026-05-29T22:10:58.000Z",
"updatedAt": null,
"scrapedAt": "2026-05-29T22:30:00.000Z"
}

👤 Profile row

{
"recordType": "profile",
"profileId": null,
"username": "ajaynpaladiya",
"displayName": "Ajay P.",
"url": "https://www.freelancer.com/u/ajaynpaladiya",
"sourceUrl": "https://www.freelancer.com/freelancers?q=python%20developer",
"inputType": "searchQuery",
"inputValue": "python developer",
"position": 1,
"tagline": "Full Stack Developer",
"description": "Profile summary text when visible...",
"country": "India",
"city": null,
"hourlyRate": {
"amount": 15,
"currency": "USD",
"text": "$15 USD per hour"
},
"rating": 4.9,
"reviewCount": 1221,
"earningsScore": null,
"skills": ["PHP", "Python", "JavaScript"],
"avatarUrl": null,
"isOnline": null,
"scrapedAt": "2026-05-29T22:30:00.000Z"
}

💳 Pricing

This Actor uses pay-per-event pricing. You are charged for each saved project listing or freelancer profile. Runs that find no matching public Freelancer.com results do not create charged dataset rows.

For cost control, start with a small Result limit, review the dataset, then raise the limit when the output matches your workflow.

⚠️ Limits and caveats

  • The Actor only collects public Freelancer.com data visible to the run.
  • Project rows and profile rows have different fields because Freelancer.com exposes different data for listings and freelancer cards.
  • Some fields may be null when Freelancer.com does not show them for a specific project, profile, region, or page state.
  • Direct project URL rows can be lighter than keyword project rows when the public project page does not expose every structured field.
  • Very broad keywords can return many similar results, so use Result limit, Project type, Minimum bid count, Profile country, and Profile rating to keep runs focused.

❓ FAQ

🔀 Can I scrape Freelancer.com jobs and profiles in one run?

Yes. Enable both Include projects and Include profiles. The dataset will contain project and profile rows, and each row's recordType tells you which contract it uses.

🔐 Do I need a Freelancer.com account?

No. This Actor is built for public Freelancer.com project listings and profile cards. It does not use your Freelancer.com account and does not perform logged-in actions.

🔌 Can I use this as a Freelancer.com API?

Yes, for the public data this Actor returns. You can run it from the Apify API, schedule it, connect webhooks, or export the dataset to JSON, CSV, Excel, XML, and RSS.

🧩 Why are some fields empty?

Freelancer.com does not expose every field on every project listing or profile card. Empty values mean the field was not visible in the public source data for that row.

📝 Changelog

  • 0.1: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

🔗 Other actors

Made with ❤️ by Maxime Dupré