{"id":20853640,"url":"https://github.com/madisvain/vatcomply","last_synced_at":"2025-05-12T05:31:25.195Z","repository":{"id":39761267,"uuid":"183026877","full_name":"madisvain/vatcomply","owner":"madisvain","description":"VATcomply is a free API service for vat number validation, user ip geolocation and foreign exchange rates.","archived":false,"fork":false,"pushed_at":"2025-05-10T12:51:02.000Z","size":468,"stargazers_count":26,"open_issues_count":1,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-10T13:43:06.886Z","etag":null,"topics":["currency","currency-api","currency-exchange-rates","geolocation","vat-validation"],"latest_commit_sha":null,"homepage":"https://vatcomply.com","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/madisvain.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":"2019-04-23T13:58:54.000Z","updated_at":"2025-05-10T12:51:06.000Z","dependencies_parsed_at":"2024-03-03T09:25:26.422Z","dependency_job_id":"b3b37df3-e1be-483b-8fa3-3b211dfe24f8","html_url":"https://github.com/madisvain/vatcomply","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madisvain%2Fvatcomply","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madisvain%2Fvatcomply/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madisvain%2Fvatcomply/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madisvain%2Fvatcomply/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/madisvain","download_url":"https://codeload.github.com/madisvain/vatcomply/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253682084,"owners_count":21946872,"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":["currency","currency-api","currency-exchange-rates","geolocation","vat-validation"],"created_at":"2024-11-18T03:22:36.578Z","updated_at":"2025-05-12T05:31:20.183Z","avatar_url":"https://github.com/madisvain.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VATcomply\n\n[VATcomply](https://www.vatcomply.com) is a free API service for vat number validation, user ip geolocation and foreign exchange rates [published by the European Central Bank](https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html).\n\n## Usage\n\n#### Lates \u0026 specific date rates\n\nGet the latest foreign exchange rates.\n\n```http\nGET /rates\n```\n\nRates are quoted against the Euro by default. Quote against a different currency by setting the base parameter in your request.\n\n```http\nGET /rates?base=USD\n```\n\nRequest specific exchange rates by setting the symbols parameter.\n\n```http\nGET /rates?symbols=USD,GBP\n```\n\n#### Rates history and query parameters combinations\n\nGet historical rates for a date\n\n```http\nGET /rates?date=2018-01-01\n```\n\nLimit results to specific exchange rates to save bandwidth with the symbols parameter.\n\n```http\nGET /rates?date=2018-01-01\u0026symbols=ILS,JPY\n```\n\nQuote the historical rates against a different currency.\n\n```http\nGET /rates?date=2018-01-01\u0026base=USD\n```\n\n#### Client side usage\n\nThe primary use case is client side. For instance, with [money.js](https://openexchangerates.github.io/money.js/) in the browser\n\n```js\nlet demo = () =\u003e {\n  let rate = fx(1).from(\"GBP\").to(\"USD\");\n  alert(\"£1 = $\" + rate.toFixed(4));\n};\n\nfetch(\"https://api.vatcomply.com/rates\")\n  .then((resp) =\u003e resp.json())\n  .then((data) =\u003e (fx.rates = data.rates))\n  .then(demo);\n```\n\n## Stack\n\nVATcomply API is built upon [Django](https://www.djangoproject.com/) with asyncronous views, [Pydantic](https://docs.pydantic.dev/latest/) and asyncronous ORM queries to achieve high throughput. The current setup can asyncronously handle thousands of requests per second.\n\n#### Libraries used\n\n- [Django](https://www.djangoproject.com/)\n- [Pydantic](https://docs.pydantic.dev/latest/)\n- [APScheduler](https://github.com/agronholm/apscheduler)\n- [ultraJSON](https://github.com/esnme/ultrajson)\n\n## Deployment\n\n#### Virtualenv\n\n```shell\npyenv shell 3.x.x\n```\n\n#### Install packages\n\n```shell\nvirtualenv env\n. env/bin/activate\npip install -r requirements.in --upgrade\n```\n\n#### Load in initial data \u0026 Scheduler\n\nThe scheduler will keep your database up to date hourly with information from European Central bank. It will download the last 90 days worth of data every hour.\n\n_The reference rates are usually updated around 16:00 CET on every working day, except on TARGET closing days. They are based on a regular daily concertation procedure between central banks across Europe, which normally takes place at 14:15 CET._\n\nOn initialization it will check the database. If it's empty all the historic rates will be downloaded and records created in the database.\n\n## Development\n\n```shell\nexport DEBUG=True; uvicorn vatcomply.asgi:application --reload\n```\n\nor for simplicity a Makefile is provided with all the commands for development.\n\n```shell\nmake run\n```\n\n## Migrations\n\nMake migrations\n\n```shell\nmake migrations\n```\n\nRun migrations\n\n```shell\nmake migrate\n```\n\n## Tests\n\n```shell\nmake test\n```\n\n## Contributing\n\nThanks for your interest in the project! All pull requests are welcome from developers of all skill levels. To get started, simply fork the master branch on GitHub to your personal account and then clone the fork into your development environment.\n\nMadis Väin ([madisvain](https://github.com/madisvain) on Github) is the original creator of the VATcomply API.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadisvain%2Fvatcomply","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadisvain%2Fvatcomply","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadisvain%2Fvatcomply/lists"}