When sending client I’d in your headers, it needs to be Client-ID not client_id… You only use the snake case when sending it as a query string param…
EDIT: I may be wrong, but it looks like you’re sending it in both the headers and in the query string… I believe that it looks at headers before query string, but Twitch staff would have to confirm or deny that