it is hard to understand the errors related to API key and environment mismatch
this PR introduces detailed error message and also tips for http status code 401/403
Changes:
add detailed error message for APIError
add tips message for http status code 401/403 for APIError
Examples:
trading api
from alpaca.trading.client import TradingClient
from alpaca.common.exceptions import APIError
api_key=BROKER_KEY
secret_key=BROKER_SECRET
# paper = True
paper = False
trader = TradingClient(api_key, secret_key, paper=paper)
trader.get_account()
output
APIError: {'payload': '{"code":40110000,"message":"request is not authorized"}', 'status_code': 401, 'reason': 'Unauthorized', 'method': 'GET', 'url': 'https://api.alpaca.markets/v2/account', 'tips': 'please check your API key and environment (paper/sandbox/live)'}
broker api
from alpaca.broker.client import BrokerClient
api_key = BROKER_API_KEY + "1" # to raise error
client = BrokerClient(api_key=api_key, secret_key=BROKER_API_SECRET, sandbox=True)
client.list_accounts()
output
APIError: {'payload': '{"message": "forbidden."}\n', 'status_code': 403, 'reason': 'Forbidden', 'method': 'GET', 'url': 'https://broker-api.sandbox.alpaca.markets/v1/accounts', 'tips': 'please check your API key and environment (paper/sandbox/live)'}
Context:
Changes:
Examples:
trading api
output
broker api
output