---
title: "List sandbox developer project inventory batches"
method: GET
path: "/developers/current/projects/{id}/inventory-batches"
tags: ["Developers"]
---

# List sandbox developer project inventory batches

`GET /developers/current/projects/{id}/inventory-batches`

## Request

- Base URL: `https://platform-api.homejourney.sg/v1`
- URL: `https://platform-api.homejourney.sg/v1/developers/current/projects/{id}/inventory-batches`
- Auth: HTTP bearer

Returns public-safe inventory batch metadata for one deterministic sandbox developer project when the authenticated automation client has `developers.inventory.read`. External URL: `/v1/developers/current/projects/{id}/inventory-batches`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]/inventory-batches`. This read-only route exposes source timestamps, freshness labels, validation state, rollback-target presence, redaction evidence, and side-effect blocking. It never uploads inventory, publishes inventory, executes rollback, mutates live `new_launches`, exposes raw source files, source credentials, unit numbers, stack identifiers, buyer identity, reservation notes, internal margins, CRM destinations, project-site publish controls, or live inventory feeds.

## Path parameters

- `id` string, required

## Query parameters

- `limit` integer
- `cursor` string
- `state` 'validated' | 'stale'

## Headers

- `X-Correlation-Id` string

## Response `200`

Sandbox developer project response.

- PlatformDeveloperInventoryBatchListResponse
  - `project` PlatformDeveloperProjectReference, required
    - `id` string, required
    - `project_slug` string, required
    - `display_name` string, required
    - `status` 'active' | 'upcoming', required
    - `source_attribution` object, required
      - `source` 'official_developer_batch' | 'approved_homejourney_admin_correction' | 'trusted_partner_feed' | 'scraper_new_launches_fallback', required
      - `source_label` string, required
      - `source_updated_at` string, date-time, required
      - `last_verified_at` string, date-time, required
      - `freshness_status` 'current' | 'stale' | 'fallback', required
      - `source_precedence` 'official_developer_batch' | 'approved_homejourney_admin_correction' | 'trusted_partner_feed' | 'scraper_new_launches_fallback', required
      - `precedence_rank` 1 | 2 | 3 | 4, required
  - `inventory_batches` PlatformDeveloperInventoryBatch[], required
    - `id` string, required
    - `sandbox_fixture_id` string, required
    - `project_id` string, required
    - `batch_kind` 'official_inventory_batch' | 'stale_inventory_batch' | 'price_list_rollback', required
    - `batch_state` 'validated' | 'stale', required
    - `source_attribution` PlatformDeveloperAttribution, required
      - `source` 'official_developer_batch' | 'approved_homejourney_admin_correction' | 'trusted_partner_feed' | 'scraper_new_launches_fallback', required
      - `source_label` string, required
      - `source_updated_at` string, date-time, required
      - `last_verified_at` string, date-time, required
      - `freshness_status` 'current' | 'stale' | 'fallback', required
      - `source_precedence` 'official_developer_batch' | 'approved_homejourney_admin_correction' | 'trusted_partner_feed' | 'scraper_new_launches_fallback', required
      - `precedence_rank` 1 | 2 | 3 | 4, required
    - `source_window` object, required
      - `source_updated_at` string, date-time, required
      - `last_verified_at` string, date-time, required
      - `freshness_status` 'current' | 'stale' | 'fallback', required
      - `stale_inventory_warning_present` boolean, required
      - `approved_homejourney_correction_applied` boolean, required
      - `trusted_partner_feed_applied` boolean, required
      - `scraper_fallback_used` boolean, required
    - `validation` object, required
      - `schema_version` 'developer_inventory_batch.v1', required
      - `validation_status` 'passed' | 'stale_warning', required
      - `row_count_label` string, required
      - `raw_row_count_exposed` false, required
      - `source_updated_at_present` true, required
      - `last_verified_at_present` true, required
    - `publication` object, required
      - `ingestion_write_deferred` true, required
      - `inventory_publish_deferred` true, required
      - `rollback_target_present` boolean, required
      - `rollback_execution_deferred` true, required
      - `live_new_launches_mutation_deferred` true, required
    - `safety` object, required
      - `raw_source_file_exposed` false, required
      - `source_credentials_exposed` false, required
      - `raw_unit_numbers_exposed` false, required
      - `stack_identifiers_exposed` false, required
      - `buyer_identity_exposed` false, required
      - `reservation_notes_exposed` false, required
      - `internal_margin_exposed` false, required
      - `crm_destination_exposed` false, required
    - `side_effects` PlatformDeveloperSideEffects, required
      - `production_feed_called` false, required
      - `live_callback_sent` false, required
      - `public_page_published` false, required
      - `live_new_launches_mutated` false, required
      - `sms_sent` false, required
      - `whatsapp_sent` false, required
      - `email_sent` false, required
      - `crm_write_performed` false, required
      - `calendar_write_performed` false, required
    - `livemode` false, required
    - `updated_at` string, date-time, required
  - `pagination` object, required
    - `limit` integer, required
    - `next_cursor` string, nullable, required
  - `inventory_batch_boundary` object, required
    - `metadata_only` true, required
    - `upload_write_deferred` true, required
    - `publish_write_deferred` true, required
    - `raw_source_files_redacted` true, required
    - `source_credentials_redacted` true, required
    - `unit_stack_detail_deferred` true, required
    - `price_publication_deferred` true, required
    - `live_promotion_required` true, required
  - `livemode` false, 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)
