# OTA artifact download (edge-self, API-proxied stream) (/docs/api-reference/edges/OtaController_getArtifact)

`GET /api/edges/{id}/update/artifact`

Base URL: https://api.xentr.ai

Authentication: bearer token (`Authorization: Bearer <token>`).

Streams the release artifact for ?version back to the edge as 200 + application/octet-stream. The private GitHub credential never lands on the box: the API resolves the short-lived signed asset URL server-side and pipes the bytes. It does NOT 302-redirect — the on-box updater reads the body in place and does not follow redirects. 503 until GITHUB_OTA_TOKEN is configured.

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `id` | path | yes | string | Edge UUID |
| `version` | query | yes | string |  |

## Responses

### 200: Raw artifact bytes (application/octet-stream)

### 400: Missing version

### 503: GITHUB_OTA_TOKEN not configured