Skip to content

Latest commit

 

History

History
125 lines (113 loc) · 7.12 KB

File metadata and controls

125 lines (113 loc) · 7.12 KB

API coverage

How capctl commands map to the Capital.com Open API. "Covered" means a command issues the request and surfaces the response (via tables or --json).

General & session

Endpoint Command Status
GET /time session time Covered
GET /ping session ping Covered
GET /session session details Covered
GET /session/encryptionKey session encryption-key Covered (key fetch; encrypted-password login flow not used)
POST /session session login Covered
PUT /session session switch Covered
DELETE /session session logout Covered

Accounts

Endpoint Command Status
GET /accounts account list Covered
GET /accounts/preferences account prefs-get Covered
PUT /accounts/preferences account prefs-set (--hedging, --leverage) Covered
GET /history/activity account history-activity Covered
GET /history/transactions account history-transactions Covered
POST /accounts/topUp account topup Covered (demo only)

Markets

Endpoint Command Status
GET /markets market search Covered
GET /markets/{epic} market get Covered
GET /marketnavigation market nav-root Covered
GET /marketnavigation/{id} market nav-node Covered
GET /prices/{epic} market prices Covered
GET /clientsentiment market sentiment A,B Covered (batch)
GET /clientsentiment/{id} market sentiment A Covered

Trading

Endpoint Command Status
GET /positions trade positions Covered
GET /positions/{dealId} trade position Covered
POST /positions trade preview-positiontrade execute-position Covered
PUT /positions/{dealId} trade amend-position Covered
DELETE /positions/{dealId} trade close Covered
GET /workingorders trade orders Covered
POST /workingorders trade preview-ordertrade execute-order Covered
PUT /workingorders/{dealId} trade amend-order Covered
DELETE /workingorders/{dealId} trade cancel Covered
GET /confirms/{dealReference} trade confirm Covered

Watchlists

Endpoint Command Status
GET /watchlists watchlist list Covered
POST /watchlists watchlist create Covered
GET /watchlists/{id} watchlist get Covered
PUT /watchlists/{id} watchlist add Covered
DELETE /watchlists/{id} watchlist delete Covered
DELETE /watchlists/{id}/{epic} watchlist remove Covered

Streaming (WebSocket)

Destination Command Status
marketData.subscribe (quotes) stream prices, stream alerts, stream portfolio Covered
OHLCMarketData.subscribe (candles) stream candles Covered
ping (keep-alive) (internal) Covered

Verified coverage. Every endpoint below is exercised by automated tests on the real demo API across four cells — CLI positive, CLI negative, SDK positive, SDK negative — generated from tests/e2e/endpoints.py (regenerate with make coverage-doc). Both the CLI and the SDK cover the full Open API surface; the only surface not exposed as a command is the RSA encrypted-password login flow (the CLI uses the standard credential login). See the matrix at the bottom of this file.

Test matrix

Endpoint HTTP / WS CLI + CLI − SDK + SDK −
session.time GET /time tested tested tested tested
session.ping GET /ping tested tested tested tested
session.details GET /session tested tested tested tested
session.encryption_key GET /session/encryptionKey tested tested tested tested
session.login POST /session tested tested tested tested
session.switch PUT /session tested tested tested tested
session.logout DELETE /session tested tested tested tested
account.list GET /accounts tested tested tested tested
account.prefs_get GET /accounts/preferences tested tested tested tested
account.prefs_set PUT /accounts/preferences tested tested tested tested
account.history_activity GET /history/activity tested tested tested tested
account.history_transactions GET /history/transactions tested tested tested tested
account.topup POST /accounts/topUp tested tested tested tested
market.search GET /markets tested tested tested tested
market.get GET /markets/{epic} tested tested tested tested
market.nav_root GET /marketnavigation tested tested tested tested
market.nav_node GET /marketnavigation/{id} tested tested tested tested
market.prices GET /prices/{epic} tested tested tested tested
market.sentiment GET /clientsentiment tested tested tested tested
position.list GET /positions tested tested tested tested
position.get GET /positions/{dealId} tested tested tested tested
position.preview (local) tested tested tested tested
position.execute POST /positions tested tested tested tested
position.amend PUT /positions/{dealId} tested tested tested tested
position.close DELETE /positions/{dealId} tested tested tested tested
order.list GET /workingorders tested tested tested tested
order.preview (local) tested tested tested tested
order.execute POST /workingorders tested tested tested tested
order.amend PUT /workingorders/{dealId} tested tested tested tested
order.cancel DELETE /workingorders/{dealId} tested tested tested tested
trade.confirm GET /confirms/{dealRef} tested tested tested tested
watchlist.list GET /watchlists tested tested tested tested
watchlist.create POST /watchlists tested tested tested tested
watchlist.get GET /watchlists/{id} tested tested tested tested
watchlist.add PUT /watchlists/{id} tested tested tested tested
watchlist.remove DELETE /watchlists/{id}/{epic} tested tested tested tested
watchlist.delete DELETE /watchlists/{id} tested tested tested tested
stream.prices WS marketData.subscribe tested tested tested tested
stream.candles WS OHLCMarketData.subscribe tested tested tested tested
stream.alerts WS quotes (level cross) tested tested tested tested
stream.portfolio WS quotes (position epics) tested tested tested tested

Coverage: 164/164 applicable cells tested (100%) across 41 endpoints — CLI and SDK, positive and negative.