How to Pass JSON Data in a URL using CURL in PHP ?
Last Updated :
26 Apr, 2025
In this article, we will see how to pass the JSON Data in a URL using CURL in PHP, along with understanding the different ways for passing the data in a URL through the illustrations. The cURL stands for client URL, which allows us to connect with other URLs & use their responses in our code, i.e., it is a tool for sending and getting files using URL syntax. The cURL facilitates the way that can hit a URL from our code to get an HTML response from it. The cURL is also used in command lines or scripts for data transfer. Here, we need to pass JSON data in a URL using cURL in PHP and handle the POST request. This task can be accomplished with the help of the following ways:
- cURL POST Request
- cURL GET Request
- cURL PUT Request
We will explore all the above approaches & understand them through examples.
Syntax for passing JSON data in a URL using cURL:
<?php
$url = "https://reqres.in/api/users";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
$resp = curl_exec($ch);
curl_close($ch);
?>
- By using the cURL POST Request
Approach for POST Request:
- We need to specify the URL, where the JSON data need to be sent.
- Using curl_init(), we initialize cURL.
- Put JSON data in a PHP array and set up JSON data.
- And using json_encode() encode it into JSON string.
- Setting the options for the cURL.
- Fetching $url using CURLOPT_URL.
- Switching request type from get to post using CURLOPT_POST.
- Now attach the encoded string in the post field using CURLOPT_POSTFIELDS.
- Setting the curl option RETURNTRANSFER to true so that it returns the response instead of just outputting it.
- Using the CURLOPT_HTTPHEADER set the Content-Type to application/JSON.
- Setting multiple options for a cURL session. Using the curl_setopt_array() function, setting a large number of options for cURL without repetitively calling it.
- Using curl_exec() to execute the POST request.
- Decode the response and Return the response as a string.
- Close the cURL.
Example 1: This example illustrates passing the JSON Data in a URL using cURL in PHP by using the cURL POST Request.
PHP
<?php
//URL, Where the JSON data is going to be sent
// sending post request to reqres.in
$url = "https://reqres.in/api/users";
//initialize CURL
$ch = curl_init();
//setup json data and using json_encode() encode it into JSON string
$data = array(
'Employee' => 'Aman',
'Job' => 'Data Scientist',
'Company' => '<b>GeeksForGeeks</b>'
);
$new_data = json_encode($data);
//options for curl
$array_options = array(
//set the url option
CURLOPT_URL=>$url,
//switches the request type from get to post
CURLOPT_POST=>true,
//attach the encoded string in the post field using CURLOPT_POSTFIELDS
CURLOPT_POSTFIELDS=>$new_data,
//setting curl option RETURNTRANSFER to true
//so that it returns the response
//instead of outputting it
CURLOPT_RETURNTRANSFER=>true,
//Using the CURLOPT_HTTPHEADER set the Content-Type to application/json
CURLOPT_HTTPHEADER=>array('Content-Type:application/json')
);
//setting multiple options using curl_setopt_array
curl_setopt_array($ch,$array_options);
// using curl_exec() is used to execute the POST request
$resp = curl_exec($ch);
//decode the response
$final_decoded_data = json_decode($resp);
foreach($final_decoded_data as $key => $val){
echo $key . ': ' . $val . '<br>';
}
//close the cURL and load the page
curl_close($ch);
?>
Output:
Employee: Aman
Job: Data Scientist
Company: GeeksForGeeks
id: 553
createdAt: 2022-12-02T12:32:42.420Z
- By using cURL GET Request
Approach for GET Request:
- We need to specify the URL, Where the JSON data is going to be sent.
- Using curl_init() we initialize cURL.
- Next, we have to set options for the cURL.
- Fetching $url using CURLOPT_URL.
- Setting the curl option RETURNTRANSFER to true so that it returns the response instead of just outputting it.
- Setting multiple options for a cURL session. Using the curl_setopt_array() function, setting a large number of options for cURL without repetitively calling it.
- Using curl_exec() to execute the GET request.
- Decode the response and Return the response as a string.
- Close the cURL.
Example 2: This example illustrates passing the JSON Data in a URL using cURL in PHP by using the cURL GET Request.
PHP
<?php
//URL, Where the JSON data is going to be sent
// sending get request to reqres.in
$url = "https://reqres.in/api/users?page=2";
//initialize CURL
$ch = curl_init();
//next we have to set options so below is the options for the curl
$array_options = array(
// $url is the variable we want to fetch using CURLOPT_URL
CURLOPT_URL=>$url,
//setting curl option RETURNTRANSFER to true so
//that it returns the response
//instead of outputting it
CURLOPT_RETURNTRANSFER=>true,
);
//setting multiple options using curl_setopt_array
curl_setopt_array($ch,$array_options);
// using curl_exec() is used to execute the POST request
$resp = curl_exec($ch);
// decode the response
$final_decoded_data = json_decode($resp,true);
print_r($final_decoded_data);
//close the cURL and load the page
curl_close($ch);
?>
Output:
Array ( [page] => 2 [per_page] => 6 [total] => 12 [total_pages] => 2 [data] =>
Array ( [0] => Array ( [id] => 7 [email] => [email protected] [first_name] =>
Michael [last_name] => Lawson [avatar] => https://reqres.in/img/faces/7-image.jpg )
[1] => Array ( [id] => 8 [email] => [email protected] [first_name] =>
Lindsay [last_name] => Ferguson [avatar] => https://reqres.in/img/faces/8-image.jpg )
[2] => Array ( [id] => 9 [email] => [email protected] [first_name] =>
Tobias [last_name] => Funke [avatar] => https://reqres.in/img/faces/9-image.jpg )
[3] => Array ( [id] => 10 [email] => [email protected] [first_name] => Byron [last_name] =>
Fields [avatar] => https://reqres.in/img/faces/10-image.jpg )
[4] => Array ( [id] => 11 [email] => [email protected] [first_name] => George [last_name] =>
Edwards [avatar] => https://reqres.in/img/faces/11-image.jpg )
[5] =>Array ( [id] => 12 [email] => [email protected] [first_name] => Rachel [last_name] =>
Howell [avatar] => https://reqres.in/img/faces/12-image.jpg ) ) [support] =>
Array ( [url] => https://reqres.in/#support-heading [text][/text] => To keep ReqRes free,
contributions towards server costs are appreciated! ) )
- By using cURL PUT Request
Approach for PUT Request:
- We need to specify the URL, where the JSON data need to be sent.
- Using curl_init(), we initialize cURL.
- Put JSON data in a PHP array and set up JSON data.
- And using json_encode() encode it into JSON string.
- Setting the options for the cURL.
- Fetching $url using CURLOPT_URL.
- Now attach the encoded string in the post field using CURLOPT_POSTFIELDS.
- Setting the curl option RETURNTRANSFER to true so that it returns the response instead of just outputting it.
- Using the CURLOPT_HTTPHEADER set the Content-Type to application/JSON.
- Instead of using CURLOPT_POST, we use here CURLOPT_CUSTOMREQUEST for specifying the PUT request.
- Setting multiple options for a cURL session. Using the curl_setopt_array() function, setting a large number of options for cURL without repetitively calling it.
- Using curl_exec() to execute the PUT request.
- Decode the response and Return the response as a string.
- Close the curl.
Example 3: This example illustrates passing the JSON Data in a URL using cURL in PHP by using the cURL PUT Request.
PHP
<?php
//URL, Where the JSON data is going to be sent
// sending put request to reqres.in
$url = "https://reqres.in/api/users/2";
//initialize CURL
$ch = curl_init();
//setup json data and using json_encode() encode it into JSON string
$data = array(
'Employee' => 'Aman',
'Job' => 'Data Scientist',
'Company' => '<b>GeeksForGeeks</b>'
);
$new_data = json_encode($data);
//next we have to set options so below is the options for the curl
$array_options = array(
//set the url option
CURLOPT_URL=>$url,
//attach the encoded string in the post field using CURLOPT_POSTFIELDS
CURLOPT_POSTFIELDS=>$new_data,
//setting curl option RETURNTRANSFER to true so
//that it returns the response
//instead of outputting it
CURLOPT_RETURNTRANSFER=>true,
//Using the CURLOPT_HTTPHEADER set the Content-Type to application/json
CURLOPT_HTTPHEADER=>array('Content-Type:application/json')
);
//curl option for switching the request type from get to post
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'PUT');
//setting multiple options using curl_setopt_array
curl_setopt_array($ch,$array_options);
// using curl_exec() is used to execute the POST request
$resp = curl_exec($ch);
// decode the response
$decoded = json_decode($resp);
foreach($decoded as $key => $val){
echo $key . ': ' . $val . '<br>';
}
//close the cURL and load the page
curl_close($ch);
?>
Output:
Employee: Aman
Job: Data Scientist
Company: GeeksForGeeks
updatedAt: 2022-12-02T12:34:59.262Z
Similar Reads
How to Post JSON Data using Curl ?
One can send the post data using curl (Client for URLs), a command line tool, and a library for transferring data with URLs. It supports various types of protocols. Most of the use cases of the curl command are posting JSON data to a server endpoint. CURLcURL stands for ( Client for URLs) and is a c
3 min read
How to Insert JSON data into MySQL database using PHP?
To insert JSON data into MySQL database using PHP, use the json_decode function in PHP to convert JSON object into an array that can be inserted into the database. Here, we are going to see how to insert JSON data into MySQL database using PHP through the XAMPP server in a step-by-step way. JSON Str
3 min read
How to Convert XML data into JSON using PHP ?
In this article, we are going to see how to convert XML data into JSON format using PHP. Requirements: XAMPP Server Introduction: PHP stands for hypertext preprocessor, which is used to create dynamic web pages. It also parses the XML and JSON data. XML stands for an extensible markup language in wh
3 min read
How to use cURL to Get JSON Data and Decode JSON Data in PHP ?
In this article, we are going to see how to use cURL to Get JSON data and Decode JSON data in PHP.cURL: It stands for Client URL.It is a command line tool for sending and getting files using URL syntax.cURL allows communicating with other servers using HTTP, FTP, Telnet, and more.Approach:We are goi
2 min read
How to parse a JSON File in PHP?
We will explore how to parse a JSON file and display its data using PHP. PHP is a server-side scripting language commonly used to process and manipulate data. JSON (JavaScript Object Notation) is a lightweight data-interchange format that is easy for both humans and machines to read and write. It st
3 min read
Fetch JSON URL Data and Store in Excel using Python
In this article, we will learn how to fetch the JSON data from a URL using Python, parse it, and store it in an Excel file. We will use the Requests library to fetch the JSON data and Pandas to handle the data manipulation and export it to Excel.Fetch JSON data from URL and store it in an Excel file
3 min read
How to pass multiple JSON Objects as data using jQuery's $.ajax() ?
The purpose of this article is to pass multiple JSON objects as data using the jQuery $ajax() method in an HTML document. Approach: Create a button in an HTML document to send JSON objects to a PHP server. In the JavaScript file, add a click event listener to the button. On clicking of the button, a
3 min read
How to make a JSON call using jQuery ?
Use the getJSON() function in jQuery to load JSON data. The getJSON() function uses a GET HTTP request to retrieve JSON-encoded data from the server. In this article, we will learn about the jQuery getJSON() function and its implementation through examples. Syntax: $(selector).getJSON(url, data, suc
3 min read
How to Update Data in API using Volley in Android?
Prerequisite: JSON Parsing in Android using Volley LibraryHow to Post Data to API using Volley in Android? We have seen reading data from API as well as posting data to our database with the help of the API. In this article, we will take a look at updating our data in our API. We will be using the V
5 min read
How to get cookies from curl into a variable in PHP ?
The cURL standing for Client URL refers to a library for transferring data using various protocols supporting cookies, HTTP, FTP, IMAP, POP3, HTTPS (with SSL Certification), etc. This example will illustrate how to get cookies from a PHP cURL into a variable. The functions provide an option to set a
2 min read