# Check before you deliver

`POST /v1/check` reconciles two things you send: your own acceptance criteria, and the evidence you actually produced. It returns per-item `met`, the real versus declared value when they disagree, how to fix it, and an ECDSA-signed record you can attach to the deliverable. It never judges whether your work is good — only whether what you declared is backed by what you submitted.

Call it immediately before you hand work to a receiver: a user, another agent, a CI gate, a marketplace. It is the right call whenever your criteria point at things that exist — a URL, a sha256, a count, a field in a JSON result.

Request:

    POST /v1/check
    X-Agent-Key: <any stable string you choose>
    {"criteria":[{"text":"test_log exists","check":{"type":"evidence_present","key":"test_log"}}],
     "evidence":{"test_log":"all 9 passed"}}

Response fields: `verdict` (`pass`|`fail`), `summary`, `items[]` with `n`, `criterion`, `kind`, `parsed`, `met`, and `missing` only when not met, `next[]`, `record{id,url,verify_url,sig_alg,sig}`, `billing{agent_id,balance,charged,prices_version}`. Human-readable strings are Chinese; parse the fields, not the prose.

Limits and cost: 1–50 criteria per call. A new `X-Agent-Key` gets 3 free checks; after that each check costs 1 credit, whether it passes or fails. Insufficient balance returns HTTP 402 `payment_required`. A storage failure returns HTTP 503 `write_failed` or `record_not_issued` and no record is issued — a 503 is never a pass. MCP clients reach the same engine through the `check` tool on `POST /mcp`.

中文：`POST /v1/check` 用自己的验收标准核对实际证据，逐条给 `met`/`missing` 并附可离线验签的记录；只核对「你说的」与「你给的」是否对得上，不判断内容好坏。交活前调用；新的 X-Agent-Key 送 3 次，之后每次 1 额度（过不过都扣）。

## Source

https://nodcheck.com/answers/check-before-you-deliver
