Oore CI
ReferenceAPICategories

Artifacts

Build artifact management — upload, list, download via signed URLs. Time-limited share tokens and token-authorized artifact delivery.

GET
/install/artifact/{token}

Downloads an artifact using a scoped download token. No session auth required — the token itself is the authorization. For S3/R2 storage, redirects to a presigned URL.

Path Parameters

token*string

Scoped download token

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/install/artifact/string"
Empty
GET
/install/download/{token}

Returns local artifact bytes using the signed path token.

Path Parameters

token*string

Signed local download token

Response Body

application/octet-stream

application/json

application/json

curl -X GET "https://example.com/install/download/string"
"string"
GET
/install/ios/{token}/manifest.plist

Returns an Apple property-list manifest authorized by the scoped token in the URL.

Path Parameters

token*string

Artifact install token

Response Body

application/xml

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/install/ios/string/manifest.plist"
"string"
DELETE
/v1/artifact-tokens/{token_id}

Revokes a scoped download token so it can no longer be used.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

token_id*string

Download token ID

Response Body

application/json

application/json

curl -X DELETE "https://example.com/v1/artifact-tokens/string"
{  "revoked": true}
GET
/v1/artifacts/dl/{token}

Resolves a time-limited path token and redirects to the backing storage URL. The token is the authorization; no session bearer token is used.

Path Parameters

token*string

Scoped download token

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/artifacts/dl/string"
Empty
GET
/v1/artifacts/download/{token}

Returns the artifact bytes using the signed path token.

Path Parameters

token*string

Signed local download token

Response Body

application/octet-stream

application/json

application/json

curl -X GET "https://example.com/v1/artifacts/download/string"
"string"
GET
/v1/artifacts/install/ios/{token}/manifest.plist

Returns an Apple property-list manifest authorized by the install token in the URL.

Path Parameters

token*string

Artifact install token

Response Body

application/xml

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/artifacts/install/ios/string/manifest.plist"
"string"
GET
/v1/artifacts/local-download/{token}

Backward-compatible alias for signed local artifact downloads.

Path Parameters

token*string

Signed local download token

Response Body

application/octet-stream

application/json

application/json

curl -X GET "https://example.com/v1/artifacts/local-download/string"
"string"
PUT
/v1/artifacts/local-upload/{token}

Stores a bounded binary artifact using the signed path token. The token is the authorization; no session bearer token is used.

Path Parameters

token*string

Signed local upload token

Request Body

application/octet-stream

Raw artifact bytes

TypeScript Definitions

Use the request body type in TypeScript.

body*BinaryPayload
Formatbinary

Response Body

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/artifacts/local-upload/string" \  -H "Content-Type: application/octet-stream" \  -d 'string'
Empty
POST
/v1/artifacts/query

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/artifacts/query" \  -H "Content-Type: application/json" \  -d '{    "build_ids": [      "string"    ]  }'
{  "artifacts": [    {      "artifact_type": "apk",      "build_id": "string",      "checksum": "string",      "created_at": 0,      "expires_at": 0,      "file_path": "string",      "file_size": 0,      "id": "string",      "metadata": {},      "name": "string",      "state": "string"    }  ]}
POST
/v1/artifacts/{artifact_id}/download-link

Returns a signed download URL for an artifact. URLs expire after 15 minutes.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

artifact_id*string

Artifact ID

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/artifacts/string/download-link"
{  "download_url": "string",  "expires_at": 0}
POST
/v1/artifacts/{artifact_id}/install-link

Creates a one-hour install session for an APK or install-ready signed IPA. QA viewers may use this endpoint through their artifact read permission.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

artifact_id*string

Artifact ID

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/artifacts/string/install-link"
{  "download_url": "string",  "expires_at": 0,  "install_url": "string",  "manifest_url": "string",  "platform": "android"}
POST
/v1/artifacts/{artifact_id}/scoped-token

Generates a scoped, time-limited download token for a specific artifact. The token can be shared with external users who don't have an account.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

artifact_id*string

Artifact ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/v1/artifacts/string/scoped-token" \  -H "Content-Type: application/json" \  -d '{}'
{  "download_url": "string",  "expires_at": 0,  "id": "string",  "prefix": "string",  "single_use": true,  "token": "string"}
GET
/v1/artifacts/{artifact_id}/scoped-tokens

Lists all scoped download tokens for a specific artifact, including expired and revoked ones.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

artifact_id*string

Artifact ID

Response Body

application/json

curl -X GET "https://example.com/v1/artifacts/string/scoped-tokens"
{  "tokens": [    {      "artifact_id": "string",      "created_at": 0,      "created_by": "string",      "created_by_email": "string",      "expires_at": 0,      "id": "string",      "is_expired": true,      "is_revoked": true,      "is_used": true,      "prefix": "string",      "revoked_at": 0,      "single_use": true,      "used_at": 0    }  ]}
GET
/v1/builds/{build_id}/artifacts

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

build_id*string

Build ID

Response Body

application/json

curl -X GET "https://example.com/v1/builds/string/artifacts"
{  "artifacts": [    {      "artifact_type": "apk",      "build_id": "string",      "checksum": "string",      "created_at": 0,      "expires_at": 0,      "file_path": "string",      "file_size": 0,      "id": "string",      "metadata": {},      "name": "string",      "state": "string"    }  ]}
GET
/v1/projects/{project_id}/artifacts

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

project_id*string

Project ID

Query Parameters

limit?integer

Maximum artifacts to return (defaults to 200, max 200)

Formatint64

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/projects/string/artifacts"
{  "artifacts": [    {      "artifact_type": "apk",      "build_id": "string",      "checksum": "string",      "created_at": 0,      "expires_at": 0,      "file_path": "string",      "file_size": 0,      "id": "string",      "metadata": {},      "name": "string",      "state": "string"    }  ]}
POST
/v1/runners/{runner_id}/jobs/{job_id}/artifacts

Runner creates an artifact record and gets a signed upload URL.

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

runner_id*string

Runner ID

job_id*string

Build/Job ID

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/v1/runners/string/jobs/string/artifacts" \  -H "Content-Type: application/json" \  -d '{    "artifact_type": "string",    "name": "string"  }'
{  "artifact": {    "artifact_type": "apk",    "build_id": "string",    "checksum": "string",    "created_at": 0,    "expires_at": 0,    "file_path": "string",    "file_size": 0,    "id": "string",    "metadata": {},    "name": "string",    "state": "string"  },  "upload_url": "string"}
POST
/v1/runners/{runner_id}/jobs/{job_id}/artifacts/{artifact_id}/abort

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

runner_id*string
job_id*string
artifact_id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/v1/runners/string/jobs/string/artifacts/string/abort" \  -H "Content-Type: application/json" \  -d '{}'
{  "artifact": {    "artifact_type": "apk",    "build_id": "string",    "checksum": "string",    "created_at": 0,    "expires_at": 0,    "file_path": "string",    "file_size": 0,    "id": "string",    "metadata": {},    "name": "string",    "state": "string"  }}
POST
/v1/runners/{runner_id}/jobs/{job_id}/artifacts/{artifact_id}/complete

Authorization

bearer_auth
AuthorizationBearer <token>

In: header

Path Parameters

runner_id*string
job_id*string
artifact_id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/v1/runners/string/jobs/string/artifacts/string/complete" \  -H "Content-Type: application/json" \  -d '{}'
{  "artifact": {    "artifact_type": "apk",    "build_id": "string",    "checksum": "string",    "created_at": 0,    "expires_at": 0,    "file_path": "string",    "file_size": 0,    "id": "string",    "metadata": {},    "name": "string",    "state": "string"  }}