Skip to main content

POST /v1/timestamp

Request an RFC 3161 timestamp for the current Merkle root.

Example

curl -X POST http://localhost:7600/v1/timestamp

Response

{
  "merkle_root": "a1b2c3d4e5f6...",
  "timestamp": "2026-02-17T12:00:00Z",
  "tsa": "freetsa.org",
  "token": "base64-encoded-timestamp-token"
}

GET /v1/timestamps

List stored timestamps.

Example

curl http://localhost:7600/v1/timestamps

Response

[
  {
    "merkle_root": "a1b2c3d4e5f6...",
    "timestamp": "2026-02-17T12:00:00Z",
    "tsa": "freetsa.org",
    "tree_size": 1500
  }
]

GET /v1/timestamps/verify

Verify the latest timestamp against the current Merkle root.

Example

curl http://localhost:7600/v1/timestamps/verify

Response

{
  "valid": true,
  "merkle_root": "a1b2c3d4e5f6...",
  "tsa_time": "2026-02-17T12:00:00Z",
  "tree_size": 1500,
  "error": "",
  "current_root_matches": true
}
FieldTypeDescription
validbooleanWhether the timestamp signature is valid
merkle_rootstringThe Merkle root that was timestamped
tsa_timestringTime reported by the TSA
tree_sizeintegerNumber of events in the tree at timestamp time
errorstringError message if verification failed
current_root_matchesbooleanWhether the current Merkle root matches the timestamped root