Freelancer Scraper — Jobs, Budgets, Skills, Bids
Pricing
from $15.00 / 1,000 job scrapeds
Freelancer Scraper — Jobs, Budgets, Skills, Bids
Scrape Freelancer.com jobs, budgets, required skills, and bid statistics at scale. Filter by skill, budget, language, competition. USD-normalised pricing. Built-in analytics report: skill demand, budget distribution, top opportunities. Proxies included.
Pricing
from $15.00 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
Yuliia Kulakova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Freelancer Scraper — Jobs · Budgets · Skills · Bids
Extract Freelancer.com job listings, budgets, required skills, and bid statistics — at scale, without coding. Built on the public Freelancer REST API for speed and reliability.

Filter by skill, budget, language. Built-in market analytics. Export to JSON, CSV, Excel, XML, or Google Sheets. Proxies included.
What You Get
- Direct API access — no browser, no DOM parsing. 5–10× faster than Playwright-based scrapers.
- Up to 10,000 jobs per run with pagination handled automatically.
- Smart filters that actually work:
- Skills (
["Python", "Django"]) resolved to Freelancer skill IDs server-side - Budget range with USD normalisation (projects in INR/EUR are converted before filtering)
- Low-competition filter (
maxBids) - Sealed-bid exclusion
- Hourly vs fixed-price toggle
- Language filter (ISO 639-1)
- Skills (
- Built-in analytics report saved to Key-Value Store:
- Top 30 skills by demand
- Budget distribution (5 ranges, USD)
- Competition levels (low/medium/high)
- Top 10 opportunities (high-budget + low-competition score)
- Proxies included — no setup, works out of the box.
- Honest scope: returns project-level data only. Freelancer's public API does not expose client/owner profiles without OAuth — those fields are not in the output (see FAQ).
Use Cases
For Freelancers
Find low-competition jobs in your niche. Set maxBids: 10 + skills: ["React", "Next.js"] and the analytics report surfaces the best opportunities scored by budget / bids.
For Agencies & Researchers
Track market rates by skill, language, or category. Run weekly with a saved input — fresh dataset each run, ready for BI tools or Google Sheets.
For Job Board Builders
Pull Freelancer listings into a unified job feed. Stable REST-API source means no breakage from front-end changes.
Quick Start
Paste this into the Input tab and click Start:
{"searchQuery": "web scraping","maxResults": 100}
Results appear in the Dataset tab in real time. Analytics report lands in Storage → Key-Value Store → ANALYTICS.
Common Inputs
Low-competition Python jobs
{"skills": ["Python", "Django"],"maxBids": 10,"maxResults": 50}
High-budget fixed projects ($1k–$5k)
{"searchQuery": "developer","projectType": "fixed","minBudget": 1000,"maxBudget": 5000,"maxResults": 200}
Hourly contracts only
{"searchQuery": "wordpress","projectType": "hourly","hasExistingBids": true,"maxResults": 100}
Category page (everything tagged "Python")
{"startUrls": [{"url": "https://www.freelancer.com/jobs/python/"}],"maxResults": 500}
Input Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
searchQuery | String | Keywords to search | web scraping |
startUrls | Array | Freelancer.com URLs (/jobs/{slug}/ or /search/projects/?q=...) | — |
projectType | String | all, fixed, or hourly | all |
minBudget | Integer | Minimum average budget (USD-normalised) | 0 |
maxBudget | Integer | Maximum average budget (USD-normalised) | 0 |
skills | Array | Skill names — case-insensitive match against Freelancer's skill catalog | — |
language | String | ISO 639-1 (en, de, fr, …) | en |
maxBids | Integer | Only projects with fewer than N bids (strict <) | 0 |
hasExistingBids | Boolean | Only projects with at least one bid placed | false |
excludeSealed | Boolean | Exclude projects where bids are hidden | false |
maxResults | Integer | Max jobs per run (1–10,000) | 100 |
sortBy | String | time_submitted or bid_count | time_submitted |
includeAnalytics | Boolean | Save analytics report to Key-Value Store | true |
proxyConfiguration | Object | Optional — leave empty unless overriding | — |
requestDelayMs | Integer | Delay between API requests (ms) | 500 |
Output — Dataset Fields
Sample item:
{"id": 40502083,"title": "Need AI Chatbot Integrated Into Existing Website","url": "https://www.freelancer.com/projects/ai-chatbot-development/Need-Chatbot-Integrated-Into-Existing","description": "I'm looking for a developer who can integrate an AI chatbot...","previewDescription": "I'm looking for a developer who can integrate an AI chatbot into our existing website.","type": "fixed","status": "open","skills": ["Python", "Linux", "Node.js", "Docker", "Web Development", "AI Development"],"skillCategories": ["Websites, IT & Software", "Artificial Intelligence"],"skillIds": [13, 31, 500, 1002, 1031, 2986],"budget": {"minimum": 30,"maximum": 250,"midpoint": 140,"midpointUsd": 140,"currency": "USD","currencySign": "$","exchangeRate": 1},"bids": {"count": 145,"avgPrice": 144.82},"upgrades": {"featured": false,"urgent": false,"sealed": false,"nda": false,"premium": false,"qualified": false},"language": "en","isLocal": false,"bidPeriodDays": 7,"deadline": "2026-06-16T11:57:37.000Z","hoursToClose": 166.7,"postedAt": "2026-06-09T11:57:37.000Z","updatedAt": "2026-06-09T11:57:37.000Z","scrapedAt": "2026-06-09T13:15:57.806Z"}
All Fields
| Field | Type | Description |
|---|---|---|
id | Integer | Freelancer project ID |
title | String | Project title |
url | String | Direct URL to the project page |
description | String | Full project description |
previewDescription | String | Short summary |
type | String | fixed or hourly |
status | String | open, closed, etc. |
skills | Array | Required skill names |
skillCategories | Array | Skill category names |
skillIds | Array | Freelancer internal skill IDs |
budget.minimum | Number | Minimum budget (project currency) |
budget.maximum | Number | Maximum budget (project currency) |
budget.midpoint | Number | Midpoint (project currency) |
budget.midpointUsd | Number | Midpoint normalised to USD |
budget.currency | String | Currency code (USD, INR, EUR, …) |
budget.exchangeRate | Number | Rate used for USD conversion |
bids.count | Integer | Number of bids received |
bids.avgPrice | Number | Average bid amount (project currency) |
upgrades.featured | Boolean | Featured (paid upgrade) |
upgrades.urgent | Boolean | Marked urgent |
upgrades.sealed | Boolean | Bids hidden from other bidders |
upgrades.nda | Boolean | NDA required |
upgrades.premium | Boolean | Premium upgrade |
upgrades.qualified | Boolean | Qualified bidders only |
language | String | Project language (ISO 639-1) |
isLocal | Boolean | Local-only project |
bidPeriodDays | Integer | Days project accepts bids |
deadline | String | ISO 8601 — when bidding closes |
hoursToClose | Number | Hours remaining (negative if closed) |
postedAt | String | ISO 8601 — when posted |
updatedAt | String | ISO 8601 — last update |
scrapedAt | String | ISO 8601 — when scraped |
Analytics Report
Enable includeAnalytics: true (default). Saved to Storage → Key-Value Store → ANALYTICS.
Includes:
- Summary — total jobs, fixed vs hourly, featured/urgent counts
- Budget analysis — average, median, distribution across 5 USD ranges (under $50, $50–250, $250–750, $750–1,500, over $1,500), both fixed and hourly
- Skill demand — top 30 skills ranked by frequency
- Competition — average bids/project, low (<10) / medium (10–24) / high (25+) breakdown
- Top categories & languages — most common skill categories and project languages
- Project upgrades — featured/urgent/sealed/NDA statistics
- Top opportunities — up to 10 high-budget low-competition projects scored by
midpointUsd / (bids + 1)
Pricing
This actor uses pay-per-result pricing:
| Event | Price |
|---|---|
| Actor start | $0.01 |
| Per job scraped | $0.015 |
Examples
| Jobs scraped | Total cost |
|---|---|
| 100 | $1.51 |
| 500 | $7.51 |
| 1,000 | $15.01 |
| 5,000 | $75.01 |
| 10,000 | $150.01 |
Free Apify trial credit ($5) covers ~333 jobs for evaluation.
Scheduled Runs
Monitor Freelancer.com automatically:
- Open the actor → Schedule → New schedule
- Set a cron expression (e.g.
0 8 * * *for 8 AM daily) - Fresh dataset each run
- Connect to Google Sheets, Airtable, webhooks via Apify Integrations
FAQ
Is this scraper legal? Yes. It uses the same public Freelancer.com REST API that the website itself uses. No authentication bypass, no private data. Review Freelancer.com's Terms for your specific use case.
Does it include client/owner information? No. Freelancer's public API does not return client profile data (username, country, rating, hire rate) without authenticated OAuth access. This actor returns project-level data only.
Do I need to configure a proxy?
No. Proxies are included and configured automatically. proxyConfiguration is optional and only used if you want to override with your own.
Why is this faster than other Freelancer scrapers? Most scrapers launch a full browser (Playwright/Puppeteer). This actor uses lightweight HTTP requests to Freelancer's public REST API — no browser overhead, 5–10× faster.
Can I filter by multiple skills at once?
Yes. Add names to the skills array. They're resolved against Freelancer's skill catalog (case-insensitive) and applied as an OR filter.
What if a skill name doesn't match?
You'll see a warning in the log (No matching skill IDs found for: X) and the actor will return all skills for that query. Skill names must match Freelancer's catalog — Python works, python developer does not (use searchQuery for that).
Can I use a category URL?
Yes. Paste https://www.freelancer.com/jobs/python/ into startUrls — the actor resolves the slug to a skill ID automatically.
How accurate is the budget filter? Filtering is done in USD using Freelancer's published exchange rates. Projects in INR, EUR, GBP, etc. are normalised before the min/max check — you won't get noise from currency differences.
Where is the analytics report?
Run → Storage tab → Key-Value Store → click ANALYTICS.
What's the default sort order?
Newest first (time_submitted). Note: Freelancer may prepend featured/promoted projects above the strict chronological order.
Support
Found a bug or want a new feature? Open an issue in the Issues tab on this actor's page. Response time typically under 24 hours.
Maintained by brilliant_gum on Apify.