5783 lines
204 KiB
JSON
5783 lines
204 KiB
JSON
{
|
|
"info": {
|
|
"name": "Suggest-Bet Platform API",
|
|
"description": "Auto-generated Postman collection for Nest backend and AI engine endpoints.",
|
|
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
|
|
},
|
|
"variable": [
|
|
{
|
|
"key": "beBaseUrl",
|
|
"value": "http://localhost:3005"
|
|
},
|
|
{
|
|
"key": "aiBaseUrl",
|
|
"value": "http://localhost:8000"
|
|
},
|
|
{
|
|
"key": "accessToken",
|
|
"value": ""
|
|
},
|
|
{
|
|
"key": "match_id",
|
|
"value": "sample-match-id"
|
|
}
|
|
],
|
|
"auth": {
|
|
"type": "bearer",
|
|
"bearer": [
|
|
{
|
|
"key": "token",
|
|
"value": "{{accessToken}}",
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"item": [
|
|
{
|
|
"name": "Nest API",
|
|
"item": [
|
|
{
|
|
"name": "Admin",
|
|
"item": [
|
|
{
|
|
"name": "Get all app settings",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get all app settings",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/settings",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"settings"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/admin/settings - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/settings",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"settings"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get all usage limits",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get all usage limits",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/usage-limits",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"usage-limits"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "page",
|
|
"value": "1",
|
|
"description": "Page number",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "limit",
|
|
"value": "10",
|
|
"description": "Items per page",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "sortBy",
|
|
"value": "",
|
|
"description": "Field to sort by",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "sortOrder",
|
|
"value": "desc",
|
|
"description": "Sort order",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "search",
|
|
"value": "",
|
|
"description": "Search query",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/admin/usage-limits - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/usage-limits",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"usage-limits"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get all users (admin)",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get all users (admin)",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "page",
|
|
"value": "1",
|
|
"description": "Page number",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "limit",
|
|
"value": "10",
|
|
"description": "Items per page",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "sortBy",
|
|
"value": "",
|
|
"description": "Field to sort by",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "sortOrder",
|
|
"value": "desc",
|
|
"description": "Sort order",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "search",
|
|
"value": "",
|
|
"description": "Search query",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/admin/users - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get system analytics overview",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get system analytics overview",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/analytics/overview",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"analytics",
|
|
"overview"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/admin/analytics/overview - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/analytics/overview",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"analytics",
|
|
"overview"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get user by ID",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get user by ID",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users",
|
|
"{id}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/admin/users/{id} - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Reset all usage limits",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Reset all usage limits",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/usage-limits/reset-all",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"usage-limits",
|
|
"reset-all"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/admin/usage-limits/reset-all - 201",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/usage-limits/reset-all",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"usage-limits",
|
|
"reset-all"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 201,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Soft delete a user",
|
|
"request": {
|
|
"method": "DELETE",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Soft delete a user",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users",
|
|
"{id}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "DELETE /api/admin/users/{id} - 200",
|
|
"originalRequest": {
|
|
"method": "DELETE",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Toggle user active status",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Toggle user active status",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users/{{id}}/toggle-active",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users",
|
|
"{id}",
|
|
"toggle-active"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "PUT /api/admin/users/{id}/toggle-active - 200",
|
|
"originalRequest": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users/{{id}}/toggle-active",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users",
|
|
"{id}",
|
|
"toggle-active"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Update an app setting",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Update an app setting",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/settings/{{key}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"settings",
|
|
"{key}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "PUT /api/admin/settings/{key} - 200",
|
|
"originalRequest": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/settings/{{key}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"settings",
|
|
"{key}"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Update user role",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Update user role",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users/{{id}}/role",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users",
|
|
"{id}",
|
|
"role"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "PUT /api/admin/users/{id}/role - 200",
|
|
"originalRequest": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users/{{id}}/role",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users",
|
|
"{id}",
|
|
"role"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Update user subscription",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Update user subscription",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users/{{id}}/subscription",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users",
|
|
"{id}",
|
|
"subscription"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "PUT /api/admin/users/{id}/subscription - 200",
|
|
"originalRequest": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/admin/users/{{id}}/subscription",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"admin",
|
|
"users",
|
|
"{id}",
|
|
"subscription"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Analysis",
|
|
"item": [
|
|
{
|
|
"name": "Analyze multiple matches for coupon",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Analyze multiple matches for coupon",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/analysis/analyze-matches",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"analysis",
|
|
"analyze-matches"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ]\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/analysis/analyze-matches - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ]\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/analysis/analyze-matches",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"analysis",
|
|
"analyze-matches"
|
|
]
|
|
}
|
|
},
|
|
"status": "Analysis successful",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
},
|
|
{
|
|
"name": "POST /api/analysis/analyze-matches - 400",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ]\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/analysis/analyze-matches",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"analysis",
|
|
"analyze-matches"
|
|
]
|
|
}
|
|
},
|
|
"status": "Invalid input",
|
|
"code": 400,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
},
|
|
{
|
|
"name": "POST /api/analysis/analyze-matches - 429",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ]\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/analysis/analyze-matches",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"analysis",
|
|
"analyze-matches"
|
|
]
|
|
}
|
|
},
|
|
"status": "Usage limit exceeded",
|
|
"code": 429,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Analyze multiple matches for coupon (alias)",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Analyze multiple matches for coupon (alias)",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/analysis/analyze",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"analysis",
|
|
"analyze"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ]\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/analysis/analyze - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ]\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/analysis/analyze",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"analysis",
|
|
"analyze"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get analysis history",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get analysis history",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/analysis/history",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"analysis",
|
|
"history"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/analysis/history - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/analysis/history",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"analysis",
|
|
"history"
|
|
]
|
|
}
|
|
},
|
|
"status": "History retrieved",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Auth",
|
|
"item": [
|
|
{
|
|
"name": "Login with email and password",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Login with email and password",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/auth/login",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"auth",
|
|
"login"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"email\": \"user@example.com\",\n \"password\": \"password123\"\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/auth/login - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"email\": \"user@example.com\",\n \"password\": \"password123\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/auth/login",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"auth",
|
|
"login"
|
|
]
|
|
}
|
|
},
|
|
"status": "Login successful",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"accessToken\": \"string\",\n \"refreshToken\": \"string\",\n \"expiresIn\": 1,\n \"user\": {\n \"id\": \"string\",\n \"email\": \"string\",\n \"firstName\": \"string\",\n \"lastName\": \"string\",\n \"roles\": [\n \"string\"\n ]\n }\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Logout and invalidate refresh token",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Logout and invalidate refresh token",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/auth/logout",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"auth",
|
|
"logout"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"refreshToken\": \"string\"\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/auth/logout - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"refreshToken\": \"string\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/auth/logout",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"auth",
|
|
"logout"
|
|
]
|
|
}
|
|
},
|
|
"status": "Logout successful",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Refresh access token",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Refresh access token",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/auth/refresh",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"auth",
|
|
"refresh"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"refreshToken\": \"string\"\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/auth/refresh - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"refreshToken\": \"string\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/auth/refresh",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"auth",
|
|
"refresh"
|
|
]
|
|
}
|
|
},
|
|
"status": "Token refreshed successfully",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"accessToken\": \"string\",\n \"refreshToken\": \"string\",\n \"expiresIn\": 1,\n \"user\": {\n \"id\": \"string\",\n \"email\": \"string\",\n \"firstName\": \"string\",\n \"lastName\": \"string\",\n \"roles\": [\n \"string\"\n ]\n }\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Register a new user",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Register a new user",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/auth/register",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"auth",
|
|
"register"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"email\": \"user@example.com\",\n \"password\": \"password123\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\"\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/auth/register - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"email\": \"user@example.com\",\n \"password\": \"password123\",\n \"firstName\": \"John\",\n \"lastName\": \"Doe\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/auth/register",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"auth",
|
|
"register"
|
|
]
|
|
}
|
|
},
|
|
"status": "User registered successfully",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"accessToken\": \"string\",\n \"refreshToken\": \"string\",\n \"expiresIn\": 1,\n \"user\": {\n \"id\": \"string\",\n \"email\": \"string\",\n \"firstName\": \"string\",\n \"lastName\": \"string\",\n \"roles\": [\n \"string\"\n ]\n }\n}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Coupon",
|
|
"item": [
|
|
{
|
|
"name": "Analyze single match with V20 model",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Analyze single match with V20 model",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/analyze-match",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"analyze-match"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchId\": \"string\"\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/coupon/analyze-match - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchId\": \"string\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/analyze-match",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"analyze-match"
|
|
]
|
|
}
|
|
},
|
|
"status": "Match analysis",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Analyze single match with V20 model (alias)",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Analyze single match with V20 model (alias)",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/analyze",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"analyze"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchId\": \"string\"\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/coupon/analyze - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchId\": \"string\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/analyze",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"analyze"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Create and save a user coupon",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Create and save a user coupon",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/create",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"create"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "\"string\""
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/coupon/create - 201",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "\"string\""
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/create",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"create"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 201,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Create and save a user coupon (alias)",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Create and save a user coupon (alias)",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "\"string\""
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/coupon - 201",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "\"string\""
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 201,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Generate a high-confidence banko combo (2 matches)",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Generate a high-confidence banko combo (2 matches)",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/daily-banko",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"daily-banko"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ]\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/coupon/daily-banko - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ]\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/daily-banko",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"daily-banko"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get coupon history",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get coupon history",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/history",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"history"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "limit",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/coupon/history - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/history",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"history"
|
|
]
|
|
}
|
|
},
|
|
"status": "History retrieved",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get user betting statistics",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get user betting statistics",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/my-stats",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"my-stats"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/coupon/my-stats - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/my-stats",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"my-stats"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Suggest Smart Coupon",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Suggest Smart Coupon",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/suggest",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"suggest"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ],\n \"strategy\": \"BALANCED\",\n \"maxMatches\": 5,\n \"minConfidence\": 60\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/coupon/suggest - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ],\n \"strategy\": \"BALANCED\",\n \"maxMatches\": 5,\n \"minConfidence\": 60\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/coupon/suggest",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"coupon",
|
|
"suggest"
|
|
]
|
|
}
|
|
},
|
|
"status": "Smart Coupon generated",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Health",
|
|
"item": [
|
|
{
|
|
"name": "Basic health check",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Basic health check",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/health",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"health"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/health - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/health",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"status": "The Health Check is successful",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"status\": \"ok\",\n \"info\": {\n \"database\": {\n \"status\": \"up\"\n }\n },\n \"error\": {},\n \"details\": {\n \"database\": {\n \"status\": \"up\"\n }\n }\n}"
|
|
},
|
|
{
|
|
"name": "GET /api/health - 503",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/health",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"status": "The Health Check is not successful",
|
|
"code": 503,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"status\": \"error\",\n \"info\": {\n \"database\": {\n \"status\": \"up\"\n }\n },\n \"error\": {\n \"redis\": {\n \"status\": \"down\",\n \"message\": \"Could not connect\"\n }\n },\n \"details\": {\n \"database\": {\n \"status\": \"up\"\n },\n \"redis\": {\n \"status\": \"down\",\n \"message\": \"Could not connect\"\n }\n }\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Liveness check",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Liveness check",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/health/live",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"health",
|
|
"live"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/health/live - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/health/live",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"health",
|
|
"live"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Readiness check (includes database)",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Readiness check (includes database)",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/health/ready",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"health",
|
|
"ready"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/health/ready - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/health/ready",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"health",
|
|
"ready"
|
|
]
|
|
}
|
|
},
|
|
"status": "The Health Check is successful",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"status\": \"ok\",\n \"info\": {\n \"database\": {\n \"status\": \"up\"\n }\n },\n \"error\": {},\n \"details\": {\n \"database\": {\n \"status\": \"up\"\n }\n }\n}"
|
|
},
|
|
{
|
|
"name": "GET /api/health/ready - 503",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/health/ready",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"health",
|
|
"ready"
|
|
]
|
|
}
|
|
},
|
|
"status": "The Health Check is not successful",
|
|
"code": 503,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"status\": \"error\",\n \"info\": {\n \"database\": {\n \"status\": \"up\"\n }\n },\n \"error\": {\n \"redis\": {\n \"status\": \"down\",\n \"message\": \"Could not connect\"\n }\n },\n \"details\": {\n \"database\": {\n \"status\": \"up\"\n },\n \"redis\": {\n \"status\": \"down\",\n \"message\": \"Could not connect\"\n }\n }\n}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Leagues",
|
|
"item": [
|
|
{
|
|
"name": "Get all countries",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get all countries",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/countries",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"countries"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/leagues/countries - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/countries",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"countries"
|
|
]
|
|
}
|
|
},
|
|
"status": "List of countries",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get all leagues",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get all leagues",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "sport",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/leagues - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get country by ID with leagues",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get country by ID with leagues",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/countries/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"countries",
|
|
"{id}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/leagues/countries/{id} - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/countries/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"countries",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get head-to-head matches between two teams",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get head-to-head matches between two teams",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/teams/h2h",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"teams",
|
|
"h2h"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "team1",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": false
|
|
},
|
|
{
|
|
"key": "team2",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": false
|
|
},
|
|
{
|
|
"key": "limit",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/leagues/teams/h2h - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/teams/h2h",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"teams",
|
|
"h2h"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get league by ID",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get league by ID",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"{id}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/leagues/{id} - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get team by ID",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get team by ID",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/teams/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"teams",
|
|
"{id}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/leagues/teams/{id} - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/teams/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"teams",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get team's recent matches",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get team's recent matches",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/teams/{{id}}/matches",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"teams",
|
|
"{id}",
|
|
"matches"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "limit",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/leagues/teams/{id}/matches - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/teams/{{id}}/matches",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"teams",
|
|
"{id}",
|
|
"matches"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Search teams by name",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Search teams by name",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/teams/search",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"teams",
|
|
"search"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "q",
|
|
"value": "",
|
|
"description": "Search query",
|
|
"disabled": false
|
|
},
|
|
{
|
|
"key": "sport",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/leagues/teams/search - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/leagues/teams/search",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"leagues",
|
|
"teams",
|
|
"search"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Matches",
|
|
"item": [
|
|
{
|
|
"name": "Advanced match query with filters",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Advanced match query with filters",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/matches/query",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"matches",
|
|
"query"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"sport\": \"football\",\n \"limit\": 50,\n \"leagueId\": \"string\",\n \"status\": \"string\",\n \"date\": \"string\",\n \"team\": {\n \"id\": \"string\",\n \"role\": \"home\"\n },\n \"odds\": [\n {\n \"categoryName\": \"Maç Sonucu\",\n \"selectionName\": \"1\",\n \"value\": 1.5,\n \"tolerance\": 0.1\n }\n ],\n \"dateRange\": {\n \"from\": \"string\",\n \"to\": \"string\"\n }\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/matches/query - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"sport\": \"football\",\n \"limit\": 50,\n \"leagueId\": \"string\",\n \"status\": \"string\",\n \"date\": \"string\",\n \"team\": {\n \"id\": \"string\",\n \"role\": \"home\"\n },\n \"odds\": [\n {\n \"categoryName\": \"Maç Sonucu\",\n \"selectionName\": \"1\",\n \"value\": 1.5,\n \"tolerance\": 0.1\n }\n ],\n \"dateRange\": {\n \"from\": \"string\",\n \"to\": \"string\"\n }\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/matches/query",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"matches",
|
|
"query"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "[\n {\n \"id\": \"string\",\n \"name\": \"string\",\n \"code\": \"string\",\n \"country\": \"string\",\n \"sport\": \"string\",\n \"matches\": [\n {\n \"id\": \"string\",\n \"matchName\": \"string\",\n \"matchSlug\": \"string\",\n \"mstUtc\": 1,\n \"status\": \"string\",\n \"state\": \"string\",\n \"scoreHome\": 1,\n \"scoreAway\": 1,\n \"htScoreHome\": 1,\n \"htScoreAway\": 1,\n \"homeTeamName\": \"string\",\n \"homeTeamLogo\": \"string\",\n \"awayTeamName\": \"string\",\n \"awayTeamLogo\": \"string\",\n \"leagueName\": \"string\",\n \"countryName\": \"string\",\n \"odds\": [\n null\n ]\n }\n ]\n }\n]"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get active leagues with upcoming/live matches",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get active leagues with upcoming/live matches",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/matches/leagues/active",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"matches",
|
|
"leagues",
|
|
"active"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "sport",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/matches/leagues/active - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/matches/leagues/active",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"matches",
|
|
"leagues",
|
|
"active"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "[\n {\n \"id\": \"string\",\n \"name\": \"string\",\n \"code\": \"string\",\n \"countryName\": \"string\",\n \"countryFlag\": \"string\",\n \"matchCount\": 1,\n \"liveCount\": 1\n }\n]"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get full match details by ID",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get full match details by ID",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/matches/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"matches",
|
|
"{id}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/matches/{id} - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/matches/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"matches",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "Match details with lineups, stats, odds, events",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
},
|
|
{
|
|
"name": "GET /api/matches/{id} - 404",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/matches/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"matches",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "Match not found",
|
|
"code": 404,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "List matches with pagination",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "List matches with pagination",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/matches",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"matches"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "page",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "limit",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "sport",
|
|
"value": "",
|
|
"description": "",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/matches - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/matches",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"matches"
|
|
]
|
|
}
|
|
},
|
|
"status": "Paginated list of matches",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Predictions",
|
|
"item": [
|
|
{
|
|
"name": "Check AI Engine health status",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Check AI Engine health status",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/health",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"health"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/predictions/health - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/health",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"status\": \"string\",\n \"modelLoaded\": true,\n \"predictionServiceReady\": true\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Generate prediction with provided match data",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Generate prediction with provided match data",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/generate",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"generate"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchId\": \"string\"\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/predictions/generate - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchId\": \"string\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/generate",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"generate"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"model_version\": \"string\",\n \"match_info\": {\n \"match_id\": \"string\",\n \"match_name\": \"string\",\n \"home_team\": \"string\",\n \"away_team\": \"string\",\n \"league\": \"string\",\n \"match_date_ms\": 1\n },\n \"data_quality\": {\n \"label\": \"HIGH\",\n \"score\": 1,\n \"home_lineup_count\": 1,\n \"away_lineup_count\": 1,\n \"flags\": [\n \"string\"\n ]\n },\n \"risk\": {\n \"level\": \"LOW\",\n \"score\": 1,\n \"is_surprise_risk\": true,\n \"surprise_type\": \"string\",\n \"warnings\": [\n \"string\"\n ]\n },\n \"engine_breakdown\": {\n \"team\": 1,\n \"player\": 1,\n \"odds\": 1,\n \"referee\": 1\n },\n \"main_pick\": {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n },\n \"value_pick\": {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n },\n \"bet_advice\": {\n \"playable\": true,\n \"suggested_stake_units\": 1,\n \"reason\": \"string\"\n },\n \"bet_summary\": [\n {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"bet_grade\": \"A\",\n \"playable\": true,\n \"stake_units\": 1,\n \"play_score\": 1,\n \"reasons\": [\n \"string\"\n ]\n }\n ],\n \"supporting_picks\": [\n {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n }\n ],\n \"aggressive_pick\": {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n },\n \"htft\": {\n \"1/1\": 1,\n \"1/X\": 1,\n \"1/2\": 1,\n \"X/1\": 1,\n \"X/X\": 1,\n \"X/2\": 1,\n \"2/1\": 1,\n \"2/X\": 1,\n \"2/2\": 1,\n \"pick\": \"string\",\n \"confidence\": 1\n },\n \"scenario_top5\": [\n {\n \"scenario\": \"string\",\n \"score\": 1,\n \"probability\": 1\n }\n ],\n \"score_prediction\": {\n \"ft\": \"string\",\n \"ht\": \"string\",\n \"xg_home\": 1,\n \"xg_away\": 1,\n \"xg_total\": 1\n },\n \"market_board\": \"string\",\n \"reasoning_factors\": [\n \"string\"\n ]\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Generate Smart Coupon with V20 AI recommendations",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Generate Smart Coupon with V20 AI recommendations",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/smart-coupon",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"smart-coupon"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ],\n \"strategy\": \"BALANCED\",\n \"maxMatches\": 5,\n \"minConfidence\": 60\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/predictions/smart-coupon - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"matchIds\": [\n \"string\"\n ],\n \"strategy\": \"BALANCED\",\n \"maxMatches\": 5,\n \"minConfidence\": 60\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/smart-coupon",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"smart-coupon"
|
|
]
|
|
}
|
|
},
|
|
"status": "Smart coupon generated successfully",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get prediction for a specific match",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get prediction for a specific match",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/{{matchId}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"{matchId}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/predictions/{matchId} - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/{{matchId}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"{matchId}"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"model_version\": \"string\",\n \"match_info\": {\n \"match_id\": \"string\",\n \"match_name\": \"string\",\n \"home_team\": \"string\",\n \"away_team\": \"string\",\n \"league\": \"string\",\n \"match_date_ms\": 1\n },\n \"data_quality\": {\n \"label\": \"HIGH\",\n \"score\": 1,\n \"home_lineup_count\": 1,\n \"away_lineup_count\": 1,\n \"flags\": [\n \"string\"\n ]\n },\n \"risk\": {\n \"level\": \"LOW\",\n \"score\": 1,\n \"is_surprise_risk\": true,\n \"surprise_type\": \"string\",\n \"warnings\": [\n \"string\"\n ]\n },\n \"engine_breakdown\": {\n \"team\": 1,\n \"player\": 1,\n \"odds\": 1,\n \"referee\": 1\n },\n \"main_pick\": {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n },\n \"value_pick\": {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n },\n \"bet_advice\": {\n \"playable\": true,\n \"suggested_stake_units\": 1,\n \"reason\": \"string\"\n },\n \"bet_summary\": [\n {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"bet_grade\": \"A\",\n \"playable\": true,\n \"stake_units\": 1,\n \"play_score\": 1,\n \"reasons\": [\n \"string\"\n ]\n }\n ],\n \"supporting_picks\": [\n {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n }\n ],\n \"aggressive_pick\": {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n },\n \"htft\": {\n \"1/1\": 1,\n \"1/X\": 1,\n \"1/2\": 1,\n \"X/1\": 1,\n \"X/X\": 1,\n \"X/2\": 1,\n \"2/1\": 1,\n \"2/X\": 1,\n \"2/2\": 1,\n \"pick\": \"string\",\n \"confidence\": 1\n },\n \"scenario_top5\": [\n {\n \"scenario\": \"string\",\n \"score\": 1,\n \"probability\": 1\n }\n ],\n \"score_prediction\": {\n \"ft\": \"string\",\n \"ht\": \"string\",\n \"xg_home\": 1,\n \"xg_away\": 1,\n \"xg_total\": 1\n },\n \"market_board\": \"string\",\n \"reasoning_factors\": [\n \"string\"\n ]\n}"
|
|
},
|
|
{
|
|
"name": "GET /api/predictions/{matchId} - 404",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/{{matchId}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"{matchId}"
|
|
]
|
|
}
|
|
},
|
|
"status": "Match not found",
|
|
"code": 404,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get prediction history and accuracy statistics",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get prediction history and accuracy statistics",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/history",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"history"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/predictions/history - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/history",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"history"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"stats\": {\n \"totalPredictions\": 1,\n \"totalResolved\": 1,\n \"correctPredictions\": 1,\n \"accuracyRate\": 1\n },\n \"history\": [\n \"string\"\n ]\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get predictions for upcoming matches",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get predictions for upcoming matches",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/upcoming",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"upcoming"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/predictions/upcoming - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/upcoming",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"upcoming"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"count\": 1,\n \"matches\": [\n {\n \"model_version\": \"string\",\n \"match_info\": {\n \"match_id\": \"string\",\n \"match_name\": \"string\",\n \"home_team\": \"string\",\n \"away_team\": \"string\",\n \"league\": \"string\",\n \"match_date_ms\": 1\n },\n \"data_quality\": {\n \"label\": \"HIGH\",\n \"score\": 1,\n \"home_lineup_count\": 1,\n \"away_lineup_count\": 1,\n \"flags\": [\n \"string\"\n ]\n },\n \"risk\": {\n \"level\": \"LOW\",\n \"score\": 1,\n \"is_surprise_risk\": true,\n \"surprise_type\": \"string\",\n \"warnings\": [\n \"string\"\n ]\n },\n \"engine_breakdown\": {\n \"team\": 1,\n \"player\": 1,\n \"odds\": 1,\n \"referee\": 1\n },\n \"main_pick\": {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n },\n \"value_pick\": {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n },\n \"bet_advice\": {\n \"playable\": true,\n \"suggested_stake_units\": 1,\n \"reason\": \"string\"\n },\n \"bet_summary\": [\n {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"bet_grade\": \"A\",\n \"playable\": true,\n \"stake_units\": 1,\n \"play_score\": 1,\n \"reasons\": [\n \"string\"\n ]\n }\n ],\n \"supporting_picks\": [\n {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n }\n ],\n \"aggressive_pick\": {\n \"market\": \"string\",\n \"pick\": \"string\",\n \"probability\": 1,\n \"confidence\": 1,\n \"odds\": 1,\n \"raw_confidence\": 1,\n \"calibrated_confidence\": 1,\n \"min_required_confidence\": 1,\n \"edge\": 1,\n \"play_score\": 1,\n \"playable\": true,\n \"bet_grade\": \"A\",\n \"stake_units\": 1,\n \"decision_reasons\": [\n \"string\"\n ]\n },\n \"htft\": {\n \"1/1\": 1,\n \"1/X\": 1,\n \"1/2\": 1,\n \"X/1\": 1,\n \"X/X\": 1,\n \"X/2\": 1,\n \"2/1\": 1,\n \"2/X\": 1,\n \"2/2\": 1,\n \"pick\": \"string\",\n \"confidence\": 1\n },\n \"scenario_top5\": [\n {\n \"scenario\": \"string\",\n \"score\": 1,\n \"probability\": 1\n }\n ],\n \"score_prediction\": {\n \"ft\": \"string\",\n \"ht\": \"string\",\n \"xg_home\": 1,\n \"xg_away\": 1,\n \"xg_total\": 1\n },\n \"market_board\": \"string\",\n \"reasoning_factors\": [\n \"string\"\n ]\n }\n ],\n \"modelVersion\": \"string\"\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get value betting opportunities (EV+)",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get value betting opportunities (EV+)",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/value-bets",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"value-bets"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/predictions/value-bets - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/value-bets",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"value-bets"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "[\n {\n \"matchId\": \"string\",\n \"matchName\": \"string\",\n \"betType\": \"string\",\n \"prediction\": \"string\",\n \"confidence\": 1,\n \"odd\": 1,\n \"expectedValue\": 1\n }\n]"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Refetch match data and get prediction",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Refetch match data and get prediction",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/test/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"test",
|
|
"{id}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/predictions/test/{id} - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/predictions/test/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"predictions",
|
|
"test",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Social Poster",
|
|
"item": [
|
|
{
|
|
"name": "GET /api/social-poster/preview/{matchId}",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/social-poster/preview/{{matchId}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"social-poster",
|
|
"preview",
|
|
"{matchId}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/social-poster/preview/{matchId} - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/social-poster/preview/{{matchId}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"social-poster",
|
|
"preview",
|
|
"{matchId}"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "POST /api/social-poster/post/{matchId}",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/social-poster/post/{{matchId}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"social-poster",
|
|
"post",
|
|
"{matchId}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/social-poster/post/{matchId} - 201",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/social-poster/post/{{matchId}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"social-poster",
|
|
"post",
|
|
"{matchId}"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 201,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Spor Toto",
|
|
"item": [
|
|
{
|
|
"name": "Create a bulletin manually",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Creates a new bulletin with 15 matches. Fails if gameCycleNo already exists.",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"gameCycleNo\": 333,\n \"programName\": \"27-29 Mart\",\n \"season\": \"2025-2026\",\n \"payinBeginDate\": \"2026-03-22T10:00:00\",\n \"payinEndDate\": \"2026-03-27T20:55:00\",\n \"matches\": [\n {\n \"matchOrder\": 1,\n \"homeTeamName\": \"Blackpool\",\n \"awayTeamName\": \"Burton Albion\",\n \"leagueName\": \"İN1\",\n \"kickoffTime\": \"2026-03-28T18:00:00\",\n \"matchId\": \"string\"\n }\n ]\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/spor-toto/bulletins - 201",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"gameCycleNo\": 333,\n \"programName\": \"27-29 Mart\",\n \"season\": \"2025-2026\",\n \"payinBeginDate\": \"2026-03-22T10:00:00\",\n \"payinEndDate\": \"2026-03-27T20:55:00\",\n \"matches\": [\n {\n \"matchOrder\": 1,\n \"homeTeamName\": \"Blackpool\",\n \"awayTeamName\": \"Burton Albion\",\n \"leagueName\": \"İN1\",\n \"kickoffTime\": \"2026-03-28T18:00:00\",\n \"matchId\": \"string\"\n }\n ]\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins"
|
|
]
|
|
}
|
|
},
|
|
"status": "Created bulletin with matches",
|
|
"code": 201,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
},
|
|
{
|
|
"name": "POST /api/spor-toto/bulletins - 409",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"gameCycleNo\": 333,\n \"programName\": \"27-29 Mart\",\n \"season\": \"2025-2026\",\n \"payinBeginDate\": \"2026-03-22T10:00:00\",\n \"payinEndDate\": \"2026-03-27T20:55:00\",\n \"matches\": [\n {\n \"matchOrder\": 1,\n \"homeTeamName\": \"Blackpool\",\n \"awayTeamName\": \"Burton Albion\",\n \"leagueName\": \"İN1\",\n \"kickoffTime\": \"2026-03-28T18:00:00\",\n \"matchId\": \"string\"\n }\n ]\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins"
|
|
]
|
|
}
|
|
},
|
|
"status": "Bulletin with this gameCycleNo already exists",
|
|
"code": 409,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Evaluate columns against results",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Compares generated column strings against actual match results. Returns correct count per column and summary (15/14/13/12 bilen).",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/columns/evaluate",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"columns",
|
|
"evaluate"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"bulletinId\": \"string\",\n \"columns\": [\n \"string\"\n ]\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/spor-toto/columns/evaluate - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"bulletinId\": \"string\",\n \"columns\": [\n \"string\"\n ]\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/columns/evaluate",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"columns",
|
|
"evaluate"
|
|
]
|
|
}
|
|
},
|
|
"status": "Evaluation results with correct counts per column",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Generate AI predictions with contrarian strategy",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Analyzes bulletin matches via AI Engine V20+, applies contrarian parimutüel strategy, and generates optimized system coupons. Supports 4 strategies: CONSERVATIVE (100 cols), BALANCED (500), AGGRESSIVE (2500), FORMULA_6PCT (6% sampling).",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/predict",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"predict"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"bulletinId\": \"string\",\n \"strategy\": \"BALANCED\",\n \"maxBudget\": 500,\n \"maxColumns\": 200\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/spor-toto/predict - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"bulletinId\": \"string\",\n \"strategy\": \"BALANCED\",\n \"maxBudget\": 500,\n \"maxColumns\": 200\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/predict",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"predict"
|
|
]
|
|
}
|
|
},
|
|
"status": "Prediction result with per-match analysis, system coupon, and EV report with play recommendation",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Generate Spor Toto columns (full or reduced system)",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Takes match selections (1/X/2 per match) and generates columns via Cartesian product (full) or random sampling (reduced). Returns columns with cost calculation.",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/columns/generate",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"columns",
|
|
"generate"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"bulletinId\": \"string\",\n \"matchSelections\": [\n {\n \"matchOrder\": 1,\n \"selections\": [\n \"string\"\n ]\n }\n ],\n \"strategy\": \"FULL_SYSTEM\",\n \"maxColumns\": 100\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/spor-toto/columns/generate - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"bulletinId\": \"string\",\n \"matchSelections\": [\n {\n \"matchOrder\": 1,\n \"selections\": [\n \"string\"\n ]\n }\n ],\n \"strategy\": \"FULL_SYSTEM\",\n \"maxColumns\": 100\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/columns/generate",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"columns",
|
|
"generate"
|
|
]
|
|
}
|
|
},
|
|
"status": "Generated columns with strategy, cost, and column strings",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get bulletin details",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Returns a single bulletin with all 15 matches, results, and dividend info.",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins",
|
|
"{id}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/spor-toto/bulletins/{id} - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "Bulletin with matches and results",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
},
|
|
{
|
|
"name": "GET /api/spor-toto/bulletins/{id} - 404",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "Bulletin not found",
|
|
"code": 404,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get bulletin pool & EV statistics",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Returns pool distribution (35/20/20/25), expected value calculations, and rollover analysis for a bulletin.",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins/{{id}}/stats",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins",
|
|
"{id}",
|
|
"stats"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/spor-toto/bulletins/{id}/stats - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins/{{id}}/stats",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins",
|
|
"{id}",
|
|
"stats"
|
|
]
|
|
}
|
|
},
|
|
"status": "Pool distribution and EV stats",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get rollover history and trends",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Returns the last N bulletins with rollover amounts and consecutive rollover streak.",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/history",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"history"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "limit",
|
|
"value": "",
|
|
"description": "Number of results (default: 20)",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/spor-toto/history - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/history",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"history"
|
|
]
|
|
}
|
|
},
|
|
"status": "Rollover history with trend data",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "List Spor Toto bulletins",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Returns a paginated list of bulletins, optionally filtered by status.",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "status",
|
|
"value": "",
|
|
"description": "Filter by bulletin status",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "limit",
|
|
"value": "",
|
|
"description": "Max results (default: 10)",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/spor-toto/bulletins - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins"
|
|
]
|
|
}
|
|
},
|
|
"status": "Array of bulletins with matches and results",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Sync current bulletin from Spor Toto API",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Fetches the latest bulletin from sportotov2.iddaa.com and upserts it into the database. Updates match results and dividends if already exists.",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/sync",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"sync"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/spor-toto/sync - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/sync",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"sync"
|
|
]
|
|
}
|
|
},
|
|
"status": "Sync result with action (created/updated/unchanged)",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Update bulletin match results",
|
|
"request": {
|
|
"method": "PATCH",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Updates individual match results and optionally upserts dividend/prize data. Marks bulletin COMPLETED when all 15 results are entered.",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins/{{id}}/results",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins",
|
|
"{id}",
|
|
"results"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"results\": [\n {\n \"matchOrder\": 1,\n \"result\": \"HOME\",\n \"isCancelled\": false,\n \"drawResult\": \"HOME\"\n }\n ],\n \"winners15\": 1,\n \"prize15\": 1,\n \"winners14\": 1,\n \"prize14\": 1,\n \"winners13\": 1,\n \"prize13\": 1,\n \"winners12\": 1,\n \"prize12\": 1,\n \"rolloverNext\": 1\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "PATCH /api/spor-toto/bulletins/{id}/results - 200",
|
|
"originalRequest": {
|
|
"method": "PATCH",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"results\": [\n {\n \"matchOrder\": 1,\n \"result\": \"HOME\",\n \"isCancelled\": false,\n \"drawResult\": \"HOME\"\n }\n ],\n \"winners15\": 1,\n \"prize15\": 1,\n \"winners14\": 1,\n \"prize14\": 1,\n \"winners13\": 1,\n \"prize13\": 1,\n \"winners12\": 1,\n \"prize12\": 1,\n \"rolloverNext\": 1\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins/{{id}}/results",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins",
|
|
"{id}",
|
|
"results"
|
|
]
|
|
}
|
|
},
|
|
"status": "Updated bulletin with results",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
},
|
|
{
|
|
"name": "PATCH /api/spor-toto/bulletins/{id}/results - 404",
|
|
"originalRequest": {
|
|
"method": "PATCH",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"results\": [\n {\n \"matchOrder\": 1,\n \"result\": \"HOME\",\n \"isCancelled\": false,\n \"drawResult\": \"HOME\"\n }\n ],\n \"winners15\": 1,\n \"prize15\": 1,\n \"winners14\": 1,\n \"prize14\": 1,\n \"winners13\": 1,\n \"prize13\": 1,\n \"winners12\": 1,\n \"prize12\": 1,\n \"rolloverNext\": 1\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/spor-toto/bulletins/{{id}}/results",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"spor-toto",
|
|
"bulletins",
|
|
"{id}",
|
|
"results"
|
|
]
|
|
}
|
|
},
|
|
"status": "Bulletin not found",
|
|
"code": 404,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Users",
|
|
"item": [
|
|
{
|
|
"name": "Change current user password",
|
|
"request": {
|
|
"method": "PATCH",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Change current user password",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/me/password",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"me",
|
|
"password"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"currentPassword\": \"oldPassword123\",\n \"newPassword\": \"newPassword456\"\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "PATCH /api/users/me/password - 200",
|
|
"originalRequest": {
|
|
"method": "PATCH",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"currentPassword\": \"oldPassword123\",\n \"newPassword\": \"newPassword456\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/me/password",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"me",
|
|
"password"
|
|
]
|
|
}
|
|
},
|
|
"status": "Password changed successfully",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get a record by ID",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get a record by ID",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"{id}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/users/{id} - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "Record retrieved successfully",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
},
|
|
{
|
|
"name": "GET /api/users/{id} - 404",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "Record not found",
|
|
"code": 404,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get all records with pagination",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get all records with pagination",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "page",
|
|
"value": "1",
|
|
"description": "Page number",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "limit",
|
|
"value": "10",
|
|
"description": "Items per page",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "sortBy",
|
|
"value": "",
|
|
"description": "Field to sort by",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "sortOrder",
|
|
"value": "desc",
|
|
"description": "Sort order",
|
|
"disabled": true
|
|
},
|
|
{
|
|
"key": "search",
|
|
"value": "",
|
|
"description": "Search query",
|
|
"disabled": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/users - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users"
|
|
]
|
|
}
|
|
},
|
|
"status": "Records retrieved successfully",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Get current authenticated user profile",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Get current authenticated user profile",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/me",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"me"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /api/users/me - 200",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/me",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"me"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "\"string\""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Restore a soft-deleted record",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Restore a soft-deleted record",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/{{id}}/restore",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"{id}",
|
|
"restore"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /api/users/{id}/restore - 200",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/{{id}}/restore",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"{id}",
|
|
"restore"
|
|
]
|
|
}
|
|
},
|
|
"status": "Record restored successfully",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Update an existing record",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Update an existing record",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"{id}"
|
|
],
|
|
"query": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "PUT /api/users/{id} - 200",
|
|
"originalRequest": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "Record updated successfully",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
},
|
|
{
|
|
"name": "PUT /api/users/{id} - 404",
|
|
"originalRequest": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/{{id}}",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"{id}"
|
|
]
|
|
}
|
|
},
|
|
"status": "Record not found",
|
|
"code": 404,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Update current user profile",
|
|
"request": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
},
|
|
{
|
|
"key": "Authorization",
|
|
"value": "Bearer {{accessToken}}"
|
|
}
|
|
],
|
|
"description": "Update current user profile",
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/me",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"me"
|
|
],
|
|
"query": []
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"firstName\": \"John\",\n \"lastName\": \"Doe\"\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "PUT /api/users/me - 200",
|
|
"originalRequest": {
|
|
"method": "PUT",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"firstName\": \"John\",\n \"lastName\": \"Doe\"\n}"
|
|
},
|
|
"url": {
|
|
"raw": "{{beBaseUrl}}/api/users/me",
|
|
"host": [
|
|
"{{beBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"api",
|
|
"users",
|
|
"me"
|
|
]
|
|
}
|
|
},
|
|
"status": "",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "\"string\""
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "AI Engine",
|
|
"item": [
|
|
{
|
|
"name": "V20+",
|
|
"item": [
|
|
{
|
|
"name": "Root",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "AI engine root status endpoint",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": []
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "AI engine root status endpoint",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": []
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"status\": \"Suggest-Bet AI Engine v20+\",\n \"engine\": \"V20 Plus Single Match Orchestrator\"\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Health",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "AI engine health endpoint",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/health",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /health",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "AI engine health endpoint",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/health",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"status\": \"healthy\",\n \"engine\": \"v20plus\",\n \"ready\": true\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Analyze Match",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Full V20+ single match analysis",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/analyze/{{match_id}}",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"analyze",
|
|
"{{match_id}}"
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /v20plus/analyze/{{match_id}}",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Full V20+ single match analysis",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/analyze/{{match_id}}",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"analyze",
|
|
"{{match_id}}"
|
|
]
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"model_version\": \"v30.0\",\n \"match_info\": {\n \"match_id\": \"{{match_id}}\"\n },\n \"main_pick\": {\n \"market\": \"OU25\",\n \"pick\": \"2.5 Üst\"\n },\n \"market_board\": {}\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Analyze HTMS",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Half-time result analysis endpoint",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/analyze-htms/{{match_id}}",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"analyze-htms",
|
|
"{{match_id}}"
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /v20plus/analyze-htms/{{match_id}}",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Half-time result analysis endpoint",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/analyze-htms/{{match_id}}",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"analyze-htms",
|
|
"{{match_id}}"
|
|
]
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"match_id\": \"{{match_id}}\",\n \"market\": \"HT\"\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Analyze HTFT",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Half-time/full-time analysis endpoint",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/analyze-htft/{{match_id}}",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"analyze-htft",
|
|
"{{match_id}}"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "timeout_sec",
|
|
"value": "30",
|
|
"description": "Timeout between 3 and 120 seconds"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /v20plus/analyze-htft/{{match_id}}",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Half-time/full-time analysis endpoint",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/analyze-htft/{{match_id}}",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"analyze-htft",
|
|
"{{match_id}}"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "timeout_sec",
|
|
"value": "30",
|
|
"description": "Timeout between 3 and 120 seconds"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"engine\": \"v20plus.1\",\n \"match_info\": {\n \"match_id\": \"{{match_id}}\"\n },\n \"ht_ft_probs\": {\n \"1/1\": 0.25,\n \"X/X\": 0.18\n }\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Generate Coupon",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Generate V20+ coupon from selected matches",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/coupon",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"coupon"
|
|
]
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"match_ids\": [\n \"match-1\",\n \"match-2\"\n ],\n \"strategy\": \"BALANCED\",\n \"max_matches\": 4,\n \"min_confidence\": 55\n}"
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /v20plus/coupon",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Generate V20+ coupon from selected matches",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/coupon",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"coupon"
|
|
]
|
|
},
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": "{\n \"match_ids\": [\n \"match-1\",\n \"match-2\"\n ],\n \"strategy\": \"BALANCED\",\n \"max_matches\": 4,\n \"min_confidence\": 55\n}"
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"success\": true,\n \"data\": {\n \"strategy\": \"BALANCED\",\n \"bets\": []\n }\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Daily Banker",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get daily banker picks",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/daily-banker",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"daily-banker"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "count",
|
|
"value": "3",
|
|
"description": "Number of banker picks"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /v20plus/daily-banker",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Get daily banker picks",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/daily-banker",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"daily-banker"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "count",
|
|
"value": "3",
|
|
"description": "Number of banker picks"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"count\": 3,\n \"bankers\": []\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Reversal Watchlist",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Reversal watchlist candidates",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/reversal-watchlist",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"reversal-watchlist"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "count",
|
|
"value": "20",
|
|
"description": "Result size"
|
|
},
|
|
{
|
|
"key": "horizon_hours",
|
|
"value": "72",
|
|
"description": "Future horizon"
|
|
},
|
|
{
|
|
"key": "min_score",
|
|
"value": "45",
|
|
"description": "Minimum score"
|
|
},
|
|
{
|
|
"key": "top_leagues_only",
|
|
"value": "false",
|
|
"description": "Filter to top leagues"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /v20plus/reversal-watchlist",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "Reversal watchlist candidates",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v20plus/reversal-watchlist",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v20plus",
|
|
"reversal-watchlist"
|
|
],
|
|
"query": [
|
|
{
|
|
"key": "count",
|
|
"value": "20",
|
|
"description": "Result size"
|
|
},
|
|
{
|
|
"key": "horizon_hours",
|
|
"value": "72",
|
|
"description": "Future horizon"
|
|
},
|
|
{
|
|
"key": "min_score",
|
|
"value": "45",
|
|
"description": "Minimum score"
|
|
},
|
|
{
|
|
"key": "top_leagues_only",
|
|
"value": "false",
|
|
"description": "Filter to top leagues"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"count\": 0,\n \"items\": []\n}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "V2",
|
|
"item": [
|
|
{
|
|
"name": "V2 Health",
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "V2 betting engine health",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v2/health",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v2",
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "GET /v2/health",
|
|
"originalRequest": {
|
|
"method": "GET",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "V2 betting engine health",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v2/health",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v2",
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"status\": \"healthy\",\n \"engine\": \"v2.betting_engine\",\n \"models_loaded\": true\n}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "V2 Analyze Match",
|
|
"request": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "V2 leakage-free match analysis",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v2/analyze/{{match_id}}",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v2",
|
|
"analyze",
|
|
"{{match_id}}"
|
|
]
|
|
}
|
|
},
|
|
"response": [
|
|
{
|
|
"name": "POST /v2/analyze/{{match_id}}",
|
|
"originalRequest": {
|
|
"method": "POST",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"description": "V2 leakage-free match analysis",
|
|
"url": {
|
|
"raw": "{{aiBaseUrl}}/v2/analyze/{{match_id}}",
|
|
"host": [
|
|
"{{aiBaseUrl}}"
|
|
],
|
|
"path": [
|
|
"v2",
|
|
"analyze",
|
|
"{{match_id}}"
|
|
]
|
|
}
|
|
},
|
|
"status": "OK",
|
|
"code": 200,
|
|
"_postman_previewlanguage": "json",
|
|
"header": [
|
|
{
|
|
"key": "Content-Type",
|
|
"value": "application/json"
|
|
}
|
|
],
|
|
"body": "{\n \"model_version\": \"v2.betting_engine\",\n \"match_info\": {\n \"match_id\": \"{{match_id}}\"\n },\n \"main_pick\": {\n \"market\": \"MS\",\n \"pick\": \"1\"\n },\n \"market_board\": {\n \"MS\": {\n \"pick\": \"1\",\n \"confidence\": 58.4\n }\n }\n}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |