The sources endpoint is used at the backend. It provides sources that can be used as query parameters with the front-end endpoints. The base URI for this endpoint is https://newsapi.org/v2/top-headlines/sources.

Query parameters

Parameter

Type

Description

category

string

This helps us find sources that display news of a specific category. By default, the user will get sources for all categories in the result.

language

string

This is used to find sources that display news in a specific language. The possible options are listed in the appendix.

country

string

This query parameter finds sources from a specific country. The possible options are listed in the appendix.

Use cases

Use the sources endpoint without any query parameter

The code below shows us how we can use the sources endpoint without any query parameters to get all available sources. Click the “Run” button to get all available sources. The id of the first source will be saved so that we can use it with the everything and top-headlines endpoint.

Press + to interact
import requests
import json
URL=('https://newsapi.org/v2/top-headlines/sources'
)
header = {
'X-Api-Key': "{{API_KEY}}"
}
response = requests.request("GET", URL, headers=header).json()
print(json.dumps(response, indent=4))

We get the category, description, language, URL, country, ID, and name of the sources in response.

  • We import the required packages in line 1 and line 2.
  • In line 4, we specify the URL of the endpoint.
  • In lines 7 to 9, the header is declared.
  • We call the sources endpoint in line 10.
  • The command on line 11 prints the response we got by calling the sources endpoint.

Note: We’ll use the same code throughout the course. The only thing which will change for other endpoints is the URL.

Use the sources endpoint with a query parameter

The results we got in the previous case can be filtered using query parameters listed in the table above.

In the code below, we’re using the category to get sources for sports. Click the “Run” button to call the endpoint and see the response.

Press + to interact
import requests
import json
URL=('https://newsapi.org/v2/top-headlines/sources?'
'category=sports'
)
header = {
'X-Api-Key': "{{API_KEY}}"
}
response = requests.request("GET", URL, headers=header).json()
print(json.dumps(response, indent=4))

We can replace the query parameter, category, in line 5 with other query parameters to see how they filter the results.

Use the sources endpoint with multiple query parameters

We can also use multiple query parameters with this endpoint. The code below shows how we can do that. Click the “Run” button to execute the code.

Press + to interact
import requests
import json
URL=('https://newsapi.org/v2/top-headlines/sources?'
'category=sports&'
'language=en'
)
header = {
'X-Api-Key': "{{API_KEY}}"
}
response = requests.request("GET", URL, headers=header).json()
print(json.dumps(response, indent=4))

We can also use all three query parameters together to get more filtered results. For this, we’ll just need to add the country parameter in the code above after the other two parameters.