---
title: "Anchor a SHA-256 digest to Knox (no authentication)"
method: POST
path: "/api/knox/public-anchor"
tags: ["public"]
---

# Anchor a SHA-256 digest to Knox (no authentication)

`POST /api/knox/public-anchor`

## Request

- Base URL: `https://bonissystems.com`
- URL: `https://bonissystems.com/api/knox/public-anchor`
- Auth: none declared

Client computes the hash in-browser so the file never leaves the device. Returns anchor ID, sequence, verify URL, and receipt text for use with a qualified person's FRE 902(13)/(14) certification.

## Request body

- PublicAnchorRequest
  - `hash` string, required: SHA-256 digest, 64 lowercase hex characters.
  - `filename` string, required: Filename associated with the digest. Truncated server-side to 256 characters.
  - `sizeBytes` integer, required
  - `mimeType` string, required

## Response `201`

Anchor created.

- PublicAnchorResponse
  - `ok` true, required
  - `anchor` object, required
    - `id` string, required: Internal Knox anchor ID.
    - `anchorHash` string, required: SHA-256 digest, 64 lowercase hex characters.
    - `sequence` integer, required
    - `timestamp` string, date-time, required
    - `verifyUrl` string, uri, required
  - `file` object, required
    - `filename` string
    - `sizeBytes` integer
    - `mimeType` string
    - `sha256` string: SHA-256 digest, 64 lowercase hex characters.
  - `affidavit` string, required: FRE 902(13)/(14) affidavit text ready to be attached to counsel's evidence packet.
  - `operator` 'Bonis Systems LLC'
  - `uspto_provisional` string

## Other responses

- `400`: Invalid request (malformed JSON or non-hex hash).
- `429`: Rate limit exceeded on the shared public-demo key.
- `500`: Anchoring failed (generic).

---

[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)
