{"id":23046246,"url":"https://github.com/bossenti/vistafetch","last_synced_at":"2025-06-15T12:06:09.423Z","repository":{"id":191044312,"uuid":"681348676","full_name":"bossenti/vistafetch","owner":"bossenti","description":"Small \u0026 simple library to fetch financial data for stocks, ETFs, funds, etc. from Onvista.","archived":false,"fork":false,"pushed_at":"2025-06-10T10:11:06.000Z","size":772,"stargazers_count":0,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-10T11:26:30.821Z","etag":null,"topics":["etf","exchange","financial-data","funds","onvista","stocks"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bossenti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-21T20:20:39.000Z","updated_at":"2025-06-10T10:09:57.000Z","dependencies_parsed_at":"2024-06-08T11:27:58.887Z","dependency_job_id":"647ea8d9-f898-4225-8ee2-18fec9b5fd24","html_url":"https://github.com/bossenti/vistafetch","commit_stats":null,"previous_names":["bossenti/vistafetch"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/bossenti/vistafetch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bossenti%2Fvistafetch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bossenti%2Fvistafetch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bossenti%2Fvistafetch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bossenti%2Fvistafetch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bossenti","download_url":"https://codeload.github.com/bossenti/vistafetch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bossenti%2Fvistafetch/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259971377,"owners_count":22940011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["etf","exchange","financial-data","funds","onvista","stocks"],"created_at":"2024-12-15T21:31:06.969Z","updated_at":"2025-06-15T12:06:09.410Z","avatar_url":"https://github.com/bossenti.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n   \u003cimg src=\"https://github.com/bossenti/vistafetch/blob/main/docs/img/vistafetch.png?raw=true\"\n   alt=\"VistaFetch Logo\" title=\"VistaFetch Logo\" width=30%\"/\u003e\n    \u003cbr\u003eVistaFetch\n  \u003cbr\u003e\n\u003c/h1\u003e\n\u003ch4 align=\"center\"\u003eVistaFetch is a simple and lightweight Python library for financial asset data retrieval (stocks, ETFs, etc.) from onvista.de.\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"http://www.apache.org/licenses/LICENSE-2.0\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/apache/streampipes.svg\" alt=\"License Apache 2.0\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/bossenti/vistafetch/actions/workflows/ci.yml\" target=\"blank\"\u003e\n    \u003cimg src=\"https://github.com/bossenti/vistafetch/actions/workflows/ci.yml/badge.svg\" alt=\"Continuous Integration status\"\u003e \n\u003c/a\u003e\n\u003ca href=\"https://pypi.org/project/vistafetch/\" target=\"blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/pypi/v/vistafetch\" alt=\"PyPI released version\"\u003e \n\u003c/a\u003e\n\u003ca href=\"https://pypi.org/project/vistafetch/\" target=\"blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/pypi/pyversions/vistafetch\" alt=\"PyPI supported Python versions\"\u003e \n\u003c/a\u003e\n\u003ca href=\"https://github.com/python/mypy\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/typed-mypy-blue\" alt=\"Typed: MyPy\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://beta.ruff.rs/docs/\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\" alt=\"Linting: Ruff\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://github.com/astral-sh/uv\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json\" alt=\"Dependency \u0026 Build Management: uv\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://pre-commit.com/\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white\" alt=\"pre-commit\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://pydantic.dev\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json\" alt=\"Pydantic v2\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e [!WARNING]  \n\u003e The API used by this package is not public. Therefore, users should assume that using this package may violate the site's terms of use.\n\u003e The author of this package takes no responsibility for how individuals use the code. It is important to use the code respectfully and judiciously, keeping in mind the potential consequences of violating the terms of service and applicable laws.\n\u003e Users are encouraged to read the API Terms and Conditions, Acceptable Use Policy, and License Agreements before using any API. These agreements outline the legal, business, and technical considerations that apply to the use of an API.\n\n\n## ⚡️ Quickstart\nPlease ensure that `vistafetch` is installed on your machine by running the following command:\n```bash\npip install vistafetch\n```\nThe first step is to initiate the client (`VistaFetchClient`):\n```python\nfrom vistafetch import VistaFetchClient\n\nclient = VistaFetchClient()\n```\n\n### 🔎 Exploratory search\nThe client now enables you to search for assets and allows you to investigate the results:\n```python\nresult = client.search_asset(\n    search_term=\"S\u0026P\",\n)\nresult.visualize()\n```\nThis produces the following console output:\n```bash\n               Financial assets discovered                \n┏━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓\n┃ Index ┃      Name      ┃   Asset Type   ┃     ISIN     ┃\n┡━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩\n│   0   │    S\u0026P 500     │     INDEX      │ US78378X1072 │\n│   1   │ Siemens Energy │     STOCK      │ DE000ENER6Y0 │\n│   2   │  Silberpreis   │ PRECIOUS_METAL │ XC0009653103 │\n│   3   │      SAP       │     STOCK      │ DE0007164600 │\n│   4   │ EURO STOXX 50  │     INDEX      │ EU0009658145 │\n└───────┴────────────────┴────────────────┴──────────────┘\n```\nOne now can access the asset of choice:\n```python\nasset = result.get(3)  # returns SAP in this case\n\n# in case one simply wants the first one, the following shorthand takes you there\nasset = result.get()\n```\nOne can now access several parameters of the asset or convert them to a JSON string as show below.\n```python\nprint(asset.isin)\nprint(asset.as_json())\n```\n```bash\nDE0007164600\n{\n  \"display_type\":\"Aktie\",\n  \"entity_type\":\"STOCK\",\n  \"isin\":\"DE0007164600\",\n  \"name\":\"SAP\",\n  \"tiny_name\":\"SAP\",\n  \"wkn\":\"716460\",\n}\n```\n\nAs a final step, the asset provides some recent price-related data:\n```python\nprint(asset.get_latest_price_data().as_json())\n```\n```bash\n{\n  \"currency_symbol\":\"EUR\",\n  \"datetime_high\":\"2023-08-25T14:17:15Z\",\n  \"datetime_last\":\"2023-08-25T15:37:14Z\",\n  \"datetime_low\":\"2023-08-25T15:02:12Z\",\n  \"datetime_open\":\"2023-08-25T07:00:26.999000Z\",\n  \"high\":127.24,\n  \"last\":126.16,\n  \"low\":125.66,\n  \"open\":126.2,\n}\n```\n\nIn addition, you directly access the individual values, e.g., price value `last`:\n```python\nasset.get_latest_price_data().last\n```\n```bash\n126.16\n```\n\n\u003cbr\u003e\n\n\u003e [!WARNING]  \n\u003e Price data are currently not supported for indexes.\n\u003e Feel free to send me a feature request if you'd like to see this feature\n\u003e supported for other asset types as well: https://github.com/bossenti/vistafetch/issues/new.\n\u003e As an alternative, contributions are welcome at any time.\n\n### 🎯 Targeted search\nIn case you already know the identifier for your asset (both ISIN and WKN are supported),\nyou can directly query them. This returns then only one result:\n```python\nresult = client.search_asset(\n    search_term=\"DE0007164600\",  # alternatively pass the WKN here\n)\nsap_stock = result.get()\n```\n\n## 🐛 Facing problems\nFeel free to open an [issue](https://github.com/bossenti/vistafetch/issues/new) if you experience strange behavior or bugs when using `vistafetch`. \u003cbr\u003e\nIf you are not sure if your problem should be considered a bug or if you have a question in general, reach out via [discussions](https://github.com/bossenti/vistafetch/discussions).\n\n\n## 💻 Contributing\nWe welcome and appreciate contributions of any size.\nor smaller or straightforward changes, feel free to create a pull request directly. \nIf you plan to make significant improvements or extensions, please open an [issue](https://github.com/bossenti/vistafetch/issues/new) \nor [disussion](https://github.com/bossenti/vistafetch/discussions) beforehand.\n\n### Initial Setup\nFor your convenience, please ensure that you have Poetry and Just installed. You can read more on them by following the links below:\n* [poetry](https://python-poetry.org/)\n* [just](https://github.com/casey/just)\n\nTo get all required dependencies installed, simply start with:\n```bash\njust poetry-install\n```\nAdditionally, we make use of [pre-commit](https://github.com/pre-commit/pre-commit). To set it up, run the following command:\n```bash\npre-commit install\n```\n\nTo verify that everything is set up correctly, execute the test suite:\n```bash\njust unit-tests\n```\n\n### Code Conformance\n\nOnce you implemented your changes, please run the following commands:\n```bash\njust pretty   # formats the code and applies automatic linting fixes\njust check  # checks code for conformance\n```\n\n### Opening PR\n\nPlease be aware that this repository follows [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/).\nSo please choose a PR title corresponding to the following:\n```bash\n\u003cscope\u003e(#\u003cIssueID\u003e): \u003cdescription\u003e  # supported scopes can be found here: https://github.com/commitizen/conventional-commit-types/blob/master/index.json\n\n# e.g.\ndocs(#8): provide extensive project readme\n\n# issue id is optional, so the following si valid as well\ndocs: provide extensive project readme\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbossenti%2Fvistafetch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbossenti%2Fvistafetch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbossenti%2Fvistafetch/lists"}