---
title: "Get one offering, with the questions guests answer as they book: bookings.create takes their answers, keyed by question id"
method: GET
path: "/offerings/{id}"
tags: ["offerings"]
---

# Get one offering, with the questions guests answer as they book: bookings.create takes their answers, keyed by question id

`GET /offerings/{id}`

## Request

- Base URL: `https://daybag.io/api/v1`
- URL: `https://daybag.io/api/v1/offerings/{id}`
- Auth: HTTP bearer

## Path parameters

- `id` string, uuid, required

## Response `200`

Success

- object
  - `id` string, required
  - `org_id` string, required
  - `kind` 'class' | 'appointment' | 'rental', required: class: sessions with seats, from its calendar · appointment: times from its calendar or weekly hours · rental: inventory over periods
  - `name` string, required
  - `description` string, required
  - `location` string, required: Where it meets, as guests read it: an address, a place or GPS coordinates. Or an https meeting link for an offering online, which guests join
  - `duration_minutes` integer, required: Length of a class session or appointment, or of one rental period (1440 = a day)
  - `capacity` integer, required: class: seats per session · appointment: parallel bookings per slot · rental: items in stock
  - `max_per_booking` integer, required: Most seats, people or items in one booking. An appointment is one-on-one at 1 (its default); more lets a guest book for a party
  - `price_cents` integer, required: class: per seat · appointment: per appointment, for its first person (see guest_price_cents) · rental: per item per period
  - `guest_price_cents` integer, nullable: appointment: what each additional guest in a party adds; null (the default) charges each the full price, 0 makes them free
  - `deposit_cents` integer, nullable: A deposit guests pay at booking where they pay online, in the currency's minor units (at most the total); the rest is due at the start. Null: the whole total
  - `deposit_percent` integer, nullable: A deposit as a percent of the total, 1 to 99, paid at booking where guests pay online; null: the whole total
  - `slot_interval_minutes` integer, nullable, required: Minutes between start times; null means back to back
  - `buffer_minutes` integer, required
  - `min_notice_minutes` integer, required
  - `max_advance_days` integer, required
  - `max_periods` integer, required: Rentals: the most periods one booking can span
  - `active` boolean, required: false pauses booking: guests and agents can't book it, and it stays in your dashboard
  - `metadata` unknown, required
  - `lat` number, nullable: The meeting point's latitude, for its map link and the weather call
  - `lon` number, nullable
  - `place_id` string, nullable: Google Maps' place ID for the location, which the guest's map link opens
  - `gauge_site` string, nullable: A USGS river gauge's site number
  - `schedule` 'hours' | 'calendar', nullable: An appointment's: weekly hours or calendar entries; null for other kinds
  - `waiver_required` boolean: Each person booked signs your waiver (waiver.get) on their phone before they come
  - `waitlist_enabled` boolean: A full time keeps a waitlist that guests join, emailed when a place opens (waitlist_list). Switched off, everyone waiting comes off and is emailed
  - `course` boolean: A class sold as a course: availability.get lists each calendar entry that ends as one slot, and bookings.create takes its series_id to book every time of it
  - `questions` object[]: What guests answer as they book, in this order: ask the guest, then pass the answers to bookings.create as answers, keyed by each question's id
    - `id` string, required: bookings.create takes the answer to this question under this id
    - `label` string, required: The question as guests read it
    - `type` string, required: text: a line in their words · yes_no: true or false · choice: one of its options
    - `options` string[]: A choice's options: its answer is one of them, as listed
    - `required` boolean, required: Guests must answer it to book online
  - `photo_url` string, nullable: Its photo, at the top of its card on the booking page: a JPEG's absolute URL, or null without one. Read-only: photos are uploaded in the dashboard (the offering's Photo)
  - `created_at` string, required: ISO 8601 timestamp (UTC)

## Other responses

- `default`: Error

---

[API](https://skmtc.dev/daybag/apis/daybooked-io-api.md) · [All operations](https://skmtc.dev/daybag/apis/daybooked-io-api/llms.txt) · [OpenAPI document](https://skmtc.dev/daybag/apis/daybooked-io-api/revisions/1f576dead370?raw)
