Trust Registry API
Public API for trust lookups, JWKS endpoints, and receipt verification.
openapi: 3.0.3
info:
title: TrustUCP Trust Registry API
version: "1.0.0"
paths:
/trust/v1/jwks:
get:
summary: Fetch public signing keys (JWKS)
responses:
"200":
description: JWKS
content:
application/json:
schema:
type: object
additionalProperties: false
required: ["keys"]
properties:
keys:
type: array
items:
type: object
additionalProperties: true
/trust/v1/tenants/{tenant_id}/jwks/receipts:
get:
summary: Fetch public receipt signing keys for a tenant (JWKS)
parameters:
- in: path
name: tenant_id
required: true
schema: { type: string }
responses:
"200":
description: JWKS
content:
application/json:
schema:
type: object
additionalProperties: false
required: ["keys"]
properties:
keys:
type: array
items:
type: object
additionalProperties: true
"404":
description: Tenant not found
/trust/v1/receipts/verify:
post:
summary: Verify a signed checkout receipt
requestBody:
required: true
content:
application/json:
schema:
$ref: ../jsonschema/trust/checkout-receipt-verify-request/v1/schema.json
responses:
"200":
description: Verification result
content:
application/json:
schema:
$ref: ../jsonschema/trust/checkout-receipt-verify-response/v1/schema.json
/trust/v1/badge-events:
post:
summary: Record a badge widget analytics event
requestBody:
required: true
content:
application/json:
schema:
$ref: ../jsonschema/trust/badge-event/v1/schema.json
responses:
"202":
description: Accepted
content:
application/json:
schema:
$ref: ../jsonschema/trust/badge-event-response/v1/schema.json
/trust/v1/badge-config:
get:
summary: Fetch a tenant badge widget configuration (signed)
parameters:
- in: query
name: tenant_id
schema: { type: string }
- in: query
name: domain
schema: { type: string }
- in: query
name: platform
schema: { type: string }
- in: query
name: account_id
schema: { type: string }
responses:
"200":
description: Badge config (signed)
content:
application/json:
schema:
$ref: ../jsonschema/trust/badge-config-response/v1/schema.json
"404":
description: Tenant not found
/mcp/tools:
get:
summary: List MCP tool manifest
responses:
"200":
description: Tool manifest
content:
application/json:
schema:
$ref: ../jsonschema/mcp/tool-manifest/v2/schema.json
/mcp/resources:
get:
summary: List MCP resource manifest
responses:
"200":
description: Resource manifest
content:
application/json:
schema:
$ref: ../jsonschema/mcp/resource-manifest/v2/schema.json
/mcp/prompts:
get:
summary: List MCP prompt manifest
responses:
"200":
description: Prompt manifest
content:
application/json:
schema:
$ref: ../jsonschema/mcp/prompt-manifest/v2/schema.json
/trust/v1/lookup:
get:
summary: Lookup trust summary for a tenant/business
parameters:
- in: query
name: tenant_id
schema: { type: string }
- in: query
name: domain
schema: { type: string }
- in: query
name: platform
schema: { type: string }
- in: query
name: account_id
schema: { type: string }
responses:
"200":
description: Trust summary (signed)
content:
application/json:
schema:
$ref: ../jsonschema/trust/trust-registry-response/v1/schema.json
/trust/v1/decision:
get:
summary: Evaluate a trust decision for a tenant/business (signed)
parameters:
- in: query
name: tenant_id
schema: { type: string }
- in: query
name: domain
schema: { type: string }
- in: query
name: platform
schema: { type: string }
- in: query
name: account_id
schema: { type: string }
- in: query
name: stage
required: true
schema:
type: string
enum: ["checkout_create", "checkout_update", "checkout_complete"]
- in: query
name: currency
schema: { type: string }
- in: query
name: amount
schema: { type: number }
- in: query
name: shipping_country
schema: { type: string }
- in: query
name: shipping_region
schema: { type: string }
responses:
"200":
description: Trust decision (signed)
content:
application/json:
schema:
$ref: ../jsonschema/trust/trust-decision-response/v1/schema.json
/trust/v1/revocations:
get:
summary: Fetch revocation feed for trusted merchants
responses:
"200":
description: Revocation feed
content:
application/json:
schema:
$ref: ../jsonschema/trust/revocation-feed/v1/schema.json
/trust/v1/proof-bundle/{tenant_id}:
get:
summary: Fetch a proof bundle for a tenant/business
parameters:
- in: path
name: tenant_id
required: true
schema: { type: string }
responses:
"200":
description: Proof bundle
content:
application/json:
schema:
$ref: ../jsonschema/trust/trust-proof-bundle/v1/schema.json