Monitors

Standing watches over your lists or the market that emit signals — occurrences like a changed answer or a detected funding round — over time.

A monitor is a standing watch that emits signals over time. A signal here is an occurrence — something that happened — not a research answer (those are enrichments).

Two kinds, one resource:

  • Watch monitors re-check the entities on one of your lists with an enrichment template and emit a result_changed signal when an answer changes. Silent no-change runs emit nothing.
  • Discovery monitors watch the market for occurrences of a type — funding_raised, job_posted, social_posted, investment_made, ipo_announced, ipo_stage_changed, repo_engaged, ipo_rumoured, tender_published — matching your filters or prompt.

Public tenders

The tender_published monitor finds public procurement notices that you can still bid on. It reads TED (EU), SAM.gov (US federal) and UK Contracts Finder.

Availability: this monitor is not available in production yet. Until Saber enables it, a request to create a tender_published monitor returns 422.

Scope. The monitor finds only software, AI and automation work. It narrows the notices two times:

  1. It reads only these procurement codes: CPV divisions 72, 48, 30 and 73 from TED and UK Contracts Finder, and NAICS codes 541511, 541512, 541519 and 513210 from SAM.gov.
  2. A classifier examines each notice. The monitor delivers a notice only if the classifier finds software, AI or automation work in it.

Your cpvCodes and naicsCodes filters narrow this scope. They cannot make it wider. For example, a monitor with cpvCodes: ["45"] (construction work) and sources: ["ted", "uk_contracts_finder"] gets only the notices that have an in-scope code and also a construction code. A notice can have more than one CPV code, and one matching code is sufficient. Without sources, the same monitor also gets the SAM.gov notices in scope, because cpvCodes does not apply to SAM.gov.

Each list applies only to the portals that use that code system. cpvCodes narrows TED and UK Contracts Finder. naicsCodes narrows SAM.gov. A list does not remove the notices of the other portals: a monitor with naicsCodes only still gets EU and UK notices. To read fewer portals, set sources.

The monitor emits only open opportunities. It does not emit an award notice, because a supplier has already won that contract. It does not emit a notice after its submission deadline.

Filter by procurement code, not by keyword. A notice description is published in the language of the buyer, and it is not translated. A keyword filter therefore finds the English notices and misses the others. Procurement codes have no language.

FilterEffect
sourcesOne or more of ted, sam_gov, uk_contracts_finder.
cpvCodesEU and UK codes, matched as a prefix. 72 selects all IT services. Applied only to TED and UK Contracts Finder notices.
naicsCodesUS codes, matched as a prefix. Applied only to SAM.gov notices.
buyerCountriesISO 3166-1 alpha-2 country codes.
minValueEurA minimum contract value in EUR. The monitor compares only values that a notice states in EUR.
deadlineWithinDaysOnly notices that close in this number of days.
categoriesOne or more of software, ai, automation.
promptFilterYour own description of the work you want.

A filter you do not set does not narrow the results.

The monitor reads the last two days of notices. This window is fixed. A tender is a live opportunity with a deadline, and an older notice is one your team has already seen or can no longer bid on.

Two rules keep opportunities in your feed:

  • A notice that states no contract value, or states it in a different currency, passes minValueEur. Many buyers publish no budget, and Saber does not convert currencies.
  • A notice that states no deadline passes deadlineWithinDays.

Each signal payload contains an English summary, so you can read a notice in any language.

Working with monitors

Create one with POST /v1/monitors (checks: [{kind, …}] — exactly one check today), manage it with PATCH/DELETE and pause/resume/trigger, and read what it found on GET /v1/monitors/{monitorId}/signals: the occurrence envelope carries type, occurredAt, observedAt, entity, and a type-specific payload. Deliver occurrences as they happen with a webhook.

Pricing

Configuration, lifecycle, and reads are free. Each signal a monitor emits is charged under the monitor-signals feature (see /pricing for the current rate) — a watch run that detects no change emits nothing and costs nothing.

Migrating from subscriptions

Monitors replace two legacy families — signal subscriptions (/v1/companies/signals/subscriptions/*, /v1/contacts/signals/subscriptions/*) and market-signal subscriptions (/v1/market-signals/*). Both keep working at their old prices until their announced sunset; their responses carry Deprecation and successor Link headers.

LegacySuccessor
Create/list/get/update a subscription/v1/monitors (?kind=watch|discovery filters the list)
start / stopresume / pause
triggertrigger
Subscription /logs, market /signalsGET /v1/monitors/{monitorId}/signals

A subscription created through /v1/monitors bills per emitted signal; a pre-existing legacy subscription keeps its legacy pricing until you delete and re-create it on the new surface.

On this page