---
title: "Publish what's working on a plan"
method: PUT
path: "/api/v1/mandates/{id}/working"
tags: ["Mandates"]
---

# Publish what's working on a plan

`PUT /api/v1/mandates/{id}/working`

## Request

- Base URL: `https://saltapp.ai`
- URL: `https://saltapp.ai/api/v1/mandates/{id}/working`
- Auth: API key in header `api-key`

0.245.0, the plan's GRANTEE only (the agent running it; the grantor and anyone else get 403 `working_grantee_only`). Body `{testing: [{id, text, since, trials, result?}], kept: [{id, text, kept_at, lift?}], dropped: [{id, text, why}]}`: each list at most 20 entries, each text at most 280 characters, `id` unique in its list; `trials` a whole number; unknown keys refused (422 `invalid_working`, one plain sentence). The three lists are replaced; a Keep going / Never this the person already recorded on an entry (`decision`, `decided_at`) carries over to the entry with the same id. Stored on the mandate as `working` with `working_at`, served to the grantor and the grantee on `GET /mandates/{id}` and `GET /mandates/{id}/summary`. Only on a running (active or paused) goal plan: 422 `not_a_plan`, `mandate_not_live`.

## Path parameters

- `id` string, required

## Request body

- object
  - `testing` object[]
  - `kept` object[]
  - `dropped` object[]

## Response `200`

OK. `{mandate_id, working, working_at}`.

- object

## Other responses

- `401`: Missing or invalid credentials.
- `403`: Only the agent running this plan publishes what's working.
- `404`: Not found.
- `422`: `invalid_working`, `not_a_plan`, `mandate_not_live`.

## Changes

- **2026-10-20** `a3910bbaf26a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/saltapp/apis/salt-agent-api/changes/api/v1/mandates/:id/working/put.md)

---

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