canonical: https://jentic.com/apis/jammedapp.com/jammedapp

# Jammedapp Jammed Bookings API

Jentic publishes the only available OpenAPI specification for Jammed Bookings API, keeping it validated and agent-ready. Jammed is a booking platform built for music rehearsal and recording studios, and the 2.1.0 API exposes endpoints for managing bookings, transactions, lifecycle webhook reads, and reminder events. The spec covers booking creation, cancellation and finished-state lookups, transaction listing per booking, and the various webhook event feeds that downstream systems poll. Authentication uses a bearer-style API key supplied in the Authorization header.

## For AI agents

Manage rehearsal and recording studio bookings, transactions, and lifecycle webhook events through the Jammed Bookings API.

## Scope

Does not handle payment capture, room hardware control, or marketing email delivery - use for Jammed studio booking and lifecycle lookups only.

## Capabilities

- Create, retrieve, and update bookings made against a studio's calendar
- Pull lifecycle event lists - cancelled, started, finished, reminder, and updated bookings
- List transactions attached to a booking for till and reconciliation reporting
- Fetch one-hour-before reminder events to drive notifications and front-of-house prep
- Authenticate via the Authorization Bearer header for server-to-server calls

## Use cases

### Studio Booking Sync to External Calendars

Studio operators sync Jammed bookings into their own staff calendars and front-of-house dashboards. The `/bookings/updated.json` feed returns recently changed bookings and individual `/bookings/{code}.json` calls fetch the full record, letting an integration mirror booking state into Google Calendar or a custom ops dashboard.

Example prompt: GET `/bookings/updated.json` since last cursor and upsert each returned booking into the staff Google Calendar

### Front-of-House Reminder Workflow

Front-of-house teams and customers benefit from a reminder one hour before a booking starts. The `/bookings/one_hour_before.json` and `/bookings/reminder.json` endpoints return the bookings due for reminders, which an integration uses to send SMS or email confirmations and to prepare the room.

Example prompt: GET `/bookings/one_hour_before.json` and dispatch an SMS to each customer with their booking code

### Transaction Reconciliation

Studio managers reconcile till takings against booking transactions at end of day. GET `/bookings/{code}/transactions.json` returns the transactions for a booking and a POST against the same path records new charges, supporting a closing routine that ties payments to specific bookings without manual data entry.

Example prompt: Iterate through today's bookings and GET `/bookings/{code}/transactions.json` for each, then write the totals to the daily ledger

### AI Agent Studio Assistant

An AI assistant for a studio handles booking lookups and reminder dispatch on behalf of front-of-house staff. Through Jentic the agent searches for 'get jammed booking', loads the GET `/bookings/{code}.json` schema, and executes against the Jammed API with the bearer key managed in your Jentic One instance.

Example prompt: Search Jentic for 'get jammed booking by code', execute GET `/bookings/{code}.json`, and reply with the booking time, room, and customer name

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/bookings.json` | List bookings with filters |
| POST | `/bookings.json` | Create a booking |
| GET | `/bookings/{code}.json` | Retrieve a booking by code |
| PATCH | `/bookings/{code}.json` | Update a booking |
| GET | `/bookings/cancelled.json` | List recently cancelled bookings |
| GET | `/bookings/one_hour_before.json` | List bookings due to start within an hour |
| GET | `/bookings/{code}/transactions.json` | List transactions for a booking |
| POST | `/bookings/{code}/transactions.json` | Record a transaction against a booking |

## Key resources

- **Bookings** — Create, retrieve, and update studio bookings
- **Lifecycle Feeds** — Endpoints for cancelled, started, finished, reminder, and updated bookings
- **Transactions** — Payments and charges attached to bookings

## Why Jentic

- **Setup:** Wiring the Jammed Bookings API by hand means building its bearer Authorization header and tracking booking lifecycle across many endpoints yourself. Through Jentic you install once, import Jammed from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Jammed puts the booking code in the URL path (`/bookings/{code}...`), so a rule can pin your agent to one booking: it can read that booking and its transactions and nothing else. You choose the operations it may call, so a booking update or a new transaction is not included unless you add it.
- **Credential handling:** Your Jammed API key is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a studio booking' or 'list cancelled bookings', and Jentic returns the matching Jammed operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Calendly API** — General-purpose scheduling API for one-to-one and group bookings
- **Twilio API** — SMS channel used to send booking reminders to customers
- **Mailchimp API** — Email marketing for studio newsletters and re-engagement campaigns

## FAQ

### Why is there no official OpenAPI spec for Jammed Bookings API?

Jammed does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Jammed Bookings API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Jammed Bookings API use?

Jammed accepts an API key as a bearer-style Authorization header. Each key is scoped to a studio account. Through Jentic the key is stored in the credential vault and the Authorization header is added to every outbound request.

### Can I create a new booking with the Jammed API?

Yes. POST /bookings.json creates a booking with the customer, room, start time, and duration in the JSON body and returns the booking code used in subsequent `/bookings/{code}.json` calls.

### What are the rate limits for the Jammed Bookings API?

Jammed does not document numeric rate limits in the spec. They publish endpoints as they are added and ask integrators to contact support for high-volume needs; pace polling-based feeds and prefer the `/bookings/updated.json` cursor over full reloads.

### How do I list cancelled bookings through Jentic?

Search Jentic for 'list cancelled jammed bookings', load the GET `/bookings/cancelled.json` schema, and execute with an optional time filter. Jentic handles the Authorization header injection so the agent only supplies the date range.

### Why are these endpoints polled rather than webhook-driven?

The 2.1.0 spec exposes lifecycle feeds (cancelled, started, finished, reminder, updated) as poll endpoints rather than push webhooks. Schedule a regular pull of `/bookings/updated.json` with a cursor to keep state in sync; this matches the way Jammed currently surfaces lifecycle events.

### Can I limit what my agent is allowed to do with the Jammed Bookings API?

Yes. Jentic One is self-hosted, so your own rules decide which Jammed operations and credentials the agent may use. Because the booking code sits in the URL path (`/bookings/{code}...`), you can pin the agent to a single booking and let it read only that booking and its transactions via GET `/bookings/{code}.json` and GET `/bookings/{code}/transactions.json.` You choose the operations it may call, so a PATCH `/bookings/{code}.json` update or a POST that records a new transaction is excluded unless you add it.
