> ## 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.

# Company News Search

> Search news about companies. See the [News Search guide](/en/developer-guides/search/news-search).



## OpenAPI

````yaml en-openapi POST /companies/news/search
openapi: 3.0.0
info:
  description: >-
    The Pubrio API delivers market expansion intelligence — real-time signals
    that flag when a company enters a new market — alongside the company and
    people data beneath them. Search, look up, and enrich accounts and contacts,
    and subscribe to typed, dated movement signals across 200+ markets.
  version: 1.0.0
  title: Pubrio OpenAPI
  termsOfService: https://pubrio.com/en/terms-of-service
  contact:
    email: king.lai@pubrio.com
    name: King Lai
    url: https://pubrio.com/en/get-in-touch
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.pubrio.com
security:
  - pubrio_api_key: []
tags:
  - name: Profile
    description: Workspace profile information and usage statistics
  - name: Enrichment
    description: Enrich people and company records with detailed B2B data
  - name: Lookalike
    description: Find companies similar to a given company
  - name: Search
    description: Search for people, companies, jobs, news, and advertisements with filters
  - name: Lookup
    description: >-
      Look up detailed information for specific people, companies, jobs, news,
      advertisements, and technologies
  - name: LinkedIn
    description: Look up people and company data via LinkedIn profile URLs
  - name: Redeem
    description: Redeem credits to unlock people contact details (single and batch)
  - name: Channels
    description: Manage outreach channel templates (create, update, delete, list)
  - name: Monitor
    description: Create and manage data monitors with webhooks, statistics, and processing
  - name: Filters
    description: >-
      Retrieve available filter values for search parameters (technologies,
      locations, verticals, etc.)
  - name: API Keys
    description: List and inspect API request logs and usage analytics for API keys
  - name: Insights
    description: Aggregated signal insights for companies (jobs, news, advertisements).
  - name: Export
    description: Bulk data exports (credit-gated).
  - name: Expansion
    description: >-
      Company market-expansion intelligence: signals, stages, markets, and
      exports.
externalDocs:
  description: >-
    The Pubrio API is used to search, preview and enrich Contacts and Accounts.
    Pubrio database provides extensive B2B contacts and sales intelligence data.
  url: https://docs.pubrio.com
paths:
  /companies/news/search:
    post:
      tags:
        - Search
      summary: Search for company news
      description: >-
        Search news about companies. See the [News Search
        guide](/en/developer-guides/search/news-search).
      operationId: companies_search_news
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                locations:
                  $ref: '#/components/schemas/locations'
                company_locations:
                  $ref: '#/components/schemas/company_locations'
                companies:
                  $ref: '#/components/schemas/companies'
                news_search_id:
                  allOf:
                    - $ref: '#/components/schemas/news_search_id'
                  description: >-
                    Return only this one record. Handy for re-fetching a row you
                    stored earlier without paging.
                domains:
                  $ref: '#/components/schemas/domains'
                linkedin_urls:
                  $ref: '#/components/schemas/company_linkedin_urls'
                search_term:
                  $ref: '#/components/schemas/search_term'
                search_terms:
                  type: array
                  items:
                    type: string
                  example:
                    - Trump
                  description: >-
                    Array of keyword strings to filter news articles. Each term
                    is matched against article content. Use `search_term` for a
                    single string or `search_terms` for multiple keywords.
                categories:
                  $ref: '#/components/schemas/news_categories'
                news_gallery_ids:
                  $ref: '#/components/schemas/news_gallery_ids'
                published_dates:
                  $ref: '#/components/schemas/published_dates'
                published_at:
                  $ref: '#/components/schemas/news_published_at_from'
                per_page:
                  $ref: '#/components/schemas/per_page'
                page:
                  $ref: '#/components/schemas/page'
                is_ascending_order:
                  $ref: '#/components/schemas/is_ascending_order'
                news_galleries:
                  type: array
                  items:
                    type: string
                  example:
                    - electronic-commerce
                  description: >-
                    List of `gallery slugs` for filtering news by gallery. To
                    find a slug, call the `news galleries` endpoint under the
                    Filters tab.
                news_languages:
                  type: array
                  items:
                    type: string
                  example:
                    - en
                  description: >-
                    List of `locale_code` values for filtering news by language.
                    To find available codes, call the `news languages` endpoint
                    under the Filters tab.
                is_expansion_signal_available:
                  $ref: '#/components/schemas/is_expansion_signal_available'
                expansion_signal_types:
                  $ref: '#/components/schemas/expansion_signal_types'
                expansion_signal_polarities:
                  $ref: '#/components/schemas/expansion_signal_polarities'
      responses:
        '200':
          description: Successful response containing company news search details.
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    $ref: '#/components/schemas/search_metadata'
                  data:
                    type: object
                    properties:
                      pagination:
                        $ref: '#/components/schemas/search_pagination'
                      news:
                        type: array
                        items:
                          $ref: '#/components/schemas/news_search_result'
              example:
                metadata:
                  profile: null
                  filters:
                    domains:
                      - stripe.com
                    per_page: 25
                    language: en
                  ignored_fields: []
                data:
                  pagination:
                    page: 1
                    per_page: 25
                    total_entries: 351800
                    total_pages: 14072
                    is_timeout: false
                    total_display_pages: 250
                  news:
                    - news_id: 0b0f1c53-7a04-4a46-b5bc-3b17a7c4cfbd
                      news_search_id: 4110b929-17cd-42aa-a159-906ead0c9b56
                      country_codes:
                        - CN
                        - SG
                      company_country_codes:
                        - CN
                        - FR
                      domains:
                        - insead.edu
                        - digitalchina.com
                      companies:
                        - logo_url: >-
                            https://buckets.pubrio.com/company-logo/MjY5OTY5NDJpbnNlYWQuZWR1bGlua2VkaW5fcF9sb2dvMTU=.jpg
                          domain_search_id: dfbe6797-5311-46f9-9518-bf1a7c3d09bc
                          country_code: FR
                          company_name: Insead
                          linkedin_name: insead
                          domain: insead.edu
                        - logo_url: >-
                            https://buckets.pubrio.com/company-logo/NDA2NTQ5NTFkaWdpdGFsY2hpbmEuY29tbGlua2VkaW5fcF9sb2dvMTU=.jpg
                          domain_search_id: e13a9e24-a07d-4630-9b47-fceb778df74e
                          country_code: CN
                          company_name: Digital China
                          linkedin_name: digital-china
                          domain: digitalchina.com
                      news_galleries:
                        - slug: banking-financial-service
                          news_gallery_id: 7c8ec9cc-66c5-4153-82da-9c8f356c6c99
                          name: Banking/Financial Service
                      locations:
                        - Singapore
                        - China
                      last_modified: '2025-06-01T08:15:23.945Z'
                      image_url: null
                      url: http://enold.prnasia.com/p/asia-story-125304015-0.shtml
                      published_at: '2025-06-01T08:00:00.000Z'
                      language: id
                      source: prnasia.com
                      category: launches
                      title: >-
                        Digital China's AI-driven transformation showcased at
                        INSEAD
                      summary: >-
                        Guo Wei, Chairman of Digital China, presented on AI-era
                        corporate management at INSEAD 2025 Asia AI Conference,
                        launching a case study on Digital China's AI
                        transformation journey.
                      news_category_name: Launches
                    - ...
        '400':
          $ref: '#/components/responses/general_error'
        '429':
          $ref: '#/components/responses/rate_limit_error'
        '500':
          $ref: '#/components/responses/server_error'
components:
  schemas:
    locations:
      type: array
      items:
        type: string
      example:
        - US
        - SG
        - CN
      description: >-
        ISO 3166-1 alpha-2 (cca2) is used for filtering locations. Check out
        `location` endpoints under the Filters tab for more information.
    company_locations:
      type: array
      items:
        type: string
      example:
        - US
        - SG
        - CN
      description: >-
        The location of the company headquarters. Check out `location` endpoints
        under the Filters tab for more information.
    companies:
      type: array
      items:
        type: string
        format: uuid
      description: >-
        A list of unique identifiers (domain_search_id) used for company and
        people search operations.
    news_search_id:
      type: string
      format: uuid
      example: 4110b929-17cd-42aa-a159-906ead0c9b56
      description: A unique identifier for the company news search operation.
    domains:
      type: array
      items:
        type: string
      example:
        - pubrio.com
      description: >-
        List of company domains used for company and people search operations.
        If we receive a URL such as `www.pubrio.com` or
        `https://docs.pubrio.com/`, the system will convert it to `pubrio.com`
        for processing.
    company_linkedin_urls:
      type: array
      items:
        type: string
      example:
        - https://www.linkedin.com/company/pubrio
      description: >-
        The fully formed URL of the LinkedIn company profile. URL begin with
        `http` and contain `linkedin.com/company/`
    search_term:
      type: string
      example: pubrio
      description: A string of words over which we want to filter the results.
    news_categories:
      type: array
      items:
        type: string
      example:
        - launches
      description: >-
        List of `category slugs` for searching for specific news categories. To
        find a slug, call the `news categories` endpoint under the Filters tab.
    news_gallery_ids:
      type: array
      items:
        type: string
        format: uuid
      description: >-
        A list of `news_gallery_id` used to search for specific news galleries.
        To find the ID, call the `news galleries` endpoint under the Filters
        tab.
    published_dates:
      type: array
      items:
        type: string
      example:
        - '2025-01-01'
        - '2025-01-10'
      description: >-
        Date range of the published date. The maximum value is the current day.
        Day boundaries follow your workspace timezone.
    news_published_at_from:
      type: string
      format: date-time
      example: '2026-09-01T00:00:00Z'
      description: >-
        Published at or after this instant (UTC). Date or ISO timestamp.
        `published_dates` is the closed-window form and uses your workspace
        timezone.
    per_page:
      type: integer
      example: 25
      default: 25
      maximum: 25
      description: >-
        Records per page. Defaults to 25, which is also the ceiling on most
        plans — the limit is your subscription's `max_search_per_page`, returned
        by [Profile](/en/api-reference/endpoint/profile/profile). Exceeding it
        returns **HTTP 416** with code `41676` (or `41613` on company and people
        search), not a clamped result set.
    page:
      type: integer
      example: 1
      default: 1
      description: >-
        Page number, starting at 1. The ceiling is your subscription's
        `max_search_page` (`max_company_search_page` for company search),
        returned by [Profile](/en/api-reference/endpoint/profile/profile).
        Exceeding it returns **HTTP 416**.
    is_ascending_order:
      type: boolean
      default: false
      example: false
      description: >-
        Sort direction. Results are returned newest-first by default; set `true`
        for oldest-first. There is no `sort_by` on this endpoint — the sort key
        is fixed and stated in the endpoint description.
    is_expansion_signal_available:
      type: boolean
      description: >-
        When `true`, attaches the resolved expansion signals
        (`expansion_signals`) to each news item and enables the
        `expansion_signal_types` / `expansion_signal_polarities` filters. Leave
        unset for the fastest search — the expansion join is only added when
        this flag is on.
    expansion_signal_types:
      type: array
      items:
        type: string
        enum:
          - AD
          - AUDIENCE
          - DNS
          - ENTITY
          - EVENT
          - EVENT_PLUS
          - EXEC
          - HIRE
          - INFRA
          - IP
          - NEWS
          - OFFICE
          - PARTNER
          - PRODUCT
          - REG
          - SCALE
          - TECH
      example:
        - HIRE
        - PARTNER
      description: >-
        Return only news that produced an expansion signal of one of these types
        (uppercase slugs). Requires `is_expansion_signal_available: true`.
        Unknown slugs are ignored.
    expansion_signal_polarities:
      type: array
      items:
        type: string
        enum:
          - expansion
          - contraction_leading
          - contraction_confirming
          - contraction_lagging
      example:
        - expansion
      description: >-
        Return only news whose expansion signal carries one of these polarities.
        Requires `is_expansion_signal_available: true`. Combined with
        `expansion_signal_types` as AND.
    search_metadata:
      type: object
      description: Request context.
      properties:
        profile:
          type: object
          nullable: true
          description: >-
            Credit block (`credit`, `topup_credit`, `total_credit_cost`) when
            credit accounting is requested; `null` on plain API-key traffic.
        filters:
          type: object
          description: >-
            Echo of the request body as the endpoint applied it, including
            defaults such as `per_page` and `language`.
        ignored_fields:
          type: array
          items:
            type: string
          description: >-
            Body keys the endpoint did not recognise and dropped. Empty means
            every key applied — a misspelled filter widens the search instead of
            failing.
    search_pagination:
      type: object
      description: Pagination for the result set.
      properties:
        page:
          type: integer
          description: Current page number.
        per_page:
          type: integer
          description: Records per page.
        total_entries:
          type: integer
          description: >-
            Total matching records. On broad, company-agnostic searches this is
            an estimate.
        total_pages:
          type: integer
          description: '`total_entries` divided by `per_page`.'
        total_display_pages:
          type: integer
          description: >-
            Pages you can actually request, capped by your plan's
            `max_search_page`.
        is_timeout:
          type: boolean
          description: >-
            `true` when the count query timed out and `total_entries` is a
            partial estimate.
    news_search_result:
      type: object
      description: One news article.
      properties:
        news_id:
          type: string
          format: uuid
          description: Article identifier.
        news_search_id:
          type: string
          format: uuid
          description: Search-record identifier. Pass it to News Lookup.
        title:
          type: string
          description: Headline.
        summary:
          type: string
          description: Short summary of the article.
          nullable: true
        url:
          type: string
          description: Link to the article.
        source:
          type: string
          description: Publisher domain.
          nullable: true
        image_url:
          type: string
          description: Lead image, when the article has one.
          nullable: true
        language:
          type: string
          description: >-
            ISO 639-1 language code of the article. Same vocabulary as the
            `news_languages` filter.
          nullable: true
        published_at:
          type: string
          format: date-time
          description: >-
            Publication time. This is the default sort key (undated articles
            sort last).
          nullable: true
        last_modified:
          type: string
          format: date-time
          description: When the record was last updated.
        category:
          type: string
          description: >-
            News category slug. Same vocabulary as the `categories` filter and
            the News Categories endpoint.
          nullable: true
        news_category_name:
          type: string
          description: Human-readable category name, localised to `language`.
          nullable: true
        news_galleries:
          type: array
          nullable: true
          items:
            type: object
            properties:
              news_gallery_id:
                type: string
                format: uuid
              slug:
                type: string
              name:
                type: string
          description: Galleries the article belongs to; `null` when none.
        country_codes:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            Countries the article is about (ISO 3166-1 alpha-2); `null` when not
            detected. Same vocabulary as the `locations` filter.
        company_country_codes:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            Headquarters countries of the companies mentioned. Same vocabulary
            as the `company_locations` filter.
        locations:
          type: array
          nullable: true
          items:
            type: string
          description: Place names mentioned in the article; `null` when none.
        domains:
          type: array
          items:
            type: string
          description: Domains of every company the article mentions.
        companies:
          type: array
          items:
            $ref: '#/components/schemas/search_result_company'
          description: Every company the article mentions, in the same order as `domains`.
        expansion_signals:
          type: array
          items:
            type: object
            properties:
              signal_type_slug:
                type: string
                description: Signal type, e.g. `HIRE`, `PARTNER`, `PRODUCT`.
              signal_subtype_slug:
                type: string
                description: Signal subtype, when the type has one.
                nullable: true
              signal_strength_slug:
                type: string
                description: 'Signal strength: `low`, `medium`, `high`, `very_high`.'
              polarity:
                type: string
                description: >-
                  `expansion`, `contraction_leading`, `contraction_confirming`
                  or `contraction_lagging`.
              country_code:
                type: string
                description: Market the signal points at.
                nullable: true
              domain_search_id:
                type: string
                format: uuid
                description: Company the signal belongs to.
              event_date:
                type: string
                format: date-time
                description: When the signal occurred.
          description: >-
            Only when `is_expansion_signal_available: true`: the expansion
            signals this article produced. Empty array when none.
    search_result_company:
      type: object
      description: The company the record is linked to.
      properties:
        domain_search_id:
          type: string
          format: uuid
          description: >-
            Pubrio company identifier. Pass it to `companies` on any search, or
            to Company Lookup.
        company_name:
          type: string
          description: Company name.
        linkedin_name:
          type: string
          nullable: true
          description: LinkedIn company slug (the part after `linkedin.com/company/`).
        country_code:
          type: string
          nullable: true
          description: ISO 3166-1 alpha-2 code of the company headquarters.
        company_url:
          type: string
          nullable: true
          description: Company website URL.
        domain:
          type: string
          description: Company domain, normalised (`stripe.com`).
        logo_url:
          type: string
          nullable: true
          description: Company logo URL.
  responses:
    general_error:
      description: >-
        Bad request. The request was malformed or contained invalid parameters.
        Check the error code and message for details.
      content:
        application/json:
          schema:
            required:
              - code
              - message
              - details
            type: object
            properties:
              code:
                example: 40001
                type: integer
              message:
                example: >-
                  Errors and codes will vary depending on the scenario, please
                  see the documentation for information.
                type: string
              details:
                type: object
    rate_limit_error:
      description: >-
        Rate limit exceeded. Too many requests were made in a given time period.
        Retry after the rate limit window resets.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: Request rate limit exceeded. Please wait and try again later.
                type: string
    server_error:
      description: >-
        Internal server error. An unexpected error occurred on the server.
        Contact support if the error persists.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: An unexpected error occurred on the server.
                type: string
  securitySchemes:
    pubrio_api_key:
      type: apiKey
      name: pubrio-api-key
      description: >-
        A unique API token that represents the actions you perform through the
        API and the corresponding permissions and operations. You can create it
        through the [Settings](https://dashboard.pubrio.com/#/settings/)
        section.
      in: header

````