Skip to main content

Command Palette

Search for a command to run...

Getting Started with cURL

Updated
•4 min read•View as Markdown

If you are learning backend development, APIs, or even basic web stuff, you will hear one word again and again: cURL.
At first, it may look scary. A black terminal, strange commands, and lots of symbols. But trust me — cURL is much simpler than it looks.

Let’s start with, what is a server?

Before talking about cURL, we need to understand what a server is.

A server is just another computer on the internet.
Its job is to receive requests and send responses.

Examples:

  • When you open a website, your browser sends a request to a server.

  • When you log in to an app, the app talks to a server.

  • When you fetch data from an API, a server sends that data.

So the basic flow is always:

You → Server → You

What is cURL?

cURL is a tool that lets you talk to a server from the terminal.

That’s it.

Instead of using a browser or an app, you use the command line to:

  • send a request

  • get a response

Think of cURL as:

  • a messenger

  • that sends messages to servers

  • and shows you their replies

Why do programmers need cURL?

Browsers hide a lot of things from us.

As a programmer, you often want to:

  • test an API quickly

  • see raw data from a server

  • check if an endpoint is working

  • debug backend issues

cURL helps because:

  • it is fast

  • it works everywhere

  • it shows the real response from the server

  • it does not hide errors

Most backend developers use cURL daily.

Making your first request using cURL

Let’s start with the simplest command possible.

curl https://example.com

What happens here?

  • cURL sends a request to example.com

  • The server replies

  • cURL prints the response in the terminal

This is similar to opening a website in a browser, but instead of a webpage view, you see the raw response.


Understanding request and response

Every server communication has two parts:

1. Request

This is what you send to the server.
It includes:

  • where you are sending the request (URL)

  • what you want (GET or POST)

  • sometimes data (like form data or JSON)

2. Response

This is what the server sends back.
It usually includes:

  • status code (like 200 or 404)

  • data (HTML, JSON, text, etc.)

Example idea:

  • Request: “Hey server, give me this data”

  • Response: “Here you go” or “Sorry, not found”


GET and POST

To keep things simple, we will talk about only GET and POST.

GET

  • Used to fetch data

  • Default method in cURL

Example:

curl https://api.example.com/users

This means:

“Server, please send me the users”


POST

  • Used to send data to the server

  • Common for forms, login, signup, etc.

Example (simple idea):

curl -X POST https://api.example.com/login

This means:

“Server, I want to send some data”

Don’t worry about flags too much right now. The goal is to understand the idea, not memorize commands.


Using cURL to talk to APIs

An API is just a server that talks in data (mostly JSON).

With cURL, you can:

  • call an API endpoint

  • see the response data

  • check errors easily

Example:

curl https://api.example.com/posts

You may see something like:

[
  { "id": 1, "title": "Hello World" },
  { "id": 2, "title": "Learning cURL" }
]

This is real backend data, without any UI.

Diagram ideas (conceptual)

You can imagine these flows like this:

1. cURL request flow

cURL → Server → Response

2. Browser vs cURL

Browser → Server → HTML + UI
cURL    → Server → Raw data

3. Basic HTTP idea

Request (GET/POST) → Server
Server → Status + Data

4. Backend workflow

Client / cURL → API → Database

Note:

cURL is not advanced magic.
It is a simple way to talk to servers directly.