Shared Open API application & rate limits
By default κάθε user εγγράφει δικό τους own cTrader Open API application κάτω Settings → Open API. Ένας white-label operator (συνήθως cTrader broker ή reseller) μπορεί αντί να έχει ένα shared Open API application για όλα τα users — κανείς δεν εγγράφει δικό του; όλα authorize τα accounts τους μέσω single app του operator.
Δύο τρόποι για να δώσετε το shared application
Το shared application provisioned είτε από deployment config ή από owner settings UI (το owner-set value κερδίζει). Δώστε once και shared-mode κάνει on για όλα.
1. Deployment config (seeded κατά startup)
"App": {
"OpenApi": {
"PublicBaseUrl": "https://cmind.yourbroker.com", // canonical public URL του THIS deployment
"SharedApp": {
"Enabled": true,
"Name": "YourBroker Open API",
"ClientId": "1234_abcd...",
"ClientSecret": "…" // encrypted at rest; ποτέ logged
}
}
}
Κατά startup το app seeds ένα shared application κατέχεται από owner account (idempotent — ποτέ δεν overwrites ένα owner-edited runtime value, και re-seeding είναι no-op).
2. Owner settings (runtime, χωρίς redeploy)
Settings → Open API (owner μόνο) εμφανίζει δύο πράγματα: ένα Your Open API application section — ο owner εγγράφει, επεξεργάζεται, και εξουσιοδοτεί τη δικιά του own per-user app ακριβώς όπως κάθε user (διαθέσιμο ενώ δεν υπάρχει configured shared app) — και ένα Deployment shared application card για να add / edit / delete το shared app, με redirect URL εμφανιζόμενο για copy-paste. Οι Changes παίρνουν effect για νέα authorizations αμέσως. Αφού ένα shared app είναι configured, αντικαθιστά τη δικιά του app, και το Your Open API application section αλλάζει σε ένα notice ότι τα accounts τώρα εξουσιοδοτούν μέσω του shared app.
Το redirect URL (εγγραφείτε αυτό σε cTrader)
Κάθε cTrader Open API application εγγράφει ένα redirect URL — το ίδιο single value για shared app και για οποιοδήποτε per-user app:
{your deployment URL}/openapi/callback
π.χ. https://cmind.yourbroker.com/openapi/callback.
- Το app εμφανίζει exact value σε Open API settings page (με copy button) — paste σε cTrader partner portal όταν δημιουργείτε Open API application.
- Αρχοποιείται από
App:OpenApi:PublicBaseUrlώστε παραμένει σταθερή πίσω reverse proxy / CDN; όταν εκείνο unset defaults στο inbound request host. - Το invite vs normal-user experience διαφέρει μόνο σε πού ο user lands μετά το callback (accounts list vs "accounts added" confirmation) — registered redirect URL είναι unchanged.
Τι βλέπουν τα users κάτω shared mode
Όταν shared application υπάρχει:
- Τα Users δεν παίρνουν option να εγγράψουν δικό τους Open API application — settings page εμφανίζει "Open API is managed by your provider" και Authorize accounts button που χρησιμοποιεί shared app.
- Οποιαδήποτε pre-existing personal applications αφαιρούνται; authorized accounts τους re-pointed σε shared app και πρέπει να re-authorized (παλιά tokens τους εκδόθησαν κάτω διαφορό client id). Trying να δημιουργήσει personal app επιστρέφει "managed by your provider" error.
Client rate limits (per message type)
Ο Client paces outbound cTrader Open API messages ώστε ένα burst ποτέ δεν trip ένα server-side rate-limit block. Τα Limits είναι per message type, matching cTrader Open API docs:
| Category | What it covers | Default |
|---|---|---|
General | trading + read messages (orders, symbols, account queries) | 45 msg/s |
HistoricalData | trendbar / tick-data requests (throttled harder από cTrader) | 5 msg/s |
A historical-data request counts against both its own bucket and the general bucket. Heartbeat and authentication messages are never paced. Messages queue and drain at the available rate — nothing is dropped and order is preserved.
Tune them if your broker negotiated higher cTrader limits, or set a category to 0 to disable
pacing entirely (unlimited):
- Config:
App:OpenApi:RateLimits:General/App:OpenApi:RateLimits:HistoricalData(msgs/sec). - Owner settings: the Client rate limits card on Settings → Open API (owner override wins, applies to new connections / on reconnect).