Apidog

All-in-one Collaborative API Development Platform

API Design

API Documentation

API Debugging

API Mock

API Automated Testing

Sign up for free

How to Call REST API with cURL

Start for free
Contents
Home / Applied skills / How to Call REST API with cURL

How to Call REST API with cURL

cURL is a useful command-line tool for calling REST APIs directly from your terminal or in scripts and automation. In this guide, we'll cover the basics of using cURL to call with REST APIs. What is a cURL API Call?

REST (Representational State Transfer) APIs have become the standard for building and accessing web services. cURL is a useful command-line tool for calling REST APIs directly from your terminal or in scripts and automation. In this guide, we'll cover the basics of using cURL to call with REST APIs.

What is a cURL API Call?

A cURL API call is a command using the cURL tool to make HTTP requests to a specified endpoint, commonly a web service or API. It is widely employed for testing and interacting with APIs, enabling actions like data retrieval or submission on remote servers.

💡
Apidog streamlines the API workflow by offering an intuitive interface for testing, debugging, designing, and documenting APIs. It enables sending REST requests through a visual interface, eliminating the need for complex cURL commands. Download and try it now.
button

Making GET Requests Using cURL

One of the most common uses of cURL is to make GET requests to retrieve data from web servers. Here's the basic syntax for making a GET API with cURL:

curl [options] [URL]

To make a simple GET request to a URL, you can run:

curl http://example.com

This will fetch the content of the web page at http://example.com and print it to the terminal.

You can also include additional options to customize the request. For example:

  • -i or --include to include the HTTP response headers
  • -L or --location to follow redirects
  • -o or --output to save the response to a file
  • -H or --header to include custom headers
Curl -i Command
The -i option in the Curl command is a gateway to detailed information about the HTTP response headers. By using this option, users can gain a deeper understanding of the server’s response and extract crucial metadata from the HTTP headers.
Curl -h Command
One of the most essential options in the curl toolkit is the -h option, which enables users to manipulate and inspect HTTP headers.

Here's a detailed post that sends GET requests with cURL, check it to learn more.

How to Send GET Requests with cURL
CURL is a command-line tool that allows making HTTP requests to test APIs and supports a wide range of options and protocols. In this section, we’ll see how to use cURL to send GET requests.

Making a POST Request in cURL

Here is a basic cURL command to make a POST request:

curl -X POST https://example.com/api/v1/users -d '{ "name": "John Doe" }'

This will send a POST request to the specified URL with the JSON data in the request body.

To save the response to a file, add the -o flag:

curl -X POST https://example.com/api/v1/users -d '{ "name": "John Doe" }' -o response.json
Curl -x Command with Example
The term “curl X” typically refers to using the command-line tool “curl” with the ”-X” option to specify the HTTP request method. The “curl” command is a widely used tool for making HTTP requests from the command line.

You can add the -v flag to enable verbose output so you can see the request and response headers:

curl -v -X POST -d '{ "name": "John Doe" }' https://example.com/api/v1/users
Curl -v Command
curl is a powerful command-line tool for HTTP requests, supporting various protocols. The -v option activates verbose mode, revealing detailed communication logs between the client and server.

Making PUT Requests Using cURL

The basic syntax for making a PUT request with cURL is:

curl -X PUT [options] [URL] [--data "data"]

Here's a breakdown of the components:

  • -X PUT specifies that we want to make a PUT request (instead of the default GET).
  • [options] can include various options like headers, authentication, etc.
  • [URL] is the URL you want to send the PUT request to.
  • --data "data" is used to include the data you want to send in the request body.

For example, let's say we want to update a resource at http://example.com/api/users/123 with some JSON data. We can do it like this:

curl -X PUT http://example.com/api/users/123 \
     -H "Content-Type: application/json" \
     --data '{"name":"John", "email":"john@example.com"}'

This will send a PUT request to http://example.com/api/users/123 with a JSON payload containing {"name":"John", "email":"john@example.com"}.

If you need to send data from a file, you can use the --data-binary or @ options:

curl -X PUT http://example.com/upload \
     --data-binary "@/path/to/file.jpg"

This will send a PUT request to http://example.com/upload with the contents of the file.jpg file as the request body.

You can also include additional options like:

  • -H or --header to include custom headers (e.g., for authentication)
  • -u or --user to include username and password for basic authentication
  • -i or --include to include the HTTP response headers in the output
curl -u Command
The curl command, a versatile tool for making HTTP requests, offers the -u option to simplify the process of including user credentials in your requests. In this article, we’ll explore the curl -u command, its syntax, and how it enhances the efficiency of handling authentication.

Here's an example that includes a custom header and shows the response headers:

curl -X PUT http://example.com/api/users/123 \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer abcd1234" \
     --data '{"name":"John", "email":"john@example.com"}' \
     -i

This will send a PUT request to http://example.com/api/users/123 with a JSON payload, including an Authorization header for authentication, and will also print the HTTP response headers.

Making DELETE Requests Using cURL

To make a DELETE request using cURL, you can use the following syntax:

curl -X DELETE [options] [URL]

Here's a breakdown of the components:

  • -X DELETE specifies that you want to make a DELETE request (instead of the default GET).
  • [options] can include various options like headers, authentication, etc.
  • [URL] is the URL you want to send the DELETE request to.

For example, let's say you want to delete a resource at http://example.com/api/users/123. You can do it like this:

curl -X DELETE http://example.com/api/users/123

This will send a DELETE request to http://example.com/api/users/123.

You can also include additional options like:

  • -H or --header to include custom headers (e.g., for authentication)
  • -u or --user to include username and password for basic authentication
  • -i or --include to include the HTTP response headers in the output

Here's an example that includes an Authorization header for authentication and shows the response headers:

curl -X DELETE http://example.com/api/users/123 \
     -H "Authorization: Bearer abcd1234" \
     -i

This will send a DELETE request to http://example.com/api/users/123 with an Authorization header, and will also print the HTTP response headers.

If you need to include a request body with your DELETE request (which is less common), you can use the --data or --data-binary options:

curl -X DELETE http://example.com/api/users/123 \
     --data '{"reason":"no longer needed"}' \
     -H "Content-Type: application/json"

This will send a DELETE request to http://example.com/api/users/123 with a JSON payload containing {"reason":"no longer needed"}.

cURL is a versatile tool that allows you to make various types of HTTP requests, including DELETE requests, which are commonly used for removing resources in RESTful APIs.

If you find the command-line interface of cURL a bit challenging, especially for beginners, fear not! There's another fantastic and user-friendly tool that can simplify your experience – Apidog.

Why Apidog?

Apidog serves as an excellent alternative, providing a more approachable solution for individuals who may be new to the intricacies of command-line interfaces. With its intuitive user interface and a plethora of features designed for ease of use, Apidog is a go-to option for those looking to streamline the process of calling REST APIs without delving into the complexities of cURL commands.

Apidog workflow

Key Features for Beginners:

  • Visual Interface: Apidog offers a visually intuitive interface that eliminates the need for memorizing or typing complex commands. Beginners can navigate through the platform effortlessly, making API interactions a breeze.
  • Guided Steps: The platform guides users through each step of the process, ensuring that even beginners can capture, import, and debug API requests seamlessly. This step-by-step approach simplifies the learning curve and minimizes the chances of errors.
  • No Coding Required: Unlike command-line tools, Apidog minimizes the need for coding. Beginners can easily import cURL requests without worrying about syntax errors or command structure, allowing them to focus on learning and understanding the API integration process.

Sending cURL API Using Apidog:

To call a REST API using cURL in Apidog, you can leverage various packet capture tools available online, such as Chrome, Charles, and Fiddler, to capture cURL requests. This facilitates the quick replication of API requests for testing and debugging within the Apidog platform.

button

Using Packet Capture Tools:

  1. Chrome:

Open the developer tools in Chrome by navigating to the three dots, selecting “More Tools,” and clicking “Developer tools.”

Capture network packets by interacting with the web application or service.

Right-click on the API request, choose “Copy,” and then select “Copy as cURL.”

Copy as cURL

2. Charles:

Use Charles, a web debugging proxy application, instead of Chrome.

Right-click on the request and copy it as cURL.

Copy as curl

3. Fiddler:

Choose Fiddler to capture the packets.

Navigate to the top left menu, follow File -> Export Sessions -> Selected Sessions, select curl script, and save it as a .bat file.

Use a text editor to open the .bat file and copy its contents.

Copy as cURL

Importing Fetched Data in Apidog - A Step-by-Step Guide:

Now that you have captured the data, follow these simple steps to import it into Apidog:

  1. Bring your cursor to the + icon next to the search bar. Choose the option “Import cURL.”
Import cURL

2. A window will open up. Paste the cURL command or the cURL format data into the box captured from the packet capture tool. Click on OK.

OK

3. After clicking the OK button, you will see that the captured data has been copied to the quick debugging API.

4. Use the shortcut for debugging to debug the API directly.

5. Click the "save" button to save the imported data as an API within Apidog for further testing and debugging.

Conclusion

In conclusion, if the command-line approach seems daunting or intimidating, Apidog steps in as a user-friendly alternative tailored for beginners. Its visual interface, guided steps, and minimal coding requirements make it an ideal choice for those taking their first steps into the world of API integration.

Embrace Apidog to enhance your learning experience and confidently call REST APIs without the complexities of traditional command-line tools.

button