Freelancer Projects, Budgets & Bids Scraper
Pricing
from $6.15 / 1,000 results
Freelancer Projects, Budgets & Bids Scraper
Scrape freelance project listings from Freelancer.com worldwide. Extract title, full brief, fixed or hourly budget with currency, bid count, average bid, required skills, status and posting date. Export to JSON, CSV or Excel. No login needed.
Pricing
from $6.15 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Share
Freelancer Projects, Budgets & Bids Scraper
Here is one real result, with every field the actor returns (the description is trimmed here for readability; the actor returns the full brief):
{"projectId": 40641387,"title": "Part Time Business Development Executive Needed for Performance Marketing Agency","description": "Company Description\n\nVitrix is a data-driven, AI-powered growth company ... [full project brief returned in the actual record] ... Additional earning potential based on performance","type": "Fixed","budgetMin": 37500,"budgetMax": 75000,"currency": "INR","currencyName": "Indian Rupee","budgetMinUsd": 392.96,"budgetMaxUsd": 785.93,"avgBidUsd": 599.68,"bidCount": 4,"avgBid": 57227.27,"skills": ["Telemarketing", "Sales", "Telephone Handling", "Digital Agency Sales", "Sales Management", "Business Development", "Cold Calling"],"hourlyHours": null,"hourlyInterval": null,"bidPeriodDays": 7,"sealed": false,"featured": false,"urgent": false,"nda": false,"fulltime": false,"recruiter": false,"hireMe": false,"status": "open","language": "en","postedAt": "2026-08-11T18:35:41.000Z","updatedAt": "2026-08-14T11:47:31.000Z","url": "https://www.freelancer.com/projects/business-development/Part-Time-Business-Development-Executive-40641387","aiSummary": "Vitrix is seeking a part-time Telecaller to make outbound calls to potential clients, introduce their services, and convert leads into sales. The role requires a minimum commitment of 3 hours per day, with compensation including a fixed pay and commission on closed deals.","aiSkills": ["Telemarketing", "Sales", "Telephone Handling", "Digital Agency Sales", "Sales Management", "Business Development", "Cold Calling", "Verbal Communication", "Active Listening", "Persuasion", "Customer Requirements Understanding", "Time Management", "Organizational Skills", "Remote Work", "Digital Marketing", "Social Media", "Website Development", "Technology Services"],"aiCategory": "Sales","aiSubcategory": "Business Development","aiSeniority": "junior","aiTags": ["Telemarketing", "Sales", "Cold Calling", "Digital Marketing", "Lead Generation"],"observedAt": "2026-08-14T07:49:27.015Z","error": null}
The most complete Freelancer.com project scraper available. It returns every field the public Freelancer.com projects feed exposes for each posting, plus derived fields (budgets and average bids normalized to USD for cross-currency comparison) and optional AI enrichment, and gives you filters for keyword, project type, skill ID and budget to target exactly the projects you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor queries the public Freelancer.com projects API, applies the filters you pass as input, pages through the matching active projects fifty at a time, and writes one normalized record per project to the run's dataset. Each project's budget and average bid are converted to USD (budgetMinUsd, budgetMaxUsd, avgBidUsd) using the project's own exchange rate so you can compare across currencies, dates are normalized to ISO 8601, and missing source values are returned as null. Optional AI add-ons (summary, skills extraction, categorization) run per project when enabled on a paid plan.
Data covers active public project listings from Freelancer.com worldwide. Freelancer.com withholds the project owner (employer) identity on public unauthenticated reads, so the employer field stays null even when requested.
Quickstart
Open the actor, paste this into the input, and press Run. It returns 3 active projects matching react website, with all three AI add-ons enabled.
{"query": "react website","maxProjects": 3,"withAiSummary": true,"withAiSkills": true,"withAiCategorize": true,"withEmployer": false}
Leave query empty to browse the newest active projects across all categories. Every input field is optional; with an empty input the actor returns the newest active projects (default maxProjects prefill is 10).
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
maxProjects | integer | no | 10 | Maximum number of projects to collect. Also accepts maxItems. |
query | string | no | (empty) | Keyword matched against active projects, for example python, logo design, wordpress. Empty browses the newest projects across all categories. |
projectTypes | string[] | no | (both) | Limit to fixed and/or hourly projects. Empty returns both. |
jobs | string[] | no | (none) | Freelancer.com numeric skill (job) IDs to filter by, for example 13 (Python), 95 (Web Scraping), 3 (PHP). |
minBudget | integer | no | (none) | Only return projects whose average budget is at least this amount, in the project's own currency. |
withEmployer | boolean | no | false | Attempt to include the project owner profile. Freelancer.com withholds this on public reads, so employer is returned as null. |
withAiSummary | boolean | no | false | Paid add-on. Adds aiSummary, a plain-English summary of the posting. Charged only on usable output. Requires a paid Apify plan. |
withAiSkills | boolean | no | false | Paid add-on. Adds aiSkills, AI-extracted skills and technologies. Charged only on usable output. Requires a paid Apify plan. |
withAiCategorize | boolean | no | false | Paid add-on. Adds aiCategory, aiSubcategory, aiSeniority and aiTags. Charged only on usable output. Requires a paid Apify plan. |
proxyConfiguration | object | no | (none) | Standard Apify proxy configuration. Not required; the source is not bot protected. |
Filters combine with logical AND. Empty filters are ignored.
Output reference
One dataset item per project. Types: string, integer, number, boolean, string[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
projectId | integer | Freelancer.com numeric project ID (unique per project). |
title | string | Project title. |
description | string | Full project brief. |
type | string | Fixed or Hourly. |
budgetMin | integer | Minimum budget in the project's own currency, or null. |
budgetMax | integer | Maximum budget in the project's own currency, or null when the client set no upper bound. |
currency | string | Currency code of the budget, for example INR, USD, EUR. |
currencyName | string | Full currency name. |
budgetMinUsd | number | budgetMin converted to USD using the project exchange rate. |
budgetMaxUsd | number | budgetMax converted to USD. |
avgBidUsd | number | Average bid converted to USD. |
bidCount | integer | Number of bids placed on the project. |
avgBid | number | Average bid in the project's own currency. |
skills | string[] | Tagged skills for the project, or null. |
hourlyHours | integer | Committed hours for hourly projects, else null. |
hourlyInterval | string | Commitment interval for hourly projects (for example week), else null. |
bidPeriodDays | integer | Number of days the project accepts bids. |
sealed | boolean | true when bids are sealed (hidden from other bidders). |
featured | boolean | true when the client paid to feature the project. |
urgent | boolean | true when marked urgent. |
nda | boolean | true when an NDA is required. |
fulltime | boolean | true when marked as full-time work. |
recruiter | boolean | true when a recruiter upgrade is set. |
hireMe | boolean | true when the project is a direct hire-me offer. |
status | string | Project status, for example open. |
language | string | Language code of the posting. |
postedAt | string | ISO 8601 timestamp the project was submitted. |
updatedAt | string | ISO 8601 timestamp the project was last updated. |
url | string | Public URL of the project on Freelancer.com. |
employer | object | Present only when withEmployer is set; returned as null (withheld by the source). |
aiSummary | string | AI plain-English summary. null unless withAiSummary produced output. |
aiSkills | string[] | AI-extracted skills and technologies. null unless withAiSkills produced output. |
aiCategory | string | AI main category. null unless withAiCategorize produced output. |
aiSubcategory | string | AI subcategory. null unless withAiCategorize produced output. |
aiSeniority | string | AI seniority estimate (junior, mid, senior, unspecified). null unless enabled. |
aiTags | string[] | AI keyword tags. null unless withAiCategorize produced output. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"query": "react website", "maxProjects": 3, "withAiSummary": true, "withAiSkills": true, "withAiCategorize": true}). The description is trimmed here with an explicit note; all values are real:
{"projectId": 40641387,"title": "Part Time Business Development Executive Needed for Performance Marketing Agency","description": "[full project brief returned in the actual record]","type": "Fixed","budgetMin": 37500,"budgetMax": 75000,"currency": "INR","currencyName": "Indian Rupee","budgetMinUsd": 392.96,"budgetMaxUsd": 785.93,"avgBidUsd": 599.68,"bidCount": 4,"avgBid": 57227.27,"skills": ["Telemarketing", "Sales", "Telephone Handling", "Digital Agency Sales", "Sales Management", "Business Development", "Cold Calling"],"hourlyHours": null,"hourlyInterval": null,"bidPeriodDays": 7,"sealed": false,"featured": false,"urgent": false,"nda": false,"fulltime": false,"recruiter": false,"hireMe": false,"status": "open","language": "en","postedAt": "2026-08-11T18:35:41.000Z","updatedAt": "2026-08-14T11:47:31.000Z","url": "https://www.freelancer.com/projects/business-development/Part-Time-Business-Development-Executive-40641387","aiSummary": "Vitrix is seeking a part-time Telecaller to make outbound calls to potential clients, introduce their services, and convert leads into sales. The role requires a minimum commitment of 3 hours per day, with compensation including a fixed pay and commission on closed deals.","aiSkills": ["Telemarketing", "Sales", "Telephone Handling", "Digital Agency Sales", "Sales Management", "Business Development", "Cold Calling", "Verbal Communication", "Active Listening", "Persuasion", "Customer Requirements Understanding", "Time Management", "Organizational Skills", "Remote Work", "Digital Marketing", "Social Media", "Website Development", "Technology Services"],"aiCategory": "Sales","aiSubcategory": "Business Development","aiSeniority": "junior","aiTags": ["Telemarketing", "Sales", "Cold Calling", "Digital Marketing", "Lead Generation"],"observedAt": "2026-08-14T07:49:27.015Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~freelancer-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"query":"react website","projectTypes":["fixed"],"maxProjects":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~freelancer-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"query":"wordpress","minBudget":250,"maxProjects":100}'
Apify CLI:
apify call scrapers_lat/freelancer-scraper \--input '{"query":"python","jobs":["13"],"maxProjects":50}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per project record returned (
resultevent). See the pricing tab for the current per-result price. - Optional AI add-ons (
ai_summary,ai_skills,ai_categorize) are billed separately and only when they produce usable output, and only on paid Apify plans. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxProjects.
FAQ and troubleshooting
A run returned 0 records. Why?
No active projects matched the filter combination. Loosen filters (remove minBudget or jobs, or broaden query). Zero-result runs are not charged.
Why is the employer or client name missing?
Freelancer.com withholds the project owner identity on public unauthenticated reads. The employer field is returned as null by design; the actor never invents it.
How are budgets in different currencies compared?
Each project keeps its native currency, budgetMin and budgetMax, and the actor also returns budgetMinUsd, budgetMaxUsd and avgBidUsd converted to USD using the project's own exchange rate.
Why are the hourly fields null?
hourlyHours and hourlyInterval only apply to hourly projects. On fixed-price projects they are null.
Do the AI fields cost extra? Yes. They are opt-in paid add-ons, billed only when they return usable output, and disabled on free Apify plans.
Is this an official Freelancer.com tool? No. This actor is independent and has no affiliation with Freelancer.com. It reads only data that is publicly available on the platform. Use it in accordance with Freelancer.com's terms of service.
Related scrapers
- LinkedIn Job Listings Scraper: Public LinkedIn job postings by keyword and location worldwide.
- Computrabajo Job Listings Scraper: Job listings from Computrabajo across LATAM countries.
- Dice Tech Job Listings Scraper: Public Dice.com tech job postings by keyword and location.
- GetOnBrd Tech Jobs & Salary Scraper: LATAM tech jobs and salary data from GetOnBrd.
- Ashby Job Listings Scraper: Public job postings from Ashby-hosted careers boards.
- Breezy HR Job Listings Scraper: Public job postings from Breezy HR careers boards.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Freelancer.com. Accesses only publicly available data. Use in accordance with Freelancer.com's terms of service.
