---
title: "List Racking Arrays"
method: GET
path: "/tenants/{tenant_id}/designs/{design_id}/racking_arrays"
tags: ["Designs"]
---

# List Racking Arrays

`GET /tenants/{tenant_id}/designs/{design_id}/racking_arrays`

## Request

- Base URL: `https://api-sandbox.aurorasolar.com`
- URL: `https://api-sandbox.aurorasolar.com/tenants/{tenant_id}/designs/{design_id}/racking_arrays`
- Auth: HTTP bearer

Retrieve a list of arrays of modules that will likely be mounted together.

---

Each racking array is a group of adjacent solar modules that have the same mounting plane, module model, azimuth, pitch, rotation, tilt, and orientation (portrait vs. landscape). This is similar to the definition of array used in the [Design Summary](ref:retrievedesignsummary) endpoint, but electronics and stringing are not considered here. Modules are considered adjacent if the gap between them is less than a configurable distance (default 2.6cm) and they are aligned in a grid. If a module in one row or column is staggered so that it doesn't align with the grid from the preceding row or column, it will not be included in the same array even if the modules are touching.

Arrays are not listed in a guaranteed order, but within each array, rows are listed in order starting closest to the ridge line.

Modules in filler rows and those that are offset from the grid (to avoid obstructions or match the roof shape) will be grouped into separate arrays.

When arrays are adjacent but not aligned on the same grid, their relationship is communicated by the `adjacent_arrays` field, which lists all arrays that are contiguous with the current array. That includes arrays that are adjacent to the current array as well any arrays that are adjacent to an adjacent array, forming a contiguous group. See below for an example. The list contains information about each array, including its position in the list of racking arrays and the relative distance between the arrays. Note that adjacent arrays must still share a roof face, rotation, tilt, and module model.

[block:image]
{
  "images": [
    {
      "image": [
        "https://aurorasolar-backend-docs.s3.amazonaws.com/images/racking_arrays_roof_screenshot.png",
        "racking_arrays_roof_screenshot.png",
        "Example design with 4 adjacent racking arrays"
      ],
      "align": "center",
      "caption": "Example design with 4 adjacent racking arrays"
    }
  ]
}
[/block]

The example design above contains four arrays that are contiguous. The adjacent_arrays object for each array shows how it is related to the other contiguous arrays in the design, measured from the center of the leftmost module on the top row in each array:

```json
{
    "racking_arrays": [
        {
            "array_layout": [
                "LL"
            ],
            "adjacent_arrays": [
                {
                    "idx": 1,
                    "x": -12.08,
                    "y": -4.64
                },
                {
                    "idx": 2,
                    "x": -18.40,
                    "y": -10.19
                },
                {
                    "idx": 3,
                    "x": 4.55,
                    "y": -10.19
                }
            ],
            ...
        },
        {
            "array_layout": [
                "PPPPPPP"
            ],
            "adjacent_arrays": [
                {
                    "idx": 0,
                    "x": 12.08,
                    "y": 4.64
                },
                {
                    "idx": 2,
                    "x": -6.32,
                    "y": -5.55
                },
                {
                    "idx": 3,
                    "x": 16.63,
                    "y": -5.55
                }
            ],
            ...
        },
        {
            "array_layout": [
                "PPPPP"
            ],
            "adjacent_arrays": [
                {
                    "idx": 0,
                    "x": 18.40,
                    "y": 10.19
                },
                {
                    "idx": 1,
                    "x": 6.32,
                    "y": 5.55
                },
                {
                    "idx": 3,
                    "x": 22.96,
                    "y": 0.0
                }
            ],
            ...
        },
        {
            "array_layout": [
                "PPPP"
            ],
            "adjacent_arrays": [
                {
                    "idx": 0,
                    "x": -4.55,
                    "y": 10.19
                },
                {
                    "idx": 1,
                    "x": -16.63,
                    "y": 5.55
                },
                {
                    "idx": 2,
                    "x": -22.96,
                    "y": -0.0 
                }
            ],
            ...
        }
    ]
}
```
Array 0, with landscape modules, is adjacent to array 1, the unbroken row of portrait modules. The distance from the leftmost module in array 0 to the leftmost module in array 1 is 12.08 feet to the left and 4.64 feet down. Array 1 is adjacent to all three of the other arrays; note that the x and y values relating array 1 to array 0 have the opposite signs to indicate that the module is to the right and up from this perspective.

Array 0 is not directly adjacent to arrays 2 or 3, but because they are all contiguous, they are listed in adjacent_arrays for array 0 as well.

Note that the distances between contiguous arrays may not be equal to the sum of the distances to intermediate arrays due to rounding. For example, the x distance between arrays 2 and 3 is 22.96 feet, which is not equal to 6.32 + 16.63 (the x distances between arrays 1 and 2 and arrays 1 and 3, respectively).

## Path parameters

- `tenant_id` string, uuid, required
- `design_id` string, uuid, required

## Query parameters

- `max_module_spacing` number, double

## Response `200`

Racking arrays successfully retrieved.

- object
  - `racking_arrays` object[]
    - `units_of_measurement` 'Imperial' | 'Metric': Units used for areas and lengths, as determined by the tenant setting for units.
    - `rows` integer: Number of rows of modules in the grid representation of the array. Rows are parallel to the roof ridge/eave.
    - `columns` integer: Number of columns of modules in the grid representation of the array. Columns are perpendicular to the roof ridge/eave.
    - `array_layout` string[]: Representation of the modules in the array as a list of rows. Rows appear in order from the ridgeline down to the eave.
    - `ground_mounted` boolean: Flag indicating whether modules are mounted on the ground (true) or on a roof surface (false).
    - `pitch` number, double: Pitch of the mounting plane in degrees between 0 to 90.
    - `azimuth` number, double: Azimuth of the mounting plane in degrees between 0 (North) to 360.
    - `tilt` number, double: Tilt of the modules relative to the mounting plane in degrees between 0 to 90.
    - `rotation` number, double: Rotation of the modules relative to the mounting plane in degrees between 0 to 360.
    - `adjacent_arrays` object[]
      - `idx` integer: Index of the adjacent array in racking_arrays, starting from 0.
      - `x` number, double: Distance in the x direction in feet/meters from this array to the adjacent array, measured from the center of the top left module in each array. Positive numbers indicate modules to the right.
      - `y` number, double: Distance in the y direction in feet/meters from this array to the adjacent array, measured from the center of the top left module in each array. Positive numbers indicate modules higher on the roof.
    - `module` object
      - `id` string, uuid: The Unique ID for the module in Aurora.
      - `manufacturer` string, nullable: Manufacturer name of the module.
      - `rating_stc` number, double: STC rating of the module in Watts
      - `name` string: Component name of the module
      - `count` integer: Number of modules in the array.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found

## Changes

- **2026-11-03** `97a7ad8a993a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/aurorasolar/apis/sync-api/changes/tenants/:tenant_id/designs/:design_id/racking_arrays/get.md)

---

[API](https://skmtc.dev/aurorasolar/apis/sync-api.md) - [All operations](https://skmtc.dev/aurorasolar/apis/sync-api/llms.txt) - [OpenAPI document](https://skmtc.dev/aurorasolar/apis/sync-api/revisions/97a7ad8a993a?raw)
