This endpoint takes a hash and verify if its confirmated on Bitcoin blockchain.
Verify a Document
Check if a document's hash has been confirmed on the Bitcoin blockchain.
- Endpoint:
POST /proof/verification
- Description: This endpoint verifies if a provided hash corresponds to a document that has been confirmed on the blockchain.
Headers
x-access-token
(string, required): Your API token.
Request Body
- Content-Type:
application/json
- Schema:
{ "hash": "5ce32a6ce7fa488d055c2eb5e19bf2f5de7454af28bb951b96ad6d833be873c2" }
hash
(string, required): The hexadecimal hash string of the file you want to verify.
Response
-
200 OK
The specified hash was found, and its verification status is returned.For unconfirmed documents (
confirmed: false
):{ "ok": true, "totalDocuments": 1, "documents": [ { "hash": "870c8bcd4278ddfc1f8bd5769190b5513f05bed50f32b52f711ffbdf4f544d45", "name": "example-document.pdf", "creation_date": "2024-03-27T18:29:17.684Z", "confirmed": false, "confirmed_at": null, "url": "https://verify.simpleproof.com/SQ.....", "file_downloadable": true, "file_download_url": "https://example-storage.s3........", "ots_download_url": "https://example-storage.s3.u,,,...", "download_url_expiration_time": 1800 } ] }
For confirmed documents (
confirmed: true
):{ "ok": true, "totalDocuments": 1, "documents": [ { "hash": "5ce32a6ce7fa488d055c2eb5e19bf2f5de7454af28bb951b96ad6d833be873c2", "name": "confirmed-document.csv", "creation_date": "2024-03-20T14:15:30.123Z", "confirmed": true, "block": 842150, "confirmed_at": "2024-03-20T14:45:22.000Z", "url": "https://verify.simpleproof.com/SQS/....", "file_downloadable": false, "file_download_url": "", "ots_download_url": "https://example-storage.s3......", "download_url_expiration_time": 1800 } ] }
Response Fields
-
ok
(boolean): Indicates if the request was successful -
totalDocuments
(integer): Number of documents found -
documents
(array): Array of document objects with the following fields:hash
(string): The document's hashname
(string): Original filenamecreation_date
(string): ISO 8601 timestamp when the document was submittedconfirmed
(boolean): Whether the document has been confirmed on the blockchainurl
(string): Verification page URLdownload_url_expiration_time
(integer): Expiration time for download URLs in seconds
Additional fields when
confirmed: false
:confirmed_at
(null): Will be null for unconfirmed documentsfile_downloadable
(boolean): Whether the original file can be downloadedfile_download_url
(string): Direct download URL for the original file (if downloadable)ots_download_url
(string): Download URL for the OpenTimestamps proof file
Additional fields when
confirmed: true
:block
(integer): Bitcoin block number where the proof was confirmedconfirmed_at
(string): ISO 8601 timestamp when the document was confirmedfile_downloadable
(boolean): Whether the original file can be downloadedfile_download_url
(string): Direct download URL for the original file (empty if not downloadable)ots_download_url
(string): Download URL for the OpenTimestamps proof file
Important Notes
-
The response structure differs based on the confirmation status of the document
-
Confirmed documents typically only provide the OpenTimestamps proof file for download
-
Bitcoin transaction information is not provided in the API response. To view the actual Bitcoin transaction details, you must use the OTS (OpenTimestamps) file with an OTS Navigator tool
-
All timestamps are returned in ISO 8601 format
-
Presigned hash verification URLs are valid for 1800 seconds (30 minutes)
-
400 Bad Request
The request was invalid.{ "ok": false, "msg": "Something went wrong." }
-
500 Internal Server Error
The server encountered an error during verification.{ "ok": false, "msg": "Internal server error, can't continue processing the file." }
Error Handling
All error responses follow a standard format:
{
"ok": false,
"msg": "Error message describing what went wrong."
}
- 400 Bad Request: The request was invalid or malformed.
- 401 Unauthorized: Authentication failed due to invalid or missing API token.
- 429 Too Many Requests: Rate limit exceeded. Reduce the frequency of requests.
- 500 Internal Server Error: An error occurred on the server.