### Querying Documentation Source: https://docs.kick.com/getting-started/kick-apps-setup Example of how to query the documentation dynamically using an HTTP GET request with the 'ask' query parameter. ```HTTP GET https://docs.kick.com/getting-started/kick-apps-setup.md?ask= ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.kick.com/getting-started Instructions on how to perform an HTTP GET request to query the documentation dynamically using the `ask` query parameter. ```HTTP GET https://docs.kick.com/getting-started.md?ask= ``` -------------------------------- ### Agent Instructions: Querying This Documentation Source: https://docs.kick.com/how-do-i-contribute/community-projects Example of how to query the documentation dynamically using an HTTP GET request with the 'ask' query parameter. ```HTTP GET https://docs.kick.com/how-do-i-contribute/community-projects.md?ask= ``` -------------------------------- ### Querying Documentation Dynamically Source: https://docs.kick.com/how-do-i-contribute/contributing This example shows how to query the documentation dynamically by making an HTTP GET request with an 'ask' query parameter. ```http GET https://docs.kick.com/how-do-i-contribute/contributing.md?ask= ``` -------------------------------- ### Querying Documentation Source: https://docs.kick.com/apis This example shows how to query the documentation dynamically by performing an HTTP GET request with the `ask` query parameter. ```HTTP GET https://docs.kick.com/apis.md?ask= ``` -------------------------------- ### Authorization Endpoint - Example Request Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example GET request to the Authorization Endpoint with all required query parameters. ```uri GET https://id.kick.com/oauth/authorize? response_type=code& client_id=& redirect_uri=& scope=& code_challenge=& code_challenge_method=S256& state= ``` -------------------------------- ### Workaround for 127.0.0.1 Host Redirect URI - Example Request Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example GET request demonstrating the workaround for local development redirect URIs using a sacrificial query parameter. ```http GET https://id.kick.com/oauth/authorize? response_type=code& client_id=& redirect=127.0.0.1 redirect_uri=& scope=& code_challenge=& code_challenge_method=S256& state= ``` -------------------------------- ### Golang - Full Verification Example Source: https://docs.kick.com/events/webhook-security Example demonstrating how to parse the public key and verify an incoming webhook signature in Golang. ```go // Parse the Public Key pubkey, err := keysx.ParsePublicKey([]byte(` -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq/+l1WnlRrGSolDMA+A8 6rAhMbQGmQ2SapVcGM3zq8ANXjnhDWocMqfWcTd95btDydITa10kDvHzw9WQOqp2 MZI7ZyrfzJuz5nhTPCiJwTwnEtWft7nV14BYRDHvlfqPUaZ+1KR4OCaO/wWIk/rQ L/TjY0M70gse8rlBkbo2a8rKhu69RQTRsoaf4DVhDPEeSeI5jVrRDGAMGL3cGuyY 6CLKGdjVEM78g3JfYOvDU/RvfqD7L89TZ3iN94jrmWdGz34JNlEI5hqK8dd7C5EF BEbZ5jgB8s8ReQV8H+MkuffjdAj3ajDDX3DOJMIut1lBrUVD1AaSrGCKHooWoL2e twIDAQAB -----END PUBLIC KEY----- `)) // Create the Signature to compare signature := []byte(fmt.Sprintf("%s.%s.%s", messageID, timestamp, body)) // Verify the Header err := Verify(pubkey, signature, headers["Kick-Event-Signature"]) ``` -------------------------------- ### Querying Documentation via HTTP GET Source: https://docs.kick.com/drops/drops-faqs Demonstrates how to perform an HTTP GET request to query the documentation dynamically by appending the 'ask' query parameter with a specific question. ```http GET https://docs.kick.com/drops/drops-faqs.md?ask= ``` -------------------------------- ### Agent Instructions - Querying Documentation Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example of how to query the documentation dynamically using the 'ask' query parameter. ```http GET https://docs.kick.com/getting-started/generating-tokens-oauth2-flow.md?ask= ``` -------------------------------- ### Querying Documentation Dynamically Source: https://docs.kick.com/changelog Example of how to query the documentation dynamically using the 'ask' query parameter. ```HTTP GET https://docs.kick.com/changelog.md?ask= ``` -------------------------------- ### Querying Documentation with 'ask' Parameter Source: https://docs.kick.com/drops/drops-guide To get more information not directly present on the page, you can use the 'ask' query parameter with a GET request. This allows for dynamic querying of the documentation. ```http GET https://docs.kick.com/drops/drops-guide.md?ask= ``` -------------------------------- ### Refresh Token Endpoint Example Request Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example of a POST request to refresh access and refresh tokens. ```http POST https://id.kick.com/oauth/token Headers: Content-Type: application/x-www-form-urlencoded Body: { grant_type=refresh_token client_id= client_secret= refresh_token= } ``` -------------------------------- ### Querying Documentation Source: https://docs.kick.com/apis/faqs To get additional information not directly available on a page, you can query the documentation dynamically by performing an HTTP GET request on the current page URL with the `ask` query parameter. ```HTTP GET https://docs.kick.com/apis/faqs.md?ask= ``` -------------------------------- ### Token Endpoint Example Request Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example of a POST request to the token endpoint to exchange a code for tokens. ```http POST https://id.kick.com/oauth/token Headers: Content-Type: application/x-www-form-urlencoded Body: { grant_type=authorization_code client_id= client_secret= redirect_uri= code_verifier= code= } ``` -------------------------------- ### Webhook POST Request Example Source: https://docs.kick.com/drops/drops-guide This is an example of the POST request Kick sends to your webhook endpoint when a reward is claimed. Ensure your endpoint is ready to receive this. ```http POST https://your.webhook.endpoint/ ``` -------------------------------- ### Token Introspect Endpoint - Example Response Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example JSON response from the token introspect endpoint. ```json { "data": { "active": true, "client_id": "", "token_type": "user", // "app" or "user" "scope": "user:read channel:read", "exp": 1771046347 }, "message": "OK" } ``` -------------------------------- ### Querying Documentation Source: https://docs.kick.com/organizations Instructions on how to dynamically query the documentation using an HTTP GET request with the `ask` query parameter. ```HTTP GET https://docs.kick.com/organizations.md?ask= ``` -------------------------------- ### App Access Token Endpoint Example Response Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example of a successful response from the app access token endpoint. ```json { "access_token": "", "expires_in": "", "token_type": "", } ``` -------------------------------- ### Querying Documentation Dynamically Source: https://docs.kick.com/events/introduction To get additional information not directly available on a page, you can query the documentation dynamically by performing an HTTP GET request on the page URL with the `ask` query parameter. The question should be specific, self-contained, and in natural language. ```HTTP GET https://docs.kick.com/events/introduction.md?ask= ``` -------------------------------- ### Token Introspect Endpoint - Example Request Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example of a POST request to introspect an access token. ```http POST https://id.kick.com/oauth/token/introspect Headers: Authorization: Bearer ``` -------------------------------- ### App Access Token Endpoint Example Request Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example of a POST request to generate an app access token using client credentials. ```http POST https://id.kick.com/oauth/token Headers: Content-Type: application/x-www-form-urlencoded Body: { grant_type=client_credentials client_id= client_secret= } ``` -------------------------------- ### Authorization Endpoint - 200 Response Example Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example of a successful response from the Authorization Endpoint, including the authorization code. ```json https://yourapp.com/callback?code=&state=random-state ``` -------------------------------- ### Authorization Endpoint - 400 Response Example Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example of an error response from the Authorization Endpoint for an invalid request. ```json { "error": "Invalid request" } ``` -------------------------------- ### Querying Documentation Source: https://docs.kick.com/apis/public-key Perform an HTTP GET request to query the documentation dynamically. ```http GET https://docs.kick.com/apis/public-key.md?ask= ``` -------------------------------- ### Get Category Source: https://docs.kick.com/apis/categories Get Category based on the id. ```json {"openapi":"3.1.1","info":{"title":"Kick Dev Public API","version":"1.0.0"},"servers":[{"url":"https://api.kick.com"}],"security":[{"UserAccessToken":[]},{"AppAccessToken":[]}],"components":{"securitySchemes":{"UserAccessToken":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://id.kick.com/oauth/authorize","tokenUrl":"https://id.kick.com/oauth/token","scopes":{"channel:read":"View channel information in Kick including channel description, category, etc.","channel:rewards:read":"Read Channel points rewards information on a channel","channel:rewards:write":"Read, add, edit and delete Channel points rewards on a channel","channel:write":"Update livestream metadata for a channel based on the channel ID","chat:write":"Send chat messages and allow chat bots to post in your chat","events:subscribe":"Subscribe to all channel events on Kick e.g. chat messages, follows, subscriptions","kicks:read":"View KICKs related information in Kick e.g leaderboards, etc.","moderation:ban":"Execute moderation actions for moderators","moderation:chat_message:manage":"Execute moderation actions on chat messages","streamkey:read":"Read a user's stream URL and stream key","user:read":"View user information in Kick including username, streamer ID, etc."}}}},"AppAccessToken":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://id.kick.com/oauth/token"}}}},"schemas":{"httpx.Response":{"properties":{"data":{},"message":{"type":"string"}},"type":"object"},"endpoints.CategoryDetail":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"thumbnail":{"type":"string"},"viewer_count":{"type":"integer"}},"type":"object"}}},"paths":{"/public/v1/categories/{category_id}":{"get":{"deprecated":true,"description":"Get Category based on the id.","parameters":[{"schema":{"type":"integer","format":"int64"},"description":"Category ID","in":"path","name":"category_id","required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpx.Response"},{"properties":{"data":{"$ref":"#/components/schemas/endpoints.CategoryDetail"}},"type":"object"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpx.Response"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}},"403":{"description":"Forbidden","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}},"404":{"description":"Not Found","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}}},"summary":"Get Category","tags":["categories"]}}}} ``` -------------------------------- ### Get Events Subscriptions Source: https://docs.kick.com/events/subscribe-to-events Get events subscriptions ```json {"openapi":"3.1.1","info":{"title":"Kick Dev Public API","version":"1.0.0"},"servers":[{"url":"https://api.kick.com"}],"security":[{"UserAccessToken":[]},{"AppAccessToken":[]}]},"components":{"securitySchemes":{"UserAccessToken":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://id.kick.com/oauth/authorize","tokenUrl":"https://id.kick.com/oauth/token","scopes":{"channel:read":"View channel information in Kick including channel description, category, etc.","channel:rewards:read":"Read Channel points rewards information on a channel","channel:rewards:write":"Read, add, edit and delete Channel points rewards on a channel","channel:write":"Update livestream metadata for a channel based on the channel ID","chat:write":"Send chat messages and allow chat bots to post in your chat","events:subscribe":"Subscribe to all channel events on Kick e.g. chat messages, follows, subscriptions","kicks:read":"View KICKs related information in Kick e.g leaderboards, etc.","moderation:ban":"Execute moderation actions for moderators","moderation:chat_message:manage":"Execute moderation actions on chat messages","streamkey:read":"Read a user's stream URL and stream key","user:read":"View user information in Kick including username, streamer ID, etc."}}}},"AppAccessToken":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://id.kick.com/oauth/token"}}}},"schemas":{"httpx.Response":{"properties":{"data":{},"message":{"type":"string"}},"type":"object"},"endpoints.GetEventSubscription":{"properties":{"app_id":{"type":"string"},"broadcaster_user_id":{"type":"integer"},"created_at":{"type":"string"},"event":{"type":"string"},"id":{"type":"string"},"method":{"type":"string"},"updated_at":{"type":"string"},"version":{"type":"integer"}},"type":"object"},"endpoints.ErrorResponse":{"properties":{"data":{},"message":{"type":"string"}},"type":"object"}}},"paths":{"/public/v1/events/subscriptions":{"get":{"description":"Get events subscriptions","parameters":[{"schema":{"type":"integer","format":"int64"},"description":"Broadcaster User ID to filter by","in":"query","name":"broadcaster_user_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpx.Response"},{"properties":{"data":{"items":{"$ref":"#/components/schemas/endpoints.GetEventSubscription"},"type":"array"}},"type":"object"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpx.Response"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}},"403":{"description":"Forbidden","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"$ref":"#/components/schemas/endpoints.ErrorResponse"}}}}},"summary":"Get Events Subscriptions","tags":["events","subscriptions"]}}}} ``` -------------------------------- ### Get KICKs Leaderboard Source: https://docs.kick.com/apis/kicks Gets the KICKs leaderboard for the authenticated broadcaster. ```json {"openapi":"3.1.1","info":{"title":"Kick Dev Public API","version":"1.0.0"},"servers":[{"url":"https://api.kick.com"}],"security":[{"UserAccessToken":["kicks:read"]}],"components":{"securitySchemes":{"UserAccessToken":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://id.kick.com/oauth/authorize","tokenUrl":"https://id.kick.com/oauth/token","scopes":{"channel:read":"View channel information in Kick including channel description, category, etc.","channel:rewards:read":"Read Channel points rewards information on a channel","channel:rewards:write":"Read, add, edit and delete Channel points rewards on a channel","channel:write":"Update livestream metadata for a channel based on the channel ID","chat:write":"Send chat messages and allow chat bots to post in your chat","events:subscribe":"Subscribe to all channel events on Kick e.g. chat messages, follows, subscriptions","kicks:read":"View KICKs related information in Kick e.g leaderboards, etc.","moderation:ban":"Execute moderation actions for moderators","moderation:chat_message:manage":"Execute moderation actions on chat messages","streamkey:read":"Read a user's stream URL and stream key","user:read":"View user information in Kick including username, streamer ID, etc."}}}}},"schemas":{"httpx.Response":{"properties":{"data":{},"message":{"type":"string"}},"type":"object"},"endpoints.KicksLeaderboard":{"properties":{"lifetime":{"$ref":"#/components/schemas/endpoints.KicksLeaderboardEntry","items":{"$ref":"#/components/schemas/endpoints.KicksLeaderboardEntry"},"type":"array"},"month":{"$ref":"#/components/schemas/endpoints.KicksLeaderboardEntry","items":{"$ref":"#/components/schemas/endpoints.KicksLeaderboardEntry"},"type":"array"},"week":{"$ref":"#/components/schemas/endpoints.KicksLeaderboardEntry","items":{"$ref":"#/components/schemas/endpoints.KicksLeaderboardEntry"},"type":"array"}},"type":"object"},"endpoints.KicksLeaderboardEntry":{"properties":{"gifted_amount":{"type":"integer"},"rank":{"type":"integer"},"user_id":{"type":"integer"},"username":{"type":"string"}},"type":"object"}}},"paths":{"/public/v1/kicks/leaderboard":{"get":{"description":"Gets the KICKs leaderboard for the authenticated broadcaster.","parameters":[{"schema":{"type":"integer","default":10,"maximum":100,"minimum":1},"description":"The number of entries from the top of the leaderboard to return. For example, 10 will fetch the top 10 entries.","in":"query","name":"top"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpx.Response"},{"properties":{"data":{"$ref":"#/components/schemas/endpoints.KicksLeaderboard"}},"type":"object"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpx.Response"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}}},"summary":"Get KICKs Leaderboard","tags":["kicks"]}}}} ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.kick.com/drops Use this method to ask questions about the documentation. Perform an HTTP GET request on the current page URL with the 'ask' query parameter. ```HTTP GET https://docs.kick.com/drops.md?ask= ``` -------------------------------- ### Querying Documentation Source: https://docs.kick.com/how-do-i-contribute To get additional information not directly available on the page, you can query the documentation dynamically by asking a question. Perform an HTTP GET request on the current page URL with the `ask` query parameter. The question should be specific, self-contained, and written in natural language. The response will contain a direct answer to the question and relevant excerpts and sources from the documentation. Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections. ```HTTP GET https://docs.kick.com/how-do-i-contribute.md?ask= ``` -------------------------------- ### Get Livestreams Source: https://docs.kick.com/apis/livestreams Get Livestreams based on broadcaster_user_id, category_id, language, limit, and sort. ```json {"openapi":"3.1.1","info":{"title":"Kick Dev Public API","version":"1.0.0"},"servers":[{"url":"https://api.kick.com"}],"security":[{"UserAccessToken":[]},{"AppAccessToken":[]}],"components":{"securitySchemes":{"UserAccessToken":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://id.kick.com/oauth/authorize","tokenUrl":"https://id.kick.com/oauth/token","scopes":{"channel:read":"View channel information in Kick including channel description, category, etc.","channel:rewards:read":"Read Channel points rewards information on a channel","channel:rewards:write":"Read, add, edit and delete Channel points rewards on a channel","channel:write":"Update livestream metadata for a channel based on the channel ID","chat:write":"Send chat messages and allow chat bots to post in your chat","events:subscribe":"Subscribe to all channel events on Kick e.g. chat messages, follows, subscriptions","kicks:read":"View KICKs related information in Kick e.g leaderboards, etc.","moderation:ban":"Execute moderation actions for moderators","moderation:chat_message:manage":"Execute moderation actions on chat messages","streamkey:read":"Read a user's stream URL and stream key","user:read":"View user information in Kick including username, streamer ID, etc."}}}},"AppAccessToken":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://id.kick.com/oauth/token"}}}},"schemas":{"httpx.Response":{"properties":{"data":{},"message":{"type":"string"}},"type":"object"},"endpoints.LivestreamWithCategory":{"properties":{"broadcaster_user_id":{"type":"integer"},"category":{"$ref":"#/components/schemas/endpoints.CategoryResponse"},"channel_id":{"type":"integer"},"custom_tags":{"items":{"type":"string"},"type":"array"},"has_mature_content":{"type":"boolean"},"language":{"type":"string"},"profile_picture":{"type":"string"},"slug":{"type":"string"},"started_at":{"type":"string"},"stream_title":{"type":"string"},"thumbnail":{"type":"string"},"viewer_count":{"type":"integer"}},"type":"object"},"endpoints.CategoryResponse":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"thumbnail":{"type":"string"}},"type":"object"}}},"paths":{"/public/v1/livestreams":{"get":{"description":"Get Livestreams based on broadcaster_user_id, category_id, language, limit, and sort.","parameters":[{"schema":{"type":"array","items":{"format":"int64","type":"integer"}},"style":"form","explode":true,"description":"Broadcaster User IDs (up to 50)","in":"query","name":"broadcaster_user_id"},{"schema":{"type":"integer","format":"int64"},"description":"Category ID","in":"query","name":"category_id"},{"schema":{"type":"string"},"description":"Language of the livestream","in":"query","name":"language"},{"schema":{"type":"integer","format":"int64","default":25,"maximum":100,"minimum":1},"description":"Limit the number of results","in":"query","name":"limit"},{"schema":{"type":"string","default":"viewer_count","enum":["viewer_count","started_at"]},"description":"Sort by viewer_count or started_at","in":"query","name":"sort"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpx.Response"},{"properties":{"data":{"items":{"$ref":"#/components/schemas/endpoints.LivestreamWithCategory"},"type":"array"}},"type":"object"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpx.Response"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}},"403":{"description":"Forbidden","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}},"500":{"description":"Internal Server Error","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}}},"summary":"Get Livestreams","tags":["livestreams"]}}}} ``` -------------------------------- ### Querying Documentation Dynamically Source: https://docs.kick.com/events Perform an HTTP GET request on the current page URL with the `ask` query parameter to dynamically query the documentation. The question should be specific, self-contained, and written in natural language. The response will contain a direct answer to the question and relevant excerpts and sources from the documentation. Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections. ```http GET https://docs.kick.com/events.md?ask= ``` -------------------------------- ### Get Categories API Definition Source: https://docs.kick.com/apis/categories OpenAPI 3.1.1 specification for the 'Get Categories' endpoint. ```json {"openapi":"3.1.1","info":{"title":"Kick Dev Public API","version":"1.0.0"},"servers":[{"url":"https://api.kick.com"}],"security":[{"UserAccessToken":[]},{"AppAccessToken":[]}],"components":{"securitySchemes":{"UserAccessToken":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://id.kick.com/oauth/authorize","tokenUrl":"https://id.kick.com/oauth/token","scopes":{"channel:read":"View channel information in Kick including channel description, category, etc.","channel:rewards:read":"Read Channel points rewards information on a channel","channel:rewards:write":"Read, add, edit and delete Channel points rewards on a channel","channel:write":"Update livestream metadata for a channel based on the channel ID","chat:write":"Send chat messages and allow chat bots to post in your chat","events:subscribe":"Subscribe to all channel events on Kick e.g. chat messages, follows, subscriptions","kicks:read":"View KICKs related information in Kick e.g leaderboards, etc.","moderation:ban":"Execute moderation actions for moderators","moderation:chat_message:manage":"Execute moderation actions on chat messages","streamkey:read":"Read a user's stream URL and stream key","user:read":"View user information in Kick including username, streamer ID, etc."}}}},"AppAccessToken":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://id.kick.com/oauth/token"}}}},"schemas":{"httpx.Response":{"properties":{"data":{},"message":{"type":"string"}},"type":"object"},"endpoints.CategoryResponse":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"thumbnail":{"type":"string"}},"type":"object"}}},"paths":{"/public/v1/categories":{"get":{"deprecated":true,"description":"Get Categories based on the search word. Returns up to 100 results at a time; use the `page` parameter to get more results.","parameters":[{"schema":{"type":"string"},"description":"Search query","in":"query","name":"q","required":true},{"schema":{"type":"integer","default":1},"description":"Page (defaults to 1 if not provided)","in":"query","name":"page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/httpx.Response"},{"properties":{"data":{"items":{"$ref":"#/components/schemas/endpoints.CategoryResponse"},"type":"array"}},"type":"object"}]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/httpx.Response"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"$ref":"#/components/schemas/httpx.Response"}}}}},"summary":"Get Categories","tags":["categories"]}}}} ``` -------------------------------- ### Get Categories API Source: https://docs.kick.com/apis/categories Get Categories based on the cursor, limit, names, and tags; or ids. ```json {"openapi":"3.1.1","info":{"title":"Kick Dev Public API","version":"1.0.0"},"servers":[{"url":"https://api.kick.com"}],"security":[{"UserAccessToken":[]},{"AppAccessToken":[]}]},"components":{"securitySchemes":{"UserAccessToken":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://id.kick.com/oauth/authorize","tokenUrl":"https://id.kick.com/oauth/token","scopes":{"channel:read":"View channel information in Kick including channel description, category, etc.","channel:rewards:read":"Read Channel points rewards information on a channel","channel:rewards:write":"Read, add, edit and delete Channel points rewards on a channel","channel:write":"Update livestream metadata for a channel based on the channel ID","chat:write":"Send chat messages and allow chat bots to post in your chat","events:subscribe":"Subscribe to all channel events on Kick e.g. chat messages, follows, subscriptions","kicks:read":"View KICKs related information in Kick e.g leaderboards, etc.","moderation:ban":"Execute moderation actions for moderators","moderation:chat_message:manage":"Execute moderation actions on chat messages","streamkey:read":"Read a user's stream URL and stream key","user:read":"View user information in Kick including username, streamer ID, etc."}}}},"AppAccessToken":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://id.kick.com/oauth/token"}}}},"schemas":{"endpoints.PaginatedResponse-endpoints_CategoryWithTags":{"properties":{"data":{"items":{"$ref":"#/components/schemas/endpoints.CategoryWithTags"},"type":"array"},"message":{"type":"string"},"pagination":{"$ref":"#/components/schemas/endpoints.Pagination"}},"required":["data","message","pagination"],"type":"object"},"endpoints.CategoryWithTags":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"thumbnail":{"type":"string"}},"type":"object"},"endpoints.Pagination":{"properties":{"next_cursor":{"type":"string"}},"required":["next_cursor"],"type":"object"},"endpoints.SwagPaginatedErrResp":{"properties":{"data":{},"message":{"type":"string"},"pagination":{}},"required":["message"],"type":"object"}}},"paths":{"/public/v2/categories":{"get":{"description":"Get Categories based on the cursor, limit, names, and tags; or ids.","parameters":[{"schema":{"type":"string","maxLength":28,"minLength":4},"description":"Pagination cursor","in":"query","name":"cursor"},{"schema":{"type":"integer","default":25,"maximum":1000,"minimum":1},"description":"Limit","in":"query","name":"limit"},{"schema":{"type":"array","items":{"type":"string"},"maxLength":100,"minLength":3},"style":"form","explode":false,"description":"Category names","in":"query","name":"name"},{"schema":{"type":"array","items":{"type":"string"},"maxLength":100,"minLength":3},"style":"form","explode":false,"description":"Category tags","in":"query","name":"tag"},{"schema":{"type":"array","items":{"format":"int64","type":"integer"},"minimum":1},"style":"form","explode":false,"description":"Category IDs","in":"query","name":"id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/endpoints.PaginatedResponse-endpoints_CategoryWithTags"}}}},"400":{"description":"Bad Request","content":{"application/json":{"$ref":"#/components/schemas/endpoints.SwagPaginatedErrResp"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"$ref":"#/components/schemas/endpoints.SwagPaginatedErrResp"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"$ref":"#/components/schemas/endpoints.SwagPaginatedErrResp"}}}}},"summary":"Get Categories","tags":["categories"]}}}} ``` -------------------------------- ### Querying Documentation Dynamically Source: https://docs.kick.com/events/webhook-security Perform an HTTP GET request to query the documentation dynamically with the `ask` query parameter. ```HTTP GET https://docs.kick.com/events/webhook-security.md?ask= ``` -------------------------------- ### Revoke Token Endpoint - Example Request Source: https://docs.kick.com/getting-started/generating-tokens-oauth2-flow Example of a POST request to revoke an access token. ```http POST https://id.kick.com/oauth/revoke?token=&token_hint_type= Headers: Content-Type: application/x-www-form-urlencoded ```