---
title: "Update extraction schema (rename, activate, archive)"
method: PATCH
path: "/v1/agents/{agent_id}/extraction-schemas/{schema_id}"
tags: ["extraction-schemas"]
---

# Update extraction schema (rename, activate, archive)

`PATCH /v1/agents/{agent_id}/extraction-schemas/{schema_id}`

## Path parameters

- `agent_id` string, uuid, required
- `schema_id` string, uuid, required

## Request body

- ExtractionSchemaUpdate — Partial update of an extraction schema — only supplied fields change. Explicit ``null`` is rejected for non-nullable columns (``name``, ``status``) — omit the field instead. ``description`` is the only nullable column, so it accepts ``null`` as a clear-the-column signal. Mirrors ``PersonaUpdate`` so a wire-level ``{"name": null}`` fails fast instead of returning a misleading 200 with no change applied.
  - `name` string, nullable
  - `description` string, nullable
  - `status` 'active' | 'archived', nullable

## Response `200`

Successful Response

- ExtractionSchemaResponse
  - `id` string, uuid, required
  - `organization_id` string, uuid, required
  - `agent_id` string, uuid, required
  - `version` integer, required
  - `name` string, required
  - `description` string, nullable, required
  - `schema_json` object, required
  - `status` 'draft' | 'active' | 'archived', required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400` — Bad request
- `401` — Authentication required
- `404` — Resource not found
- `422` — Validation Error

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/revisions/888bdd5c076e/schema)
