
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Search open Freelancer.com projects by keyword, skill or job search link, or paste project links. Get title, full description, budget in the original currency and USD, bid count and average bid, skills, categories, posting time, payment-verified badge and optional client details. No login needed.
Export open projects from Freelancer.com in seconds: title, full description, budget in the original currency and in US dollars, bid count and average bid, skills, categories, posting time and the client's payment-verified badge. Search by keyword or skill, paste job search links or single project links, and filter by project type, budget, bids and age. No login, no browser, and you pay only for the projects you get.
seo, wordpress developer), or add Skills, or paste Freelancer.com links (job search pages like freelancer.com/jobs/seo/ or project pages).| Field | What it does |
|---|---|
searchQueries | Keywords; each one is its own search |
skills | Skill names or slugs (SEO, web-development) or whole categories (Translation & Languages); projects with any of them |
startUrls | Job search links (skill, multi-skill and category pages) and project links |
maxResults | Projects per search (default 20, 0 = all) |
projectType | all, fixed or hourly |
minBudget / maxBudget | Budget range in USD (hourly rate for hourly projects) |
minBids / maxBids | Number of bids |
postedWithinHours | Only projects posted in the last N hours |
paymentVerifiedOnly | Only clients with a verified payment method |
languages | Project language codes, e.g. en, es |
sortBy | newest, relevance, most_bids, fewest_bids, oldest |
includeClientDetails | Add client location, rating, reviews and verifications (extra event) |
{
"searchQueries": ["shopify", "react native"],
"maxResults": 50,
"projectType": "fixed",
"minBudget": 250,
"maxBids": 25,
"postedWithinHours": 24,
"paymentVerifiedOnly": true,
"includeClientDetails": true
}
One row per project.
| Field | Description |
|---|---|
id, title, url | Project id, title and link |
type, status | fixed or hourly; open or closed |
budgetMin, budgetMax, currency, budgetText | Budget in the project's own currency |
budgetMinUsd, budgetMaxUsd, budgetUsdText | Budget converted to US dollars |
hourlyHours, hourlyInterval, hourlyDuration | Hourly commitment (e.g. 40 hours per week) |
bidCount, bidAvg, bidAvgUsd, bidAvgText | Number of bids and the average bid |
paymentVerified | Client has a verified payment method |
postedAt, bidPeriodDays, timeLeft | Posting time (UTC), bidding period and time left |
skills, skillIds, skillSlugs, categories | Required skills and their categories |
description, language | Full project description and its language |
featured, urgent, sealed, nda, fulltime, highlighted, local | Listing upgrades and flags |
country, city, region, vicinity, latitude, longitude | Location of local (on-site) projects |
client* | With client details on: location, country code, rating, review count, member since, payment / deposit / email / phone / profile verification |
searchQuery, searchSkills, sourceUrl, scrapedAt | Where the row came from and when |
Example (trimmed):
{
"id": 40779432,
"title": "Wix Dancewear Shop Setup",
"url": "https://www.freelancer.com/projects/wix/wix-dancewear-shop-setup",
"type": "fixed",
"status": "open",
"budgetMin": 20,
"budgetMax": 250,
"currency": "GBP",
"budgetText": "£20 - £250 GBP",
"budgetMinUsd": 26.79,
"budgetMaxUsd": 334.88,
"budgetUsdText": "$27 - $335",
"bidCount": 311,
"bidAvg": 123.7,
"bidAvgUsd": 165.7,
"bidAvgText": "$165",
"paymentVerified": true,
"postedAt": "2026-10-21T11:46:33Z",
"bidPeriodDays": 7,
"timeLeft": "6 days left",
"skills": ["Website Design", "SEO", "eCommerce", "HTML", "Wix", "Web Development", "Web Design"],
"categories": ["Design, Media & Architecture", "Websites, IT & Software", "Engineering & Science"],
"description": "I have already uploaded every costume, piece of dancewear, shoe and accessory we sell into the Wix Product Manager, but the storefront itself is still a blank page…",
"language": "en",
"featured": false,
"urgent": false,
"sealed": false,
"nda": false,
"clientLocation": "Maidenhad, United Kingdom",
"clientCountryCode": "GB",
"clientRating": 5,
"clientReviewCount": 28,
"clientMemberSince": "2015-11-09",
"clientPaymentVerified": true,
"clientDepositMade": true,
"clientEmailVerified": true,
"clientPhoneVerified": true,
"searchSkills": ["PHP", "HTML"],
"scrapedAt": "2026-10-21T12:36:54Z"
}
Is it legal to scrape Freelancer.com? The actor reads only public project listings that anyone can see without an account. You are responsible for how you use the data; check the site's terms and your local laws, especially for personal data.
Do I need a Freelancer.com account or a proxy? No login. The default US datacenter proxy works; if the site ever refuses it, the run switches to US residential exits by itself.
How many projects can I get? As many as the site lists for your search. Freelancer.com usually shows a few thousand open projects in total, a few hundred per popular keyword. Set maxResults to 0 for everything.
Why is a field empty? Fields appear only when the project publishes them: hourly fields are empty for fixed-price projects, location fields only exist for local (on-site) projects, and bidAvgText / budgetUsdText come from the search table and are empty for project links (the numeric USD fields are always filled).
Are contests included? No. The actor returns projects only; contests are skipped.
Can I schedule it or use the API? Yes. Schedule runs (e.g. hourly with postedWithinHours: 2) and fetch results through the API or integrations.
/jobs/websites-it-software/) search every skill of that category, so they honour sortBy and the filters./jobs/united-states/ that the site answers with all jobs) are skipped and reported in the status message instead of returning unrelated projects.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch keywords
Keywords to search open projects for, one per line (e.g. 'seo', 'wordpress developer', 'logo design'). Each keyword is its own search.
skillsarrayOptionalSkills
Optional skill filter: skill names or slugs as shown on freelancer.com/jobs (e.g. 'SEO', 'web-development', 'Graphic Design'), or whole categories (e.g. 'Translation & Languages'). Projects with ANY of these skills are returned. Combined with each keyword, or searched on its own when no keyword is set.
startUrlsarrayOptionalFreelancer.com links
Job search links (freelancer.com/jobs/seo/, freelancer.com/jobs/websites-it-software/, freelancer.com/jobs/php_html/) or project links (freelancer.com/projects//). Each search link is its own search; each project link returns that project.
maxResultsintegerOptionaldefault 20Max projects per search
How many projects to save per keyword or search link. 0 means everything the site lists (it shows a few thousand open projects in total).
projectTypeenumOptionaldefault "all"Project type
Fixed-price projects, hourly projects, or both.
minBudgetintegerOptionalMin budget (USD)
Keep projects whose budget reaches at least this amount in US dollars (the hourly rate for hourly projects). Budgets in other currencies are converted at the site's rate.
maxBudgetintegerOptionalMax budget (USD)
Keep projects whose budget starts at or below this amount in US dollars (the hourly rate for hourly projects).
minBidsintegerOptionalMin bids
Keep projects with at least this many bids.
maxBidsintegerOptionalMax bids
Keep projects with at most this many bids (e.g. 10 to find projects with little competition).
postedWithinHoursintegerOptionalPosted within (hours)
Keep projects posted in the last N hours (e.g. 24). Empty or 0 means any time.
paymentVerifiedOnlybooleanOptionaldefault falsePayment-verified clients only
Keep only projects whose client has a verified payment method.
languagesarrayOptionalProject languages
Two-letter language codes of the project text (e.g. 'en', 'es', 'de'). Empty means every language.
sortByenumOptionaldefault "newest"Sort by
Order in which the site returns projects.
includeClientDetailsbooleanOptionaldefault falseInclude client details
Open each project page and add the client's location, rating, review count, member-since date and verifications (payment, deposit, email, phone, profile). Charged as an extra event per project.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy
US datacenter exits work well for freelancer.com. If the site refuses them, the run switches to US residential exits by itself.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | number | Freelancer.com project id |
| title | string | |
| url | string | |
| type | string | null | |
| status | string | null | |
| budgetMin | number | null | |
| budgetMax | number | null | |
| currency | string | null | |
| budgetText | string | null | |
| budgetMinUsd | number | null | |
| budgetMaxUsd | number | null | |
| budgetUsdText | string | null | |
| hourlyHours | number | null | |
| hourlyInterval | string | null | |
| hourlyDuration | string | null | |
| bidCount | number | null | |
| bidAvg | number | null | |
| bidAvgUsd | number | null | |
| bidAvgText | string | null | |
| paymentVerified | boolean | null | |
| postedAt | string | null | |
| updatedAt | string | null | |
| bidPeriodDays | number | null | |
| timeLeft | string | null | |
| skills | array | |
| skillIds | array | |
| skillSlugs | array | |
| categories | array | |
| description | string | null | |
| language | string | null | |
| featured | boolean | null | |
| urgent | boolean | null | |
| sealed | boolean | null | |
| nda | boolean | null | |
| fulltime | boolean | null | |
| recruiter | boolean | null | |
| highlighted | boolean | null | |
| local | boolean | null | |
| hireMe | boolean | null | |
| country | string | null | |
| countryCode | string | null | |
| city | string | null | |
| region | string | null | |
| vicinity | string | null | |
| latitude | number | null | |
| longitude | number | null | |
| clientLocation | string | null | |
| clientCity | string | null | |
| clientCountry | string | null | |
| clientCountryCode | string | null | |
| clientMemberSince | string | null | |
| clientRating | number | null | |
| clientReviewCount | number | null | |
| clientPaymentVerified | boolean | null | |
| clientDepositMade | boolean | null | |
| clientEmailVerified | boolean | null | |
| clientPhoneVerified | boolean | null | |
| clientProfileComplete | boolean | null | |
| searchQuery | string | null | |
| searchSkills | array | null | |
| sourceUrl | string | null | |
| scrapedAt | string |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Client details | Client location, rating, reviews and verifications added to one project (only with Include client details). | $0.001 |
| Project | One saved Freelancer.com project. | $0.0007 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('openrole/freelancer-scraper').call({
"searchQueries": [
"seo"
],
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run openrole/freelancer-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=openrole/freelancer-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Open hourly-rate projects for a keyword.
Search by skill instead of keyword.
Paste freelancer.com category or skill pages.
Adds client location, rating, reviews and verifications.
Verified clients only, 10 results.
Projects written in Spanish, newest first.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.