News API Documentation

NEWS API

The News API Documentation offers developers a robust and easy-to-integrate solution for accessing real-time news articles and headlines from trusted sources worldwide. With support for filtering content by keyword, language, source, country, and date, the News API helps build dynamic applications enriched with up-to-date news content. The API returns data in JSON format and follows RESTful principles, making it simple to use across platforms. Whether you're creating a news aggregator, a content analysis tool, or enhancing your app with current events, the News API provides detailed documentation, authentication via API key, endpoint structure, and usage guidelines to help you get started quickly and efficiently.

Parameters

Parameters Details
access_key This is a required parameter. It’s your unique access key used to authenticate and authorize your request.
find You needs to add some words to search news. The "find" parameter will search in news title, description and content. If words contain anywhere in news, it will return that news.

Default: none.
Values: trump, world war 3, Nasdaq Stocks... etc, any word,
from
(Optional)
When you access history news API and you are looking for any historical data from a specific date, you need to specify date between from/to date by using (from, to) parameter

Default: none
Format: YYYY-MM-DD E.g: 2025-06-28
to
(Optional)
When you access news history API, It is required with "From" Parameter.

Default: none
Format: YYYY-MM-DD E.g: 2025-06-22
language
(Optional)
You can set language parameter, so API only return all news in your specfied language.

Default: none
Values: ar {Arabic}, de {German}, en {English}, es {Spanish}, fr {French}, it {italian}, nl {Dutch}, pt {Portuguese}, ru {Russian} OR all {all languages}
limit
(Optional)
You can use this parameter to control how much data is returned.

Default: 20
offset
(Optional)
Offset tells the system to ignore a set number of items and fetch the data from the next one onward

Default: none
search_in
(Optional)
Use this parameter to define which fields (title, content, description) should be searched.

Default: none
Valid Values: title, content, description
Category
(Optional)
Use this parameter to fetch data from a specific category.

Default: none
Values: Weather, Sports, Travel, Health, Politics, Analysis, Business, Entertainment, etc
Country
(Optional)
Use this parameter to specify the country using a valid ISO 3166-1 alpha-2 code.

Default: none
Values: US, US, UK, GB
headline
(Optional)
If this parameter is set to 1, only headline news will be returned.

Default: none
Values: 1
site
(Optional)
Use the site parameter to filter the data by including only the specified sites.

Default: none
Values: abc, bbc, rt, arynews, cbc, aljazeera, coindesk, marketwatch,reuters, investing
sitequit
(Optional)
This parameter allows you to exclude data from specific sites. Simply provide the sites you don’t want to include in the results

Default: none
Values: bbc, cnn, rt, abc, cbc, aljazeera, japantimes
id This parameter allows you to fetch data for a specific item by specifying its unique ID.

Default: none
rewrite
(Optional)
When this parameter is enabled, the content will be automatically rewritten by AI.

Default: none
Values: 1
format
(Optional)
If you want the content in text format, send `format=text`.

Default: array
Values: text
output
(Optional)
If you want the content in text format, send `format=text`.

Default: json
Values: json, jsonp, object, xml, serialize and array
Note: All parameters are case sensitive, Please specify parameters in lower case (small alphabets).

API Request Credit Usage

Maximum 100 records return per request in any language, it will count 1 credit per request. If you set "force_update=1" then it will count 2 credit. If you set "spin=1" then it will count 5 credit.

  • Request count only when response code is {200} and return some record.
  • If API endpoints that return an error or empty responses are not count in request.
  • You can login in your dashboard to check your usage.
  • Credit refresh each month of your billing date.

Authentication

To authenticate your API requests, you need to include your API key as a parameter in each request. The API key serves as a unique identifier that grants access to the API.

How to Authenticate

Each request must include the access_key parameter with your assigned API key.

Example Request
https://news.fcsapi.com/api/news?access_key=API_KEY
Response

If authentication is successful, the API will return the requested data. If the API key is missing or invalid, an error response will be returned. Ensure that your API key remains confidential and is not exposed publicly.

Search News

Latest:

Return all Latest news by date that contain your search terms.

Search Syntax

Basic Search:
find=election - Returns articles with exactly "election" (not "elections")

Wildcard:
find=tech* - Matches "tech", "technology", "technical", etc.

Boolean Operators:

  • find=climate energy - Any one or both words
  • find=+climate +policy - Must include both terms
  • find=vaccine -covid - Include "vaccine", exclude "covid"
  • find="artificial intelligence" - Exact phrase match
  • find=car race +super - Must have "super", with any word "car/race"
  • find=+breaking +news -sport* - Contain "breaking" and "news", exclude anything start with "sport"
  • find=tech* -apple -google - Words starting with "tech" but excluding "apple" and "google"
  • find="climate change" +policy - The exact phrase "climate change" with the word "policy"

Notes:

  • Results sorted by newest first
  • No prefix wildcards (*ing) or mid-word wildcards (c*r)
  • Minimum search term: 3 characters
  • Default Search covers titles and descriptions
https://news.fcsapi.com/api/news?find=car&access_key=API_KEY
From Specific Date:

Return all news sort by date that contain words "trump".

https://news.fcsapi.com/api/news?find=car*&from=2025-06-28&to=2025-06-22&access_key=API_KEY
From Language:

Return all news sort by language that contain words "trump".

https://news.fcsapi.com/api/news?find=+trump +elections&language=en&access_key=API_KEY
From limit:

Give news in define limit.

https://news.fcsapi.com/api/news?find=trump&limit=10&access_key=API_KEY
From offset:

skipping given number results (pagination) and showing next news.

https://news.fcsapi.com/api/news?find=trump&limit=10&offset=10&access_key=API_KEY
From search:

Return news according to search fields.

https://news.fcsapi.com/api/news?find=trump&search_in=title,content,description&access_key=API_KEY
Response:

After you request on API, It would give you the response in JSON format which you can change, it is up to your need. Moreover, We have characterized our News API response in the form of different index keys (id, name, symbol, and decimals) concerning the different popular currencies which you can use according to your requirements.

{
  "status"true,
  "code"200,
  "message""All news articles",
  "response"[
    {
      "id""755",
      "title""Kalgoorlie man who allegedly severed father...",
      "description""The 19-year-old's lawyer told a ...",
      "image_url""https://live-production.wcms.abc-cdn.net.au/e6db9..."
      "language""en",
      "datetime""2025-03-14 02:55:32",
      "url""https://www.abc.net.au/news/2025-03-14/kalgoorlie-samurai-sword-accused-granted-bail/105047726",
      "site""abc",
      "Category""business",
      "country""india",
      "keywords""india",
      "author""Priscilla Alvarez"
    }
  ]
}

Category News

Category:

Return all Latest news by category.

https://news.fcsapi.com/api/news?find=trump&category=entertainment&access_key=API_KEY
Response:

After you request on API, It would give you the response in JSON format which you can change, it is up to your need. Moreover, We have characterized our News API response in the form of different index keys (id, name, symbol, and decimals) concerning the different popular currencies which you can use according to your requirements.

{
  "status"true,
  "code"200,
  "message""All news articles",
  "response"[
    {
      "id""755",
      "title""Kalgoorlie man who allegedly severed father...",
      "description""The 19-year-old's lawyer told a ...",
      "image_url""https://live-production.wcms.abc-cdn.net.au/e6db9..."
      "language""en",
      "datetime""2025-03-14 02:55:32",
      "url""https://www.abc.net.au/news/2025-03-14/kalgoorlie-samurai-sword-accused-granted-bail/105047726",
      "site""abc",
      "category""entertainment",
      "Country""india",
      "keywords""india",
      "author""Priscilla Alvarez"
    }
  ]
}

Country News

Country:

Return all Latest news by country.

https://news.fcsapi.com/api/news?find=trump&country=us&access_key=API_KEY
Response:

After you request on API, It would give you the response in JSON format which you can change, it is up to your need. Moreover, We have characterized our News API response in the form of different index keys (id, name, symbol, and decimals) concerning the different popular currencies which you can use according to your requirements.

{
  "status"true,
  "code"200,
  "message""All news articles",
  "response"[
    {
      "id""755",
      "title""Kalgoorlie man who allegedly severed father...",
      "description""The 19-year-old's lawyer told a ...",
      "image_url""https://live-production.wcms.abc-cdn.net.au/e6db9..."
      "language""en",
      "datetime""2025-03-14 02:55:32",
      "url""https://www.abc.net.au/news/2025-03-14/kalgoorlie-samurai-sword-accused-granted-bail/105047726",
      "site""abc",
      "category""entertainment",
      "Country""usa",
      "keywords""usa",
      "author""Priscilla Alvarez"
    }
  ]
}

Headline News

https://news.fcsapi.com/api/news?find=trump&headline=1&access_key=API_KEY
Response:

After you request on API, It would give you the response in JSON format which you can change, it is up to your need. Moreover, We have characterized our News API response in the form of different index keys (id, name, symbol, and decimals) concerning the different popular currencies which you can use according to your requirements.

{
  "status"true,
  "code"200,
  "message""All news articles",
  "response"[
    {
      "id""755",
      "title""Kalgoorlie man who allegedly severed father...",
      "description""The 19-year-old's lawyer told a ...",
      "image_url""https://live-production.wcms.abc-cdn.net.au/e6db9..."
      "language""en",
      "datetime""2025-03-14 02:55:32",
      "url""https://www.abc.net.au/news/2025-03-14/kalgoorlie-samurai-sword-accused-granted-bail/105047726",
      "site""abc",
      "category""entertainment",
      "Country""usa",
      "keywords""usa",
      "author""Priscilla Alvarez"
    }
  ]
}

Site News

Return all news of specific site.

https://news.fcsapi.com/api/news?find=Trump&site=abc&access_key=API_KEY
For Multiple Site:

Return all news sort by multiple sites that contain words "trump".

https://news.fcsapi.com/api/news?find=Trump&site=abc,japantimes&access_key=API_KEY
For SiteQuit:

Remove all news of that sites sort by sitequit.

https://news.fcsapi.com/api/news?find=trump&sitequit=rt,aljazeera&access_key=API_KEY
Response:

After you request on API, It would give you the response in JSON format which you can change, it is up to your need. Moreover, We have characterized our News API response in the form of different index keys (id, name, symbol, and decimals) concerning the different popular currencies which you can use according to your requirements.

{
  "status"true,
  "code"200,
  "message""All news articles",
  "response"[
    {
      "id""755",
      "title""Kalgoorlie man who allegedly severed father...",
      "description""The 19-year-old's lawyer told a ...",
      "image_url""https://live-production.wcms.abc-cdn.net.au/e6db9..."
      "language""en",
      "datetime""2025-03-14 02:55:32",
      "url""https://www.abc.net.au/news/2025-03-14/kalgoorlie-samurai-sword-accused-granted-bail/105047726",
      "site""abc",
      "category""entertainment",
      "Country""usa",
      "keywords""usa",
      "author""Priscilla Alvarez"
    }
  ]
}

Content Rewrite API

Orignal content

https://news.fcsapi.com/api/news/content?id=10&access_key=API_KEY

Rewrite content
If you set "rewrite=1" then it will count 10 credit.

https://news.fcsapi.com/api/news/content?id=10&rewrite=1&access_key=API_KEY

Format content
If you want the content in text format, send `format=text`.

https://news.fcsapi.com/api/news/content?id=10&format=text&access_key=API_KEY
Response:

After you request on API, It would give you the response in JSON format which you can change, it is up to your need. Moreover, We have characterized our News API response in the form of different index keys (id, name, symbol, and decimals) concerning the different popular currencies which you can use according to your requirements.

{
  "status"true,
  "code"200,
  "message""All news articles",
  "response"{
      "id""755",
      "title""Kalgoorlie man who allegedly severed father...",
      "description""The 19-year-old's lawyer told a ...",
      "content""{\n \"p_1\": \"San Juan, Puerto Rico (AP) \\u2014 An island-w...}",
      "image_url""https://live-production.wcms.abc-cdn.net.au/e6db9..."
      "language""en",
      "datetime""2025-03-14 02:55:32",
      "url""https://www.abc.net.au/news/2025-03-14/kalgoorlie-samurai-sword-accused-granted-bail/105047726",
      "site""abc",
      "category""entertainment",
      "Country""usa",
      "keywords""usa",
      "author""Priscilla Alvarez"
    }
}

Errors

There are multiple errors that help you to understand issue with your API response.

Code Details
200 Your API is working. Response successfully
101 API Key error : Your access key is wrong, Please login in your dashboard and get your API KEY.
102 Your Account is not activated.
103 Your Account is blocked.
104 API Key error : You have not set your access_key in parameters.
112 Data not found, it may be you set wrong values and it may be no data from our side. More error details will be send in API response.
113 Required parameters are missing, Please check api documentaion also check message in API response for more error details.
211 You have used your all monthly API request limit.
212 Your Account is expired, You need to pay your montly fee or downgrade to free version.
213 Error 213 is only for Free user, free user are not allow more than 1 request per minute..

Client Libraries

Use a client library (SDK) to quickly and easily get started with News API without having to make HTTP requests directly.

We have libraries available for the following languages:

  • C - Libcurl
  • C# - RestSharp
  • cURL
  • Go - Native
  • Java - OkHttp, Unirest, AsyncHttp
  • JavaScript - Fetch, jQuery, XHR
  • NodeJs - Request, Unirest, Axios
  • PHP - cURL, pecl_http
  • Python - Requests
  • Ruby - Net::HTTP
  • Shell - Httpi

These libraries handle API requests, authentication, and response parsing, making integration easier for developers.

C - Cibcurl

CURL *curl;
CURLcode res;

// The URL to which we will send the POST request
const char *url = "https://news.fcsapi.com/api/news";

// Create form data with parameters
const char *postfields = "find=trump&access_key=API_KEY";

// Initialize libcurl
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();

if(curl){
  // Set the URL for the POST request
  curl_easy_setopt(curl, CURLOPT_URL, url);

  // Specify that this is a POST request
  curl_easy_setopt(curl, CURLOPT_POST, 1L);

  // Set the POST fields
  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postfields);

  // Perform the request, res will get the return code
  res = curl_easy_perform(curl);

  // Check for errors
  if(res != CURLE_OK)
    fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));

  // Always cleanup
  curl_easy_cleanup(curl);
}
// Global cleanup
curl_global_cleanup();
return 0;

C# - Restshar

// Initialize the client with the base URL
var client = new RestClient("https://news.fcsapi.com/api/news");

// Create a POST request
var request = new RestRequest(Method.POST);

// Create form data with parameters
request.AddParameter("find", "trump");
request.AddParameter("access_key", "API_KEY");

// Execute the request and get the response
IRestResponse response = client.Execute(request);

// Print the response
Console.WriteLine(response.Content);

Code cURL

# Use curl to make a POST request to the specified URL
curl -X POST https://news.fcsapi.com/api/news \
  # Create form data with parameters
  -d "find=trump" \
  -d "access_key=API_KEY"

Go - Native

package main

import (
  "bytes"
  "fmt"
  "net/http"
  "net/url"

)

func main() {
  apiUrl := "https://news.fcsapi.com/api/news"

  // Create form data with parameters
  data := url.Values{}
  data.Set("find", "trump")
  data.Set("access_key", "API_KEY")

  // Create a new POST request
  req, err := http.NewRequest("POST", apiUrl, bytes.NewBufferString(data.Encode()))
  if err != nil {
    fmt.Println("Error creating request:", err)
    return
  }

  // Set content type header
  req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

  // Perform the request
  client := &http.Client{}
  resp, err := client.Do(req)

  if err != nil {
    fmt.Println("Error making request:", err)
    return
  }

  defer resp.Body.Close()

  // Print response status
  fmt.Println("Response status:", resp.Status)
}

Java - OkHttp

OkHttpClient client = new OkHttpClient();

// Create form data with parameters
RequestBody requestBody = new FormBody.Builder();
  .add("find", "trump")
  .add("access_key", "API_KEY")
  .build()

// Create the request
Request request = new Request.Builder();
  .url("https://news.fcsapi.com/api/news")
  .post(requestBody)
  .build()

// Execute the request and get the response
try (Response response = client.newCall(request).execute()) {
  if (!response.isSuccessful()) {
    throw new IOException("Unexpected code " + response);
    }

  // Print the response body
  System.out.println(response.body().string());
}

Java - Unirest

// Make a POST request using Unirest
HttpResponse<String> response = Unirest.post("https://news.fcsapi.com/api/news")
  // Set the Content-Type header
  .header("Content-Type", "application/x-www-form-urlencoded")
  // Create form data with parameters
  .field("find", "trump")
  .field("access_key", "API_KEY")
  // Execute the request and get the response
  .asString();

// Print the response body
System.out.println(response.getBody());

Java - AsyncHttp

// Create an instance of AsyncHttpClient
AsyncHttpClient asyncHttpClient = Dsl.asyncHttpClient();

// Build the POST request
Request Request = Dsl.post("https://news.fcsapi.com/api/news");
  // Create form data with parameters
  .addFormParam("find", "trump")
  .addFormParam("access_key", "API_KEY")
  .build();

// Execute the request asynchronously
asyncHttpClient.executeRequest(request)
  .toCompletableFuture();
  .thenAccept(response -> {
    // Print the response status code
    System.out.println("Response status code: " + response.getStatusCode());

    // Print the response body
    System.out.println("Response body: " + response.getResponseBody());
  })
  .join();

// Close the AsyncHttpClient instance
asyncHttpClient.close();

JavaScript Fetch

// Create form data with parameters
const formData = new FormData();
formData.append("find", "trump");
formData.append("access_key", "API_KEY");

// Send a POST request to the API
fetch("https://news.fcsapi.com/api/news", {
  method: "POST",
  headers: {
    // Set content type to form-urlencoded
    "Content-Type": "application/x-www-form-urlencoded"
  },
  body: formData
})

// Parse the JSON response
.then(response => response.json())

// Log the data to the console
.then(data => console.log(data))

// Log any errors to the console
.catch(error => console.error("Error:", error))

jQuery.ajax

Real-time rates: Find below a simple jQuery.ajax example of getting exchange rate data via the News API's latest endpoint.

<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script>
access_key = "API_KEY"; // Your API access key, Signup to get API KEY
find = 'trump';

$.ajax({
    url:
"https://news.fcsapi.com/api/news?find=" + find + "&access_key=" + access_key,
    type:
"GET", // GET or POST
    dataType:
"json",
    success: function(data) {
        console.log("Price of "+data.response[0].symbol + " is "+data.response[0].price);
    }
});

</script>

JavaScript XHR

// Create form data with parameters
var formData = new FormData();
formData.append("find", "trump");
formData.append("access_key", "API_KEY");

// Create a new XMLHttpRequest object
var xhr = new XMLHttpRequest();

// Configure the request
xhr.open("POST", "https://news.fcsapi.com/api/news", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

// Set up a function to handle the response
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4 && xhr.status == 200) {
    // Request was successful, handle the response here
    console.log(xhr.responseText);
  }
};

// Send the request with the parameters
xhr.send(formData);

NodeJs Request

// Require the 'request' library
const request = require('request');

// Define the request options
const options = {
  url: "https://news.fcsapi.com/api/news",
  method: "POST",

  // Create form data with parameters
  form: {
    find: 'trump',
    access_key: 'API_KEY',
  }
};

// Make the HTTP request
request(options, function (error, response, body) {
  if (error) {
    console.error('Error:', error);
  }
  else {
    console.log('Response:', body);
  }
});

NodeJs Unirest

// Require the 'unirest' library
const unirest = require('unirest');

// Make a POST request to the specified URL
unirest.post("https://news.fcsapi.com/api/news")
  .headers({'Content-Type': 'application/json'})
  // Create form data with parameters
  .field('find', "trump")
  .field('access_key', "API_KEY")
  .end(function (response) {
    console.log(response.body);
  });

NodeJs Axios

// Require the 'axios' library
const axios = require('axios');

// Create form data with parameters
const data = {
  find: 'trump',
  access_key: 'API_KEY'
};

// Making a POST request using Axios
axios.post("https://news.fcsapi.com/api/news", data)
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error("error", error);
  });

PHP cURL

$access_key = "API_KEY"; // Your API access key, Signup to get API KEY
$find = "trump";

// Enter your API URL below
$api_url = "https://news.fcsapi.com/api/news";
$post = "find=".trump."&access_key=".$access_key;

// Initialize CURL:
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$json = curl_exec($ch); // Store the data
curl_close($ch);

$response = json_decode($json, true); // convert JSON into Array
foreach ($response['response'] as $key => $value) {
  echo "<br>Open Price Of ".$value['find']." is ".$value['price'];
}

PHP pecl_http

// Create form data with parameters
$data = array(
  'find' => 'trump',
  'access_key' => 'API_KEY',
);

Set POST data
$data_query = http_build_query($data);

// Initialize a new HTTP request
$request = new HttpRequest("https://news.fcsapi.com/api/news", HttpRequest::METH_POST);
$request->addHeaders(array(
  'Content-Type' => 'application/x-www-form-urlencoded',
});

$request->setBody($data_query);

// Send the request and capture the response
try {
  $response = $request->send();

  // Display the response
  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

Python Requests

import requests

# Create form data with parameters
params = {
  "find": "trump",
  "access_key": "API_KEY"
}

# Make the POST request
response = requests.post("https://news.fcsapi.com/api/news", data=params)

# Print the response
print(response.text)

Ruby Net::HTTP

require 'uri'
require 'net/http'

url = URI("https://news.fcsapi.com/api/news")

# Create form data with parameters
params = {
  "find": "trump",
  "access_key": "API_KEY"
}

# Create the HTTP object
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

# Create the request
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/x-www-form-urlencoded"
request.set_form_data(params)

# Send the request
response = http.request(request)

# Output the response
puts "Response code: #{response.code}"
puts "Response body: #{response.body}"

Shell Httpi

http --ignore-stdin --form --follow --timeout 3600 POST 'https://news.fcsapi.com/api/news' \
  # Create form data with parameters
  "find"="trump" \
  "access_key"="API_KEY"