Convert a cURL PATCH request to Kotlin

Paste any curl PATCH command and get clean Kotlin code using OkHttp. Runs entirely in your browser — headers, auth, and JSON bodies map to idiomatic Kotlin.

Quick answer

To convert a cURL command to Kotlin, paste it into the Toolpaper workbench below. It parses the command in your browser and emits idiomatic Kotlin code — headers, query string, request body, authentication (Bearer, Basic, API key), and cookies are all wired up automatically. No data is uploaded; conversion is fully client-side.

Prefer a different target? See the full cURL to Kotlin reference, or jump to the same guide in JavaScript, Node.js, or Python.

InputcURL command
MethodPATCH·Headers1·Body27 B· Chars 123
OutputJVM · OkHttp / Kotlin(idiomatic)
import okhttp3.*
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.RequestBody.Companion.toRequestBody

val client = OkHttpClient.Builder().followRedirects(false).followSslRedirects(false).build()
val body = "{\"email\":\"ada@example.com\"}".toRequestBody("application/json".toMediaTypeOrNull())
val request = Request.Builder()
  .url("https://api.example.com/users/42")
  .method("PATCH", body)
  .header("Content-Type", "application/json")
  .build()

client.newCall(request).execute().use { response ->
  println(response.body?.string())
}
Inspect

Example

A representative curl command for this scenario. Paste your own above to convert an exact match.

curl input
curl -X PATCH https://api.example.com/users/42 \
  -H "Content-Type: application/json" \
  -d '{"email":"ada@example.com"}'

Implementation notes

  • Request-line method (PATCH) and target URL are extracted from the curl command exactly as written — no case-folding, no path rewriting.
  • Every -H header maps to a Kotlin header entry; duplicates are preserved so servers that read multi-valued headers keep behaving.
  • Query strings in the URL stay in the URL; -G with --data-urlencode is promoted to a structured params argument where OkHttp supports it.
  • Request bodies are parsed against Content-Type: JSON bodies use idiomatic serialization (OkHttp), form bodies use URL-encoding, multipart uses -F semantics with file@ handling.
  • TLS flags (--insecure, --cacert, --cert) surface as inline notes so you don't ship an insecure client to production by accident.

Common mistakes

  • Forgetting that -X PATCH without a body still sends an empty body — the generated code mirrors that exactly.
  • Assuming curl auto-follows redirects: it doesn't. Add -L (or the generator's follow-redirects flag) if you actually need to chase 3xx responses.
  • Copying a Cookie header from DevTools that already encodes session state — use the Clean panel to strip session cookies before you share.

Common questions

How do I send a PATCH request in Kotlin?
Paste your curl PATCH command above. Toolpaper generates Kotlin using OkHttp with headers, query string, and (where applicable) request body wired up.
Does the PATCH generator handle authentication?
Yes — Authorization headers, Bearer tokens, Basic auth (-u), and API keys pass through to the generated Kotlin code unchanged.
Is my curl sent to a server?
No. Parsing and code generation run in your browser. Nothing is uploaded.
Can I also convert this to other languages?
Yes. Once you paste your command, the language picker lets you switch between 18 targets (fetch, axios, Python, Go, PHP, Ruby, Rust, Java, Kotlin, C#, PowerShell, Swift and more).

More cURL methods in Kotlin

Kotlin hub →

The same guide in other languages

All guides →

Full Kotlin reference on the cURL to Kotlin hub, or open the main converter for all 18 targets.