Skip to main content

Overview

NOVOSKY does not use the MetaTrader5 Python package. All broker communication goes through a self-hosted HTTP API running on your MT5 server. Base URL: https://novosky.app/terminal/ (or your own self-hosted instance) OpenAPI spec: /openapi.json Authentication: Bearer token in the Authorization header.
Set API_TOKEN in your .env to match the token configured on the server. The /ping endpoint is the only one that skips authentication.

Endpoint groups

The API is organized into seven tag groups โ€” all auto-generated in the sidebar:

Response format

All endpoints return JSON. HTTP helpers in trading/bot.py parse responses into SimpleNamespace objects:

Error handling

Non-2xx responses include a retcode field with the MT5 error code. The bot logs errors and sends a Telegram alert automatically.
Common retcodes:

Broker server time

GET /time returns the brokerโ€™s server timestamp alongside machine UTC, so you can verify the detected UTC offset. Optionally pass ?symbol=BTCUSD to pin which symbolโ€™s tick is used.
The bot auto-detects this offset at startup and uses it to normalise broker candle timestamps to UTC. If the market is closed and no tick is available, server_epoch will be null and the bot falls back to broker_utc_offset_fallback_hours in config.json.

Spread conversion

GET /symbols/{symbol}/rates returns spread in raw points. For BTCUSD on RoboForex:
trading.py handles this automatically.

Order types

POST /orders accepts the following type values:
The NOVOSKY bot only places BUY and SELL market orders. The other types are available for manual use.