---
title: "Tradelog Endpoint"
method: POST
path: "/v1/tradelog"
---

# Tradelog Endpoint

`POST /v1/tradelog`

## Request

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

## Headers

- `Idempotency-Key` string, nullable

## Request body

- TradelogRequest: Rows stay loosely typed on purpose -- the engine enforces the hard contract (strict timezones etc.) and returns named defects, so the boundary only guards size and shape (forensics precedent).
  - `trades` object[], required
  - `trading_calendar` string

## Response `200`

Successful Response

- TradelogOutput
  - `_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` 'tradelog.v1', required
  - `verdict` 'conditional' | 'fail' | 'insufficient_evidence', required
  - `checks_run` TradelogChecksRun, required
    - `timestamps` boolean, required
    - `time_travel` boolean, required
    - `duplicates` boolean, required
    - `pnl_consistency` boolean, required
    - `calendar` boolean, required
  - `defects` TradelogDefect[], required
    - `code` 'tradelog_duplicate_fills' | 'tradelog_time_travel' | 'tradelog_pnl_inconsistent' | 'tradelog_timestamps_invalid' | 'tradelog_outside_calendar', required
    - `severity` 'hard_fail', required
    - `rows` integer[], required
    - `n_rows` integer, required
    - `detail` string, required
  - `failure_codes` string[], required
  - `framing` string, required
  - `n_trades` integer, required
  - `trading_calendar` '24/7' | 'weekdays', required
  - `disclaimer` string, required
  - `died_at` string, nullable, required
  - `died_at_plain` string, nullable, required
  - `note` string, nullable

## Other responses

- `400`: Request could not be completed
- `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)
