---
title: "Risk Batch Endpoint"
method: POST
path: "/v1/risk/batch"
---

# Risk Batch Endpoint

`POST /v1/risk/batch`

## Request

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

A whole lockfile in one request (pilot findings, Priority 3):
compact, comparable per-package results in submitted order, with a
top-level status distinguishing full coverage, partial coverage,
ambiguity and no coverage (Priority 4) instead of one flat dict a
caller has to interpret differently for every failure mode. ``view``
is ``summary`` (default -- foresight_api.risk_batch's compact fields)
or ``detail`` (the same full per-package answer /v1/risk gives,
keyed by query). Ambiguous or unmatched entries never raise for the
whole batch -- one bad entry becomes one result, not a 4xx for
packages that would have resolved fine.

Every result, in both views, carries ``rank``: an integer where 1 is
the highest ``triage.score`` in this batch, ties broken by submission
order; null when the entry has no score (not_covered, ambiguous,
service_error, or insufficient evidence). The list itself stays in
submission order -- sort by ``rank`` to get the riskiest first.

## Request body

- RiskBatchRequest
  - `packages` string[], required
  - `view` string

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

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