ProofSnap ProofSnap

Dokumentace API ProofSnap

API ProofSnap otevře libovolnou URL v prohlížeči na serverech ProofSnap a vrátí zapečetěný balíček důkazů: snímek obrazovky, HTML stránky, metadata, důkazní PDF a manifest SHA-256 podepsaný klíčem RSA-4096 a odeslaný k ukotvení v Bitcoinu přes OpenTimestamps. Základní URL: https://api.getproofsnap.com/v1. K autentizaci slouží klíč API předávaný jako token typu Bearer. Aktualizováno 23. října 2026.

Příklady níže načítají základní URL z proměnné prostředí: export PROOFSNAP_API_BASE=https://api.getproofsnap.com/v1

První kroky

  1. 1

    Vytvořte klíč API

    Přihlaste se do dashboardu, otevřete sekci „Pro vývojáře“, v ní „Klíče API“ a vytvořte klíč tlačítkem „+ Nový klíč“. Klíč se zobrazí jen jednou, proto si ho bezpečně uložte. Klíče začínají na ps_live_ nebo ps_test_. Dashboard otevíráte poprvé? Návod První kroky v dashboardu ProofSnap vás provede registrací, výběrem plánu i prvním záznamem. Další postupy najdete v návodech k dashboardu.

  2. 2

    Pořiďte první záznam

    Klíč předejte jako token typu Bearer. Volání okamžitě vrátí 202 s poli capture_id a status: "processing".

    curl -X POST "$PROOFSNAP_API_BASE/captures" \
      -H "Authorization: Bearer ps_live_..." \
      -H "Content-Type: application/json" \
      -d '{"url": "https://example.com"}'
  3. 3

    Získejte výsledek

    Opakovaně volejte GET /captures/{capture_id}, dokud status nebude completed nebo failed. Dokončený záznam obsahuje package_url (podepsaný odkaz na ZIP s platností až 24 hodin) a manifest_hash. Nový odkaz získáte opětovným načtením záznamu. Místo opakovaného dotazování můžete v options.webhook_url uvést endpoint HTTPS, na který přijde podepsaná (HMAC-SHA256) událost capture.completed nebo capture.failed.

    curl "$PROOFSNAP_API_BASE/captures/cap_..." \
      -H "Authorization: Bearer ps_live_..."
  4. 4

    Ověřte balíček

    POST /captures/{capture_id}/verify znovu přepočítá každý deklarovaný hash SHA-256 z uložených souborů, ověří podpis manifestu RSA-4096 a vrátí match, modified nebo invalid. Kdokoli také může offline spustit skripty ze složky verification/ v balíčku nebo vyhledat hash SHA-256 souboru manifest.json ve veřejném registru vydaných záznamů přes GET /ledger/{hash}. Ani jedno nevyžaduje klíč API.

    curl -X POST "$PROOFSNAP_API_BASE/captures/cap_.../verify" \
      -H "Authorization: Bearer ps_live_..."

Autentizace

Klíč API (API key) posílejte v hlavičce Authorization: Bearer ps_live_.... Klíče začínají na ps_live_ nebo ps_test_. Ostrý klíč vytváří placené záznamy, testovací klíč vytváří úplné zkušební balíčky s vodoznakem, které se neúčtují. Pokud účet nemá propojenou fakturaci, funguje ostrý klíč jako testovací. Bez klíče vrátí API 401 MISSING_API_KEY, při neznámém nebo zneplatněném klíči 401 INVALID_API_KEY. Klíče plánu Website Archive jsou jen pro čtení (403 PLAN_API_READ_ONLY). Tři endpointy klíč nevyžadují: GET /health, GET /ledger/{hash} a GET /matter-verify.

Nový účet začíná v sandboxu s 50 bezplatnými testovacími záznamy. Testovací režim je omezen na 200 jednotek denně na účet (den se počítá podle UTC, 429 TEST_MODE_DAILY_LIMIT), balíčky mají vodoznak „TEST - NOT FOR LEGAL USE“ (v českém PDF „TEST - NENÍ URČENO K PRÁVNÍMU POUŽITÍ“) a include_eidas vyžaduje ostrý klíč (403 EIDAS_REQUIRES_LIVE_KEY).

Webhooky

Uveďte options.webhook_url u jednotlivého požadavku nebo založte odběry webhooků pro celý účet přes POST /webhook-subscriptions. Webhooky se doručují ve formátu Standard Webhooks s hlavičkami webhook-id, webhook-timestamp a webhook-signature (v1, a za ním HMAC-SHA256 spočítaný z ID, časové značky a těla pomocí tajného kódu whsec_). Typy událostí: capture.completed, capture.failed, capture.anchor_confirmed, certify.completed, certify.failed, redaction.completed, redaction.failed, monitor.change_detected a schedule.paused. capture.anchor_confirmed a schedule.paused se doručují jen odběrům celého účtu. Každá událost je navíc 30 dní k dispozici v GET /events. Časový limit doručení je 10 sekund, neúspěšné doručení se opakuje po 5 minutách, 30 minutách, 2 hodinách, 8 hodinách a 24 hodinách. Po výměně tajného kódu se zprávy po dobu 24 hodin podepisují starým i novým kódem.

Zprávy odesílané na webhook_url uvedenou v požadavku se podepisují tajným kódem patřícím ke klíči API, kterým byl požadavek odeslán. Tento tajný kód pro podpis webhooků se zobrazí jen jednou, při vytvoření klíče v sekci „Pro vývojáře“ v dashboardu. Odběr má vlastní tajný kód, který se vrátí jen jednou při jeho vytvoření. Podpis počítejte z nezpracovaného (raw) těla požadavku ještě před jeho parsováním, odmítněte každou hodnotu webhook-timestamp, která se od času vašeho serveru liší o více než 5 minut, a každé webhook-id zpracujte jen jednou. Každá knihovna pro Standard Webhooks to zvládne za vás.

Limity požadavků a chyby

Placené požadavky (POST /captures, /captures/batch, /compare, /captures/{capture_id}/redact a /certify-hash, a dále ověření, právní blokace, exportní úlohy a importy) jsou omezeny pro každý účet v pevných oknech po 60 sekundách, společných pro všechny klíče API účtu i jeho relaci v dashboardu. Dávka nebo certifikace více hashů spotřebuje jednu jednotku za každou URL nebo hash. Počet jednotek na okno: sandbox 10, Developer 60, Startup 120, Growth 300, Legal Solo 60, Legal Company 120, Website Archive 60, Archive only 30. Odpovědi těchto endpointů obsahují hlavičky RateLimit-Policy a RateLimit i starší hlavičky X-RateLimit-*, odpověď 429 obsahuje navíc Retry-After.

Ostré záznamy se počítají do měsíčního limitu plánu (402 QUOTA_EXCEEDED). Na požadavky z účtu s předplatným po splatnosti odpovídá API kódem 402 PAYMENT_REQUIRED. Každý účet může najednou zpracovávat jen omezený počet záznamů (429 CONCURRENT_CAPTURE_LIMIT). Pošlete hlavičku Idempotency-Key a opakovaný pokus do 24 hodin vrátí původní výsledek s Idempotent-Replay: true, místo aby vznikl druhý záznam. Chyby se vracejí jako JSON s poli error.code, error.message a případně error.details. Když kontaktujete podporu, uveďte hodnotu hlavičky odpovědi X-Request-ID. Úplný seznam kódů najdete v referenci níže.

Endpointy v kostce

  • Záznamy: POST /captures, POST /captures/batch (2 až 50 URL), GET /captures, GET /captures/hosts, GET /captures/{capture_id}, PATCH a DELETE /captures/{capture_id}, POST /captures/{capture_id}/verify
  • Kontrola a úpravy: POST /captures/{capture_id}/redact (začernění), POST /compare, POST /certify-hash (až 100 hashů)
  • Automatizace: /scheduled-captures (automatické záznamy, včetně /runs), /webhook-subscriptions, GET /webhook-events/{capture_id}, GET /events, GET /captures/events
  • Právní agenda: /matters (spisy: zapečetění, export, sdílení), POST /legal-holds (právní blokace), /imports, /captures/export-jobs
  • Účet a veřejné endpointy: GET /whoami, GET /health, GET /ledger/{hash}, GET /matter-verify

Kompletní reference

Reference uvádí všechny endpointy s parametry, odpověďmi a schématy a je vygenerovaná ze specifikace OpenAPI 3. Specifikaci si stáhněte jako openapi.json (anglicky, pro generátory kódu) nebo openapi-cs.json (popisy v češtině). Chcete-li endpointy vyzkoušet bez psaní kódu, vytvořte si fork kolekce ProofSnap API v Postmanu. Oficiální SDK neexistuje: klienta si vygenerujte libovolným generátorem pro OpenAPI 3 a webhooky ověřujte kteroukoli knihovnou pro Standard Webhooks.