{"openapi":"3.1.0","info":{"title":"AEVION Globus Backend","version":"0.5.0"},"paths":{"/health":{"get":{"summary":"Service health"}},"/api/globus/projects":{"get":{"summary":"All Globus projects + runtime"}},"/api/globus/projects/{id}":{"get":{"summary":"Single project + runtime"}},"/api/modules/status":{"get":{"summary":"Modules dashboard payload"}},"/api/modules/{id}/health":{"get":{"summary":"Per-module health stub"}},"/api/qright/objects":{"get":{"summary":"List QRight (optional ?mine=1 + Bearer)"},"post":{"summary":"Create QRight object"}},"/api/qright/objects/{id}":{"get":{"summary":"Get one QRight object (ETag/304)"}},"/api/qright/objects/{id}/stats":{"get":{"summary":"Owner-only fetch counter + revoke metadata (Bearer required)"}},"/api/qright/objects.csv":{"get":{"summary":"Download QRight registry as CSV"}},"/api/qright/objects/search":{"get":{"summary":"Search by title (ILIKE), optional ?kind, ?limit≤50"}},"/api/qright/embed/{id}":{"get":{"summary":"Public sanitized JSON for embeds (CORS, ETag/304)"}},"/api/qright/badge/{id}.svg":{"get":{"summary":"Embeddable SVG trust badge — ?theme=dark|light, red on revoke"}},"/api/qright/revoke/{id}":{"post":{"summary":"Revoke a QRight object (owner only, Bearer required)"}},"/api/qright/admin/objects":{"get":{"summary":"Admin: list all (filters: status, q, limit)"}},"/api/qright/admin/revoke/{id}":{"post":{"summary":"Admin: force-revoke any object regardless of ownership"}},"/api/qright/admin/whoami":{"get":{"summary":"Probe — returns isAdmin for the current Bearer"}},"/api/qright/transparency":{"get":{"summary":"Public aggregate counts (totals, by-reason-code, by-kind) — no PII"}},"/api/qsign/sign":{"post":{"summary":"[v1] Sign payload (HMAC, no persistence)"}},"/api/qsign/verify":{"post":{"summary":"[v1] Stateless verify"}},"/api/qsign/v2/health":{"get":{"summary":"[v2] QSign health + active kids"}},"/api/qsign/v2/stats":{"get":{"summary":"[v2] Public aggregate metrics (totals, last 24h, unique issuers, top countries, keys by status)"}},"/api/qsign/v2/recent":{"get":{"summary":"[v2] Sanitized recent signatures feed (id, kids, country, createdAt, revoked) · ?limit=1..20"}},"/api/qsign/v2/sign":{"post":{"summary":"[v2] Sign payload (HMAC+Ed25519, RFC 8785, persisted, Bearer required)"}},"/api/qsign/v2/verify":{"post":{"summary":"[v2] Stateless verify by canonical payload"}},"/api/qsign/v2/verify/{id}":{"get":{"summary":"[v2] Verify persisted signature by id"}},"/api/qsign/v2/{id}/public":{"get":{"summary":"[v2] Public shareable JSON view"}},"/api/qsign/v2/keys":{"get":{"summary":"[v2] Key registry (JWKS-like; no secret material)"}},"/api/qsign/v2/keys/{kid}":{"get":{"summary":"[v2] Single key detail by kid"}},"/api/qsign/v2/keys/rotate":{"post":{"summary":"[v2] Rotate active key for algo (admin only, overlap window)"}},"/api/qsign/v2/revoke/{id}":{"post":{"summary":"[v2] Revoke signature (issuer or admin, causal link optional)"}},"/api/auth/register":{"post":{}},"/api/auth/login":{"post":{}},"/api/auth/me":{"get":{}},"/api/qcoreai/chat":{"post":{"summary":"Single-shot chat (one provider)"}},"/api/qcoreai/providers":{"get":{"summary":"List LLM providers + configured flag"}},"/api/qcoreai/health":{"get":{"summary":"QCoreAI config probe"}},"/api/qcoreai/agents":{"get":{"summary":"Multi-agent role defaults"}},"/api/qcoreai/multi-agent":{"post":{"summary":"Multi-agent pipeline (Analyst+Writer+Critic), SSE stream"}},"/api/qcoreai/sessions":{"get":{"summary":"List sessions (mine if Bearer, else anonymous)"}},"/api/qcoreai/sessions/{id}":{"get":{"summary":"Session + all runs"},"delete":{"summary":"Delete session and its runs"}},"/api/qcoreai/runs/{id}":{"get":{"summary":"Run + all agent messages in order"}},"/api/planet/stats":{"get":{"summary":"Planet public stats (participants Y, votes, optional productKeyPrefix scope)"}},"/api/planet/artifacts/recent":{"get":{"summary":"Recent certified artifact versions (optional productKeyPrefix, artifactType, limit 1..50, sort=created|rating|votes)"}},"/api/planet/artifacts/{artifactVersionId}/public":{"get":{"summary":"Public artifact + votes + voteStatsByCategory"}},"/api/qtrade/accounts":{"get":{"summary":"List accounts (persisted)"},"post":{"summary":"Create account"}},"/api/qtrade/accounts.csv":{"get":{"summary":"Download accounts snapshot as CSV"}},"/api/qtrade/transfers":{"get":{"summary":"Transfer history"}},"/api/qtrade/transfers.csv":{"get":{"summary":"Download transfer history as CSV"}},"/api/qtrade/operations":{"get":{"summary":"Operation history (topup + transfer)"}},"/api/qtrade/operations.csv":{"get":{"summary":"Download operation history as CSV"}},"/api/qtrade/summary":{"get":{"summary":"QTrade summary metrics"}},"/api/qtrade/topup":{"post":{"summary":"Top up balance"}},"/api/qtrade/transfer":{"post":{"summary":"P2P transfer"}},"/api/pricing":{"get":{"summary":"Full pricing payload (tiers + modules + bundles)"}},"/api/pricing/tiers":{"get":{"summary":"List pricing tiers"}},"/api/pricing/tiers/{id}":{"get":{"summary":"Single tier detail"}},"/api/pricing/modules":{"get":{"summary":"Per-module add-on prices"}},"/api/pricing/modules/{id}":{"get":{"summary":"Single module pricing"}},"/api/pricing/bundles":{"get":{"summary":"Bundled module suites"}},"/api/pricing/quote":{"post":{"summary":"Build a price quote: tier + modules + seats + period"}},"/api/pricing/lead":{"post":{"summary":"Submit a sales lead (Enterprise / industry contact form)"}},"/api/pricing/leads/count":{"get":{"summary":"Total leads count (no content exposed)"}},"/api/pricing/checkout/session":{"post":{"summary":"Create Stripe Checkout session (or stub if no STRIPE_SECRET_KEY)"}},"/api/pricing/checkout/webhook":{"post":{"summary":"Stripe webhook receiver (verifies stripe-signature in real mode)"}},"/api/pricing/checkout/healthz":{"get":{"summary":"Checkout mode probe: real/stub + webhook readiness"}},"/api/pricing/events":{"post":{"summary":"Ingest analytics event (page_view, cta_click, etc)"}},"/api/pricing/events/summary":{"get":{"summary":"Aggregated metrics — admin token required"}},"/api/pricing/events/recent":{"get":{"summary":"Last N events — admin token required"}},"/api/pricing/leads":{"get":{"summary":"List recent leads — admin token required"}},"/api/pricing/promo":{"get":{"summary":"Public list of active promo codes"}},"/api/pricing/promo/validate":{"post":{"summary":"Validate a promo code against a tier (no charge)"}},"/api/pricing/testimonials":{"get":{"summary":"Public customer testimonials (filterable)"}},"/api/pricing/trust":{"get":{"summary":"Trust signals: numbers + compliance badges"}},"/api/pricing/newsletter":{"post":{"summary":"Newsletter signup (email only)"}},"/api/pricing/newsletter/count":{"get":{"summary":"Total newsletter subscribers count"}},"/api/pricing/checkout/subscriptions/count":{"get":{"summary":"Total provisioned subscriptions count"}},"/api/pricing/roadmap":{"get":{"summary":"Public roadmap for all 27 modules with phases and progress"}}}}