@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api IBKR 3rd Party Web API
@base https://www.interactivebrokers.com/tradingapi/v1
@version 1.0.0
@auth ApiKey portal in header
@endpoints 16
@toc oauth(3), accounts(10), secdef(1), marketdata(2)

@group oauth
@endpoint POST /oauth/request_token
@desc Obtain a request token
@required {body: map}
@returns(200) OAuth token

@endpoint POST /oauth/access_token
@desc Obtain an access token
@required {body: map}
@returns(200) Access token and token secret

@endpoint POST /oauth/live_session_token
@desc Obtain a live session token
@required {body: map}
@returns(200) DH response

@endgroup

@group accounts
@endpoint GET /accounts
@desc List brokerage accounts
@returns(200) An array of accounts

@endpoint GET /accounts/{account}/positions
@desc Account positions
@required {account: any}
@returns(200) List of positions

@endpoint GET /accounts/{account}/summary
@desc Account values summary
@required {account: any}
@returns(200) Account summary

@endpoint GET /accounts/{account}/orders
@desc List open orders
@required {account: any}
@returns(200) List of orders

@endpoint POST /accounts/{account}/orders
@desc Place order
@required {account: any, body: map}
@returns(200) Order status

@endpoint GET /accounts/{account}/orders/{CustomerOrderId}
@desc Get specific order
@required {account: any, CustomerOrderId: any}
@returns(200) Order details

@endpoint PUT /accounts/{account}/orders/{CustomerOrderId}
@desc Modify order
@required {account: any, CustomerOrderId: any}
@returns(200) Modified order

@endpoint DELETE /accounts/{account}/orders/{CustomerOrderId}
@desc Cancel order
@required {account: any, CustomerOrderId: any}
@returns(200) Cancellation result

@endpoint POST /accounts/{account}/order_impact
@desc Return margin impact info
@required {account: any}
@returns(200) Margin impact

@endpoint GET /accounts/{account}/trades
@desc List trades
@required {account: any}
@returns(200) List of trades

@endgroup

@group secdef
@endpoint GET /secdef
@desc Get security definition
@returns(200) Security definition

@endgroup

@group marketdata
@endpoint GET /marketdata/snapshot
@desc Market data snapshot
@returns(200) Market data

@endpoint GET /marketdata/exchange_components
@desc Exchange components
@returns(200) Exchange components

@endgroup

@end
