---
title: "Get Foundry builds"
method: GET
path: "/v1/foundry/builds/"
tags: ["foundation_FoundryBuilds"]
---

# Get Foundry builds

`GET /v1/foundry/builds/`

Returns a deduplicated list of all Esper Foundation OS version strings currently present across enrolled devices in the tenant.

Use this endpoint to inventory which Foundation OS versions are deployed across your fleet — useful for identifying version spread, spotting devices running outdated builds, and scoping update operations.

**About Get All Distinct Foundation Versions**

Esper Foundation is a customized Android-based operating system for x86 and ARM devices, providing long-term support, regular security patches, and broad hardware compatibility. Foundation version strings follow the format [Android version].[Major Foundation version].[Minor Foundation version].[Build version] — for example, 7.10.21.02 indicates Android 7, Major Foundation version 10, Minor version 21, build 02. This endpoint returns each distinct version once regardless of how many devices share it, giving a fleet-wide view of OS version distribution. It requires the read:foundationversions scope.

**Key Fields / Query Parameters**

search — Partial string match (case-insensitive) to filter returned version strings

limit — Number of results per page; defaults to 10

offset — Starting index for pagination

foundation_version — The version string returned per result, in [Android].[Major].[Minor].[Build] format

**Common Use Cases**

Auditing Foundation OS version spread across a fleet before planning an update campaign

Identifying whether devices running builds below a minimum supported version are present in the tenant

Cross-referencing deployed versions against the latest approved builds visible in Esper Software Updates for Foundation

**Best Practices**

Use search to quickly check whether a specific Foundation version is present rather than paginating the full list

Combine results with device list endpoints filtered by Foundation version to enumerate specific devices on a given OS version

Call this before scheduling OTA operations to establish a version distribution baseline

**Workflow**

Call GET /api/v2/foundationversions to retrieve all distinct Foundation OS versions present in the tenant

Compare results against the latest approved build in Esper Software Updates for Foundation to identify outdated versions

Use device list endpoints filtered by Foundation version to target devices on older builds for update via Pipeline, auto-update, or API-based FOTA

## Query parameters

- `foundation_major_number` string
- `build_arch` string
- `android_major_version` integer
- `device_model_id` string, uuid
- `approved` boolean
- `limit` integer
- `offset` integer
- `ordering` string
- `locked` boolean
- `build_fingerprint_hash` string

## Response `200`

List of Foundry builds

- object
  - `code` integer — returned response code
  - `content` object
    - `count` integer — counter of number of builds retrieved
    - `next` string, url — url of the next ten builds
    - `previous` string, url — url of the previous ten builds
    - `results` FoundationBuildV1[]
      - `build_id` string
      - `created_at` string, date-time
      - `updated_at` string, date-time
      - `deprecated_on` string, date-time
      - `created_by` string
      - `updated_by` string
      - `ab_update` boolean
      - `android_major_version` integer
      - `android_minimum_sdk_level` integer
      - `android_minor_version` string
      - `android_sdk_level` integer
      - `build_arch` string
      - `build_flavor` string
      - `build_hash` string
      - `build_ota_hash` string
      - `build_job_url` string
      - `build_job_id` integer
      - `build_fingerprint_hash` string
      - `build_type` string
      - `build_url` string, url
      - `build_update_meta_data` string, json
      - `build_update_url` string, url
      - `file_size_kb` integer
      - `foundation_build_number` integer
      - `foundation_major_number` integer
      - `foundation_minor_number` integer
      - `foundation_name` string
      - `model_display_name` string
      - `build_job_params` string, json
      - `prebuilt_app_info` string, json
      - `release_notes` string, json
      - `release_rating` string
      - `source_build_id` string
      - `build_state` 'released' | 'to_be_deprecated' | 'unavailable'
      - `device_model_id` string
      - `approved` boolean

## Other responses

- `401` — Unauthorized
- `500` — Internal server error

---

[API](https://skmtc.net/esper/apis/esper-api-reference.md) · [All operations](https://skmtc.net/esper/apis/esper-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/esper/esper-api-reference/versions/e1f64cbb488e/schema)
