Version: 2.0 Date: April 14, 2026 Protocol: v2.2 Status: Active
Complete REST API documentation for integrating with AURA. The API is built on Fastify and uses Ed25519 cryptographic authentication. Endpoints are organized by domain, matching the Protocol Specification modules.
AURA is a REST API that facilitates agent-mediated commerce between Scouts (buyers) and Beacons (sellers) through a neutral broker (AURA Core). The API provides endpoints for:
Implementation status: Endpoints marked (Live) are deployed and operational. Endpoints marked (Phase 7 — Specified) are defined in Protocol Specification v2.2 but not yet deployed.
https://aura-labsai-production.up.railway.app
All API requests use HTTPS. Request/response content type is application/json.
URL-path versioning. Current version: v1 (stable).
GET /v1/sessions
POST /v1/agents/register
GET /
Returns available API versions with HATEOAS links.
Every protected request includes three headers:
| Header | Description |
|---|---|
X-Agent-ID |
The registered agent’s ID (sct_... or bcn_...) |
X-Signature |
Ed25519 signature over method + path + timestamp + body |
X-Timestamp |
ISO 8601 timestamp (must be within 5-minute window) |
The signature is verified against the agent’s registered public key. No shared secrets. No bearer tokens.
# Example authenticated request
curl -X GET \
-H "X-Agent-ID: sct_01HXYZ..." \
-H "X-Signature: base64-ed25519-signature" \
-H "X-Timestamp: 2026-04-14T10:00:00Z" \
https://aura-labsai-production.up.railway.app/v1/sessions/ses_01HABC...
See Protocol Foundation Section 3 for the complete authentication specification.
GET /, GET /health, GET /health/ready — no authentication required.
| Tier | Limit | Scope |
|---|---|---|
| Default | 60 requests/minute | Per agent ID |
| Session creation | 100 sessions/hour | Per agent ID |
| Offer submission | 1000 offers/minute | Per agent ID |
Rate limit headers are included on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
| Method | Path | Description |
|---|---|---|
| GET | /health |
System health status |
| GET | /health/ready |
Readiness probe |
| Method | Path | Description |
|---|---|---|
| GET | / |
API version discovery (unversioned) |
| GET | /v1 |
HATEOAS navigation root for v1 |
Register a principal (legal entity or individual). Optionally present identity credentials for trust level computation.
Request:
{
"principal_type": "organization",
"display_name": "Acme Widgets",
"public_key": "base64-ed25519-public-key",
"credentials": [
{
"format": "vlei",
"credential": "eyJhbGciOiJFZERTQSIs...",
"disclosure": null,
"binding_proof": null
}
],
"notification_endpoint": "https://acme.example.com/aura/notifications"
}
| Field | Required | Description |
|---|---|---|
principal_type |
Yes | organization or individual |
display_name |
No | Display label (self-declared, not verified) |
public_key |
Yes | Ed25519 public key for the principal entity |
credentials |
No | Array of credential presentations. Defaults to empty (L0). |
notification_endpoint |
No | URI for protocol notifications |
Response: 201 Created
{
"principal_id": "prn_01HXYZ...",
"principal_type": "organization",
"display_name": "Acme Widgets",
"trust_level": "entity_verified",
"trust_profile": {
"level": "entity_verified",
"credentials_accepted": [ ... ],
"computed_at": "2026-04-14T10:00:00Z"
},
"registered_at": "2026-04-14T10:00:00Z"
}
Returns principal record including trust level and trust profile.
Update mutable fields (display_name, notification_endpoint). Trust level changes only through credential management.
Present new identity credential(s) to upgrade trust level.
List accepted credentials for this principal.
Returns current trust level with full credential provenance.
Returns principal’s clearinghouse risk profile (composite score, dispute rate, enforcement status).
Declare business rules (binary pass/fail policies enforced at commit time).
List declared business rules.
Register an agent with Ed25519 public key, bound to a principal.
Request:
{
"publicKey": "base64-encoded-ed25519-public-key",
"signature": "base64-encoded-signature",
"metadata": {
"name": "MyShoppingAssistant",
"type": "scout"
},
"principal_id": "prn_01HBUYER...",
"capacity": "agent_for_principal"
}
| Field | Required | Description |
|---|---|---|
publicKey |
Yes | Ed25519 public key (32 bytes, base64) |
signature |
Yes | Proof-of-possession signature |
metadata.type |
Yes | scout or beacon |
principal_id |
Yes | Reference to the registered principal |
capacity |
Yes | agent_for_principal, principal_direct, or platform_delegated |
Response: 201 Created
{
"agentId": "sct_01HXYZ...",
"keyId": "key_01H...",
"status": "active",
"principal_id": "prn_01HBUYER...",
"capacity": "agent_for_principal"
}
Returns agent details including principal binding and enforcement status.
Returns enforcement status (standard, elevated, restricted, blocked, suspended).
Register a Beacon (seller) with capabilities and webhook endpoint.
Request:
{
"name": "AcmeStoreBeacon",
"categories": ["electronics", "home_appliances"],
"capabilities": ["offers", "inventory_check", "dynamic_pricing"],
"principal_id": "prn_01HSELLER...",
"capacity": "agent_for_principal",
"webhookUrl": "https://acme.example.com/aura/webhook"
}
Response: 201 Created
{
"beaconId": "bcn_01HXYZ...",
"principal_id": "prn_01HSELLER...",
"principal_trust_level": "domain_verified",
"capacity": "agent_for_principal",
"_links": {
"self": { "href": "/v1/beacons/bcn_01HXYZ..." },
"sessions": { "href": "/v1/beacons/sessions" }
}
}
Get Beacon details by ID.
Get available sessions for Beacons to poll. Only returns non-expired sessions. Scout constraints are projected per the Disclosure Projection model (Section 6.6) — Beacons see structured requirements, not full intent.
Create a new commerce session with NLP-parsed intent.
Request:
{
"intent": "Looking for wireless headphones under $100",
"constraints": {
"maxPrice": 100,
"category": "electronics"
},
"completeness": {
"confidence": 0.65,
"categories": { "what": { "present": true }, "how_much_cost": { "present": true } },
"attestedBy": "scout-sdk"
},
"profile_id": "prf_retail"
}
| Field | Required | Description |
|---|---|---|
intent |
Yes | Natural language intent |
constraints |
No | Structured constraints (maxPrice, category, etc.) |
completeness |
No | Optional completeness attestation from Scout SDK |
profile_id |
No | Market Profile to use. Defaults to deployment default. |
Agent identity from Ed25519 signature headers, not request body.
Response: 201 Created
{
"sessionId": "ses_01HABC...",
"state": "collecting_offers",
"matchedBeacons": ["bcn_01H..."],
"createdAt": "2026-04-14T10:00:00Z",
"_links": {
"self": { "href": "/v1/sessions/ses_01HABC..." },
"offers": { "href": "/v1/sessions/ses_01HABC.../offers" },
"commit": { "href": "/v1/sessions/ses_01HABC.../commit", "method": "POST" },
"cancel": { "href": "/v1/sessions/ses_01HABC.../cancel", "method": "POST" }
}
}
Get session state, offers, and transaction details.
Submit a signed offer from a Beacon. Requires Ed25519 signature over canonical offer payload.
Request:
{
"product": { "name": "Premium Headphones", "sku": "HP-001" },
"unitPrice": 89.99,
"quantity": 1,
"currency": "USD",
"signature": "<Ed25519 signature over canonical offer payload>"
}
Get all offers for a session, ranked by CWR.
Commit to an offer, creating a transaction.
Request:
{
"offerId": "ofr_01HABC...",
"idempotencyKey": "uuid-v4",
"authority": {
"consent_tier": "explicit",
"delegation_scope_id": "dsc_01HXYZ...",
"attestation_signature": "base64-ed25519-signature"
},
"buyer_identity": { "..." : "..." },
"shipping_address": { "..." : "..." }
}
Cancel a session. Recorded in reputation.
Get the interpretation attestation — signed binding of original intent to structured interpretation.
Get the intent-to-commitment chain of custody (7-link cryptographic chain).
Get transaction state, payment status, fulfillment status.
Update fulfillment status (shipped, delivered).
Update payment status (charged, failed, refunded).
| Method | Path | Description |
|---|---|---|
| POST | /v1/disputes |
File a dispute |
| GET | /v1/disputes/:disputeId |
Get dispute details |
| POST | /v1/disputes/:disputeId/evidence |
Submit evidence |
| POST | /v1/disputes/:disputeId/resolve |
Submit resolution |
| POST | /v1/disputes/:disputeId/appeal |
Appeal a decision |
See Financial Protocol Section 11 for the complete dispute lifecycle.
| Method | Path | Description |
|---|---|---|
| GET | /v1/clearing/:transactionId/status |
Clearing lifecycle status |
| POST | /v1/clearing/:transactionId/authorize |
Authorize settlement |
| GET | /v1/settlement/:transactionId/proof |
Get proof of settlement |
See Financial Protocol Section 10.7 for clearinghouse settlement flow.
| Method | Path | Description |
|---|---|---|
| GET | /v1/profiles |
List available profiles |
| GET | /v1/profiles/:profileId |
Get profile details |
| GET | /v1/profiles/name/:name |
Get profile by name |
| GET | /v1/profiles/active |
List active profiles |
| GET | /v1/profiles/:profileId/dimensions/:dimension |
Get specific dimension config |
See Market Profiles Architecture for the parameterization model.
| Method | Path | Description |
|---|---|---|
| GET | /v1/trust-framework |
Active Trust Framework with all rules |
| GET | /v1/trust-framework/rules/:ruleId |
Specific trust rule details |
See Protocol Foundation Section 3.1.4 for the Trust Framework specification.
| Method | Path | Description |
|---|---|---|
| GET | /v1/settlement/adapters |
List available rail adapters |
| GET | /v1/settlement/adapters/:adapterId/capabilities |
Adapter capability declaration |
| GET | /v1/settlement/reconciliation |
Reconciliation status |
See Settlement Rails Architecture for the rail interface specification.
Set delegation scope defining agent authority boundaries.
Get current delegation scope(s).
When a Beacon registers with a webhookUrl, AURA dispatches events for state changes:
| Event | Trigger |
|---|---|
transaction.state_changed |
Transaction advances (committed, fulfilled, completed) |
session.offer_received |
New offer submitted to a session |
session.expired |
Session TTL elapsed |
Phase 7 webhooks (Specified):
| Event | Trigger |
|---|---|
clearing.authorized |
Transaction cleared for settlement |
clearing.settled |
Proof of settlement verified |
dispute.filed |
Dispute opened against a transaction |
dispute.resolved |
Dispute resolution reached |
enforcement.status_changed |
Enforcement tier changed |
trust_level.changed |
Principal trust level upgraded or downgraded |
business_rule.violated |
Commit rejected by business rule gate |
| Code | Name | Description |
|---|---|---|
| 400 | Bad Request | Malformed request body or invalid parameters |
| 400 | session_expired |
Session TTL has elapsed |
| 400 | missing_idempotency_key |
Commit request missing idempotency key |
| 401 | unknown_agent |
Agent ID not found in registry |
| 401 | invalid_signature |
Ed25519 signature verification failed |
| 403 | agent_revoked |
Agent has been revoked |
| 403 | agent_suspended |
Agent has been suspended |
| 403 | BUSINESS_RULE_VIOLATION |
(Phase 7) Scout violates Beacon business rule |
| 403 | CONSENT_ELEVATION_REQUIRED |
(Phase 7) Transaction requires higher consent tier |
| 404 | Not Found | Resource not found |
| 409 | Conflict | Invalid state transition |
| 422 | UNTRUSTED_ISSUER |
Credential issuer not in Trust Framework |
| 422 | SETTLEMENT_METHOD_UNSUPPORTED |
(Phase 7) Payment method not supported |
| 429 | Too Many Requests | Rate limit exceeded |
| 451 | ENFORCEMENT_ACTION |
(Phase 7) Agent blocked by enforcement |
Three-layer architecture (see ADR-002):
Scout SDK (IntentSession) → Completeness checking before submission
|
Core API (intent-svc + local) → Authoritative parsing with fallback
|
Beacon SDK (interpretIntent) → Domain-specific catalog matching
Shared module: @aura-labs-ai/nlp — 8-category completeness checking, clarification generation, LLM provider abstraction.
| Version | Date | Changes |
|---|---|---|
| 2.0 | 2026-04-14 | Full update for Protocol v2.2. Added principal management endpoints with credential model (DEC-049). Added Phase 7 endpoint tables (clearinghouse, settlement, disputes, market profiles, trust framework). Added profile_id to session creation. Updated Beacon registration with principal_id and capacity. Added Phase 7 webhook events and error codes. Added implementation status markers (Live / Phase 7 — Specified). Added version header and document history. |
| 1.0 | 2026-03-11 | Initial API reference — agent registration, sessions, offers, transactions, webhooks, NLP pipeline. |