---
title: "Claim what a purchase a purchaser key owns holds"
method: POST
path: "/v1/purchases/{id}/claim"
tags: ["runs", "paid-invocations"]
---

# Claim what a purchase a purchaser key owns holds

`POST /v1/purchases/{id}/claim`

## Request

- Base URL: `https://api.runx.ai`
- URL: `https://api.runx.ai/v1/purchases/{id}/claim`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Runx-Purchaser-Key`

The purchaser key signs runx.payment.purchase_claim.v1 over this URL, the time and the digest of the purchase's receipt, so a purchase claims nothing before it is fulfilled. An account's purchase is used through runx and never claimed.

## Path parameters

- `id` string, required

## Request body

- RunxPurchaseClaim
  - `claim_url` string, required
  - `issued_at` string, required
  - `receipt_digest` string, required
  - `signature` string, required

## Response `200`

What the purchase holds now, with its fields.

- PurchaseClaimed
  - `status` 'claimed', required
  - `holds` object[], required
    - `connector` string, required
    - `credential` string, required
    - `target` string, required
    - `expires_at` string, date-time, required
    - `value_digest` string, required
    - `fields` object, required

## Other responses

- `400`: The claim is not shaped as one.
- `401`: The claim is not signed by this purchase's key, here and now.
- `404`: Purchase not found.
- `409`: The purchase is not key-owned or not fulfilled.

---

[API](https://skmtc.dev/runx/apis/runx-hosted-api.md) · [All operations](https://skmtc.dev/runx/apis/runx-hosted-api/llms.txt) · [OpenAPI document](https://skmtc.dev/runx/apis/runx-hosted-api/revisions/6c940d8edacc?raw)
