ORDIUS TECHNOLOGIES

Ordius Developer API

Integrate Ordius in your builds.
Evaluate document integrity in real time.

Integrate deterministic document integrity into your applications and generate stable Ordius IDs through a secure hosted REST API. Build document integrity verification directly into applications, workflows, and enterprise systems.

Why Ordius

Document Integrity

Ordius proprietary technology establishes a deterministic identity for a document as it is presented, without normalization, reconstruction, or replacement. That identity is carried within the document through an Ordius Block, allowing the document to later be evaluated against the identity it carries.

Cryptographic Foundation

Ordius uses cryptographic hashing as the foundation of deterministic document identity, providing a verifiable basis for document integrity checks, comparison, and audit workflows.

Developer-Friendly REST API

Simple, purpose-built endpoints. One upload. One deterministic response. Simple enough for rapid integration while remaining reliable for production systems.

Developer Examples

API TOKEN IS REQUIRED. Click here to get your token.
ORGANIZATION IS REQUIRED. Once you get your API Key, use the "API Key Status" button at the top of this developer page to bind your organization name to your API Key.
GENERATE RETURNS THE STAMPED PDF. The response body contains the binary PDF. Save the response directly to a file. Ordius ID and document metadata are returned in the response headers.
DO NOT USE cURL -i. The -i option includes HTTP response headers in the output stream. If that output is saved as a file, the resulting PDF will be corrupted and unusable by Ordius. Use separate header capture and file output instead.
INSPECT RESPONSES IN DETAIL. Review the complete API response schemas and endpoint documentation in API Documentation (SwaggerUI) .

Generate

POST /v1/developer/generate

Upload a PDF and receive the stamped PDF as binary data. In the examples below, $ORDIUSKEY and YOUR_ORDIUS_API_KEY refer to your ORD_live_xxx Ordius API Key, while $PDF and YOUR_PDF_FILE_PATH refer to the path to your PDF file.

cURL

curl -sS -D /tmp/ordius-headers.txt \
  -X POST \
  https://api.ordius.net/v1/developer/generate \
  -H "Authorization: Bearer YOUR_ORDIUS_API_KEY" \
  -F "file=@YOUR_PDF_FILE_PATH" \
  -o generated.pdf

cat /tmp/ordius-headers.txt

Python

import requests

r = requests.post(
    "https://api.ordius.net/v1/developer/generate",
    headers={"Authorization": f"Bearer {ORDIUSKEY}"},
    files={"file": open(PDF, "rb")}
)

r.raise_for_status()

open("generated.pdf", "wb").write(r.content)

print(r.headers.get("X-Ordius-Id"))
print(r.headers.get("X-Ordius-Identity-Created-At"))
print(r.headers.get("X-Ordius-Stamped-At"))

Node.js

import fs from "fs";
import FormData from "form-data";

const form = new FormData();

form.append("file", fs.createReadStream(PDF));

const r = await fetch(
  "https://api.ordius.net/v1/developer/generate",
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${ORDIUSKEY}`,
      ...form.getHeaders()
    },
    body: form
  }
);

if (!r.ok)
  throw new Error(`HTTP ${r.status}`);

fs.writeFileSync(
  "generated.pdf",
  Buffer.from(await r.arrayBuffer())
);

console.log(r.headers.get("X-Ordius-Id"));

PHP

<?php

$ch = curl_init(
  "https://api.ordius.net/v1/developer/generate"
);

curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer " . $ORDIUSKEY
  ],
  CURLOPT_POSTFIELDS => [
    "file" => new CURLFile(
      $PDF,
      mime_content_type($PDF),
      basename($PDF)
    )
  ],
  CURLOPT_RETURNTRANSFER => true
]);

$document = curl_exec($ch);

if ($document === false)
  throw new Exception(curl_error($ch));

$status = curl_getinfo(
  $ch,
  CURLINFO_HTTP_CODE
);

curl_close($ch);

if ($status < 200 || $status >= 300)
  throw new Exception("HTTP " . $status);

file_put_contents(
  "generated.pdf",
  $document
);

Go

file, _ := os.Open(PDF)
defer file.Close()

var body bytes.Buffer
writer := multipart.NewWriter(&body)

part, _ := writer.CreateFormFile("file", PDF)
io.Copy(part, file)
writer.Close()

req, _ := http.NewRequest(
  "POST",
  "https://api.ordius.net/v1/developer/generate",
  &body
)

req.Header.Set(
  "Authorization",
  "Bearer "+ORDIUSKEY
)

req.Header.Set(
  "Content-Type",
  writer.FormDataContentType()
)

r, _ := http.DefaultClient.Do(req)
defer r.Body.Close()

out, _ := os.Create("generated.pdf")
defer out.Close()

io.Copy(out, r.Body)

fmt.Println(
  r.Header.Get("X-Ordius-Id")
)

Verify

POST /v1/developer/verify

Upload an Ordius-stamped PDF and receive a JSON verification result. In the examples below, $ORDIUSKEY and YOUR_ORDIUS_API_KEY refer to your ORD_live_xxx Ordius API Key, while $PDF and YOUR_PDF_FILE_PATH refer to the path to your PDF file.

cURL

curl -sS \
  -X POST \
  https://api.ordius.net/v1/developer/verify \
  -H "Authorization: Bearer YOUR_ORDIUS_API_KEY" \
  -F "file=@YOUR_PDF_FILE_PATH"

Python

import requests

r = requests.post(
    "https://api.ordius.net/v1/developer/verify",
    headers={"Authorization": f"Bearer {ORDIUSKEY}"},
    files={"file": open(PDF, "rb")}
)

r.raise_for_status()

print(r.json())

Node.js

import fs from "fs";
import FormData from "form-data";

const form = new FormData();

form.append("file", fs.createReadStream(PDF));

const r = await fetch(
  "https://api.ordius.net/v1/developer/verify",
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${ORDIUSKEY}`,
      ...form.getHeaders()
    },
    body: form
  }
);

console.log(await r.json());

PHP

<?php

$ch = curl_init(
  "https://api.ordius.net/v1/developer/verify"
);

curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer " . $ORDIUSKEY
  ],
  CURLOPT_POSTFIELDS => [
    "file" => new CURLFile($PDF)
  ],
  CURLOPT_RETURNTRANSFER => true
]);

$result = curl_exec($ch);

curl_close($ch);

echo $result;

Go

file, _ := os.Open(PDF)
defer file.Close()

var body bytes.Buffer
writer := multipart.NewWriter(&body)

part, _ := writer.CreateFormFile("file", PDF)
io.Copy(part, file)
writer.Close()

req, _ := http.NewRequest(
  "POST",
  "https://api.ordius.net/v1/developer/verify",
  &body
)

req.Header.Set(
  "Authorization",
  "Bearer "+ORDIUSKEY
)

req.Header.Set(
  "Content-Type",
  writer.FormDataContentType()
)

r, _ := http.DefaultClient.Do(req)
defer r.Body.Close()

io.Copy(os.Stdout, r.Body)

Credits

GET /v1/developer/credits

Retrieve the remaining API Credits associated with your API key. In the examples below, $ORDIUSKEY and YOUR_ORDIUS_API_KEY refer to your ORD_live_xxx Ordius API Key.

cURL

curl -sS \
  https://api.ordius.net/v1/developer/credits \
  -H "Authorization: Bearer YOUR_ORDIUS_API_KEY"

Python

import requests

r = requests.get(
    "https://api.ordius.net/v1/developer/credits",
    headers={"Authorization": f"Bearer {ORDIUSKEY}"}
)

r.raise_for_status()

print(r.json())

Node.js

const r = await fetch(
  "https://api.ordius.net/v1/developer/credits",
  {
    headers: {
      "Authorization": `Bearer ${ORDIUSKEY}`
    }
  }
);

console.log(await r.json());

PHP

<?php

$ch = curl_init(
  "https://api.ordius.net/v1/developer/credits"
);

curl_setopt_array($ch, [
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer " . $ORDIUSKEY
  ],
  CURLOPT_RETURNTRANSFER => true
]);

echo curl_exec($ch);

curl_close($ch);

Go

req, _ := http.NewRequest(
  "GET",
  "https://api.ordius.net/v1/developer/credits",
  nil
)

req.Header.Set(
  "Authorization",
  "Bearer "+ORDIUSKEY
)

r, _ := http.DefaultClient.Do(req)
defer r.Body.Close()

io.Copy(os.Stdout, r.Body)
Ordius builds software infrastructure that transforms digital information into trustworthy decisions.

Pricing

Standard

Production API access for applications, commercial integrations, and small production workloads.

US$10

200 API Credits

1 successful create/verify request = 1 API Credit

Professional

Production API access for high-volume applications, commercial platforms, and scaling businesses.

US$20

450 API Credits

1 successful create/verify request = 1 API Credit

Enterprise

Custom credit allocations, volume licensing, private deployments, and dedicated support.

Contact Ordius