Contra Scraper [💰$5/1K] | Freelancer Rates | Portfolios
Pricing
from $4.70 / 1,000 results
Contra Scraper [💰$5/1K] | Freelancer Rates | Portfolios
Scrape detailed freelance profiles from contra.com — hourly rates, skills, ratings, availability, portfolio projects and social links. Discover talent by profile URL or keyword.
Pricing
from $4.70 / 1,000 results
Rating
0.0
(0)
Developer
Ahmed Jasarevic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Contra Scraper
Scrape detailed freelance profiles from contra.com — the commission-free freelance marketplace — for talent research, rate benchmarking and lead generation. Extract hourly rates, skills, client ratings, availability, portfolio projects and contact-ready social links in clean JSON.
This is the only dedicated Contra.com profile scraper in the Apify Store. It runs entirely over plain HTTP (no browser): it reads the server-rendered Relay data embedded in each profile page and enriches it with Contra's internal GraphQL API — fast, cheap and no API key required.
Freelance Talent Use Cases
- Freelance rate benchmarking — compare hourly rates and rates-per-project across disciplines, roles and locations (design, development, writing, marketing, video and more)
- Talent research & recruiting — screen independents by skill, role, rating, availability and location before outreach
- Freelance talent database building — assemble a structured dataset of independents with skills, rates, ratings and portfolio links for staffing or reselling
- Market research on the freelance economy — analyze headcount, rates and in-demand skills on a commission-free platform
- Competitor / agency intelligence — monitor independent worker profiles for agencies and hiring platforms
How It Works
Provide profileUrls (direct profile links), or let the actor discover profiles automatically via searchQuery / searchRoles / searchTools. Every profile page embeds a server-rendered Relay data blob (the same JSON the site's own frontend hydrates from); the actor parses it and replays Contra's internal GraphQL persisted queries to fill in the fields that are only loaded client-side (bio, minimum hourly rate, productized services, work experience). Everything is written to your Apify dataset as clean JSON.
Build a Freelance Talent Database Without API Keys
Contra's public read-only API (X-API-Key) exists but is limited. This actor doesn't need it: it reads the embedded Relay profile store plus the internal GraphQL persisted queries directly, so you get profile details, availability, ratings, portfolio and productized services out of the box — no API keys, no browser, no CAPTCHAs.
Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
profileUrls | array | – | [] | Direct Contra profile URLs, e.g. https://contra.com/username. Mutually exclusive with discovery params. |
searchQuery | string | – | — | Keyword search over profiles: title, role, skills, tools. |
searchRoles | array | – | [] | Filter by role names, e.g. ["Web Developer", "Product Designer"]. Use individual role names (comma-separated text supported). |
searchTools | array | – | [] | Filter by tools, e.g. ["Figma", "React"] (comma-separated text also supported). |
minRateUsd | integer | – | – | Minimum hourly rate filter. |
maxRateUsd | integer | – | – | Maximum hourly rate filter. |
availableOnly | boolean | – | false | Only profiles marked as available for work (requires searchQuery). |
maxItems | integer | – | 50 | Maximum number of profiles to export (max 1000). |
proxy | object | – | off | Optional; usually not needed. |
Example Input
{"searchQuery": "React developer","maxRateUsd": 100,"availableOnly": true,"maxItems": 200}
Output
One dataset row per freelancer profile, with profile details where exposed by Contra's Public API.
| Field | Description |
|---|---|
username / url | Profile handle and URL |
name | Display name |
headline / professionalTitle | Profile headline |
hourlyRate | Rate (per hour or per project) |
skills | Skills list |
location | Location string |
bio | Profile bio |
availability | Availability status |
rating / reviewCount | Client rating and number of reviews |
followerCount / hiredCount | Social proof counts |
platformEarningsBadge | Earnings badge ($1+ … $10K+ etc.) |
portfolioProjects | Portfolio items (title, description, media) |
productizedServices | Services with price points |
workExperience | Work history |
socialLinks | GitHub/LinkedIn/etc. links |
avatarUrl | Avatar image URL |
Example Output
{"username": "janedoe","url": "https://contra.com/janedoe","name": "Jane Doe","headline": "Senior Product Designer","hourlyRate": 85,"skills": ["Figma", "UI Design", "Design Systems"],"location": "Lisbon, Portugal","bio": "I design SaaS products for early-stage startups.","availability": true,"rating": 4.9,"reviewCount": 23,"platformEarningsBadge": "$5K+","portfolioProjects": [{ "title": "Fintech dashboard", "media": ["https://…"] }],"socialLinks": ["https://linkedin.com/in/janedoe"]}
Download the dataset as JSON, HTML, CSV or Excel, or pull it via the Apify API.
Integrations & Automation
Use the actor's API endpoint from your CRM or scripts, trigger webhooks when a run finishes, or wire it into Zapier / Make via Apify integrations. For periodic market research, schedule a weekly "top freelancers by skill" run — recurring runs keep your talent dataset current.
Related Actors
- Upwork Freelancers Scraper — Upwork's largest freelancer-profile actor, same use cases
- Upwork Talent Scraper — Freelancers, Rates & Earnings — Upwork rates and lifetime earnings
- Upwork Freelancer & Talent Scraper — Upwork profile export
FAQ
Why use this actor instead of Contra's official API?
Contra does have a Public API (X-API-Key) and even a hosted MCP server (https://contra.com/mcp) for AI agents — but access requires requesting a free API key, and the API is read-only and limited (programs, filters, expert profiles). This actor needs no API key: it reads the server-rendered Relay data embedded in each profile page and enriches it via Contra's internal GraphQL persisted queries, so you get more profiles per run, headlessly, with no setup on Apify.
Is Contra commission-free?
Yes — that's Contra's core differentiator: it takes 0% commission, billing flat plans instead (typically €9–25/month for clients). Freelancers keep 100% of what they earn. Rate data scraped from profiles therefore reflects full rates, not commission-adjusted ones.
What are alternatives to this actor for freelance data?
The main alternatives are Upwork scrapers (see Related Actors). For Contra specifically, no other dedicated scraper exists in the Apify Store at the time of writing — this is the only one.
Can the actor find profiles automatically without URLs?
Yes. Use searchQuery (e.g. "React developer") and optionally filter by searchRoles, searchTools, minRateUsd/maxRateUsd, or availableOnly. Direct profileUrls are preferred when you have a specific target list.
Does the actor return profile details or only search results?
The output profile data comes in two tiers: basic profile fields (name, headline, skills, hourly rate, location, rating, counts) are always present; details (bio, portfolio projects, productized services, work experience) are fetched via Contra's internal GraphQL persisted queries, which return them for profiles that expose them. Profiles that are "under construction" may have mostly null fields; discover search additionally returns only the first page of results (8 profiles) per query.
Is scraping contra.com legal?
Web scraping operates in a legal gray area. This actor reads only publicly available profile pages/API responses. You are responsible for complying with contra.com's Terms of Service and applicable law (including GDPR when storing personal data such as names, bios and rates).
For AI Agents & LLM Apps
Purpose: Returns structured freelance profiles from contra.com — headline, hourly rate, skills, location, rating, availability, portfolio, social links — from direct URLs or keyword search.
Minimal input (search mode):
{ "searchQuery": "React developer", "maxItems": 50 }
Minimal input (direct URLs):
{ "profileUrls": [{ "url": "https://contra.com/username" }] }
Output fields: username, url, name, headline, professionalTitle, skills, hourlyRate, location, bio, availability, rating, reviewCount, followerCount, hiredCount, platformEarningsBadge, canReceiveInquiries, portfolioProjects, productizedServices, workExperience, socialLinks, avatarUrl.
Behaviors an agent should know:
profileUrlsand discovery params (searchQuery,searchRoles,searchTools) are mutually exclusive — supplying URLs takes precedence.availableOnlyrequiressearchQueryto be set; it is ignored otherwise.searchRoles/searchToolsaccept either arrays of names or a comma-separated string per field.maxItemscaps billing (default 50, max 1000).- Discover search returns only the first page of results (8 profiles) per query; for full coverage, re-run with the collected profile URLs.
- Profile details (bio, portfolio, services) come from Contra's internal GraphQL API — profiles "under construction" may return mostly null fields.
- Billing (pay-per-result): $0.005 per profile + $0.00005 actor start.
SEO Keywords
contra scraper, contra.com scraper, freelance profile scraper, freelance talent database, freelance rate benchmarking, upwork alternative data, freelance market research, independent contractor profiles, hire freelancers data, contra api alternative, freelance hourly rates, product designer rates, freelance skills data, commission-free freelance platform, talent acquisition data, freelancer lead generation, contra mcp, freelance portfolio data, remote freelancers database, contractor rate data
Legal & Compliance Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Contra (contra.com).
It accesses only publicly available profile pages and Contra's public API endpoints — no login bypass, no CAPTCHA solving, no credentials.
Users are responsible for their own compliance with contra.com's Terms of Service and applicable data-protection law (GDPR applies to profiles of private individuals). Output includes personal data (names, bios, rates, locations) that should not be used for unsolicited commercial outreach in violation of applicable law (e.g. GDPR, CAN-SPAM). This section is informational, not legal advice.