oxylabs.io
Open in
urlscan Pro
104.22.10.141
Public Scan
URL:
https://oxylabs.io/blog/curl-with-api
Submission: On December 17 via manual from SG — Scanned from SG
Submission: On December 17 via manual from SG — Scanned from SG
Form analysis
6 forms found in the DOM<form>
<fieldset>
<legend class="visuallyhidden">Consent Selection</legend>
<div id="CybotCookiebotDialogBodyFieldsetInnerContainer">
<div class="CybotCookiebotDialogBodyLevelButtonWrapper"><label class="CybotCookiebotDialogBodyLevelButtonLabel" for="CybotCookiebotDialogBodyLevelButtonNecessary"><strong
class="CybotCookiebotDialogBodyLevelButtonDescription">Necessary</strong></label>
<div class="CybotCookiebotDialogBodyLevelButtonSliderWrapper CybotCookiebotDialogBodyLevelButtonSliderWrapperDisabled"><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonNecessary"
class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelButtonDisabled" disabled="disabled" checked="checked"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></div>
</div>
<div class="CybotCookiebotDialogBodyLevelButtonWrapper"><label class="CybotCookiebotDialogBodyLevelButtonLabel" for="CybotCookiebotDialogBodyLevelButtonPreferences"><strong
class="CybotCookiebotDialogBodyLevelButtonDescription">Preferences</strong></label>
<div class="CybotCookiebotDialogBodyLevelButtonSliderWrapper"><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonPreferences" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox"
data-target="CybotCookiebotDialogBodyLevelButtonPreferencesInline" checked="checked" tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></div>
</div>
<div class="CybotCookiebotDialogBodyLevelButtonWrapper"><label class="CybotCookiebotDialogBodyLevelButtonLabel" for="CybotCookiebotDialogBodyLevelButtonStatistics"><strong
class="CybotCookiebotDialogBodyLevelButtonDescription">Statistics</strong></label>
<div class="CybotCookiebotDialogBodyLevelButtonSliderWrapper"><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonStatistics" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox"
data-target="CybotCookiebotDialogBodyLevelButtonStatisticsInline" checked="checked" tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></div>
</div>
<div class="CybotCookiebotDialogBodyLevelButtonWrapper"><label class="CybotCookiebotDialogBodyLevelButtonLabel" for="CybotCookiebotDialogBodyLevelButtonMarketing"><strong
class="CybotCookiebotDialogBodyLevelButtonDescription">Marketing</strong></label>
<div class="CybotCookiebotDialogBodyLevelButtonSliderWrapper"><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonMarketing" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox"
data-target="CybotCookiebotDialogBodyLevelButtonMarketingInline" checked="checked" tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></div>
</div>
</div>
</fieldset>
</form>
<form><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonNecessaryInline" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelButtonDisabled" disabled="disabled" checked="checked"> <span
class="CybotCookiebotDialogBodyLevelButtonSlider"></span></form>
<form><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonPreferencesInline" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox" data-target="CybotCookiebotDialogBodyLevelButtonPreferences"
checked="checked" tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></form>
<form><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonStatisticsInline" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox" data-target="CybotCookiebotDialogBodyLevelButtonStatistics"
checked="checked" tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></form>
<form><input type="checkbox" id="CybotCookiebotDialogBodyLevelButtonMarketingInline" class="CybotCookiebotDialogBodyLevelButton CybotCookiebotDialogBodyLevelConsentCheckbox" data-target="CybotCookiebotDialogBodyLevelButtonMarketing" checked="checked"
tabindex="0"> <span class="CybotCookiebotDialogBodyLevelButtonSlider"></span></form>
<form class="CybotCookiebotDialogBodyLevelButtonSliderWrapper"><input type="checkbox" id="CybotCookiebotDialogBodyContentCheckboxPersonalInformation" class="CybotCookiebotDialogBodyLevelButton"> <span
class="CybotCookiebotDialogBodyLevelButtonSlider"></span></form>
Text Content
* Consent * Details * [#IABV2SETTINGS#] * About THIS WEBSITE USES COOKIES We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services. You may find more detailed information about your data processing here. Consent Selection Necessary Preferences Statistics Marketing Show details * Necessary 8 Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies. * Cookiebot 1 Learn more about this provider CookieConsentStores the user's cookie consent state for the current domain Maximum Storage Duration: 1 yearType: HTTP Cookie * Google 1 Learn more about this provider Some of the data collected by this provider is for the purposes of personalization and measuring advertising effectiveness. test_cookieUsed to check if the user's browser supports cookies. Maximum Storage Duration: 1 dayType: HTTP Cookie * LinkedIn 1 Learn more about this provider li_gcStores the user's cookie consent state for the current domain Maximum Storage Duration: 180 daysType: HTTP Cookie * Twitter Inc. 1 Learn more about this provider __cf_bmThis cookie is used to distinguish between humans and bots. This is beneficial for the website, in order to make valid reports on the use of their website. Maximum Storage Duration: 1 dayType: HTTP Cookie * oxylabs.io 4 dmn_chk_#Pending Maximum Storage Duration: SessionType: HTTP Cookie landing_page_urlPending Maximum Storage Duration: SessionType: HTML Local Storage productPending Maximum Storage Duration: SessionType: HTML Local Storage referrerDetects how the user reached the website by registering their last URL-address. Maximum Storage Duration: SessionType: HTML Local Storage * Preferences 6 Preference cookies enable a website to remember information that changes the way the website behaves or looks, like your preferred language or the region that you are in. * Intercom 3 Learn more about this provider intercom-device-id-#Sets a specific ID for the user which ensures the integrity of the website’s chat function. Maximum Storage Duration: 271 daysType: HTTP Cookie intercom-id-#Allows the website to recoqnise the visitor, in order to optimize the chat-box functionality. Maximum Storage Duration: 271 daysType: HTTP Cookie intercom-session-#Sets a specific ID for the user which ensures the integrity of the website’s chat function. Maximum Storage Duration: 7 daysType: HTTP Cookie * LinkedIn 1 Learn more about this provider lidcRegisters which server-cluster is serving the visitor. This is used in context with load balancing, in order to optimize user experience. Maximum Storage Duration: 1 dayType: HTTP Cookie * js.intercomcdn.com oxylabs.io 2 intercom.intercom-state-# [x2]Remembers whether the user has minimized or closed chat-box or pop-up messages on the website. Maximum Storage Duration: PersistentType: HTML Local Storage * Statistics 6 Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously. * Google 2 Learn more about this provider Some of the data collected by this provider is for the purposes of personalization and measuring advertising effectiveness. _gaRegisters a unique ID that is used to generate statistical data on how the visitor uses the website. Maximum Storage Duration: 2 yearsType: HTTP Cookie _ga_#Used by Google Analytics to collect data on the number of times a user has visited the website as well as dates for the first and most recent visit. Maximum Storage Duration: 2 yearsType: HTTP Cookie * Sleeknote 2 Learn more about this provider SNSSets a unique ID for the session. This allows the website to obtain data on visitor behaviour for statistical purposes. Maximum Storage Duration: SessionType: HTTP Cookie sn_global_countdown_last_reset_timestampSets a timestamp for when the visitor entered the website. This is used for analytical purposes on the website. Maximum Storage Duration: PersistentType: HTML Local Storage * Twitter Inc. 1 Learn more about this provider personalization_idThis cookie is set by Twitter - The cookie allows the visitor to share content from the website onto their Twitter profile. Maximum Storage Duration: 400 daysType: HTTP Cookie * static.site24x7rum.eu 1 site24x7rumIDCollects information on which products have been viewed by the visitor - This is used for optimizing the specific visitor's navigation on the website. Maximum Storage Duration: 2 yearsType: HTTP Cookie * Marketing 24 Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers. * Meta Platforms, Inc. 3 Learn more about this provider lastExternalReferrerDetects how the user reached the website by registering their last URL-address. Maximum Storage Duration: PersistentType: HTML Local Storage lastExternalReferrerTimeDetects how the user reached the website by registering their last URL-address. Maximum Storage Duration: PersistentType: HTML Local Storage _fbpUsed by Facebook to deliver a series of advertisement products such as real time bidding from third party advertisers. Maximum Storage Duration: 3 monthsType: HTTP Cookie * Google 3 Learn more about this provider Some of the data collected by this provider is for the purposes of personalization and measuring advertising effectiveness. IDEUsed by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user. Maximum Storage Duration: 400 daysType: HTTP Cookie pagead/1p-user-list/#Tracks if the user has shown interest in specific products or events across multiple websites and detects how the user navigates between sites. This is used for measurement of advertisement efforts and facilitates payment of referral-fees between websites. Maximum Storage Duration: SessionType: Pixel Tracker _gcl_auUsed by Google AdSense for experimenting with advertisement efficiency across websites using their services. Maximum Storage Duration: 3 monthsType: HTTP Cookie * Intercom 1 Learn more about this provider gtm_idUsed to send data to Google Analytics about the visitor's device and behavior. Tracks the visitor across devices and marketing channels. Maximum Storage Duration: 1 yearType: HTTP Cookie * LinkedIn 1 Learn more about this provider bcookieUsed by the social networking service, LinkedIn, for tracking the use of embedded services. Maximum Storage Duration: 1 yearType: HTTP Cookie * Microsoft 8 Learn more about this provider _uetsidUsed to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences. Maximum Storage Duration: PersistentType: HTML Local Storage _uetsid_expContains the expiry-date for the cookie with corresponding name. Maximum Storage Duration: PersistentType: HTML Local Storage _uetvidUsed to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences. Maximum Storage Duration: PersistentType: HTML Local Storage _uetvid_expContains the expiry-date for the cookie with corresponding name. Maximum Storage Duration: PersistentType: HTML Local Storage MSPTCThis cookie registers data on the visitor. The information is used to optimize advertisement relevance. Maximum Storage Duration: 1 yearType: HTTP Cookie MUIDUsed widely by Microsoft as a unique user ID. The cookie enables user tracking by synchronising the ID across many Microsoft domains. Maximum Storage Duration: 1 yearType: HTTP Cookie _uetsidCollects data on visitor behaviour from multiple websites, in order to present more relevant advertisement - This also allows the website to limit the number of times that they are shown the same advertisement. Maximum Storage Duration: 1 dayType: HTTP Cookie _uetvidUsed to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences. Maximum Storage Duration: 1 yearType: HTTP Cookie * Reddit 2 Learn more about this provider rp.gifNecessary for the implementation of the Reddit.com's share-button function. Maximum Storage Duration: SessionType: Pixel Tracker _rdt_uuidUsed to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences. Maximum Storage Duration: 3 monthsType: HTTP Cookie * Sleeknote 3 Learn more about this provider _sn_aImplements pop-up advertisement on the website. Maximum Storage Duration: 1 yearType: HTTP Cookie _sn_mImplements pop-up advertisement on the website. Maximum Storage Duration: 1 yearType: HTTP Cookie _sn_nImplements pop-up advertisement on the website. Maximum Storage Duration: 1 yearType: HTTP Cookie * Twitter Inc. 3 Learn more about this provider i/adsct [x2]The cookie is used by Twitter.com in order to determine the number of visitors accessing the website through Twitter advertisement content. Maximum Storage Duration: SessionType: Pixel Tracker muc_adsCollects data on user behaviour and interaction in order to optimize the website and make advertisement on the website more relevant. Maximum Storage Duration: 400 daysType: HTTP Cookie * Unclassified 7 Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies. * Sleeknote 1 Learn more about this provider quot;lquot;:https://#Pending Maximum Storage Duration: 1 yearType: HTTP Cookie * oxylabs.io 6 bootstrapDataPending Maximum Storage Duration: SessionType: HTTP Cookie experiment_idPending Maximum Storage Duration: SessionType: HTML Local Storage experiment_variantPending Maximum Storage Duration: SessionType: HTML Local Storage ph_#_posthogPending Maximum Storage Duration: SessionType: HTTP Cookie ph_#_primary_window_existsPending Maximum Storage Duration: SessionType: HTML Local Storage ph_#_window_idPending Maximum Storage Duration: SessionType: HTML Local Storage Cross-domain consent[#BULK_CONSENT_DOMAINS_COUNT#] [#BULK_CONSENT_TITLE#] List of domains your consent applies to: [#BULK_CONSENT_DOMAINS#] Cookie declaration last updated on 17/11/24 by Cookiebot [#IABV2_TITLE#] [#IABV2_BODY_INTRO#] [#IABV2_BODY_LEGITIMATE_INTEREST_INTRO#] [#IABV2_BODY_PREFERENCE_INTRO#] [#IABV2_LABEL_PURPOSES#] [#IABV2_BODY_PURPOSES_INTRO#] [#IABV2_BODY_PURPOSES#] [#IABV2_LABEL_FEATURES#] [#IABV2_BODY_FEATURES_INTRO#] [#IABV2_BODY_FEATURES#] [#IABV2_LABEL_PARTNERS#] [#IABV2_BODY_PARTNERS_INTRO#] [#IABV2_BODY_PARTNERS#] Please state your consent ID and date when you contact us regarding your consent. Do not sell or share my personal information Deny Customize Customize Allow all cookies Skip to main content Proxy locations Europe North America South America Asia Africa Oceania See all locations Network status Careers hello@oxylabs.io English (EN) English 中文 Log in Proxies Web Scraper API Datasets Pricing Developers Solutions Sign up Sign up Back to blog Tutorials HOW TO USE CURL WITH REST API Yelyzaveta Nechytailo 2023-05-164 min read Share cURL, also known as Client URL, is a command line utility. This CLI tool facilitates data exchange between a device and a server through a terminal. By using cURL, you can make network requests and send or receive data directly from the command prompt without needing a GUI. cURL also has various options which enable users to add custom headers, specify timeouts and authentication details, etc. The simplicity of using cURL from the command line attracts a lot of developers to use it as their go-to tool for testing APIs and microservices. Additionally, its support for the HTTP protocol makes it convenient for testing REST APIs. In this tutorial, you’ll learn how to interact with the REST API using cURL. You’ll also see how to set up and use a proxy with cURL. Let's get started. TUTORIAL: USING CURL WITH APIS In this section, you’ll explore various cURLs commands by interacting with the REST API. If interested, you can also check our cURL converter tool to transform cURL commands into your preferred programming languages. You’ll also learn how to utilize Oxylabs’ Web Unblocker with cURL. It’s an AI-powered proxy solution that enables you to send network requests without exposing your IP address and other personal tracking information. 1. PREPARING THE ENVIRONMENT First, install cURL if you don’t have it already. You can install it with the following command in Linux: apt install curl If you’re using a different operating system, you can download and install the latest version from the official website. Once you’ve installed cURL, try running the below command in your terminal: curl --version The above command shows the version, release date, supported protocols, and features of your cURL executable. 2. CREATE AN OXYLABS ACCOUNT To get started, take advantage of the 1-week free trial. It’ll give you sufficient time to explore various Web Unblocker features and ensure it meets your needs. If you decide to continue using Web Unblocker after the trial period, you can easily upgrade to a preferred plan without any interruptions in your service. Upon selecting your preferred plan, you’ll receive sub-user credentials that’ll enable you to send network requests through the proxy. 3. SET UP WEB UNBLOCKER Set Web Unblocker as a proxy using the -x flag of cURL. The proxy address should be unblock.oxylabs.io and the port 60000. It also requires the “ignore SSL certificate” flag to work properly, which is --ignore or the short form -k. Lastly, you’ll also have to pass the sub-user credentials that you’ve got in the previous step. Use the -U flag to pass user credentials. It’ll look similar to this: curl -k -x unblock.oxylabs.io:60000 -U "USERNAME:PASSWORD" "WEBSITE_URL" Note that you’ll have to replace the USERNAME, and PASSWORD with the appropriate credentials to make it work. 4. SEND A GET REQUEST TO THE API Next, you’ll have to replace WEBSITE_URL with the API url. Let’s use the ip.oxylabs.io/location API for now. You can replace it with the REST API of your preference if you want. So, the command will be: curl -k -x unblock.oxylabs.io:60000 -U "USERNAME:PASSWORD" "https://ip.oxylabs.io/location" If you run this command, it’ll send a GET request to the url and retrieve the response. The website https://ip.oxylabs.io/location shows the IP address of the user’s device. Web Unblocker automatically rotates proxy IP addresses for you. If everything is working properly, you should see a different IP address than that of your device’s. If you run the command again, you’ll see another IP address different from the previous one. We've delved deeper into sending GET requests with cURL on another post, so feel free to check it out. You can also create a unique session id by passing a special header X-Oxylabs-Session-Id with your requests. This will make sure the proxy IP address remains the same for multiple network requests sent through the session id: curl -k -x unblock.oxylabs.io:60000 -U "USERNAME:PASSWORD" -H "X-Oxylabs-Session-Id: session-1" https://ip.oxylabs.io/location Notice the flag for setting a custom header is -H. You can also change the string session-1 to something else; it'll work as long as the string is valid and always remains the same. Web Unblocker has some more features such as Javascript rendering, custom cookies, headers, and geo-location. Check out the documentation to learn more. 5. SEND A POST REQUEST TO THE API To send a POST request using cURL, you’ll have to set a new flag --request to POST. Along with this flag, you’ll also have to pass another flag --data with the data that you want to post to the API: curl -k -x unblock.oxylabs.io:60000 -U "USERNAME:PASSWORD" --request POST --data '{"name": "John"}' https://ip.oxylabs.io/location As you can see, we’re passing a JSON object containing a single field named name with a value of John. If the API supports multiple fields, you can pass them all together in a single JSON object. For example: curl -k -x unblock.oxylabs.io:60000 -U "USERNAME:PASSWORD" --request POST --data '{"name": "John Doe", "email": "jd@example.com"}' https://example.com/api/post Here, you’re passing two fields name and email. 6. SEND A PUT REQUEST TO THE API Similarly, you can use cURL to send a PUT request to an API. The PUT method is used for updating data. You’ll have to change the argument of the --request flag to PUT. Let’s say you want to update the email address of the previous example and replace jd@example.com with johndoe@example.com. Then, the command will become: curl -k -x unblock.oxylabs.io:60000 -U "USERNAME:PASSWORD" --request PUT --data '{"name": "John Doe", "email": "johndoe@example.com"}' https://example.com/api/update Once you run the above command, cURL will use a proxy to send a PUT request to the API. After receiving the PUT request, the API will update the email address of the entry with the name John Doe. 7. SEND A DELETE REQUEST TO THE API cURL also supports the DELETE request of the HTTP protocol. This can be set with the flag --request DELETE. Let’s remove the previous entry by running the following command: curl -k -x unblock.oxylabs.io:60000 -U "USERNAME:PASSWORD" --request DELETE --data '{"name": "John Doe", "email": "johndoe@example.com"}' https://example.com/api/remove This will remove the entry with the name John Doe. CURL ALTERNATIVES There are multiple alternatives to cURL that offer similar functionality and capabilities. One of them is Postman, a popular API testing tool that offers a comprehensive graphical interface for testing and debugging APIs. And if you’re familiar with programming, then Python scripts can also be useful to test APIs. Alternatively, cURL can be run in Python itself by utilizing the PycURL library. If you’re looking for a command line alternative, then you might find HTTPie and Wget helpful. They both are robust and powerful and have all the necessary features to test or interact with REST APIs. CONCLUSION Establishing a well-defined development process that includes thorough testing is crucial for maintaining the quality and reliability of microservices and REST APIs. Tools like cURL are essential for supporting this process by providing an efficient way to test various scenarios and analyze responses. These tools can significantly improve the development process, ensuring the system's reliability and quality. By combining cURL with Web Unblocker, you can send network requests in bulk without leaving any trace of the tracking information on your device. FREQUENTLY ASKED QUESTIONS WHAT IS CURL USED FOR? cURL is commonly used for testing APIs and microservices during the development process. cURL provides a simple and efficient way to send HTTP requests and view the responses, allowing developers to debug issues, test different scenarios, and optimize the performance of their APIs and microservices. HOW TO CHECK THE API USING CURL? cURL supports around 22 protocols including HTTP. Also, cURL has all the necessary command options to send GET, POST, PUT, and DELETE requests to a REST API. You can take advantage of all these options to check the API. The below command checks the status of Github REST API and shows the output on the terminal. curl "https://api.github.com/status" WHAT IS THE DIFFERENCE BETWEEN CURL AND REST API? cURL is a command line tool without any graphical user interface, on the other hand, REST API is an application programming interface deployed on a server or a device. cURL can make network requests and receive responses, and REST API can receive network requests and respond accordingly. If you’re developing a REST API, you can utilize cURL as a testing tool for REST API. About the author Yelyzaveta Nechytailo Senior Content Manager Yelyzaveta Nechytailo is a Senior Content Manager at Oxylabs. After working as a writer in fashion, e-commerce, and media, she decided to switch her career path and immerse in the fascinating world of tech. And believe it or not, she absolutely loves it! On weekends, you’ll probably find Yelyzaveta enjoying a cup of matcha at a cozy coffee shop, scrolling through social media, or binge-watching investigative TV series. Learn more about Yelyzaveta Nechytailo All information on Oxylabs Blog is provided on an "as is" basis and for informational purposes only. We make no representation and disclaim all liability with respect to your use of any information contained on Oxylabs Blog or any third-party websites that may be linked therein. Before engaging in scraping activities of any kind you should consult your legal advisors and carefully read the particular website's terms of service or receive a scraping license. RELATED ARTICLES Tutorials HOW TO SEND POST REQUESTS WITH CURL cURL is a lightweight yet powerful tool for sending POST requests from CLI. Read this tutorial for detailed instructions on sending POST requests with cURL. Yelyzaveta Nechytailo 2023-06-09 TutorialsData acquisition HOW TO SEND GET REQUESTS WITH CURL Read this article to learn sending simple cURL GET requests or with parameters effortlessly. Find out how to retrieve JSON data and the main request arguments. Iveta Vistorskyte 2023-06-09 Data acquisitionTutorials HOW TO SEND HTTP HEADERS WITH CURL This guide covers various aspects of sending and receiving HTTP headers using cURL. The content discloses tips for use cases and discusses troubleshooting cURL header issues. Augustas Pelakauskas 2023-05-25 Get the latest news from data gathering world I’m interested ISO/IEC 27001:2017 certified products: Proxy Solutions Scraper APIs Scale up your business with Oxylabs® RegisterContact sales Company About usOur valuesAffiliate programService partnersPress areaResidential Proxies sourcingCareersOxyConProject 4betaSustainability Proxies Datacenter ProxiesDedicated Datacenter ProxiesResidential ProxiesSOCKS5 ProxiesMobile ProxiesISP ProxiesPrivate Proxies Advanced proxy solutions Web Unblocker Data Collection Web Scraper APIProxy Servers Datasets Datasets Resources DocumentationScraper APIs PlaygroundRelease notesDevelopers HubOpen source toolsBlogFAQ Innovation hub FeaturesIntellectual PropertyOxyCopilot story Corporate governance Privacy Policy KYC Policy Trust & SafetyVulnerability Disclosure Policy Speak up Code of Conduct Code of Ethics © 2024 oxylabs.io. All Rights Reserved hello@oxylabs.iosupport@oxylabs.iocareer@oxylabs.io English中文 IN THIS ARTICLE: * Tutorial: Using cURL with APIs * cURL alternatives * Conclusion Forget about complex web scraping processes Choose Oxylabs' advanced web intelligence collection solutions to gather real-time public data hassle-free. Sign up