Sure here is the HTTPS request:
POST /login HTTP/1.1
MIME-Version: 1.0
Connection: close
Host: kagi.com
Accept-encoding: gzip
Accept: text/html, text/plain, text/sgml, text/css, application/xhtml+xml, */*;q=0.01
User-Agent: URL/Emacs Emacs/29.4 (Mac; aarch64-apple-darwin23.6.0)
Referer: https://kagi.com/html/signin
Content-Type: application/x-www-form-urlencoded
Content-length: 147
_csrf=W72wAnILtCK95iRJ36TYwypwgtsd_JgVRIrq0dBKMv6KMQAVL9GzPsLuqWlFchDWTscOpmUjd-YnCR40_-0L0A%3D%3D&password=REDACTED&email=REDACTED
Note that both my email address and my password include an @ sign, which is URL encoded as %40 in the request above. Maybe that's what's causing problems?
Here are the response headers. Note that no Set-Cookie is attempted.
HTTP/1.1 403 Forbidden
content-type: text/html
x-guploader-uploadid: ABgVH8_EWht76CiQMOH_tpgakfKHNhhztdZXAir9Xn5R8mqTeY37o5KqDp0Z14MZiv3AF1Ty
date: Wed, 20 Aug 2025 04:09:49 GMT
cache-control: public, max-age=86400
expires: Thu, 21 Aug 2025 04:09:49 GMT
last-modified: Thu, 17 Jul 2025 18:39:20 GMT
x-goog-generation: 1752777560137262
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 2704
x-goog-hash: crc32c=4QI9QQ==
x-goog-hash: md5=7jw4z9RR+1Ha7K4SCd3oLw==
x-goog-storage-class: STANDARD
accept-ranges: bytes
vary: Origin, Accept-Encoding
server: UploadServer
via: 1.1 google
content-encoding: gzip
X-Frame-Options: SAMEORIGIN
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
Transfer-Encoding: chunked
Connection: close