ANIMA Verify Docs

Verify API and SDK

Using the other product? See ANIMA Identity docs. OpenAPI spec: /openapi.yaml.

SDK install (canonical)

<script src="https://animaid.to/sdk/verify/v3/anima-verify.js"
        integrity="sha384-Hp8Pgi92yV4XxaHhz1ytMBhj9qYc6/nBMqFV7AtAnFPY1SWJX6VjcHYUtYTNalY2"
        crossorigin="anonymous"></script>

Latest alias: /sdk/verify/latest/anima-verify.js (served with Cache-Control: no-cache).

Auth model

Client: Site key for widget bootstrap.

Server: Secret key for token exchange.

Webhook: HMAC signature via X-ANIMA-Signature.

Rate-limit headers

  • X-RateLimit-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset
  • Retry-After (on 429)

Flow diagram

sequenceDiagram
  participant Browser
  participant VerifySDK
  participant AppServer
  participant ANIMA

  Browser->>VerifySDK: Render widget + collect 7 signals
  VerifySDK->>ANIMA: POST /api/verify/generate
  ANIMA-->>VerifySDK: signed token
  VerifySDK-->>Browser: token in hidden input
  Browser->>AppServer: submit form + token
  AppServer->>ANIMA: POST /api/verify/token (siteKey + secretKey)
  ANIMA-->>AppServer: human=true|false + confidence

Token verification endpoint

POST /api/verify/token

Node.js

const response = await fetch("https://animaid.to/api/verify/token", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    token: req.body.anima_token,
    siteKey: process.env.ANIMA_SITE_KEY,
    secretKey: process.env.ANIMA_SECRET_KEY
  })
});
const result = await response.json();

Python

import requests

payload = {
  "token": anima_token,
  "siteKey": ANIMA_SITE_KEY,
  "secretKey": ANIMA_SECRET_KEY
}
result = requests.post(
  "https://animaid.to/api/verify/token",
  json=payload,
  timeout=10
).json()

PHP

$payload = json_encode([
  "token" => $animaToken,
  "siteKey" => getenv("ANIMA_SITE_KEY"),
  "secretKey" => getenv("ANIMA_SECRET_KEY")
]);

$ch = curl_init("https://animaid.to/api/verify/token");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = json_decode(curl_exec($ch), true);

OpenAPI

Machine-readable API contract: /openapi.yaml