Search results with highlighting and field selection

Build search interface with highlighted terms, field selection, and multiple filters

Input parameters

ParameterDescriptionTypeDefaultRequired
titleSearch query.stringYes
flField selection for optimization.stringYes
hlEnable highlighting.booleantrueYes
hl.flFields to highlight.stringYes
per_pageMaximum number of articles to retrieveinteger20Yes
sort.bySort by relevance.stringYes
sort.orderDescending order.stringYes
api_keyYour API keystringYes

Workflow examples

Search results with highlighting:
curl -X GET "https://api.apitube.io/v1/news/everything?title=AI&fl=id,title,description,published_at,source.domain&hl=true&hl.fl=title,description&per_page=10&sort.by=published_at&sort.order=desc&api_key=YOUR_API_KEY"
Custom highlight tags for HTML:
curl -X GET "https://api.apitube.io/v1/news/everything?title=Tesla&hl=true&hl.tag.pre=<mark>&hl.tag.post=</mark>&api_key=YOUR_API_KEY"
Larger snippets and more results:
curl -X GET "https://api.apitube.io/v1/news/everything?title=climate%20change&hl=true&hl.fragsize=300&hl.snippets=5&api_key=YOUR_API_KEY"
Request combined with filters:
curl -X GET "https://api.apitube.io/v1/news/everything?title=Apple&organization.name=Apple&hl=true&hl.fl=title,description&sentiment.overall.polarity=positive&published_at.start=2024-01-01&published_at.end=2024-01-31&api_key=YOUR_API_KEY"

Related examples

Recipe for cURL

curl --location --globoff --request POST 'https://api.apitube.io/v1/news/everything?title=AI&fl=id%2Ctitle%2Cdescription%2Cpublished_at%2Csource.domain&hl=1&hl.fl=title%2Cdescription&per_page=10&sort.by=published_at&sort.order=desc&api_key=YOUR_API_KEY' \
--header 'Content-Type: application/json'

Recipe for Python

import requests

url = "https://api.apitube.io/v1/news/everything"

querystring = {
    "title": "AI",
    "fl": "id,title,description,published_at,source.domain",
    "hl": true,
    "hl.fl": "title,description",
    "per_page": 10,
    "sort.by": "published_at",
    "sort.order": "desc",
    "api_key": "YOUR_API_KEY"
}
response = requests.request("GET", url, params=querystring)

print(response.text)

Recipe for Javascript

import axios from "axios"

const options = {
		method: 'GET',
		url: 'https://api.apitube.io/v1/news/everything',
		params: {
    "title": "AI",
    "fl": "id,title,description,published_at,source.domain",
    "hl": true,
    "hl.fl": "title,description",
    "per_page": 10,
    "sort.by": "published_at",
    "sort.order": "desc",
    "api_key": "YOUR_API_KEY"
}};

axios.request(options).then(function (response) {
		console.log(response.data);
}).catch(function (error) {
		console.error(error);
});

Recipe for PHP

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();
$response = $client->request('GET', 'https://api.apitube.io/v1/news/everything', [
	'query' => [
    'title' => 'AI',
    'fl' => 'id,title,description,published_at,source.domain',
    'hl' => 1,
    'hl.fl' => 'title,description',
    'per_page' => 10,
    'sort.by' => 'published_at',
    'sort.order' => 'desc',
    'api_key' => 'YOUR_API_KEY',
],
]);

echo $response->getBody();

Recipe for Java

OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
		.url("https://api.apitube.io/v1/news/everything?title=AI&fl=id%2Ctitle%2Cdescription%2Cpublished_at%2Csource.domain&hl=1&hl.fl=title%2Cdescription&per_page=10&sort.by=published_at&sort.order=desc&api_key=YOUR_API_KEY")
		.method("POST", body)
		.addHeader("Content-Type", "application/json")
		.build();
Response response = client.newCall(request).execute();
		
  • CNN
  • Techcrunch
  • Vox
  • Apple
  • Microsoft
  • IBM
  • Bloomberg
  • Spotify
We use cookies

By clicking "Accept", you agree to cookies on your device for the site to work and for analytics.