{"openapi":"3.1.0","info":{"title":"apitree API","version":"0.7.0","description":"AI-Native API Marketplace — one token, 1,950+ APIs. Gateway proxy, marketplace, billing, management, fine-tuning pipeline, and self-healing APIs. Phase 116: fine-tuning pipeline (build/export/validate). Phase 117: AUTH_CHANGE self-healing + credential verification.","contact":{"name":"apitree Support","url":"https://apitree.ai/docs"}},"servers":[{"url":"https://apitree.ai/api","description":"Production"}],"paths":{"/auth/signup":{"post":{"summary":"Create account","tags":["Auth"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","email","password"],"properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":8}}}}}},"responses":{"200":{"description":"Account created with tokens"},"409":{"description":"Email already registered"}}}},"/auth/login":{"post":{"summary":"Login","tags":["Auth"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","password"],"properties":{"email":{"type":"string"},"password":{"type":"string"}}}}}},"responses":{"200":{"description":"Login successful with tokens"},"401":{"description":"Invalid credentials"}}}},"/auth/api-keys":{"post":{"summary":"Create API key","tags":["Auth"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","environment"],"properties":{"name":{"type":"string"},"environment":{"type":"string","enum":["live","test"]}}}}}},"responses":{"200":{"description":"API key created (shown once)"}}},"get":{"summary":"List API keys","tags":["Auth"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List of API keys (prefix only)"}}}},"/v1/proxy/{apiSlug}":{"post":{"summary":"Call API through apitree proxy","description":"Core gateway endpoint. Routes request to provider with credential injection, caching, rate limiting, and usage logging.","tags":["Gateway"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"name":"apiSlug","in":"path","required":true,"schema":{"type":"string"},"description":"API slug (e.g. 'exchange-rates', 'openai-chat')"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Proxied response with apitree envelope","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"description":"Provider response data"},"meta":{"type":"object","properties":{"cached":{"type":"boolean"},"latency_ms":{"type":"number"},"credits_used":{"type":"number"},"request_id":{"type":"string"},"provider":{"type":"string"},"status_code":{"type":"integer"}}}}}}}},"402":{"description":"Insufficient credits"},"404":{"description":"API not found"},"429":{"description":"Rate limit exceeded"},"502":{"description":"Provider error"},"503":{"description":"Circuit breaker open"},"504":{"description":"Provider timeout"}}}},"/v1/apis":{"get":{"summary":"Search API catalog","tags":["Marketplace"],"parameters":[{"name":"q","in":"query","schema":{"type":"string"},"description":"Search query (natural language)"},{"name":"category","in":"query","schema":{"type":"string"},"description":"Filter by category"},{"name":"limit","in":"query","schema":{"type":"integer","default":20},"description":"Max results"}],"responses":{"200":{"description":"API catalog results"}}}},"/v1/apis/{slug}":{"get":{"summary":"Get API details","tags":["Marketplace"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"API details with endpoints and MCP tool definition"}}}},"/v1/billing/credit-units":{"get":{"summary":"Credit unit conversion table","tags":["Billing"],"responses":{"200":{"description":"Master-doc CH.01.5.1 credit units with margins"}}}},"/v1/billing/credits":{"get":{"summary":"Get credit balance","tags":["Billing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Current credit balance"}}}},"/v1/dashboard/overview":{"get":{"summary":"Dashboard overview","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Complete dashboard summary"}}}},"/v1/dashboard/usage/realtime":{"get":{"summary":"Real-time usage","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"minutes","in":"query","schema":{"type":"integer","default":60}}],"responses":{"200":{"description":"Recent usage logs"}}}},"/v1/dashboard/export/usage":{"get":{"summary":"Export usage logs","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"format","in":"query","schema":{"type":"string","enum":["csv","jsonl"],"default":"csv"}},{"name":"days","in":"query","schema":{"type":"integer","default":30}}],"responses":{"200":{"description":"Usage logs in CSV or JSONL format"}}}},"/v1/discover/for-agent":{"get":{"summary":"AI Agent API discovery","tags":["AI Agent"],"parameters":[{"name":"intent","in":"query","required":true,"schema":{"type":"string"},"description":"Natural language intent"},{"name":"max_results","in":"query","schema":{"type":"integer","default":5}}],"responses":{"200":{"description":"Ranked API suggestions with MCP tool definitions"}}}},"/v1/proxy/batch":{"post":{"summary":"Batch call multiple APIs","description":"Execute up to 10 API calls concurrently in a single request.","tags":["Gateway"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["calls"],"properties":{"calls":{"type":"array","maxItems":10,"items":{"type":"object","required":["api"],"properties":{"api":{"type":"string"},"method":{"type":"string","default":"GET"},"path":{"type":"string"},"params":{"type":"object"}}}}}}}}},"responses":{"200":{"description":"Batch results with per-call status"},"400":{"description":"Invalid batch request"}}}},"/v1/proxy/{apiSlug}/estimate":{"get":{"summary":"Estimate API call cost","tags":["Gateway"],"parameters":[{"name":"apiSlug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Cost estimate (credits and USD)"}}}},"/v1/apis/compare":{"get":{"summary":"Compare APIs side-by-side","tags":["Marketplace"],"parameters":[{"name":"slugs","in":"query","required":true,"schema":{"type":"string"},"description":"Comma-separated API slugs (2-5)"}],"responses":{"200":{"description":"Side-by-side comparison with stats"}}}},"/v1/apis/{slug}/subscribe":{"post":{"summary":"Subscribe to API","tags":["Marketplace"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Subscribed"}}},"delete":{"summary":"Unsubscribe from API","tags":["Marketplace"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Unsubscribed"}}}},"/v1/apis/{slug}/changelog":{"get":{"summary":"API changelog","tags":["Marketplace"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Schema change history"}}}},"/v1/notifications":{"get":{"summary":"Get notifications","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Active notifications (credits, key expiry, errors)"}}}},"/v1/dashboard/sessions":{"get":{"summary":"Agent session analytics","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"User agent classification and session stats"}}}},"/v1/dashboard/usage/heatmap":{"get":{"summary":"Usage heatmap","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"7x24 hour usage matrix"}}}},"/v1/discover/featured":{"get":{"summary":"Featured APIs","tags":["Discovery"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":12}}],"responses":{"200":{"description":"Top APIs by composite popularity score"}}}},"/v1/discover/tags":{"get":{"summary":"All tags","tags":["Discovery"],"responses":{"200":{"description":"Tags with occurrence counts"}}}},"/v1/discover/related/{slug}":{"get":{"summary":"Related APIs","tags":["Discovery"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Related APIs by co-usage and category"}}}},"/v1/discover/uptime/{slug}":{"get":{"summary":"API uptime","tags":["Discovery"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"30-day uptime percentage"}}}},"/v1/status/summary":{"get":{"summary":"System summary","tags":["Status"],"responses":{"200":{"description":"Overall system health and stats"}}}},"/v1/status/apis":{"get":{"summary":"Per-API health","tags":["Status"],"responses":{"200":{"description":"Per-API live uptime and latency"}}}},"/v1/status/schema-drift":{"get":{"summary":"Recent schema drift violations","tags":["Status"],"responses":{"200":{"description":"Schema drift log (last 24h)"}}}},"/v1/discover/trending":{"get":{"summary":"Trending APIs (30d usage)","tags":["Discovery"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":10}},{"name":"category","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Top APIs by recent calls"}}}},"/v1/discover/popular":{"get":{"summary":"All-time popular APIs","tags":["Discovery"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":10}}],"responses":{"200":{"description":"All-time most-called APIs"}}}},"/v1/discover/new":{"get":{"summary":"Recently added APIs","tags":["Discovery"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":10}}],"responses":{"200":{"description":"Newest APIs"}}}},"/v1/discover/by-tag/{tag}":{"get":{"summary":"APIs by tag","tags":["Discovery"],"parameters":[{"name":"tag","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":12}},{"name":"sort","in":"query","schema":{"type":"string","enum":["trending","recent"],"default":"trending"}}],"responses":{"200":{"description":"APIs tagged with the given tag, ranked by trending or recency"}}}},"/v1/discover/by-region":{"get":{"summary":"APIs by region","tags":["Discovery"],"parameters":[{"name":"region","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"APIs filtered by deployment region"}}}},"/v1/discover/by-country":{"get":{"summary":"APIs by country","tags":["Discovery"],"parameters":[{"name":"country","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"APIs filtered by country coverage"}}}},"/v1/discover/categories":{"get":{"summary":"Category stats","tags":["Discovery"],"responses":{"200":{"description":"API counts per category"}}}},"/v1/discover/regions":{"get":{"summary":"Region stats","tags":["Discovery"],"responses":{"200":{"description":"API counts per region"}}}},"/v1/discover/leaderboard":{"get":{"summary":"Leaderboard of top APIs","tags":["Discovery"],"parameters":[{"name":"days","in":"query","schema":{"type":"integer","default":7}}],"responses":{"200":{"description":"Top APIs and fastest growing"}}}},"/v1/discover/stats":{"get":{"summary":"Marketplace stats","tags":["Discovery"],"responses":{"200":{"description":"Global marketplace statistics"}}}},"/v1/discover/capabilities":{"get":{"summary":"Capability map (top tags with exemplar APIs)","tags":["Discovery"],"parameters":[{"name":"tag_limit","in":"query","schema":{"type":"integer","default":20,"maximum":50}},{"name":"per_tag","in":"query","schema":{"type":"integer","default":3,"maximum":10}}],"responses":{"200":{"description":"Top tags with API count and ranked exemplar APIs"}}}},"/v1/keys/{keyId}/quota":{"get":{"summary":"Get per-key daily quota","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"keyId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Quota cap and current usage"}}},"put":{"summary":"Set per-key daily quota","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"keyId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"daily_limit":{"type":"integer","minimum":0,"description":"0 or null disables the cap"}}}}}},"responses":{"200":{"description":"Updated quota"}}}},"/v1/dashboard/export.ndjson":{"get":{"summary":"Export usage as NDJSON (agent-friendly)","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"days","in":"query","schema":{"type":"integer","default":30,"maximum":180}}],"responses":{"200":{"description":"Streamed NDJSON, one JSON object per line","content":{"application/x-ndjson":{}}}}}},"/v1/dashboard/quick-actions":{"get":{"summary":"Dashboard quick-action hints","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Suggested next actions with docs_url"}}}},"/v1/dashboard/favorites":{"get":{"summary":"Current user's favorite APIs","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List of favorited APIs"}}}},"/auth/api-keys/{id}/rotate":{"post":{"summary":"Rotate API key","tags":["Auth"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"New key with 24h grace period for old key"}}}},"/v1/webhooks":{"post":{"summary":"Create webhook subscription","tags":["Webhooks"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","events"],"properties":{"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string","enum":["api.call.success","api.call.error","billing.credit_low","sla.breach"]}}}}}}},"responses":{"200":{"description":"Webhook subscription created with signing secret"}}}},"/v1/agent-log/training/stats":{"get":{"summary":"Fine-tuning pipeline statistics","tags":["Fine-Tuning"],"security":[{"bearerAuth":[]}],"description":"Returns training data readiness, quality distribution, freshness metrics, and per-tool breakdown. Admin only.","responses":{"200":{"description":"Pipeline statistics with readyForTraining, alreadyTrained, withHumanEdits, avgQuality, freshness, byTool"}}}},"/v1/agent-log/training/build":{"post":{"summary":"Build validated training dataset","tags":["Fine-Tuning"],"security":[{"bearerAuth":[]}],"description":"Builds a PII-scrubbed, validated training dataset in JSONL or JSON format. Supports quality filtering, tool selection, and human-edit ground truth inclusion.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"min_quality":{"type":"integer","minimum":1,"maximum":5,"default":4},"limit":{"type":"integer","maximum":10000,"default":2000},"tools":{"type":"array","items":{"type":"string"}},"scrub_pii":{"type":"boolean","default":true},"include_human_edits":{"type":"boolean","default":false},"format":{"type":"string","enum":["jsonl","json"],"default":"json"},"auto_mark_trained":{"type":"boolean","default":false}}}}}},"responses":{"200":{"description":"Dataset with version metadata, validation results, and training examples"}}}},"/v1/agent-log/{id}/human-edit":{"put":{"summary":"Submit human-corrected ground truth","tags":["Fine-Tuning"],"security":[{"bearerAuth":[]}],"description":"Replaces the auto-generated output with a human-corrected version. This becomes the ground-truth label for fine-tuning. Admin only.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["corrected_output"],"properties":{"corrected_output":{"description":"The corrected response"},"quality_override":{"type":"integer","minimum":1,"maximum":5}}}}}},"responses":{"200":{"description":"Ground truth updated"}}}},"/admin/health-check/verify-credentials":{"post":{"summary":"Bulk credential verification","tags":["Health"],"security":[{"bearerAuth":[]}],"description":"Tests all active API credentials. Returns auth failures with remediation steps (credential rotation, format fix, IP allowlist check).","responses":{"200":{"description":"Credential verification results with total_checked, auth_failures, healthy counts"}}}},"/admin/health-check/auth-alerts":{"get":{"summary":"Auth failure alerts","tags":["Health"],"security":[{"bearerAuth":[]}],"description":"Lists unresolved AUTH_FAILURE alerts with recent failure counts (7-day window).","responses":{"200":{"description":"Auth alerts with per-API failure counts"}}}},"/v1/apis/{slug}/sdk-snippet":{"get":{"summary":"Ready-to-use code snippet for an API","tags":["Catalog"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"lang","in":"query","schema":{"type":"string","enum":["typescript","python","curl","go"],"default":"typescript"}}],"responses":{"200":{"description":"Code snippet with available_languages list"}}}},"/v1/apis/cost-optimize":{"get":{"summary":"Find cheaper API alternatives ranked by value score","tags":["Discovery"],"parameters":[{"name":"category","in":"query","schema":{"type":"string"}},{"name":"max_price","in":"query","schema":{"type":"number"}},{"name":"limit","in":"query","schema":{"type":"integer","default":10,"maximum":30}}],"responses":{"200":{"description":"Alternatives ranked by value_score = (1/price) × (100-errorRate)/100"}}}},"/v1/agent-log/sequences":{"get":{"summary":"Common tool call sequences across agent sessions","tags":["Fine-Tuning"],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":10,"maximum":50}}],"responses":{"200":{"description":"Most common multi-tool patterns (30-day window)"}}}},"/v1/discover/top-healthy":{"get":{"summary":"Top healthy APIs by composite health score","tags":["Discovery"],"description":"Returns APIs ranked by composite health score (low error rate + fast latency). Minimum 5 calls in 30 days required for inclusion.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":20,"maximum":50}}],"responses":{"200":{"description":"Ranked API list with health_score, health_grade, error_rate, avg_latency_ms"}}}},"/v1/billing/forecast":{"get":{"summary":"Credit burn rate forecast","tags":["Billing"],"security":[{"bearerAuth":[]}],"description":"Returns credit depletion forecast: burn rate/day, days remaining, projected date, trend (accelerating/steady/decelerating), cache savings.","responses":{"200":{"description":"Forecast with balance, burnRatePerDay, daysRemaining, projectedDepletionDate, trend, cacheSavingsPerDay"}}}},"/v1/byok":{"get":{"summary":"List BYOK provider keys (masked)","tags":["BYOK"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Your saved provider keys with prefixes"}}},"post":{"summary":"Add or update BYOK provider key","tags":["BYOK"],"security":[{"bearerAuth":[]}],"description":"Stored AES-256-GCM encrypted at rest. Used by apitree proxy when calling the matching API slug.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["apiSlug","providerName","keyValue"],"properties":{"apiSlug":{"type":"string"},"providerName":{"type":"string"},"keyValue":{"type":"string"},"authMethod":{"type":"string","enum":["bearer","header","query"]},"headerName":{"type":"string"},"queryParamName":{"type":"string"},"keyLabel":{"type":"string"}}}}}},"responses":{"200":{"description":"Key saved"}}}},"/v1/byok/{slug}":{"delete":{"summary":"Revoke BYOK key for a specific API","tags":["BYOK"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Key revoked"}}}},"/v1/stripe/status":{"get":{"summary":"Check if Stripe is configured","tags":["Billing"],"responses":{"200":{"description":"Stripe activation status"}}}},"/v1/stripe/checkout":{"post":{"summary":"Create plan upgrade checkout session","tags":["Billing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Checkout session URL"}}}},"/v1/stripe/checkout/credits":{"post":{"summary":"Create credit bundle purchase session","tags":["Billing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Checkout session URL"}}}},"/v1/stripe/webhook":{"post":{"summary":"Stripe webhook receiver (HMAC verified)","tags":["Billing"],"description":"Handles checkout.session.completed, invoice.paid, customer.subscription.*","responses":{"200":{"description":"Event processed"}}}},"/v1/stripe/invoices":{"get":{"summary":"Invoice history for current user","tags":["Billing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List of Stripe invoices"}}}},"/v1/incidents":{"get":{"summary":"Recent platform incidents","tags":["Status"],"responses":{"200":{"description":"List of incidents"}}}},"/v1/incidents/active":{"get":{"summary":"Active (unresolved) incidents only","tags":["Status"],"responses":{"200":{"description":"List of active incidents"}}}},"/admin/system-credentials":{"get":{"summary":"List system-managed API credentials","tags":["Admin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"All system credentials with masked keys"}}},"post":{"summary":"Add or update system credential","tags":["Admin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Saved, proxy picks up on next call"}}}},"/admin/pilots":{"get":{"summary":"Pilot customer CRM — list all","tags":["Admin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Pilots with stage summary"}}},"post":{"summary":"Create pilot customer entry","tags":["Admin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Pilot created"}}}},"/admin/users/{id}/credits/adjust":{"post":{"summary":"Manual credit adjustment (ops)","tags":["Admin"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Credits adjusted, audit logged, Slack notified"}}}},"/admin/health-check/score/{slug}":{"get":{"summary":"API health score","tags":["Health"],"security":[{"bearerAuth":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"description":"Composite health score (0-100) with grade (A-F). Components: uptime 40%, error resistance 40%, latency grade 20%.","responses":{"200":{"description":"Health score with slug, score, grade, components"}}}},"/v1/status/api/{slug}":{"get":{"summary":"Single API real-time health","tags":["Status"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"30min + 24h stats"}}}},"/v1/status/badge/{slug}":{"get":{"summary":"Health badge SVG","tags":["Status"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"SVG badge image"}}}},"/v1/dashboard/anomalies":{"get":{"summary":"Usage anomalies","tags":["Dashboard"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Unusual usage patterns"}}}},"/v1/suggest":{"get":{"summary":"Search autocomplete","tags":["Discovery"],"parameters":[{"name":"q","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Autocomplete suggestions"}}}},"/v1/gdpr/export":{"get":{"summary":"GDPR data export","tags":["Privacy"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Full user data export"}}}},"/v1/gdpr/delete":{"post":{"summary":"GDPR data deletion","tags":["Privacy"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Deletion request submitted"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"apiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"Bearer nxs_live_xxx or Bearer nxs_test_xxx"}}}}