# News API - Blogs, Forums and Reviews Search, Webz.io (`nabeelbaghoor/news-blogs-forums-reviews-api`) Actor

Search news articles, blog posts, forum discussions and customer reviews from the open web with Boolean queries and filters for language, country, site, category, sentiment, people, companies and tickers, using the Webz.io News, Blogs, Forums and Reviews APIs. Bring your own API token.

- **URL**: https://apify.com/nabeelbaghoor/news-blogs-forums-reviews-api.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** News, Developer tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 news article returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## News API - Blogs, Forums and Reviews Search, Webz.io

Search and export news articles, blog posts, forum discussions and customer reviews from across the open web into an Apify dataset, with your own Webz.io API token.

This actor wraps the Webz.io News, Blogs, Forums and Reviews APIs. It turns a Boolean query and a set of filters into clean, deduplicated rows you can download as JSON, CSV or Excel, schedule, or feed into other actors and AI agents.

### What it does

- **News article search**: Boolean queries over news sites worldwide, with full extracted text, summary, sentiment, IPTC categories and topics, named entities with their own sentiment, stock tickers, source trust data, syndication and social engagement counts.
- **Blog post search**: the same query language over blogs, with named entities and tickers.
- **Forum post search**: discussions and replies, filtered by thread starters or replies and by reply count.
- **Review search**: customer reviews of products, hotels, apps and businesses, with rating, review text and the reviewed item.
- **Filters as fields**: languages (76), source countries, sites to include or exclude, domain rank, authors, news categories and topics, sentiment, organizations, people, locations, tickers, political bias, trust category, curated top news lists, breaking news and engagement.
- **Time window**: the last 3 days by default, any start within the last 31 days, and news history back about a year.
- **Automatic paging**: follows the provider's own next link until the results run out or your row cap is reached.
- **Pay only for results**: empty searches are recorded as a free row that says why, never charged.

### Input

| Field | Used by | What it does |
| --- | --- | --- |
| `mode` | all | `news`, `blogs`, `forums` or `reviews` |
| `queries` | all | One Boolean query per line, read separately. Leave empty to search by filters only |
| `since` | all | Start of the window: 2026-09-30, a date and time, 24h or 7d. Empty means the last 3 days |
| `newsHistory` | news | Allows a start more than 31 days back (extra provider credits) |
| `languages`, `countries`, `sites`, `excludeSites`, `domainRankMax`, `authors` | all | Language names, country codes such as US, domains, Tranco rank ceiling, author names |
| `categories`, `topics`, `sentiment` | news | IPTC categories, finer topics, positive, negative or neutral |
| `organizations`, `people`, `locations`, `tickers` | news, blogs | Entities and stock tickers the post mentions |
| `trustBias`, `trustCategory`, `topNews`, `breakingOnly`, `performanceScoreMin` | news | Source bias, trusted or fake news, curated top news lists, breaking stories, engagement score |
| `forumPosts`, `minReplies` | forums | Thread starters or replies, minimum replies |
| `ratingMin`, `ratingBelow`, `minItemReviews`, `highConfidenceOnly` | reviews | Rating range, popular items, high accuracy parsers only |
| `includeSyndicated` | news, blogs, forums | Also return syndicated copies |
| `sortBy`, `order` | all | Crawl time (default), relevance, published, domain rank, rating, social shares and more |
| `maxResults` | all | Row ceiling for the run, across all queries |
| `apiKey` | all | Your Webz.io API token (secret). Or set the `DATA_API_KEY` environment secret |

Every filter is checked against the provider's documented values before a request is sent. This matters because the API answers an unknown filter value with zero results rather than an error. Inputs a product does not use are left off and named in the log.

### How to get an API token

Sign in at webz.io and copy the API token from your dashboard. Your account must be enabled for each product you search (News, Blogs, Forums or Reviews). If a product is not on your plan, the run stops with a clear message and you can ask Webz.io support to add it.

### Example output

```json
{
    "mode": "news",
    "recordType": "newsArticle",
    "identifier": "\"artificial intelligence\" regulation",
    "found": true,
    "id": "a83e94d134f35bc6439bdad39e318b4ef3319f8c",
    "title": "EU lawmakers agree on next steps for AI rules",
    "url": "https://www.example-news.com/tech/eu-ai-rules",
    "date": "2026-10-06T14:32:00.000+03:00",
    "source": "example-news.com",
    "author": "Jane Doe",
    "language": "english",
    "country": "BE",
    "sentiment": "neutral",
    "value": 1840,
    "siteType": "news",
    "text": "Full extracted article text ...",
    "summary": "European lawmakers reached a provisional deal on ...",
    "categories": ["Science and Technology"],
    "topics": ["Science and Technology->technology and engineering"],
    "entities": { "organizations": [{ "name": "European Commission", "sentiment": "neutral", "tickers": [] }] },
    "thread": { "site": "example-news.com", "domain_rank": 1840, "social": { "facebook": { "shares": 12 } } },
    "crawled": "2026-10-06T14:40:11.000+03:00",
    "note": null
}
```

Every field the provider returns is kept. `value` is the domain rank for news, blog and forum posts, and the rating for reviews.

### FAQ

#### What is the Webz.io API?

Webz.io (formerly Webhose.io) is a web data provider that crawls news sites, blogs, forums and review sites and serves the content as structured JSON. Its News, Blogs and Forums APIs share one Boolean query language and response format, and its Reviews API uses the same query language. This actor calls `/api/news`, `/api/blogs`, `/api/forums` and `/api/reviews` on api.webz.io.

#### Do I need my own API token?

Yes. This actor is bring your own key: you need a Webz.io account with access to the products you want to search. Your token is stored as an Apify secret, sent only in the Authorization header, and removed from every log line. Without a token the run stops immediately with a clear message and no charge.

#### How do I write a query?

Enter one query per line, for example `"electric vehicles" (Tesla OR BYD) -recall`. A space means AND, operators must be uppercase, quotes and parentheses must be balanced, and you can add field filters such as `title:bitcoin`. The filter inputs add clauses like `language:english`, `country:US` or `organization:nvidia` for you.

#### How far back can I search?

News, blogs, forums and reviews are searchable for about the last 31 days, and the default window is the last 3 days. News history reaches back about one year when you tick news history, at 2 to 4 provider credits per request, and only in crawl order. Older data is sold separately by Webz.io as an archive product, which this actor does not cover.

#### How many results can I get?

Pages of up to 100 posts are read until your `maxResults` ceiling or until the provider reports no more results. Each page is one provider request and costs at least one credit from your Webz.io plan, and the provider allows about one request a second per token.

#### Can I filter by sentiment, company or person?

Yes, on news articles: overall sentiment, categories, topics, and organizations, people and locations mentioned. Blog posts take the entity and ticker filters too. Entities are extracted from English, German, Spanish and Italian posts.

#### Does it include segmentation counts?

No. The provider documents segmentation routes that count posts by site, language or entity, but on 2026-10-08 the live API host answered those routes with 404, so they are not wired. Only the four search routes that answer on the live host are used.

#### What do I pay?

The actor charges per returned record: 0.01 USD per news article, 0.008 USD per blog post, 0.006 USD per forum post and 0.008 USD per review, with Apify platform usage included. Empty results are free. Webz.io bills your plan separately in credits.

#### What happens if my token is wrong or my plan does not cover a request?

A rejected token, a product your account is not enabled for, an inactive account or ended trial, a plan-gated filter, or spent credits ends the run cleanly with the provider's own explanation as the status message. Rate limits are retried automatically.

### Keyword map

news API, news search API, blog search API, forum search API, reviews API, customer reviews data, web data API, media monitoring, brand monitoring, social listening data, news sentiment, named entity news search, Webhose API, Webz.io API, news data export.

### Terms and data use

You need your own Webz.io account, and your use of the data is governed by your agreement with Webz.io. Their published terms (webz.io/tos, sections 2 and 5) grant a non-transferable licence for internal use, forbid sharing or reselling the data with third parties including clients, forbid using it to compete with Webz.io, forbid catch-all queries that bulk-gather data, and forbid AI or LLM training on posts whose `ai_allow` field is false. Content belongs to the original publishers and authors, and a true `ai_allow` value is not a licence. Write targeted queries, check your agreement before republishing text or training models, and keep the export inside your organisation. This actor is an independent tool and is not made or endorsed by Webz.io.

# Actor input Schema

## `mode` (type: `string`):

News articles are from news sites, with sentiment, categories, topics, named entities and source trust data. Blog posts and forum posts and replies share the same query language. Reviews are customer reviews of products, hotels, apps and businesses with their rating and the reviewed item.

## `queries` (type: `array`):

One Boolean query per line, each read separately. A space means AND; use OR, NOT or -, parentheses, "exact phrases", "words near"~3, prefix wildcards such as crypt\*, and field filters such as title:bitcoin. Quotes and parentheses must be balanced. Leave empty to search by the filters below only.

## `since` (type: `string`):

Start of the search window, by crawl time: a date such as 2026-09-30, a date and time, or a relative value such as 24h or 7d. Empty searches the last 3 days. News, blogs, forums and reviews are searchable for about 31 days; older news needs news history.

## `newsHistory` (type: `boolean`):

News articles only. Allow a start date more than 31 days back, up to about a year. The provider bills 2 to 4 credits a request for older windows, and serves them only in crawl order.

## `languages` (type: `array`):

Only posts in these languages. All products.

## `countries` (type: `array`):

Two letter country codes of the source site, such as US, GB or DE (UK is read as GB). All products; for reviews it is the reviewed site's country.

## `sites` (type: `array`):

Only posts from these domains, such as reuters.com, or amazon.com and tripadvisor.com for reviews. All products.

## `excludeSites` (type: `array`):

Leave out posts from these domains. All products.

## `domainRankMax` (type: `integer`):

Only sites ranked at or above this position in the Tranco top sites list (lower is more popular), such as 1000. All products.

## `authors` (type: `array`):

Only posts by these authors. All products.

## `categories` (type: `array`):

News articles only. The 17 IPTC based categories.

## `topics` (type: `array`):

News articles only. Finer IPTC topics such as election, economy, climate change, cyber crime or tennis. An unknown topic returns nothing rather than an error.

## `sentiment` (type: `string`):

News articles only. Overall sentiment of the article.

## `organizations` (type: `array`):

News articles and blog posts. Organizations the post mentions (English, German, Spanish and Italian posts).

## `people` (type: `array`):

News articles and blog posts. People the post mentions.

## `locations` (type: `array`):

News articles and blog posts. Locations the post mentions.

## `tickers` (type: `array`):

News articles and blog posts. Stock tickers of organizations the post mentions, such as AAPL or NVDA.

## `trustBias` (type: `string`):

News articles only. Political bias of the source.

## `trustCategory` (type: `string`):

News articles only. Trusted news, fake news or satirical news sources.

## `topNews` (type: `string`):

News articles only. top_news for every curated list, or one country such as top_news_us or top_news_gb.

## `breakingOnly` (type: `boolean`):

News articles only. Only stories flagged as breaking.

## `performanceScoreMin` (type: `integer`):

News articles only. Engagement score of the article from 1 to 10.

## `forumPosts` (type: `string`):

Forum posts only. Thread starters, replies, or both.

## `minReplies` (type: `integer`):

Forum posts only. Only threads with at least this many replies.

## `ratingMin` (type: `number`):

Reviews only. Rating from 0 to 5, such as 4 for positive reviews.

## `ratingBelow` (type: `number`):

Reviews only. Only reviews rated below this value, such as 3 for complaints.

## `minItemReviews` (type: `integer`):

Reviews only. Only items with at least this many reviews.

## `highConfidenceOnly` (type: `boolean`):

Reviews only. Leave out reviews extracted by generic RSS or shallow crawl parsers.

## `includeSyndicated` (type: `boolean`):

News, blogs and forums. Also return syndicated copies of the same article, which are left out by default.

## `sortBy` (type: `string`):

Crawl time is the default and the only order that pages through everything and reaches news history. Social and performance sorts only order news meaningfully. Reviews accept crawl time, published, rating, position in thread and the item sorts.

## `order` (type: `string`):

Provider default is ascending for crawl time and domain rank, descending otherwise.

## `highlight` (type: `boolean`):

Add the matched terms wrapped in em tags in highlightText and highlightTitle.

## `maxResults` (type: `integer`):

The most rows this run returns and charges for, across all queries. Pages of up to 100 are read, and every page costs at least one credit on your Webz.io plan.

## `requestsPerMinute` (type: `integer`):

Pacing. The provider allows about one request a second per token, and the actor waits and retries when it answers 429.

## `apiKey` (type: `string`):

Your own Webz.io API token from the dashboard. Stored as a secret and sent only in the Authorization header; it is never logged. You can instead set the DATA_API_KEY environment secret.

## Actor input object example

```json
{
  "mode": "news",
  "queries": [
    "\"artificial intelligence\" regulation"
  ],
  "newsHistory": false,
  "sentiment": "any",
  "trustBias": "any",
  "trustCategory": "any",
  "forumPosts": "any",
  "sortBy": "crawled",
  "order": "default",
  "maxResults": 100,
  "requestsPerMinute": 50
}
```

# Actor output Schema

## `records` (type: `string`):

One row per news article, blog post, forum post or review.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "\"artificial intelligence\" regulation"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/news-blogs-forums-reviews-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "queries": ["\"artificial intelligence\" regulation"] }

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/news-blogs-forums-reviews-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "\\"artificial intelligence\\" regulation"
  ]
}' |
apify call nabeelbaghoor/news-blogs-forums-reviews-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nabeelbaghoor/news-blogs-forums-reviews-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/NtyNCMEVTViRyfR0T/builds/RadsU062qpdl4GKqd/openapi.json
