Metadata-Version: 2.1
Name: questrade-api
Version: 1.0.1
Summary: Questrade API Wrapper
Home-page: https://github.com/tgardiner/questrade_api
Author: Tom Gardiner
Author-email: tom@teppen.io
License: MIT
Description: # questrade_api
        Python3 Questrade API Wrapper
        
        ## Installation
        * Use `pip`/`pip3`:
        
           `pip3 install questrade-api`
        
        ## Getting Started
        1. Familiarise yourself with the [Security documentation](https://www.questrade.com/api/documentation/security) for the Questrade API.
        2. [Generate](https://login.questrade.com/APIAccess/UserApps.aspx) a manual refresh token for your application.
        3. Init the API Wrapper with the refresh token:
        
           ```
           from questrade_api import Questrade
           q = Questrade('XYz1dBlop33lLLuys4Bd')
           ```
           **Important:**
           A token will be created at `~/.questrade.json` and used for future API calls
           * If the token is valid future initiations will not require a refresh token
        
           ```
           from questrade_api import Questrade
           q = Questrade()
           ```
        
        ---
        
        ## Using the API
        ### [Time](https://www.questrade.com/api/documentation/rest-operations/account-calls/time)
        
        ```
        q.time
        => {'time': '2018-11-16T09:22:27.090000-05:00'}
        ```
        
        ### [Accounts](https://www.questrade.com/api/documentation/rest-operations/account-calls/accounts)
        
        ```
        q.accounts
        => {'accounts': [{'type': 'Margin', 'number': '123456', 'status': 'Active' ...}]}
        ```
        
        ### [Account Positions](https://www.questrade.com/api/documentation/rest-operations/account-calls/accounts-id-positions)
        
        Accepts: `<account_id>`
        
        ```
        q.account_positions(123456)
        => {'positions': [{'symbol': 'RY.TO', 'symbolId': 34658, 'openQuantity': ...}]}
        ```
        
        ### [Account Balances](https://www.questrade.com/api/documentation/rest-operations/account-calls/accounts-id-balances)
        
        Accepts: `<account_id>`
        
        ```
        q.account_balances(123456)
        => {'perCurrencyBalances': [{'currency': 'CAD', 'cash': 1000, 'marketValue': 0, ...}]}
        ```
        
        ### [Account Executions](https://www.questrade.com/api/documentation/rest-operations/account-calls/accounts-id-executions)
        
        Accepts: `<account_id>`, `startTime=`, `endTime=`
        
        ```
        q.account_executions(123456)
        => {'executions': []}
        ```
        
        ```
        q.account_executions(123456,startTime='2018-08-01T00:00:00-0')
        => {'executions': [{'symbol': 'RY.TO', 'symbolId': 34658, 'quantity': 100, ...}]}
        ```
        
        ### [Account Orders](https://www.questrade.com/api/documentation/rest-operations/account-calls/accounts-id-orders)
        
        Accepts: `<account_id>`, `startTime=`, `endTime=`, `stateFilter=`
        
        ```
        q.account_orders(123456)
        => {'orders': []}
        ```
        
        ```
        q.account_orders(123456, startTime='2018-08-01T00:00:00-0')
        => {'orders': [{'id': 444444, 'symbol': 'RY.TO', 'symbolId': 34658, ...}]}
        ```
        
        ### [Account Order](https://www.questrade.com/api/documentation/rest-operations/account-calls/accounts-id-orders)
        
        Accepts: `<account_id>`, `<order_id>`
        
        ```
        q.account_order(123456, 444444)
        => {'orders': [{'id': 444444, 'symbol': 'RY.TO', 'symbolId': 34658, 'totalQuantity': 100, ...}]}
        ```
        
        ### [Account Activities](https://www.questrade.com/api/documentation/rest-operations/account-calls/accounts-id-activities)
        
        Accepts: `<account_id>`, `startTime=`, `endTime=`
        
        ```
        q.account_activities(123456)
        => {'activities': []}
        ```
        
        ```
        q.account_activities(123456, startTime='2018-11-01T00:00:00-0')
        => {'activities': []}
        ```
        
        ### [Symbol](https://www.questrade.com/api/documentation/rest-operations/market-calls/symbols-id)
        
        Accepts: `<symbol_id>`
        
        ```
        q.symbol(34659)
        => {'symbols': [{'symbol': 'RY.TO 'symbolId': 34658, 'prevDayClosePrice': ...}]}
        ```
        
        ### [Symbols](https://www.questrade.com/api/documentation/rest-operations/market-calls/symbols-id)
        
        Accepts: `ids='<symbol_id_1>,<symbol_id_2>'`, `names='<symbol_1>,<symbol_2>'`
        
        ```
        q.symbols(ids='34658,9339')
        => {'symbols': [{'symbol': 'RY.TO', 'symbolId': 34658, 'prevDayClosePrice': ..}]}
        ```
        
        ```
        q.symbols(names='RY.TO,BNS.TO')
        => {'symbols': [{'symbol': 'RY.TO', 'symbolId': 34658, 'prevDayClosePrice': ..}]}
        ```
        
        ### [Symbols Search](https://www.questrade.com/api/documentation/rest-operations/market-calls/symbols-search)
        
        Accepts: `prefix='<symbol_1>'`, `offset=`
        
        ```
        q.symbols_search(prefix='RY.TO')
        => {'symbols': [{'symbol': 'RY.TO', 'symbolId': 34658, 'description': ...}]}
        ```
        
        ```
        q.symbols_search(prefix='RY', offset=5)
        {'symbols': [{'symbol': 'RY.PRE.TO', 'symbolId': 34700, 'description': ...}]}
        ```
        
        ### [Symbol Options](https://www.questrade.com/api/documentation/rest-operations/market-calls/symbols-id-options)
        
        Accepts: `<symbol_id>`
        
        ```
        q.symbol_options(34658)
        => {'optionChain': [{'expiryDate': '2018-11-16T00:00:00.000000-05:00', 'description': ... }]}
        ```
        
        ### [Markets](https://www.questrade.com/api/documentation/rest-operations/market-calls/markets)
        
        ```
        q.markets
        => {'markets': [{'name': 'TSX', 'tradingVenues': ['TSX', 'ALPH', 'CXC', ... }]}
        ```
        
        ### [Markets Quote](https://www.questrade.com/api/documentation/rest-operations/market-calls/markets-quotes-id)
        
        Accepts: `<symbol_id>`
        
        ```
        q.markets_quote(34658)
        => {'quotes': [{'symbol': 'RY.TO', 'symbolId': 34658, 'tier': ... }]}
        ```
        
        ### [Markets Quotes](https://www.questrade.com/api/documentation/rest-operations/market-calls/markets-quotes-id)
        
        Accepts: `ids='<symbol_id_1>,<symbol_id_2>'`
        
        ```
        q.markets_quotes(ids='34658,9339')
        => {'quotes': [{'symbol': 'RY.TO', 'symbolId': 34658, 'tier': ... }]}
        ```
        
        ### [Markets Options](https://www.questrade.com/api/documentation/rest-operations/market-calls/markets-quotes-options)
        
        Accepts: `optionIds=`, `filters=`
        
        ```
        q.markets_options(optionIds=[
            23615873,
            23615874
        ])
        => {'optionQuotes': [{'underlying': 'RY.TO', 'underlyingId': 34658, 'symbol': 'RY30Nov18 ..}]}
        ```
        
        ```
        q.markets_options(filters=[
            {
                "optionType": "Call",
                "underlyingId": 34658,
                "expiryDate": "2018-11-30T00:00:00.000000-05:00",
                "minstrikePrice": 90,
                "maxstrikePrice": 100
            }
        ])
        => {'optionQuotes': [{'underlying': 'RY.TO', 'underlyingId': 34658, 'symbol': 'RY30Nov18 ..}]}
        ```
        
        ### [Markets Strategies](https://www.questrade.com/api/documentation/rest-operations/market-calls/markets-quotes-strategies)
        
        Accepts: `variants=`
        
        ```
        q.markets_strategies(variants=[
            {
                "variantId": 1,
                "strategy": "Custom",
                "legs": [
                    {
                            "symbolId": 23545340,
                            "ratio": 10,
                            "action": "Buy"
                    },
                    {
                        "symbolId": 23008592,
                        "ratio": 10,
                        "action": "Sell"
                    }
                ]
            }
        ])
        => {'strategyQuotes': [{'variantId': 1, 'bidPrice': None, 'askPrice': None, 'underlying': 'RY.TO' ...}]}
        ```
        
        ### [Markets Candles](https://www.questrade.com/api/documentation/rest-operations/market-calls/markets-candles-id)
        
        Accepts: `<symbol_id>`, `startTime=`, `endTime=`, `interval=`
        
        ```
        q.markets_candles(34658, interval='FiveMinutes')
        => {'candles': [{'start': '2018-11-16T09:30:00.583000-05:00', 'end': '2018-11-16T ..}]}
        ```
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
