Signals

Create Fundraising Watchlist signal

Get told the day a company on YOUR list raises. Upload the accounts you care about and every funding round they announce becomes a lead, with the round type, amount and investors attached.

Where the Fundraising signal DISCOVERS companies from filters, this one starts from your list: your target accounts, your customers, or your competitors. There is deliberately no company-size, location or industry filter: you named the companies, which answers that far more precisely than an ICP could, and re-filtering your own list could only drop accounts you asked us to watch.

Input: companies (names, domains or LinkedIn company URLs), and the same round filters as the open signal - investmentTypes, amountMin / amountMax (USD), announcedPeriod (default 30d), investorInclude / investorExclude - plus optional persona targeting (enablePersonaTargeting, targetPersonas, maxLeadsPerCompany).

Output: each qualifying round is delivered to your webhookUrl. With persona targeting off you get one company-level lead per round (contact empty); with it on you get decision-makers as person-leads. A round is delivered ONCE.

companies is consumed into the watchlist, so it is NOT echoed back in the config of this or any later response - the watched list has exactly one home. Read it with GET /api/v1/watchlists/{signalId}/companies, and add or remove companies with POST / DELETE on the same path.

Use cases:

  • Time the raise, not the market - you already know which accounts you want; this tells you the week they close a round and the budget conversation is open.
  • Re-open a lost deal - a prospect who said no on price is a different buyer the day they raise a Series B, and you hear it before the press cycle does.
  • Prioritise the pipeline - feed the round type and amount into your scoring so reps work the accounts whose spending power just changed.
post/api/v1/signals/fundraising-watchlist

Request

  • Base URL: https://api.rodz.io (the document declares no server; this is the origin it was published from)
  • URL: https://api.rodz.io/api/v1/signals/fundraising-watchlist
  • Auth: HTTP bearer

Request body

namestring required

Name for this signal

webhookUrlstring nullable

Where each lead is POSTed as it is produced. Optional (since 2026-09-23): omit it when you read leads with GET /api/v1/signals/{signalId}/leads or route them to a connected CRM or sequencer with destinations on PATCH /api/v1/signals/{signalId}.

dailyLeadLimitinteger

Max leads per day

statusstring nullable

Initial status (default: draft).

Example request

{
  "config": {
    "amountMin": 1000000,
    "announcedPeriod": "30d",
    "companies": [
      "Doctolib",
      {
        "domain": "payfit.com",
        "linkedinUrl": "https://www.linkedin.com/company/payfit",
        "name": "PayFit"
      },
      "lemlist"
    ],
    "enablePersonaTargeting": true,
    "getEmails": true,
    "investmentTypes": [
      "series_a",
      "series_b",
      "series_c"
    ],
    "targetPersonas": [
      "Head of Sales"
    ]
  },
  "dailyLeadLimit": 30,
  "name": "Funding at my target accounts",
  "status": "active",
  "webhookUrl": "https://example.com/webhooks/rodz"
}

Response

Signal created

idstring required
namestring required
statusstring required
signalTypeIdstring required
webhookUrlstring nullable
configobject nullable

Signal-specific configuration

dailyLeadLimitinteger required
leadsTodayinteger required
leadsTotalinteger required
duplicateHandlingstring required

Duplicate lead handling: 'refuse' (never accept), 'allow' (always accept), or 'Xd' (accept after X days)

createdAtstring required
updatedAtstring required
lastLeadAtstring nullable
appliedobject

Settings this signal runs with where they differ from config, keyed like config. {} when every stored setting is applied as stored. A null value means the stored field is not used by this signal. Every entry is explained by a warning naming the same field.

Example response

{
  "applied": {
    "allowUnknownCompanySize": false,
    "maxJobAgeDays": 180
  },
  "config": {
    "companySizeFilters": [
      "201-500",
      "501-1000"
    ],
    "getEmails": true,
    "jobTitles": [
      "CTO"
    ],
    "locations": [
      "France"
    ],
    "maxJobAgeDays": 90
  },
  "createdAt": "2026-01-15T10:30:00Z",
  "dailyLeadLimit": 50,
  "duplicateHandling": "refuse",
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "lastLeadAt": "2026-03-15T14:22:00Z",
  "leadsToday": 3,
  "leadsTotal": 127,
  "name": "CTOs changing jobs in France",
  "signalTypeId": "job_changes",
  "status": "active",
  "updatedAt": "2026-03-16T08:00:00Z",
  "warnings": [
    {
      "code": "VALUE_BELOW_MINIMUM",
      "field": "maxJobAgeDays",
      "message": "`maxJobAgeDays` is 90; this signal applies 180. Job changes are delivered up to 180 days after the start date, and a shorter window is raised to that minimum.",
      "severity": "info",
      "values": [
        "90"
      ]
    }
  ],
  "webhookUrl": "https://your-server.com/webhooks/rodz"
}

Changes

No recorded changes to this operation across all 1 revision of this API.