본문으로 건너뛰기

공유 Open API 애플리케이션 및 속도 제한

기본적으로 모든 사용자는 설정 → Open API에서 자신의 cTrader Open API 애플리케이션을 등록합니다. 화이트라벨 운영자(일반적으로 cTrader 브로커 또는 리셀러)는 대신 모든 사용자에게 하나의 공유 Open API 애플리케이션을 제공할 수 있습니다 — 아무도 자신의 것을 등록하지 않습니다; 모든 사용자가 운영자의 단일 앱을 통해 계정을授权합니다.

공유 애플리케이션을 제공하는 두 가지 방법​

공유 애플리케이션은 배포 구성 또는 소유자 설정 UI에서 프로비저닝됩니다 (둘 다 가능 — 소유자가 설정한 값이 우선). 한 번 제공하고 공유 모드를 켜면 모든 사용자에게 적용됩니다.

1. 배포 구성 (시작 시 시드)​

"App": {
"OpenApi": {
"PublicBaseUrl": "https://cmind.yourbroker.com", // 이 배포의 정식 공개 URL
"SharedApp": {
"Enabled": true,
"Name": "YourBroker Open API",
"ClientId": "1234_abcd...",
"ClientSecret": "…" // 암호화되어 저장; 절대 로그 안 함
}
}
}

시작 시 앱은 소유자 계정이 소유한 하나의 공유 애플리케이션을 시드합니다 (멱등 — 소유자가 편집한 런타임 값을 덮어쓰지 않으며, 재시딩은 무작위 작업임).

2. 소유자 설정 (런타임, 재배치 불필요)​

설정 → Open API (소유자만)에는 두 가지가 표시됩니다: 귀하의 Open API 애플리케이션 섹션 — 소유자는 공유 앱이 구성되지 않은 동안 다른 사용자와 정확히 같은 방식으로 자신의 사용자별 앱을 등록, 편집 및授권합니다 — 그리고 배포 공유 애플리케이션 카드는 공유 앱을 추가 / 편집 / 삭제하며, 리다이렉트 URL이 복사-붙여넣기용으로 표시됩니다. 변경 사항은 새授권에 즉시 적용됩니다. 공유 앱이 구성되면 소유자의 자신의 앱을 대체하고, 귀하의 Open API 애플리케이션 섹션은 계정이 이제 공유 앱을 통해授权한다는 공지로 전환됩니다.

리다이렉트 URL (cTrader에 등록)​

모든 cTrader Open API 애플리케이션은 하나의 리다이렉트 URL을 등록합니다 — 공유 앱과 사용자별 앱 모두에 대해 동일한 단일 값:

{your deployment URL}/openapi/callback

예: https://cmind.yourbroker.com/openapi/callback.

  • 앱은 정확한 값을 표시합니다 (복사 버튼 포함) — cTrader 파트너 포털에 Open API 애플리케이션을 생성할 때 붙여넣습니다.
  • App:OpenApi:PublicBaseUrl에서 구성되므로 역방향 프록시 / CDN 뒤에서 안정적으로 유지됩니다; 설정되지 않으면 인바운드 요청 호스트로 폴백됩니다.
  • 초대 vs 일반 사용자 경험은 사용자가 콜백 후 도착하는 위치에서만 다릅니다 (계정 목록 vs "계정 추가됨" 확인) — 등록된 리다이렉트 URL은 변경되지 않습니다.

공유 모드에서 사용자가 보는 것​

공유 애플리케이션이 존재할 때:

  • 사용자는 자신의 Open API 애플리케이션을 등록할 옵션이 없습니다 — 설정 페이지에 **"Open API는 공급자가 관리합니다"**가 표시되고 공유 앱을 사용하는 계정授权 버튼이 있습니다.
  • 기존 개인 애플리케이션은 제거됩니다; 해당授权된 계정은 공유 앱을 가리키도록 다시 지정되며 재授权되어야 합니다 (이전 토큰은 다른 클라이언트 ID 아래에서 발급됨). 개인 앱 생성 시도 시 "공급자가 관리합니다" 오류가 반환됩니다.

클라이언트 속도 제한 (메시지 유형별)​

클라이언트는 발신 cTrader Open API 메시지의 속도를 조절하여 급증이 서버 측 속도 제한 차단을トリガー하지 않도록 합니다. 제한은 cTrader Open API 문서와 일치하는 메시지 유형별:

카테고리적용 범위기본값
General거래 + 읽기 메시지 (주문, 심볼, 계정 쿼리)45 msg/s
HistoricalData트렌드바 / 틱 데이터 요청 (cTrader가 더 엄격하게 제한)5 msg/s

과거 데이터 요청은 자신의 버킷과 일반 버킷 모두에 대해 카운트됩니다. 하트비트 및认证 메시지는 절대 속도 조절되지 않습니다. 메시지는 큐에 들어가고 사용 가능한 속도로 drain됩니다 — 아무것도 삭제되지 않고 주문이 유지됩니다.

브로커가 더 높은 cTrader 제한을 협상한 경우 조정하거나, 카테고리를 **0**으로 설정하여 속도 조절을完全に 비활성화합니다 (무제한):

  • 구성: App:OpenApi:RateLimits:General / App:OpenApi:RateLimits:HistoricalData (msg/sec).
  • 소유자 설정: 설정 → Open API의 클라이언트 속도 제한 카드 (소유자 재정의, 새 연결 / 재연결에 적용).