1House Global API Documentation

Platform Types

Supported platforms for authentication and service access (SKU-based)

Supported Platforms

The API supports the following platforms for sign-in, SSO, and sessions. Each platform that requires subscription access (livestream, app, scanners) is validated by SKU: the user must have at least one active product SKU for that service.

PlatformValueDisplay NameSKU validation
Mobile AppappMobile AppYes (1+ required SKU)
Live PlatformlivestreamLive PlatformYes (1+ required SKU)
ScannersscannersScannersYes (1+ required SKU when SKUs are defined)
WebwebWebNo
Back OfficebackofficeBack OfficeNo

Current SKUs each platform looks like

Each platform that requires SKU validation accepts any one of the listed SKUs (not all required). The user must have at least one of these SKUs active (within its access window from last_purchased_date).

SKU list per platform

PlatformCurrent SKUs (any one grants access)
Livestream (livestream)DSAS408, 1HM102, FREEACCESS, 1HSET101, 1HSET202, 1HSET303
App (app)1HSET101, 1HM102, 1HSET202, 1HSET303, FREEACCESS, DSAS408
Scanners (scanners)(none configured yet; add SKUs in auth service when defined)

Access window per SKU (days from last_purchased_date)

SKUAccess window
1HSET303, 1HDEP303365 days (annual)
1HSET202, 1HDEP20290 days (quarterly)
DSAS408, FREEACCESS7 days
1HSET101, 1HM102, others30 days (default)

When a product’s last_purchased_date is within the SKU’s window, that SKU is considered active. Access to a platform is granted if the user has at least one of that platform’s SKUs active.


Platform Details

1. Mobile App (app)

Display name: "Mobile App"

Description: Main mobile application for iOS and Android.

Access: Requires at least one active product SKU from the app SKU list. Current SKUs: 1HSET101, 1HM102, 1HSET202, 1HSET303, FREEACCESS, DSAS408 (any one grants access).

Sign-in example:

{
  "email": "user@example.com",
  "password": "password",
  "platform": "app",
  "device": "mobile",
  "deviceId": "unique-device-id"  // Optional
}

2. Live Platform (livestream)

Display name: "Live Platform"

Description: Web-based live streaming and session platform. Used for livestream SSO redirect when platform=livestream.

Access: Requires at least one active product SKU from the livestream SKU list. Current SKUs: DSAS408, 1HM102, FREEACCESS, 1HSET101, 1HSET202, 1HSET303 (any one grants access).

Sign-in example:

{
  "email": "user@example.com",
  "password": "password",
  "platform": "livestream"
}

SSO: When using POST/GET /v1/auth/signin-sso with platform=livestream, the response may include redirectUrl (or 302 redirect) to the livestream app with a JWT.


3. Scanners (scanners)

Display name: "Scanners"

Description: Scanner product / service. Access is validated by SKU when scanner SKUs are configured.

Access: Requires at least one active product SKU from the scanners SKU list when the list is non-empty. Current SKUs: none configured yet; add SKUs in auth service when scanner products are defined.

Sign-in example:

{
  "email": "user@example.com",
  "password": "password",
  "platform": "scanners"
}

4. Web (web)

Display name: "Web"

Description: Web clients. No SKU validation.

Sign-in example:

{
  "email": "user@example.com",
  "password": "password",
  "platform": "web"
}

5. Back Office (backoffice)

Display name: "Back Office"

Description: Administrative and management platform. No SKU validation for sign-in.

Sign-in example:

{
  "email": "admin@example.com",
  "password": "password",
  "platform": "backoffice"
}

Service Access (SKU-Based)

Platforms livestream, app, and scanners require the user to have at least one active product SKU for that service. The backoffice sign-in response includes data.services.products (array of { sku, last_purchased_date, product_name }). The auth service:

  1. Reads the user’s products from the backoffice response.
  2. For each product, checks that last_purchased_date is set and within that SKU’s access window (7, 30, 90, or 365 days).
  3. Builds the set of active SKUs (only those within window).
  4. Grants access to a platform if at least one of that platform’s SKUs (see Current SKUs each platform looks like) is in the active set — not all are required.
  5. If no required SKU is active, returns 403 with a message such as: No access to [Platform Name]. A valid subscription (SKU) is required.

Adding new platforms or SKUs: Extend the platform list, required SKUs per platform, access windows per SKU, and display names in the auth service configuration. See Current SKUs each platform looks like for the current lists and Authentication for request/response shapes.


Error Responses

Invalid platform (400)

{
  "success": false,
  "message": "Invalid platform. Valid options: app, livestream, scanners, web, backoffice",
  "statusCode": 400
}

No SKU access (403)

{
  "success": false,
  "message": "No access to Mobile App. A valid subscription (SKU) is required.",
  "statusCode": 403
}

Account inactive (403)

{
  "success": false,
  "message": "Account is inactive",
  "statusCode": 403
}

Session and Sign-Out

Sessions are keyed by userId, platform, and device. Sign-out can target:

  • All sessions: omit platform and device.
  • One platform: "platform": "app" (or livestream, scanners, web, backoffice).
  • One device+platform: send both platform and device.