> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pubrio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# News Search

> Find news about companies by category, country, language and date, with every article linked to the companies it mentions — and optionally to the expansion signals it produced.

[News Search](/en/api-reference/endpoint/companies/news_search) returns news articles Pubrio has classified, one row per article. Each row links to **every** company the article mentions, carries a category slug (`acquires`, `partners_with`, `receives_financing`, …) and, on request, the expansion signals the article produced.

```bash theme={null}
curl -X POST https://api.pubrio.com/companies/news/search \
  -H "pubrio-api-key: $PUBRIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domains": ["stripe.com"],
    "categories": ["partners_with", "launches"],
    "published_dates": ["2026-08-01", "2026-09-04"],
    "per_page": 25
  }'
```

## When to use it

* **Account intelligence** — what happened to a company this month, categorised.
* **Trigger-based prospecting** — every company that announced funding or an acquisition in a country and language you sell in.
* **Signal evidence** — with `is_expansion_signal_available: true`, see which articles produced which [expansion signals](/en/knowledge-base/concepts/expansion-signals).

For counts and category breakdowns use [News Insights](/en/api-reference/endpoint/companies/news_insights). To be notified as articles arrive, create a Monitor with `signal_types: ["news"]`.

## Scope to a company

| Key             | Value                                         | Notes                                                                 |
| --------------- | --------------------------------------------- | --------------------------------------------------------------------- |
| `domains`       | `["stripe.com"]`                              | Matches articles that mention the company, not only articles about it |
| `linkedin_urls` | `["https://www.linkedin.com/company/stripe"]` | Company pages only                                                    |
| `companies`     | `["5378845d-…"]`                              | `domain_search_id` values                                             |

A search without a company works — `{"categories": ["acquires"], "locations": ["SG"]}` — and returns the whole index for that category, newest first.

## Filters

### Category and gallery

| Key                | Type       | Matches                                                                                             |
| ------------------ | ---------- | --------------------------------------------------------------------------------------------------- |
| `categories`       | `string[]` | Category slugs from [News Categories](/en/api-reference/endpoint/news/categories). Any listed slug. |
| `news_galleries`   | `string[]` | Gallery slugs from [News Galleries](/en/api-reference/endpoint/news/galleries).                     |
| `news_gallery_ids` | `uuid[]`   | The same galleries by id.                                                                           |
| `news_languages`   | `string[]` | ISO 639-1 codes from [News Languages](/en/api-reference/endpoint/news/languages).                   |

### Text

| Key            | Type       | Matches                                                         |
| -------------- | ---------- | --------------------------------------------------------------- |
| `search_term`  | `string`   | Free text against title and summary, in any supported language. |
| `search_terms` | `string[]` | Several terms, any of which may match.                          |

### Dates

| Key               | Type                  | Matches                                                                            |
| ----------------- | --------------------- | ---------------------------------------------------------------------------------- |
| `published_dates` | `[from, to]`          | Publication date window, inclusive. Day boundaries follow your workspace timezone. |
| `published_at`    | date or ISO timestamp | Published at or after this instant, compared in UTC.                               |

### Location

| Key                 | Type       | Matches                                                          |
| ------------------- | ---------- | ---------------------------------------------------------------- |
| `locations`         | `string[]` | Countries the article is **about** (`country_codes` on the row). |
| `company_locations` | `string[]` | Headquarters country of a mentioned company.                     |

### Expansion signals

| Key                             | Type       | Matches                                                                                                    |
| ------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------- |
| `is_expansion_signal_available` | `boolean`  | Attach `expansion_signals` to each row and enable the two filters below. Leave off for the fastest search. |
| `expansion_signal_types`        | `string[]` | `HIRE`, `PARTNER`, `PRODUCT`, `SCALE`, … Requires the flag above.                                          |
| `expansion_signal_polarities`   | `string[]` | `expansion`, `contraction_leading`, `contraction_confirming`, `contraction_lagging`.                       |

### Paging and order

| Key                  | Default | Notes                                                                                                 |
| -------------------- | ------- | ----------------------------------------------------------------------------------------------------- |
| `per_page` / `page`  | 25 / 1  | Plan-capped; see `total_display_pages`.                                                               |
| `is_ascending_order` | `false` | Rows are ordered by `published_at` newest first, undated articles last. `true` flips to oldest first. |

## What a row looks like

```json theme={null}
{
  "news_id": "76886b56-3418-476a-a531-fff18deb29db",
  "news_search_id": "4d950aea-e2bb-4367-869b-c34e834a82ec",
  "title": "PayPal Rejects Takeover, Rated Buy",
  "summary": "…",
  "url": "https://seekingalpha.com/article/4942660-…",
  "source": "seekingalpha.com",
  "image_url": "https://static.seekingalpha.com/…",
  "language": "en",
  "published_at": "2026-09-03T08:54:21.000000Z",
  "last_modified": "2026-09-03T09:20:55.189Z",
  "category": "receives_financing",
  "news_category_name": "Funding Announcements",
  "news_galleries": [{ "news_gallery_id": "342f2eb1-…", "slug": "general-business", "name": "General Business" }],
  "country_codes": null,
  "company_country_codes": ["US"],
  "locations": null,
  "domains": ["paypal.com", "stripe.com"],
  "companies": [
    { "domain_search_id": "5378845d-…", "company_name": "Stripe", "domain": "stripe.com", "country_code": "US", "…": "…" },
    { "domain_search_id": "b03b312a-…", "company_name": "PayPal", "domain": "paypal.com", "country_code": "US", "…": "…" }
  ]
}
```

* `companies` and `domains` are parallel arrays and list **every** mentioned company, so a search scoped to `stripe.com` can return an article whose main subject is PayPal. Filter client-side on `domains` if you need articles where your company is the subject.
* `country_codes` is what the article is about; `company_country_codes` is where the mentioned companies are based. `locations` filters the first.
* `news_category_name` is localised to the request `language`; `category` is the stable slug.
* With `is_expansion_signal_available: true` each row gains `expansion_signals: [{ signal_type_slug, signal_strength_slug, polarity, country_code, domain_search_id, event_date }]`.

### `metadata.ignored_fields`

Any body key the endpoint does not recognise is dropped and listed here. `"categorys"` returns the whole index with `ignored_fields: ["categorys"]`, not an error.

## Recipes

<Tabs>
  <Tab title="Funding news in Japanese">
    ```bash cURL theme={null}
    curl -X POST https://api.pubrio.com/companies/news/search \
      -H "pubrio-api-key: $PUBRIO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "categories": ["receives_financing"],
        "news_languages": ["ja"],
        "published_dates": ["2026-08-01", "2026-09-04"],
        "per_page": 25
      }'
    ```
  </Tab>

  <Tab title="Expansion evidence for one account">
    ```bash cURL theme={null}
    curl -X POST https://api.pubrio.com/companies/news/search \
      -H "pubrio-api-key: $PUBRIO_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "domains": ["stripe.com"],
        "is_expansion_signal_available": true,
        "expansion_signal_types": ["HIRE", "PARTNER", "PRODUCT", "OFFICE"],
        "expansion_signal_polarities": ["expansion"],
        "per_page": 25
      }'
    ```

    Every row now explains a signal you would otherwise only see as a stage on [Company expansion detail](/en/api-reference/endpoint/expansions/company_lookup).
  </Tab>

  <Tab title="Daily digest">
    ```python Python theme={null}
    import os, requests
    from datetime import datetime, timedelta, timezone

    since = (datetime.now(timezone.utc) - timedelta(days=1)).strftime("%Y-%m-%dT%H:%M:%SZ")
    body = requests.post(
        "https://api.pubrio.com/companies/news/search",
        headers={"pubrio-api-key": os.environ["PUBRIO_API_KEY"]},
        json={"domains": ["stripe.com", "adyen.com"], "published_at": since, "per_page": 25},
    ).json()

    for a in body["data"]["news"]:
        subjects = ", ".join(c["company_name"] for c in a["companies"])
        print(f'[{a["category"]}] {a["title"]} — {subjects}')
    ```

    `published_at` is compared in UTC, so a rolling 24-hour timestamp is safer than a calendar date.
  </Tab>
</Tabs>

## Related

<CardGroup cols={2}>
  <Card title="News Search reference" icon="code" href="/en/api-reference/endpoint/companies/news_search">
    Every parameter and response field.
  </Card>

  <Card title="News Insights" icon="chart-column" href="/en/api-reference/endpoint/companies/news_insights">
    Mentions, topics and sources for one company over a window.
  </Card>

  <Card title="News Categories" icon="tags" href="/en/api-reference/endpoint/news/categories">
    The category slugs you can filter on.
  </Card>

  <Card title="Expansion signals" icon="globe" href="/en/knowledge-base/concepts/expansion-signals">
    What a signal type and polarity mean.
  </Card>
</CardGroup>
