---
title: "Cpcv Endpoint"
method: POST
path: "/v1/cpcv"
---

# Cpcv Endpoint

`POST /v1/cpcv`

## Request

- Base URL: `https://api.alphaassay.com`
- URL: `https://api.alphaassay.com/v1/cpcv`
- Auth: HTTP bearer

## Headers

- `Idempotency-Key` string, nullable

## Request body

- CpcvRequest: Either a net-return series directly, or spec + candles; the engine fails closed on structural shortfalls with a named reason.
  - `returns` number[], nullable
  - `spec` DslSpec
    - `dsl_version` string, required
    - `asset_universe` string[], required
    - `bar_interval` string, required
    - `target` object, required
    - `signal` object, required
    - `position` object, nullable
    - `entry_lag_bars` integer, nullable
  - `ohlcv_by_symbol` object, nullable
  - `n_groups` integer
  - `purge` integer
  - `embargo` integer
  - `fee_bps_per_side` number
  - `periods_per_year` number, nullable

## Response `200`

Successful Response

- CpcvOutput
  - `_meta` PublicMeta, required
    - `engine_version` string, required
    - `api_version` string, required
    - `as_of` string, date-time, required
    - `input_digest` string, required
    - `request_digest` string, required
    - `tenant_scope` string, required
    - `tenant_scope_version` string, required
    - `request_id` string, nullable, required
    - `source_identity_digest` string, required
    - `operation` string, required
    - `statefulness` 'pure' | 'public_read' | 'tenant_read' | 'tenant_write', required
    - `not_financial_advice` true, required
    - `disclaimer` string, required
  - `schema` 'cpcv.v1', required
  - `status` 'insufficient' | 'computed', required
  - `verdict` 'pass' | 'fail' | 'insufficient_evidence', required
  - `input_mode` 'returns_series' | 'spec_and_candles', nullable, required
  - `n_groups` integer, required
  - `purge` integer, required
  - `embargo` integer, required
  - `min_share_positive` union, required
    - integer
    - number
  - `share_positive` union, required
    - integer
    - number
  - `distribution` CpcvDistribution, required
    - `worst` union, required
      - integer
      - number
    - `p05` union, required
      - integer
      - number
    - `p25` union, required
      - integer
      - number
    - `p50` union, required
      - integer
      - number
    - `p75` union, required
      - integer
      - number
    - `p95` union, required
      - integer
      - number
    - `best` union, required
      - integer
      - number
  - `histogram` CpcvHistogramBin[], nullable, required
    - `from` union, required
      - integer
      - number
    - `to` union, required
      - integer
      - number
    - `count` integer, required
  - `disclaimer` string, required
  - `died_at` string, nullable, required
  - `died_at_plain` string, nullable, required
  - `failure_codes` string[], required
  - `reason` string, nullable
  - `periods_per_year` union
    - integer
    - number
  - `n_bars` integer, nullable
  - `n_combinations` integer, nullable
  - `n_blocked_combinations` integer, nullable
  - `n_backtest_paths` integer, nullable
  - `purged_bars_total` integer, nullable
  - `interpretation` string, nullable

## Other responses

- `401`: Request could not be completed
- `402`: Request could not be completed
- `403`: Request could not be completed
- `409`: Request could not be completed
- `413`: Request could not be completed
- `422`: Request could not be completed
- `429`: Request rate limit exceeded
- `500`: Internal execution failure
- `503`: Request could not be completed

---

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