---
title: "A research run's state, report, and result list"
method: GET
path: "/business/research/runs/{runId}"
tags: ["Research"]
---

# A research run's state, report, and result list

`GET /business/research/runs/{runId}`

## Request

- Base URL: `https://api.tryfuse.ai/api/v1`
- URL: `https://api.tryfuse.ai/api/v1/business/research/runs/{runId}`
- Auth: HTTP basic

A research run's full state. Poll it until `status` is completed, failed or cancelled (in-flight statuses: queued, planning, plan_review, running, generating_csv, uploading). `prompt` is the text the run was started with; `spend` shows the credits reserved, settled and the cap `effort` set; `reportMarkdown` is the markdown report (null until the run writes it); `resultListId` is the list holding the people or companies the research surfaced (null when none was created), readable with GET /business/lists/{listId}; `errorCode` explains a failed run and `cancelRequestedAt` is set once a cancel has been accepted. Rate limit: 30 requests per minute, 1000 per day.

Errors:
- `404` `RESEARCH_RUN_NOT_FOUND` — No research run with that id belongs to the token owner.
- `422` `VALIDATION_FAILED` — `runId` is not a 24-character hex id.
- `429` `RATE_LIMITED` — Per-user quota for this endpoint family exceeded (30 per minute, 1000 per day); retry after the Retry-After / RateLimit-Reset seconds.

Requires one of the following token scopes: research.

## Path parameters

- `runId` string, required: The research run id (24-character hex), as returned in `run.runId` by POST /business/research/runs.

## Response `200`

Success

- object
  - `run` object, required
    - `runId` string, nullable, required
    - `prompt` string, nullable, required
    - `status` 'queued' | 'planning' | 'plan_review' | 'running' | 'generating_csv' | 'uploading' | 'completed' | 'failed' | 'cancelled' | 'null', nullable, required
    - `turnCount` integer, required
    - `createdAt` string, nullable, required
    - `updatedAt` string, nullable, required
    - `effort` 'low' | 'medium' | 'high' | 'null', nullable, required
    - `spend` object, required
      - `reservedCredits` integer, required
      - `settledCredits` integer, required
      - `capCredits` integer, required
    - `resultListId` string, nullable, required
    - `reportMarkdown` string, nullable, required
    - `errorCode` 'ORCHESTRATOR_ERROR' | 'ENGINE_MISCONFIGURED' | 'HARNESS_NO_OUTPUT' | 'STALE_TIMEOUT' | 'SANDBOX_POOL_TIMEOUT' | 'null', nullable, required
    - `cancelRequestedAt` string, nullable, required

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `422`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/fuseai/apis/fuse-business-api.md) · [All operations](https://skmtc.dev/fuseai/apis/fuse-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fuseai/apis/fuse-business-api/revisions/50d95e0536f4?raw)
