Your script calls the GitHub API with a fine-grained personal access token and gets 404 Not Found on a repository you can open in the browser. The URL is right. The repository exists. You will spend the next twenty minutes checking the URL anyway. Stop. With fine-grained tokens, 404 usually means not permitted , not not there . Why 404 and not 403 GitHub does not disclose the existence of resources you are not authorised to see. A private repository your token cannot reach...