StructureClerk

Authority API · In production

Give your AI agents a regulatory decision before they act.

Every agent needs an identity. Every action needs an authority. Every authority needs proof. StructureClerk turns 192 jurisdictions and your internal policies into decisions your agents can consume, before they act.

Public API · 0 auth · signed responses

Identity answers who. StructureClerk answers what.

Okta, Auth0 and your IAM know who your agent is. Policy engines like OPA know how to evaluate a rule. StructureClerk provides what's missing: the content of the rule. Which action this agent may perform, in this jurisdiction, on this data, at this autonomy level — and what proof remains. Built to complement your identity and enforcement stack, not to replace it.

One request, one decision, one proof

What happens between an agent's request and the action your infrastructure takes.

  1. Agent request

    agent · action · context (jurisdictions, sector)
  2. StructureClerk Authority

    REST · A2A · MCP
  3. Regulatory rules

    192 jurisdictions · your policy profile
  4. Decision

    ALLOW · APPROVE · DENY · ESCALATE
  5. Signed evidence

    Ed25519 · chained · publicly verifiable
  6. Your infrastructure enforces

    StructureClerk decides and proves. It never enforces.
Advisory decisions. Every response carries its rule version and its evidence identifier; anyone can verify the record without an account.

The jurisdiction changes the answer

Same agent, same action, same data. Only the origin and destination change, and the decision with them.

ActionFromToDecisionWhy
read.customer_recordAUAUALLOWstays in Australia
read.customer_recordAUUS_FEDALLOWconditional regime: accountable disclosure, no mechanism imposed
read.customer_recordNZUS_FEDAPPROVErestricted regime: transfer mechanism required
read.customer_recordAEUS_FEDAPPROVEtransfer mechanism required
read.customer_recordBRUS_FEDAPPROVEtransfer mechanism required (LGPD)
score.applicantAE—DENYright to human involvement
score.applicantAU—ESCALATEno equivalent rule: escalated, never guessed

Jurisdiction rules can only tighten a decision, never relax one: the engine evaluates the table without them, then with them, and keeps the stricter answer. Naming a jurisdiction is therefore never a way to obtain permission. When no destination is supplied, the answer carries a warning rather than an implied clearance.

The decision primitive

Four possible answers. Each maps to a zone of the Three Zones Framework.

ALLOW

The action is in Zone 1: the agent may act alone, within policy limits.

APPROVE

The action is in Zone 2: the agent prepares, a human approves before execution.

DENY

The action is in Zone 3: the decision is reserved for humans. The agent cannot take it.

ESCALATE

Confidence < 90%: the Doubt Threshold routes the request to human review instead of guessing.

Advisory decisions. StructureClerk decides. Your infrastructure enforces.

One request, one decision, one proof

A finance agent wants to execute a 12,500 AED payment involving health data in the United Arab Emirates. Here is what the engine answers.

request
POST /api/v1/authority/decide
{
  "agent": {
    "id": "financebot-01",
    "autonomy_level": 3
  },
  "action": {
    "type": "payment.execute",
    "amount": 12500,
    "currency": "AED",
    "data_categories": [
      "personal",
      "health"
    ]
  },
  "context": {
    "jurisdictions": [
      "AE"
    ],
    "sector": "health"
  }
}
response
{
  "advisory": true,
  "decision": "APPROVE",
  "zone": 2,
  "reason": "financial_threshold_exceeded",
  "reasons": [
    "financial_threshold_exceeded",
    "sensitive_data_regulated_sector"
  ],
  "confidence": 0.96,
  "frameworks": [
    { "name": "Federal Decree-Law 45/2021", "domain": "data_protection", "jurisdiction": "AE", "coverage_tier": "priority" },
    { "name": "AI Strategy 2031", "domain": "ai_governance", "jurisdiction": "AE", "coverage_tier": "priority" }
  ],
  "regulatory_flags": [
    { "code": "automated_decision_rights", "jurisdiction": "AE", "framework": "PDPL (EAU)" }
  ],
  "sector_risk_level": "high",
  "evidence": {
    "id": "EVD-1c9a7e58-2b41-4f6e-9c3d-8a5b0e7f21d4",
    "timestamp": "2026-09-18T07:40:11.000Z",
    "sha256": "5b2aeaa5261c375a..."
  },
  "rules_version": "2026-09-18.1",
  "disclaimer": "Décision consultative fondée sur une cartographie réglementaire. Ne constitue pas un avis juridique. L'application de la décision relève de votre infrastructure."
}

Try it now

Query the engine live

This form calls the real public endpoint. The response below, signature included, is exactly what your agent would receive.

response
// Pick a scenario or compose an action,
// then request a decision.

Advisory decisions. StructureClerk decides. Your infrastructure enforces.

Agent interoperability

3 protocols, 0 auth

Your agents already query StructureClerk over A2A, MCP and REST. They can now ask it for a decision before acting.

A2AJSON-RPCv0.2.1

Google Agent-to-Agent protocol. Lets AI agents query StructureClerk via JSON-RPC.

/api/a2a
MCPStreamable HTTPv2025-03-26

Model Context Protocol. Exposes 5 compliance tools for MCP-compatible clients.

/api/mcp-http
RESTJSONvv1

Classic REST API. Compliance analysis, jurisdiction mapping and roadmap endpoints.

/api/agent/compliance-check

Integrate in 3 lines

Pick your protocol. Copy. Execute. Each example is replayed against the server by the integration suite: what is printed here is what it answers.

a2a-request.json
// A2A — JSON-RPC 2.0
const res = await fetch(
  "https://structureclerk.ca/api/a2a",
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      jsonrpc: "2.0",
      method: "compliance/check",
      params: {
        jurisdiction: "AE",
        company_size: "11-50",
        sector: "health",
        uses_ai: true
      },
      id: 1
    })
  }
);
const { result } = await res.json();
console.log(result.applicable_frameworks);
// ["Federal Decree-Law 45/2021", "AI Strategy 2031"]

The Three Zones Framework

An agent's autonomy level is not a technical variable. It is a governance boundary.

Zone 1: Automated

→ ALLOW

The agent acts alone, within policy limits. Reads, classifications, drafts, reconciliations without sensitive data.

Zone 2: Augmented

→ APPROVE

The agent prepares, the human approves. Financial actions above a threshold, irreversible actions, sensitive data in regulated sectors.

Zone 3: Sanctuary

→ DENY

Decision reserved for humans: hiring, termination, credit, compensation, medical decisions, legal settlements. The agent cannot take it.

Cross-cutting: The Doubt Threshold→ ESCALATE

When the engine's confidence drops below 90%, the request is routed to human review, whatever the rule outcome. The system is designed to know what it doesn't know.

Three Zones Framework, L'Architecte Numérique, Michel Fotsing (2026), distributed by Hachette. larchitectenumerique.com

Every decision leaves a proof

Who asked, which action, in which context, which policy applied, which decision was rendered, at what time. Every decision is cryptographically signed and appended to a chained log. Any third party can verify, without trusting us, that an agent held that authorization, at that moment.

  • Unique evidence identifier (EVD-…) in every response
  • SHA-256 fingerprint of the request-decision pair
  • Ed25519 signature, public key published
  • Chained log: every entry references the previous one
  • Public third-party verification, no account needed

The same chain

Every agent decision is an event in the same signed record

A scan of your site, an issued attestation, a connector observation and an agent decision all enter one append-only, hash-chained ledger. Your posture timeline shows them on the same axis, and anyone can verify a record without a StructureClerk account. Authority is not a second product: it is the same regulatory engine and the same evidence infrastructure, exposed to your agents.

Verify a recordWhat an attestation establishes

Aligned with where standards are heading

This approach follows the direction set by NIST's AI Agent Standards Initiative (February 2026) on agent identity and authorization.

The orchestration layer is decoupled from any single model provider. If a model degrades or a provider changes its pricing, the system switches without touching decision logic.

The decision contract is open. Implement it, criticize it, extend it. See the spec (JSON Schema, OpenAPI, MIT)

Already running an agent platform? Integration scenarios are documented for ten of them, monday.com, Agentforce, Copilot Studio and the rest

Put your agents under authority today

Team and Fleet plans available now. Organizations in regulated environments can also apply to the design partner program, six months free in exchange for a quarterly review.