---
title: "List platform API products"
method: GET
path: "/products"
tags: ["Products"]
---

# List platform API products

`GET /products`

## Request

- Base URL: `https://platform-api.homejourney.sg/v1`
- URL: `https://platform-api.homejourney.sg/v1/products`
- Auth: HTTP bearer

Returns the authenticated organization product catalog across REST routes, SDK/CLI/MCP visibility, required scopes, webhook events, live-promotion gates, status components, pricing posture, and AI-agent policy. External URL: `/v1/products`. Current Next.js implementation path: `/api/platform/v1/products`. This read-only route does not require `Idempotency-Key`; it never grants scopes, creates credentials, launches signing, calls providers, or returns private customer data.

## Headers

- `X-Correlation-Id` string

## Response `200`

Machine-readable platform product catalog.

- PlatformProductCatalogResponse
  - `catalog` object, required
    - `version` '2026.06', required
    - `source_spec` 'docs/features/platform/API_PRODUCT_CATALOG_SPEC.md', required
    - `generated_from` 'code_config', required
    - `environment` 'sandbox' | 'live', required
  - `organization` object, required
    - `id` string, uuid, required
    - `slug` string, required
    - `display_name` string, required
    - `type` string, required
  - `products` PlatformProductCatalogEntry[], required
    - `id` string, required
    - `display_name` string, required
    - `summary` string, required
    - `owner_team` string, required
    - `target_builders` string[], required
    - `launch_stage` 'available_sandbox' | 'available_live' | 'read_only_sandbox' | 'pilot_only' | 'internal_only' | 'deferred', required
    - `risk_tier` 'low' | 'medium' | 'high' | 'regulated' | 'money_movement', required
    - `data_classification` 'public' | 'partner' | 'confidential' | 'regulated', required
    - `available_environments` string[], required
    - `required_scopes` PlatformScope[], required
    - `commercial_package_ids` string[], required
    - `support_tier` 'async' | 'named_owner' | 'production' | 'enterprise' | 'internal', required
    - `pricing_posture` 'non_billable' | 'observe_only' | 'manual_review' | 'finance_approved_only' | 'deferred', required
    - `rest_routes` PlatformProductRestRoute[], required
      - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
      - `path` string, required
      - `operation_id` string, required
      - `availability` 'available_sandbox' | 'available_live' | 'read_only_sandbox' | 'pilot_only' | 'internal_only' | 'deferred', required
    - `webhook_events` string[], required
    - `status_components` string[], required
    - `live_gate_ids` string[], required
    - `required_evidence` PlatformProductRequiredEvidence[], required
      - `id` string, required
      - `label` string, required
      - `owner` string, required
      - `required_for` string[], required
    - `ai_agent_policy` PlatformProductAiAgentPolicy, required
      - `readable` true, required
      - `mcp_tool_name` string, nullable, required
      - `mutating_tools` 'none' | 'explicit_confirmation' | 'human_approved_only', required
      - `human_approval_required` boolean, required
      - `data_sensitivity` 'public' | 'partner' | 'confidential' | 'regulated', required
      - `tool_contract` 'REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes', required
    - `docs` string[], required
    - `blocked_claims` string[], required
  - `counts` object, required
    - `total` integer, required
    - `available_sandbox` integer, required
    - `available_live` integer, required
    - `read_only_sandbox` integer, required
    - `pilot_only` integer, required
    - `internal_only` integer, required
    - `deferred` integer, required
    - `mcp_visible` integer, required
  - `livemode` boolean, required
  - `request_id` string, required

## Other responses

- `400`: Request validation failed.
- `401`: Missing or invalid platform API key.
- `403`: Credential, environment, or scope is not allowed.
- `404`: Platform API feature or resource is not available.
- `429`: Rate limit exceeded.
- `500`: Unexpected platform API failure.

---

[API](https://skmtc.dev/homejourney/apis/homejourney-platform-api.md) · [All operations](https://skmtc.dev/homejourney/apis/homejourney-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/homejourney/apis/homejourney-platform-api/revisions/a2c6fe063db1?raw)
