The hibachi catering OS. By API.
Create and manage bookings, auto-assign chefs, fetch your live menu, and generate polished menu descriptions โ all over plain REST + JSON. The same engine that runs ShuiLink-managed caterers, exposed to your tools.
๐ What you can build
A few patterns we built this for. If your idea isn't here, email us.
HibachiFinder sync
Push every new booking from HibachiFinder straight into ShuiLink, with the chef pre-matched.
Calendar integrations
When a booking confirms, push to Google Calendar / Cal.com / Outlook for each assigned chef.
Booking alerts
Slack or SMS your team the second a new booking lands, with the AI's recommended chef attached.
Revenue dashboards
Pipe booking + deposit data into your BI tool of choice for per-chef and per-city revenue charts.
White-label customer portals
Build your own customer-facing booking page on top of our API and our chef-routing engine.
Voice + Hibachi combo
Pair with ShuiLink Voice โ phone calls that book hibachi events end-to-end without a human.
๐ Quickstart
Get your first response in under 60 seconds.
Create an account
Sign up with email + password or Google. New accounts land in pending-approval and need admin promotion before they can call the API.
Sign up โGenerate an API key
Go to the Keys page โ click + Create key โ pick a tier โ copy the raw key. It's only shown once, so save it somewhere safe.
sl_e332f39d5878f54d140b6ee1537fdfe8f7906cec53ab92f6b8c22301634bda80 โโโดโโ 64 hex characters โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Make your first call
List all bookings across your account:
curl https://hibachi.shuilink.com/api/v1/bookings/ \ -H "Authorization: Bearer sl_YOUR_KEY"
๐ Authentication
All API requests must include your API key in the Authorization header.
Authorization: Bearer sl_e332f39d5878...
Alternative headers accepted: X-Api-Key: sl_.... Avoid query params
(?api_key=) โ they leak into server logs and browser history.
Keys are 67-character strings prefixed with sl_. We store only the SHA-256 hash โ
if you lose a key, you must revoke and generate a new one. The same key works for ads, voice, AND hibachi endpoints.
๐ Rate limits
Limits are enforced per-key. Every response carries headers so you can self-throttle.
| Tier | Daily limit | Per-minute | Max keys | Best for |
|---|---|---|---|---|
| Free | 100 req / day | 10 req / min | 2 active | Try it out, prototypes |
| Pro | 10,000 req / day | 100 req / min | 5 active | Production, 1โ10 chef teams |
| Enterprise | Unlimited | Unlimited | 20 active | White-label, SLA, dedicated support |
Response headers
Every successful response includes these. Watch X-RateLimit-Remaining to back off before you 429.
X-Tier: pro X-RateLimit-Limit: 10000 X-RateLimit-Remaining: 9837
โ ๏ธ Errors
All errors return JSON with a single error field describing the problem.
| Status | When | What to do |
|---|---|---|
| 401 | Missing or invalid API key | Check Authorization header. Key revoked? Generate a new one. |
| 403 | Key valid but account pending approval | Email hibachi@shuilink.com to request access. |
| 404 | Booking or chef not found | Confirm the ID belongs to your account. |
| 405 | Wrong HTTP method | Check the endpoint reference below. |
| 422 | Tier max-keys reached on create | Revoke an old key or upgrade tier. |
| 429 | Daily quota exceeded | Wait until UTC midnight reset, or upgrade tier. |
| 500 | Upstream provider error (HibachiFinder, Stripe) | Retry with exponential backoff. Status persists โ email us. |
Example 429 body:
{
"error": "Daily quota of 100 requests reached for tier free.",
"reason": "DAILY_QUOTA_EXCEEDED"
}
๐ฑ Bookings
List, create, and update hibachi catering bookings.
Returns every booking on your account, with date, city, party size, package, assigned chef, and total.
Example response
{
"version": "v1",
"fetched_at": "2026-05-25T00:34:06.105Z",
"bookings": [
{
"id": "bkg_01HPQR...",
"date": "2026-06-15T18:00:00Z",
"customer_name": "Sarah Chen",
"city": "Edison, NJ",
"party_size": 18,
"package": "premium_lobster",
"chef_id": "chef_01HKLM...",
"status": "confirmed",
"total_usd": 1199.00
}
]
}
Body
{
"date": "2026-06-15T18:00:00Z",
"customer_name": "Sarah Chen",
"customer_phone": "+15555550142",
"city": "Edison, NJ",
"party_size": 18,
"package": "premium_lobster",
"dietary_notes": "2 vegetarian, 1 shellfish allergy"
}
{
"id": "bkg_01HPQR...",
"date": "2026-06-15T18:00:00Z",
"customer_name": "Sarah Chen",
"city": "Edison, NJ",
"party_size": 18,
"package": "premium_lobster",
"chef": { "id": "chef_01HKLM...", "name": "Chef Taro" },
"deposit": { "paid": true, "amount_usd": 200.00 },
"status": "confirmed"
}
๐จโ๐ณ Chefs
Manage your chef roster and auto-match the right chef to each booking.
[
{ "id": "chef_01HKLM...", "name": "Chef Taro",
"cities": ["Edison NJ", "Brooklyn NY"], "max_party": 30, "rating": 4.9 }
]
Body
{
"booking_id": "bkg_01HPQR...",
"strategy": "best_rating"
}
Example response
{
"booking_id": "bkg_01HPQR...",
"chef_id": "chef_01HKLM...",
"match_score": 0.94,
"reason": "Lives in Edison NJ, available on date, handles parties up to 30"
}
๐ง AI
Generate menu descriptions, reply drafts, and booking summaries.
Body
{
"dish": "Sake-glazed Hibachi Lobster Tail",
"cuisine": "japanese-hibachi",
"tone": "luxe",
"length": "short"
}
Example response
{
"description": "Hand-finished on the grill with a whisper of premium sake โ our hibachi lobster tail arrives sweet, smoky, and dramatically butter-glazed, right at your table.",
"model": "claude-sonnet-4-6",
"cost_usd": 0.004
}
Body
{
"inquiry": "Hi! Looking to book hibachi for my mom's 60th on Saturday June 22..."
}
๐ณ Payments
Trigger deposit links and check payment status. Pro+ only.
Body
{
"booking_id": "bkg_01HPQR...",
"amount_usd": 200.00
}
Ready to start automating?
Free tier doesn't need a credit card. You'll have a working API key in 60 seconds.
Sign up free โ