All notable changes to this project will be documented in this file.
- Support for Channel reward redemption endpoints
- Added more filtering options for Categories endpoints (supporting V2 endpoints)
- Updated introspection to point to new OAuth introspection endpoint
- Extended channels with active/cancelled subscriptions
- Extended introspection with
TokenTypefield
- Channel Rewards APIs
- Channel Rewards webhook events
- Extended
GET /livestreamsresponse with profile picture
- Added .NET 10 support
- Extended
/channelsand/livestreamendpoints to parsecustom_tagsfield - Added official DELETE chat message endpoint
- Extended Categories response with
TagsandViewerCountfields - Extended Gift webhook payload with
PinnedTimefields - Added
TimeoutDurationforTimeoutUserAsyncin Moderation API to ease timeout duration passing - Added Examples
- Improved working with HTTP Client to better utilize connection pooling
- Added HTTP transient errors retry policy to API calls
- Added IHttpClientFactory to OAuthGenerator
- Added Kicks endpoints - full support for new Kicks endpoints and Leaderboards endpoint
- Added SubscribeToEvent to EventSubscriptions, to allow subscribing to single event
- Improved interface docs
- Added Delete Message for Unofficial API
- Added
KicksGiftedEventwebhook event support
- Extended
IApiCallerwithHttpMethodparameter forSendAuthenticatedRequestAsyncmethod. - Extended
SendMessageAsyncin Unofficial API to return sent message data (like ID and sender) - Extended Unofficial API
AuthenticationSettingsto allow passing override Bearer token to bypass login flow - Updated Puppeteer version to 20.x for Unofficial API on .NET 8 and above
- Removed
PinnedMessageDeletedEventin Kick.Client as this event has no data (and it was confusing users)
- GetLivestreamAsync overload to get livestream for currently authenticated user
- Add KicksGifted event to Client
- Fixed data deserialization for NewSubscriptionEvent webhook event
- Extended listened topics for
KickLib.Client - Added retry policy for
BrowserClient - Added replies_to field to
ChatMessageSentEventwebhook event
- Fixed listening for
SubscriptionEventevent
- Support for
.NET Standard 2.1 - Extended
GetLivestreamsAsyncto get livestreams by multiplebroadcasterIds
- Reply message metadata to
KickLib.ClientMessage data CreatedAtfield toChatMessageSentEventwebhook event
- Session-based browser client for unofficial API
- Added proper handling for Unofficial API, when request fails due to Cloudflare protection
- Safe parsing of the authentication response to prevent exceptions when the response is not in the expected format.
- Added
KickLibRefreshTokenExceptionthat is fired, when refresh token fails to refresh (usually because token expired or is invalid) - Extended all Result classes with
KickLibHttpResponseErrorobject, which contains error details if the request failed, including original HTTP response message - Added
GetUserAsynctoUsersAPI to get single user by ID
- Rolled back PuppeteerSharp version from 20.x to 14.0.0
- This was done to ensure compatibility with
PuppeteerExtraSharplibrary
- This was done to ensure compatibility with
- Extended KickClient with
OnRewardRedeemedevent
- Support for new webhook Event Type
moderation.banned - Support for chat moderation endpoints
- Missing docs
- New
moderation:banscope
- Fixed project warnings
- Updated README
- Updated NuGet packages to latest versions
- KickLib constructor was changed to fit Dependency Injection pattern
- To use "simple" constructor, use
KickApi.Create()method
- To use "simple" constructor, use
- .NET 7 support
- Support for message reply (
ReplyToMessageAsUserAsync,ReplyToMessageAsBotAsync) - LivestreamMetadataUpdatedEvent webhook support
- More unit tests covering new webhook types
- Search channels by
slug GetChannelAsyncoverloads- Thumbnail to Stream response
- Paging for
GetCategoriesAsyncendpoint
- Support for the
v1/livestreamsAPI. - Support for
UserIdentity(badges) inChatMessageSentEventwebhook payload - Extended subscription webhook payload events with
ExpiresAt - Added
CancellationTokensupport to all API methods.
Api.Authorization.GetPublicKeyAsync()no longer requires an access token.- Reduced projects dependencies
- Deserialization issue with the
message_idfield in webhook events.
- App Access Token support.
- Documentation improvements.
- Parameterless constructor for the
KickApiclass. TokenChangedevents inApiSettingsfor access/refresh token updates.
- Improved User-Agent randomization for unofficial clients (legacy unofficial clients).
- Automatic access token refresh when expired (if refresh credentials are provided).
- Additional method overloads for improved usability.
- Initial release of the official Kick API client.