Base URL
https://api.jct.rest/v1
Authentication
All requests require a Bearer token. Generate API keys from Settings → Integrations in your jct dashboard.
Authorization: Bearer YOUR_API_KEY
Venues
Retrieve venue profile and operating hours.
GET /venues/{venue_id}
{
"id": "ven_rusty_fork",
"name": "The Rusty Fork",
"slug": "rusty-fork-nyc",
"location": "New York, NY",
"hours": { "mon": "17:00-23:00", "tue": "17:00-23:00" },
"menu_url": "https://therustyfork.jct.rest"
}
Menu
List all menu sections and items for a venue.
GET /venues/{venue_id}/menu
{
"sections": [
{
"id": "sec_mains",
"name": "Mains",
"items": [
{
"id": "item_burger",
"name": "Classic Burger",
"price": 18.00,
"description": "Grass-fed beef, aged cheddar, brioche",
"dietary": ["gluten"],
"available": true
}
]
}
]
}
Drinks
List drinks on a venue's menu with pricing and serving sizes.
GET /venues/{venue_id}/drinks?category=beer
{
"data": [
{
"id": "drk_ipa",
"name": "Goose Island IPA",
"category": "Craft Beer",
"abv": 5.9,
"price": 8.00,
"serving": "330ml"
}
]
}
Orders
Create and retrieve POS orders. Useful for custom kitchen display or reporting integrations.
GET /venues/{venue_id}/orders?status=open
POST /venues/{venue_id}/orders/{id}/close
Webhooks
Subscribe to real-time events: menu.updated, order.created, drink.added.
POST /webhooks
{
"url": "https://yourrestaurant.com/hooks/jct",
"events": ["menu.updated", "order.created"]
}
API access is included on Pro and Enterprise plans. See pricing for details.