---
title: "Get a venue"
method: GET
path: "/venues/{venueId}"
tags: ["Venues"]
---

# Get a venue

`GET /venues/{venueId}`

## Request

- Base URL: `https://joinways.app/api/v1`
- URL: `https://joinways.app/api/v1/venues/{venueId}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://joinways.app/oauth/authorize`, token URL `https://joinways.app/api/oauth/token`, scopes: `mcp.read`)

The venue (or space, when `venueId` is a space: its `parent_id` is then set), its spaces and the teammates who can see it. A venue outside the member's venues answers `404`. **Role permission:** none (any member; limited to the member's venues).

## Response `200`

The venue, its spaces and its members.

- object
  - `venue` VenueDetail, required
    - `id` string, uuid
    - `name` string
    - `type` string, nullable
    - `capacity` integer, nullable
    - `color` string, nullable
    - `parent_id` string, uuid, nullable
    - `front_id` string, nullable
    - `booked_whole_only` boolean: The venue is only rented whole: every event takes the whole venue, `space_ids` sent for its events are ignored (no space is stored), and space slots are off. Always false on a space.
    - `description` string, nullable
    - `notes` string, nullable
    - `tags` string[], nullable
    - `address` string, nullable
    - `city` string, nullable
    - `postal_code` string, nullable
    - `state` string, nullable
    - `country` string, nullable
    - `timezone` string, nullable
    - `currency` string, nullable
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
  - `spaces` Space[], required: Spaces (rooms) of the venue, by display_order then name.
    - `id` string, uuid
    - `name` string
    - `type` string, nullable
    - `capacity` integer, nullable
    - `surface` integer, nullable: Square metres.
    - `description` string, nullable
    - `color` string, nullable
    - `display_order` integer: Order in lists (then by name).
    - `layout_capacities` object: Seats per layout; `capacity` stays the headline figure. Keys: theatre, classroom, banquet, cabaret, cocktail, u_shape, boardroom.
    - `combined_space_ids` string[]: This space is the combination of these spaces of the same venue (movable walls). Booking it takes them; booking one of them conflicts with it. Empty for a plain space.
    - `setup_minutes` integer: Set-up time before each use, counted as occupied in conflicts.
    - `teardown_minutes` integer: Tear-down time after each use, counted as occupied in conflicts.
    - `rental_fee` number, nullable: Hire fee excl. tax, venue currency (quote reference).
    - `min_spend` number, nullable: Minimum spend excl. tax when the space is booked.
  - `members` object[], required: Teammates who can see this venue: everyone, unless a teammate is limited to other venues. `role` is their workspace role.
    - `user_id` string, uuid
    - `role` 'owner' | 'admin' | 'member' | 'operations' | 'viewer'
    - `accounts` object, nullable
      - `name` string, nullable
      - `email` string, nullable

## Other responses

- `401`: Missing, invalid, expired or revoked bearer token (`unauthorized`).
- `404`: Not found in this workspace, or the id of the path is not a UUID (`not_found`).
- `429`: Too many requests (`rate_limited`). `details.reason`: `per-ip`, `per-account-minute`, `per-account-day`, or `email_rate_limited` (email budget). Always carries `Retry-After`: wait that many seconds.

---

[API](https://skmtc.dev/joinways/apis/joinways-public-api.md) · [All operations](https://skmtc.dev/joinways/apis/joinways-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/joinways/apis/joinways-public-api/revisions/39e84309953e?raw)
