RESTful API

Bemerkung

Stellen Sie sicher, dass alle Anfragen per https gestellt werden. Unverschlüsselte http Anfragen werden abgewiesen.

hash

POST /api/v1/hash

Fügt einen oder mehrere neue Einträge hinzu. Liefert die gespeicherte Zeit und, ob der Hash neu ist. Der Wert von invaliden Hashes ist „invalid Hash“. Falls bei der Anfrage kein valider Hash übergeben wurde, wird Fehlercode 422 zurück gegeben.

Die Einträge können sowohl als json im post body übergeben werden, als auch im „form-format“.

{
    hash: [
        "deadbeef6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e",
        "4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da"
        ]
}

Beispiel Curl:

curl --user $API_KEY:unused https://notar.direct/api/v1/hash -d "hash=deadbeef6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e" -d "hash=4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da" -d "hash=not_a_hash"-X POST

Beispiel Python:

import requests
from requests.auth import HTTPBasicAuth

api_key = "your_API_key"
hashes = ["deadbeef6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e",
          "4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da",
          "not_a_hash"]

r = requests.post("https://notar.direct/api/v1/hash",
                  auth=HTTPBasicAuth(api_key, ''),
                  json={"hash": hashes})

assert(r.status_code == 201)

Beispiel JavaScript/jQuery:

function ajaxPost(uri, data)
{
    var token = "Your_API_Key";
    var request = {
        url: uri,
        type: "POST",
        contentType: "application/json",
        accepts: "application/json",
        cache: false,
        dataType: 'json',
        data: JSON.stringify(data),
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Authorization",
                                 "Basic " + btoa(token+":x"));
        }
    };
    return $.ajax(request);
}

var hashes = ["deadbeef6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e",
              "4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da",
              "not_a_hash"];

ajaxPost("https://notar.direct/api/v1/hash", hashes);

Response:

{
    "deadbeef6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58": {
        "date": "2015-11-15T09:39:08",
        "new": false
    },
    "4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da": {
        "date": "2015-11-15T09:33:12",
        "new": false
    }
    "not_a_hash": "invalid Hash"
}
Parameters
  • hash (string) – Hash der Datei

Request Headers
Status Codes

check

GET /api/v1/check

Sucht den timestamp zu dem gegebenen hash, mehrere können gleichzeitig abgefragt werden.

Beispiel Curl:

curl --user $API_KEY:unused https://notar.direct/api/v1/check -d "hash=4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da&hash=a99a315b6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e" -X GET

Beispiel Python:

import requests
from requests.auth import HTTPBasicAuth

api_key = "Your_API_Key"
hashes = [
            "4c6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da",
            "a99a315b6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e"
         ]

r = requests.get("https://notar.direct/api/v1/check",
                 auth=HTTPBasicAuth(api_key, ''),
                 params={"hash": hashes})

assert(r.status_code == 200)

Response:

{
    "4b6cb9cb44bf441d256813e3eef602d4319380b04c1e05087b3163fa66cff6da": "",
    "a99a315b6d6ebd39c8107d219b46832ca31530328efc43dc41f37aec1586f58e": "2015-12-24T08:43:39.855220+00:00"
}

Zurückgegeben wird ein JSON struct, jeden abgefragten hash enthält. Falls der abfragende User diesen gespeichert hat, wird das Datum der ersten Speicherung dazu ausgegeben, wenn er unbekannt fuer diesen User ist, wird ein leerer String ausgegeben.

Parameters
  • hash (string) – der sha256 Hash der Datei, kann mehrfach angehängt werden, damit mehrere Hashes abgefragt werden

Request Headers
Status Codes

token

GET /api/v1/token

Liefert (nach erfolgreicher Authentifizierung) ein 10 Minuten gültiges Token, das zur Authentifizierung genutzt werden kann.

curl --user $API_KEY:unused https://notar.direct/api/v1/token -X GET
Request Headers
Status Codes

upload

GET /api/v1/upload

Lädt eine oder mehrere Dateien hoch, die auf dem Server gespeichert werden.

curl --user $API_KEY:unused https://notar.direct/api/v1/upload F file1=@/path/to/file.pdf -F file2=@/path/to/second/file.png -X POST
Request Headers
Status Codes
  • 201 Created – Dateien wurden erfolgreich gespeichert

  • 401 Unauthorized – wenn die Authentifizierung fehlschlägt

  • 404 Not Found – wenn diese Mandantenkennung nicht existiert oder die Speicherung fehlschlägt