API Reference v1

Gigaverse API Docs

Everything you need to integrate Gigaverse into your platform. The API is RESTful, returns JSON, and uses standard HTTP response codes. The Agent API below is live in production today (no auth keys); the v1 platform API further down is the roadmap preview.

Agent API — LIVE now

Live at https://gigaverse.ai/api — no API keys required. OpenAPI 3.1 spec: /api/openapi.json · MCP server: https://gigaverse.ai/api/mcp · Agent guide: /agents · SDK/CLI: npm install gigaverse. Rule: agents initiate; the human account owner confirms via the returned signup_url. MCP tools: get_practicle_info · check_roth_eligibility · start_signup · get_signup_status · register_partner. Retirement brokers & platforms: register with POST /api/agent/partners, the MCP register_partner tool, or npx gigaverse init — your partner_id attributes every signup you initiate.🧪 Sandbox: add "sandbox": true to POST /api/agent/signups or /api/agent/partners (or the sandbox param on the MCP tools) to test without creating anything real — sandbox signups get gv_test_ ids that auto-progress initiated → waitlist_joined (60s) → account_opened (180s), no email, no storage, no human confirm required.
POST/api/agent/signups

Initiate a PRActicle™ portable Roth IRA signup for a user. Idempotent per email (replay returns the same signup, HTTP 200). Rate limit 10/min, 50/day per IP.

Parameters

emailstringrequiredThe user's email address
namestringThe user's name
platformsstring[]Gig platforms, e.g. ["uber","doordash"]
partner_idstringPartner attribution slug (from /api/agent/partners)

Response — 201 Created

{
  "signup_id": "gv_sgn_k2x91m4a7q",
  "status": "initiated",
  "partner_id": "acme-gig-app",
  "signup_url": "https://gigaverse.ai/start?sid=gv_sgn_k2x91m4a7q",
  "status_url": "https://gigaverse.ai/api/agent/signups/gv_sgn_k2x91m4a7q",
  "human_action_required": "The account owner must personally open signup_url to confirm.",
  "disclosures": "Gigaverse AI, Inc. is a financial technology company — not a bank..."
}
GET/api/agent/signups/{signup_id}

Poll signup status. Returns no personal information. Status enum is open: initiated → waitlist_joined → account_opened.

Response — 200 OK

{
  "signup_id": "gv_sgn_k2x91m4a7q",
  "status": "waitlist_joined",
  "partner_id": "acme-gig-app",
  "created_at": "2026-06-10T18:21:04Z"
}
GET/api/agent/eligibility?filing_status=single&magi=120000

Educational 2026 Roth IRA MAGI phase-out estimate. Pure function — stores nothing. Always surface the returned disclaimer.

Response — 200 OK

{
  "eligible": true,
  "partial": false,
  "contribution_limit": 7500,
  "contribution_limit_age_50_plus": 8600,
  "phase_out": null,
  "tax_year": 2026,
  "disclaimer": "Educational estimate only — not tax, legal, or investment advice..."
}
GET/api/agent/product

PRActicle™ product information: description, pricing tiers, custodian disclosure, launch status, links. Cacheable (max-age 3600).

Response — 200 OK

{
  "product": "PRActicle™ — Portable Retirement Account",
  "type": "Portable Roth IRA",
  "custodian": "FINRA/SIPC-member broker-dealer provides brokerage services.",
  "launch_status": "waitlist",
  ...
}
POST/api/agent/partners

Register as an integration partner. Returns a partner_id slug for signup attribution. Advisory services and partner revenue share launch upon RIA registration approval.

Parameters

companystringrequiredYour company or app name
emailstringrequiredDeveloper contact email
websitestringYour website

Response — 201 Created

{
  "partner_id": "acme-gig-app",
  "status": "pending_review",
  "note": "Use partner_id on POST /api/agent/signups for attribution..."
}

Platform API v1 — Roadmap preview (not yet live)

Base URLhttps://api.gigaverse.ai/v1
Sandbox URLhttps://sandbox.gigaverse.ai/v1
Protocol

HTTPS only (TLS 1.2+)

Format

JSON request/response

API Version

v1 (roadmap — ships with public app launch)

OpenAPI SpecGET /v1/openapi.json

Authentication

All API requests require a Bearer token in the Authorization header. You can generate API keys from the Developer Dashboard.

API Key Types
gv_test_*Sandbox key — no real money, full API access, rate-limited to 100 req/min
gv_live_*Production key — real transactions, requires account verification
curl https://api.gigaverse.ai/v1/payments \
  -H "Authorization: Bearer gv_test_abc123..." \
  -H "Content-Type: application/json"

Rate Limits

Sandbox
100 req/min20 req/sec burst
Starter
1,000 req/min100 req/sec burst
Growth
10,000 req/min500 req/sec burst
Enterprise
CustomCustom burst

Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

Error Handling

Standard HTTP status codes. All errors return a consistent JSON body:

{
  "error": {
    "type": "invalid_request_error",
    "code": "amount_too_small",
    "message": "Amount must be at least 100 (representing $1.00).",
    "param": "amount",
    "doc_url": "https://gigaverse.ai/developers/docs#errors"
  }
}
200Success
201Created
400Bad Request — invalid parameters
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Not Found — resource doesn't exist
409Conflict — idempotency key reuse
429Rate Limited — slow down
500Internal Error — retry with exponential backoff

Payments API

Initiate instant payouts, check transaction status, and manage payment methods.

POST/v1/payments/payout

Create an instant payout to a driver's linked bank account or debit card.

Parameters

driver_idstringrequiredThe driver's unique identifier
amountintegerrequiredAmount in cents (e.g. 14750 = $147.50)
currencystringrequiredThree-letter ISO currency code (usd)
methodstring"instant" (default) or "standard" (1-2 business days)
idempotency_keystringUnique key to prevent duplicate payouts
descriptionstringInternal description for the payout
metadataobjectKey-value pairs for your own use

Response — 201 Created

{
  "id": "pay_3fj82kx9",
  "object": "payout",
  "status": "completed",
  "amount": 14750,
  "currency": "usd",
  "method": "instant",
  "driver_id": "drv_8xk2m9",
  "completed_at": "2026-01-15T14:32:01Z",
  "fee": 25,
  "net_amount": 14725
}
GET/v1/payments/:id

Retrieve a payment by its ID.

Response — 200 OK

{
  "id": "pay_3fj82kx9",
  "object": "payout",
  "status": "completed",
  "amount": 14750,
  "currency": "usd",
  "created_at": "2026-01-15T14:32:00Z",
  "completed_at": "2026-01-15T14:32:01Z"
}
GET/v1/payments?driver_id=drv_8xk2m9&limit=10

List payments with optional filters: driver_id, status, created_after, created_before, limit, starting_after.

Response — 200 OK

{
  "object": "list",
  "data": [{ "id": "pay_3fj82kx9", "amount": 14750, "status": "completed" }],
  "has_more": true,
  "total_count": 42
}

Earnings API

Aggregate earnings across Uber, DoorDash, Lyft, Instacart, Grubhub, Dragonfly, and more.

GET/v1/earnings/:driver_id

Get a driver's earnings summary across all connected platforms.

Parameters

periodstring"today", "week", "month", "year", or custom date range
platformstringFilter by platform (uber, doordash, lyft, instacart, grubhub)
include_tipsbooleanInclude tip breakdown (default: true)

Response — 200 OK

{
  "driver_id": "drv_8xk2m9",
  "period": "2026-01",
  "total_earnings": 485000,
  "total_tips": 72500,
  "total_miles": 1842,
  "platforms": {
    "uber": { "earnings": 185000, "trips": 142, "tips": 28000 },
    "doordash": { "earnings": 210000, "deliveries": 198, "tips": 31500 },
    "instacart": { "earnings": 90000, "batches": 45, "tips": 13000 }
  },
  "daily_breakdown": [
    { "date": "2026-01-01", "earnings": 18500, "tips": 2800, "miles": 67 }
  ]
}
POST/v1/earnings/:driver_id/connect

Initiate OAuth connection to a gig platform for automatic earnings sync.

Parameters

platformstringrequiredPlatform to connect (uber, doordash, lyft, instacart, grubhub)
redirect_urlstringrequiredWhere to redirect after OAuth

Response — 201 Created

{
  "authorization_url": "https://auth.uber.com/oauth/authorize?client_id=...",
  "state": "st_k8x2m9f3",
  "expires_at": "2026-01-15T15:02:00Z"
}

Drivers API

Onboard drivers, manage profiles, and track performance.

POST/v1/drivers

Create a new driver profile.

Parameters

emailstringrequiredDriver's email address
first_namestringrequiredLegal first name
last_namestringrequiredLegal last name
phonestringPhone number in E.164 format
ssn_last4stringLast 4 digits of SSN (for tax reporting)
metadataobjectCustom key-value pairs

Response — 201 Created

{
  "id": "drv_8xk2m9",
  "object": "driver",
  "email": "[email protected]",
  "first_name": "Alex",
  "last_name": "Johnson",
  "status": "active",
  "created_at": "2026-01-15T14:00:00Z",
  "platforms_connected": [],
  "bank_accounts": []
}
GET/v1/drivers/:id

Retrieve a driver's profile, including connected platforms and bank accounts.

Response — 200 OK

{
  "id": "drv_8xk2m9",
  "object": "driver",
  "email": "[email protected]",
  "first_name": "Alex",
  "last_name": "Johnson",
  "status": "active",
  "platforms_connected": ["uber", "doordash"],
  "bank_accounts": [{ "id": "ba_x9f3k2", "last4": "4242", "bank_name": "Chase" }],
  "lifetime_earnings": 2450000,
  "lifetime_payouts": 2380000
}
POST/v1/drivers/:id/bank-accounts

Add a bank account for payouts via Plaid Link or manual entry.

Parameters

plaid_tokenstringPlaid Link public token (recommended)
routing_numberstring9-digit ABA routing number (manual)
account_numberstringBank account number (manual)
account_typestring"checking" or "savings"

Response — 201 Created

{
  "id": "ba_x9f3k2",
  "object": "bank_account",
  "last4": "4242",
  "bank_name": "Chase",
  "status": "verified",
  "created_at": "2026-01-15T14:05:00Z"
}

Tax API

Calculate deductions, generate tax documents, and optimize quarterly estimates. Includes No Tax on Tips deduction support ($25K, 2025-2028).

GET/v1/tax/:driver_id/summary

Get a driver's tax summary for a given year, including estimated deductions and liability.

Parameters

yearintegerrequiredTax year (e.g. 2026)

Response — 200 OK

{
  "driver_id": "drv_8xk2m9",
  "year": 2026,
  "gross_income": 5820000,
  "deductions": {
    "mileage": { "miles": 22140, "rate": 0.725, "amount": 1605150 },
    "tips_exemption": { "eligible_tips": 2500000, "amount": 2500000, "provision": "No Tax on Tips Act 2025-2028" },
    "phone_data": 180000,
    "supplies": 45000,
    "total": 4330150
  },
  "estimated_taxable": 1489850,
  "estimated_tax": 357564,
  "quarterly_estimates": [
    { "q": "Q1", "due": "2026-04-15", "amount": 89391 },
    { "q": "Q2", "due": "2026-06-15", "amount": 89391 },
    { "q": "Q3", "due": "2026-09-15", "amount": 89391 },
    { "q": "Q4", "due": "2027-01-15", "amount": 89391 }
  ]
}
POST/v1/tax/:driver_id/mileage

Log a mileage entry for tax deduction tracking.

Parameters

milesnumberrequiredMiles driven
datestringrequiredDate in YYYY-MM-DD format
purposestring"delivery", "pickup", "commute", or custom
start_locationstringStarting address or lat/lng
end_locationstringEnding address or lat/lng

Response — 201 Created

{
  "id": "mil_f9x2k3",
  "miles": 23.4,
  "deduction_amount": 1697,
  "date": "2026-01-15",
  "purpose": "delivery"
}
GET/v1/tax/:driver_id/1099

Generate or retrieve the driver's 1099-NEC for a tax year.

Parameters

yearintegerrequiredTax year
formatstring"json" (default) or "pdf"

Response — 200 OK

{
  "id": "doc_1099_2026",
  "type": "1099-NEC",
  "year": 2026,
  "status": "available",
  "gross_amount": 5820000,
  "pdf_url": "https://api.gigaverse.ai/v1/tax/drv_8xk2m9/1099/2026.pdf",
  "generated_at": "2027-01-20T00:00:00Z"
}

Webhooks

Receive real-time notifications via HTTPS POST. All webhook payloads include a signature header (X-Gigaverse-Signature) for verification using your webhook secret.

Event Types

payment.completedpayment.failedpayment.refundeddriver.createddriver.updateddriver.bank_account.addedearnings.syncedearnings.platform.connectedearnings.platform.disconnectedtax.1099.readytax.quarterly.due
POST/v1/webhooks

Register a webhook endpoint.

Parameters

urlstringrequiredHTTPS URL to receive events
eventsstring[]requiredArray of event types to subscribe to
descriptionstringOptional label for the endpoint

Response — 201 Created

{
  "id": "wh_m9x2k3f8",
  "url": "https://yourapp.com/webhooks/gigaverse",
  "events": ["payment.completed", "payment.failed"],
  "secret": "whsec_abc123...",
  "status": "active",
  "created_at": "2026-01-15T14:00:00Z"
}

Webhook Payload Example

{
  "id": "evt_k8x2m9f3",
  "type": "payment.completed",
  "created_at": "2026-01-15T14:32:01Z",
  "data": {
    "id": "pay_3fj82kx9",
    "object": "payout",
    "status": "completed",
    "amount": 14750,
    "driver_id": "drv_8xk2m9"
  }
}

Signature Verification

import hmac, hashlib

def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(
        secret.encode(), payload, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

SDKs & Libraries

Pythonpip install gigaverse
from gigaverse import Gigaverse

gv = Gigaverse(api_key="gv_test_...")

payout = gv.payments.create_payout(
    driver_id="drv_8xk2m9",
    amount=14750,
    currency="usd",
    method="instant"
)
print(payout.id)  # pay_3fj82kx9
Node.jsnpm i @gigaverse/sdk
import { Gigaverse } from '@gigaverse/sdk';

const gv = new Gigaverse('gv_test_...');

const payout = await gv.payments.createPayout({
  driverId: 'drv_8xk2m9',
  amount: 14750,
  currency: 'usd',
  method: 'instant',
});
console.log(payout.id); // pay_3fj82kx9
Gogo get gigaverse.ai/sdk
import "gigaverse.ai/sdk"

client := gigaverse.New("gv_test_...")

payout, err := client.Payments.CreatePayout(&gigaverse.PayoutParams{
    DriverID: "drv_8xk2m9",
    Amount:   14750,
    Currency: "usd",
    Method:   "instant",
})
Rubygem install gigaverse
require 'gigaverse'

Gigaverse.api_key = 'gv_test_...'

payout = Gigaverse::Payment.create_payout(
  driver_id: 'drv_8xk2m9',
  amount: 14750,
  currency: 'usd',
  method: 'instant'
)
puts payout.id # pay_3fj82kx9

Changelog

v1.0.02026-02-26
  • Initial public API release
  • Payments, Earnings, Drivers, Tax, and Webhooks APIs
  • Python, Node.js, Go, and Ruby SDKs
  • Sandbox environment available

Important Disclosures: Gigaverse AI, Inc. is a financial technology company, not a bank. Brokerage services for the Gigaverse PRActicle™ (Portable Retirement Account) are provided through a FINRA/SIPC-member broker-dealer, which is responsible for custody of the retirement assets. USDC stablecoin balances held in Gigaverse wallets are not bank deposits and are not FDIC-insured; they are subject to the risks of the underlying issuer (Circle) and the underlying blockchain (Solana). Gigaverse AI, Inc. is not itself a registered investment adviser, broker-dealer, CPA, or attorney. Nothing on this site constitutes financial, tax, legal, or investment advice. All information, including AI-generated content, tax estimates, retirement projections, earnings data, case studies, and driver scenarios, is for illustrative and educational purposes only, is not indicative of any future returns or outcomes, and should not be relied upon as the sole basis for any financial decision. Gigaverse makes no promises, guarantees, or representations regarding any legislation, laws, tax benefits, government programs, or policy outcomes. Laws and regulations may change at any time without notice. Consult a qualified CPA, CFP®, or licensed attorney before making investment, tax, or legal decisions. All investments involve risk, including possible loss of principal. Past performance does not guarantee future results. Full disclosures →