---
title: "Re-file a story under the right company/program"
method: PUT
path: "/v1/admin/updates/company"
tags: ["Admin"]
---

# Re-file a story under the right company/program

`PUT /v1/admin/updates/company`

## Request

- Base URL: `http://api.technooptimist.io`
- URL: `http://api.technooptimist.io/v1/admin/updates/company`
- Auth: HTTP bearer

Moves one update, by `id` or `externalKey`, to `company` (and `program`, or null for the company alone) when it was attached to the wrong one. The default frontier follows the new program (else the company's primary); extra frontiers stay. `reason` goes to the audit log. Unchanged → `changed: false`.

## Headers

- `x-routine-name` string: Name of the routine making the write; recorded as `routine:<name>` in the audit log.

## Request body

- object
  - `id` string, uuid
  - `externalKey` string
  - `company` string, required
  - `program` string, nullable
  - `reason` string, required

## Response `200`

Moved (or already there)

- object
  - `id` string, uuid, required
  - `changed` boolean, required

## Other responses

- `401`: Missing or invalid credentials
- `403`: Credential lacks the required scope
- `404`: Not found
- `409`: Conflict
- `422`: Validation failed

---

[API](https://skmtc.dev/technooptimist/apis/the-techno-optimist-api.md) · [All operations](https://skmtc.dev/technooptimist/apis/the-techno-optimist-api/llms.txt) · [OpenAPI document](https://skmtc.dev/technooptimist/apis/the-techno-optimist-api/revisions/b7bcde6a0f30?raw)
