Aether partner API
Integrate verified discovery in an afternoon
Two endpoints. Catalog search returns published listings with their trust tier and latest signed report; verification lets you re-check any signature yourself, without trusting us. The full contract is published as OpenAPI 3.1 at /api/public/openapi.json — import it straight into Postman, Insomnia, or a client generator.
Authentication
Catalog search requires a partner key sent as X-Api-Key. Create and rotate keys on the API keys screen. Verification is open and needs no key.
curl -H "X-Api-Key: aek_live_…" \ "https://aether.app/api/public/catalog?tier=verified&tags=No%20model%20training&limit=20"
Rate limits
Each key has a per-minute budget (60 by default). Every response carries the current state, and a breach returns 429 — back off until the reset timestamp.
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 57 X-RateLimit-Reset: 2026-08-30T16:41:00.000Z
GET /api/public/catalog
Filters: q, tier, kind, category, tags, scannedWithinDays, limit, offset. Comma-separate multi-values; compliance tags are ANDed.
{
"total": 128,
"limit": 20,
"offset": 0,
"results": [
{
"slug": "ledger-agent",
"name": "Ledger Agent",
"kind": "agent",
"trustTier": "verified",
"complianceTags": ["No model training", "EU data residency"],
"latestScan": {
"scanId": "6f1e…",
"score": 94,
"verdict": "pass",
"signatureKeyId": "v2",
"ageDays": 3.2
},
"trustCenterUrl": "/trust-center/ledger-agent"
}
]
}GET /api/public/verify-report
Pass scanId, or POST a report + signature pair. Signatures are versioned, so rotated keys still verify historical reports.
curl "https://aether.app/api/public/verify-report?scanId=6f1e…"
{ "valid": true, "keyId": "v2", "rotatedKey": false, "score": 94, "verdict": "pass" }