# Build with PlaceFull

PlaceFull is booking software for everything a space can earn — classes, appointments,
rentals and memberships on one calendar — built to be built on. Three doors, all public:

- **Embed** booking on a website the studio already has: one script tag and one custom
  element, plain HTML the site's own CSS styles. [The embed contract](https://placefull.ai/developers/embed).
- **Build** a booking site or app on the storefront API: public reads, priced quotes, a cart
  that is the pay link, checkout on the studio's own Stripe account.
  [API reference](https://placefull.ai/docs) · [OpenAPI 3.1](https://placefull.ai/openapi.json) · [as markdown](https://placefull.ai/docs.md).
- **Connect an AI assistant** to set up or run a studio: an MCP server at
  `POST https://placefull.ai/mcp` with OAuth 2.1 (no API key for Claude and ChatGPT) or a `bk_` key.
  [Agent guide](https://placefull.ai/llms-full.txt) · [server card](https://placefull.ai/.well-known/mcp.json).

PlaceFull charges no monthly fee. Its fee is 2% of each card payment (the default rate; a studio can be set differently), which the studio absorbs, splits with the customer, or charges the customer as a service fee. Cash and recorded-elsewhere payments carry no fee. Stripe's own processing fee is separate and goes to Stripe. Full page: [pricing](https://placefull.ai/pricing).

Sign-up is invite-only for now: an operator who already has an account connects and works as usual; a new studio needs an invite link from PlaceFull before an assistant can create it.

## For agents

An assistant adding booking to a site, or setting up a studio for a person, can load one
skill that says which door to take and how:

- [Agent skill: placefull-booking](https://placefull.ai/skills/placefull-booking/SKILL.md)
- [llms.txt](https://placefull.ai/llms.txt) — the index; [llms-full.txt](https://placefull.ai/llms-full.txt) — the whole guide

Every reference page here has a markdown twin: ask for `Accept: text/markdown`, or add `.md`
to its address.

## Authentication in one minute

Passwordless. Request a code, verify it, send the session token as a bearer:

```bash
curl -sS -X POST https://placefull.ai/auth/challenges \
  -H 'Content-Type: application/json' \
  -d '{"email":"you@example.com","channel":"email_code"}'

curl -sS -X POST https://placefull.ai/auth/verify \
  -H 'Content-Type: application/json' \
  -d '{"challengeId":"<challenge-id>","code":"123456"}'
```

Server-to-server work uses an operator API key (`bk_…`) minted in the console under
Settings → API keys, sent as `Authorization: Bearer bk_…`. Storefront reads need no auth.

## Connect an assistant

One address for every assistant: `https://placefull.ai/mcp`. Each person signs in as themselves, so
an assistant can do exactly what they can do in the console — no more. Settings → AI
assistants has the address to copy.

### Claude

Works in claude.ai and the Claude desktop app. You sign in with your operator email —
there is no key to create or paste.

1. In Claude, open **Settings → Connectors** and choose **Add custom connector**.
2. Paste `https://placefull.ai/mcp`, then click **Connect**.
3. A sign-in page opens in your browser. Enter your operator email, type the 6-digit code
   we send you, pick the business if you have more than one, and click **Allow**.
4. Back in Claude, ask it something — *“Who is booked into Beginner Yoga this morning?”*
   or *“Add a Tuesday 6 PM yoga class.”*

The connector is tied to the business you picked at **Allow**. To give Claude a second
studio, add a second connector.

The sign-in opens as a browser tab, not inside Claude. If nothing appears, check your
pop-up blocker.

If Claude reports a connection issue before you have completed the sign-in page, remove
the connector and add it again. Reconnect cannot finish a sign-in that never started.

### ChatGPT

1. ChatGPT → Settings → Apps → Advanced settings → developer mode, then Settings →
   Connectors → Create.
2. Paste the compact URL: `https://placefull.ai/mcp?tools=compact` — ChatGPT caps tool
   definitions, so this projection serves the core set.
3. Sign in with the operator email, enter the 6-digit code, pick the studio, click Allow
   — no API key required.

### Claude Code

Same sign-in, from the terminal. Register the server, then run `/mcp` inside Claude Code
to open the sign-in page:

```bash
claude mcp add --transport http PlaceFull https://placefull.ai/mcp
```

### Cursor and other API-key clients

Clients that cannot open a sign-in page use an API key instead. Create one under
Settings → API keys. The key is shown once, when you create it, and acts as this business.

1. Open **Cursor → Settings → MCP** and add a new server, or edit `.cursor/mcp.json`
   directly.
2. Use the config below, with your key in place of `bk_your_api_key_here`.

```json
{
  "mcpServers": {
    "PlaceFull": {
      "url": "https://placefull.ai/mcp",
      "headers": {
        "Authorization": "Bearer bk_your_api_key_here"
      }
    }
  }
}
```

A key is not tied to a location — the assistant will ask which site when it matters. To
pin it to one site, use `https://placefull.ai/mcp?locationId=<location-id>` as the URL instead.

Anything that speaks MCP over HTTP can use the address above: sign in through OAuth, or
send `Authorization: Bearer bk_…` with an API key. Running the code yourself? Claude
Desktop can also spawn the server from a checkout over stdio with a `bk_` key in
`BOOKABLE_API_KEY` — see `mcp/README.md` in the repository.

## Conventions

- Money is integer minor units both ways: a $22.00 class is `2200`.
- Timestamps are ISO-8601 in UTC.
- Responses are `{ "data": … }`; errors are `{ "error": { "code", "message", "details" } }` with stable codes.
- Never invent an id — read it from a list or a slug lookup.

## Payments

Stripe Connect direct charges: the studio is the merchant of record on its own Stripe
account, and customers pay the studio, never the platform. The platform's share is taken
per booking as a Stripe application fee.

## Legal

[Terms of use](https://placefull.ai/terms) · [Privacy](https://placefull.ai/privacy) · [Merchant agreement](https://placefull.ai/merchant-terms)
