Torob APItorob.com ↗
Access Torob's Iran price comparison data: search products, compare seller prices, get specs, price history, and store details via 10 structured endpoints.
What is the Torob API?
The Torob API gives developers structured access to Iran's leading price comparison platform across 10 endpoints, covering product search, seller listings, technical specifications, price history, and store profiles. The search_products endpoint accepts Persian or English keywords and returns paginated product summaries with prices in Toman, category filters, and sort options including popularity, price ascending, price descending, and newest.
curl -X GET 'https://api.parse.bot/scraper/89fb9532-9c43-4bfe-8b83-a97933f4849c/search_products?page=0&sort=popularity&query=iPhone&category_id=94' \ -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 torob-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.
"""Torob price comparison: search products, drill into details, compare sellers."""
from parse_apis.torob_api import Torob, Sort, ProductNotFound
client = Torob()
# Search for products sorted by lowest price first.
for product in client.products.search(query="iPhone", sort=Sort.PRICE_ASC, limit=3):
print(product.name1, product.price)
# Drill into the first result for full details (specs, variants, breadcrumbs).
item = client.products.search(query="Samsung Galaxy", limit=1).first()
if item:
detail = item.details()
print(detail.name2, detail.min_price, detail.max_price)
# Compare sellers for this product — who has the best price?
for seller in detail.sellers(limit=3):
print(seller.shop_name, seller.price, seller.availability)
# Get technical specifications.
specs = detail.specs()
for group in specs.key_specs:
print(group.header)
for spec_item in group.items:
print(f" {spec_item.key}: {spec_item.value}")
# Browse categories and search within one.
cat = client.categories.list(limit=1).first()
if cat:
for p in cat.search(query="laptop", sort=Sort.NEWEST, limit=3):
print(p.name1, p.price, p.image_url)
# Typed error handling for a missing product.
try:
broken = client.product(random_key="nonexistent-uuid-0000")
detail = broken.specs()
print(detail.structural_specs)
except ProductNotFound as exc:
print(f"Product not found: {exc.product_uuid}")
print("exercised: products.search / details / sellers / specs / categories.list / category.search")Search for products by keyword or category on Torob. Returns paginated results with product summaries, prices, and related categories. Supports pagination and sorting.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-based) |
| sort | string | Sort order for results. |
| query | string | Search keyword (Persian or English) |
| category_id | string | Category ID to filter by (from get_categories results) |
{
"type": "object",
"fields": {
"count": "integer total number of matching products",
"results": "array of product summaries with random_key, name1, name2, price, image_url",
"has_more": "boolean indicating if more pages are available",
"categories": "array of related category objects with title and cat_id"
},
"sample": {
"data": {
"count": 1200,
"results": [
{
"name1": "گوشی آیفون 17 پرو مکس",
"name2": "Apple iPhone 17 Pro Max Not Active 256 GB",
"price": 362840000,
"image_url": "https://image.torob.com/base/images/Dw/ZS/DwZSKQ-pao4RArot.jpg",
"random_key": "18d33323-003c-40be-8405-1805d0b6719d"
}
],
"has_more": true,
"categories": [
{
"id": "94",
"slug": "گوشی-موبایل-mobile",
"title": "گوشی موبایل",
"cat_id": 94
}
]
},
"status": "success"
}
}About the Torob API
Product Search and Details
The search_products endpoint accepts a query string (Persian or English), an optional category_id from get_categories, a sort parameter (popularity, price_asc, price_desc, newest), and a 0-based page integer. Each result in the results array includes random_key (the product UUID used by all other endpoints), name1 (Persian name), name2 (English name), price (lowest price in Toman), and image_url. The get_product_details endpoint takes that product_uuid and returns the full record: variants, key_specs, structural_specs, and a products_info object that lists seller offers with count and result array.
Sellers, Specs, and Price History
get_product_sellers returns a sellers array where each entry includes shop_name, shop_id, price, availability, and score_info. get_product_specs returns the same specification data in isolation — key_specs (grouped by header with items) and structural_specs (headers with categorized key-value pairs) — useful when you only need the spec sheet without the full product payload. get_price_history returns a chart_data array of historical price points for a given product_uuid, enabling trend analysis over time.
Store and Category Data
get_store_details accepts a numeric store_id and optional store_slug, returning the store's name, domain, city, address, date_added, and shop_score (1–5). get_store_products retrieves that store's product listings and accepts an optional query parameter to filter within the store's inventory. get_categories requires no inputs and returns top-level category objects with title, cat_id, id, and slug, plus a products_count total across all categories — useful for building browse interfaces or scoping searches.
Supplementary Endpoints
get_search_suggestions takes a query string and returns an autocomplete suggestions array, suitable for building search-as-you-type interfaces. get_similar_products accepts a product_uuid and returns a results array of related products from the same platform, supporting recommendation and cross-listing features.
The Torob API is a managed, monitored endpoint for torob.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when torob.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 torob.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?+
- Track price fluctuations over time for electronics using
get_price_historychart_data arrays. - Compare seller prices and availability for a specific product using
get_product_sellersscore_info and price fields. - Build a Persian-language product search interface using
search_productswith Persian query strings andget_search_suggestionsfor autocomplete. - Aggregate store reputation data by pulling
shop_score,city, anddomainfromget_store_details. - Filter product searches by category using
cat_idvalues fromget_categoriespassed intosearch_products. - Generate product spec comparison tables using
structural_specskey-value pairs fromget_product_specs. - Surface related products alongside a listing using
get_similar_productsresults keyed by product UUID.
| 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.
Does Torob have an official developer API?+
What does `get_product_sellers` return beyond just price?+
get_product_sellers returns a sellers array where each entry includes shop_name, shop_id, price, availability, and score_info. The count field tells you the total number of sellers listing that product. This makes it useful for both price comparison and seller reputation assessment in a single call.How does pagination work in `search_products`?+
page integer parameter. The response includes a count field with the total number of matching products and a has_more boolean so you can determine whether additional pages exist before making the next request.Does the API return user reviews or ratings for products?+
Are prices returned in USD or another currency?+
price field in search_products and get_product_details represents the lowest current listed price in Toman. Currency conversion is not performed by the API. You can fork this API on Parse and add a conversion layer if you need prices in another currency.