Go ile atılan isteğin 403 Forbidden dönmesi

Selamlar. Basit bir app üzerinde çalışıyorum ve ChatGPT api ile iletişimde olmam gerekiyor. Çok detaylı bir app olmayacağından ChatGPT frontend’in kullandığı api’ı kullanıyorum yani bildiğimiz https://chatgpt.com/ sitesinin iletişimde olduğu API’a istek atıyorum ancak şöyle bir problemim var. İsteği Postman ya da Python requests ile attığımda 200 OK dönerken Go ile attığımda 403 Forbidden dönüyor. Aşağıda istekleri tam olarak nasıl attığımı görebilirsiniz (token haricinde, onu veremiyorum ne yazık ki).

Python ile attığım istek:

import requests

url = "https://chatgpt.com/backend-api/conversations?offset=0&limit=50&order=updated"

payload = {}
headers = {
  'authorization': 'Bearer TOKEN_KEY',
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 OPR/112.0.0.0'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

Go ile attığım istek:

package main

import (
  "fmt"
  "net/http"
  "io"
)

func main() {

  url := "https://chatgpt.com/backend-api/conversations?offset=0&limit=50&order=updated"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("authorization", "Bearer TOKEN_KEY")
  req.Header.Add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 OPR/112.0.0.0")


  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(res.StatusCode)
}

son zamanlarda bu tip durumları çok fazla yaşamaya başladım. postman’de çalışıp python ve go’da çalışmayan bazı isteklere de rastladım. bu sorunu nasıl çözebilirim bir fikri olan var mı?

Go HTTP Client’ının TLS fingerprinti ile alakalıymış.
tls-client ile sorunu çözdüm.