---
title: "Get Task Input"
method: GET
path: "/task-bank/organizations/{organization}/tasks/{task_key}/input"
---

# Get Task Input

`GET /task-bank/organizations/{organization}/tasks/{task_key}/input`

Load one task's parsed ``input.json`` on demand for the detail pane.

## Path parameters

- `organization` string, required
- `task_key` string, required

## Response `200`

Successful Response

- TaskBankTaskInputResponse — One task's parsed ``input.json`` (or the error that broke it), loaded on demand.
  - `input` TaskInput, required — The `input.json` payload — the only file on the investigation path. Mirrors :class:`TaskSchema` minus ``ground_truth``: it carries exactly the fields the session runner needs to launch a run. The ground-truth root cause lives alongside it in ``ground_truth.md`` and must never reach the agent.
    - `time` string, date-time, required — Backtest anchor and freeze time (timezone-aware). The session runner replays the incident as of this instant: tools only observe telemetry up to the backtest horizon (`time` + `backtest_horizon_offset_minutes`, default +5 min). Populated per-organization by the task source at scrape time — e.g. DigitalOcean uses the first `inci-NNNN` Slack message ts, falling back to the Jira `created` field then the channel `created_at` (traversal/evals/task_bank/digital_ocean_task_source/directory_builder.py::_incident_time); Harvey uses the incident.io "Declared at" timestamp (traversal/evals/task_bank/harvey_task_source/directory_builder.py::_incident_time).
    - `description` string, required — Incident description shown to the agent at launch. Must not leak the resolved root cause (that lives in ground_truth.md). Populated per-organization by the task source — e.g. DigitalOcean and Kraken seed the Jira ticket (required; a missing ticket fails the scrape) and Slack channel (optional) so the agent can pull them itself.
    - `task_key` string, required — Stable, filesystem-safe task identifier (`[A-Za-z0-9_-]+`); also the task's directory name in the eval bucket (`tasks/{customer}/{task_key}/`, see traversal/evals/task_bank/s3_task_bank_repository.py). Usually the source system's incident key — e.g. DigitalOcean `INCI-<n>` (traversal/evals/task_bank/digital_ocean_task_source/directory_builder.py::jira_key).
    - `customer` 'default' | 'aexp' | 'digital_ocean' | 'pepsi' | 'traversal' | 'kraken' | 'slack_demo' | 'baseten' | 'capital_one' | 'health_check' | 'nubank' | 'autodesk' | 'optum' | 'harvey' | 'hsbc' | 'blackstone' | 'metlife', required
    - `config_name` string, nullable — Optional organization-config override for the run. When null, the run uses `customer` as its config (see TaskInput.effective_config_name). Set only when a task must run under a config different from its owning org.
    - `backtest_horizon_offset_minutes` integer, nullable — Minutes after `time` to set the backtest horizon — the latest instant tools may observe. When None, the session runner's default of 5 minutes is used.
  - `load_error` string, nullable, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/traversal/apis/fastapi.md) · [All operations](https://skmtc.net/traversal/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/traversal/fastapi/revisions/2134ebffd1ef/schema)
