Leveraging the Power of NewsAPI with REST API

Leveraging the Power of NewsAPI with REST API

Introduction to REST API

REST (Representational State Transfer) is an architectural style that dictates how web services can be designed to function best. It operates using standard HTTP methods such as GET, POST, PUT, DELETE, etc. These operations allow developers to create, read, update, and delete (CRUD) resources on a server.

The REST architecture makes APIs (Application Programming Interfaces) like News API user-friendly and flexible, enabling them to interact seamlessly with other software applications.

Setting Up the NewsAPI

Before you start making requests to Event Registry, you need to set up an API key.

Follow these steps:

  1. Visit https://www.newsapi.ai/documentation?tab=introduction
  2. Register an account if you don't have one.
  3. Log in to your account.
  4. Navigate to your account settings and look for the API Key section.
  5. Generate your API key. Make sure to note this down and keep it private.

Making Requests using the REST API

With your API key at the ready, you can now begin using REST API. The base URL for requests is http://eventregistry.org/api/v1/{endpoint}, where {endpoint} represents the API method you're using.

Below is an example of how you can fetch articles related to a specific event in Python.

import requests api_key = 'YOUR_API_KEY'  # replace with your API key base_url = 'http://eventregistry.org/api/v1/article/getArticles' params = { 'apiKey': api_key,'action': 'getArticles', 'keyword': 'global warming', 'lang': 'eng' } response = requests.get(base_url, params=params) data = response.json()

In this request, we use the getArticles endpoint to fetch articles related to "global warming" in English. The data returned by EventRegistry is in JSON format.

Interpreting the Response

The response you get is a JSON object filled with articles related to the keyword specified. Each article has attributes like the title, URL, body, language, source, date, etc. You can parse this data for further analysis or display it on a website.

Here's an example of how you could print the title and URL of each article: For example, let's assume that you want to find news articles mentioning Elon Musk. In that case, you need to call the endpoint

http://eventregistry.org/api/v1/article/getArticles

with request body:

{
    "keyword": "Elon Musk",
    "apiKey": "YOUR_API_KEY"
}

If you don't specify any additional parameters, the output would today look something like this:

{
    "articles": {
        "results": [
            {
                "uri": "6382884774",
                "lang": "eng",
                "isDuplicate": false,
                "date": "2021-01-11",
                "time": "09:11:00",
                "dateTime": "2021-01-11T09:11:00Z",
                "dateTimePub": "2021-01-11T09:04:00Z",
                "dataType": "news",
                "sim": 0.6745098233222961,
                "url": "https://www.techradar.com/news/is-it-time-to-try-signal-or-telegram",
                "title": "Is it time to try Signal or Telegram? ",
                "body": "... Signal got an especially good boost from the likes of tech celebrities such as Edward Snowden and Elon Musk who tweeted ...",
                "source": {
                    "uri": "techradar.com",
                    "dataType": "news",
                    "title": "TechRadar"
                },
                "authors": [
                    {
                        "uri": "leila_stein@techradar.com",
                        "name": "Leila Stein",
                        "type": "author",
                        "isAgency": false
                    }
                ],
                "image": "https://cdn.mos.cms.futurecdn.net/EP3nfZFSctwY45wJvooRvb-1200-80.jpg",
                "eventUri": "eng-6455774",
                "sentiment": 0.2392156862745098,
                "wgt": 348052260,
                "relevance": 1
            },
            ...
        ],
        "totalResults": 20593,
        "page": 1,
        "count": 100,
        "pages": 206
    }
}
Example of newsapi request taken from https://www.newsapi.ai/documentation

The above example response is significantly abbreviated and shows just a single returned article (instead of 100) and has an abbreviated body (which is otherwise returned in full).

Conclusion

The RESTful NewsAPI provides an excellent way to integrate real-time news data into your applications. The REST architecture's simplicity makes it accessible to developers of all skill levels. Its flexibility allows for various parameters and combinations, making it a powerful tool for delivering targeted news content based on your needs. The power of news and information is now in the hands of developers, and the possibilities are endless.