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
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./api/agent/signupsInitiate 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 addressnamestringThe user's nameplatformsstring[]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..."
}/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"
}/api/agent/eligibility?filing_status=single&magi=120000Educational 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..."
}/api/agent/productPRActicle™ 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",
...
}/api/agent/partnersRegister 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 nameemailstringrequiredDeveloper contact emailwebsitestringYour websiteResponse — 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)
https://api.gigaverse.ai/v1https://sandbox.gigaverse.ai/v1HTTPS only (TLS 1.2+)
JSON request/response
v1 (roadmap — ships with public app launch)
GET /v1/openapi.jsonAuthentication
All API requests require a Bearer token in the Authorization header. You can generate API keys from the Developer Dashboard.
gv_test_*Sandbox key — no real money, full API access, rate-limited to 100 req/mingv_live_*Production key — real transactions, requires account verificationcurl https://api.gigaverse.ai/v1/payments \ -H "Authorization: Bearer gv_test_abc123..." \ -H "Content-Type: application/json"
Rate Limits
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"
}
}200Success201Created400Bad Request — invalid parameters401Unauthorized — invalid or missing API key403Forbidden — insufficient permissions404Not Found — resource doesn't exist409Conflict — idempotency key reuse429Rate Limited — slow down500Internal Error — retry with exponential backoffPayments API
Initiate instant payouts, check transaction status, and manage payment methods.
/v1/payments/payoutCreate an instant payout to a driver's linked bank account or debit card.
Parameters
driver_idstringrequiredThe driver's unique identifieramountintegerrequiredAmount 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 payoutsdescriptionstringInternal description for the payoutmetadataobjectKey-value pairs for your own useResponse — 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
}/v1/payments/:idRetrieve 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"
}/v1/payments?driver_id=drv_8xk2m9&limit=10List 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.
/v1/earnings/:driver_idGet a driver's earnings summary across all connected platforms.
Parameters
periodstring"today", "week", "month", "year", or custom date rangeplatformstringFilter 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 }
]
}/v1/earnings/:driver_id/connectInitiate OAuth connection to a gig platform for automatic earnings sync.
Parameters
platformstringrequiredPlatform to connect (uber, doordash, lyft, instacart, grubhub)redirect_urlstringrequiredWhere to redirect after OAuthResponse — 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.
/v1/driversCreate a new driver profile.
Parameters
emailstringrequiredDriver's email addressfirst_namestringrequiredLegal first namelast_namestringrequiredLegal last namephonestringPhone number in E.164 formatssn_last4stringLast 4 digits of SSN (for tax reporting)metadataobjectCustom key-value pairsResponse — 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": []
}/v1/drivers/:idRetrieve 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
}/v1/drivers/:id/bank-accountsAdd 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).
/v1/tax/:driver_id/summaryGet 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 }
]
}/v1/tax/:driver_id/mileageLog a mileage entry for tax deduction tracking.
Parameters
milesnumberrequiredMiles drivendatestringrequiredDate in YYYY-MM-DD formatpurposestring"delivery", "pickup", "commute", or customstart_locationstringStarting address or lat/lngend_locationstringEnding address or lat/lngResponse — 201 Created
{
"id": "mil_f9x2k3",
"miles": 23.4,
"deduction_amount": 1697,
"date": "2026-01-15",
"purpose": "delivery"
}/v1/tax/:driver_id/1099Generate or retrieve the driver's 1099-NEC for a tax year.
Parameters
yearintegerrequiredTax yearformatstring"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/v1/webhooksRegister a webhook endpoint.
Parameters
urlstringrequiredHTTPS URL to receive eventseventsstring[]requiredArray of event types to subscribe todescriptionstringOptional label for the endpointResponse — 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
pip install gigaversefrom 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_3fj82kx9npm i @gigaverse/sdkimport { 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_3fj82kx9go get gigaverse.ai/sdkimport "gigaverse.ai/sdk"
client := gigaverse.New("gv_test_...")
payout, err := client.Payments.CreatePayout(&gigaverse.PayoutParams{
DriverID: "drv_8xk2m9",
Amount: 14750,
Currency: "usd",
Method: "instant",
})gem install gigaverserequire '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_3fj82kx9Changelog
- • Initial public API release
- • Payments, Earnings, Drivers, Tax, and Webhooks APIs
- • Python, Node.js, Go, and Ruby SDKs
- • Sandbox environment available