python-requests user agent
The popular Python requests library sends a default user agent in the form python-requests/x.y. Seeing it means a Python script made the request — for an integration, a scraper, a webhook, or your own code. It is honest automation, not a browser, though the default can be overridden. This page covers the pattern.
The python-requests default token
When you call the Python requests library without setting a custom header, it sends a default user agent of the form python-requests/x.y, where x.y is the library version. This honest default names the tool and makes no claim to be a browser.
It is one of the most common non-browser user agents on the web, because requests is a widely used HTTP library for scripts, integrations, and automation.
- Default form: python-requests/x.y (library version)
- Names the library; makes no browser claim
- Very common across scripts and integrations
Common and overridable
Seeing python-requests is normal: deploy tooling, webhooks, internal jobs, and third-party integrations frequently use it. The token alone says nothing about intent — judge scripted traffic by request rate, paths, and rule compliance.
Note the default can be overridden: a script can set any user agent it likes, so a custom string does not rule out a Python client, and the absence of the python-requests token does not prove a browser.
How it appears in analytics and logs
A user agent of the form python-requests/x.y is the requests library's default — a Python script, not a browser. Whether it is benign depends on its behaviour, not the string.
Diagnostic use case
Recognise scripted Python HTTP clients by the python-requests default token so they are counted as automation rather than browser visits.
What WebmasterID can help detect
WebmasterID recognises the python-requests default token server-side and classifies it as automation, separate from human analytics, with unknown clients kept in an honest bucket.
Common mistakes
- Treating every python-requests hit as malicious.
- Counting scripted Python requests as human browser visits.
- Assuming a script keeps the default token when it can be overridden.
Privacy and accuracy notes
The python-requests user agent names a library, not a person. WebmasterID records such requests as bot events, never as human profiles.
Related pages
- curl, wget and script user agents
Command-line and library HTTP clients send a default user agent that names the tool: curl/x.y, Wget, python-requests, Go-http-client, and similar. These are scripts, not browsers, and seeing them is normal. This page explains the patterns and how to treat them without over- or under-reacting.
- Go-http-client user agent
Programs built with Go's standard net/http client send a default user agent of the form Go-http-client/x.y. Seeing it means a Go application made the request — common for backend services, CLIs, and integrations. It is honest automation, not a browser, and the default can be overridden. This page covers the pattern.
- Bot vs human traffic
Separate scripted and library clients from real browser visits.
Sources and verification notes
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.