---
title: "Create multi-provider comparison"
method: POST
path: "/v1/capabilities/{capability_key}/comparisons"
tags: ["public_api", "external", "comparisons"]
---

# Create multi-provider comparison

`POST /v1/capabilities/{capability_key}/comparisons`

## Request

- Base URL: `https://api.hydracept.com`
- URL: `https://api.hydracept.com/v1/capabilities/{capability_key}/comparisons`
- Auth: HTTP bearer

## Path parameters

- `capability_key` string, required

## Request body

- ComparisonCreateRequest
  - `context` CapabilityContext, required
    - `productId` string
    - `environment` string
    - `projectId` string, nullable
    - `dataClassification` 'Public' | 'Internal' | 'Confidential' | 'PrivateUserContent' | 'Manuscript'
    - `retentionRequirement` 'HashesOnly' | 'Transient' | 'EncryptedShortTerm' | 'ProductManaged' | 'ProductionAsset'
  - `input` object
  - `competitors` union[], required
    - union
      - ProviderCompetitorSpec
        - `axis` 'provider'
        - `providerPin` string, required
      - RecipeCompetitorSpec
        - `axis` 'recipe'
        - `label` string, nullable
        - `inputOverrides` object
      - ProfileCompetitorSpec
        - `axis` 'profile'
        - `profileKey` string, required
        - `profileVersion` string, nullable
  - `intent` 'exploratory' | 'production_decision' | 'golden_regression'
  - `workloadTags` object
  - `idempotencyKey` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `400`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `401`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `402`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `403`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `404`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `409`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `422`: Validation failure: public envelope plus Pydantic `detail` / `validationErrors`
- `429`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `500`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `502`: Structured public error envelope (`code`, `message`, `requestId`, …)
- `503`: Structured public error envelope (`code`, `message`, `requestId`, …)

---

[API](https://skmtc.dev/hydracept/apis/hydracept-public-api.md) · [All operations](https://skmtc.dev/hydracept/apis/hydracept-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hydracept/apis/hydracept-public-api/revisions/2d41a8069ede?raw)
