---
title: "create_extraction_schema"
method: POST
path: "/v1/extraction-schemas"
tags: ["extraction-schemas"]
---

# create_extraction_schema

`POST /v1/extraction-schemas`

## Request

- Base URL: `https://ndi-api.nace.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://ndi-api.nace.ai/v1/extraction-schemas`
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/nace/apis/ndi-service/docs/v1/extraction-schemas/post.ts> (a function with typed inputs; its response is checked against the schema)

Create version 1 of a new tenant-owned schema family with a generated ``sch_...`` id.

## Request body

- CreateExtractionSchemaRequest: Create version 1 of a new schema family with a server-generated id.
  - `name` string, required
  - `description` string, nullable
  - `schema` object, required

## Response `201`

Successful Response

- ExtractionSchema: One immutable schema version, including the frozen JSON Schema body.
  - `schema_id` string, required
  - `name` string, required
  - `description` string, nullable
  - `version` integer, required
  - `owner` 'platform' | 'tenant', required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `schema` object, required

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Payment Required
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `410`: Gone
- `413`: Request Entity Too Large
- `422`: Unprocessable Entity
- `424`: Failed Dependency
- `429`: Too Many Requests
- `500`: Internal Server Error
- `501`: Not Implemented
- `503`: Service Unavailable
- `504`: Gateway Timeout

---

[API](https://skmtc.dev/nace/apis/ndi-service.md) - [All operations](https://skmtc.dev/nace/apis/ndi-service/llms.txt) - [OpenAPI document](https://skmtc.dev/nace/apis/ndi-service/revisions/d9d1f8ec2207?raw)
