Vouch logovouch Documentation
REST API

POST /verify

Verify Web Proof

Under Development: This API is currently in development. Documentation and endpoints may change. For production use, please contact our team.

POST /api/v0/verify

Verify a previously generated Web Proof. The verification process:

  • Verifies the HTTPS transcript - Confirms the integrity of the recorded HTTP request/response data
  • Verifies the Notary's signature - Validates the cryptographic signature from the trusted notary service
  • Confirms data origin - Ensures the data comes from the expected domain specified in the original request
  • SSL certificate validation - Verifies the server's SSL certificate and its complete chain of authority
  • Extracts plain text transcript - Retrieves the verified HTTP request/response data for further processing
    • Automatic decoding - Handles chunked transfer encoding and gzip compression automatically
    • Raw transcript access - Provides hex-encoded raw transcript bytes for verification

Request Body Parameters

  • serialized_web_proof: Serialized Web Proof string to verify. Should be the presentationJson field from a previous /api/v0/prove response

Response Body

  • success: Boolean indicating whether the proof verification was successful
  • serverDomain: The domain name of the server that was contacted
  • notaryKeyFingerprint: Fingerprint of the notary's public key used for verification
  • request: Parsed and decoded HTTP request
    • headers: Array of [name, value] pairs
    • body: Decoded UTF-8 string (automatically decoded from chunked/gzip encoding)
    • method: HTTP method
    • raw: Raw transcript bytes as hex-encoded string
    • parsingSuccess: Boolean indicating if HTTP parsing was successful
    • parsingError: Parsing error message (only present if parsing failed)
  • response: Parsed and decoded HTTP response
    • headers: Array of [name, value] pairs
    • body: Decoded UTF-8 string (automatically decoded from chunked/gzip encoding)
    • status: HTTP status code
    • raw: Raw transcript bytes as hex-encoded string
    • parsingSuccess: Boolean indicating if HTTP parsing was successful
    • parsingError: Parsing error message (only present if parsing failed)
  • error: Error message if verification failed (only present on failure)

Example Response

{
  "success": true,
  "serverDomain": "api.example.com",
  "notaryKeyFingerprint": "abc123def456",
  "request": {
    "method": "POST",
    "headers": [
      ["host", "api.example.com"],
      ["content-type", "application/json"]
    ],
    "body": "{\"data\": \"test\"}",
    "raw": "504f5354202f6170692f6461",
    "parsingSuccess": true
  },
  "response": {
    "status": 200,
    "headers": [
      ["content-type", "application/json"]
    ],
    "body": "{\"hello\": \"world\"}",
    "raw": "485454502f312e312032303",
    "parsingSuccess": true
  }
}