---
title: "Get release artifacts."
method: GET
path: "/apps/{appId}/releases/{releaseId}/artifacts"
tags: ["releases"]
---

# Get release artifacts.

`GET /apps/{appId}/releases/{releaseId}/artifacts`

## Request

- Base URL: `https://api.shorebird.dev/api/v1`
- URL: `https://api.shorebird.dev/api/v1/apps/{appId}/releases/{releaseId}/artifacts`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

## Query parameters

- `arch` string
- `platform` 'android' | 'ios' | 'linux' | 'macos' | 'windows': A platform to which a Shorebird release can be deployed.
- `per_page` integer
- `cursor` string
- `page` integer

## Response `200`

The artifacts for the release.

- GetReleaseArtifactsResponse: The response body for GET /apps/{appId}/releases/{releaseId}/artifacts.
  - `artifacts` ReleaseArtifact[], required: The artifacts for the release.
    - `id` integer, required: The ID of the artifact.
    - `release_id` integer, required: The ID of the release.
    - `arch` string, required: The arch of the artifact.
    - `platform` 'android' | 'ios' | 'linux' | 'macos' | 'windows', required: A platform to which a Shorebird release can be deployed.
    - `hash` string, required: The hash of the artifact.
    - `size` integer, required: The size of the artifact in bytes.
    - `url` string, required: The url of the artifact.
    - `podfile_lock_hash` string: sha256 of the Podfile.lock used to create the artifact (iOS only).
    - `can_sideload` boolean, required: Whether the artifact can be sideloaded onto a device.
    - `signing` ArtifactSigning: How a release artifact's binary is signed for patch signing: which public key the binary embeds. Patches to that release, platform and arch are verified with it.
      - `mode` string, required: One of the ReleaseSigningMode values: managed, customer or unsigned. A string rather than the enum so that a client meeting a mode added after it was built reads it as unknown instead of failing to read the artifact.
      - `key_id` integer: The managed key the binary embeds. Present exactly when mode is managed.
      - `public_key_pem` string: The managed key's public key the binary embeds, PEM encoded (SubjectPublicKeyInfo), which `shorebird patch` builds against. Present exactly when mode is managed: the server doesn't store customers' keys.
  - `next_cursor` string: The opaque cursor of the next page; send it back as `cursor` to get that page. Present only when the request was paginated (sent `per_page`, `cursor` or `page`) and another page follows. Absent on the last page and on unpaginated responses.
  - `total_count` integer: How many items the whole list holds. Present only when the request was paginated.

## Other responses

- `default`: Standard error response. Emitted for any non-2xx status where a body can be decoded into an [ErrorResponse].

## Changes

- **2026-11-05** `941da8871d10`: 7 info
  - added the new optional `query` request parameter `cursor`
  - added the new optional `query` request parameter `page`
  - added the new optional `query` request parameter `per_page`
  - added the optional property `artifacts/items/signing` to the response with the `200` status
  - …3 more

[Operation history](https://skmtc.dev/shorebird/apis/shorebird-codepush-api/changes/apps/:appId/releases/:releaseId/artifacts/get.md)

---

[API](https://skmtc.dev/shorebird/apis/shorebird-codepush-api.md) - [All operations](https://skmtc.dev/shorebird/apis/shorebird-codepush-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shorebird/apis/shorebird-codepush-api/revisions/941da8871d10?raw)
