Soho House API (Unofficial Technical Guide 2025)
A comprehensive technical deep-dive into the Soho House digital ecosystem. We analyze the staging environments, third-party integrations (Oracle Simphony, Agora, Algolia), and the internal logic behind 'House Pay', Room Bookings, and Member Connections as revealed in the 2025 public API specification.
The Tech Insider
Author
The Tech Insider

Soho House API (Unofficial Technical Guide 2025)
On 8 October 2025, a comprehensive Postman collection for the Soho House digital ecosystem was made publicly available at docs.sohohousedigital.com. While intended for internal use, its availability offers a fascinating window into how a global luxury hospitality brand architects its digital membership experience.
This guide analyzes the technical stack, staging environments, and third-party integrations (Oracle Simphony, Agora, 3C) that power everything from room bookings to the "House Pay" bill-splitting feature. It includes a complete reference of endpoints, parameters, and configuration details found within the specification.
Disclaimer: We are not affiliated with Soho House & Co. This analysis is based strictly on publicly accessible documentation and is intended for educational and interoperability research purposes.
1. Infrastructure & Environments
The API specification reveals a clear separation between production and staging environments, utilizing a microservices-style routing architecture. It also exposes specific sub-brands like "The Ned" and "Soho Works" operating on distinct identity providers.
Hostnames & Services
- Production API:
https://api.production.sohohousedigital.com - Staging API:
https://api.staging.sohohousedigital.com - The Ned (Staging):
https://api-ned.staging.sohohousedigital.com - Version Control Service:
https://vcs-master.staging.sohohousedigital.com(Used forforce_updatechecks) - Algolia Search:
https://MRH59RRZDT-dsn.algolia.net(App ID:MRH59RRZDT)
Identity Providers
Authentication is federated across different brands:
- Soho House:
identity.houseseven.com - The Ned:
identity.thened.com - Soho Works:
identity.sohohouse.com
2. Authentication & The "Public Secret"
The API uses standard OAuth2. Because the mobile apps are "public clients," the client_id and client_secret are embedded directly in the application code. The Postman collection explicitly exposes these credentials, allowing us to understand the auth flow.
Credentials found in spec:
client_id: "200140c7**************************************3b96fef0"
client_secret: "7362f55c4**************************************2e29018a6"
The Gateway Headers
Once a user logs in via /oauth/token, the API Gateway injects specific headers into upstream requests. This reveals how Soho House manages multi-venue permissions without querying the database on every request:
X-Sh-Global-Id: The user's unique UUID.X-Sh-Business-Unit: Segments users by brand (e.g.,sh,ned).X-Sh-Memberships: e.g.,EVERY_HOUSE,REGULAR,CITIES_WITHOUT_HOUSES.X-Sh-Sites: A comma-separated list of authorized venue codes (e.g.,180_HOUSE,SHD(Shoreditch),BH(Babington),GRS(Greek Street)).
3. Endpoint Reference & Configuration
A. Authentication & Identity
Standard OAuth2 flows used to generate the Bearer token required for all other endpoints.
| Method | Endpoint | Description | Params / Payload |
|---|---|---|---|
GET |
/oauth/authorize |
Web Login Flow | response_type=code, client_id, redirect_uri |
POST |
/oauth/token |
Exchange code/credentials | grant_type (password/authorization_code), client_id, client_secret |
POST |
/api/v1/identities |
Create Account | email, password, first_name, last_name, phone_number |
PUT |
/api/v1/password |
Change Password | old_password, password, password_confirmation |
GET |
/api/v1/me |
Legacy Account Info | Returns basic ID and local venue |
B. Accounts, Profiles & Memberships
Endpoints for managing the user's digital identity. The include parameter suggests a relational database structure on the backend.
| Method | Endpoint | Description | Configuration / Notes |
|---|---|---|---|
GET |
/profiles/accounts/me |
Full Account Details | include=profile,membership,local_house |
PATCH |
/profiles/accounts/me |
Update Account | Update address, consents, phone number |
GET |
/profiles/profiles/me |
Public Profile Data | Returns bio, social handles, job title |
PATCH |
/profiles/profiles/me |
Update Profile | Update bio, social handles, occupation |
GET |
/profiles/memberships/me |
Membership Status | Returns status, start/end dates, staff type (is_staff) |
GET |
/profiles/interests |
List Interests | filter[name][prefix] for autocomplete |
GET |
/profiles/occupations |
List Occupations | filter[name][prefix] for autocomplete |
GET |
/profiles/membership_cards/{number}/profile |
Lookup by Card | Resolve a physical card number to a global ID |
C. Events & Cinema
Comprehensive endpoints for listing and booking house events. The logic includes specific handling for "Lotteries" (high-demand events).
| Method | Endpoint | Description | Key Filters / Params |
|---|---|---|---|
GET |
/events/events |
Search Events | filter[location_id], filter[date][from], filter[category], filter[event_type] |
GET |
/events/events/{id} |
Single Event | include=venue,resource |
GET |
/events/event_categories |
List Categories | filter[event_type] |
GET |
/events/bookings |
List User Bookings | filter[state] (booked/cancelled), include=event,venue |
POST |
/events/bookings |
Book Event | Payload: guests array, event ID, payment_card ID |
DELETE |
/events/bookings/{id} |
Cancel Booking | N/A |
D. Rooms (Hotel Booking)
The rooms endpoints reveal internal codes for room types and rate plans. The days endpoint is particularly interesting as it exposes the raw pricing calendar.
| Method | Endpoint | Description | Insider Notes / Params |
|---|---|---|---|
GET |
/rooms/hotels |
List Hotels | Returns booking URLs and tax info |
GET |
/rooms/availabilities |
Search Rooms | filter[rate_plan_type] (e.g., MEMBER_RATE, FRIENDS) |
GET |
/rooms/days |
Rate Calendar | Exposes room codes: TINY, SMALL, MEDM, LARG |
GET |
/rooms/room_bookings |
List Bookings | filter[status], filter[starts_at][from] |
POST |
/rooms/room_bookings |
Create Booking | Payload: address, dates, availability_rate ID |
PATCH |
/rooms/room_bookings/{id} |
Modify Booking | Change dates or guest counts |
E. House Pay (Checks & Simphony Integration)
This section reveals a tight integration with Oracle Micros Simphony. The API allows members to pay restaurant bills directly. It includes a specific "Walkout" endpoint, likely used to close checks automatically against a member's file.
| Method | Endpoint | Description | Insider Notes |
|---|---|---|---|
GET |
/checks/public/checks |
List Open Checks | filter['status']=open |
GET |
/checks/public/checks/{id} |
Get Check Details | Returns items, tax, service charge |
POST |
/checks/public/payments |
Pay Check | Payload: check_id, amount_cents, card_id, tip_amount_cents |
POST |
/checks/public/payments/walkout |
Walkout Payment | Uses simphony_manager_id to force close check |
POST |
/checks/public/checks/{id}/discount |
Apply Discount | Payload: discount_id (e.g. U27 rates) |
POST |
/checks/public/checks/{id}/email |
Email Receipt | Triggers PDF receipt email |
GET |
/payments/cards |
List Cards | filter[venue] (usually hardcoded 'GRS') |
F. Tables (Restaurant Booking)
The API uses a "Lock" mechanism to prevent double-booking during the checkout process.
| Method | Endpoint | Description | Insider Notes |
|---|---|---|---|
GET |
/tables/availabilities |
Search Slots | filter[restaurant_id] (e.g., SH_SIXTH_FLOOR_RESTAURANTS) |
POST |
/tables/locks |
Lock Table | Locks a slot for x minutes while user completes booking |
POST |
/tables/table_bookings |
Confirm Booking | Requires valid table_lock ID |
G. Connect & Chat (Agora Integration)
The "House Connect" features utilize Agora for real-time communication, evidenced by the agora_id parameter.
| Method | Endpoint | Description | Notes |
|---|---|---|---|
GET |
/connect/checkins |
Noticeboard | filter[venue_id] to see who is at a house |
POST |
/connect/checkins |
Post to Noticeboard | Payload: status, venue_id |
GET |
/chat/timeslots |
Chat Availability | List open slots for "House Connect" |
POST |
/chat/chat_tokens |
Get Chat Token | Returns token for Stream/Agora integration |
POST |
/chat/rooms/{id}/room_accesses |
Join Room | Payload includes agora_id |
H. Membership Applications
Endpoints used during the signup flow, including Braintree integration for payments.
| Method | Endpoint | Description |
|---|---|---|
GET |
/applications |
List user's applications |
POST |
/applications |
Submit new application |
POST |
/applications/{id}/attachments |
Upload ID/Headshot |
GET |
/products |
List Membership Products |
I. Content & Editorial
Read-only endpoints for app content, house notes, and static pages.
| Method | Endpoint | Description | Key Filters |
|---|---|---|---|
GET |
/content/house_notes |
Editorial Content | filter[venue_id], filter[content_category_id] |
GET |
/content/perks |
Member Benefits | filter[region] |
GET |
/content/house_rules |
House Rules | filter[venue_id] |
GET |
/content/house_tours |
House Tours | filter[venue_id] |
J. System Control
| Method | Endpoint | Description |
|---|---|---|
GET |
/force_update |
Returns 426 Upgrade Required if the app version matches a deprecated list, forcing users to update via the App Store. |
Conclusion
The Soho House API is a sophisticated implementation of JSON:API standards, orchestrating a complex web of legacy POS systems (Simphony), modern real-time tech (Agora), and global identity management. For developers, it serves as a masterclass in how to wrap legacy hospitality systems in a modern, mobile-first REST API.
Disclaimer: This analysis is based on a snapshot of documentation available publicly in October 2025.
References & Citations
Editorial Disclosure
This article is an independent publication. We are not affiliated with Soho House & Co. Information is based on public sources and fair use principles for commentary and criticism. No endorsement is implied.
