---
title: "GET /api/v1/organizations/{organizationId}/projects/{projectId}/blocks"
method: GET
path: "/api/v1/organizations/{organizationId}/projects/{projectId}/blocks"
tags: ["SunriseStudioService"]
---

# GET /api/v1/organizations/{organizationId}/projects/{projectId}/blocks

`GET /api/v1/organizations/{organizationId}/projects/{projectId}/blocks`

## Request

- Base URL: `https://app.chargerobotics.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.chargerobotics.com/api/v1/organizations/{organizationId}/projects/{projectId}/blocks`
- Auth: API key in header `Authorization`

## Path parameters

- `organizationId` string, required
- `projectId` string, required

## Query parameters

- `expand` string[]

## Response `200`

A successful response.

- ServiceListBlocksResponse
  - `blocks` EntityBlock[]
    - `id` string
    - `parentProjectId` string: The parent project.
    - `blockNumber` string
    - `anchorPoint` GeoPoint
      - `longitude` number, double
      - `latitude` number, double
    - `lineString` GeoLineString
      - `points` GeoPoint[]
        - `longitude` number, double
        - `latitude` number, double
    - `rows` EntityRow[]
      - `id` string
      - `parentProjectId` string: The parent project.
      - `parentBlockId` string: The parent block.
      - `sectionIndex` integer: The block section index.
      - `rowIndex` integer: The row index.
      - `rowSpecId` string: The row type.
      - `pierOffset` integer: The number of piers before the row begins.
      - `orientation` 'ROW_ORIENTATION_UNSPECIFIED' | 'ROW_ORIENTATION_SYMMETRICAL' | 'ROW_ORIENTATION_MOTOR_END_NORTH' | 'ROW_ORIENTATION_MOTOR_END_SOUTH': Defines the orientation for asymmetrical rows within a block. - ROW_ORIENTATION_UNSPECIFIED: Unspecified. - ROW_ORIENTATION_SYMMETRICAL: The row is symmetrical. - ROW_ORIENTATION_MOTOR_END_NORTH: The motor end is on the north side. - ROW_ORIENTATION_MOTOR_END_SOUTH: The motor end is on the south side.
      - `lineString` GeoLineString
        - `points` GeoPoint[]
          - `longitude` number, double
          - `latitude` number, double
      - `bays` EntityBay[]
        - `id` string: The bay id.
        - `parentProjectId` string: The parent project id.
        - `serialNumber` string
        - `parentBlockId` string: The parent block id.
        - `parentRowId` string: The parent row id.
        - `status` 'BAY_STATUS_UNSPECIFIED' | 'BAY_STATUS_BUILD_IN_PROGRESS' | 'BAY_STATUS_BUILD_COMPLETE' | 'BAY_STATUS_IN_TRANSIT' | 'BAY_STATUS_INSTALLING' | 'BAY_STATUS_INSTALLED': - BAY_STATUS_UNSPECIFIED: Not specified. - BAY_STATUS_BUILD_IN_PROGRESS: The bay is being built. - BAY_STATUS_BUILD_COMPLETE: The bay is built. - BAY_STATUS_IN_TRANSIT: The bay is being delivered to install location. - BAY_STATUS_INSTALLING: The bay is being installed. - BAY_STATUS_INSTALLED: The bay is installed.
        - `multiLineString` GeoMultiLineString
          - `lines` GeoLineString[]
            - `points` GeoPoint[]
              - …
        - `damperInfo` BayDamperInfo
          - `location` 'BAY_DAMPER_PIER_LOCATION_UNSPECIFIED' | 'BAY_DAMPER_PIER_LOCATION_SWAGED_END' | 'BAY_DAMPER_PIER_LOCATION_NON_SWAGED_END': - BAY_DAMPER_PIER_LOCATION_UNSPECIFIED: Bay does not touch a pier that requires a damper. - BAY_DAMPER_PIER_LOCATION_SWAGED_END: The damper pier is on the swaged end. - BAY_DAMPER_PIER_LOCATION_NON_SWAGED_END: The damper pier is on the non-swaged end.
          - `damperType` 'DAMPER_TYPE_UNSPECIFIED' | 'DAMPER_TYPE_DOUBLE': - DAMPER_TYPE_UNSPECIFIED: Unspecified. - DAMPER_TYPE_DOUBLE: Double damper.
        - `orientation` 'BAY_ORIENTATION_UNSPECIFIED' | 'BAY_ORIENTATION_SWAGED_END_NORTH' | 'BAY_ORIENTATION_SWAGED_END_SOUTH': - BAY_ORIENTATION_UNSPECIFIED: Unspecified. - BAY_ORIENTATION_SWAGED_END_NORTH: The swaged end of the tube points north. - BAY_ORIENTATION_SWAGED_END_SOUTH: The swaged end of the tube points south.
        - `positiveLeadOrientation` 'BAY_POSITIVE_LEAD_ORIENTATION_UNSPECIFIED' | 'BAY_POSITIVE_LEAD_ORIENTATION_NORTH' | 'BAY_POSITIVE_LEAD_ORIENTATION_SOUTH': - BAY_POSITIVE_LEAD_ORIENTATION_UNSPECIFIED: Unspecified. - BAY_POSITIVE_LEAD_ORIENTATION_NORTH: The positive lead is on the north side. - BAY_POSITIVE_LEAD_ORIENTATION_SOUTH: The positive lead is on the south side.
        - `rowPosition` integer: The 0-based position of the bay within the row. The first position is the northernmost position.
        - `receivingBayId` string: Bays that insert directly into the motor pier do not have a receiving bay.
        - `insertionOrder` integer: The 0-based insertion order. Bays should be inserted in ascending order of this value.
        - `torqueTubeSpecId` string: The torque tube spec id. Note that each bay also has an associated torque tube entity. The torque tube spec id is replicated here because the spec holds critical information about the bay and this saves an extra lookup.
        - `buildStartTime` string, date-time: The actual build start time.
        - `buildEndTime` string, date-time: The actual build end time.
        - `deliveryStartTime` string, date-time: The actual delivery start time.
        - `deliveryEndTime` string, date-time: The actual delivery end time.
        - `installStartTime` string, date-time: The actual install start time.
        - `installEndTime` string, date-time: The actual install end time.
        - `returnStartTime` string, date-time: The actual start time when the delivery vehicle returns to the factory.
        - `returnEndTime` string, date-time: The actual end time when the delivery vehicle returns to the factory.
        - `builtByFactoryId` string: The factory that built the bay.
        - `moduleSerialNumbers` string[]: The serial numbers of the modules that are installed on the bay. The serial numbers are ordered from the swaged end to the non-swaged end.
        - `queuedByFactoryId` string: Live cross-factory build-queue state, written by the factory that currently has this bay queued or building, and cleared when it releases the bay. This is operational "who is on it right now" state, not the plan -- scheduling lives in BaySchedule.
        - `queuePosition` integer: The bay's 1-based position in that factory's pending queue. 0 means the factory has already taken the bay (locked / building).
        - `queuedForVehicleId` string: The delivery vehicle assigned to carry this bay. Empty until pickup, since the DV is bound geometrically when the bay transfers off BOB.
        - `queueUpdateTime` string, date-time: Last time the owning factory refreshed the fields above. Readers treat a stale mark as gone, so a factory that dies mid-queue does not leave ghost bays on everyone else's map.
        - `installColor` integer: Shared install indicator color, using the factory BannerColor values 0..13. -1 explicitly clears an assignment. Presence matters: absent means never configured, while green (0) and cleared (-1) must survive legacy imports.
        - `installDirection` integer: Shared build direction: 0 = right, 1 = left. Presence distinguishes an explicit right assignment from a project not yet configured for install.
        - `bha` EntityBha
          - `id` string
          - `parentProjectId` string
          - `parentBayId` string
          - `bhaSpecId` string
        - `torqueTube` EntityTorqueTube
          - `id` string
          - `parentProjectId` string
          - `parentBayId` string
          - `torqueTubeSpecId` string
        - `tmr` EntityTmr
          - `id` string
          - `parentProjectId` string
          - `parentBayId` string
        - `cantileveredRails` EntityRail[]
          - `id` string
          - `parentProjectId` string
          - `parentBayId` string
          - `railSpecId` string
          - `index` integer: 0-based index. Cantilevered rails and non-cantilevered rails are indexed separately.
          - `cantilevered` boolean
        - `cantileveredModules` EntityModule[]
          - `id` string
          - `parentProjectId` string
          - `parentBayId` string
          - `moduleSpecId` string
          - `index` integer: 0-based index. Cantilevered modules and non-cantilevered modules are indexed separately.
          - `cantilevered` boolean
          - `serialNumber` string
        - `nonCantileveredRails` EntityRail[]
          - `id` string
          - `parentProjectId` string
          - `parentBayId` string
          - `railSpecId` string
          - `index` integer: 0-based index. Cantilevered rails and non-cantilevered rails are indexed separately.
          - `cantilevered` boolean
        - `nonCantileveredModules` EntityModule[]
          - `id` string
          - `parentProjectId` string
          - `parentBayId` string
          - `moduleSpecId` string
          - `index` integer: 0-based index. Cantilevered modules and non-cantilevered modules are indexed separately.
          - `cantilevered` boolean
          - `serialNumber` string
        - `scheduleMetadata` object: Map of Schedule.id to BaySchedule.

## Other responses

- `default`: An unexpected error response.

---

[API](https://skmtc.dev/chargerobotics/apis/sunrise-studio.md) - [All operations](https://skmtc.dev/chargerobotics/apis/sunrise-studio/llms.txt) - [OpenAPI document](https://skmtc.dev/chargerobotics/apis/sunrise-studio/revisions/802f6962f132?raw)
