---
title: "Replace the supplier-submitted capability set"
method: PUT
path: "/v1/supplier/capabilities"
tags: ["Supplier catalog"]
---

# Replace the supplier-submitted capability set

`PUT /v1/supplier/capabilities`

## Request

- Base URL: `https://api.supplyslate.com`
- URL: `https://api.supplyslate.com/v1/supplier/capabilities`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://mcp.supplyslate.com/authorize`, token URL `https://mcp.supplyslate.com/oauth/token`)
  - HTTP bearer

## Headers

- `Idempotency-Key` string

## Request body

- CapabilityWrite
  - `capabilities` CapabilityItemWrite[], required
    - `capability_type` 'category' | 'fabrication_process' | 'material' | 'service' | 'certification' | 'industry' | 'geography' | 'order_policy' | 'assembly' | 'testing', required
    - `category_code` string
    - `process_id` string
    - `name` string, required
    - `normalized_value` string
    - `constraints` object
    - `source_url` string, uri
    - `evidence_excerpt` string
    - `observed_at` string, date-time
    - `expires_at` string, date-time

## Response `200`

Successful response

- CapabilityList
  - `data` Capability[], required
    - `id` string, required
    - `capability_type` string
    - `name` string
    - `category_code` string, nullable
    - `process_id` string, nullable
    - `verification_status` string
  - `pagination` Pagination, required
    - `limit` integer, required
    - `returned` integer, required
    - `offset` integer
    - `next_offset` integer, nullable
    - `has_more` boolean, required
    - `next_cursor` string, nullable, required: Opaque continuation token. Supply it unchanged on the next request.
  - `freshness` Freshness, required
    - `generated_at` string, date-time, required
  - `next_cursor` string, nullable
  - `has_more` boolean
  - `total` integer
  - `freshness_at` string, date-time, nullable
  - `verification_scope` string
  - `request_id` string

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Scope or tenant boundary denied
- `404`: Resource not found
- `409`: State conflict or idempotency mismatch
- `429`: Rate limited

---

[API](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api.md) · [All operations](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/llms.txt) · [OpenAPI document](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/revisions/f7989551f167?raw)
