{"explorer":{"filtered_operation_count":45,"generated_at_utc":"2026-04-04T10:23:59Z","operation_count":45,"operations":[{"example":"","fields":["hours"],"method":"GET","operation":"GET /api/partner/analytics/usage","operation_id":"getPartnerUsageAnalytics","path":"/api/partner/analytics/usage","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Per-key usage analytics and webhook delivery health"},{"example":"{\"success\":true,\"partner\":\"Acme Partner\",\"key_id\":\"acme_key\",\"docs\":{\"api_guide\":\"/developers/api-guide.md\",\"openapi\":\"/api/openapi.yaml\"},\"query_support\":{\"include_meta\":true},\"meta\":{\"request_id\":\"abc123\",\"generated_at_utc\":\"2026-03-08T20:00:00Z\"}}","fields":["include_meta","If-Modified-Since"],"method":"GET","operation":"GET /api/partner/capabilities","operation_id":"getPartnerCapabilities","path":"/api/partner/capabilities","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Partner API capability discovery"},{"example":"","fields":[],"method":"POST","operation":"POST /api/partner/donation-claim","operation_id":"postPartnerDonationClaim","path":"/api/partner/donation-claim","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Issue a donation claim (if enabled)"},{"example":"","fields":[],"method":"GET","operation":"GET /api/partner/status","operation_id":"getPartnerStatus","path":"/api/partner/status","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Partner integration status page payload"},{"example":"{\"success\":true,\"count\":1,\"users\":[{\"id\":42,\"username\":\"vet_user\",\"status\":\"active\"}],\"query\":{\"limit\":10,\"offset\":0,\"cursor\":null,\"q\":null,\"status\":\"active\"},\"pagination\":{\"has_more\":false,\"next_offset\":null,\"next_cursor\":null},\"meta\":{\"request_id\":\"abc123\",\"generated_at_utc\":\"2026-03-08T20:00:00Z\"}}","fields":["q","email","username","wallet","include_wallets","status","limit","offset","cursor","include_meta"],"method":"GET","operation":"GET /api/partner/user-lookup","operation_id":"getPartnerUserLookup","path":"/api/partner/user-lookup","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Lookup partner-linked users by email/username/wallet"},{"example":"{\"success\":true,\"count\":1,\"users\":[{\"id\":2048,\"external_id\":\"partner-2048\",\"username\":\"new_user\",\"status\":\"active\"}],\"query\":{\"limit\":25,\"offset\":0,\"cursor\":null,\"status\":null,\"q\":null,\"include_wallets\":false},\"pagination\":{\"has_more\":false,\"next_offset\":null,\"next_cursor\":null}}","fields":["status","q","include_wallets","limit","offset","cursor","include_meta"],"method":"GET","operation":"GET /api/partner/users","operation_id":"getPartnerUsers","path":"/api/partner/users","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"List users linked to the partner key"},{"example":"{\"success\":true,\"external_id\":\"partner-2048\",\"user\":{\"id\":2048,\"username\":\"new_user\",\"status\":\"active\"}}","fields":[],"method":"POST","operation":"POST /api/partner/users","operation_id":"postPartnerUsers","path":"/api/partner/users","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Create a user"},{"example":"{\"success\":true,\"user\":{\"id\":2048,\"username\":\"new_user\",\"status\":\"active\"}}","fields":["user_id"],"method":"GET","operation":"GET /api/partner/users/{user_id}","operation_id":"getPartnerUserById","path":"/api/partner/users/{user_id}","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Get a user"},{"example":"{\"success\":true,\"user_id\":2048,\"updated\":true}","fields":["user_id"],"method":"PATCH","operation":"PATCH /api/partner/users/{user_id}","operation_id":"patchPartnerUserById","path":"/api/partner/users/{user_id}","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Update a user (partial)"},{"example":"{\"success\":true,\"user_id\":2048,\"wallet\":{\"address\":\"7e2vExampleWallet11111111111111111111111111111111\",\"linked\":true}}","fields":["user_id"],"method":"POST","operation":"POST /api/partner/users/{user_id}/wallets","operation_id":"postPartnerUserWallets","path":"/api/partner/users/{user_id}/wallets","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Link a wallet to a user"},{"example":"","fields":["status","reason_tag","from","to"],"method":"GET","operation":"GET /api/partner/webhook-events","operation_id":"getPartnerWebhookEvents","path":"/api/partner/webhook-events","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"List partner webhook events with replay-oriented filters"},{"example":"","fields":[],"method":"POST","operation":"POST /api/partner/webhook-events/replay","operation_id":"postPartnerWebhookReplayBatch","path":"/api/partner/webhook-events/replay","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Batch replay webhook events"},{"example":"{\"success\":true,\"count\":1,\"webhooks\":[{\"id\":42,\"event_type\":\"salutes.credit\",\"is_active\":1}],\"pagination\":{\"has_more\":false,\"next_offset\":null,\"next_cursor\":null},\"query\":{\"limit\":50,\"offset\":0,\"cursor\":null,\"event_type\":null,\"is_active\":null}}","fields":["event_type","is_active","limit","offset","cursor","include_meta"],"method":"GET","operation":"GET /api/partner/webhooks","operation_id":"getPartnerWebhooks","path":"/api/partner/webhooks","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"List partner webhooks"},{"example":"{\"success\":true,\"webhook\":{\"id\":42,\"event_type\":\"salutes.credit\",\"target_url\":\"https://example.com/webhooks/vets\",\"is_active\":true,\"created_at\":\"2026-03-08T20:00:00Z\",\"updated_at\":\"2026-03-08T20:00:00Z\"}}","fields":[],"method":"POST","operation":"POST /api/partner/webhooks","operation_id":"postPartnerWebhooks","path":"/api/partner/webhooks","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Create partner webhook"},{"example":"","fields":["hours"],"method":"GET","operation":"GET /api/partner/webhooks/dlq","operation_id":"getPartnerWebhookDlq","path":"/api/partner/webhooks/dlq","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Dead-letter queue summary and remediation guidance"},{"example":"","fields":[],"method":"POST","operation":"POST /api/partner/webhooks/signature/verify","operation_id":"postPartnerWebhookSignatureVerify","path":"/api/partner/webhooks/signature/verify","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Verify webhook signature payloads against a candidate secret"},{"example":"","fields":["webhook_id"],"method":"DELETE","operation":"DELETE /api/partner/webhooks/{webhook_id}","operation_id":"deletePartnerWebhookById","path":"/api/partner/webhooks/{webhook_id}","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Delete partner webhook"},{"example":"","fields":["webhook_id"],"method":"POST","operation":"POST /api/partner/webhooks/{webhook_id}/test","operation_id":"postPartnerWebhookTest","path":"/api/partner/webhooks/{webhook_id}/test","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Test webhook delivery"},{"example":"{\"success\":true,\"stats\":{\"users\":1250,\"wallets\":980,\"faucet_claims_24h\":41}}","fields":[],"method":"GET","operation":"GET /api/public-stats","operation_id":"getPublicStats","path":"/api/public-stats","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Public counters and stats"},{"example":"{\"success\":true,\"status\":{\"overall\":\"ok\",\"checks\":{\"api\":\"ok\",\"audit_anomalies\":\"ok\",\"alert_monitor\":\"ok\",\"ops_jobs\":\"ok\"}}}","fields":[],"method":"GET","operation":"GET /api/public/system-status","operation_id":"getPublicSystemStatus","path":"/api/public/system-status","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Public system health and automation status snapshot"},{"example":"{\"success\":true,\"hours\":24,\"limit\":10,\"incidents\":[{\"started_at\":\"2026-03-05T01:08:08Z\",\"ended_at\":\"2026-03-05T01:09:39Z\",\"severity\":\"warn\"}]}","fields":["hours","limit"],"method":"GET","operation":"GET /api/public/system-status/incidents","operation_id":"getPublicSystemStatusIncidents","path":"/api/public/system-status/incidents","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Incident windows derived from rolling status history"},{"example":"{\"success\":true,\"limit\":20,\"counts\":{\"ok\":18,\"warn\":2,\"bad\":0},\"points\":[{\"generated_at\":\"2026-03-06T00:00:00Z\",\"overall\":\"ok\"}]}","fields":["limit"],"method":"GET","operation":"GET /api/public/system-status/trend","operation_id":"getPublicSystemStatusTrend","path":"/api/public/system-status/trend","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Rolling status history for uptime trend charts"},{"example":"{\"success\":true,\"selected_hours\":168,\"overall\":{\"degraded_pct\":0.0},\"checks\":{\"api\":{\"degraded_pct\":0.0}}}","fields":["hours"],"method":"GET","operation":"GET /api/public/system-status/uptime","operation_id":"getPublicSystemStatusUptime","path":"/api/public/system-status/uptime","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Windowed uptime percentages and per-check degraded rates"},{"example":"{\"success\":true,\"user_id\":\"42\",\"balance\":1200,\"partner_key_id\":\"acme_key\"}","fields":["user_id","include_meta"],"method":"GET","operation":"GET /api/salutes/balance","operation_id":"getSalutesBalance","path":"/api/salutes/balance","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Get salutes balance for a partner-scoped user id"},{"example":"","fields":[],"method":"GET","operation":"GET /api/salutes/conversion-policy","operation_id":"getSalutesConversionPolicy","path":"/api/salutes/conversion-policy","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Fetch current salutes conversion policy"},{"example":"","fields":[],"method":"POST","operation":"POST /api/salutes/convert","operation_id":"postSalutesConvert","path":"/api/salutes/convert","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Convert salutes to VETS (policy-controlled)"},{"example":"{\"success\":true,\"user_id\":\"42\",\"balance\":1300,\"delta\":100,\"ledger_entry_id\":101,\"idempotency_key\":\"idem_abc123\"}","fields":[],"method":"POST","operation":"POST /api/salutes/credit","operation_id":"postSalutesCredit","path":"/api/salutes/credit","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Credit salutes (partner/admin)"},{"example":"{\"success\":true,\"user_id\":\"42\",\"balance\":1200,\"delta\":-100,\"ledger_entry_id\":102,\"idempotency_key\":\"idem_def456\"}","fields":[],"method":"POST","operation":"POST /api/salutes/debit","operation_id":"postSalutesDebit","path":"/api/salutes/debit","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Debit salutes (partner/admin)"},{"example":"{\"success\":true,\"user_id\":\"42\",\"balance\":1200,\"ledger\":[{\"id\":101,\"delta\":100,\"reason\":\"bonus\"}],\"query\":{\"limit\":200,\"offset\":0,\"order\":\"desc\",\"reason\":null,\"source\":null},\"pagination\":{\"has_more\":false,\"next_offset\":null}}","fields":["user_id","limit","offset","order","reason","source","include_meta"],"method":"GET","operation":"GET /api/salutes/ledger","operation_id":"getSalutesLedger","path":"/api/salutes/ledger","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Get salutes ledger entries with optional filters/pagination"},{"example":"{\"success\":true,\"rows\":[{\"signature\":\"5SdxExampleTxSig111111111111111111111111111111111\",\"block_time\":\"2026-03-05T20:00:00Z\",\"vets_delta\":\"125.00\"}]}","fields":["limit"],"method":"GET","operation":"GET /api/transactions/latest","operation_id":"getTransactionsLatest","path":"/api/transactions/latest","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Latest known token transactions"},{"example":"{\"success\":true,\"status\":{\"overall\":\"ok\"}}","fields":[],"method":"GET","operation":"GET /status.json","operation_id":"getStatusJsonAlias","path":"/status.json","source":"/home/vets-coin/flask_api/docs/openapi.yaml","summary":"Alias of /api/public/system-status"},{"example":"","fields":["run","sigs_increase_threshold_pct","rows_increase_threshold_pct"],"method":"GET","operation":"GET /transparency/audit-anomalies/alerts.csv","operation_id":"getTransparencyAnomalyAlertsCsv","path":"/transparency/audit-anomalies/alerts.csv","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Download current alert snapshot as CSV"},{"example":"{\"success\":true,\"selected_run\":\"latest\",\"selected_label\":\"Latest (rolling)\",\"evaluated_at\":\"2026-02-16T08:00:00Z\",\"snapshot\":{\"alert_level\":\"bad\",\"should_alert\":true,\"thresholds\":{\"sigs_increase_threshold_pct\":50.0,\"rows_increase_threshold_pct\":50.0},\"points_available\":5,\"current\":{\"run_id\":\"latest\",\"overall\":\"bad\",\"signatures_with_anomalies\":4,\"rows_total\":12,\"sig_delta\":3,\"sig_delta_pct\":300.0,\"rows_delta\":3,\"rows_delta_pct\":33.3},\"baseline\":{\"run_id\":\"20260215T100000Z\",\"overall\":\"warn\",\"signa","fields":["run","sigs_increase_threshold_pct","rows_increase_threshold_pct","include_recommendations"],"method":"GET","operation":"GET /transparency/audit-anomalies/alerts.json","operation_id":"getTransparencyAnomalyAlerts","path":"/transparency/audit-anomalies/alerts.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Evaluate selected run against configurable alert thresholds"},{"example":"","fields":["run_a","run_b","include_rows","row_limit"],"method":"GET","operation":"GET /transparency/audit-anomalies/diff/compare.csv","operation_id":"getTransparencyAnomalyCompareCsv","path":"/transparency/audit-anomalies/diff/compare.csv","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Download anomaly type deltas between any two runs as CSV"},{"example":"{\"success\":true,\"run_a\":{\"selector\":\"20260215T113203Z\",\"resolved_run\":\"20260215T113203Z\"},\"run_b\":{\"selector\":\"latest\",\"resolved_run\":\"latest\"},\"total_delta\":2,\"include_rows\":false,\"rows\":[{\"type\":\"outlier_delta\",\"selected\":4,\"latest\":1,\"delta\":3}]}","fields":["run_a","run_b","include_rows","row_limit"],"method":"GET","operation":"GET /transparency/audit-anomalies/diff/compare.json","operation_id":"getTransparencyAnomalyCompareJson","path":"/transparency/audit-anomalies/diff/compare.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Compare anomaly type deltas between any two runs"},{"example":"{\"success\":true,\"selected_run\":\"20260215T113203Z\",\"latest_generated_at\":\"2026-02-16T00:00:00Z\",\"selected_total\":5,\"latest_total\":3,\"total_delta\":2,\"include_rows\":true,\"row_limit\":1,\"selected_rows_count\":1,\"latest_rows_count\":1,\"rows\":[{\"type\":\"outlier_delta\",\"selected\":4,\"latest\":1,\"delta\":3,\"pct_delta\":300.0}]}","fields":["run","include_rows","row_limit"],"method":"GET","operation":"GET /transparency/audit-anomalies/diff/export.json","operation_id":"getTransparencyAnomalyDiffExportJson","path":"/transparency/audit-anomalies/diff/export.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Get selected-vs-latest anomaly type diff as JSON"},{"example":"{\"success\":true,\"count\":5,\"glossary\":[{\"type\":\"outlier_delta\",\"description\":\"Signature has an unusually large owner-level VETS delta.\"}]}","fields":[],"method":"GET","operation":"GET /transparency/audit-anomalies/glossary.json","operation_id":"getTransparencyAnomalyGlossary","path":"/transparency/audit-anomalies/glossary.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Plain-language glossary for anomaly type labels"},{"example":"{\"success\":true,\"selected_run\":\"latest\",\"count\":2,\"runs\":[{\"run\":\"latest\",\"label\":\"Latest (rolling files)\",\"is_complete\":true,\"is_selected\":true},{\"run\":\"20260215T113203Z\",\"label\":\"2026-02-15 11:32:03 UTC\",\"is_complete\":true,\"is_selected\":false}]}","fields":["run"],"method":"GET","operation":"GET /transparency/audit-anomalies/runs.json","operation_id":"getTransparencyAnomalyRuns","path":"/transparency/audit-anomalies/runs.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"List available anomaly runs"},{"example":"{\"success\":true,\"selected_run\":\"latest\",\"selected_label\":\"Latest (rolling)\",\"summary_available\":true,\"compare_with_latest\":null,\"include_top_anomalies\":true,\"top_limit\":5,\"top_anomalies_count\":2,\"top_anomalies\":[{\"severity\":\"bad\",\"signature\":\"abc123\",\"anomaly_types\":\"outlier_delta\",\"max_abs_delta\":1200}]}","fields":["run","include_top_anomalies","top_limit"],"method":"GET","operation":"GET /transparency/audit-anomalies/summary.json","operation_id":"getTransparencyAnomalySummary","path":"/transparency/audit-anomalies/summary.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Get selected run anomaly summary"},{"example":"{\"success\":true,\"count\":1,\"rows\":[{\"changed_at\":\"2026-03-10T20:30:00Z\",\"parameter\":\"abs_delta_warn_threshold\",\"previous_value\":25000,\"new_value\":20000,\"owner\":\"ops\",\"reason\":\"Raise sensitivity\"}]}","fields":["limit"],"method":"GET","operation":"GET /transparency/audit-anomalies/threshold-history.json","operation_id":"getTransparencyAnomalyThresholdHistory","path":"/transparency/audit-anomalies/threshold-history.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Threshold change history for anomaly detector settings"},{"example":"{\"success\":true,\"selected_run\":\"latest\",\"selected_metric\":\"rows\",\"include_status_counts\":true,\"status_counts\":{\"ok\":1,\"warn\":1,\"bad\":1,\"other\":0},\"count\":3,\"points\":[{\"run_id\":\"20260214T100000Z\",\"label\":\"2026-02-14 10:00:00 UTC\",\"rows_total\":9,\"metric\":\"rows\",\"metric_value\":9,\"metric_delta\":null,\"metric_delta_pct\":null}]}","fields":["run","metric","include_status_counts","severity","signature","types","min_abs_delta","limit"],"method":"GET","operation":"GET /transparency/audit-anomalies/trend.json","operation_id":"getTransparencyAnomalyTrend","path":"/transparency/audit-anomalies/trend.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Get anomaly trend points"},{"example":"{\"success\":true,\"count\":1,\"rows\":[{\"signature\":\"abc123\",\"status\":\"investigating\",\"owner\":\"ops\",\"eta_utc\":\"2026-03-11T12:00:00Z\"}]}","fields":["status"],"method":"GET","operation":"GET /transparency/audit-anomalies/triage.json","operation_id":"getTransparencyAnomalyTriage","path":"/transparency/audit-anomalies/triage.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Triage lifecycle snapshot for anomaly signatures"},{"example":"{\"success\":true,\"generated_at_utc\":\"2026-03-10T20:40:00Z\",\"status\":{\"overall\":\"ok\"},\"incidents\":[],\"anomaly_summary\":{},\"monthly_digest\":[],\"wallet_concentration\":{\"success\":true}}","fields":[],"method":"GET","operation":"GET /transparency/trust-dashboard.json","operation_id":"getTransparencyTrustDashboardJson","path":"/transparency/trust-dashboard.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Consolidated trust dashboard payload"},{"example":"","fields":[],"method":"GET","operation":"GET /transparency/wallet-concentration.csv","operation_id":"getTransparencyWalletConcentrationCsv","path":"/transparency/wallet-concentration.csv","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Wallet concentration trend export as CSV"},{"example":"{\"success\":true,\"latest\":{\"top1_pct\":12.4,\"top5_pct\":37.1,\"top10_pct\":52.8},\"trend_points\":[{\"generated_at\":\"2026-03-10T20:00:00Z\",\"top10_pct\":52.8}]}","fields":[],"method":"GET","operation":"GET /transparency/wallet-concentration.json","operation_id":"getTransparencyWalletConcentration","path":"/transparency/wallet-concentration.json","source":"/home/vets-coin/flask_api/docs/openapi-transparency.yaml","summary":"Wallet concentration snapshot and trend points"}],"query":"","schema_count":0,"schemas":[]},"success":true}
