PutData - Add Data

Write the data attached to the request to the distributed ledger.

/api/v1/single/

Request

Field

Type

Description

Content-Type

String

application/octet-stream

X-ALTR-METADATA

String

Optional metadata to be associated with the request.

Authorization

String

chainAPI's authorization protocol relies on a properly formatted authorization header. The accepted format is: "ALTR " + api_key + ":" + signature. signature is a base64-encoded, SHA-256 hash that uses the API key's secret as the key for the hash function. The payload being hashed must follow the format: HTTP-METHOD + "\n" + RESOURCE + "\n" + DATE + "\n". DATE must match X-ALTR-DATE, and RESOURCE must be empty for a POST request. An example payload for a POST request is: "POST\n\n01-01-1970 00:00:00\n"

X-ALTR-DATE

Date

The datetime used in the authorization signature. If this is more than 15 minutes past the server's internal clock, the request will be rejected.

Content-Length

Number

Number
If known, the length of the data being sent to the server. If given alongside X-Content-Length-Hint, Content-Length will be used in evaluating the request.

X-Content-Length-Hint

Number

If the size of the request is unkown, X-Content-Length-Hint may be provided. If the hint is less than 3kb, and the request ends up being larger than that, at most 3kb will be written to the distributed ledger.

date = new Date();
payload = 'POST\n\n' + date + '\n';
API_KEY = <your API key>;
SECRET = <your API secret>;
{
    "X-ALTR-DATE": date,
    "Authorization": "ALTR " + API_KEY + ":" + base64(hmac-sha256(payload, SECRET)),
    "X-ALTR-METADATA": "<metadata>",
    "X-Content-Length-Hint": 500
}

200

Field

Type

Description

referenceToken

String

Token used to access the data that is being written to the distributed ledger.

HTTP/1.1 200 OK
{
    "success": true
    "response": {
        "data": {
            "referenceToken": <token>
        }
    }
}

Error Codes

Code

Name

Description

400

bad_request

Organization data cap exceeded.

401

unauthorized

The API key could not be authenticated.

403

forbidden

API key does not have write permissions.

503

internal_error

The webserver encountered an unexpected error.

HTTP/1.1 503 Internal Server Error
{
  "success": false,
  "response": {
      "error_type": "internal_error",
      "error_message": "Unable to process request at this time."
  }
}
HTTP/1.1 400 Bad Request
{
  "success": false,
  "response": {
      "error_type": "bad_request",
      "error_message": "Organization data cap exceeded"
  }
}
HTTP/1.1 401 Authentication Required
{
  "success": false,
  "response": {
      "error_type": "unauthorized",
      "error_message":  "API key must be included in header."
  }
}
HTTP/1.1 403 Forbidden
{
  "success": false,
  "response": {
      "error_type": "forbidden",
      "error_message":  "API key does not have write permission."
  }
}