Nobody wants to build things from scratch. That’s why APIs exist.
So I took the time to find 11 underrated, practical APIs you can plug into your projects and start building right away.
You will be able to scrape web pages, access threat levels of websites, get real time foreign exchange rates, stock data, track global flights, check violent images, fetch Google search results and much more.
Let's jump in.
1. IPStack API - real-time IP geolocation and accessing threat level
This is one of the most valuable ones on the list. IPstack provides a powerful, real-time IP to geolocation API capable of looking up accurate location data and assessing security threats whether they are from risky IP addresses (which need to be dealt with).
Features:
- Lookup country, region, city, timezone, currency, connection info
- Bulk lookup (up to 50 IPs) via comma-separated calls
- Enable hostname resolution & security checks (proxy/Tor/threat detection)
- Return JSON or XML. Support for JSONP callbacks & multiple languages
You can integrate IPstack by just appending the access_key
 parameter to the API's base URL:
curl 'https://api.ipstack.com/134.201.250.155?access_key=YOUR_ACCESS_KEY'
Below is an example of what the IPstack API would return when you ask it about the IP address 134.201.250.155
.
{
"ip": "134.201.250.155",
"hostname": "134.201.250.155",
"type": "ipv4",
"country_code": "US",
"country_name": "United States",
"region_code": "CA",
"region_name": "California",
"city": "Los Angeles",
"latitude": 34.0655,
"longitude": -118.2405,
"location": {
"geoname_id": 5368361,
"capital": "Washington D.C.",
"languages": [
{
"code": "en",
"name": "English",
"native": "English"
}
],
"country_flag": "https://assets.ipstack.com/images/assets/flags_svg/us.svg",
"country_flag_emoji": "🇺🇸",
"country_flag_emoji_unicode": "U+1F1FA U+1F1F8",
"calling_code": "1",
"is_eu": false
},
"time_zone": {
"id": "America/Los_Angeles",
"current_time": "2024-06-14T01:45:35-07:00",
"gmt_offset": -25200,
"code": "PDT",
"is_daylight_saving": true
},
"currency": {
"code": "USD",
"name": "US Dollar",
"plural": "US dollars",
"symbol": "$",
"symbol_native": "$"
},
"connection": {
"asn": 25876,
"isp": "Los Angeles Department of Water & Power",
"sld": "ladwp",
"tld": "com",
"carrier": "los angeles department of water & power",
},
"security": {
"is_proxy": false,
"threat_level": "low",
}
}
✅ Use case: You can personalize user experiences (UX) for the end-user by displaying location-specific content, implementing geo-blocking for security or providing localized language options based on the location.
There is also the official demo that shows how to fork their collection workspace on Postman.
Read the official docs to get details on API features, available options and integration guides in different programming languages. You will also find three different endpoints.
On top of this, you can use Blocklist API which is a curated list of known malicious hosts, which includes the union of multiple well known sources including full bogons, SANS dshield and more.
2. Fixer - real time & historical foreign exchange rates.
It's a simple and lightweight API for real-time exchange rate data for 170 world currencies which is updated every 60 seconds and with historical data available back to 1st January 1999.
Features:
- Latest exchange rates and historical rates (EOD)
- Currency conversion endpoint
- Time-series data (up to 365 days) & fluctuation data
- Supports changing base currency and selecting specific symbols
- Bank-level security (256-bit SSL), CORS, JSONP & ETag cache support
✅ Use case: This can be used for financial dashboards or analytics tools needing up-to-the-minute exchange rates with historical comparisons.
You can make a sample request like this.
curl "https://data.fixer.io/api/latest?access_key=YOUR_API_KEY&symbols=USD,CAD,JPY"
Here's a sample response for the latest EUR rates in USD, CAD, and JPY.
{
"success": true,
"timestamp": 1751232000,
"base": "EUR",
"date": "2025-06-30",
"rates": {
"USD": 1.23396,
"CAD": 1.560132,
"JPY": 132.360679
…
}
}
To get started, you can also fork the collection workspace on Postman and read official docs to check all the vast endpoints available.
3. Numverify - validate phone numbers for 232 countries worldwide
This API offers a full-featured RESTful JSON API for national and international phone number validation and information lookup for 232 countries around the world.Â
The numbers are processed in real-time and cross-checked with the latest international numbering plan databases.
Features:
- Validate number, country code, format, and carrier
- Supports E.164, international and national formats
- Detect line type (mobile/landline) and include location info
✅ Use case: You can verify phone numbers at the point of entry during user registration, protect against fraud by validating carrier information, and optimize SMS delivery by identifying line types.
You can make the request by adding the phone number in the query parameter like this.
curl --request GET 'https://api.apilayer.com/number_verification/validate?number=14158586273' \
--header 'apikey: YOUR API KEY'
Here is the example response.
{
"valid": true,
"number": "14158586273",
"local_format": "4158586273",
"international_format": "+14158586273",
"country_prefix": "+1",
"country_code": "US",
"country_name": "United States of America",
"location": "Novato",
"carrier": "AT&T Mobility LLC",
"line_type": "mobile"
}
To get started, you can fork the collection workspace on Postman & read the official docs to know more about authentication and endpoints.
4. Marketstack API - real‑time and historical stock market data API.
This RESTful JSON API provides real-time, intraday and historical stock market data from 30,000+ tickers across 70+ global exchanges, with over 30 years of history.
It's very easy to integrate and you can find all the stock tickers with the EOD endpoint collected from more global exchanges, including Nasdaq, NYSE and more.
Features:
- Real‑time stock quotes and intraday prices (such as 1 min, 5 min) for US tickers
- End‑of‑day (EOD) historical data for 30+ years and 500K+ total tickers
- Coverage of global exchanges, indices, currencies, bonds, ETFs
- Supports splits, dividends, company data, timezones
- Secure (256‑bit HTTPS) and easy authentication
✅ Use case: You can make power trading dashboards, portfolio trackers or investment tools with live charts and historic trends, all using straightforward REST calls.
You can integrate this API by just appending the access_key
 parameter to the base URL:
The symbols=AAPL
fetches data for Apple here, while symbols=AAPL,MSFT,GOOG
would retrieve data for Apple, Microsoft and Alphabet (Google) in a single request.
curl "https://api.marketstack.com/v2/eod?access_key=YOUR_ACCESS_KEY&symbols=AAPL"
Here's the sample response.
{
"pagination": {
"limit": 100,
"offset": 0,
"count": 100,
"total": 9944
},
"data": [
{
"open": 129.8,
"high": 133.04,
"low": 129.47,
"close": 132.995,
"volume": 106686703.0,
"adj_high": 133.04,
"adj_low": 129.47,
"adj_close": 132.995,
"adj_open": 129.8,
"adj_volume": 106686703.0,
"split_factor": 1.0,
"dividend": 0.0,
"symbol": "AAPL",
"exchange": "XNAS",
"date": "2021-04-09T00:00:00+0000"
},
[...]
]
}
It will return both pagination
 information as well as a data
 object, which contains a separate sub-object for each requested date/time and symbol.
To get started, you can also fork the collection workspace on Postman and read official docs.
5. Aviationstack - real time and historical global flight tracking.
This provides a RESTful JSON API that delivers real-time flight status, historical data, route, airline, airport, and aircraft. It covers 13,000+ airlines and 10,000+ airports in 250+ countries.
Features:
- Live flight status updates (delay, gate, runway, lat/long, speed)
- Historical flight data (up to 3 months)
- Route lookup, airport info, airline & aircraft data
- Flight schedules, autocomplete, JSONP support
- Secure 256‑bit HTTPS
✅ Use case: This is perfect for building travel planners, flight tracking apps, airport display boards, booking systems or even analytics tools based on flight history and delays.
You can check sample details on their website using the Flight number.
You can create a request like this.
curl "https://api.aviationstack.com/v1/flights?access_key=YOUR_ACCESS_KEY&flight_date=2025-06-27&limit=5"
Here's a sample response. I have shortened the response so it's easier to read.
{
"pagination": {
"limit": 100,
"offset": 0,
"count": 100,
"total": 1669022
},
"data": [
{
"flight_date": "2019-12-12",
"flight_status": "active",
"departure": {
"airport": "San Francisco International",
"iata": "SFO",
"gate": "D11",
"scheduled": "2019-12-12T04:20:00+00:00"
...
},
"arrival": {
"airport": "Dallas/Fort Worth International",
"iata": "DFW",
"gate": "A22",
"scheduled": "2019-12-12T04:20:00+00:00"
...
},
"airline": {
"name": "American Airlines",
"iata": "AA"
},
"flight": {
"number": "1004",
"iata": "AA1004"
},
"aircraft": {
"registration": "N160AN",
"iata": "A321"
},
"live": {
"latitude": 36.2856,
"longitude": -106.807,
"altitude": 8846.82,
"speed_horizontal": 894.348
...
}
},
...
]
}
To get started, you can also fork the collection workspace on Postman and read the official docs for more endpoints with parameters.
6. Violence Detection API - flag violent images.
There are a lot of sites that include uploading images or generating custom ones with AI, making sure it's not something violent is necessary.
This API can help you automate the content approval process. It computes a score on a 1 to 5 scale for content passed to it, where a score of 5 means the content most likely contains violence while a score close to 1 implies the content is safe to publish.
Here's how you can make the request to check if the image (on the URL) is violent or not.
curl --request GET \
--url 'https://api.apilayer.com/violence_detection/url?url={url}' \
--header 'apikey: oavrVdjE8EO0ycld3YMzjQyPBv5OrGOF'
Here's a sample response.
{
"description": "Very likely contains violence",
"value": 5
}
Let's see a few sample examples.
âš¡ A kitchen knife can be dangerous unless you are putting food ingredients on the table, which is why API considers it harmless in this context.
{
"description": "Very unlikely contains violence",
"value": 1
}
Â
âš¡ Let's take a context where a lady is holding a cleaver for a show or a similar occasion. She is laughing so API considers that she is joking and so it shouldn't be something serious. Value 2
suggests there may be some chance of a crime (still no violence).
{
"description": "Unlikely contains violence",
"value": 2
}
You can read the official docs and try more samples in the live demo section.
7. User Agent API - parse and generate user agent strings for device detection.
This API provides an easy way to detect devices like mobile phones, tablets and their capabilities by parsing browser/HTTP user agent strings.
It reliably identifies if the user agent is a mobile phone, tablet, PC-based device or if it has touch capabilities.
The API also generates random user agent strings from an extensive database of 325,000+ user agent strings, which is useful for web scraping applications You can filter them based on many parameters such as operating system, device type and browser.
✅ Use case: You can optimize user experiences based on device capabilities, generate realistic user agents for web scraping projects and implement responsive design decisions based on the type of device the end-user is using.
Here's how you can make a request. ua
denotes URLEncoded User Agent String such as Mozilla/5.0...
.
curl --request GET \
--url 'https://api.apilayer.com/user_agent/parse?ua={ua}' \
--header 'apikey: oavrVdjE8EO0ycld3YMzjQyPBv5OrGOF'
Here's a sample response.
{
"browser": {
"name": "Chrome",
"version": "85.0.4183",
"version_major": 85
},
"device": {
"brand": null,
"model": null,
"name": "Other"
},
"os": {
"name": "Windows",
"version": "10",
"version_major": 10
},
"type": {
"bot": false,
"mobile": false,
"pc": true,
"tablet": false,
"touch_capable": false
},
"ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"
}
You can generate a random user agent like this.
curl --location --request \
GET 'https://api.apilayer.com/user_agent/generate?desktop=true&linux=true' \
--header 'apikey: YOUR API KEY'
It's automatically parsed and it will return a unique Linux-based browser user-agent string each time it is executed.
You can read official docs to get more details on endpoints.
8. Bad Words API - Advanced profanity filter for content moderation.
With the increasing number of LLM-based AI Assistants (which we often use in our projects), it is important to filter inappropriate language (to keep it safe for all users).
This API provides an intelligent profanity detection system that uses English phonetics (how stuff sounds) to identify and filter inappropriate language in text content.
The filter goes beyond simple word matching by analyzing how words sound, making it highly effective at catching variations and bypassing attempts. For instance 'fck' will get caught as it should and so will 'frck' (even if it has deviation).
Here's how you can make the request.
curl --request POST \
--url 'https://api.apilayer.com/bad_words?censor_character={censor_character}' \
--header 'apikey: oavrVdjE8EO0ycld3YMzjQyPBv5OrGOF' \
--data-raw '{body}'
It can identify swear words, report their location and replace them with your chosen censor character. * is the default censor character that should be applied.
Below is the sample response.
{
"bad_words_list": [
{
"deviations": 0,
"end": 16,
"info": 2,
"original": "shitty",
"replacedLen": 6,
"start": 10,
"word": "shitty"
}
],
"bad_words_total": 1,
"censored_content": "this is a ****** sentence",
"content": "this is a shitty sentence"
}
✅ Use case: You can moderate user-generated content in forums and comment sections, automatically filter chat messages in real-time apps and ensure the response is safe in general.
Read the official docs.
9. Social Media Assets Generator API - resize and optimize images for social media platforms.
If you are creating content on social platforms, you will know the pain of generating appropriate images for different platforms. Each has its recommended dimensions and most of the time, people just compromise.
This API automatically resizes and creates appropriately formatted images for various social networks including Instagram, Facebook, Twitter, LinkedIn, YouTube, Pinterest and Tumblr.
It crops images from the center point when dealing with improper image sizes and returns the URL of the resized image.
You can pass the orientation
 parameter for each service for the intended image format:
-
square
: 1080x1080 (default) -
landscape
: 1080x566 -
portrait
: 1080x1350 -
profile
: 110x110 -
story
: 1080x1920
Here's how you can make the request.
# Upload image file
curl --location --request POST \
'https://api.apilayer.com/social_asset/instagram/upload' \
--data-binary '@/path/to/file/image.jpg' \
--header 'Content-Type: octet/stream' \
--header 'apikey: YOUR API KEY'
# Process image from URL
curl --location --request GET \
-i 'https://api.apilayer.com/social_asset/tumblr/url?url=https%3A%2F%2Fexample.com%2Fimages%2Ftest.jpg%26orientation%3Dpost' \
--header 'Content-Type: octet/stream' \
--header 'apikey: YOUR API KEY'
Here's the sample response.
HTTP/1.0 201 CREATED
Content-Type: application/json
Content-Length: 146
:
:
{
"orientation": "post",
"service": "tumblr",
"width": 1080,
"height": 1080,
"url": "https://assets.apilayer.com/social_asset/tumblr-post-500x750-1f1299c0-e9b2-11ea-9741-acde48001122.jpg"
}
You can prepare images from any platform (like Twitter) using the given URL.
curl --request GET \
--url 'https://api.apilayer.com/social_asset/twitter/url?url={url}' \
--header 'apikey: api_key'
✅ Use case: You can create a project to automatically generate properly sized social media graphics for marketing campaigns to create consistent brand images across platforms.
Read the official docs to get API endpoints for all the platforms.
10. Google Search Results API - fetch live Google Search Engine Results Page (SERPs).
This API scrapes Google Search engine result pages (SERPs) to extract organic results, ads, related queries, and shopping results. It provides comprehensive search data with support for location-based searches across 170+ countries and multiple languages.
The API enables businesses to monitor their search rankings, track competitors and analyze search trends without using Google's official API which is not publicly available.
Here's how you can make a request. The only required parameter is "q", the rest is optional.
curl --location --request \
GET 'https://api.apilayer.com/google_search?q=greenland' \
--header 'apikey: YOUR API KEY'
Here's a sample response.
{
"general": {
"language": "en",
"location": "United States",
"mobile": false,
"basic_view": false,
"search_type": "text"
},
"organic": [
{
"rank": 1,
"link": "#",
"display_link": "en.wikipedia.org › wiki › Greenland",
"title": "Greenland - Wikipedia",
"description": "Greenland is the world's largest island, located between the Arctic and Atlantic oceans, east of the Canadian Arctic Archipelago. It is an autonomous territory ..."
},
...
...
],
"knowledge": {
"name": "Greenland",
"description": "Greenland is the world's largest island, located between the Arctic and Atlantic oceans, east of the Canadian Arctic Archipelago. It is an autonomous territory within the Kingdom of Denmark.",
"description_source": "Wikipedia",
"description_link": "#"
},
"related": [
{
"link": "https://www.google.com/search?hl=en&adtest=on&gl=us&uule=w+CAIQICINVW5pdGVkIFN0YXRlcw&q=greenland+population&sa=X&ved=2ahUKEwiI3Mrb6_rrAhUQPK0KHZEQCXMQ1QIoAHoECCcQAQ",
"text": "greenland population"
},
...
...
],
"people_also_ask": [
{
"question": "Is Greenland a safe country?",
"question_link": "https://www.google.com/search?hl=en&adtest=on&gl=us&uule=w+CAIQICINVW5pdGVkIFN0YXRlcw&q=Is+Greenland+a+safe+country%3F&sa=X&ved=2ahUKEwiI3Mrb6_rrAhUQPK0KHZEQCXMQzmd6BAgaEAw",
"answer_source": "Is Greenland Safe? 8 Things I Wish I Knew Before I Went",
"answer_link": "#",
"answer_display_link": "www.worldnomads.com \› how-to-stay-safe-while-exploring-greenlandwww.worldnomads.com \› how-to-stay-safe-while-exploring-greenland",
"answer_html": "Greenland is not a place you have to worry about crime. According to the statistical website, Numbeo, Greenland rates as low for crime and high for safety.Oct 24, 2019"
},
...
...
]
}
✅ Use case: You can monitor SEO rankings and track competitor performance. On top of that, you can make a project that can tell what the current trends (based on the topics searched) are to get awesome ideas with a product-market fit.
Read the official docs to check all the other parameters.
11. World News API - global news with semantic search.
This API provides access to thousands of news sources in over 50 languages from more than 150 countries worldwide.
The semantic search capability allows you to search for "Location:USA" and retrieve all news mentioning the USA regardless of whether they use "US", "United States", or "United States of America".
You could even search for Spanish news that originated in the USA or French news from Canada. It can help you compare news about a polarizing topic from different countries.
Here's how to make a request to search and filter news. You can check the details on the parameters on the official docs.
curl --request GET \
--url 'https://api.apilayer.com/world_news/search-news?text={text}&source-countries={source-countries}&sort-direction={sort-direction}&sort={sort}&offset={offset}&number={number}&news-sources={news-sources}&min-sentiment={min-sentiment}&max-sentiment={max-sentiment}&location-filter={location-filter}&latest-publish-date={latest-publish-date}&language={language}&entities={entities}&earliest-publish-date={earliest-publish-date}&authors={authors}' \
--header 'apikey: api_key'
Here's a sample response.
{
"available": 83,
"news": [
{
"author": "Kay Lee",
"id": 28,
"image": "https://internetprotocol.co/content/images/2021/12/Tesla-to-Release-a-Four-Motor-Version-of-Cybertruck.png",
"language": "en",
"sentiment": 0.712523,
"source_country": "co",
"summary": "Tesla CEO Elon Musk has revealed new details about the upcoming Cybertruck electric pickup truck. According to Musk, its initial production will begin with a four-motor variant.",
"text": "Tesla CEO Elon Musk has ........ to begin at the end of 2022, and its mass production is slated to start in 2023.",
"title": "Tesla to Release a Four-Motor Version of Cybertruck",
"url": "https://internetprotocol.co/hitech/2021/12/07/tesla-to-release-a-four-motor-cybertruck/"
}
],
"number": 10,
"offset": 0
}
✅ Use case: You can monitor global news coverage of your brand or industry, analyze sentiment around specific topics across different countries, track breaking news for investment decisions, and compare international perspectives on current events.
That’s all for now.
I hope these sparked some fresh ideas for your next project. Go build something awesome and ship it fast.
Have a great day! Until next time :)
You can check my work at anmolbaranwal.com. Thank you for reading! 🥰 |
![]() ![]() ![]() |
---|
Top comments (0)