---
title: "Get a support answer"
method: GET
path: "/v1/support/runs/{runId}"
tags: ["Support Assistant"]
---

# Get a support answer

`GET /v1/support/runs/{runId}`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/v1/support/runs/{runId}`
- Auth: HTTP bearer

Returns a run started by your team, with the answer once it is ready. Prefer the `support.run.completed` and `support.run.failed` webhooks; use this as the fallback, waiting `pollAfterSeconds` between polls. `costUsd` is the amount billed for the question, never above `maxCostUsd`, and 0 for a failed run (pricing on Ask a support question).

## Path parameters

- `runId` string, required

## Response `200`

The run

- SupportRun
  - `runId` string, required: Run id, a 24-character hex string.
  - `threadId` string, required: Conversation thread id. Send it back as `threadId` to ask a follow-up in the same thread.
  - `status` 'queued' | 'running' | 'completed' | 'needs_human' | 'failed', required: queued and running are in progress. needs_human means the assistant handed the question to a person instead of answering; when `supportTicket` is set, a Zernio teammate has been notified and will follow up by email.
  - `stopReason` 'answered' | 'human_review' | 'cost_cap' | 'deadline' | 'max_iterations' | 'error' | 'expired' | 'null', nullable, required: Why the run stopped. Null while it is in progress.
  - `question` string, nullable, required: The question as asked, with leading and trailing whitespace trimmed. Null only on runs created before this field was added.
  - `answer` string, nullable, required: The assistant's answer. Null while the run is in progress or when it failed.
  - `diagnosis` SupportRunDiagnosis, required
    - `category` 'account_connection' | 'content_rejected' | 'rate_limited' | 'platform_issue' | 'zernio_issue' | 'billing' | 'configuration' | 'how_to' | 'other', required: What kind of problem the answer describes. New values may be added: treat any value you do not recognize as `other`.
    - `cause` string, nullable, required: The cause the answer gives, in one sentence. Null when the answer reports no problem, for example a how-to question.
    - `fixSteps` string[], required: The steps the answer recommends, in order. Empty when it recommends none.
    - `docsLinks` string[], required: Links to docs.zernio.com that the answer itself cites. Empty when it cites none.
    - `whoMustAct` 'integrator' | 'end_user' | 'zernio' | 'platform' | 'none', required: Who has to act to resolve it: you (`integrator`), your end user, Zernio, the social platform, or nobody. New values may be added: treat any value you do not recognize as `none`.
  - `usage` SupportRunUsage, required
    - `inputTokens` integer, required
    - `outputTokens` integer, required
    - `cacheReadTokens` integer, required
    - `cacheWriteTokens` integer, required
  - `costUsd` number, required: The exact amount charged for the question, in USD, never above `maxCostUsd`. 0 for a failed run.
  - `maxCostUsd` number, required: The cost cap this run was started with, in USD.
  - `createdAt` string, date-time, required
  - `startedAt` string, date-time, nullable, required
  - `finishedAt` string, date-time, nullable, required
  - `supportTicket` object, nullable, required: Set when the assistant opened a support ticket with the Zernio team. Null otherwise. A teammate follows up by email with the user whose API key started the run.
    - `openedAt` string, date-time, required
  - `pollAfterSeconds` integer: Seconds to wait before polling again. Present only while the run is queued or running.

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `402`: A card is required (code `payment_method_required`) or the last payment failed (code `payment_required`).
- `403`: Code `insufficient_permissions`: not an unrestricted API key, or a read-only, restricted or profile-scoped user.
- `404`: Code `support_run_not_found`: no such run, or it was not started by your team.

## Changes

- **2026-10-13** `27c96850cc66`: 5 info
  - api operation id `getSupportRun` removed and replaced with `getSupportAnswer`
  - api tag `Support Assistant` added
  - api tag `Support Runs` removed
  - added the required property `diagnosis` to the response with the `200` status
  - …1 more
- **2026-10-12** `61eb7bfa8d15`: 1 info
  - added the required property `supportTicket` to the response with the `200` status
- **2026-10-08** `9010c1de973d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/support/runs/:runId/get.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/4e74db179e73?raw)
