Documentation
Get started with the Anchorify API
ConnectRPC
The Anchorify API is built with ConnectRPC, providing both gRPC and HTTP/JSON support. We recommend using the gRPC protocol for better performance.
More Languages
Kotlin, Dart, Web and more available at
connectrpc.com/docs
Quickstart
The Anchorify API allows you to create tamper-proof evidence by anchoring hashes on public blockchains. Here's how to get started:
1. Get your API key
Sign up for an account and generate an API key from the console.
2. Hash your data locally
Generate a hash of your file or data. The original data never needs to leave your system.
# Using OpenSSL (hex output)
openssl dgst -sha256 document.pdf
# Convert hex to base64 for the API
echo -n "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" | xxd -r -p | base64
# Output (use the base64 string)
47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= 3. Submit the hash
Send the hash to our API to create a notarization. You'll receive a notarization ID for tracking.
curl -X POST https://api.anchorify.cloud/anchorify.notarization.v1.AnchorifyNotarizationService/NotarizeHash \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"algorithm": "HASH_ALGORITHM_SHA256",
"hash": "IDjvWFSjiseUZTqUGy7DYVSh/NCqaM0oWS9LgTk/ayk=",
"name": "document.pdf"
}' package main
import (
"context"
"log"
"net/http"
"connectrpc.com/connect"
notarizationv1 "github.com/anchorify/platform/gen/proto/go/anchorify/notarization/v1"
"github.com/anchorify/platform/gen/proto/go/anchorify/notarization/v1/notarizationv1connect"
)
func main() {
client := notarizationv1connect.NewAnchorifyNotarizationServiceClient(
http.DefaultClient,
"https://api.anchorify.cloud",
connect.WithGRPC(), // Recommended: use gRPC protocol
)
hash := []byte{...} // Your SHA-256 hash (32 bytes)
name := "document.pdf"
resp, err := client.NotarizeHash(context.Background(), connect.NewRequest(¬arizationv1.NotarizeHashRequest{
Algorithm: notarizationv1.HashAlgorithm_HASH_ALGORITHM_SHA256,
Hash: hash,
Name: &name,
}))
if err != nil {
log.Fatal(err)
}
log.Printf("Notarization ID: %s", resp.Msg.Notarization.Id)
} {
"notarization": {
"id": "019c0e1a-d891-7f1f-ab6e-5588c46c2a4b",
"algorithm": "HASH_ALGORITHM_SHA256",
"hash": "IDjvWFSjiseUZTqUGy7DYVSh/NCqaM0oWS9LgTk/ayk=",
"status": "NOTARIZATION_STATUS_PENDING",
"createdAt": "2026-01-30T08:52:46.353991Z",
"name": "document.pdf"
}
} 4. Poll for status
Check the proof status. Once anchored on the blockchain, you can export your signed proof document.
curl -X POST https://api.anchorify.cloud/anchorify.notarization.v1.AnchorifyNotarizationService/GetNotarization \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"notarization_id": "019c0e1a-d891-7f1f-ab6e-5588c46c2a4b"
}' resp, err := client.GetNotarization(context.Background(), connect.NewRequest(¬arizationv1.GetNotarizationRequest{
NotarizationId: "019c0e1a-d891-7f1f-ab6e-5588c46c2a4b",
}))
if err != nil {
log.Fatal(err)
}
log.Printf("Status: %s", resp.Msg.Notarization.Status) {
"notarization": {
"id": "019c0e1a-d891-7f1f-ab6e-5588c46c2a4b",
"algorithm": "HASH_ALGORITHM_SHA256",
"hash": "IDjvWFSjiseUZTqUGy7DYVSh/NCqaM0oWS9LgTk/ayk=",
"status": "NOTARIZATION_STATUS_COMPLETED",
"timestampProof": { ... },
"blockchainProof": { ... },
"createdAt": "2026-01-30T08:52:46.353991Z",
"updatedAt": "2026-01-30T08:53:32.449111Z",
"notarizedAt": "2026-01-30T08:53:32.449111Z",
"name": "document.pdf"
}
} API reference
POST /anchorify.notarization.v1.AnchorifyNotarizationService/NotarizeHash Create a proof
Parameters: algorithm (required),
hash (required, base64), name (optional)
POST /anchorify.notarization.v1.AnchorifyNotarizationService/GetNotarization Get notarization status
Parameters: notarization_id (required)
POST /anchorify.notarization.v1.AnchorifyNotarizationService/ListNotarizations List notarizations
Parameters: page_size (optional,
max 100), page_token (optional)
POST /anchorify.notarization.v1.AnchorifyNotarizationService/Events Pro Real-time events stream
Parameters: last_event_id (optional),
event_types (optional), polling_interval_ms (optional, 100-30000)
Supported Hash Algorithms
Supported hash algorithms: SHA-256 (all plans), SHA-384 and SHA-512 (Pro and Enterprise). The hash must be provided as a base64-encoded string.
Async API
The API is asynchronous. Submit your hash and poll for status, or use webhooks (Pro+) for notifications.
Webhooks
Pro and Enterprise plans can configure webhooks to receive notifications when proofs are finalized. Pro
Signed Proof Documents
Pro and Enterprise plans can export signed proof documents containing all cryptographic evidence. Pro
Qualified timestamps
Enterprise plans can add eIDAS-qualified timestamps for enhanced legal standing. Enterprise