Camel Case Converter

Runs in browser Formatting

Turn snake_case, kebab-case, PascalCase or plain sentences into camelCase identifiers, one per line — ideal for JSON keys and JavaScript variables.

Privacy: This tool runs entirely in your browser. Your input never leaves your device.
Loading tool…

What is the difference between camelCase, snake_case, kebab-case and PascalCase?

They are four ways of joining the words of an identifier: camelCase starts lower and capitalises each following word (userId), PascalCase capitalises every word (UserId), snake_case separates with underscores (user_id) and kebab-case with hyphens (user-id). None is "correct" — each language and format has its convention: JSON and JavaScript lean to camelCase, Python and SQL to snake_case, URLs and CSS to kebab-case, class names to PascalCase. A mismatch between an API contract and its consumer (userId vs user_id) is one of the most common integration defects.

How to use Camel Case Converter

  1. Paste identifiers or phrases, one per line.
  2. Tick "Capitalise first letter" if you need PascalCase instead.
  3. Copy the result column or the whole output.

Camel Case Converter features

  • Converts snake_case, kebab-case, PascalCase, dot.case and sentences to camelCase
  • One identifier per line with a side-by-side result table
  • Optional PascalCase (capitalised first letter)
  • Acronym-aware: HTTPServer becomes httpServer
  • Keeps digits attached and supports Unicode letters

Camel Case Converter example

JSON keys from database columns

Input:

user_first_name
created-at_timestamp
Order Total Amount

Output:

userFirstName
createdAtTimestamp
orderTotalAmount

Frequently asked questions about Camel Case Converter

What is camelCase?

Words are joined without separators; the first word is lowercase and every following word starts with a capital letter, e.g. userFirstName. It is the convention for JavaScript variables, JSON keys and Java/Kotlin methods.

Can I convert many identifiers at once?

Yes — put one identifier or phrase per line. The output keeps the same line order and a table shows each input next to its result.

How are acronyms handled?

"HTTP-response-code" becomes httpResponseCode: acronyms are treated as words and lower-cased after the first word, which matches the style used by most linters.

What about digits?

Digits stay attached to the word they belong to: "v2 api" becomes v2Api.