SDKs overview

News API provides access to real-time and historical news articles from various publishers and blogs globally, delivering data in JSON format via a RESTful interface. While News API's core interaction is through direct HTTP GET requests, a range of SDKs and client libraries simplify this process for developers. These tools handle common tasks such as constructing API requests, managing authentication, and parsing JSON responses, allowing developers to focus on integrating news content into their applications rather than the underlying API mechanics.

The API supports several programming languages, and developers can choose between making raw HTTP requests or utilizing existing libraries to streamline their integration. The News API documentation details the available endpoints and parameters for interacting with the service.

Official SDKs by language

News API primarily emphasizes direct HTTP integration, and while it doesn't maintain a large suite of official, first-party SDKs for every language, its straightforward API design encourages community contributions. The following table highlights commonly used client libraries, some of which are officially linked or recommended by News API, facilitating integration across popular programming languages. Maturity levels vary, with some being actively maintained and others stable but less frequently updated.

Language Package/Library Name Installation Command Maturity
Python newsapi-python pip install newsapi-python Official/Recommended
Node.js/JavaScript newsapi-js npm install newsapi-js Official/Recommended
Ruby news-api-client gem install news-api-client Community (Active)
PHP news-api-php composer require news-api-php/news-api-php Community (Stable)
Go go-newsapi go get github.com/jzelinskie/go-newsapi Community (Stable)
Java newsapi-java Maven/Gradle dependency Community (Active)
C# NewsAPI.Client Install-Package NewsAPI.Client Community (Active)

Installation

Installation instructions vary by programming language and package manager. Below are typical installation commands for some of the most commonly used News API client libraries.

Python

The newsapi-python library is installed via pip, Python's package installer. This client simplifies fetching articles and sources by handling API key authentication and response parsing.

pip install newsapi-python

Node.js/JavaScript

For Node.js environments, newsapi-js is available through npm. This package provides a straightforward way to interact with News API endpoints using JavaScript.

npm install newsapi-js

Ruby

Ruby developers can use the news-api-client gem. This gem integrates with Ruby applications for convenient API calls.

gem install news-api-client

PHP

PHP projects can integrate the news-api-php library using Composer, the dependency manager for PHP.

composer require news-api-php/news-api-php

Go

Go developers can fetch the go-newsapi module directly using the go get command.

go get github.com/jzelinskie/go-newsapi

Java

For Java projects, client libraries are typically added as dependencies in your build configuration (e.g., Maven or Gradle). An example Maven dependency for a community-maintained client might look like this:

<dependency>
    <groupId>com.github.Dmitry-Ryabenko</groupId>
    <artifactId>newsapi-java-client</artifactId>
    <version>1.0.1</version>
</dependency>

Developers should check the specific library's GitHub repository or documentation for the most current dependency information. For general guidance on managing dependencies in Java, consult the Google Cloud Java client libraries documentation.

C#

C# developers can install the NewsAPI.Client NuGet package through the NuGet Package Manager Console or GUI.

Install-Package NewsAPI.Client

Quickstart example

The following examples demonstrate how to fetch top headlines using the News API client libraries in Python and Node.js. These snippets illustrate the basic steps: initializing the client with an API key and making a request to an endpoint.

Python Quickstart

This Python example uses the newsapi-python library to retrieve the top headlines from the US, filtered by the business category. Ensure you replace 'YOUR_API_KEY' with your actual News API key obtained from the News API website.

from newsapi import NewsApiClient

# Init
newsapi = NewsApiClient(api_key='YOUR_API_KEY')

# /v2/top-headlines
top_headlines = newsapi.get_top_headlines(q='bitcoin',
                                          sources='bbc-news,the-verge',
                                          category='business',
                                          language='en',
                                          country='us')

print(top_headlines)

Node.js Quickstart

This Node.js example utilizes the newsapi-js library to perform a similar query for top headlines. This code should be run in a Node.js environment after installing the library.

const NewsAPI = require('newsapi');
const newsapi = new NewsAPI('YOUR_API_KEY');

// To query /v2/top-headlines
// All options passed to topHeadlines are optional, but you need to include at least one of them
newsapi.v2.topHeadlines({
  q: 'tesla',
  category: 'business',
  language: 'en',
  country: 'us'
}).then(response => {
  console.log(response);
  /*
    { status: "ok",
      articles: Array[100] }
  */
});

Community libraries

Beyond the officially referenced or recommended clients, the News API ecosystem benefits from a variety of community-contributed libraries. These libraries often extend functionality, provide alternative approaches, or cater to less common programming languages or frameworks. Developers are encouraged to explore GitHub and other package repositories for additional options that might better suit their specific project requirements.

When using community-contributed libraries, it is advisable to check their maintenance status, documentation quality, and community support. Resources like GitHub typically provide insights into these aspects, including recent commits, open issues, and pull requests. For example, the AWS SDK for Go documentation provides a good model for understanding how comprehensive SDKs are structured and maintained, which can serve as a benchmark when evaluating third-party News API clients.

Some prominent community-driven libraries include:

  • Java Client Libraries: Several independent Java clients exist, often found on GitHub, providing different levels of abstraction and feature sets. These typically require manual dependency management via Maven or Gradle.
  • Go Clients: In addition to go-newsapi, other Go packages may offer varying levels of support for News API endpoints.
  • Dart/Flutter Clients: For mobile developers, Dart-based clients might be available to integrate News API into Flutter applications.
  • Swift/Objective-C Clients: iOS developers may find Swift or Objective-C wrappers, though direct HTTP requests are also common in these environments.

Developers are encouraged to consult the News API official documentation for any updates or new recommendations regarding client libraries.