This guide documents the currently implemented API gateway surface at backend/api-gateway.
- Local:
http://localhost:8080/api/v1 - Staging (example):
https://api-staging.verdyx.com/api/v1 - Production (example):
https://api.verdyx.com/api/v1
Most write routes require JWT authentication.
Use header:
Authorization: Bearer <jwt>POST /auth/registerPOST /auth/loginPOST /auth/logoutPOST /auth/refreshPOST /auth/verifyPOST /auth/verify-emailPOST /auth/forgot-passwordPOST /auth/reset-passwordPOST /auth/api-keyPOST /auth/wallet/connectPOST /auth/wallet/disconnect
GET /health/GET /health/readyGET /health/liveGET /health/metrics
GET /bountiesGET /bounties/:bounty_idGET /bounties/:bounty_id/statsGET /bounties/activeGET /bounties/completedPOST /bountiesPUT /bounties/:bounty_idPOST /bounties/:bounty_id/cancelPOST /bounties/:bounty_id/extendPOST /bounties/:bounty_id/claimPOST /bounties/:bounty_id/submitPUT /bounties/:bounty_id/finalize
GET /analysisGET /analysis/:analysis_idGET /analysis/:analysis_id/detailsGET /analysis/statsGET /analysis/by-bounty/:bounty_idGET /analysis/by-hash/:file_hashPOST /analysis/submitPOST /analysis/:analysis_id/dispute
GET /reputation/leaderboardGET /reputation/leaderboard/topGET /reputation/user/:user_idGET /reputation/badgesGET /reputation/history/:user_idPOST /reputation/claim-badge
- User profile:
GET /users/me,PUT /users/me,GET /users/me/stats - Wallet:
POST /wallet/connect,GET /wallet/balance,POST /wallet/stake, etc. - Submissions:
GET /submissions,POST /submissions,POST /submissions/:id/vote - Webhooks: CRUD and delivery routes under
/webhooks
curl -X POST http://localhost:8080/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "analyst@example.com",
"password": "StrongPassword123!"
}'curl -X POST http://localhost:8080/api/v1/bounties \
-H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
-d '{
"title": "Analyze suspicious payload",
"description": "Observed in phishing chain",
"reward_amount": 100,
"expires_at": "2026-04-30T23:59:59Z"
}'- OpenAPI spec:
docs/api/openapi.yaml - Postman collection:
docs/api/postman/Verdyx.postman_collection.json - JSON examples:
docs/api/examples/