---
title: "Returns purchase details"
method: GET
path: "/storage/purchases/{id}"
tags: ["Marketplace"]
---

# Returns purchase details

`GET /storage/purchases/{id}`

## Path parameters

- `id` string, required

## Response `200`

Purchase details

- Purchase
  - `state` 'cancelled' | 'errored' | 'failed' | 'finished' | 'pending' | 'started' | 'submitted' | 'unknown', required — Description of the Request's state
  - `error` string, nullable — If Request failed, then here is presented the error message
  - `request` StorageRequest
    - `id` string, required — Request ID
    - `client` string, required — Address of Ethereum address
    - `ask` StorageAsk, required
      - `slots` integer, required — Number of slots (eq. hosts) that the Request want to have the content spread over
      - `slotSize` integer, required — Amount of storage per slot in bytes
      - `duration` integer, required — The duration of the request in seconds
      - `proofProbability` string, required — How often storage proofs are required as decimal string
      - `pricePerBytePerSecond` string, required — The amount of tokens paid per byte per second per slot to hosts the client is willing to pay
      - `collateralPerByte` string, required — Number as decimal string that represents how much collateral per byte is asked from hosts that wants to fill a slots
      - `maxSlotLoss` integer, required — Max slots that can be lost without data considered to be lost
    - `content` Content, required — Parameters specifying the content
      - `cid` string, required — Content Identifier as specified at https://github.com/multiformats/cid
    - `expiry` integer, required — A timestamp as seconds since unix epoch at which this request expires if the Request does not find requested amount of nodes to host the data.
    - `nonce` string, required — Random data
  - `requestId` string, required — 32bits identifier encoded in hex-decimal string.

## Other responses

- `400` — Invalid or missing Purchase ID
- `404` — Purchase not found
- `503` — Persistence is not enabled

## Changes

- **2025-04-04** `ee092cd3ee0a` — 1 warning, 2 info
  - added the new `errored` enum value to the `state` response property for the response status `200`
  - removed the `error` enum value from the `state` response property for the response status `200`
  - added the required property `request/ask/collateralPerByte` to the response with the `200` status
- **2025-04-02** `c45fb5a40b67` — 3 breaking, 15 info
  - the `request/ask/duration` response's property type changed from `string` to `integer`, and format from no format to `int64` for status `200`
  - the `request/ask/slotSize` response's property type changed from `string` to `integer`, and format from no format to `int64` for status `200`
  - the `request/expiry` response's property type changed from `string` to `integer`, and format from no format to `int64` for status `200`
  - the response property `request/ask` became required for the status `200`
  - …14 more
- **2025-02-27** `1be1377d30f3` — 1 breaking
  - the response property `error` became nullable for the status `200`
- **2025-01-24** `03c5cc35cc9e` — 1 breaking, 1 info
  - removed the required property `request/ask/reward` from the response with the `200` status
  - added the required property `request/ask/pricePerBytePerSecond` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/logos-storage/apis/logos-storage-api/changes/storage/purchases/:id/get.md)

---

[API](https://skmtc.dev/logos-storage/apis/logos-storage-api.md) · [All operations](https://skmtc.dev/logos-storage/apis/logos-storage-api/llms.txt) · [OpenAPI document](https://skmtc.dev/logos-storage/apis/logos-storage-api/revisions/249e8b144116?raw)
