{"openapi":"3.1.0","info":{"title":"Gigaverse Agent API","version":"1.0.0","description":"Public API for AI agents to discover Gigaverse and initiate retirement-account signups for their users. IMPORTANT: agents may initiate a signup (name + email) and receive a personalized confirm link, but the human account owner must personally open that link to confirm. Agents cannot complete enrollment, KYC, suitability, or brokerage agreements. Gigaverse AI, Inc. is a financial technology company — not a bank and not currently a registered investment adviser. Educational information only, not investment, tax, or legal advice. Brokerage services are provided by Alpaca Securities LLC, member FINRA/SIPC. Investing involves risk, including possible loss of principal.","contact":{"email":"hello@gigaverse.ai","url":"https://gigaverse.ai/agents"},"x-human-confirmation-required":true,"x-mcp-endpoint":"https://gigaverse.ai/api/mcp"},"servers":[{"url":"https://gigaverse.ai"}],"paths":{"/api/agent/signups":{"post":{"operationId":"startSignup","summary":"Initiate a retirement-account signup for a user (returns a human confirm link)","description":"Creates a pending signup and returns signup_url — a link the HUMAN account owner must open personally to join the waitlist. Idempotent on email: repeating the same email returns the existing signup (HTTP 200). The account owner must personally open signup_url to confirm. Agents cannot complete enrollment, identity verification, suitability, or brokerage agreements on a person's behalf.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email","description":"The user's email address."},"name":{"type":"string","description":"The user's name (first name is fine)."},"platforms":{"type":"array","items":{"type":"string"},"description":"Gig platforms the user works on, e.g. [\"uber\",\"doordash\"]."},"partner_id":{"type":"string","description":"Optional partner attribution slug (from POST /api/agent/partners)."},"agent":{"type":"object","description":"Optional agent self-identification.","properties":{"name":{"type":"string"},"client":{"type":"string"},"version":{"type":"string"}}}}}}}},"responses":{"200":{"description":"Signup already existed for this email (idempotent replay).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupResponse"}}}},"201":{"description":"Signup created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupResponse"}}}},"400":{"description":"Invalid request (e.g. bad email)."},"429":{"description":"Rate limited (10/min, 50/day per IP)."}}}},"/api/agent/signups/{signup_id}":{"get":{"operationId":"getSignupStatus","summary":"Poll signup status (no PII returned)","parameters":[{"name":"signup_id","in":"path","required":true,"schema":{"type":"string","pattern":"^gv_sgn_[a-z0-9]+$"}}],"responses":{"200":{"description":"Status. Open enum: initiated | waitlist_joined | account_opened (future states may be added).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupStatus"}}}},"404":{"description":"Unknown signup_id."}}}},"/api/agent/product":{"get":{"operationId":"getProductInfo","summary":"PRActicle™ product information (static, cacheable)","responses":{"200":{"description":"Product description, pricing, custodian disclosure, launch status."}}}},"/api/agent/eligibility":{"get":{"operationId":"checkRothEligibility","summary":"Educational Roth IRA MAGI phase-out check (2026 limits)","parameters":[{"name":"filing_status","in":"query","required":true,"schema":{"type":"string","enum":["single","head_of_household","married_joint","married_separate"]}},{"name":"magi","in":"query","required":true,"schema":{"type":"number","description":"Modified adjusted gross income in USD."}}],"responses":{"200":{"description":"Eligibility estimate with explanation + disclaimer. Stores nothing."},"400":{"description":"Missing/invalid parameters."}}}},"/api/agent/partners":{"post":{"operationId":"registerPartner","summary":"Register as an integration partner (returns a partner_id attribution slug)","description":"For developers embedding Gigaverse retirement signups in their app. Returns a partner_id to pass on future startSignup calls for attribution. Advisory services and partner revenue share launch upon RIA registration approval.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["company","email"],"properties":{"company":{"type":"string"},"email":{"type":"string","format":"email"},"website":{"type":"string"}}}}}},"responses":{"201":{"description":"{ partner_id, status: \"pending_review\" }"},"400":{"description":"Invalid request."},"429":{"description":"Rate limited."}}}},"/api/waitlist":{"post":{"operationId":"joinWaitlist","summary":"Direct waitlist signup (human-facing form endpoint)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string"},"name":{"type":"string"},"platforms":{"type":"string"}}}}}},"responses":{"200":{"description":"{ ok: true }"}}}}},"components":{"schemas":{"SignupResponse":{"type":"object","properties":{"signup_id":{"type":"string"},"status":{"type":"string"},"signup_url":{"type":"string","description":"The human account owner must open this personally."},"status_url":{"type":"string"},"partner_id":{"type":["string","null"]},"human_action_required":{"type":"string"},"disclosures":{"type":"string"}}},"SignupStatus":{"type":"object","properties":{"signup_id":{"type":"string"},"status":{"type":"string","description":"initiated | waitlist_joined | account_opened (open enum)"},"partner_id":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"}}}}}}