---
title: "Get a study"
method: GET
path: "/api/v1/studies/{id}"
tags: ["Studies"]
---

# Get a study

`GET /api/v1/studies/{id}`

## Request

- Base URL: `https://api.partner.cubee.cz`
- URL: `https://api.partner.cubee.cz/api/v1/studies/{id}`
- Auth: none required

One study in full: the summary fields plus the stored request (`input`) and computed study
(`result`) exactly as audited — note the documents can be large when the request embedded
custom hourly data. Partner-scoped like the list. Redacted studies return with `redactedAt`
set, the personal values scrubbed out of both documents, and no link. The PDF itself is at
`GET /api/v1/studies/{id}/pdf`.

## Path parameters

- `id` string, uuid, required

## Response `200`

OK

- StudyDetailModel: One study in full: the summary fields plus the stored request (`input`) and computed study (`result`) exactly as audited — the jsonb documents, which can be large when the request embedded custom hourly data. Once redacted, the personal values inside both documents (cover label/address, recipient, replication payload) are scrubbed; the calculation itself remains.
  - `id` string, uuid: The calculation id (also the stored PDF's blob name).
  - `createdAt` string, date-time: When it was generated (UTC).
  - `annualSaving` number, double, nullable: Headline yearly saving in Currency, if computed.
  - `currency` string, nullable: ISO 4217 currency of the money amounts (currently always `"CZK"`).
  - `paybackYears` number, double, nullable: Payback in years, if computed.
  - `url` string, nullable: Absolute URL of the public broker endpoint that redirects to the study PDF. Null once redacted (the stored PDF is deleted).
  - `studyLabel` string, nullable: The free-form label the study was created with, if any. Null once redacted.
  - `externalUserId` string, nullable: The caller's end-user id the study was tagged with, if any.
  - `recipientEmail` string, nullable: Who the study was e-mailed to, if it went out by e-mail. Null once redacted.
  - `recipientName` string, nullable: The recipient's full name, if supplied. Null once redacted.
  - `recipientPhone` string, nullable: The recipient's phone number, if supplied. Null once redacted.
  - `wantsContact` boolean: Whether the customer agreed to a follow-up contact (see the request field).
  - `origin` string, nullable: Web origin of an embedded-calculator call, if any.
  - `redactedAt` string, date-time, nullable: When the calculation's personal data was erased; null for live rows.
  - `userId` string, uuid, nullable: The console user who generated it; null for API-generated studies.
  - `partnerId` string, uuid: The owning partner — always the caller's own.
  - `input` unknown
  - `result` unknown

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found

## Changes

- **2026-11-03** `50555858fb42`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/cubee/apis/partner-api/changes/api/v1/studies/:id/get.md)

---

[API](https://skmtc.dev/cubee/apis/partner-api.md) - [All operations](https://skmtc.dev/cubee/apis/partner-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cubee/apis/partner-api/revisions/50555858fb42?raw)
