{"id":13758542,"url":"https://github.com/twitch-rs/twitch_api","last_synced_at":"2025-12-12T15:06:33.417Z","repository":{"id":37828579,"uuid":"265190054","full_name":"twitch-rs/twitch_api","owner":"twitch-rs","description":"Rust library for talking with the Twitch API aka. \"Helix\", TMI and more! Use Twitch endpoints fearlessly!","archived":false,"fork":false,"pushed_at":"2025-04-21T10:12:37.000Z","size":269482,"stargazers_count":164,"open_issues_count":36,"forks_count":36,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-01T07:02:11.763Z","etag":null,"topics":["asynchronous","helix","pubsub","rust","tmi","twitch","twitch-api"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/twitch-rs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","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":"2020-05-19T08:29:35.000Z","updated_at":"2025-04-25T13:51:20.000Z","dependencies_parsed_at":"2023-07-14T09:15:26.011Z","dependency_job_id":"2bc69147-e32c-4cb5-a748-b29f9198edfd","html_url":"https://github.com/twitch-rs/twitch_api","commit_stats":{"total_commits":784,"total_committers":16,"mean_commits":49.0,"dds":0.09183673469387754,"last_synced_commit":"c8dc5621623de245bd103bf5fcfc0f41e368459f"},"previous_names":["emilgardis/twitch_api2"],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twitch-rs%2Ftwitch_api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twitch-rs%2Ftwitch_api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twitch-rs%2Ftwitch_api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twitch-rs%2Ftwitch_api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/twitch-rs","download_url":"https://codeload.github.com/twitch-rs/twitch_api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252902604,"owners_count":21822259,"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":["asynchronous","helix","pubsub","rust","tmi","twitch","twitch-api"],"created_at":"2024-08-03T13:00:32.101Z","updated_at":"2025-12-12T15:06:27.931Z","avatar_url":"https://github.com/twitch-rs.png","language":"Rust","funding_links":[],"categories":["Libraries","Rust"],"sub_categories":["Rust"],"readme":"# Twitch API | Rust library for talking with the new Twitch API aka. \"Helix\", EventSub and more!\n\n[![github]](https://github.com/twitch-rs/twitch_api)\u0026ensp;[![crates-io]](https://crates.io/crates/twitch_api)\u0026ensp;[![docs-rs-big]](https://docs.rs/twitch_api/0.7.2/twitch_api/)\u0026ensp;[![discord]](https://discord.gg/7APWQeEmnK)\n\n[github]: https://img.shields.io/badge/github-twitch--rs/twitch__api-8da0cb?style=for-the-badge\u0026labelColor=555555\u0026logo=github\n[crates-io]: https://img.shields.io/crates/v/twitch_api.svg?style=for-the-badge\u0026color=fc8d62\u0026logo=rust\n[docs-rs-big]: https://img.shields.io/badge/docs.rs-twitch__api-66c2a5?style=for-the-badge\u0026labelColor=555555\u0026logoColor=white\u0026logo=data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGZpbGw9IiNmNWY1ZjUiIGQ9Ik00ODguNiAyNTAuMkwzOTIgMjE0VjEwNS41YzAtMTUtOS4zLTI4LjQtMjMuNC0zMy43bC0xMDAtMzcuNWMtOC4xLTMuMS0xNy4xLTMuMS0yNS4zIDBsLTEwMCAzNy41Yy0xNC4xIDUuMy0yMy40IDE4LjctMjMuNCAzMy43VjIxNGwtOTYuNiAzNi4yQzkuMyAyNTUuNSAwIDI2OC45IDAgMjgzLjlWMzk0YzAgMTMuNiA3LjcgMjYuMSAxOS45IDMyLjJsMTAwIDUwYzEwLjEgNS4xIDIyLjEgNS4xIDMyLjIgMGwxMDMuOS01MiAxMDMuOSA1MmMxMC4xIDUuMSAyMi4xIDUuMSAzMi4yIDBsMTAwLTUwYzEyLjItNi4xIDE5LjktMTguNiAxOS45LTMyLjJWMjgzLjljMC0xNS05LjMtMjguNC0yMy40LTMzLjd6TTM1OCAyMTQuOGwtODUgMzEuOXYtNjguMmw4NS0zN3Y3My4zek0xNTQgMTA0LjFsMTAyLTM4LjIgMTAyIDM4LjJ2LjZsLTEwMiA0MS40LTEwMi00MS40di0uNnptODQgMjkxLjFsLTg1IDQyLjV2LTc5LjFsODUtMzguOHY3NS40em0wLTExMmwtMTAyIDQxLjQtMTAyLTQxLjR2LS42bDEwMi0zOC4yIDEwMiAzOC4ydi42em0yNDAgMTEybC04NSA0Mi41di03OS4xbDg1LTM4Ljh2NzUuNHptMC0xMTJsLTEwMiA0MS40LTEwMi00MS40di0uNmwxMDItMzguMiAxMDIgMzguMnYuNnoiPjwvcGF0aD48L3N2Zz4K\n[discord]: https://img.shields.io/discord/325552783787032576?logo=discord\u0026style=for-the-badge\n\nSee [documentation](https://docs.rs/twitch_api) for more info.\n\nYou can see current unpublished docs for the main branch here: [![local-docs]](https://twitch-rs.github.io/twitch_api/twitch_api)\n\nSee [examples](./examples) for examples. If you want to run them locally,\nmake sure you [get the git submodules](./CONTRIBUTING.md#fetching-the-git-submodules) first.\n\n[local-docs]: https://img.shields.io/github/actions/workflow/status/twitch-rs/twitch_api/gh-pages.yml?label=dev%20docs\u0026style=flat-square\u0026event=push\n\n```rust ,no_run\nuse twitch_api::helix::HelixClient;\nuse twitch_api::twitch_oauth2::{AccessToken, UserToken};\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error + Send + Sync + 'static\u003e\u003e {\n    // Create the HelixClient, which is used to make requests to the Twitch API\n    let client: HelixClient\u003creqwest::Client\u003e = HelixClient::default();\n    // Create a UserToken, which is used to authenticate requests\n    let token = UserToken::from_token(\u0026client, AccessToken::from(\"mytoken\")).await?;\n\n    println!(\n        \"Channel: {:?}\",\n        client.get_channel_from_login(\"twitchdev\", \u0026token).await?\n    );\n\n    Ok(())\n}\n```\n\n## Notes\n\nThis crate was previously available as `twitch_api2` and has since been renamed to `twitch_api`\n\n## Goals\n\nThis crate aims to target\n\n- [Helix](https://dev.twitch.tv/docs/api/reference)\n  - See [implemented endpoints](https://github.com/twitch-rs/twitch_api/wiki/Implemented-Features#helix)\n- [EventSub](https://dev.twitch.tv/docs/eventsub/eventsub-reference)\n  - See [implemented eventsub Helix endpoints](https://github.com/twitch-rs/twitch_api/wiki/Implemented-Features#eventsub)\n- [Extensions](https://dev.twitch.tv/docs/extensions/reference)\n  - No functionality implemented yet\n- [PubSub](https://dev.twitch.tv/docs/pubsub) (without a client)\n  - See [implemented topics](https://github.com/twitch-rs/twitch_api/wiki/Implemented-Features#pubsub)\n  - PubSub [is deprecated](https://discuss.dev.twitch.com/t/legacy-pubsub-deprecation-and-shutdown-timeline/58043), replaced with EventSub websockets\n\nThere are no current plans to support\n\n- [GraphQL](https://github.com/mauricew/twitch-graphql-api)\n- [Drops](https://dev.twitch.tv/docs/drops) (except what is in Helix)\n- [Twitch IRC Chat](https://dev.twitch.tv/docs/irc), use [museun/twitch_message](https://github.com/museun/twitch_message) or [robotty/twitch-irc](https://github.com/robotty/twitch-irc-rs/)\n- [Authentication](https://dev.twitch.tv/docs/authentication), use [twitch-rs/twitch_oauth2](https://github.com/twitch-rs/twitch_oauth2)\n- Undocumented Helix endpoints, i.e endpoints mobile Twitch app uses. Including [working \"hidden\" endpoints](https://thomassen.sh/twitch-api-endpoints/)\n\n\u003ch5\u003e License \u003c/h5\u003e\n\n\u003csup\u003e\nLicensed under either of \u003ca href=\"LICENSE-APACHE\"\u003eApache License, Version\n2.0\u003c/a\u003e or \u003ca href=\"LICENSE-MIT\"\u003eMIT license\u003c/a\u003e at your option.\n\u003c/sup\u003e\n\n\u003cbr\u003e\n\n\u003csub\u003e\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in this crate by you, as defined in the Apache-2.0 license, shall\nbe dual licensed as above, without any additional terms or conditions.\n\u003c/sub\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwitch-rs%2Ftwitch_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftwitch-rs%2Ftwitch_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftwitch-rs%2Ftwitch_api/lists"}