---
title: "A question’s challenges, open ones first"
method: GET
path: "/workspaces/{id}/questions/{questionId}/challenges"
tags: ["challenges"]
---

# A question’s challenges, open ones first

`GET /workspaces/{id}/questions/{questionId}/challenges`

## Request

- Base URL: `https://api.swingfactor.ai/v1`
- URL: `https://api.swingfactor.ai/v1/workspaces/{id}/questions/{questionId}/challenges`
- Auth: HTTP bearer

## Path parameters

- `id` string, uuid, required
- `questionId` string, uuid, required

## Response `200`

The challenges.

- ChallengeList
  - `items` Challenge[], required
    - `id` string, uuid, required
    - `workspaceId` string, uuid, required
    - `questionId` string, uuid, required
    - `targetKind` 'proposition' | 'evidence' | 'dependency' | 'estimate' | 'break-even', required
    - `targetId` string, uuid, required
    - `objection` string, required
    - `plain` string: SwingFactor’s doubt said plainly: what is wrong, then what would put it right.
    - `suggests` 'fix' | 'tell' | 'fine': The answer SwingFactor recommends: fix (public sources could put it right), tell (only your own knowledge could) or fine.
    - `raisedBy` string, uuid
    - `raisedByName` string
    - `outcome` 'no-change' | 'qualified' | 'material-change' | 'new-uncertainty': Absent while it is open.
    - `validity` 'genuine' | 'partly' | 'not-genuine': Whether it was right, apart from what it did. Absent while open, or not said.
    - `response` string
    - `resolvedBy` string, uuid
    - `resolvedByName` string
    - `resolvedAt` string
    - `requestedChange` string: The change an editor asked for: right, and the model should change. It stays open until a person resolves it, and is kept beside the resolution after.
    - `requestedBy` string, uuid
    - `requestedByName` string
    - `requestedAt` string
    - `changeCount` integer: On the list: changes since it was raised to what it was raised against. A resolution saying the model changed is refused while this is 0.
    - `yours` boolean, required: Whether the caller raised it — and so may withdraw it while it is open and unanswered.
    - `createdAt` string, required
    - `draftId` string, uuid: Set where SwingFactor drafted it.
    - `updatedAt` string, required
    - `links` ChallengeLinks, required: Relative /v1 URLs to follow.
      - `self` string, required
      - `resolution` string, required
      - `changes` string, required
      - `question` string, required
  - `total` integer, required
  - `offset` integer, required
  - `limit` integer, required

## Other responses

- `401`: No token, or not a valid one: `unauthorized`.

---

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