KKTIX APIkktix.com ↗
Access KKTIX event listings, ticket availability, organizer details, and category data via 6 structured API endpoints covering Taiwan's major ticketing platform.
What is the KKTIX API?
The KKTIX API exposes 6 endpoints for discovering and inspecting events on Taiwan's primary ticketing platform. You can search events by keyword, date range, price, and category tag using search_events, retrieve real-time ticket inventory and registration status via get_event_tickets, and pull structured metadata—including capacity, location, ticket types, and organizer info—from get_event_details.
curl -X GET 'https://api.parse.bot/scraper/ee10a9d3-88df-4f29-89e3-99d413d63281/search_events?page=1&end_at=2026-08-10&tag_ids=2&start_at=2026-06-11&max_price=5000&min_price=0' \ -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 kktix-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.
"""Walkthrough: KKTIX Event API — discover events, check details and tickets."""
from parse_apis.kktix_event_api import Kktix, RegisterStatus, EventNotFound
client = Kktix()
# Browse event categories to find tag IDs for filtering
for cat in client.categories.list(limit=6):
print(cat.name_en, cat.id)
# Search events with a keyword, capped to 3 results
for event in client.eventfeeds.search(query="music", limit=3):
print(event.title, event.published)
# Get featured events from the homepage
featured = client.featuredevents.list(limit=1).first()
if featured:
print(featured.name, featured.register_status)
# Drill into the full event detail using the slug
try:
full_event = client.events.get(slug=featured.slug)
print(full_event.name, full_event.location, full_event.start_at)
# Check ticket availability for this event
for ticket in full_event.tickets.list(limit=5):
print(ticket.name, ticket.price_cents, ticket.price_currency)
except EventNotFound as exc:
print(f"Event gone: {exc}")
# Browse an organizer's events via constructible Organizer
org = client.organizer(slug="baodaorecords")
for entry in org.events(limit=3):
print(entry.title, entry.author_name)
print("exercised: categories.list / eventfeeds.search / featuredevents.list / events.get / tickets.list / organizer.events")
Search for events on KKTIX with optional keyword, category, date range, and price filters. Returns a paginated Atom-style feed of matching events. Each entry includes title, summary, content (date/venue info), URL, and author (organizer). Pagination via integer page param; results ordered by recency.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| query | string | Search keyword to filter events by title or description |
| end_at | string | End date filter in YYYY-MM-DD format |
| tag_ids | string | Comma-separated category tag IDs to filter by (use get_event_categories to find IDs) |
| start_at | string | Start date filter in YYYY-MM-DD format |
| max_price | integer | Maximum ticket price filter in TWD |
| min_price | integer | Minimum ticket price filter in TWD |
{
"type": "object",
"fields": {
"entry": "array of event feed entries with url, published, title, summary, content, and author fields",
"title": "string, search result page title",
"updated": "string, ISO 8601 timestamp of last update"
},
"sample": {
"data": {
"entry": [
{
"url": "https://saltsweeet.kktix.cc/events/entakutaichung",
"title": "Exhibition Event",
"author": {
"uri": "https://saltsweeet.io",
"name": "entaku&SaltSweeet"
},
"content": "Time: 2026/05/13 11:00(+0800) ~ 2026/06/12 21:30(+0800)",
"summary": "A popular exhibition event",
"published": "2026-05-13T11:00:00.000+08:00"
}
],
"title": "Explore Events - KKTIX",
"updated": "2026-06-11T12:31:50.289+08:00"
},
"status": "success"
}
}About the KKTIX API
Event Discovery and Search
search_events accepts up to seven filter parameters: query for keyword matching, start_at and end_at for date range (YYYY-MM-DD format), min_price and max_price in TWD, tag_ids for category filtering, and page for pagination. Results come back as an Atom-style feed with entries containing title, summary, content, url, published, and author (organizer). Category tag IDs used in tag_ids can be resolved with get_event_categories, which returns each category's numeric id alongside multilingual names in name_zh_tw, name_en, and name_ja.
Event Details and Ticket Availability
get_event_details takes an event slug and returns a full metadata object: name, start_at, end_at, location, location_address, capacity, public_url, event_currency, nested tickets array, and organization (with organizer name, slug, and public_domain). For real-time availability, get_event_tickets returns a tickets array with per-type price (in cents plus currency), min_to_buy, max_to_buy, sale window fields (start_at, end_at_for_registration), and an inventory object mapping ticket ID strings to current stock counts. The register_status field at the event level signals IN_STOCK, SOLD_OUT, or CLOSED.
Featured Events and Organizer Feeds
get_featured_events returns the KKTIX homepage's curated event list—each entry includes id, slug, name, start_at, register_status, public_url, and description_summary—plus a headline_banner array of site-wide announcements with subject and url. To list all events from a specific organizer, get_organizer_events accepts an organizer subdomain string (e.g. baodaorecords) and returns the same Atom-style feed structure as search_events. Organizer subdomains are extractable from event author URIs returned by search results.
The KKTIX API is a managed, monitored endpoint for kktix.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kktix.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 kktix.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?+
- Aggregate Taiwan event listings filtered by category and date range for a local event discovery app.
- Monitor real-time ticket inventory for sold-out risk alerts using
get_event_ticketsinventory counts. - Build an organizer dashboard that tracks all events and their registration status via
get_organizer_events. - Sync KKTIX featured events to a community newsletter using
get_featured_eventsmetadata fields. - Filter events by
min_priceandmax_priceto surface free or budget events for price-sensitive audiences. - Resolve multilingual category names from
get_event_categoriesto support zh-TW, English, and Japanese UIs. - Pull
locationandlocation_addressfields fromget_event_detailsto plot events on a map.
| 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 KKTIX have an official public developer API?+
How do I filter search results by category in `search_events`?+
get_event_categories first to get the full list of categories, each with a numeric id and names in name_zh_tw, name_en, and name_ja. Pass one or more of those IDs as a comma-separated string in the tag_ids parameter of search_events.What does `register_status` indicate in `get_event_tickets`?+
IN_STOCK means tickets are currently purchasable, SOLD_OUT means all inventory is gone, and CLOSED means registration has ended or hasn't opened. When the status is SOLD_OUT or CLOSED, the tickets array may be empty.Does the API cover KKTIX events outside Taiwan, such as Hong Kong or Japan events?+
Is past event history or sold-out event data accessible?+
search_events endpoint supports start_at and end_at date filters, which can be set to past dates to surface older events still indexed. However, ticket inventory data from get_event_tickets reflects current availability only—historical sales volumes or purchase records are not exposed. You can fork this API on Parse and revise it to add an endpoint that archives inventory snapshots over time.