---
title: "Look up a launch by its idempotency key"
method: GET
path: "/v1/studies/launch-status"
tags: ["Studies"]
---

# Look up a launch by its idempotency key

`GET /v1/studies/launch-status`

## Request

- Base URL: `https://api.viewpoints.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.viewpoints.ai/v1/studies/launch-status`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

A launch response can be lost in transit — a media-heavy study outlives Heroku's 30s router cap, the browser gets a 503, and the run it started is invisible to the only client that wanted it. The winning launch already publishes its response to Redis for `LAUNCH_RESULT_TTL_S`; this is how a client reads it back, so a dropped response becomes a reconnect rather than a duplicate study.

Scoped to the caller: the key is only ever looked up under the requesting user's own namespace.

## Response `200`

Whether that key already launched a study

- LaunchStatusResponse: What a launch with a given idempotency key produced, if anything.
  - `found` boolean, required
  - `job_id` string, nullable
  - `study_id` string, nullable
  - `version` integer, nullable

## Other responses

- `400`: Missing key
- `401`: Authentication failed
- `403`: Not authorized

## Changes

- **2026-09-09** `3e89bee48442`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/viewpoints/apis/viewpoints-study-api/changes/v1/studies/launch-status/get.md)

---

[API](https://skmtc.dev/viewpoints/apis/viewpoints-study-api.md) - [All operations](https://skmtc.dev/viewpoints/apis/viewpoints-study-api/llms.txt) - [OpenAPI document](https://skmtc.dev/viewpoints/apis/viewpoints-study-api/revisions/7865470f2595?raw)
