Search responses are JSON with the same envelope on all three products - your parsing code works everywhere.
{
"posts": [
{
"uuid": "6bd4f2f1a2...",
"url": "https://www.example.com/article",
"title": "Example headline",
"text": "Full extracted text of the post...",
"language": "english",
"published": "2026-07-04T11:20:00.000+03:00",
"thread": {
"site": "example.com",
"site_type": "news",
"...": "..."
},
"...": "..."
}
],
"next": "/api/news?q=bitcoin&ts=1751713632000&ni=6bd4f2f1a2...",
"total_results": 12453,
"more_results_available": 12353,
"requests_left": 989,
"warnings": null
}| Field | Type | Description |
|---|---|---|
posts | array | Matching posts - see post data fields for News, Blogs, or Forums |
next | string | Relative URL of the next page. Append it to https://api.webz.io - see Pagination |
total_results | integer | Total posts matching the query |
more_results_available | integer | Posts still available after this page |
requests_left | integer | Your remaining credit balance |
warnings | array | Query issues, only when warning=true was sent. Each has message, type, level |
Migrating from the deprecated Web Content API? Meta fields are snake_case here: rename totalResults to total_results, moreResultsAvailable to more_results_available, and requestsLeft to requests_left. The posts structure is unchanged.