---
title: "Falsify"
method: POST
path: "/v1/falsify"
---

# Falsify

`POST /v1/falsify`

## Request

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

## Headers

- `Idempotency-Key` string, nullable

## Request body

- FalsifyRequest
  - `spec` DslSpec, required
    - `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, required
  - `fee_bps_per_side` number

## Response `200`

Successful Response

- FalsifyOutput
  - `_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` 'falsify.v1', required
  - `verdict` 'no_edge_to_attack' | 'SURVIVOR' | 'KILLED', required
  - `base_sharpe_annualized` union, required
    - integer
    - number
  - `detail` string, nullable
  - `weakest_link` 'execution_lag' | 'cost_stress' | 'time_jackknife' | 'regime_split' | 'parameter_neighbourhood' | 'cpcv_partition' | 'synthetic_null' | 'drift_burst', nullable
  - `killed_by` string[], nullable
  - `survival_map` union[], nullable
    - union
      - ExecutionLagAttack
        - `attack` 'execution_lag', required
        - `dimension` 'look_ahead', required
        - `survives` boolean, required
        - `kill_point` string, nullable, required
        - `evidence` ExecutionLagAttackEvidence, required
          - `sharpe_by_lag` NumberMap, required: Bounded runtime-keyed map of finite numbers.
          - `verdict_lag` integer, required
        - `plain_language` string, required
      - CostStressAttack
        - `attack` 'cost_stress', required
        - `dimension` 'costs', required
        - `survives` boolean, required
        - `kill_point` string, nullable, required
        - `evidence` CostStressAttackEvidence, required
          - `sharpe_by_cost_multiple` NumberMap, required: Bounded runtime-keyed map of finite numbers.
        - `plain_language` string, required
      - TimeJackknifeAttack
        - `attack` 'time_jackknife', required
        - `dimension` 'period_dependence', required
        - `survives` boolean, required
        - `kill_point` string, nullable, required
        - `evidence` TimeJackknifeAttackEvidence, required
          - `sharpe_by_dropped_period` NumberMap, required: Bounded runtime-keyed map of finite numbers.
        - `plain_language` string, required
      - RegimeSplitAttack
        - `attack` 'regime_split', required
        - `dimension` 'regime_dependence', required
        - `survives` boolean, required
        - `kill_point` string, nullable, required
        - `evidence` RegimeSplitAttackEvidence, required
          - `first_half_sharpe` union, required
            - integer
            - number
          - `second_half_sharpe` union, required
            - integer
            - number
        - `plain_language` string, required
      - ParameterNeighbourhoodAttack
        - `attack` 'parameter_neighbourhood', required
        - `dimension` 'overfit', required
        - `survives` boolean, required
        - `kill_point` string, nullable, required
        - `evidence` ParameterNeighbourhoodEvidence, required
          - `base_sharpe` union, required
            - integer
            - number
          - `neighbour_sharpe` NumberMap, required: Bounded runtime-keyed map of finite numbers.
          - `stability_surface` NumberMap, required: Bounded runtime-keyed map of finite numbers.
          - `neighbour_survival_share` union, required
            - integer
            - number
          - `worst_to_base_ratio` union, required
            - integer
            - number
        - `plain_language` string, required
      - CpcvPartitionAttack
        - `attack` 'cpcv_partition', required
        - `dimension` 'path_dependence', required
        - `survives` boolean, required
        - `kill_point` string, nullable, required
        - `evidence` CpcvAttackEvidence, required
          - `status` string, required
          - `share_positive` union, required
            - integer
            - number
          - `min_share_positive` union, required
            - integer
            - number
          - `median_combination_sharpe_annualized` union, required
            - integer
            - number
          - `worst_combination_sharpe_annualized` union, required
            - integer
            - number
          - `n_combinations` integer, nullable, required
          - `purge` integer, required
        - `plain_language` string, required
      - SyntheticNullAttack
        - `attack` 'synthetic_null', required
        - `dimension` 'process_placebo', required
        - `survives` boolean, required
        - `kill_point` string, nullable, required
        - `evidence` SyntheticNullAttackEvidence, required
          - `n_paths` integer, required
          - `n_usable_paths` integer, required
          - `families` string[], required
          - `survive_threshold_percentile` union, required
            - integer
            - number
          - `status` 'computed' | 'insufficient_paths', required
          - `null_sharpe_percentile` union, required
            - integer
            - number
          - `null_sharpe_median` union
            - integer
            - number
          - `null_sharpe_max` union
            - integer
            - number
        - `plain_language` string, required
      - DriftBurstAttack
        - `attack` 'drift_burst', required
        - `dimension` 'burst_concentration', required
        - `survives` boolean, required
        - `kill_point` string, nullable, required
        - `evidence` DriftBurstAttackEvidence, required
          - `n_burst_bars` integer, required
          - `burst_pnl_share` union, required
            - integer
            - number
          - `stripped_sharpe_annualized` union, required
            - integer
            - number
          - `vol_window` integer, required
          - `sigma_multiple` union, required
            - integer
            - number
        - `plain_language` string, required
  - `family_id` string, nullable
  - `spec_hash` string, nullable
  - `graveyard_informed` FalsifyGraveyardContext
    - `attack_reordered_for_cost` boolean, required
    - `family_prior_kill_rate` union, required
      - integer
      - number
  - `headline` string, nullable
  - `disclaimer` string, required

## 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)
