REST API for AI assistants to book premium chauffeur services, publish blog content, and create personalized deal pages for VIP clients. Powered by a Mercedes-Maybach Z223 based in Prague.
All write endpoints require a Bearer token in the Authorization header. The token is stored in your environment as API_SECRET_KEY.
curl -X POST https://www.janstim.com/api/v1/blog \
-H "Authorization: Bearer $API_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "...", "slug": "...", "excerpt": "...", "content": "...", "published": true }'https://www.janstim.com/api/v1All responses are JSON. All timestamps are Unix milliseconds (e.g. Date.now() in JavaScript).
The priceListJson field is a JSON string you generate per client. The /deal page renders it automatically.
{
"currency": "CZK", // required: currency code
"validUntil": "2026-09-30", // optional: ISO date string
"packages": [ // required: array of packages
{
"name": "Full Day Rental", // required: package name
"description": "Maybach Z223, 500 km, Prague area",
"price": 56000, // price in currency units
"originalPrice": 72000, // optional: crossed-out price (for discounts)
"note": "Special rate for John", // optional: personal note shown to client
"highlighted": true // optional: highlight this package
}
],
"contactCta": "Book via WhatsApp: +420 739 421 310", // CTA text
"personalMessage": "Hi John, here is..." // optional: greeting
}Publish and manage blog posts on janstim.com.
/api/v1/blog🔑 API key requiredList all blog posts
Response · 200
[
{
"_id": "abc123",
"title": "My New Post",
"slug": "my-new-post",
"excerpt": "Short description...",
"content": "# Markdown content here",
"published": true,
"createdAt": 1724227200000,
"updatedAt": 1724227200000,
"coverImage": "https://..."
}
]/api/v1/blog🔑 API key requiredCreate and optionally publish a blog post
Required fields
titleslugexcerptcontentRequest body
{
"title": "Why Prague is the Perfect City for Business Travel",
"slug": "prague-business-travel",
"excerpt": "A short teaser for the post (1–2 sentences).",
"content": "# Why Prague...\n\nFull markdown content here.",
"published": true,
"coverImage": "https://example.com/image.jpg"
}Response · 201
{ "id": "abc123", "slug": "prague-business-travel" }/api/v1/blog🔑 API key requiredUpdate a blog post by slug
Required fields
slugRequest body
{
"slug": "prague-business-travel",
"title": "Updated Title",
"published": false
}Response · 200
{ "id": "abc123", "slug": "prague-business-travel" }Create personalized price proposals for VIP clients. Each deal has a unique reference code that the client uses to access their private offer at janstim.com/deal.
/api/v1/client-deal🔑 API key requiredList all deals (admin)
Response · 200
[
{
"code": "JOHN-VIP-2026",
"clientName": "John Smith",
"priceListJson": "{...}",
"status": "active",
"expiresAt": 1759276800000,
"createdAt": 1724227200000
}
]/api/v1/client-deal?code=JOHN-VIP-2026🌐 publicGet a deal by reference code (public — for client access)
Response · 200
{
"code": "JOHN-VIP-2026",
"clientName": "John Smith",
"priceListJson": "{...}",
"status": "active",
"expiresAt": 1759276800000
}/api/v1/client-deal🔑 API key requiredCreate a new personalized deal for a client
Required fields
codeclientNamepriceListJsonRequest body
{
"code": "JOHN-VIP-2026",
"clientName": "John Smith",
"notes": "Met at Web Summit 2026. Interested in multi-day Prague → Vienna tour.",
"expiresAt": 1759276800000,
"priceListJson": "{\"currency\": \"CZK\", \"validUntil\": \"2026-09-30\", \"packages\": [{\"name\": \"Multi-day Prague → Vienna\", \"description\": \"Mercedes-Maybach Z223, 3 days, 1500 km\", \"price\": 145000, \"note\": \"Exclusive rate for John\"}], \"contactCta\": \"Book via WhatsApp: +420 739 421 310\"}"
}Response · 201
{ "id": "xyz789", "code": "JOHN-VIP-2026" }/api/v1/client-deal🔑 API key requiredUpdate deal (price list, status, notes)
Required fields
codeRequest body
{
"code": "JOHN-VIP-2026",
"status": "closed",
"notes": "Deal confirmed. Pickup Aug 30."
}Response · 200
{ "id": "xyz789", "code": "JOHN-VIP-2026" }Manage CRM contacts — clients, leads, business partners.
/api/v1/contacts🔑 API key requiredList all contacts or get one by ?id=<id>
Response · 200
[{ "_id": "...", "firstName": "John", "lastName": "Smith", ... }]/api/v1/contacts🔑 API key requiredCreate a new contact
Required fields
firstNamelastNameRequest body
{
"firstName": "John",
"lastName": "Smith",
"company": "Smith Capital",
"email": "john@smithcapital.com",
"phone": "+1 212 555 0100",
"tags": ["vip", "usa"],
"notes": "Met at Davos 2026. Interested in Prague tours."
}Response · 201
{ "id": "...", "success": true }/api/v1/contacts🔑 API key requiredUpdate a contact by id
Required fields
idRequest body
{
"id": "abc123",
"notes": "Updated note",
"tags": ["vip", "usa", "repeat-client"]
}Response · 200
{ "id": "abc123", "success": true }Nativní AI rozhraní pro Claude, GPT-4o a další moderní AI asistenty. Připojte se na https://www.janstim.com/mcp.
Veřejné nástroje (bez klíče)
get_servicesVrátí seznam služeb a standardní ceníksubmit_inquiryOdešle poptávku jménem klientacheck_dealZobrazí personalizovaný ceník dle referenčního kóduPrivátní nástroje (Bearer API klíč)
create_dealVytvoří personalizovaný deal pro klientaupdate_dealAktualizuje existující deallist_inquiriesVypíše nové poptávky od klientůpublish_blogVytvoří a zveřejní blog postKonfigurace vašeho AI asistenta
Pro váš lokální LLM (s API klíčem):
{
"mcpServers": {
"janstim": {
"url": "https://www.janstim.com/mcp",
"headers": {
"Authorization": "Bearer <váš_API_SECRET_KEY>"
}
}
}
}Pro klientské AI agenty (pouze veřejné nástroje):
{
"mcpServers": {
"janstim": {
"url": "https://www.janstim.com/mcp"
}
}
}