Discover/Digikala API
live

Digikala APIdigikala.com

Access Digikala product data via 3 endpoints: search by keyword, filter by brand/category, get full product details, and pull incredible-offer deals.

Endpoint health
verified 6d ago
get_incredible_offers
search_products
get_product_detail
3/3 passing latest checkself-healing
Endpoints
3
Updated
21d ago

What is the Digikala API?

The Digikala API gives developers structured access to Iran's largest e-commerce platform across 3 endpoints. Use get_incredible_offers to pull the daily شگفت‌انگیز (incredible-offers) deals section with pagination, search_products to query the catalog by keyword with sort, category, and brand filters, and get_product_detail to retrieve complete product data including pricing, variants, images, videos, seller info, and specifications.

Try it
Page number for paginated results.
Maximum number of pages to fetch starting from the page parameter.
api.parse.bot/scraper/9ae5f9ae-71ec-44e3-990b-b43dab33c609/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/9ae5f9ae-71ec-44e3-990b-b43dab33c609/get_incredible_offers?page=1&max_pages=1' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 digikala-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.

from parse_apis.digikala_product_api import Digikala, Sort, ProductSummary, Product

digikala = Digikala()

# Search for laptops sorted by cheapest
for product in digikala.searches.find(query="laptop", sort=Sort.CHEAPEST, limit=5):
    print(product.title_fa, product.price.selling_price, product.price.discount_percent)

# Get full details for the last result
detail = product.details()
print(detail.title_en, detail.brand.title_en, detail.category.code)

for variant in detail.variants:
    print(variant.color.title, variant.price.selling_price, variant.seller.title)

# Browse incredible offers
for offer in digikala.offers.list(max_pages=1, limit=10):
    print(offer.title_fa, offer.price.is_incredible, offer.price.sold_percentage)
All endpoints · 3 totalmissing one? ·

Retrieves products from Digikala's incredible-offers (شگفت‌انگیز) section. On page 1, includes both running-out deals and daily discounted products plus paginated offers. Subsequent pages return only paginated offers. Each product includes pricing with discount percentage and sold-out percentage.

Input
ParamTypeDescription
pageintegerPage number for paginated results.
max_pagesintegerMaximum number of pages to fetch starting from the page parameter.
Response
{
  "type": "object",
  "fields": {
    "page": "integer — current page number",
    "products": "array of product summary objects with id, title_fa, title_en, url, status, image_url, rating, price, seller, warranty, offer_type",
    "total_products": "integer — count of products returned"
  },
  "sample": {
    "data": {
      "page": 1,
      "products": [
        {
          "id": 21600058,
          "url": "/product/dkp-21600058/...",
          "price": {
            "rrp_price": 17000000,
            "is_incredible": true,
            "selling_price": 6290000,
            "sold_percentage": 80,
            "discount_percent": 63
          },
          "rating": {
            "rate": 100,
            "count": 1
          },
          "seller": {
            "id": 75698,
            "title": "گالری سوسپیرو"
          },
          "status": "marketable",
          "title_en": "",
          "title_fa": "ادوپرفیوم زنانه هارلینگن",
          "warranty": "گارانتی اصالت و سلامت فیزیکی کالا",
          "image_url": "https://dkstatics-public.digikala.com/...",
          "offer_type": "running_out"
        }
      ],
      "total_products": 36
    },
    "status": "success"
  }
}

About the Digikala API

Endpoints and What They Return

The search_products endpoint accepts a required query string (e.g., 'iphone 16', 'laptop') plus optional parameters: page for pagination, sort for ordering results (1=bestselling, 4=cheapest, 7=newest, 20=most visited), category for category filtering (e.g., 'mobile-phone', 'laptop'), and brand_id to restrict results to a specific brand (e.g., '10' for Apple, '2' for Samsung). The response returns total_items, total_pages, and an array of product objects.

Product Detail

get_product_detail takes a numeric product_id (found in product URLs as dkp-{id}) and returns a full data object: brand (with id, title_fa, title_en, code), colors, images, videos, rating (rate and count), status (marketable or not_marketable), category, seo metadata, and the canonical url. This is the endpoint to use when you need complete specs and variant data for a known product.

Incredible-Offers Section

get_incredible_offers extracts the time-limited deals prominently featured on Digikala's homepage. It supports page and max_pages inputs for paginated retrieval and returns a products array alongside total_products. Each product object includes id, title_fa, title_en, url, status, image_url, rating, and price fields covering selling_price, rrp_price, and discount_percent. This makes it straightforward to monitor running-out deals and discount depths without constructing individual product queries.

Reliability & maintenanceVerified

The Digikala API is a managed, monitored endpoint for digikala.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when digikala.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 digikala.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.

Last verified
6d ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track daily discount percentages and selling prices in the incredible-offers section for deal aggregator apps.
  • Build a price comparison tool by searching a keyword and sorting results by cheapest (sort=4).
  • Monitor a brand's full catalog on Digikala by filtering search_products with a specific brand_id.
  • Populate a product database with Persian and English titles, images, and specs using get_product_detail.
  • Detect when a product's status changes from marketable to not_marketable for inventory alerting.
  • Pull rating.rate and rating.count across search results to surface top-rated products in a category.
  • Extract SEO metadata (seo.title, seo.description) and canonical URLs for product content pipelines.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Digikala have an official public developer API?+
Digikala does not publish a public developer API or official API documentation for third-party use. There is no registered developer portal or API key program available to external developers.
What price fields does the incredible-offers endpoint return, and does it include historical pricing?+
get_incredible_offers returns current selling_price, rrp_price (recommended retail price), and discount_percent for each deal product. Historical pricing or price-trend data is not included in the response. The API covers current snapshot pricing only. You can fork it on Parse and revise it to add a price-history tracking layer by storing successive snapshots.
Can I retrieve customer reviews and written comments for a product?+
Not currently. get_product_detail returns rating score and count but does not include individual review text or comment threads. The API covers product specs, images, videos, pricing, variants, and seller info. You can fork it on Parse and revise it to add a reviews endpoint that fetches per-product comment data.
How does pagination work across the three endpoints?+
search_products returns total_pages and total_items so you can iterate pages using the page input. get_incredible_offers accepts both page and max_pages inputs, letting you cap how many pages are fetched in a single call. get_product_detail operates on a single product ID and does not paginate.
Does the search endpoint return seller-level data or only product-level data?+
The search_products response returns product-level objects. Seller information — including seller name, rating, and fulfillment details — is only available in the get_product_detail response. If you need seller data for products surfaced via search, you would follow up with get_product_detail using the returned product IDs.
Page content last updated . Spec covers 3 endpoints from digikala.com.
Related APIs in EcommerceSee all →
daraz.pk API
Browse and extract product data from Daraz Pakistan (daraz.pk). Search products by keyword or category, retrieve full product details, explore the category tree, and list all products for a given seller.
daraz.com.np API
Search for products on Daraz Nepal and access detailed product information, homepage data, and current flash sale offerings all in one place. Get real-time product details, pricing, and promotional content to help you find exactly what you're looking for on Nepal's leading e-commerce platform.
digikey.com API
Access data from digikey.com.
daraz.com.bd API
Search and browse products on Daraz Bangladesh to find items across any category. Retrieve detailed product information, explore category listings, and surface top-selling items — all from a single API.
verkkokauppa.com API
Search and browse products from Verkkokauppa.com to find items across categories, check real-time prices and availability, read customer reviews, and discover deals in outlet and clearance sections. Filter products by your preferences and get detailed product information including specifications and store stock levels.
amazon.com API
Search and browse Amazon products, reviews, offers, and deals, then manage your shopping cart all through a single integration. Get detailed product information, seller profiles, and best sellers to compare prices and make informed purchasing decisions.
emag.ro API
Access product data from eMAG.ro, Romania's largest online retailer. Search by keyword, browse categories, retrieve product details and reviews, and look up seller information.
idealo.de API
Search for products on Idealo.de and retrieve detailed information including current seller offers, price history, technical specifications, and user and expert reviews. Compare prices across sellers and access comprehensive product data to evaluate deals.