{"id":16769667,"url":"https://github.com/pjullrich/complete-bunq-api-python-wrapper","last_synced_at":"2025-07-22T11:33:03.783Z","repository":{"id":62560531,"uuid":"90530731","full_name":"PJUllrich/Complete-Bunq-API-Python-Wrapper","owner":"PJUllrich","description":"Complete Python API Wrapper for Bunq API","archived":false,"fork":false,"pushed_at":"2017-07-08T17:33:11.000Z","size":136,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-19T08:19:58.409Z","etag":null,"topics":["api","bunq","bunq-api","python","python36","wrapper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PJUllrich.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}},"created_at":"2017-05-07T12:24:11.000Z","updated_at":"2019-08-01T10:06:03.000Z","dependencies_parsed_at":"2022-11-03T14:45:27.572Z","dependency_job_id":null,"html_url":"https://github.com/PJUllrich/Complete-Bunq-API-Python-Wrapper","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/PJUllrich/Complete-Bunq-API-Python-Wrapper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PJUllrich%2FComplete-Bunq-API-Python-Wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PJUllrich%2FComplete-Bunq-API-Python-Wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PJUllrich%2FComplete-Bunq-API-Python-Wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PJUllrich%2FComplete-Bunq-API-Python-Wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PJUllrich","download_url":"https://codeload.github.com/PJUllrich/Complete-Bunq-API-Python-Wrapper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PJUllrich%2FComplete-Bunq-API-Python-Wrapper/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266483579,"owners_count":23936371,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["api","bunq","bunq-api","python","python36","wrapper"],"created_at":"2024-10-13T06:14:41.104Z","updated_at":"2025-07-22T11:33:03.738Z","avatar_url":"https://github.com/PJUllrich.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Complete Bunq API Wrapper for Python\nThis project aims to have a complete Python wrapper for the [Bunq API](https://doc.bunq.com/). It takes inspiration from the [.NET wrapper](https://github.com/Sycade/BunqApi) written by the great [MLowijs](https://github.com/mlowijs). Some functionality, especially in `ApiClient`, is based on or taken from the thin [API wrapper](https://github.com/madeddie/python-bunq) created by [MadEddie](https://github.com/madeddie). Thanks MLowijs and MadEddie!\n\nThis project is built in **Python 3.6**\n\n[![Build Status](https://travis-ci.org/PJUllrich/Complete-Bunq-API-Python-Wrapper.svg?branch=master)](https://travis-ci.org/PJUllrich/Complete-Bunq-API-Python-Wrapper)\n[![BCH compliance](https://bettercodehub.com/edge/badge/PJUllrich/Complete-Bunq-API-Python-Wrapper?branch=master)](https://bettercodehub.com/)\n[![Test Coverage](https://coveralls.io/repos/github/PJUllrich/Complete-Bunq-API-Python-Wrapper/badge.svg?branch=master)](https://coveralls.io/github/PJUllrich/Complete-Bunq-API-Python-Wrapper?branch=master) \n[![Updates](https://pyup.io/repos/github/PJUllrich/Complete-Bunq-API-Python-Wrapper/shield.svg)](https://pyup.io/repos/github/PJUllrich/Complete-Bunq-API-Python-Wrapper/)\n[![Python 3](https://pyup.io/repos/github/PJUllrich/Complete-Bunq-API-Python-Wrapper/python-3-shield.svg)](https://pyup.io/repos/github/PJUllrich/Complete-Bunq-API-Python-Wrapper/)\n\n## Getting started\n1. First enter your [API Key](https://www.bunq.com/en/api) in the `apiwrapper/config/parameters.ini` file.\n2. Next, [create a new Virtual Environment](https://python-guide-pt-br.readthedocs.io/en/latest/dev/virtualenvs/) based on **Python 3.6**\n3. Activate your Virtual Environment and install the requirements in `requirements.txt` with `pip3.6 install -r requirements.txt`\n4. Open `get_started.py`, read through the comments and follow them. After doing this you will have a ready-to-go installation and can start using the API!\n\n## Reuse Installation\nIf you followed the script `get_started.py` mentioned above already, you should have the following parameters saved somewhere:\n\n- API Key\n- Private Key\n- Installation Token (not needed if you have the Session Token)\n- Installation ID (needed to create new session tokens)\n- Server Public Key\n- Session Token\n\nNote: If you saved these parameters to the config file, they will be in `apiwrapper/config/parameters.ini`\n\nIf you have the above parameters, you can go ahead and create an APIClient, which is the connector to the Bunq API.\n\nYou will have to decide which APIClient to use.\nAt the moment, I included one that uses the config file in `apiwrapper/config/parameters.ini`, which is the 'normal' class `APIClient`.\nAlso, on request from OGKevin, I included an APIClient, which does not load the parameters from a config file, called the `APIClientNonPersisting`.\n\nSo, decide on whether to use the config file or not and uncomment one of the\nfollowing lines:\n\nIf you want to use the parameters stored in `apiwrapper/config/parameters.ini`,\nuse the following code:\n```python\nfrom apiwrapper.clients.api_client_persisting import ApiClientPersisting\n\napi_key = \"YOUR API KEY HERE\"\napi = ApiClientPersisting(api_key)\n```\n\nElse, if you want to use your own parameters, use the following\nlines and enter your parameters there\n```python\nfrom apiwrapper.clients.api_client import ApiClient\n\napi_key = \"YOUR API KEY HERE\"\nprivate_key = \"YOUR PRIVATE KEY HERE\"\nsession_token = \"YOUR SESSION TOKEN HERE\"\nserver_public_key = \"THE SERVER PUBLIC KEY HERE\"\n\napi = ApiClient(api_key, privkey=private_key,\n                                 session_token=session_token,\n                                 server_pubkey=server_public_key)\n```\n\nNow, you are able to make calls to the Bunq API using the `EndpointsController`.\nI have included an example of how to get the User ID from the API:\n```python\nfrom apiwrapper.clients.api_client import ApiClient\nfrom apiwrapper.clients.api_client_persisting import ApiClientPersisting\nimport json\n\napi = \"MAKE SURE TO CREATE THE API CLIENT AS DESCRIBED ABOVE\"\n\nres = api.endpoints.user.get_logged_in_user()\nprint(json.dumps(res, indent=2))\n```\n\n## How to use this API Wrapper\nEach endpoint of the [Bunq API](https://doc.bunq.com/) has its own `Endpoint` module. The existing ones are in the `apiwrapper/endpoints` package.\nThe **EndpointController** in `apiwrapper/endpoints/controller` has an\ninstance of each of these endpoints.\nAny ApiClient will have an instance of this endpoint controller called\n**endpoints**. After creating an ApiClient you can simply make api calls with:\n```python\napi_client.endpoints.ENDPOINT_OF_YOUR_CHOICE.CALL_OF_YOUR_CHOICE()\n```\n\n**Endpoint functions simply return the response from the Bunq API.**\n\n#### [Example] Retrieve all Monetary Accounts for User\n```python\nimport json\n\nfrom apiwrapper.clients.api_client_persisting import ApiClientPersisting\n\nuser_id = 1234\n\napi = ApiClientPersisting()\nres = api.endpoints.monetary_account.get_all_accounts_for_user(user_id)\n\nprint(json.dumps(res, indent=2))\n```\n\n## Contribute\nIf you want to contribute, fork this repository and start implementing one of the following points:\n* Add `POST`, `PUT`, and some `DELETE` calls for all endpoints\n* Add Encryption/Decryption of `/config/parameter.ini` file using Password\n* Have a look at the Issues of this repository\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjullrich%2Fcomplete-bunq-api-python-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpjullrich%2Fcomplete-bunq-api-python-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjullrich%2Fcomplete-bunq-api-python-wrapper/lists"}