{"id":17846474,"url":"https://github.com/technicalguru/sportdata-api-client","last_synced_at":"2025-08-09T19:54:37.460Z","repository":{"id":45410363,"uuid":"306720626","full_name":"technicalguru/sportdata-api-client","owner":"technicalguru","description":"Java client for sportdataapi.com ","archived":false,"fork":false,"pushed_at":"2021-12-15T08:24:33.000Z","size":326,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-08T06:30:55.151Z","etag":null,"topics":["football-api","football-data","footballdata","java","rest-api","soccer","soccer-data","soccer-data-api","soccer-matches","sportdata","sports-data"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/technicalguru.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-23T18:46:34.000Z","updated_at":"2021-12-15T08:23:33.000Z","dependencies_parsed_at":"2022-09-10T03:02:16.290Z","dependency_job_id":null,"html_url":"https://github.com/technicalguru/sportdata-api-client","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/technicalguru%2Fsportdata-api-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/technicalguru%2Fsportdata-api-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/technicalguru%2Fsportdata-api-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/technicalguru%2Fsportdata-api-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/technicalguru","download_url":"https://codeload.github.com/technicalguru/sportdata-api-client/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246847052,"owners_count":20843438,"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":["football-api","football-data","footballdata","java","rest-api","soccer","soccer-data","soccer-data-api","soccer-matches","sportdata","sports-data"],"created_at":"2024-10-27T21:40:01.995Z","updated_at":"2025-04-02T15:41:14.107Z","avatar_url":"https://github.com/technicalguru.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sportdata-api-client (Project stopped)\nJava client for requesting data from [sportdataapi.com](https://sportdataapi.com).\n\n## Synopsis\nThis Java client provides access to [sportdataapi.com](https://sportdataapi.com)'s REST API (soccer only). It returns data as\nrespective Java objects and encapsulates the REST API boilerplate of handling encoding/decoding JSON or correct\nURL, HTTP headers and query parameter syntax. \n\n**Attention!** A valid subscription is required to use this client. Anonymous clients will not work.\n\n## Status and Roadmap\nThe project is stuck in Beta phase and was aborted (due to missing production usage). Interested parties may takeover this project. Please contact me\n\n## Features\n* Implementation of all soccer REST endpoints\n* Handling of HTTP 404 return codes and returning empty lists or `null` values.\n* Automatic decoding of values into corresponding Java objects wherever possible\n* **Not** thread-safe. You will need a `SdaClient` per thread in case this is your requirement.\n\n## Maven Coordinates\n\n```\n\u003cdependency\u003e\n\t\u003cgroupId\u003eeu.ralph-schuster\u003c/groupId\u003e\n\t\u003cartifactId\u003esportdata-api-client\u003c/artifactId\u003e\n\t\u003cversion\u003e0.9.6\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## API Reference\n\nAPI Javadoc for all versions is available via [javadoc.io](https://www.javadoc.io/doc/eu.ralph-schuster/sportdata-api-client).\n\n## License\n\n*sportdata-api-client* is free software: you can redistribute it and/or modify it under the terms of version 3 of the [GNU \nLesser General Public License](LICENSE.md) as published by the Free Software Foundation.\n\n*sportdata-api-client* is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied \nwarranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public \nLicense for more details.\n\nYou should have received a copy of the GNU Lesser General Public License along with *sportdata-api-client*.  If not, see \n[https://www.gnu.org/licenses/lgpl-3.0.html](https://www.gnu.org/licenses/lgpl-3.0.html).\n\nSummary:\n 1. You are free to use all this code in any private or commercial project. \n 2. You must distribute license and author information along with your project.\n 3. You are not required to publish your own source code.\n\n## Usage Example\nFirst, create your client instance via the `SdaClientFactory` using your API key:\n\n```\nString    myApiKey = '00000000-0000-0000-0000-000000000000';\nSdaClient client   = SdaClientFactory.newClient(myApiKey);\n```\n\nNext is to retrieve the subclient for the API you wish to use and make your request, e.g.:\n\n```\nLeaguesClient leaguesClient = client.soccer().leagues();\nList\u003cLeague\u003e  germanLeagues = leaguesClient.list(48);\n```\n\nNow, you could try to find the current season of each league:\n\n```\nSeasonsClient seasonsClient = client.soccer.seasons();\nfor (League league : germanLeagues) {\n\tList\u003cSeason\u003e seasons = seasonsClient.list(league.getId());\n\tfor (Season season : seasons) {\n\t\tif (season.isCurrent()) {\n\t\t\t...\n\t\t}\n\t}\n}\n```\n\nOnce you are finished, you will need to close the client accordingly:\n\n```\nclient.close();\n```\n\nPS: It is a good pattern to always wrap the `get()` and `list()` calls in `try {} catch () {}` blocks\nas the methods can still throw ``ForbiddenException`` or other exceptions that result from errors returned by the server.\n\n## Developer Notes\nPlease be aware that JUnit tests require a valid API key from sportdataapi.com with the correct leagues subscribed to. Provide\nthe key either by setting environment variable `SDA_API_TOKEN` or creating a file `my-apikey.txt` that is available\nin any of the classpath's folders, e.g. in `src/test/resources`. Be careful not to submit this file in any of your\ncode repositories.\n\n## Contributions\n\nReport a bug, request an enhancement or pull request at the [GitHub Issue Tracker](https://github.com/technicalguru/sportdata-api-client/issues). \nMake sure you have checked out the [Contribution Guideline](CONTRIBUTING.md)\n\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechnicalguru%2Fsportdata-api-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechnicalguru%2Fsportdata-api-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechnicalguru%2Fsportdata-api-client/lists"}