---
title: "Create attestation"
method: POST
path: "/attestations"
tags: ["Attestations"]
---

# Create attestation

`POST /attestations`

## Request

- Base URL: `https://app.arkova.ai/api/v1`
- URL: `https://app.arkova.ai/api/v1/attestations`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Create a new public attestation with optional evidence metadata. Collision retry (3x). Requires JWT or API key.

## Request body

- object
  - `anchor_id` string, uuid: Optional linked anchor UUID for owned credentials
  - `subject_type` 'credential' | 'entity' | 'process' | 'asset'
  - `subject_identifier` string, required: Public ID or stable external identifier for the attestation subject
  - `attestation_type` 'VERIFICATION' | 'ENDORSEMENT' | 'AUDIT' | 'APPROVAL' | 'WITNESS' | 'COMPLIANCE' | 'SUPPLY_CHAIN' | 'IDENTITY' | 'CUSTOM', required
  - `attester_name` string, required
  - `attester_type` 'INSTITUTION' | 'CORPORATION' | 'INDIVIDUAL' | 'REGULATORY' | 'THIRD_PARTY'
  - `attester_title` string
  - `claims` object[], required
    - `claim` string, required
    - `evidence` string
  - `summary` string
  - `jurisdiction` string
  - `evidence_fingerprint` string
  - `evidence` AttestationEvidenceInput[]: Evidence metadata only. Arkova stores public metadata and fingerprints, not document bytes.
    - `evidence_type` string, required
    - `fingerprint` string, required: SHA-256 evidence artifact fingerprint
    - `mime` string, nullable
    - `size` integer, nullable
    - `filename` string, nullable: Public-safe evidence filename metadata only
    - `description` string, nullable: Public-safe evidence description metadata only
  - `expires_at` string, date-time, nullable
  - `metadata` AttestationMetadataInput: Optional PII-stripped metadata. Accepted only when ENABLE_AI_EXTRACTION is enabled.
    - `template` string
    - `credential_type` string
    - `credential_sub_type` string
    - `document_type` string
    - `issuer_name` string
    - `issuing_jurisdiction` string
    - `issued_date` string
    - `expiration_date` string
    - `extraction_provider` string
    - `extraction_confidence` number
    - `metadata_fingerprint` string

## Response `201`

Attestation created

- CreateAttestationResponse
  - `public_id` string, required
  - `attestation_id` string, required: v1 back-compat alias for public_id; never an internal UUID
  - `attestation_type` string, required
  - `status` 'PENDING', required
  - `fingerprint` string, required
  - `created_at` string, date-time, required
  - `verify_url` string, uri, required
  - `evidence_count` integer
  - `warning` string

## Other responses

- `400`: Invalid request
- `401`: Authentication required

---

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