---
title: "Port Check"
method: POST
path: "/v1/strategies/port-check"
---

# Port Check

`POST /v1/strategies/port-check`

## Request

- Base URL: `https://api.quantradin.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.quantradin.com/v1/strategies/port-check`
- Auth: none declared

"Does my strategy fit this platform?" — the machine-checkable half of the
Port Report. Classify a draft spec and/or a list of concept TAGS as
fits | partial | cant, instead of only accept/reject.

Request: {"spec": <draft spec dict>} and/or {"concepts": ["ratchet", ...]}.
Response: {verdict, issues: [{concept, detail, dropped, closest, kind,
note}], notes: [truth-box one-liners]}.
  - fits    — validates clean / every concept already supported.
  - partial — only mappable losses (take-profit, trailing/ratchet, chosen
              stop, sizing) — each issue names what's dropped + the closest
              supported thing (verbatim W1 guidance).
  - cant    — a hard wall with no mapping (intraday/minute bars, news/social
              feeds, empty universe, unknown indicator type, …).

Auth: identity-only, mirroring POST /v1/strategies/build (session OR
X-Vega-Key OR account key pair via require_user_or_session); the uid is
unused — no user-scoped data is touched. Never 400s on a bad spec (the
classification IS the product); a 400 only fires when neither a spec nor
a concepts list is supplied.

## Headers

- `x-vega-key` string, nullable

## Request body

- object

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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