{"id":48172646,"url":"https://github.com/crazzyghost/alphavantage-java","last_synced_at":"2026-04-04T17:35:42.107Z","repository":{"id":37563870,"uuid":"217143305","full_name":"crazzyghost/alphavantage-java","owner":"crazzyghost","description":"Fluent Java wrapper for Alpha Vantage API","archived":false,"fork":false,"pushed_at":"2025-08-23T22:32:23.000Z","size":2467,"stargazers_count":93,"open_issues_count":3,"forks_count":39,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-23T23:49:34.120Z","etag":null,"topics":["alpha-vantage","crypto-currency","fluent-api","forex","java","stock-indicators"],"latest_commit_sha":null,"homepage":"","language":"Java","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/crazzyghost.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-10-23T20:03:37.000Z","updated_at":"2025-08-23T12:48:43.000Z","dependencies_parsed_at":"2024-06-25T16:39:57.122Z","dependency_job_id":"b19bc936-0d8e-4e5d-b79b-e722a83d24a2","html_url":"https://github.com/crazzyghost/alphavantage-java","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/crazzyghost/alphavantage-java","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazzyghost%2Falphavantage-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazzyghost%2Falphavantage-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazzyghost%2Falphavantage-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazzyghost%2Falphavantage-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crazzyghost","download_url":"https://codeload.github.com/crazzyghost/alphavantage-java/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crazzyghost%2Falphavantage-java/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31407645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["alpha-vantage","crypto-currency","fluent-api","forex","java","stock-indicators"],"created_at":"2026-04-04T17:35:39.368Z","updated_at":"2026-04-04T17:35:42.092Z","avatar_url":"https://github.com/crazzyghost.png","language":"Java","readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://circleci.com/gh/crazzyghost/alphavantage-java/tree/master\"\u003e\u003cimg src=\"https://circleci.com/gh/crazzyghost/alphavantage-java/tree/master.svg?style=shield\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/crazzyghost/alphavantage-java\"\u003e \u003cimg src=\"https://codecov.io/gh/crazzyghost/alphavantage-java/branch/master/graph/badge.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://jitpack.io/#crazzyghost/alphavantage-java\"\u003e \u003cimg src=\"https://jitpack.io/v/crazzyghost/alphavantage-java.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-green.svg\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://jitpack.io/v/crazzyghost/alphavantage-java/month\"\u003e \u003cimg src=\"https://jitpack.io/v/crazzyghost/alphavantage-java/month\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=alert_status\"\u003e \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=alert_status\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=security_rating\"\u003e \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=security_rating\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=reliability_rating\"\u003e \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=reliability_rating\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=sqale_rating\"\u003e \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=sqale_rating\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=bugs\"\u003e \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=bugs\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=vulnerabilities\"\u003e \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=crazzyghost_alphavantage-java\u0026metric=vulnerabilities\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nAn easy-to-use, fluent Java wrapper for accessing the [AlphaVantage API](https://www.alphavantage.co/).\n\n## Getting Started\n\nTo get started using this library, make sure to get an [API Key](https://www.alphavantage.co/support/#api-key) from Alphavantage's website. Add the library as a dependency to your java/android project\n\n### Gradle Installation\n\n```groovy\nallprojects {\n    repositories {\n        ...\n        maven { url 'https://jitpack.io' }\n    }\n}\ndependencies {\n    ...\n    implementation 'com.github.crazzyghost:alphavantage-java:x.y.z'\n}\n```\n\n### Maven Installation\n\n```xml\n\u003crepositories\u003e\n    ...\n    \u003crepository\u003e\n        \u003cid\u003ejitpack.io\u003c/id\u003e\n        \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n    \u003c/repository\u003e\n    ...\n\u003c/repositories\u003e\n\u003cdependencies\u003e\n    ...\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.github.crazzyghost\u003c/groupId\u003e\n        \u003cartifactId\u003ealphavantage-java\u003c/artifactId\u003e\n        \u003cversion\u003ex.y.z\u003c/version\u003e\n    \u003c/dependency\u003e\n    ...\n\u003c/dependencies\u003e\n```\n\n## Quick Usage Guide\n\nThese five steps summarize how to access data using this library\n\nStep 1. `config`ure the wrapper\n\nStep 2. Select a `category`\n\nStep 3. Set the `parameters` for the selected category\n\nStep 4. (Optional) Add `response callbacks`\n\nStep 5. `fetch` results\n\n#### 1. `Config`uring the wrapper\n\nAccess to the API is through the AlphaVantage Singleton which is accessed using the `static` `api()` method of the class. Initialize the singleton with a `Config` instance once throughout your app's lifetime.\n\n```java\nConfig cfg = Config.builder()\n    .key(\"#\u0026ALPHA10100DEMOKEY\")\n    .timeOut(10)\n    .build();\n```\n\nInitialize the instance with the config. You will use this object to set your api key and configure the http client. Using the wrapper without setting a config or a config key will throw an exception.\n\n```java\nAlphaVantage.api().init(cfg);\n```\n\nWe're good to go.\n\n#### 2. Selecting a `category`\n\nHere, we choose which data category/endpoint we want to access\n\n| Category                 | Method                  |\n|--------------------------|-------------------------|\n| Stock Time Series Data   | `.timeSeries()`         |\n| Forex Rate Data          | `.forex()`              |\n| Exchange Rate Data       | `.exchangeRate()`       |\n| Digital Currency Data    | `.crypto()`             |\n| Technical Indicator Data | `.technicalIndicator()` |\n| Sector Performance Data  | `.sector()`             |\n| Fundamental Data         | `.fundamentalData()`    |\n| Economic Indicators      | `.economicIndicator()`  |\n| Global Market Status     | `.marketStatus()`       |\n| Ticker/Symbol Search     | `.search()`             |\n\nFor example, to select the Stock Time Series:\n\n```java\nAlphaVantage.api()\n    .timeSeries()\n```\n\n#### 3. Setting the `parameters` for the selected category\n\nTo set the api request parameters, call the appopriate parameter methods. For instance for the `function` parameter function you call `daily()` for the `TIME_SERIES_DAILY` function, `intraday()` for the `TIME_SERIES_INTRADAY`,  and so on.\n\nLet's select the `TIME_SERIES_INTRADAY` function\n\n```java\nAlphaVantage.api()\n    .timeSeries()\n    .intraday()\n...\n```\n\nStart setting parameters by calling an appropriate function method in the selected category\n\n#### 4. Adding `response callbacks`\n\nTo handle responses add the `onSuccess()` or `onFailure()` async callbacks. Starting from version 1.5.0, this is an optional step.\n\n```java\npublic void handleSuccess(TimeSeriesResponse response) {\n    plotGraph(reponse.getStockUnits());\n}\npublic void handleFailure(AlphaVantageException error) {\n    /* uh-oh! */\n}\n\nAlphaVantage.api()\n    .timeSeries()\n    .intraday()\n    .forSymbol(\"IBM\")\n    .interval(Interval.FIVE_MIN)\n    .outputSize(OutputSize.FULL)\n    .onSuccess(e-\u003ehandleSuccess(e))\n    .onFailure(e-\u003ehanldeFailure(e))\n    ...\n```\n\n#### 5.  `fetch` results\n\nWhen you are okay with setting the parameters call the `fetch()` method. Simple!\n\n```java\nAlphaVantage.api()\n    .timeSeries()\n    .intraday()\n    .forSymbol(\"IBM\")\n    .interval(Interval.FIVE_MIN)\n    .outputSize(OutputSize.FULL)\n    .onSuccess(e-\u003ehandleSuccess(e))\n    .onFailure(e-\u003ehanldeFailure(e))\n    .fetch();\n```\n\nIf you want a synchronous response, call the `fetchSync()` method.\n\n```java\nTimeSeriesResponse response = AlphaVantage.api()\n    .timeSeries()\n    .intraday()\n    .forSymbol(\"IBM\")\n    .interval(Interval.FIVE_MIN)\n    .outputSize(OutputSize.FULL)\n    .fetchSync();\n```\n\n\nThat's it! :tada: See [site](https://crazzyghost.github.io/alphavantage-java/) and [demo project](https://github.com/crazzyghost/stockmonitor) for more examples \u0026 documentation\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrazzyghost%2Falphavantage-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrazzyghost%2Falphavantage-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrazzyghost%2Falphavantage-java/lists"}