Varzesh3 APIvarzesh3.com ↗
Search and retrieve Persian-language sports news articles from Varzesh3.com. Get titles, descriptions, publish dates, view counts, and images via one endpoint.
What is the Varzesh3 API?
The Varzesh3 API gives developers access to Iran's leading sports news portal through a single search_news endpoint that returns up to 8 fields per article, including title, short description, publication date, view count, and image URL. It accepts free-text Persian queries for players, clubs, transfers, and any sports topic, and supports paginated result sets of up to 50 items per page.
curl -X GET 'https://api.parse.bot/scraper/55be15cc-9a83-438d-9a2c-7dfc0b66c62d/search_news?query=%D8%B3%D8%B1%D9%88%D8%B4+%D8%B1%D9%81%DB%8C%D8%B9%DB%8C+%D9%BE%D8%B1%D8%B3%D9%BE%D9%88%D9%84%DB%8C%D8%B3' \ -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 varzesh3-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: Varzesh3 sports news search — bounded, re-runnable."""
from parse_apis.varzesh3_com_api import Varzesh3, InputFormatInvalid
client = Varzesh3()
# Search for news about Persepolis FC, cap total items fetched.
for article in client.articles.search(query="پرسپولیس", limit=5):
print(article.title, "|", article.view_count)
# Drill-down: grab the first result for a player search.
hit = client.articles.search(query="سروش رفیعی").first()
if hit is not None:
print(hit.title)
print(hit.short_description)
print(f"published: {hit.published_on} comments: {hit.comment_count}")
print(hit.link)
# Demonstrate error handling for malformed input.
try:
client.articles.search(query="").first()
except InputFormatInvalid as e:
print(f"Invalid input: {e.message}")
print("exercised: articles.search / InputFormatInvalid")
Search for news articles on varzesh3.com by keyword query. Returns paginated results sorted by relevance. Queries should be in Persian for best results (e.g. player names, team names, transfer keywords). Each page returns up to `limit` items; use `page` to paginate through results. The `has_more` flag in the response indicates whether additional pages are available.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (starts at 1). |
| limit | integer | Maximum number of results per page (1-50). |
| queryrequired | string | Search query in Persian (e.g. player name, team, topic like 'سروش رفیعی پرسپولیس'). |
{
"type": "object",
"fields": {
"page": "current page number",
"items": "array of news article objects with id, title, short_description, published_on, persian_published_on, picture_url, link, view_count, comment_count",
"limit": "results per page used",
"has_more": "boolean indicating if more pages are available"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"id": 2409255,
"link": "https://www.varzesh3.com/news/2409255/فوری-جدایی-یک-ستاره-باتجربه-پرسپولیس",
"title": "فوری: جدایی دو ستاره پرافتخار از پرسپولیس!",
"view_count": "90.6K",
"picture_url": "https://news-cdn.varzesh3.com/pictures/2026/08/02/C/jr0525uf.webp",
"published_on": "2026-08-02T13:40:51Z",
"comment_count": "112",
"short_description": "باشگاه پرسپولیس با انتشار دو استوری به صورت رسمی خبر از جدایی مرتضی پورعلیگنجی و سروش رفیعی داد.",
"persian_published_on": "11 مرداد"
}
],
"limit": 20,
"has_more": true
},
"status": "success"
}
}About the Varzesh3 API
What the API Returns
The search_news endpoint queries the Varzesh3 news archive and returns a paginated list of article objects. Each item in the items array includes a unique id, title, short_description, link, picture_url, view_count, and two date fields — published_on (ISO-formatted) and persian_published_on (Jalali calendar string). The has_more boolean signals whether additional pages exist beyond the current result set.
Query Language and Pagination
The query parameter accepts Persian text, which is the primary language of the source. Searching with Persian terms — player names like سروش رفیعی, club names like پرسپولیس, or topic keywords like نقل و انتقالات — produces the most relevant results. Latin-script queries may return limited or empty results. Use the page integer (starting at 1) alongside limit (1–50) to page through large result sets. The response always echoes back the page and limit values used, making it straightforward to build offset-based pagination loops.
Coverage and Freshness
Varzesh3 covers a wide range of sports topics including football (soccer), volleyball, basketball, wrestling, and international competitions. The view_count field reflects article popularity and can be used to rank or filter results client-side. Articles span a broad historical archive, not just recent news, so date-based filtering must be done by the caller using the published_on field after retrieval.
The Varzesh3 API is a managed, monitored endpoint for varzesh3.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when varzesh3.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 varzesh3.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 transfer news for a specific Iranian football club by querying the club name in Persian
- Build a Persian-language sports news feed aggregator sorted by
view_countpopularity - Track media coverage of a player over time using
published_onand paginatedsearch_newsresults - Power a mobile app with Jalali-calendar article dates via the
persian_published_onfield - Index Varzesh3 article thumbnails and links for a sports media dashboard using
picture_urlandlink - Analyze trending sports topics in Iran by comparing
view_countacross different query terms - Archive breaking sports news by polling
search_newsregularly and storing newidvalues
| 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 Varzesh3 offer an official developer API?+
What exactly does `search_news` return for each article?+
items array contains: id (unique article identifier), title, short_description, published_on (ISO date), persian_published_on (Jalali date string), picture_url, link (full article URL on Varzesh3), and view_count. The endpoint does not return the full article body text.Can I retrieve full article body content through this API?+
short_description, title, metadata, and the article link, but not the complete article text. You can fork this API on Parse and revise it to add an article-detail endpoint that fetches full body content.Can I filter results by sport type, date range, or category?+
query string. Date and category filtering must be applied client-side using the published_on field returned in each item. You can fork this API on Parse and revise it to add dedicated date-range or category parameters.How does pagination work and how do I know when results are exhausted?+
has_more boolean. When has_more is false, no additional pages exist for that query. Increment the page parameter (starting at 1) and keep limit consistent across requests to reliably page through the full result set.