API de Soho House (Guía Técnica No Oficial 2025)
Una profunda inmersión técnica en el ecosistema digital de Soho House. Analizamos los entornos de staging, integraciones de terceros (Oracle Simphony, Agora, Algolia) y la lógica interna detrás de 'House Pay', Reservas de Habitaciones y Conexiones de Miembros, tal como se revela en la especificación pública de la API de 2025.
The Tech Insider
Author
The Tech Insider

API de Soho House (Guía Técnica No Oficial 2025)
El 8 de octubre de 2025, se hizo públicamente disponible una colección completa de Postman para el ecosistema digital de Soho House en docs.sohohousedigital.com. Aunque está destinada para uso interno, su disponibilidad ofrece una ventana fascinante sobre cómo una marca de hospitalidad de lujo global arquitecta su experiencia de membresía digital.
Esta guía analiza la pila técnica, los entornos de staging y las integraciones de terceros (Oracle Simphony, Agora, 3C) que impulsan todo, desde las reservas de habitaciones hasta la función de división de cuentas "House Pay". Incluye una referencia completa de endpoints, parámetros y detalles de configuración encontrados dentro de la especificación.
Descargo de responsabilidad: No estamos afiliados a Soho House & Co. Este análisis se basa estrictamente en documentación accesible públicamente y está destinado a fines educativos y de investigación sobre interoperabilidad.
1. Infraestructura y Entornos
La especificación de la API revela una clara separación entre los entornos de producción y staging, utilizando una arquitectura de enrutamiento estilo microservicios. También expone sub-marcas específicas como "The Ned" y "Soho Works" que operan en distintos proveedores de identidad.
Nombres de Host y Servicios
- API de Producción:
https://api.production.sohohousedigital.com - API de Staging:
https://api.staging.sohohousedigital.com - The Ned (Staging):
https://api-ned.staging.sohohousedigital.com - Servicio de Control de Versiones:
https://vcs-master.staging.sohohousedigital.com(Usado para verificaciones deforce_update) - Búsqueda de Algolia:
https://MRH59RRZDT-dsn.algolia.net(ID de App:MRH59RRZDT)
Proveedores de Identidad
La autenticación está federada a través de diferentes marcas:
- Soho House:
identity.houseseven.com - The Ned:
identity.thened.com - Soho Works:
identity.sohohouse.com
2. Autenticación y el "Secreto Público"
La API utiliza OAuth2 estándar. Dado que las aplicaciones móviles son "clientes públicos", el client_id y el client_secret están incrustados directamente en el código de la aplicación. La colección de Postman expone explícitamente estas credenciales, lo que nos permite entender el flujo de autenticación.
Credenciales encontradas en la especificación:
client_id: "200140c7**************************************3b96fef0"
client_secret: "7362f55c4**************************************2e29018a6"
Los Encabezados del Gateway
Una vez que un usuario inicia sesión a través de /oauth/token, el API Gateway inyecta encabezados específicos en las solicitudes ascendentes. Esto revela cómo Soho House gestiona permisos multi-venue sin consultar la base de datos en cada solicitud:
X-Sh-Global-Id: El UUID único del usuario.X-Sh-Business-Unit: Segmenta a los usuarios por marca (por ejemplo,sh,ned).X-Sh-Memberships: por ejemplo,EVERY_HOUSE,REGULAR,CITIES_WITHOUT_HOUSES.X-Sh-Sites: Una lista separada por comas de códigos de venue autorizados (por ejemplo,180_HOUSE,SHD(Shoreditch),BH(Babington),GRS(Greek Street)).
3. Referencia de Endpoints y Configuración
A. Autenticación e Identidad
Flujos estándar de OAuth2 utilizados para generar el token Bearer requerido para todos los demás endpoints.
| Método | Endpoint | Descripción | Params / Payload |
|---|---|---|---|
GET |
/oauth/authorize |
Flujo de Inicio de Sesión Web | response_type=code, client_id, redirect_uri |
POST |
/oauth/token |
Intercambiar código/credenciales | grant_type (password/authorization_code), client_id, client_secret |
POST |
/api/v1/identities |
Crear Cuenta | email, password, first_name, last_name, phone_number |
PUT |
/api/v1/password |
Cambiar Contraseña | old_password, password, password_confirmation |
GET |
/api/v1/me |
Información de Cuenta Legada | Devuelve ID básico y venue local |
B. Cuentas, Perfiles y Membresías
Endpoints para gestionar la identidad digital del usuario. El parámetro include sugiere una estructura de base de datos relacional en el backend.
| Método | Endpoint | Descripción | Configuración / Notas |
|---|---|---|---|
GET |
/profiles/accounts/me |
Detalles Completos de la Cuenta | include=profile,membership,local_house |
PATCH |
/profiles/accounts/me |
Actualizar Cuenta | Actualizar dirección, consentimientos, número de teléfono |
GET |
/profiles/profiles/me |
Datos del Perfil Público | Devuelve biografía, redes sociales, título del trabajo |
PATCH |
/profiles/profiles/me |
Actualizar Perfil | Actualizar biografía, redes sociales, ocupación |
GET |
/profiles/memberships/me |
Estado de Membresía | Devuelve estado, fechas de inicio/fin, tipo de personal (is_staff) |
GET |
/profiles/interests |
Listar Intereses | filter[name][prefix] para autocompletar |
GET |
/profiles/occupations |
Listar Ocupaciones | filter[name][prefix] para autocompletar |
GET |
/profiles/membership_cards/{number}/profile |
Búsqueda por Tarjeta | Resuelve un número de tarjeta física a un ID global |
C. Eventos y Cine
Endpoints completos para listar y reservar eventos de la casa. La lógica incluye un manejo específico para "Loterías" (eventos de alta demanda).
| Método | Endpoint | Descripción | Filtros Clave / Params |
|---|---|---|---|
GET |
/events/events |
Buscar Eventos | filter[location_id], filter[date][from], filter[category], filter[event_type] |
GET |
/events/events/{id} |
Evento Único | include=venue,resource |
GET |
/events/event_categories |
Listar Categorías | filter[event_type] |
GET |
/events/bookings |
Listar Reservas de Usuario | filter[state] (reservado/cancelado), include=event,venue |
POST |
/events/bookings |
Reservar Evento | Payload: array guests, ID del event, ID de payment_card |
DELETE |
/events/bookings/{id} |
Cancelar Reserva | N/A |
D. Habitaciones (Reserva de Hotel)
Los endpoints de rooms revelan códigos internos para tipos de habitaciones y planes de tarifas. El endpoint days es particularmente interesante ya que expone el calendario de precios en bruto.
| Método | Endpoint | Descripción | Notas Internas / Params |
|---|---|---|---|
GET |
/rooms/hotels |
Listar Hoteles | Devuelve URLs de reserva e información fiscal |
GET |
/rooms/availabilities |
Buscar Habitaciones | filter[rate_plan_type] (por ejemplo, MEMBER_RATE, FRIENDS) |
GET |
/rooms/days |
Calendario de Tarifas | Expone códigos de habitaciones: TINY, SMALL, MEDM, LARG |
GET |
/rooms/room_bookings |
Listar Reservas | filter[status], filter[starts_at][from] |
POST |
/rooms/room_bookings |
Crear Reserva | Payload: address, dates, ID de availability_rate |
PATCH |
/rooms/room_bookings/{id} |
Modificar Reserva | Cambiar fechas o número de huéspedes |
E. House Pay (Cuentas y Integración Simphony)
Esta sección revela una integración estrecha con Oracle Micros Simphony. La API permite a los miembros pagar cuentas de restaurante directamente. Incluye un endpoint específico de "Walkout", que probablemente se utiliza para cerrar cuentas automáticamente contra el archivo de un miembro.
| Método | Endpoint | Descripción | Notas Internas |
|---|---|---|---|
GET |
/checks/public/checks |
Listar Cuentas Abiertas | filter['status']=open |
GET |
/checks/public/checks/{id} |
Obtener Detalles de la Cuenta | Devuelve artículos, impuestos, cargo por servicio |
POST |
/checks/public/payments |
Pagar Cuenta | Payload: check_id, amount_cents, card_id, tip_amount_cents |
POST |
/checks/public/payments/walkout |
Pago de Walkout | Usa simphony_manager_id para forzar el cierre de la cuenta |
POST |
/checks/public/checks/{id}/discount |
Aplicar Descuento | Payload: discount_id (por ejemplo, tarifas U27) |
POST |
/checks/public/checks/{id}/email |
Enviar Recibo por Correo | Activa el correo electrónico del recibo en PDF |
GET |
/payments/cards |
Listar Tarjetas | filter[venue] (generalmente codificado como 'GRS') |
F. Mesas (Reserva de Restaurante)
La API utiliza un mecanismo de "Bloqueo" para evitar reservas dobles durante el proceso de checkout.
| Método | Endpoint | Descripción | Notas Internas |
|---|---|---|---|
GET |
/tables/availabilities |
Buscar Slots | filter[restaurant_id] (por ejemplo, SH_SIXTH_FLOOR_RESTAURANTS) |
POST |
/tables/locks |
Bloquear Mesa | Bloquea un slot durante x minutos mientras el usuario completa la reserva |
POST |
/tables/table_bookings |
Confirmar Reserva | Requiere un ID de table_lock válido |
G. Conectar y Chatear (Integración Agora)
Las funciones de "House Connect" utilizan Agora para comunicación en tiempo real, evidenciado por el parámetro agora_id.
| Método | Endpoint | Descripción | Notas |
|---|---|---|---|
GET |
/connect/checkins |
Tablero de Avisos | filter[venue_id] para ver quién está en una casa |
POST |
/connect/checkins |
Publicar en el Tablero de Avisos | Payload: status, venue_id |
GET |
/chat/timeslots |
Disponibilidad de Chat | Lista de slots abiertos para "House Connect" |
POST |
/chat/chat_tokens |
Obtener Token de Chat | Devuelve token para integración Stream/Agora |
POST |
/chat/rooms/{id}/room_accesses |
Unirse a la Sala | El payload incluye agora_id |
H. Solicitudes de Membresía
Endpoints utilizados durante el flujo de registro, incluyendo integración de Braintree para pagos.
| Método | Endpoint | Descripción |
|---|---|---|
GET |
/applications |
Listar aplicaciones del usuario |
POST |
/applications |
Enviar nueva aplicación |
POST |
/applications/{id}/attachments |
Subir ID/Fotografía |
GET |
/products |
Listar Productos de Membresía |
I. Contenido y Editorial
Endpoints de solo lectura para contenido de la aplicación, notas de la casa y páginas estáticas.
| Método | Endpoint | Descripción | Filtros Clave |
|---|---|---|---|
GET |
/content/house_notes |
Contenido Editorial | filter[venue_id], filter[content_category_id] |
GET |
/content/perks |
Beneficios para Miembros | filter[region] |
GET |
/content/house_rules |
Reglas de la Casa | filter[venue_id] |
GET |
/content/house_tours |
Tours de la Casa | filter[venue_id] |
J. Control del Sistema
| Método | Endpoint | Descripción |
|---|---|---|
GET |
/force_update |
Devuelve 426 Upgrade Required si la versión de la aplicación coincide con una lista deprecada, forzando a los usuarios a actualizar a través de la App Store. |
Conclusión
La API de Soho House es una implementación sofisticada de los estándares JSON:API, orquestando una compleja red de sistemas POS heredados (Simphony), tecnología moderna en tiempo real (Agora) y gestión de identidad global. Para los desarrolladores, sirve como una clase magistral sobre cómo envolver sistemas de hospitalidad heredados en una API REST moderna y centrada en dispositivos móviles.
Descargo de responsabilidad: Este análisis se basa en una instantánea de la documentación disponible públicamente en octubre de 2025.
Referencias y Citaciones
Divulgación Editorial
Este artículo es una publicación independiente. No estamos afiliados a Soho House & Co. La información se basa en fuentes públicas y principios de uso justo para comentarios y críticas. No se implica ningún respaldo.
