Freelancer.com Scraper - Projects, Budgets & Client Data avatar

Freelancer.com Scraper - Projects, Budgets & Client Data

Pricing

from $0.44 / 1,000 projects

Go to Apify Store
Freelancer.com Scraper - Projects, Budgets & Client Data

Freelancer.com Scraper - Projects, Budgets & Client Data

Scrape open Freelancer.com projects. Each row has the budget in its own currency and in USD, marked fixed or hourly, the bid count and average bid, skills, the client's country, rating and verification flags, and the full description. $0.45 per 1,000 projects.

Pricing

from $0.44 / 1,000 projects

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

8 days ago

Last modified

Share

Scrape open Freelancer.com projects with the budget, the bid count and the average bid: one row per project, next to the skills, the client's country and rating, and the full project description. Freelancer.com works on bidding. The client names a budget, freelancers bid against it, and the site publishes how many have bid and what they are asking on average.

One thing to get straight before you sort anything: on an hourly project, budgetMin and budgetMax are an hourly rate, not a total. budgetType says which on every row, and mixing the two is the easiest way to produce a nonsense average.

InputA keyword, skills, and budget or bid filters
OutputOne row per open project: budget, bid count, average bid, skills, client country and rating, description
Ceiling5,000 projects per run
Account neededNone, and no API key
Price$0.45 per 1,000 projects, flat on every plan. The free plan's $5 a month covers about 11,000

🔍 What Freelancer.com Scraper does

It searches the open projects, applies your filters, and writes one row each. Skills are the one filter Freelancer applies itself, so narrowing by PHP or Logo Design is the cheapest and fastest way to cut a search down. Budget, bid-count and client-country filters are applied afterwards on the rows themselves, and anything dropped by them is not charged.

Budgets come back in the project's own currency and converted to USD, using the exchange rate Freelancer returns with each project. That matters because the site is genuinely multi-currency, and sorting a mixed export on budgetMin without the USD columns gives you a meaningless ranking.

Client details are on by default: country, city, star rating, review count, member-since date and the verification flags. That costs one extra lookup per project, so a big run is slower with them on.

📋 What data you get from each Freelancer.com project

What you getField
The project's id, title, description and linkprojectId, title, description, projectUrl
Fixed or hourly, and the budget as askedprojectType, budgetType, budgetMin, budgetMax, budgetCurrency
The budget in US dollarsbudgetMinUsd, budgetMaxUsd
How many have bid, and the average bidbidCount, averageBid, averageBidUsd
Hours and duration on hourly projectshourlyCommitmentHours, hourlyCommitmentInterval, hourlyDuration
Skills, their ids, and categoriesskills, skillIds, categories
Listing upgrades and flagsisSealed, isFeatured, isUrgent, isNda, isFulltime, isPremium, isRecruiter, isLocal, bidsHidden
Status, dates and when bidding closesstatus, postedAt, updatedAt, bidPeriodDays, bidsCloseAt, language
Where the work is, for on-site projectsprojectCountry, projectCity
The client: country, city, rating, reviews, member sinceclientCountry, clientCountryCode, clientCity, clientRating, clientReviewCount, clientMemberSince
The client's verification flagsclientPaymentVerified, clientEmailVerified, clientPhoneVerified, clientProfileComplete, clientDepositMade
Whether the client lookup worked, and when the row was readclientDetailsFetched, scrapedAt

▶️ How to scrape Freelancer.com projects

  1. Open Freelancer.com Scraper and click Try for free.
  2. Type a term into Keyword, or clear it to take the newest projects site-wide.
  3. Add Skills if you know them. That is the filter that does the most work.
  4. Set Maximum projects, then click Start.
  5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost to scrape Freelancer.com projects?

$0.45 per 1,000 projects. Flat on every Apify plan, no volume tiers. On the free plan, the $5 Apify gives you each month covers about 11,000 projects.

You pay per project row you receive. Projects dropped by the budget, bid-count or client-country filters are not charged, the sample row is not charged, and diagnostic rows are not charged. Client details do not add a second charge, they just make the run slower. If you set a maximum cost for the run, it stops when that is reached.

📥 What you give it

None of these fields has a default. The input form arrives pre-filled with a working example, and those values are starting points you can clear.

{
"searchQuery": "wordpress",
"skills": ["PHP"],
"projectType": "fixed",
"maxBids": 5,
"minBudgetUsd": 250,
"maxItems": 200
}
FieldForm starts atWhat it is
searchQuerywordpressFree text across open projects. Clear it to take the newest projects site-wide.
skillsemptyOnly projects tagged with these. Use the exact skill name, its URL slug like web-design, or its numeric id. This is the one filter Freelancer applies for you.
projectTypeanyfixed or hourly.
upgradesemptyfeatured, sealed, urgent, NDA. These are rare, well under 1% of projects each, so picking one returns very few rows.
maxItems50Hard cap on rows, up to 5,000.
includeClientDetailsonAdds the client's country, city, rating, review count, member-since date and verification flags.
clientCountriesemptyKeep only projects whose client is in one of these. ISO codes like US or full names. Applied after the client lookup, so it is slower than filtering on skills.
minBudgetUsd, maxBudgetUsdnoneBudget bounds in USD, compared after conversion.
minBids, maxBidsnoneBid-count bounds. Set maxBids to 5 to find work nobody has quoted on yet.
sortBynewestnewest or bids.
proxyConfigurationoffOptional. Your own servers are used exactly as given.

📤 What you get back

A real row from a run on 20 September 2026, with the description cut short:

{
"projectId": 40721965,
"title": "Bilingual Real Estate Cold Caller",
"description": "I need someone who can cold call using a U.S. line for several hours each weekday, speak confidently with residential homeowners in both English and Spanish, and secure firm Zoom listing appointments for me...",
"projectUrl": "https://www.freelancer.com/projects/real-estate/Bilingual-Real-Estate-Cold-Caller",
"projectType": "hourly",
"budgetType": "hourly_rate",
"budgetMin": 15,
"budgetMax": 25,
"budgetCurrency": "USD",
"budgetMinUsd": 15,
"budgetMaxUsd": 25,
"bidCount": 4,
"averageBid": 17.5,
"averageBidUsd": 17.5,
"hourlyCommitmentHours": 40,
"hourlyCommitmentInterval": "week",
"hourlyDuration": "unspecified",
"skills": ["Sales", "CRM", "Real Estate", "Spanish Translator", "Customer Service", "Lead Generation", "Appointment Setting", "Cold Calling"],
"skillIds": [64, 147, 443, 521, 671, 1683, 1694, 3415],
"categories": ["Sales & Marketing", "Translation & Languages", "Data Entry & Admin"],
"isSealed": false, "isFeatured": false, "isUrgent": false, "isNda": false,
"isFulltime": false, "isPremium": false, "isRecruiter": false, "isLocal": false,
"bidsHidden": false,
"status": "open",
"postedAt": "2026-09-20T01:27:46.000Z",
"updatedAt": "2026-09-20T07:28:23.000Z",
"bidPeriodDays": 7,
"bidsCloseAt": "2026-09-27T01:27:46.000Z",
"language": "en",
"projectCountry": null,
"projectCity": null,
"clientDetailsFetched": true,
"clientCountry": "United States",
"clientCountryCode": "US",
"clientCity": "DORAL",
"clientRating": 5,
"clientReviewCount": 4,
"clientMemberSince": "2022-01-03T01:31:14.000Z",
"clientPaymentVerified": true,
"clientEmailVerified": true,
"clientPhoneVerified": true,
"clientProfileComplete": true,
"clientDepositMade": true,
"scrapedAt": "2026-09-20T07:45:12.637Z"
}

The categories list is cut short; the real row carries five.

FieldHow to read it
budgetMin, budgetMaxWhat the client asked for. A total on a fixed project and an hourly rate on an hourly one. Read budgetType before you compare two rows. budgetMax is missing on open-ended budgets.
averageBidWhat freelancers are actually asking, which is often nowhere near the budget. This is the number that tells you the going rate.
budgetMinUsd, budgetMaxUsd, averageBidUsdThe same figures converted, so a mixed-currency export sorts properly.
bidCountnull when nobody has bid yet. The bid filters read that as zero.
clientRatingOnly about a third of projects have one, because most clients have never been reviewed. Read clientReviewCount first: a zero-star client with zero reviews is a new client, not a bad one.
clientPaymentVerified, clientDepositMadeThe two flags worth more than the rating when you are deciding whether a client is real.
bidsCloseAtWhen bidding ends, derived from postedAt and bidPeriodDays.
projectCountry, projectCitySet only on the small share of projects that need somebody on site.
skills, skillIdsNames and Freelancer's numeric ids. Feed the ids straight back into skills on the next run.

🧾 Reading the output

RowHow to spot itCharged
A projectIt has a projectIdyes
The sample row_sample: true and charged: falseno
A diagnosticAn errorCode and no projectIdno

Real project rows carry no charged field at all, so filter on _sample being absent rather than on charged being true.

errorCodeWhat it means
NO_RESULTSThe search ran and matched nothing. Loosen a filter or widen the keyword.
UNKNOWN_SKILLA skill name could not be matched. Use the exact name from the site, its slug, or its id.
SKILL_LOOKUP_FAILEDThe skill list could not be read. Re-run it.
API_ERRORFreelancer answered the search with an error.
HTTP_ERRORFreelancer was unreachable or answered badly.
BAD_JSONThe answer could not be read. Re-run it.

💡 What people use it for

  • Finding fresh work nobody has quoted on: maxBids at 5, sorted newest, on a schedule.
  • Reading the real going rate for a skill, by comparing averageBidUsd against budgetMinUsd across a few hundred projects rather than guessing.
  • Filtering for clients who have actually paid before, using clientPaymentVerified and clientDepositMade instead of a star rating most clients do not have.
  • Watching demand for a skill over time, by running the same skill filter weekly and counting rows.

🚧 What it does not do

  • Open projects only. No completed or awarded work, and no history.
  • No bid lists. You get the count and the average, not who bid or what each of them said.
  • No contests and no freelancer profiles. Projects only.
  • About 5,000 projects is as deep as one search goes. Use narrower searches rather than a bigger number.
  • Most clients have no rating, so a rating filter of your own would throw away most of the market. The verification flags are the better signal.
  • Budget filters need a USD conversion. A project Freelancer gives no exchange rate for is dropped by those filters rather than guessed at.
  • Listing upgrades are rare. Filtering on featured, sealed, urgent or NDA will return very little.
  • Rows are a snapshot. Bid counts move fast and bidding closes. bidsCloseAt tells you when.
  • It is not an official Freelancer.com tool. Dami's Studio is independent and is not affiliated with or endorsed by Freelancer.com, or by any other company named on this page.

🧭 Which freelance scraper do you need?

If you wantUse
Open projects on Freelancer.com, with the budget, bid count and average bidThis one
Gigs sellers offer on Fiverr, with prices and delivery timesFiverr Scraper
Open projects on Workana's English, Spanish and Portuguese boardsWorkana Jobs Scraper
Agencies on Clutch, with their hourly rate band and team sizeClutch Agencies Scraper
Remote jobs, with the region the employer hires fromRemotive Jobs Scraper
Startup jobs with salary and equityWellfound Jobs Scraper

❓ Questions people ask

Do I need a Freelancer account?

No. Everything here is public project data.

Why is a $15 to $25 budget showing on a project that will take weeks?

Because it is hourly. Check budgetType, which reads hourly_rate on those rows.

Why does the average bid sit above the budget?

That happens a lot. The budget is what the client hoped for and averageBid is what the market is asking. That gap is the most useful thing on the row.

Why do so many clients have a zero rating?

Because most of them have never been reviewed. clientReviewCount tells you which zeros are new clients rather than bad ones.

Skills. Freelancer applies that one itself, so it cuts the work rather than just cutting the output.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/freelancer-com-scraper. Either way the run happens on your Apify account at the same price.

These are public project listings. Check Freelancer's terms and your own local rules before using the output commercially. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the keyword or skill and the run ID. If you got a diagnostic row, its errorCode usually names the problem on its own.