API Documentation
Welcome to the SignalSolid API. Use these endpoints to integrate your desktop trading bot / EAs, manage licenses, and sync statistics securely.
Authentication
All API requests require your API token in the Authorization: Token <your_token> header.
Recommended base path: /api/v1/ (the legacy /api/ path is supported for backwards compatibility).
Endpoints
- POST /api/v1/license/validate/: Validate a license key for an EA (token required).
{ "key": "LICENSE-KEY", "ea_id": 1 } - POST /api/v1/license/validate-public/: Validate via public flow (no token).
{ "license_key": "LICENSE-KEY", "account_number": "123456", "terminal_id": "..." } - POST /api/v1/license/activate/: Activate a license key.
{ "key": "LICENSE-KEY" } - POST /api/v1/license/deactivate/: Deactivate (revoke) a license key.
{ "key": "LICENSE-KEY" } - GET/POST /api/v1/ea/config/: Fetch config or sync usage.
GET ?key=LICENSE-KEY
POST { "key": "LICENSE-KEY", "usage": { ... } } - POST /api/v1/trading-stats/update/: Upload trading statistics (token required).
{ "license_key":"...", "account_number":"...", "total_trades":123, "winning_trades":70, "losing_trades":53, "total_profit":123.45, "total_loss":67.89 } - POST /api/v1/trading-stats/update-public/: Upload trading statistics (no token).
{ "license_key":"...", "account_number":"...", ... } - POST /api/v1/licenses/: List licenses for a user.
{ "username": "your_username", "password": "your_password" } - POST /api/v1/subscriptions/: Get subscription status for a user.
{ "username": "your_username", "password": "your_password" } - POST /api/v1/payments/: Get payment history for a user.
{ "username": "your_username", "password": "your_password" }
Example: Validate License (cURL)
curl -X POST https://yourdomain.com/api/v1/license/validate/ \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"key":"LICENSE-UUID","ea_id":1}'
Example: Validate License (MQL5)
// See the API Token page for the latest sample code
Example: List Licenses
curl -X POST https://yourdomain.com/api/v1/licenses/ \
-H "Content-Type: application/json" \
-d '{"username":"your_username","password":"your_password"}'
Response:
{
"licenses": [
{"key": "...", "ea": "...", "plan": "...", "status": "...", "created_at": "...", "expires_at": "..."},
...
]
}
Example: Subscription Status
curl -X POST https://yourdomain.com/api/v1/subscriptions/ \
-H "Content-Type: application/json" \
-d '{"username":"your_username","password":"your_password"}'
Response:
{
"subscriptions": [
{"plan": "...", "is_active": true, "start_date": "...", "end_date": "..."},
...
]
}
Example: Payment History
curl -X POST https://yourdomain.com/api/v1/payments/ \
-H "Content-Type: application/json" \
-d '{"username":"your_username","password":"your_password"}'
Response:
{
"payments": [
{"amount": 10.0, "status": "confirmed", "created_at": "...", "method": "..."},
...
]
}
Errors
All errors are returned as JSON with a clear detail message and appropriate HTTP status code.
Need Help?
Contact leopoldbirungi@gmail.com or visit our Help Center.