Mostaql APImostaql.com ↗
Access Mostaql.com data via API: browse open projects, filter by category, fetch project details with budget and offers, and retrieve freelancer profiles.
What is the Mostaql API?
The Mostaql API provides 5 endpoints covering the leading Arabic-language freelance marketplace: list and search open projects, retrieve full project details including budget range, duration, and offers received, and look up freelancer profiles with completion stats and skills. The list_projects endpoint accepts keyword, category slug, and sort parameters and returns up to 25 project summaries per page.
curl -X GET 'https://api.parse.bot/scraper/92bac853-36a8-4197-8b7a-e6b8c5091560/list_projects?page=1&sort=latest&category=business&keyword=website' \ -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 mostaql-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.
"""Mostaql Freelance Marketplace — discover projects and freelancers."""
from parse_apis.mostaql_api import Mostaql, ProjectSort, ProjectCategory, ProjectNotFound
client = Mostaql()
# Browse development projects sorted by most offers
for project in client.projects.search(category=ProjectCategory.DEVELOPMENT, sort=ProjectSort.MOST_OFFERS, limit=5):
print(project.title, project.post_time)
# Drill into the first project's full details
project = client.projects.search(keyword="website", limit=1).first()
if project:
detail = project.details()
print(detail.title, detail.budget_range, detail.duration)
print("Skills:", detail.skills)
# Search freelancers and view a profile
freelancer = client.freelancers.search(query="PHP", limit=1).first()
if freelancer:
profile = freelancer.details()
print(profile.name, profile.headline)
print("Skills:", profile.skills)
# List all available project categories
for cat in client.categories.list(limit=9):
print(cat.id, cat.name)
# Handle not-found errors gracefully
try:
bad_project = client.projects.search(keyword="nonexistent_xyz_999", limit=1).first()
if bad_project:
bad_project.details()
except ProjectNotFound as exc:
print(f"Project not found: {exc}")
print("Exercised: projects.search / project.details / freelancers.search / freelancer.details / categories.list")
Fetch paginated list of open projects with optional search keyword, category filter, and sort order. Returns project summaries including ID, title, URL, and post time. Each page returns up to 25 projects.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order for project listing. |
| keyword | string | Search keyword to filter projects by title or description. |
| category | string | Category filter slug. |
{
"type": "object",
"fields": {
"projects": "array of project summary objects each containing id, title, url, post_time"
},
"sample": {
"data": {
"projects": [
{
"id": "1248678",
"url": "https://mostaql.com/project/1248678-...",
"title": "تطوير صفحة ويب",
"post_time": "2026-06-10 22:04:29"
}
]
},
"status": "success"
}
}About the Mostaql API
Projects
The list_projects endpoint returns paginated project summaries — each containing id, title, url, and post_time — and accepts four optional filters: keyword for text search, category for a category slug, sort to control ordering, and page for pagination (25 results per page). To look up valid category slugs, call list_project_categories first, which returns all 9 available categories with their slug id and Arabic name.
For full project data, pass a numeric project_id to get_project_details. The response object includes title, description, status, publication_date, budget_range, duration, a skills array, structured owner info, and an offers count. This is the primary endpoint for sourcing competitive intelligence on project scope and pricing on the platform.
Freelancers
The list_freelancers endpoint returns paginated freelancer summaries — username, name, and title — and accepts a free-text query parameter to filter by keyword, skill, or job title. Each page returns up to 25 results. Passing a username from those results to get_freelancer_profile yields the full public profile: headline, bio, a skills array, and a stats object that includes the freelancer's project completion rate and ratings.
The Mostaql API is a managed, monitored endpoint for mostaql.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mostaql.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 mostaql.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 Arabic-language freelance projects by keyword or category for lead generation.
- Aggregate budget_range data across project categories to benchmark typical project costs on Mostaql.
- Build a freelancer discovery tool filtered by skill or job title using list_freelancers and get_freelancer_profile.
- Track offer counts on open projects via get_project_details to gauge competition levels.
- Map available project categories using list_project_categories to build localized Arabic taxonomy for a job board.
- Collect freelancer completion rates and ratings to rank or vet candidates before outreach.
- Sync open project listings into a CRM or alerting pipeline using project id, url, and post_time.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.