> ## Documentation Index
> Fetch the complete documentation index at: https://monid.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# monid runs get

> Get the status and results of a specific run.

Get the status and results of a specific run.

## Usage

```bash theme={null}
monid runs get -r <run-id> [--wait [timeout]] [-o <file>] [--json]
```

## Flags

| Flag                   | Type    | Required | Description                                                     |
| ---------------------- | ------- | -------- | --------------------------------------------------------------- |
| `-r, --run-id <runId>` | string  | Yes      | The run ID to look up                                           |
| `-w, --wait [timeout]` | number  | No       | Wait for completion. Optional timeout in seconds (default: 300) |
| `-o, --output <path>`  | string  | No       | Save output to a file                                           |
| `-j, --json`           | boolean | No       | Output raw JSON                                                 |

## Examples

```bash theme={null}
# Check current status
monid runs get -r 01HXYZ...

# Wait for completion and save results
monid runs get -r 01HXYZ... --wait -o results.json

# Wait with custom timeout
monid runs get -r 01HXYZ... --wait 60
```

### Example Output

The output shows both **Status** (run lifecycle) and **Response** (provider HTTP status):

```text theme={null}
Run ID:    01HXYZ...
Status:    COMPLETED
Response:  HTTP 200
Provider:  pdl
Endpoint:  /person/enrich
Price:     $0.003/call
Cost:      $0.003
Created:   2026-03-28T10:30:00Z
Done:      2026-03-28T10:30:01Z
```

When the provider returned an error:

```text theme={null}
Run ID:    01HXYZ...
Status:    COMPLETED
Response:  HTTP 404 — No match found for the given query
Provider:  pdl
Endpoint:  /person/enrich
Price:     $0.003/call
Cost:      $0.00
Created:   2026-03-28T10:30:00Z
Done:      2026-03-28T10:30:01Z
```

## Status vs Provider HTTP Status

Every run has two independent indicators:

1. **Run status** — did the run itself complete?
2. **Provider HTTP status** — what did the data provider return?

### Run Status

| Status      | Meaning                                                                         |
| ----------- | ------------------------------------------------------------------------------- |
| `READY`     | Queued, waiting to start                                                        |
| `RUNNING`   | Actively executing                                                              |
| `COMPLETED` | Run finished — the provider was called and responded                            |
| `FAILED`    | Infrastructure failure — pipeline crash, timeout, or internal error (our fault) |

### Provider HTTP Status

When a run is `COMPLETED`, the provider's HTTP status code tells you whether the data request succeeded:

| HTTP Status | Meaning                                           |
| ----------- | ------------------------------------------------- |
| `200`       | Success — `output` contains results               |
| `400`       | Bad request — invalid parameters sent to provider |
| `404`       | Not found — no match for the query                |
| `429`       | Rate limited — provider throttled the request     |
| `500`       | Provider error — the provider's service failed    |

The provider HTTP status is available in `providerResponse.httpStatus` in the JSON response.

<Info>
  A run with `status: COMPLETED` and `providerResponse.httpStatus: 404` means the run completed normally, but the provider found no matching data. This is **not** a failure — it's a valid "no results" response. You are not charged for provider errors.
</Info>
