---
title: "Say whether a skill worked"
method: POST
path: "/v1/skills/{name}/outcome"
---

# Say whether a skill worked

`POST /v1/skills/{name}/outcome`

## Request

- Base URL: `https://api.doubleoh.ai`
- URL: `https://api.doubleoh.ai/v1/skills/{name}/outcome`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Closes the loop. One boolean, wired to whatever already tells you a run succeeded. A skill followed three times that never works retires itself. When a served skill was not for your task (another field, tab or intent), send `{worked: false, reason: "not_applicable", task}`: it is not counted as a failure, and the task is remembered so the skill is not served for it again.

## Path parameters

- `name` string, required

## Request body

- object
  - `worked` boolean, required
  - `reason` 'not_applicable': With worked: false, the skill did not fit this task. Not a failure.
  - `task` string: With not_applicable: the task it did not fit. Defaults to the task it was last served for.
  - `wallId` string: The deflection's wallId. With worked: false, the next ask on that wall reaches a person. Defaults to the wall it was last served on.

## Response `200`

Recorded; `retired` is true when this failure was the skill's third strike.

- object
  - `recorded` boolean
  - `retired` boolean
  - `notApplicable` boolean
  - `learnedFrom` boolean: not_applicable: whether a task was known to remember as a negative example.

## Other responses

- `404`: No skill of yours by that name.

---

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