KFC APIkfc.com.au ↗
Access KFC Australia store locations, full menus, keyword search, and detailed product nutrition and allergen data via 4 structured JSON endpoints.
What is the KFC API?
The KFC Australia API exposes 4 endpoints covering store discovery, full menu retrieval, keyword search, and per-product detail for every item on kfc.com.au. The get_stores endpoint returns up to 15 nearby locations with coordinates, amenities, and available services. The get_product_detail endpoint goes deeper, returning nutritional information, allergen data, item variants, and modifier options for any product ID.
curl -X GET 'https://api.parse.bot/scraper/b5a09d5c-562e-4e11-a251-3ff001f99a98/get_stores?location=Sydney' \ -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 kfc-com-au-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.
"""KFC Australia: find stores, search menu, get item details with nutrition."""
from parse_apis.kfc_australia_api import KFCAustralia, Location, Query, ItemNotFound
client = KFCAustralia()
# List nearby stores in Sydney
for store in client.stores.list(location=Location.SYDNEY, limit=3):
print(store.id, store.name)
# Use a known store to search menu items
store = client.store(id="866")
product = store.products.search(query=Query.ZINGER, limit=3).first()
if product:
print(product.name, product.price, product.category)
# Get full item detail with nutrition info
try:
detail = store.items.get(product_id="I-33580-0")
print(detail.name, detail.caloric_value)
except ItemNotFound as exc:
print(f"Item not found: {exc}")
# Retrieve the full menu catalog
menu = store.menu.get()
print(menu.id)
print("exercised: stores.list / products.search / items.get / menu.get")
Get nearby KFC stores by location query (suburb, city, or postcode). Returns up to 15 stores sorted by proximity to the geocoded location. Geo-lookup is proximity-based, so postcode inputs may return nearby stores outside that exact postcode.
| Param | Type | Description |
|---|---|---|
| location | string | Suburb, city, or postcode in Australia. |
{
"type": "object",
"fields": {
"stores": "array of store objects, each containing id, name, addresses, location (lat/lng), contacts, amenities, and available services/channels"
},
"sample": {
"data": {
"stores": [
{
"id": "802",
"name": [
{
"lang": "en-US",
"value": "KFC MLC Sydney"
}
],
"contacts": [
{
"key": "phoneNumber",
"value": "+1 (555) 012-3456"
}
],
"location": {
"latitude": -33.8684363,
"longitude": 151.2092083
},
"addresses": [
{
"lang": "en-US",
"address": {
"city": "Sydney",
"state": "NSW",
"pinCode": "2000",
"addressLines": [
"Shop 06, 22-25 Martin Place"
]
}
}
],
"amenities": [
"kiosks"
]
}
]
},
"status": "success"
}
}About the KFC API
Store Locations
The get_stores endpoint accepts a location string — suburb, city, or Australian postcode — and returns up to 15 stores sorted by proximity to the geocoded result. Each store object includes id, name, addresses, location (lat/lng), contacts, amenities, and available service channels. Note that proximity-based geo-lookup means results may include stores outside the exact postcode boundary entered.
Menu Data
The get_menu endpoint takes a store_id from get_stores and returns the complete menu as a nested structure of categories, products, and items with prices and availability flags. Menu structure is largely consistent across Australian stores nationally, so the same store_id format (e.g. '866') works across all locations. The search_menu endpoint narrows this down by keyword — query terms like 'zinger' or 'burger' return matching products with name, price, short_description, image URL, url slug, and category. Note that the same product may appear more than once in results if it belongs to multiple menu categories.
Product Detail
The get_product_detail endpoint accepts a product_id (e.g. 'C-33513-prod') sourced from get_menu or search_menu results. It returns the full catalog entry for that product, including all item variants with individual pricing and availability, modifier options (such as meal upgrades or size choices), and a complete nutritional breakdown alongside allergen information. This is the only endpoint that exposes allergen data.
The KFC API is a managed, monitored endpoint for kfc.com.au — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kfc.com.au 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 kfc.com.au 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?+
- Build a KFC store finder app using lat/lng coordinates from
get_storesto display nearby locations on a map. - Compare prices across menu categories by pulling the full nested menu from
get_menufor a givenstore_id. - Filter menu items for allergen-sensitive users by checking allergen fields returned by
get_product_detail. - Display calorie and nutritional information for any KFC product using the nutrition data in
get_product_detail. - Power a voice assistant or chatbot that answers product questions using keyword results from
search_menu. - Track menu availability changes over time by polling
get_menufor a specific store and diffing item availability flags. - Aggregate modifier and variant pricing for meal customisation tools using the modifiers array in
get_product_detail.
| 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 KFC Australia have an official public developer API?+
What does `get_stores` return beyond a store's address?+
id, name, addresses, location (lat/lng coordinates), contacts, amenities, and available service channels (such as dine-in, drive-through, or delivery). It does not include real-time wait times or current operating hours status.Does the API cover ordering, loyalty accounts, or promotional pricing?+
Can `search_menu` be filtered by category or dietary requirement?+
search_menu endpoint matches against product names using a query keyword and returns category as a field in each result, but category-based filtering is not a native input parameter. Results may also contain duplicates when a product belongs to multiple categories. You can fork this API on Parse and revise it to add category or dietary filtering logic on top of the returned data.