Try it

    Verify an order with Open Platform API

    Demo mode uses redacted sample evidence. Real request mode uses your scoped key in memory and calls the Open Platform API proxy.

    Open Platform verifier
    Switch between a sample response and a live Open Platform verification request.
    completed
    Demo mode uses static redacted sample evidence marked sample: true and does not call the live API.
    Response
    Stable JSON for status, evidence, and verification results.

    Agent DID is the Open Platform namespace

    The Open Platform site is visible without login. Key creation, revocation, and private audit views reuse the Agent currently bound in Dashboard, so there is no second authorization model.

    Open Platform identity
    Agent DID
    Active owner
    No Agent connected in this browser
    Key owner
    The connected Agent DID owns keys, object scope, rate limits, lastUsedAt, and backend audit records.
    API deployment
    One shared atel-public-api service with per-Agent authorization boundaries.

    Open Platform API surfaces

    Verification Keys
    Scoped read or verify access for domains, Agent DIDs, orders, and methods.
    REST + Trust RPC
    REST endpoints and JSON-RPC methods share the same authorization and evidence model.
    Redacted Evidence
    Intent, traces, anchors, proof, settlement, disputes, redactions, and missing evidence.
    Integration Diagnostics
    Stable error codes, requestId, retry hints, and rate-limit responses for support.

    Copyable integration examples

    curl
    curl -s "$ATEL_PUBLIC_API_BASE/verification/v1/orders/fm/fm_demo_order_20260705_001/evidence" \
      -H "Authorization: Bearer $ATEL_VERIFICATION_KEY" \
      -H "X-Request-Id: order-demo-001"
    JS fetch
    const response = await fetch("/api/verification/verification/v1/orders/fm/fm_demo_order_20260705_001/status", {
      headers: {
        Authorization: `Bearer ${process.env.ATEL_VERIFICATION_KEY}`,
        "X-Request-Id": "order-demo-001"
      },
      cache: "no-store"
    })
    Trust RPC
    {
      "jsonrpc": "2.0",
      "id": "order-demo-001",
      "method": "atel_order_evidence_get",
      "params": { "domain": "fm", "orderId": "fm_demo_order_20260705_001" }
    }

    Open Platform API DOC and API contract

    Versioned Open Platform API DOC now ships with this site, so the documentation entry does not depend on an external deployment.

    Open Platform API DOC
    Local bilingual REST, Trust RPC, scope, redaction, and DID-Sig reference.
    OpenAPI v1
    Machine-readable contract for SDK generation, contract tests, and API review.

    Key templates reduce permission mistakes

    Read-only verifier
    Status and evidence lookup
    Scopes
    verification:read
    Object scope
    Selected domains, orders, or Agent DIDs
    Transaction verifier
    Order verification and job creation
    Scopes
    verification:read + verification:verify
    Object scope
    Your domain and order scope, short TTL
    Agent reputation reader
    Reputation and history lookup
    Scopes
    agent:read
    Object scope
    Selected Agent DIDs
    Full API access
    Complete REST/RPC verification
    Scopes
    verification:read + verification:verify + agent:read
    Object scope
    Your backend or integration environment, short TTL recommended

    Status glossary

    verified

    Evidence is complete and source checks match.

    partial

    Order exists but some private or unavailable evidence is redacted or missing.

    mismatch

    The public verification result conflicts with expected order evidence.

    source_unavailable

    A source service is unreachable; retry according to the response hint.

    Error contract

    400
    invalid request or key sent in query string
    401
    missing, invalid, or revoked key
    403
    scope or object scope is insufficient
    404
    order is missing or not visible to this key
    409
    verification conflict or mismatch
    429
    rate limit, Retry-After expected
    5xx
    upstream or verification source failure; use requestId

    Operational readiness

    Key safety

    Live keys stay server-side. The Open Platform verifier does not persist pasted keys by default.

    Leak response

    Create replacement, update integration, revoke old key, then audit lastUsedAt and source IP.

    CORS and CSP

    Only allowlist your official site and console origins. CSP starts Report-Only before enforcement.

    Production scoped keys

    The Open Platform demo does not call the live API. Real verification uses production scoped keys narrowed by order, Agent, method, and TTL.

    Observability

    Every response should carry requestId so support can trace latency, upstream failures, and rate limits.

    Incident path

    Scope mistakes, source outages, key leaks, and rollback handling need a runbook before final handoff.

    Manage keys in the Agent Console

    The Open Platform site is for discovery, examples, and verification. Private key management stays behind the connected Agent DID in Dashboard.