---
title: "Anchor a multi-modal evidence bundle (Attestation Protocol v1)"
method: POST
path: "/api/knox/attest"
tags: ["authenticated"]
---

# Anchor a multi-modal evidence bundle (Attestation Protocol v1)

`POST /api/knox/attest`

## Request

- Base URL: `https://bonissystems.com`
- URL: `https://bonissystems.com/api/knox/attest`
- Auth: HTTP bearer

## Request body

- AttestationBundle
  - `subject` object, required
    - `kind` string, required
    - `summary` string, required
    - `subjectHash` string: SHA-256 digest, 64 lowercase hex characters.
    - `externalId` string
  - `signers` object[], required
    - `signerId` string, required
    - `signerRole` string, required
    - `method` string, required
    - `attestation` string, required
    - `deviceAttestation` string
    - `publicKey` string
    - `timestamp` string, date-time, required
  - `geo` object, nullable
    - `lat` number
    - `lng` number
    - `accuracyMeters` number
    - `source` string
    - `timestamp` string, date-time
  - `evidence` object[]
    - `kind` string, required
    - `sha256` string, required: SHA-256 digest, 64 lowercase hex characters.
    - `mimeType` string, required
    - `sizeBytes` integer, required
    - `capturedAt` string, date-time
    - `storageRef` string
  - `oracles` object[]
  - `capturedAt` string, date-time, required
  - `bundleVersion` 'v1', required

## Response `201`

Bundle anchored. Returns coherence score + anchor identifiers.

## Other responses

- `400`: Bundle schema invalid.
- `401`: Missing API key.
- `403`: Invalid or inactive API key.
- `413`: Bundle exceeds maximum body size.
- `429`: Rate limit exceeded for this API key.

---

[API](https://skmtc.dev/bonissystems/apis/knox-audit-permanence-primitive.md) · [All operations](https://skmtc.dev/bonissystems/apis/knox-audit-permanence-primitive/llms.txt) · [OpenAPI document](https://skmtc.dev/bonissystems/apis/knox-audit-permanence-primitive/revisions/acb182b9ec30?raw)
