Discover/Migros API
live

Migros APImigros.com.tr

Access Migros supermarket product data via API: search products, browse categories, get pricing, discounts, and active campaigns from Migros.com.tr.

Endpoint health
verified 4d ago
get_product_detail
get_categories
search_products
get_products_by_category
get_discounted_products
6/6 passing latest checkself-healing
Endpoints
6
Updated
26d ago

What is the Migros API?

The Migros.com.tr API provides 6 endpoints covering the full Migros online supermarket catalog, including product search, category browsing, and promotional campaigns. The get_product_detail endpoint returns extended fields such as nutritional badges, HTML descriptions, availability status, and image sets keyed by size. Together, the endpoints let you retrieve category trees, paginate through product listings, and track active discounts in real time.

Try it

No input parameters required.

api.parse.bot/scraper/25cf60c8-3706-4035-b4e7-6cb4742a8f70/<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/25cf60c8-3706-4035-b4e7-6cb4742a8f70/get_categories' \
  -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 migros-com-tr-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.migros_supermarket_api import Migros, Category, ProductSummary, Product, Campaign

migros = Migros()

# List all categories and browse products in the first one
for cat in migros.categories.list():
    print(cat.name, cat.pretty_name, cat.color)

# Construct a category by slug and browse its products
fruits = migros.category("meyve-sebze-c-2")
for product in fruits.products.list(limit=5):
    print(product.name, product.shown_price, product.brand)

# Search for products by keyword
for item in migros.productsummaries.search(query="sut", limit=10):
    print(item.name, item.sku, item.regular_price)

# Navigate from summary to full detail
for item in migros.productsummaries.search(query="ekmek", limit=3):
    detail = item.details()
    print(detail.name, detail.description, detail.status, detail.all_categories)

# Get a product directly by SKU
milk = migros.products.get(sku="11011530")
print(milk.name, milk.shown_price, milk.status, milk.all_categories)

# List discounted products
for deal in migros.productsummaries.discounted(limit=5):
    print(deal.name, deal.shown_price, deal.discount_rate)

# List active campaigns
for campaign in migros.campaigns.list():
    print(campaign.name, campaign.finish_date, campaign.pretty_name)
All endpoints · 6 totalmissing one? ·

Retrieve the full category tree of the Migros supermarket. Returns a nested list of categories with their metadata (id, name, pretty_name, images, depth, parent_id, color) and child categories. Each category's pretty_name serves as the slug for browsing products within that category via get_products_by_category.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "categories": "array of flattened category objects with id, name, pretty_name, depth, parent_id, color, images, and children"
  },
  "sample": {
    "data": {
      "categories": [
        {
          "id": 20000000072311,
          "name": "Tüm İndirimli Ürünler",
          "color": "#FFE8E1",
          "depth": 1,
          "images": [
            {
              "urls": {
                "x1": "https://images.migrosone.com/sanalmarket/category/list/72311/indirim-f3a481.png"
              },
              "sponsored": false
            }
          ],
          "children": [],
          "parent_id": 20000000000000,
          "pretty_name": "tum-indirimli-urunler-dt-0"
        }
      ]
    },
    "status": "success"
  }
}

About the Migros API

Category and Product Browsing

The get_categories endpoint returns the complete Migros category tree as a nested structure. Each node includes fields like id, name, prettyName, depth, parentId, color, and images. The prettyName slug (e.g. meyve-sebze-c-2) is the required category_slug input for get_products_by_category, which returns paginated product arrays with fields including regular_price, shown_price, discount_rate, brand, and unit.

Product Search and Detail

search_products accepts a query string (e.g. sut for milk products) and an optional page integer, and returns matching products alongside total_count and page_count for pagination. To go deeper on any item, pass its sku to get_product_detail, which extends the standard listing fields with an HTML description, badges, a status string such as IN_SALE, and an images object mapping multiple size keys to URLs.

Discounts and Campaigns

get_discounted_products provides a paginated feed of all products currently on promotion, including their discount_rate and both regular_price and shown_price so you can calculate savings directly. get_campaigns returns the active campaign list with each campaign's name, description, prettyName slug, imageUrls, and finishDate as a Unix timestamp in milliseconds — useful for filtering campaigns that are about to expire.

Reliability & maintenanceVerified

The Migros API is a managed, monitored endpoint for migros.com.tr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when migros.com.tr 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 migros.com.tr 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
4d ago
Latest check
6/6 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
  • Build a grocery price tracker that monitors regular_price vs shown_price across product SKUs over time.
  • Aggregate all discounted items via get_discounted_products to surface the highest discount_rate deals in a deals newsletter.
  • Sync the full Migros category tree using get_categories to power a faceted product search interface.
  • Monitor get_campaigns for upcoming finishDate values to alert users before a promotion ends.
  • Compare brand presence within a category by paginating get_products_by_category and grouping results by the brand field.
  • Check product availability by querying get_product_detail for the status field before placing an order in an automated purchasing workflow.
  • Build a nutritional database by collecting the description and badges fields from get_product_detail across food category SKUs.
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 Migros.com.tr have an official public developer API?+
Migros does not publish an official public developer API or documentation for third-party access to its product catalog.
What does `get_product_detail` return beyond what search results provide?+
get_product_detail adds several fields not present in listing endpoints: an HTML description, a badges array (e.g. organic or dietary labels), a status string indicating availability such as IN_SALE, and an images object with multiple size-keyed URLs. The listing endpoints (search_products, get_products_by_category) return the core pricing and identification fields but omit these extended attributes.
Does the API expose customer reviews or ratings for products?+
Not currently. The API covers product metadata, pricing, descriptions, badges, category data, discounts, and campaigns. You can fork it on Parse and revise it to add a reviews or ratings endpoint if that data becomes accessible.
How does pagination work across the product listing endpoints?+
The search_products, get_products_by_category, and get_discounted_products endpoints all accept an optional page integer (1-indexed) and return current_page, page_count, and total_count in every response. You can walk all pages by incrementing page until it equals page_count.
Is stock level or warehouse inventory data available through this API?+
Not currently. The closest available field is the status string in get_product_detail (e.g. IN_SALE), which indicates general availability but does not include quantity, stock counts, or store-level inventory. You can fork the API on Parse and revise it to add granular inventory data if that endpoint is identified.
Page content last updated . Spec covers 6 endpoints from migros.com.tr.
Related APIs in Food DiningSee all →
migros.ch API
Search and browse Migros' product catalog to find items by name or category, view detailed product information, and discover current promotional offers. Get everything you need to shop smarter at Switzerland's leading supermarket.
sokmarket.com.tr API
Browse and search Şok Market's product catalog, including real-time pricing, categories, weekly deals, and current campaigns. Get detailed product information, explore items across all categories, and view checkout promotions all in one place.
hepsiburada.com API
Search and browse products on Hepsiburada with access to detailed product information, pricing, customer reviews, categories, and active campaigns. Retrieve comprehensive product data to power shopping, research, or price-comparison applications.
online.metro-cc.ru API
Search and browse products from Russian METRO Cash & Carry online store with detailed attributes, pricing, and availability information. Explore product categories and look up specific items to compare features and find what you need.
a101.com.tr API
Browse and search products from A101's grocery delivery service (Kapıda) and marketplace (Ekstra), including category exploration and detailed product information. Find what you need across both platforms with search functionality and organized category browsing.
tesco.com API
Search and browse Tesco's complete grocery catalog to find products with detailed nutritional information, ingredient lists, and customer reviews. Explore product suggestions via autocomplete and browse items organized by category to make informed shopping decisions.
carrefour.it API
Search and browse Carrefour Italy's product catalog across categories, view detailed product information, find nearby store locations, and discover current promotions all in one place. Explore online grocery selections and compare products by price, brand, and availability.
walmart.com.mx API
Search and browse Walmart Mexico's product catalog to access real-time pricing, availability, and detailed product information across all categories. Find similar items and compare options to make informed shopping decisions.