SEPOLIA TESTNET — Demo Environment — All data is real on-chain
SynapsAISynapsAI

API Reference

Sepolia Testnet

Verify any claim on-chain with one API call. web search + Claude AI reasoning, with source and temporal checks, permanent proof, dispute resolution included.

Base URL:https://api.synapsai.org

Authentication

All authenticated endpoints require your API key in the x-api-key header. Public endpoints work without a key.

curl https://api.synapsai.org/v1/trust/0xYourAddress \
  -H "x-api-key: taas_your_key_here"

Rate limits: 300 requests per 15-minute window. Exceeding returns 429 rate_limited with a retryAfter field.

Health

Verify

Claim Verification

Submit a plain-language claim for AI fact-checking with live web search (Serper), Claude AI analysis, and permanent on-chain commitment. Returns a full evidence bundle — verdict, confidence, checks, and web sources — typically within 15 seconds.

Two verification paths

Oracle path — /v1/verify

Submits a content hash. Async multi-source pipeline. Use when privacy matters (text never leaves your system) or for long-running enterprise pipelines.

Evidence pipeline — /v1/verify/claim

Submits claim text. Claude + Serper web search run immediately. Full verdict with citations in ~15s. Use for real-time fact-checking, consumer apps, or crisis response.

Counter-Evidence

Challenge any verified claim with counter-evidence. A 3-step AI pipeline (web search → independent Claude evaluation → synthesis) produces a verdict comparing both sides and commits it on-chain. Returns COUNTER_SUPPORTED, COUNTER_CONTRADICTED, or INCONCLUSIVE.

Access tiers

Free — self-owned claims

Any authenticated API key can challenge a claim they originally submitted. paid_tier not required.

Paid tier — others’ claims

Challenging a claim submitted by another customer requires paid_tier: true on the key record. Returns 403 otherwise.

Image Forensics

Multi-layer forensic analysis in a single API call. Each check uses a specialized tool — combined results are committed on-chain so the verification is independently auditable on Sepolia. Anyone can verify our verifications happened by checking the transaction hash.

Hive AI
Deepfake + AI-generated detection (ML model)
ELA
Error Level Analysis — runs and appears in rawScores; does not affect verdicts (non-functional at current threshold)
EXIF
Metadata consistency validation
Claude Vision
AI consistency + claim analysis

Document Verification

Upload a PDF or plain-text document. The pipeline extracts text, computes a SHA-256 fingerprint, runs AI-content detection (Claude), checks PDF metadata consistency, and commits the hash on-chain for a tamper-evident audit trail.

Trust Score

The patent-pending time-decay formula: TrustScore(t) = 500 + (Score(t-1) − 500) × e^(−λt) where λ = 0.0001/day. Range 0–1000.

Usage & History

Webhooks

Register a URL to receive POST notifications when verifications complete. Every delivery is HMAC-signed so you can verify it came from SynapsAI. Growth plan and above.

Available events

verification.completedclaim.submittedclaim.verifiedevidence.recordeddispute.submitteddispute.finalizedtrust.updated

Signature Verification (HMAC-SHA256)

Every delivery includes an X-SynapsAI-Signature header. Verify it to reject forged payloads.

// Node.js — verify incoming webhook signature
const crypto = require('crypto');

function verifySignature(rawBody, signatureHeader, secret) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(rawBody)          // raw bytes before JSON.parse
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signatureHeader),
    Buffer.from(expected)
  );
}

// Express example
app.post('/webhooks/synapsai', express.raw({ type: '*/*' }), (req, res) => {
  const sig = req.headers['x-synapsai-signature'];
  if (!verifySignature(req.body, sig, process.env.WEBHOOK_SECRET)) {
    return res.status(401).send('Invalid signature');
  }
  const event = JSON.parse(req.body);
  // handle event ...
  res.json({ ok: true });
});

Your webhook secret is shown once at registration. Store it securely — it cannot be retrieved again.

Errors

All errors return a JSON object with an error field and an optional message.

400missing_params / invalid_*

Required field missing or malformed.

401invalid_api_key

Missing or invalid x-api-key header.

404not_found

Claim ID does not exist.

429rate_limited

Too many requests. Check retryAfter field.

500submit_failed

On-chain transaction failed (check reason field).

503write_disabled / degraded

Node connectivity issue. Retry shortly.

Ready to integrate?

Get your API key and start verifying claims in minutes.