Signals

Create Fundraising signal

Identify companies that recently raised capital and reach decision-makers at funded companies while they're actively deploying that capital.

Input: your notification webhook (webhookUrl), along with filtering rules in config: funding round types (investmentTypes — e.g. seed, series_a, series_b), funding amount range (amountMin, amountMax in USD), how recent (announcedPeriod: 24h, 7d, 30d, 60d, 90d, 12m), company geography and size (hqLocations/excludedHqLocations, companySizeFilters), industries to include/exclude (industryFilters/excludedIndustryFilters), investor names to include/exclude (investorInclude/investorExclude), and optional persona targeting (enablePersonaTargeting, targetPersonas). You can also enrich results with email, phone, or technology detection (getEmails, getPhones, detectTechnologies).

Output: each funding round matching your filters is pushed to webhookUrl as it is detected, with full deal data (funding stage, amount in both original and USD currency, investor names, announcement date, an AI-generated deal summary, a use-of-funds excerpt, and the source article URL). When persona targeting is enabled, a decision-maker at the funded company is resolved and delivered in contact; otherwise contact is an empty string ("") — always present, never null.

Use cases:

  • Fresh-budget outreach — newly-funded companies have capital to deploy; time your pitch to the raise.
  • Scale-enablement — pitch the tools that support the growth the round is meant to fund.
post/api/v1/signals/fundraising

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
  • 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

duplicateHandlingstring nullable

Duplicate lead handling: 'refuse' (never accept), 'allow' (always accept), or 'Xd' (accept a duplicate after X days, e.g. '7d'). Optional — defaults to 'allow', so a contact who triggers this signal a second time is delivered a second time.

statusstring nullable

Initial status (default: draft). Accepts draft, active, or paused. If active, mandatory config fields are validated.

Example request

{
  "config": {
    "amountMax": 50000000,
    "amountMin": 1000000,
    "announcedPeriod": "30d",
    "companySizeFilters": [
      "11-50",
      "51-200"
    ],
    "customPersonaTitles": [
      "Chief Growth Officer"
    ],
    "detectTechnologies": false,
    "enablePersonaTargeting": true,
    "getEmails": true,
    "getHomepageContent": false,
    "getPhones": false,
    "getSireneData": false,
    "hqLocations": [
      "France",
      "Germany"
    ],
    "industryFilters": [
      "Software Development",
      "Financial Services"
    ],
    "investmentTypes": [
      "seed",
      "series_a",
      "series_b"
    ],
    "investorExclude": [],
    "investorInclude": [
      "Sequoia",
      "a16z"
    ],
    "personaExportMode": "top_ranked",
    "personaLocations": [
      "France"
    ],
    "targetPersonas": [
      "CEO",
      "Finance Director"
    ]
  },
  "dailyLeadLimit": 50,
  "name": "Series A+ in France",
  "status": "active",
  "webhookUrl": "https://your-server.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.