snake_case Converter
Paste text or words and turn them into snake_case — for Python variables, database columns and file names. Runs in your browser.
Result
How words are split
Input is split on camelCase/PascalCase boundaries (a lowercase or digit followed by an uppercase letter) and on any punctuation or space — so «my-var_name», «myVarName» and «my var name» all convert the same way. Digits attach to the word before them (userID42 → user, id42), never split into their own word.
Acronym limit — read before converting API names
Consecutive uppercase letters (an acronym run like HTTP, XML, ID) are NOT split from the word that follows — getHTTPResponse converts to get_httpresponse, not get_http_response; XMLParser converts to xmlparser, not xml_parser. This is a real, verified limit of the boundary rule (lowercase/digit → uppercase), not a rare bug — if you need per-acronym splitting, insert a manual separator (getHTTP_Response) before converting.
Finishing up
The converted text is live in the output box as you type — Copy it or use Download if your browser supports it. No conversion history is kept; refreshing the page clears both boxes.
What is snake_case?
snake_case joins words with underscores, all lowercase: "user profile page" becomes "user_profile_page". It is the conventional style for Python variables, Ruby methods and SQL column names.
Can I convert a list of names at once?
Yes — each line converts independently, so a pasted list of headings or labels becomes one snake_case identifier per line.
Is the converted text always valid code?
No — this is a plain-text case transformation, not a parser for any specific language's identifier rules (reserved words, allowed characters, etc. still apply). Check your language's own naming rules before using a converted name as a real identifier.