---
title: "Upload exact declared artifact bytes"
method: PUT
path: "/v1/artifact-uploads/{upload_token}"
tags: ["Buyer artifacts"]
---

# Upload exact declared artifact bytes

`PUT /v1/artifact-uploads/{upload_token}`

## Request

- Base URL: `https://api.supplyslate.com`
- URL: `https://api.supplyslate.com/v1/artifact-uploads/{upload_token}`
- Auth: none required

## Path parameters

- `upload_token` string, required

## Headers

- `Idempotency-Key` string

## Response `200`

Successful response

- ArtifactUploadResponse
  - `artifact` Artifact, required
    - `id` string, required
    - `project_id` string
    - `filename` string
    - `media_type` string
    - `byte_size` integer
    - `sha256` string
    - `scan_status` string
    - `disclosure_status` string
  - `request_id` string
  - `upload` object

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Scope or tenant boundary denied
- `404`: Resource not found
- `409`: State conflict or idempotency mismatch
- `429`: Rate limited

---

[API](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api.md) · [All operations](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/llms.txt) · [OpenAPI document](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/revisions/f7989551f167?raw)
