Skip to main content
Use these steps to set up resources before creating bookings.

1) Create a venue

curl -X POST "https://api.boseat.com/v1/venues" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Downtown Hub",
    "address": {
      "line1": "123 Main St",
      "city": "New York",
      "country": "US"
    }
  }'

2) Add a space to the venue

curl -X POST "https://api.boseat.com/v1/spaces" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "venueId": "$VENUE_ID",
    "name": "Meeting Room A",
    "capacity": 8
  }'

3) Create a booking product

Products define pricing and duration rules. Booking products have duration metadata:
curl -X POST "https://api.boseat.com/v1/products" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "HOURLY-001",
    "name": "Hourly Meeting Room",
    "description": "Book this room by the hour",
    "price": 5000,
    "currency": "EUR",
    "type": "one_time",
    "category": "booking",
    "metadata": {
      "duration": {
        "value": 1,
        "type": "hourly"
      }
    },
    "spaces": ["$SPACE_ID"]
  }'
Product categories:
  • booking — Products used for seat reservations (requires duration metadata)
  • additional — Supplementary products (e.g., catering, equipment)
Duration types: hourly, daily, weekly, monthly, yearly

4) Create an additional product

Additional products can be added to bookings:
curl -X POST "https://api.boseat.com/v1/products" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "CATERING-001",
    "name": "Coffee Service",
    "description": "Coffee and pastries for your meeting",
    "price": 1500,
    "currency": "EUR",
    "type": "one_time",
    "category": "additional",
    "metadata": {},
    "spaces": ["$SPACE_ID"]
  }'
Products are linked to spaces via the spaces array in the product. You can also update a space to include products:
curl -X PATCH "https://api.boseat.com/v1/spaces/$SPACE_ID" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "products": ["$PRODUCT_ID_1", "$PRODUCT_ID_2"]
  }'

6) Verify

List resources to confirm setup:
# List venues
curl -H "Authorization: Bearer $ACCESS_TOKEN" \
  "https://api.boseat.com/v1/venues"

# List spaces for a venue
curl -H "Authorization: Bearer $ACCESS_TOKEN" \
  "https://api.boseat.com/v1/spaces?venueId=$VENUE_ID"

# Get space with products
curl -H "Authorization: Bearer $ACCESS_TOKEN" \
  "https://api.boseat.com/v1/spaces/$SPACE_ID"
Additional guidance:
  • Required fields:
    • Venue: name, address (line1, city, country)
    • Space: venue UUID, name, capacity
    • Product: reference, name, price, currency, type, category, metadata (for booking products)
  • Supported currencies: ISO-4217 (e.g., USD, EUR, GBP). Prices are in cents (5000 = 50.00 EUR).
  • Capacity: Space capacity is a number (1-100).
  • Product prices: Stored in cents. 5000 = 50.00 EUR.
  • Use idempotency keys when creating resources to prevent duplicates on retries.