Skip to main content

A python library for the marketstack API

Project description

pymarketstack

build

Pymarket is a simple python library for the Marketstack API. It’s a requirement to have a valid API token, the free version or a paid alternative, see Pricing. Needless to say, this is not an official library.

Available features

The different features marketstack supports can be found on marketstack’s documentation.

End of Data

Gets the stock data after the market has closed. Supports 3 alternatives:

  • All: Downloads all data.
  • Latest: Downloads the data corresponding to the last date.
  • Date: Downloads a specific range of data.

Intraday data

Not yet implemented.

Splits data

Not yet implemented.

Dividends data

Not yet implemented.

Tickers

Not yet implemented.

Exchanges

Not yet implemented.

Currencies

Not yet implemented.

Timezones

Not yet implemented.

Usage

from pymarketstack import EndOfDay, download

query = EndOfDay.query(token="your api token")
data, failed = download(query, "AAPL", "XEL", ...)

Here the first line will just create the request with the appropriate fields, the download function will return a tuple with a Response object and a list of strings corresponding to failed tickers. The query function has several options such as the usage of HTTPS, etc. If you want to check how much quota downloading the symbols will take, you can use the quota function as follows:

from pymarketstack import EndOfDay, quota

query = EndOfDay.query(token="your api token")
q: int = quota(query, "AAPL", "XEL", ...)

An end of data request will return 2 things, a Pagination object and a list of Data objects. Both of which are wrapped in a Response object.

Responses

class Response:
    pagination: Pagination
    data: List[Data]

The data field is overall the most interesting one and contains a single date of data for each ticker. The fields include things like date, symbol, open, close, high, low, among others. All the fields are listed in the documentation.

In case of an error the library will raise an exception corresponding to the common API error codes. An example API response could be:

{
    "pagination": {
        "limit": 100,
        "offset": 0,
        "count": 100,
        "total": 9944
    },
    "data": [
        {
            "open": 129.8,
            "high": 133.04,
            "low": 129.47,
            "close": 132.995,
            "volume": 106686703.0,
            "adj_high": 133.04,
            "adj_low": 129.47,
            "adj_close": 132.995,
            "adj_open": 129.8,
            "adj_volume": 106686703.0,
            "split_factor": 1.0,
            "dividend": 0.0,
            "symbol": "AAPL",
            "exchange": "XNAS",
            "date": "2021-04-09T00:00:00+0000"
            },
            [...]
    ]
}

which would be equivalent to

Response(
    pagination = Pagination(limit=100, offset=0, count=100, total=9944),
    data = [
        Data(
            open=129.8,
            high=133.04,
            low=129.47,
            close=132.995,
            volume=106686703.0,
            adj_high=133.04,
            adj_low=129.47,
            adj_close=132.995,
            adj_open=129.8,
            adj_volume=106686703.0,
            split_factor=1.0,
            dividend=0.0,
            symbol="AAPL",
            exchange="XNAS",
            date=datetime.datetime(2021, 4, 29)
        ),
        ...
    ]
)

due to the usage of dataclasses-json, Response, Pagination, and Data are serializable to/from dicts and json strings.

Dependencies

The dependencies used are listed in the requirements.txt package file but the main ones are:

License

Apache 2.0, see the LICENSE file for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymarketstack-0.0.7.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pymarketstack-0.0.7-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file pymarketstack-0.0.7.tar.gz.

File metadata

  • Download URL: pymarketstack-0.0.7.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for pymarketstack-0.0.7.tar.gz
Algorithm Hash digest
SHA256 fe414df0220a2587b672b046d81c834155248067b8854b536ce8a7bb1063e4d8
MD5 4bc830cef45ea9ea5053da07cd5f14ed
BLAKE2b-256 ab866bb3d27eefeb56e5722d0ffd09c16002f233094980974fe0b34a93061676

See more details on using hashes here.

File details

Details for the file pymarketstack-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: pymarketstack-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for pymarketstack-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6336ed1b46118e5183ee3892ced0f6457b8c565afc7e74c1824f2083874cf8d4
MD5 d32fef419e1ab00ceff16de22ab84cb9
BLAKE2b-256 df8b7fe06ebacf95b03fc47c6b99ad65d7fc8d03d2f2f9dddab97fa602604ba9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page