ParsCoders APIparscoders.com ↗
Search and list public freelance projects on ParsCoders.com. Get titles, descriptions, skills, budgets, proposal counts, and posting times via one API endpoint.
What is the ParsCoders API?
The ParsCoders API exposes one endpoint, search_projects, that returns up to 25 projects per page from ParsCoders.com, a Persian-language freelancing marketplace. Each project object includes 9 fields: project_id, title, description, skills, budget, posted_time, proposal_count, url, and features. You can paginate results, sort them, or filter by keyword to find specific project types.
curl -X GET 'https://api.parse.bot/scraper/1168c99c-b3f0-4d26-8b76-30de973fbe58/search_projects?sort=most-new&query=python' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace parscoders-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: ParsCoders SDK — browse Persian freelance projects."""
from parse_apis.parscoders_com_api import ParsCoders, Sort, InvalidInput
client = ParsCoders()
# List the most recent projects, capped at 5 total items.
for project in client.projects.search(limit=5):
print(project.title, "—", project.proposal_count, "proposals")
# Search for Python-related projects sorted by most expensive budget.
expensive = client.projects.search(query="python", sort=Sort.MOST_EXPENSIVE, limit=3)
top = expensive.first()
if top is not None:
print(f"\nTop result: {top.title}")
print(f" ID: {top.project_id}")
print(f" Budget: {top.budget}")
print(f" Skills: {', '.join(top.skills)}")
print(f" Posted: {top.posted_time}")
print(f" URL: {top.url}")
# Demonstrate typed error handling for invalid input.
try:
bad = client.projects.search(query="python", sort="not-a-real-sort", limit=1).first()
except InvalidInput as e:
print(f"\nCaught InvalidInput: {e.message}")
print("\nexercised: projects.search (default + query + sort + error handling)")
Search and list public projects on ParsCoders. Returns 25 projects per page. When called without a query, returns all projects sorted by most recent. Hidden/private projects appear in listings but have null title and url fields. Pagination is controlled by the page parameter; omitting it returns the first page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (25 projects per page). |
| sort | string | Sort order for results. Omitting defaults to most recent. |
| query | string | Keyword to search project titles. Omitting returns all projects. |
{
"type": "object",
"fields": {
"page": "current page number",
"has_more": "boolean indicating if more pages exist",
"projects": "array of project objects with project_id, title, description, skills, budget, posted_time, proposal_count, url, and features",
"total_pages": "total number of available pages"
},
"sample": {
"data": {
"page": 1,
"has_more": true,
"projects": [
{
"url": "https://parscoders.com/project/615785/%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-116941",
"title": "پایتون-116941",
"budget": null,
"skills": [
"پایتون",
"هوش مصنوعی"
],
"features": [],
"project_id": "615785",
"description": "🔢 کد پروژه: 116941...",
"posted_time": "چهار روز پیش",
"proposal_count": 21
},
{
"url": "https://parscoders.com/project/615737/%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B1%D8%A8%D8%A7%D8%AA-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AC%D9%85%D8%B9-%D8%A2%D9%88%D8%B1%DB%8C-%D9%88-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%DA%A9%D8%A7%D9%86%D8%A7%D9%84-%D9%87%D8%A7",
"title": "طراحی ربات تلگرامی برای جمع آوری و مدیریت کانال ها",
"budget": 45000000,
"skills": [
"برنامه نویسی با C#",
"مدیریت بانک اطلاعاتی",
"پایتون"
],
"features": [],
"project_id": "615737",
"description": "به یک برنامهنویس مسلط به Telegram API...",
"posted_time": "چهار روز پیش",
"proposal_count": 41
}
],
"total_pages": 63
},
"status": "success"
}
}About the ParsCoders API
What the API Returns
The search_projects endpoint returns a paginated list of public projects posted on ParsCoders.com. Each response includes a projects array alongside pagination metadata: page (current page number), total_pages (total available pages), and has_more (boolean indicating whether additional pages exist). Each project object carries project_id, title, description, skills (an array of required technologies or competencies), budget, posted_time, proposal_count, url, and features.
Parameters and Filtering
The query parameter filters results by keyword against project titles, making it useful for finding projects related to specific technologies or domains. Omitting query returns all projects sorted by most recent by default. The sort parameter adjusts result ordering when provided. The page parameter controls which page of 25 results to retrieve, and iterating with has_more lets you walk through the full dataset.
Known Behaviors and Limitations
Some projects in listings are hidden or private on the source site. These still appear in API responses but return null for both the title and url fields — all other fields may also be absent or empty for these entries. Budget values reflect what project posters have declared and are denominated in Iranian Toman. The proposal_count field reflects how many freelancers have already submitted bids, which can be useful for gauging competition on a given project.
The ParsCoders API is a managed, monitored endpoint for parscoders.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when parscoders.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official parscoders.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor newly posted projects in a specific skill category by polling
search_projectswith a relevantqueryand sorting by most recent. - Analyze average
budgetranges across project categories to benchmark freelance rates on the Persian market. - Track
proposal_counttrends over time to identify high-competition versus underserved project types. - Build a job alert tool that notifies users when new projects matching their
skillsappear in listings. - Aggregate
posted_timeandbudgetdata to study seasonal demand patterns on ParsCoders. - Cross-reference
skillsfields across projects to identify the most in-demand technologies on the platform.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ParsCoders.com have an official developer API?+
What does the API return for hidden or private projects?+
projects array but have null values for the title and url fields. Other fields such as budget and skills may also be empty or absent for these entries. Publicly visible projects return all 9 fields populated.Can I retrieve individual project details or freelancer profiles through this API?+
search_projects, returning summary-level fields like description, skills, budget, and proposal_count. Individual project detail pages and freelancer profile data are not included. You can fork the API on Parse and revise it to add those endpoints.How does pagination work and how many results are returned per page?+
search_projects returns 25 projects. The response includes total_pages so you know the full extent of results, and has_more (a boolean) tells you whether another page exists. Increment the page parameter to retrieve subsequent pages.Does the API support filtering by budget range or required skills?+
query, which matches against project titles. Budget and skills data are returned in each project object but cannot be used as filter inputs directly. You can fork the API on Parse and revise it to add budget or skills-based filtering.