Zum Inhalt
Myra Online-Hilfe Stand · 21.08.2026

Anfrage mittels Signature an die API stellen

Note

Das folgende Beispiel zeigt ein Bash-Script für Linux. Für andere Betriebssysteme ändern Sie bitte die Angaben entsprechend den spezifischen Anforderungen.

Für eine Authentifizierung mittels Signature empfehlen wir die Verwendung von Shell-Skripten für eine einfache und schnelle Erstellung von API-Anfragen.

In den folgenden Beispielen erklären wir Ihnen, wie Sie ein Bash-Skript für GET- und DELETE-Anfragen und für POST- und PUT-Anfragen erstellen können.

Bash-Skripte für GET- und DELETE-Anfragen

Um GET- oder DELETE-Anfragen an die API zu senden, müssen Sie ein Bash-Skript ohne BODY und mit der folgenden Struktur erstellen:

=== Start ===
#!/bin/bash
set -euo pipefail

=== Credentials ===
API_KEY="<your API key>"
API_SECRET="<your secret>"

=== Request target ===
HOST="https://apiv2.myracloud.com/"
URI="<Path to the resource to be requested, see end points>"
METHOD="<GET or DELETE>"
CONTENT_TYPE="application/json"
BODY=""

=== Date (with colon in timezone, like moment().format()) ===
DATE="$(date +"%Y-%m-%dT%H:%M:%S%:z")"

=== MD5 of body ===
if [[ -z "$BODY" ]]; then
  BODY_MD5="d41d8cd98f00b204e9800998ecf8427e"
else
  BODY_MD5="$(printf '%s' "$BODY" | md5sum | awk '{print $1}')"
fi

=== Signing string ===
SIGNING_STRING="${BODY_MD5}#${METHOD}#${URI}#${CONTENT_TYPE}#${DATE}"

=== Keys (CryptoJS semantics: hex string keys) ===
DATE_KEY_HEX="$(printf '%s' "$DATE" \
  | openssl dgst -sha256 -mac HMAC -macopt key:"MYRA${API_SECRET}" -hex \
  | awk '{print $2}')"      
SIGNING_KEY_HEX="$(printf '%s' "myra-api-request" \
  | openssl dgst -sha256 -mac HMAC -macopt key:"$DATE_KEY_HEX" -hex \
  | awk '{print $2}')"

=== Signature ===
SIGNATURE="$(printf '%s' "$SIGNING_STRING" \
  | openssl dgst -sha512 -mac HMAC -macopt key:"$SIGNING_KEY_HEX" -binary \
  | base64 | tr -d '\n')"

=== Debug (safe) ===
echo "DATE:           $DATE"
echo "SIGNING_STRING: $SIGNING_STRING"
echo "Authorization:  MYRA ${API_KEY}:${SIGNATURE}"

=== Request ===
curl -vvv "${HOST}${URI}" \
  -H "Content-Type: ${CONTENT_TYPE}" \
  -H "Date: ${DATE}" \
  -H "Authorization: MYRA ${API_KEY}:${SIGNATURE}" \
  -X "$METHOD"

Bash-Skripte für POST- und PUT-Anfragen

Um POST- oder PUT-Anfragen an die API zu senden, müssen Sie ein Bash-Skript mit BODY und den erforderlichen Objektinformationen für den Endpunkt darin, erstellen.

=== Start ===
#!/bin/bash
set -euo pipefail

=== Credentials ===
API_KEY="<your API key>"
API_SECRET="<your secret>"

=== Request target ===
HOST="https://apiv2.myracloud.com/"
URI="<Path to the resource to be requested, see end points>"
METHOD="<POST or PUT>"
CONTENT_TYPE="application/json"

=== JSON body with the needed VO object with relevant attributes for the request. ===
BODY='{
        "<attribute1>":"<value>",
        "<attribute2>":"<value>",
        "<attribute3>":"<value>"
      },'

=== Date (with colon in timezone, like moment().format()) ===
DATE="$(date +"%Y-%m-%dT%H:%M:%S%:z")"

=== MD5(body) ===
BODY_MD5="$(printf '%s' "$BODY" | md5sum | awk '{print $1}')"

=== Signing string ===
SIGNING_STRING="${BODY_MD5}#${METHOD}#${URI}#${CONTENT_TYPE}#${DATE}"

=== HMAC (CryptoJS semantics: hex-string keys) ===
DATE_KEY_HEX="$(printf '%s' "$DATE" \
  | openssl dgst -sha256 -mac HMAC -macopt key:"MYRA${API_SECRET}" -hex \
  | awk '{print $2}')"      
SIGNING_KEY_HEX="$(printf '%s' "myra-api-request" \
  | openssl dgst -sha256 -mac HMAC -macopt key:"$DATE_KEY_HEX" -hex \
  | awk '{print $2}')"      
SIGNATURE="$(printf '%s' "$SIGNING_STRING" \
  | openssl dgst -sha512 -mac HMAC -macopt key:"$SIGNING_KEY_HEX" -binary \
  | base64 | tr -d '\n')"

=== Debug ===
echo "DATE:           $DATE"
echo "SIGNING_STRING: $SIGNING_STRING"
echo "Authorization:  MYRA ${API_KEY}:${SIGNATURE}"

=== Request (verbose) ===
curl -vvv "${HOST}${URI}" \
  -H "Content-Type: ${CONTENT_TYPE}" \
  -H "Date: ${DATE}" \
  -H "Authorization: MYRA ${API_KEY}:${SIGNATURE}" \
  --data-binary "$BODY"