{ "swagger" : "2.0", "info" : { "description" : "The following documentation describes the API v3 for OriginStamp. OriginStamp is a trusted timestamping service that uses the decentralized blockchain to store anonymous, tamper-proof timestamps for any digital content. OriginStamp allows users to timestamp files, emails, or plain text, and subsequently store the created hashes in the blockchain as well as retrieve and verify timetamps that have been committed to the blockchain.The trusted timestamping service of OriginStamp allows you to generate a hash fingerprint and prove that it was created at a specific point in time. If you are interested in integrating trusted timestamping into your own project, feel free to use our provided API. The following interactive documentation describes the interfaces and supports your integration. With this documentation you are able to try out the different requests and see the responses. For the authorization, add your API key to the Authorization header of your request.

Timestamping Steps

  1. Determine Hash: Calculate the SHA-256 of your record using a cryptographic library.
  2. Create Timestamp: Create a timestamp and add meta information to index it, e.g. a comment. You can also request a notification (email or webhook) once the tamper-proof timestamp has been created.
  3. Archive original file: Since we have no access to your original data, you should archive it because the timestamp is only valid in combination with the original file.
  4. Check Timestamp Status: Since the timestamps are always transmitted to the blockchain network at certain times, i.e. there is a delay, you can check the status of a hash and thus get the timestamp information.
  5. Get Timestamp Proof: As soon as the tamper-proof timestamp has been generated, you should archive the proof (Merkle Tree), which we created in our open procedure, together with the original file. With this proof, the existence of the file can be verified independently of OriginStamp. Here you can choose if the raw proof (xml) is sufficient proof or if you want to have a certificate (pdf).

Installation Notes

", "version" : "3.0", "title" : "OriginStamp API Documentation", "contact" : { "name" : "OriginStamp", "url" : "https://originstamp.com", "email" : "mail@originstamp.com" } }, "host" : "api.originstamp.com", "basePath" : "/", "tags" : [ { "name" : "timestamp", "description" : "Interfaces to submit timestamps and check their status." }, { "name" : "proof", "description" : "Interfaces for downloading and requesting the timestamp proofs and certificates. The verification of a timestamp independent from OriginStamp is possible. Our guide for the verification can be found here: https://docs.originstamp.com/howto/verification_without_OriginStamp.html" }, { "name" : "bulk", "description" : "Interfaces to submit multiple timestamps at once and check their status." }, { "name" : "webhook", "description" : "Interfaces for registering webhooks, receiving test webhook, and getting webhook information." }, { "name" : "scheduler", "description" : "Interface for next submission times and crypto currency information." }, { "name" : "API Key", "description" : "Interfaces to query API key information." } ], "paths" : { "/v3/currencies/get" : { "get" : { "tags" : [ "scheduler" ], "summary" : "Get active currencies", "description" : "Returns an array with all active currencies.", "operationId" : "getActiveCurrencies", "produces" : [ "application/json" ], "parameters" : [ { "name" : "Authorization", "in" : "header", "description" : "A valid API key is essential for authorization to handle the request.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "OK", "schema" : { "$ref" : "#/definitions/DefaultOfListOfCurrencyModel" }, "responseSchema" : { "$ref" : "#/definitions/DefaultOfListOfCurrencyModel" } } }, "security" : [ { "API Key Authorization" : [ "global" ] } ], "deprecated" : false } }, "/v3/timestamp/proof/url" : { "post" : { "tags" : [ "proof" ], "summary" : "Proof", "description" : "Generates the download URL for Proof (Seed / Merkle Tree). This interface must be used to obtain the proof or certificate of your tamper-proof timestamp. The parameters are as follows: Cryptocurrency (e.g., Bitcoin, Ethereum,..), type of evidence (e.g., certificate, merkle tree) and the associated hash. The entries are analyzed, e.g., whether a valid timestamp exists for the hash. Then the URL and the filename are returned, with which your proof can be saved. Please note that the download link is only valid for 5 minutes. When using cURL to fetch the proof with the download link make sure to specify \"application/octet-stream\" in the \"Accept\" header.", "operationId" : "getProof", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { "name" : "Authorization", "in" : "header", "description" : "A valid API key is essential for authorization to handle the request.", "required" : true, "type" : "string" }, { "in" : "body", "name" : "ProofRequestUrl", "description" : "Information needed to return the proof.", "required" : true, "schema" : { "$ref" : "#/definitions/ProofRequest" } } ], "responses" : { "200" : { "description" : "OK", "schema" : { "$ref" : "#/definitions/DefaultOfDownloadLinkResponse" }, "responseSchema" : { "$ref" : "#/definitions/DefaultOfDownloadLinkResponse" } } }, "security" : [ { "API Key Authorization" : [ "global" ] } ], "deprecated" : false } }, "/v3/webhook/information" : { "post" : { "tags" : [ "webhook" ], "summary" : "Webhook", "description" : "RESTful interface to receive the status of a webhook. Based on the input parameters (target URL, hash and currency), we look up the most recent entry in the notification queue.This method is intended to support the webhook integration.", "operationId" : "getWebhookStatus", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { "name" : "Authorization", "in" : "header", "description" : "A valid API key is essential for authorization to handle the request.", "required" : true, "type" : "string" }, { "in" : "body", "name" : "WebhookRequest", "description" : "DTO for registering webhook information.", "required" : true, "schema" : { "$ref" : "#/definitions/WebhookRequest" } } ], "responses" : { "200" : { "description" : "OK", "schema" : { "$ref" : "#/definitions/DefaultOfWebhookResponse" }, "responseSchema" : { "$ref" : "#/definitions/DefaultOfWebhookResponse" } } }, "security" : [ { "API Key Authorization" : [ "global" ] } ], "deprecated" : false } }, "/v3/webhook/register" : { "post" : { "tags" : [ "webhook" ], "summary" : "Webhook", "description" : "Method which allows a subscription for a webhook notification. If this method is called, a new entry is added to notification queue that is triggered as soon as a tamper-proof timestamp or the hash is created. An empty data payload means that the entry was created successfully.", "operationId" : "registerWebhookNotification", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { "name" : "Authorization", "in" : "header", "description" : "A valid API key is essential for authorization to handle the request.", "required" : true, "type" : "string" }, { "in" : "body", "name" : "WebhookRequest", "description" : "DTO for querying webhook information.", "required" : true, "schema" : { "$ref" : "#/definitions/WebhookRequest" } } ], "responses" : { "200" : { "description" : "OK", "schema" : { "$ref" : "#/definitions/DefaultOfVoid" }, "responseSchema" : { "$ref" : "#/definitions/DefaultOfVoid" } } }, "security" : [ { "API Key Authorization" : [ "global" ] } ], "deprecated" : false } }, "/v3/webhook/start" : { "post" : { "tags" : [ "webhook" ], "summary" : "Dev", "description" : "With this interface you can trigger manual webhook to see how a webhook looks like. Please use a hash, that was already timestamped before such as https://redir.originstamp.com/hash/9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 . Usually, the webhook is triggered as soon as the tamper-proof time stamp with the selected crypto currency has been created.", "operationId" : "triggerTimestampWebhook", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { "name" : "Authorization", "in" : "header", "description" : "A valid API key is essential for authorization to handle the request.", "required" : true, "type" : "string" }, { "in" : "body", "name" : "ManualWebhookRequest", "description" : "DTO for webhook request.", "required" : true, "schema" : { "$ref" : "#/definitions/ManualWebhookRequest" } } ], "responses" : { "200" : { "description" : "OK", "schema" : { "$ref" : "#/definitions/DefaultOfstring" }, "responseSchema" : { "$ref" : "#/definitions/DefaultOfstring" } } }, "security" : [ { "API Key Authorization" : [ "global" ] } ], "deprecated" : false } }, "/v4/timestamp/bulk/create" : { "post" : { "tags" : [ "bulk" ], "summary" : "Bulk Submission", "description" : "With this interface you can submit multiple hashes at once. If your API key is valid, your hashes are added to seeds and scheduled for timestamping. You are also able to submit additional information with every hash, such as a comment or notification target. If the hash already exists, the 'created' field in the response is set to 'false' and the notification(s) of the corresponding hash will be ignored.\nTo later query the status of any hash for a certain blockchain you can use the 'seed_id' field of its inner timestamp structure. This field can be used to query the timestamping status of the selected seed. This is recommended if a large number of hashes were transmitted in a certain time frame.\nOnce a hash is successfully created for a certain crypto currency, we can notify your desired target with the timestamp information (via POST Request). A webhook for a submitted hash is triggered as soon as the tamper-proof timestamp with the selected crypto currency has been created. ", "operationId" : "createBulkTimestamp", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { "name" : "Authorization", "in" : "header", "description" : "A valid API key is essential for authorization to handle the request.", "required" : true, "type" : "string" }, { "in" : "body", "name" : "TimestampBulkRequest", "description" : "DTO for the bulk hash submission. Add all relevant information concerning your hash submissions.", "required" : true, "schema" : { "$ref" : "#/definitions/TimestampBulkRequest" } } ], "responses" : { "200" : { "description" : "OK", "schema" : { "type" : "array", "items" : { "$ref" : "#/definitions/DefaultOfTimestampResponse" } }, "responseSchema" : { "type" : "array", "items" : { "$ref" : "#/definitions/DefaultOfTimestampResponse" } } } }, "security" : [ { "API Key Authorization" : [ "global" ] } ], "deprecated" : false } }, "/v4/timestamp/create" : { "post" : { "tags" : [ "timestamp" ], "summary" : "Submission", "description" : "With this interface you can submit your hash. If your API key is valid, your hash is added seeds and scheduled for timestamping. You are also able to submit additional information, such as a comment or notification target. If the hash already exists, the 'created' field in the response is set to 'false' and any notification(s) for this hash will be ignored.\nTo later query the status of the hash for a certain blockchain you can use the 'seed_id' field of its inner timestamp structure. This field can be used to query the timestamping status of the selected seed. This is recommended if a large number of hashes were transmitted in a certain time frame.\nOnce a hash is successfully created for a certain crypto currency, we can notify your desired target with the timestamp information (via POST Request). A webhook is triggered as soon as the tamper-proof timestamp with the selected crypto currency has been created. ", "operationId" : "createTimestamp", "consumes" : [ "application/json" ], "produces" : [ "application/json" ], "parameters" : [ { "name" : "Authorization", "in" : "header", "description" : "A valid API key is essential for authorization to handle the request.", "required" : true, "type" : "string" }, { "in" : "body", "name" : "TimestampRequest", "description" : "DTO for the hash submission. Add all relevant information concerning your hash submission.", "required" : true, "schema" : { "$ref" : "#/definitions/TimestampRequest" } } ], "responses" : { "200" : { "description" : "OK", "schema" : { "$ref" : "#/definitions/DefaultOfTimestampResponse" }, "responseSchema" : { "$ref" : "#/definitions/DefaultOfTimestampResponse" } } }, "security" : [ { "API Key Authorization" : [ "global" ] } ], "deprecated" : false } }, "/v4/timestamp/status/seed/{seed_id}" : { "get" : { "tags" : [ "bulk", "timestamp" ], "summary" : "Seed Status", "description" : "With this interface you can request the status for a certain seed. This is used when checking the status of previously submitted hashes and avoids sending individual status requests for each hash.", "operationId" : "getSeedStatus", "produces" : [ "application/json" ], "parameters" : [ { "name" : "Authorization", "in" : "header", "description" : "A valid API key is essential for authorization to handle the request.", "required" : true, "type" : "string" }, { "name" : "seed_id", "in" : "path", "description" : "ID of the timestamp seed", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "OK", "schema" : { "$ref" : "#/definitions/DefaultOfTimestampData" }, "responseSchema" : { "$ref" : "#/definitions/DefaultOfTimestampData" } } }, "security" : [ { "API Key Authorization" : [ "global" ] } ], "deprecated" : false } }, "/v4/timestamp/{hash_string}" : { "get" : { "tags" : [ "timestamp" ], "summary" : "Status", "description" : "This interface returns information of a certain hash read from the URL path. If the status of several hashes is to be checked, it is preferable to use the seed status interface. This reduces the required requests and can be tailored to a desired blockchain.\nAll 'created' fields are always set to false for a status request.", "operationId" : "getHashStatus", "produces" : [ "application/json" ], "parameters" : [ { "name" : "Authorization", "in" : "header", "description" : "A valid API key is essential for authorization to handle the request.", "required" : true, "type" : "string" }, { "name" : "hash_string", "in" : "path", "description" : "The hash in string representation.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "OK", "schema" : { "$ref" : "#/definitions/DefaultOfTimestampResponse" }, "responseSchema" : { "$ref" : "#/definitions/DefaultOfTimestampResponse" } } }, "security" : [ { "API Key Authorization" : [ "global" ] } ], "deprecated" : false } }, "/v3/api_key/usage" : { "get" : { "tags" : [ "API Key" ], "summary" : "Usage", "description" : "With this interface you can receive the current usage of your API key. The usage statistic refers to the associated account.", "operationId" : "getApiKeyUsage", "produces" : [ "*/*" ], "parameters" : [ { "name" : "Authorization", "in" : "header", "description" : "A valid API key is essential for authorization to handle the request.", "required" : true, "type" : "string" } ], "responses" : { "200" : { "description" : "OK", "schema" : { "$ref" : "#/definitions/Default«UsageResponse»" }, "responseSchema" : { "$ref" : "#/definitions/Default«UsageResponse»" } } }, "security" : [ { "API Key Authorization" : [ "global" ] } ], "deprecated" : false } } }, "securityDefinitions" : { "API Key Authorization" : { "type" : "apiKey", "name" : "Authorization", "in" : "header" } }, "definitions" : { "CurrencyModel" : { "type" : "object", "properties" : { "currency" : { "type" : "string", "description" : "Name of the currency (uppercase)" }, "currency_id" : { "type" : "integer", "format" : "int64", "description" : "ID of the currency, e.g. 0: Bitcoin\n1: Ethereum" } }, "title" : "CurrencyModel", "description" : "Contains the currency ID and currency name" }, "DefaultOfDownloadLinkResponse" : { "type" : "object", "properties" : { "data" : { "description" : "Generic response object which contains the response data, e.g. timestamp information.", "$ref" : "#/definitions/DownloadLinkResponse" }, "error_code" : { "type" : "integer", "format" : "int32", "description" : "Contains the error of the request. If the error code is 0, everything is fine." }, "error_message" : { "type" : "string", "description" : "Contains the error message, that possibly occurred. If it is empty, everything is fine." } }, "title" : "DefaultOfDownloadLinkResponse", "description" : "The default service response object uses error code and message to indicate errors. These errors are handled by the client." }, "DefaultOfListOfCurrencyModel" : { "type" : "object", "properties" : { "data" : { "type" : "array", "description" : "Generic response object which contains the response data, e.g. timestamp information.", "items" : { "$ref" : "#/definitions/CurrencyModel" } }, "error_code" : { "type" : "integer", "format" : "int32", "description" : "Contains the error of the request. If the error code is 0, everything is fine." }, "error_message" : { "type" : "string", "description" : "Contains the error message, that possibly occurred. If it is empty, everything is fine." } }, "title" : "DefaultOfListOfCurrencyModel", "description" : "The default service response object uses error code and message to indicate errors. These errors are handled by the client." }, "DefaultOfTimestampData" : { "type" : "object", "properties" : { "data" : { "description" : "Generic response object which contains the response data, e.g. timestamp information.", "$ref" : "#/definitions/TimestampData" }, "error_code" : { "type" : "integer", "format" : "int32", "description" : "Contains the error of the request. If the error code is 0, everything is fine." }, "error_message" : { "type" : "string", "description" : "Contains the error message, that possibly occurred. If it is empty, everything is fine." } }, "title" : "DefaultOfTimestampData", "description" : "The default service response object uses error code and message to indicate errors. These errors are handled by the client." }, "DefaultOfTimestampResponse" : { "type" : "object", "properties" : { "data" : { "description" : "Generic response object which contains the response data, e.g. timestamp information.", "$ref" : "#/definitions/TimestampResponse" }, "error_code" : { "type" : "integer", "format" : "int32", "description" : "Contains the error of the request. If the error code is 0, everything is fine." }, "error_message" : { "type" : "string", "description" : "Contains the error message, that possibly occurred. If it is empty, everything is fine." } }, "title" : "DefaultOfTimestampResponse", "description" : "The default service response object uses error code and message to indicate errors. These errors are handled by the client." }, "DefaultOfVoid" : { "type" : "object", "properties" : { "error_code" : { "type" : "integer", "format" : "int32", "description" : "Contains the error of the request. If the error code is 0, everything is fine." }, "error_message" : { "type" : "string", "description" : "Contains the error message, that possibly occurred. If it is empty, everything is fine." } }, "title" : "DefaultOfVoid", "description" : "The default service response object uses error code and message to indicate errors. These errors are handled by the client." }, "DefaultOfWebhookResponse" : { "type" : "object", "properties" : { "data" : { "description" : "Generic response object which contains the response data, e.g. timestamp information.", "$ref" : "#/definitions/WebhookResponse" }, "error_code" : { "type" : "integer", "format" : "int32", "description" : "Contains the error of the request. If the error code is 0, everything is fine." }, "error_message" : { "type" : "string", "description" : "Contains the error message, that possibly occurred. If it is empty, everything is fine." } }, "title" : "DefaultOfWebhookResponse", "description" : "The default service response object uses error code and message to indicate errors. These errors are handled by the client." }, "DefaultOfstring" : { "type" : "object", "properties" : { "data" : { "type" : "string", "description" : "Generic response object which contains the response data, e.g. timestamp information." }, "error_code" : { "type" : "integer", "format" : "int32", "description" : "Contains the error of the request. If the error code is 0, everything is fine." }, "error_message" : { "type" : "string", "description" : "Contains the error message, that possibly occurred. If it is empty, everything is fine." } }, "title" : "DefaultOfstring", "description" : "The default service response object uses error code and message to indicate errors. These errors are handled by the client." }, "DownloadLinkResponse" : { "type" : "object", "properties" : { "download_url" : { "type" : "string", "example" : "https://example.com/download", "description" : "URL to download file." }, "file_name" : { "type" : "string", "example" : "file.pdf", "description" : "File name of downloaded file." }, "file_size_bytes" : { "type" : "integer", "format" : "int64", "example" : 1024, "description" : "File size in bytes." } }, "title" : "DownloadLinkResponse", "description" : "DTO for the download link of a proof request." }, "ManualWebhookRequest" : { "type" : "object", "required" : [ "hash", "webhook_url" ], "properties" : { "hash" : { "type" : "string", "example" : "2c5d36be542f8f0e7345d77753a5d7ea61a443ba6a9a86bb060332ad56dba38e", "description" : "SHA-256 Hash in Hex representation." }, "webhook_url" : { "type" : "string", "example" : "http://localhost:80/originstamp/webhook", "description" : "The target URL to which we send the timestamp information of the requested hash via a post request." } }, "title" : "ManualWebhookRequest", "description" : "Request object for a manual webhook request." }, "Notification" : { "type" : "object", "required" : [ "currency", "notification_type", "target" ], "properties" : { "currency" : { "type" : "integer", "format" : "int32", "example" : 0, "description" : "0: Bitcoin" }, "notification_type" : { "type" : "integer", "format" : "int32", "example" : 0, "description" : "0: notify via email \n1: notify a webhook" }, "target" : { "type" : "string", "example" : "originstamp@trashmail.com", "description" : "Depending on the notification type, specify the target for the notification (e.g. mail address or webhook URL). The webhook URL will receive a POST request after timestamp was successfully created." } }, "title" : "Notification", "description" : "DTO object for notifications." }, "ProofRequest" : { "type" : "object", "required" : [ "currency", "hash_string", "proof_type" ], "properties" : { "currency" : { "type" : "integer", "format" : "int32", "description" : "0: Bitcoin\n1: Ethereum\n2: AION\n100: Südkurier" }, "hash_string" : { "type" : "string", "example" : "2c5d36be542f8f0e7345d77753a5d7ea61a443ba6a9a86bb060332ad56dba38e", "description" : "Hash in HEX representation for which the proof should be created. We allow the use of SHA-256. Note: We handle the hashes in lower-case." }, "proof_type" : { "type" : "integer", "format" : "int32", "example" : 0, "description" : "Specifies which type of file should be returned. Possible value(s):\n\n0: proof with a seed file (txt) or proof with a merkle tree (xml)\n1: proof with a PDF file\n\n Other formats will follow." } }, "title" : "ProofRequest", "description" : "Request object for proof request." }, "TimestampBulkRequest" : { "type" : "object", "required" : [ "timestamps" ], "properties" : { "timestamps" : { "type" : "array", "description" : "Array of timestamp request DTOs which will be timestamped.", "items" : { "$ref" : "#/definitions/TimestampRequest" } } }, "title" : "TimestampBulkRequest", "description" : "Request object for bulk timestamping request." }, "TimestampData" : { "type" : "object", "properties" : { "currency_id" : { "type" : "integer", "format" : "int32", "description" : "0: Bitcoin" }, "private_key" : { "type" : "string", "description" : "The private key represents the top hash in the Merkle Tree (see https://en.wikipedia.org/wiki/Merkle_tree ) or the hash of all hashes in the transaction." }, "seed_id" : { "type" : "string", "description" : "ID of associated seed which can be used to request separate seed information." }, "submit_status" : { "type" : "integer", "format" : "int64", "description" : "The submit status of the hash: \n\n0: the hash was not broadcasted yet \n1: the hash was included into a transaction and broadcasted to the network, but not included into a block \n2: the transaction was included into the latest block \n3: the timestamp for your hash was successfully created." }, "timestamp" : { "type" : "integer", "format" : "int64", "description" : "The date is returned in the following format: [ms] since 1.1.1970 (unix epoch), timezone: UTC. This is a true timestamp." }, "transaction" : { "type" : "string", "description" : "If available: the transaction hash of the timestamp." } }, "title" : "TimestampData", "description" : "DTO for the timestamp data." }, "TimestampRequest" : { "type" : "object", "required" : [ "hash" ], "properties" : { "comment" : { "type" : "string", "example" : "test", "description" : "You can add a short comment (max. 256 characters) which can be used for indexing and searching (public)." }, "hash" : { "type" : "string", "example" : "2c5d36be542f8f0e7345d77753a5d7ea61a443ba6a9a86bb060332ad56dba38e", "description" : "Hash in HEX representation. We suggest to use SHA-256. This hash will be aggregated and included into the blockchain." }, "notifications" : { "type" : "array", "description" : "Add a notification/notification list to your submission. Our system will notify the specified target with the timestamp information.", "items" : { "$ref" : "#/definitions/Notification" } } }, "title" : "TimestampRequest", "description" : "request object for a timestamp request." }, "TimestampResponse" : { "type" : "object", "properties" : { "comment" : { "type" : "string", "description" : "The comment which was added in the submission of the hash." }, "created" : { "type" : "boolean", "description" : "Field is set to true if it is a novel hash.If the flag is false, the hash was already submitted before." }, "date_created" : { "type" : "integer", "format" : "int64", "description" : "The time when your hash was submitted to OriginStamp. The date is returned in the following format: [ms] since 1.1.1970 (unix epoch), timezone: UTC. This is not considered as a true timestamp." }, "hash_string" : { "type" : "string", "description" : "The submitted hash in hex representation." }, "timestamps" : { "type" : "array", "description" : "Contains all the timestamp data of your hash until now.", "items" : { "$ref" : "#/definitions/TimestampData" } } }, "title" : "TimestampResponse", "description" : "Response object for the timestamp response. Create, Status and Webhookshare the same object. This saves customers additional implementation work, as the requests or data only have to be understood once.The difference is that the webhook is only triggered as soon as a tamper-proof timestamp exists." }, "WebhookRequest" : { "type" : "object", "properties" : { "currency" : { "type" : "integer", "format" : "int32", "example" : 0, "description" : "Currency ID for which the webhook should be executed. Possible values:\n0: Bitcoin\n1: Ethereum\n2: AION\n100: Südkurier" }, "hash" : { "type" : "string", "example" : "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "description" : "Hash (SHA-256 in HEX) for which a notification is requested." }, "target" : { "type" : "string", "example" : "https://originstamp.com/webhook", "description" : "Target address to which a POST request should be executed." } }, "title" : "WebhookRequest", "description" : "Request object for a webhook request." }, "WebhookResponse" : { "type" : "object", "properties" : { "currency" : { "type" : "integer", "format" : "int32", "description" : "Currency for which the webhook is triggered, e.g. \n0: Bitcoin\n1: Ethereum" }, "executed" : { "type" : "boolean", "description" : "Shows if the webhook was executed." }, "hash" : { "type" : "string", "description" : "The submitted hash in hex representation." }, "success" : { "type" : "boolean", "description" : "Indicates whether the webhook was executed successfully or not." }, "tries" : { "type" : "integer", "format" : "int32", "description" : "Returns the number of tries for the webhook execution." } }, "title" : "WebhookResponse", "description" : "response object for a webhook request. Contains only the most recent webhook information for target URL, hash and currency." }, "Default«UsageResponse»" : { "type" : "object", "properties" : { "data" : { "description" : "Generic response object which contains the response data, e.g. timestamp information.", "$ref" : "#/definitions/UsageResponse" }, "error_code" : { "type" : "integer", "format" : "int32", "description" : "Contains the error of the request. If the error code is 0, everything is fine." }, "error_message" : { "type" : "string", "description" : "Contains the error message, that possibly occurred. If it is empty, everything is fine." } }, "title" : "Default«UsageResponse»", "description" : "The default service response object uses error code and message to indicate errors. These errors are handled by the client." }, "UsageResponse" : { "type" : "object", "properties" : { "certificate_per_month" : { "type" : "integer", "format" : "int64", "description" : "Total number of certificates available per month." }, "consumed_certificates" : { "type" : "integer", "format" : "int64", "description" : "Number of certificates requested for the current month." }, "consumed_credits" : { "type" : "number", "description" : "Number of used credits for the current month." }, "consumed_timestamps" : { "type" : "integer", "format" : "int64", "description" : "Number of timestamps created for the current month." }, "credits_per_month" : { "type" : "number", "description" : "Represents the total number of credits per month." }, "limitation_type" : { "type" : "integer", "format" : "int32", "description" : "Determines which usage metric is applied (0 = credits, 1 = timestamps)." }, "remaining_credits" : { "type" : "number", "description" : "Remaining number of credits for the current month." }, "timestamps_per_month" : { "type" : "integer", "format" : "int64", "description" : "Total number of timestamps available per month." } }, "title" : "UsageResponse", "description" : "Usage metric for this month." } } }