Builds
List builds
Read a page of build resources as flat JSON objects.
/apps/{appId}/buildsProposed · Read parity · Adapter not implemented
Request
Routes are relative to your connection. Use a facade API key; the service manages Apple authentication.
BASE='https://asc.example.com/v1/connections/conn_example'
curl --fail-with-body "$BASE/apps/1234567890/builds" \
-H "Authorization: Bearer $ASC_FACADE_KEY"const base = "https://asc.example.com/v1/connections/conn_example";
const response = await fetch(`${base}/apps/1234567890/builds`, {
headers: { Authorization: `Bearer ${process.env.ASC_FACADE_KEY}` }
});
const body = await response.json();
if (!response.ok) {
throw new Error(body.error?.message ?? `HTTP ${response.status}`);
}
console.log(body);import json
import os
from urllib.request import Request, urlopen
from urllib.error import HTTPError
base = "https://asc.example.com/v1/connections/conn_example"
request = Request(
f"{base}/apps/1234567890/builds",
headers={"Authorization": f"Bearer {os.environ['ASC_FACADE_KEY']}"},
)
try:
with urlopen(request) as response:
print(json.load(response))
except HTTPError as error:
detail = json.load(error)
raise RuntimeError(detail["error"]["message"]) from errorasc.example.com is a placeholder for your deployment. Examples use fictional IDs.
Path parameters
| Name | Type | Description |
|---|---|---|
| appId | string | Apple’s app ID. Returned by List apps. |
Query parameters
| Name | Type | Description |
|---|---|---|
| version | string | Filter by version. Multiple values are comma-separated. |
| expired | string | Filter by expired. Multiple values are comma-separated. |
| processingState | string | Filter by Apple’s build-processing state; this is separate from App Review approval. Multiple values are comma-separated.ValuesPROCESSING, FAILED, INVALID, VALID |
| betaReviewState | string | Filter by beta review state. Multiple values are comma-separated.ValuesWAITING_FOR_REVIEW, IN_REVIEW, REJECTED, APPROVED |
| usesNonExemptEncryption | string | Filter by uses non exempt encryption. Multiple values are comma-separated. |
| prereleaseVersion | string | Filter by prerelease version. Multiple values are comma-separated. |
| platform | string | Restrict results to the specified Apple platforms. Multiple values are comma-separated.ValuesIOS, MAC_OS, TV_OS, VISION_OS |
| buildAudienceType | string | Filter by build audience type. Multiple values are comma-separated.ValuesINTERNAL_ONLY, APP_STORE_ELIGIBLE |
| prereleaseVersionId | string | Filter by prerelease version id. Multiple values are comma-separated. |
| betaGroupId | string | Filter by beta group id. Multiple values are comma-separated. |
| versionId | string | Filter by version id. Multiple values are comma-separated. |
| id | string | Restrict results to the specified resource IDs. Multiple values are comma-separated. |
| hasUsesNonExemptEncryption | boolean | Filter by has uses non exempt encryption. |
| sort | string | Comma-separated sort keys. Prefix a key with - for descending order. Only the values below are supported. Multiple values are comma-separated.Valuesversion, -version, uploadedDate, -uploadedDate, preReleaseVersion, -preReleaseVersion |
| fields | string | Comma-separated attribute names to return. This selects read fields and does not expand relationships. Multiple values are comma-separated.Valuesversion, uploadedDate, expirationDate, expired, minOsVersion, lsMinimumSystemVersion, computedMinMacOsVersion, computedMinVisionOsVersion, iconAssetToken, processingState, buildAudienceType, usesNonExemptEncryption |
| limit | integer | Number of items per page, from 1 to 200. |
| cursor | string | Opaque nextCursor from a previous response. Keep the route, connection, filters, and ordering unchanged. |
Response
A page of flat objects, with an opaque continuation cursor.
{
"items": [
{
"id": "build_123",
"appId": "1234567890",
"version": "42",
"uploadedDate": "2026-10-13T18:00:00Z",
"expirationDate": "2027-01-11T18:00:00Z",
"expired": false
}
],
"nextCursor": null
}Illustrative response. Optional read fields may be absent or null; unknown enum values are preserved.
Response fields
| Name | Type | Description |
|---|---|---|
| items | object[] | The current page of plain resource objects. An empty collection returns []. |
| nextCursor | string | null | Opaque continuation token, or null when the collection is complete. Pass it back as cursor. |
Each item
| Name | Type | Description |
|---|---|---|
| id | string | Apple’s resource ID. Keep this string unchanged when addressing a resource. |
| appId | string | The app that owns this resource. |
| version | string | The uploaded build’s version string; this is separate from the store versionString. |
| uploadedDate | string · date-time | When Apple received the build, as an RFC 3339 timestamp. |
| expirationDate | string · date-time | When this build expires for testing, as an RFC 3339 timestamp. |
| expired | boolean | Whether the build has expired. |
| minOsVersion | string | The minimum supported OS version reported by the build. |
| lsMinimumSystemVersion | string | The minimum macOS system version recorded in the build. |
| computedMinMacOsVersion | string | The macOS minimum version calculated by Apple for this build. |
| computedMinVisionOsVersion | string | The visionOS minimum version calculated by Apple for this build. |
| iconAssetToken | object | Apple’s icon asset token, preserved as returned. |
| processingState | string | Apple’s build-processing state. This does not indicate App Review approval.ValuesPROCESSING, FAILED, INVALID, VALID |
| buildAudienceType | string | Whether a build is internal-only or eligible for App Store distribution.ValuesINTERNAL_ONLY, APP_STORE_ELIGIBLE |
| usesNonExemptEncryption | boolean | Whether the build uses encryption that is not exempt from export compliance. |
| preReleaseVersionId | string | null | ID of the related pre release version. Present only when Apple supplies linkage; related objects are not loaded automatically. |
| appEncryptionDeclarationId | string | null | ID of the related app encryption declaration. Present only when Apple supplies linkage; related objects are not loaded automatically. |
| betaAppReviewSubmissionId | string | null | ID of the related beta app review submission. Present only when Apple supplies linkage; related objects are not loaded automatically. |
| buildBetaDetailId | string | null | ID of the related build beta detail. Present only when Apple supplies linkage; related objects are not loaded automatically. |
| versionId | string | null | ID of the related version. Present only when Apple supplies linkage; related objects are not loaded automatically. |
| buildUploadId | string | null | ID of the related build upload. Present only when Apple supplies linkage; related objects are not loaded automatically. |
iconAssetToken fields
| Name | Type | Description |
|---|---|---|
| templateUrl | string | The template url value reported by Apple for this resource. |
| width | integer | The width value reported by Apple for this resource. |
| height | integer | The height value reported by Apple for this resource. |
Behavior
- A nested resource must belong to the selected parent and the configured connection. The adapter validates ownership before returning data.
Pagination
Pass nextCursor back as cursor with the same filters and ordering. Stop when it is null. Each request returns one bounded page; the service never reports a capped or incomplete traversal as a complete collection.
Errors
| HTTP | Type | Description |
|---|---|---|
| 400 | invalid_query | Unsupported filter, sort, limit, or cursor. |
| 401 | unauthorized | Missing or invalid facade API key. |
| 403 | forbidden / upstream_forbidden | The caller or configured Apple key cannot read this resource. |
| 404 | resource_not_found | The requested resource, parent, or exact locale is absent or outside the caller’s scope. |
| 429 | rate_limited | A facade or Apple rate limit was reached. Respect Retry-After when returned. |
| 502–504 | upstream error | Apple authentication, response parsing, availability, or timeout failure; this is not an empty result. |
Apple mapping
Upstream route and translation
The adapter calls GET /v1/builds. Read Apple’s original endpoint ↗
Filtered requests use GET /v1/builds with filter[app] supplied from the path. Apple’s filter reference ↗
Flatten Apple’s attributes into each resource object. Expose supplied singleton linkage as IDs, with no automatic relationship traversal. Read access does not make these fields writable.
| Facade parameter | Type | Description |
|---|---|---|
| version | query | filter[version] |
| expired | query | filter[expired] |
| processingState | query | filter[processingState] |
| betaReviewState | query | filter[betaAppReviewSubmission.betaReviewState] |
| usesNonExemptEncryption | query | filter[usesNonExemptEncryption] |
| prereleaseVersion | query | filter[preReleaseVersion.version] |
| platform | query | filter[preReleaseVersion.platform] |
| buildAudienceType | query | filter[buildAudienceType] |
| prereleaseVersionId | query | filter[preReleaseVersion] |
| betaGroupId | query | filter[betaGroups] |
| versionId | query | filter[appStoreVersion] |
| id | query | filter[id] |
| hasUsesNonExemptEncryption | query | exists[usesNonExemptEncryption] |
| sort | query | sort |
| fields | query | fields[builds] |
| limit | query | limit |
| cursor | query | Facade-owned pagination |
Reviewed 2026-10-14 · OpenAPI 4.5.1