Skip to main content

alphavantage-api-client

I use these functions in my AWS Step function statemachines. Each method for querying stock data has 2 params ( event,context). This will support AWS lambda functions, but also allow you to use it any way your want!

At present alphavantage isn't great at Delineating failed messages (has reached limit, error or invalid symbol). This client interprets the response and injects two fields into your response:

  1. success (true/false) flag into your response. You can log response into splunk or cloudwatch and know when something fails
  2. limit_reached (true/false) flag into your response. You can know the difference between an error and reaching limit so you can pause processing until you api key is allowed to make more requests

install from pip

pip install alphavantage_api_client

Sample Usage Specifying Api Key in Client Builder

from alphavantage_api_client import AlphavantageClient
import json

event = {
        "symbol":"TSLA"
}
result = {}
client = AlphavantageClient().with_api_key('[you key here]')
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))

Sample Usage Specifying Api Key in request event

from alphavantage_api_client import AlphavantageClient
import json

event = {
        "symbol":"TSLA",
        "api_key":"[your api key here]"
}
result = {}
client = AlphavantageClient()
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))

Sample Usage Specifying Api Key in ini file

On mac/linux based machines run the following command BUT use your own API KEY

echo -e "[access]\napi_key=[your key here]" > ~/.alphavantage

Now try the below

from alphavantage_api_client import AlphavantageClient
import json 

event = {
        "symbol":"TSLA"
}
result = {}
client = AlphavantageClient()
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))

Sample Usage Specifying Api Key in environment variable

On mac/linux based machines run the following command BUT use your own API KEY

export ALPHAVANTAGE_API_KEY=[your key here]

Now try the below

from alphavantage_api_client import AlphavantageClient
import json

event = {
        "symbol":"TSLA"
}
result = {}
client = AlphavantageClient()
result['overview'] = client.get_company_overview(event)
result['latest_stock_price'] = client.get_latest_stock_price(event)
result['stock_price'] = client.get_stock_price(event)
result['earnings'] = client.get_earnings(event)
result['latest_earnings'] = client.get_latest_earnings(event)
result['cash_flow'] = client.get_cash_flow(event)
result['latest_cash_flow'] = client.get_latest_cash_flow(event)
result['income_statement'] = client.get_income_statement_for_symbol(event)
result['latest_income_statement'] = client.get_latest_income_statement_for_symbol(event)
print(json.dumps(result))

Get any data from alphavantage using get_data_from_alpha_vantage(...)

Get Economic indicators

from alphavantage_api_client import AlphavantageClient
import json

event = {
        "function": "REAL_GDP",
        "interval": "annual"
    }
    client = AlphavantageClient()
    results = client.get_data_from_alpha_vantage(event)
    assert "success" in results and results[
        'success'] == True, "Success flag not present or equal to false when quoting real GDP"
    print(json.dumps(results))

Quote Cryptocurrency

from alphavantage_api_client import AlphavantageClient
import json

event = {
        "function": "CRYPTO_INTRADAY",
        "symbol": "ETH",
        "market": "USD",
        "interval": "5min"
    }
    client = AlphavantageClient()
    results = client.get_data_from_alpha_vantage(event)
    assert "success" in results and results["success"] == True, f"Failed to receive a quote for {event['symbol']}"
    print(json.dumps(results))

Quote Technical Indicators

from alphavantage_api_client import AlphavantageClient
import json

event = {
        "function": "EMA",
        "symbol": "IBM",
        "interval": "weekly",
        "time_period": "10",
        "series_type": "open"
    }
    client = AlphavantageClient()
    results = client.get_data_from_alpha_vantage(event)
    assert "success" in results and results[
        'success'] == True, "Success flag not present or equal to false when quoting IBM EMA technical indicator"
    print(json.dumps(results))

Release files for alphavantage-api-client 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for alphavantage-api-client 0.1.0
File Interpreter ABI Platform
alphavantage_api_client-0.1.0-py3-none-any.whl Python 3 none any Details

Release files / alphavantage_api_client-0.1.0-py3-none-any.whl

Download URL alphavantage_api_client-0.1.0-py3-none-any.whl
Size 8.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
af222957a0fabf86d05fbb388d395421eeec8ddbcf1605b8d211f69bf26f00f4
BLAKE2b-256 checksum
How to use checksums
920cba2bd8bec519cf628a5d3a5403f12586f9d2b5721222fbd0543cec518195
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release history Release notifications | RSS feed

2.4.0

1 release file

2.3.0

1 release file

2.2.3

1 release file

2.2.2

1 release file

2.2.1

1 release file

2.2.0

1 release file

2.1.0

1 release file

2.0.0

1 release file

1.0.2

1 release file

1.0.1

1 release file

This release

0.1.0 This release

1 release file

0.0.13

1 release file

0.0.12

2 release files

0.0.11

1 release file

0.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page