A101 APIa101.com.tr ↗
Access A101 Kapıda grocery and A101 Ekstra electronics product data via 5 endpoints. Search products, browse categories, and retrieve prices and stock.
What is the A101 API?
The A101.com.tr API provides 5 endpoints to query products, prices, stock levels, and category trees across both of A101's Turkish retail platforms. Use search_kapida_products to find grocery items available for home delivery by Turkish search terms like 'süt' or 'ekmek', or use search_ekstra_products to retrieve electronics and appliance listings with brand, category, variants, and inventory status.
curl -X GET 'https://api.parse.bot/scraper/01e0d684-e029-4758-9eb5-c6214e407387/search_kapida_products?page=1&limit=60&query=s%C3%BCt&store_id=VS032' \ -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 a101-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.
"""A101 Product API — search groceries, browse categories, get pricing, search electronics."""
from parse_apis.a101_product_api import A101, CategoryId, NotFound
client = A101()
# Search Kapıda grocery products — paginated, bounded by limit=
for product in client.kapidaproducts.search(query="süt", limit=3):
print(product.title, product.price, product.available)
# List all top-level categories
for cat in client.categories.list(limit=5):
print(cat.id, cat.display_name)
# Drill into a dairy category to see grouped products
dairy = client.category(id=CategoryId.C05)
group = dairy.products()
for sub in group.children[:2]:
print(sub.name, len(sub.products), "products")
# Get detailed price/stock for one product by its known ID
product = client.kapidaproduct(id="12000001")
try:
info = product.detail()
print(info.product.price.normal_str, info.product.stock, info.product.quantity)
except NotFound as exc:
print(f"Product not found: {exc}")
# Search A101 Ekstra marketplace for electronics
for item in client.ekstraproducts.search(query="laptop", limit=3):
print(item.name, item.brand, item.price.discounted_text, item.in_stock)
print("exercised: kapidaproducts.search / categories.list / category.products / kapidaproduct.detail / ekstraproducts.search")
Full-text search over A101 Kapıda grocery products available for home delivery. Returns paginated results with product details including price, availability, images, and promotions. The query is matched against product titles. Results are scoped to a specific store location for accurate pricing and stock.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| limit | integer | Number of results per page (accepted values include 10, 20, 60) |
| queryrequired | string | Search term in Turkish (e.g. 'süt', 'ekmek', 'peynir') |
| store_id | string | Store location ID determining price and stock availability |
{
"type": "object",
"fields": {
"query": "object with query expansion info (q, expanded_query, processed_query)",
"products": "array of product objects with id, title, price, available, category, category_id, image, link",
"total_item_count": "integer total number of matching products"
},
"sample": {
"data": {
"query": {
"q": "süt",
"expanded_query": "süt",
"processed_query": "süt"
},
"products": [
{
"id": "12000001",
"ix": 24115,
"link": "https://www.a101kapida.com/product/12000001",
"image": [
{
"id": "bDGzEHA11N",
"url": "https://cdn2.a101.com.tr/dbmk89vnr/CALL/Image/get/bDGzEHA11N_1024x1024.png",
"tags": [],
"imageType": "product",
"isExternal": false
}
],
"price": 49.5,
"title": "Birşah %3,1 Yağlı Süt 1 L",
"category": "Süt",
"currency": "TL",
"available": true,
"old_price": 49.5,
"category_id": "C0502"
}
],
"total_item_count": 86
},
"status": "success"
}
}About the A101 API
Grocery Delivery (A101 Kapıda)
The get_kapida_categories endpoint returns the full category hierarchy for A101 Kapıda, including top-level category objects with id, displayName, parentId, and nested items for subcategories. Those category IDs (e.g. C05 for dairy, C06 for snacks) feed directly into get_kapida_category_products, which returns subcategory groupings, each with a products array containing fields for id, images, attributes, price, and stock. An optional store_id parameter on both endpoints scopes results to a specific delivery store location.
Product Search and Detail
search_kapida_products accepts a required query string in Turkish, plus optional page, limit, and store_id parameters. Results are grouped under res, which contains total_item_count and page_content arrays, alongside a top-level query object that exposes query expansion and processing metadata. For retrieving price and stock for a known item, get_kapida_product_detail takes a sku (sourced from search or category results) and returns a product object with normal and discounted price values in both numeric and formatted string forms (normalStr, discountedStr), a stock level string, and a quantity integer.
Electronics & Marketplace (A101 Ekstra)
search_ekstra_products covers A101's non-grocery marketplace: electronics, appliances, and third-party seller items. It returns a res array of product objects with name, price, brand, category, images, inStock, and variants. The facet_fields array exposes available filter dimensions for the current query, and total_item_count gives the full result size. Pagination is controlled with page and limit parameters.
The A101 API is a managed, monitored endpoint for a101.com.tr — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when a101.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 a101.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.
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 discounted grocery prices across A101 Kapıda categories using
price.discountedandprice.normalfields - Build a Turkish grocery price comparison tool using
search_kapida_productswith multiple Turkish search terms - Monitor stock availability for specific grocery SKUs with
get_kapida_product_detailstock level and quantity fields - Catalog electronics listings from A101 Ekstra including brand, variants, and in-stock status for competitive intelligence
- Map the full A101 Kapıda category tree using
get_kapida_categoriesto build a structured product taxonomy - Alert on price changes for appliances or electronics by periodically querying
search_ekstra_productsfor target items - Aggregate product image URLs and attributes from
get_kapida_category_productsto populate a product database
| 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 A101 have an official public developer API?+
What does `get_kapida_product_detail` return beyond price?+
product object with four price fields (normal, normalStr, discounted, discountedStr), a stock level string describing availability, and a quantity integer. It does not return full product descriptions or images — those come from the category or search endpoints.Are product reviews or ratings available through this API?+
How does the `store_id` parameter affect results?+
store_id parameter on search_kapida_products, get_kapida_category_products, and get_kapida_product_detail scopes results to a specific A101 Kapıda delivery store location. Omitting it returns general availability data not tied to a particular store.Is it possible to filter Ekstra search results by brand or category?+
search_ekstra_products endpoint returns a facet_fields array alongside results, which lists the filter dimensions available for a given query. However, passing those facet values back as filter parameters is not currently supported by the endpoint. You can fork this API on Parse and revise it to add facet-filtering inputs.