Skip to main content
You are

Build signals your users cannot find anywhere else into your product.

Signals ready to ingest: one stable JSON schema, delivered by webhook, API or MCP. Deduplicated, enriched with the contact and the company, under your brand.

Signals detected Examples

20,399,211 signals identified in the last 30 days

Click a signal, then a destination.

  • Connects with a competitor's sales team SaaS vendor · 180 employees Example
  • Reacts to a competitor's post Consulting firm · 60 employees Example
  • Connects with a competitor's support team Fintech · 300 employees Example
Qualified leads

146,230 qualified leads delivered in the last 30 days

SaaS vendor · 180 employees

Connects with a competitor's sales team

Decision-maker : Head of Sales Verified email
Webhook HubSpot lemlist La Growth Machine

POST to your webhook

{ "signal": { "type": "competitor_relationship_monitoring" },
  "contact": { "title": "Head of Sales", "email": "…" },
  "company": { "industry": "SaaS vendor", "employee_count": 180 } }

What you receive

One lead, one JSON. Always the same schema.

This is exactly what your webhook receives for a prospect who just connected with a competitor's sales team. Fictional values.

Webhook received (excerpt)

POST https://your-platform.com/webhooks/rodz
Content-Type: application/json
X-Webhook-Id: 7c1e4b2a-5d3f-4a8e-9b6c-2f0d1e3a4b5c
X-Webhook-Timestamp: 1759482720
X-Webhook-Signature: 3b9f0c6e2d1a…

{
  "signal": {
    "id": "d4f5a6b7-c8d9-4e0f-a1b2-c3d4e5f6a7b8",
    "name": "CRM competitors, France",
    "type": "competitor_relationship_monitoring",
    "last_signal_date": "2026-10-03",
    "tracked_company": "https://www.linkedin.com/company/example-rival/",
    "tracked_contact": "https://www.linkedin.com/in/example-sales-rep/"
  },
  "contact": {
    "lead_id": "7c1e4b2a-5d3f-4a8e-9b6c-2f0d1e3a4b5c",
    "created_at": "2026-10-03T09:12:00+00:00",
    "first_name": "Camille",
    "last_name": "Exemple",
    "title": "Head of Sales",
    "email": "camille@example-saas.com",
    "phone": "",
    "country_code": "FR",
    "linkedin_profile_url": "https://www.linkedin.com/in/example-profile/",
    "matched_persona": "Sales Director"
  },
  "company": {
    "name": "Example SaaS",
    "website": "https://example-saas.com",
    "industry": "Software Development",
    "employee_count": 180,
    "employee_range": "51-200",
    "hq_country_code": "FR",
    "tech_stack": ["HubSpot", "Segment"]
  }
}
X-Webhook-Id
Stable id, the same on every retry: your deduplication key.
X-Webhook-Signature
HMAC-SHA256 of the body, checked with your secret.
signal.type
The signal type, one of the 46 in the catalogue (GET /api/v1/signal-types).
signal.tracked_company · tracked_contact
The watched competitor, and the person on its team the prospect just connected with.
contact.*
The person: title, email when enrichment is on, LinkedIn profile, matched persona.
company.*
Their company: industry, headcount, country, detected tools.

Three nested objects, signal, contact and company. Every field is always present: an unknown value is "", never null, so your parser does not break.

See every schema →

Integration

Three calls, and it's live

No data project: one key, one signal per user, one endpoint that receives.

  1. 1

    Create an API key

    In Integrations → API, once your partner access is open.

  2. 2

    Create a signal with your webhookUrl

    One POST carries your user's filters (industry, size, location, target roles) and the address to deliver to.

  3. 3

    Receive the leads

    test-webhook validates your receiver. Then every lead passes three filters (the event, the company, the person), gets the right contact and arrives signed as soon as it is qualified.

Create a signal for one of your users

curl -X POST https://api.rodz.io/api/v1/signals/competitor-connections \
  -H "Authorization: Bearer $RODZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "CRM competitors, France",
    "webhookUrl": "https://your-platform.com/webhooks/rodz",
    "dailyLeadLimit": 50,
    "config": {
      "linkedinCompanyUrls": [
        "https://www.linkedin.com/company/example-rival/"
      ],
      "locations": ["France"],
      "getEmails": true
    }
  }'

Already integrated by

  • lemlist
  • Cargo
  • Bulldozer
  • Kalent
  • The Sales Engine
  • Overloop
  • Sinky
  • Extrovert

Software vendors, CRMs and data platforms

Add signals your competitors don't have to your product

Your users get leads they can't find anywhere else. You offer them under your brand, at the price you set.

  • One API, webhooks and an MCP server

    Every lead arrives as JSON the moment it is qualified, with the contact and the company.

  • Your brand, your price

    The signals carry your brand. You set the resale price and keep the margin.

  • No commitment

    No minimum duration or volume. A sample runs on your own targets before you start.

Are you an agency or a sales team?

The same signals, delivered into your tools.

They trust us

More than 25,000 professionals use Rodz signals, directly or through our partners.

  • lemlist
  • workflows.io
  • Sortlist
  • Cargo
  • Extrovert
  • Bulldozer
  • HubSpot
  • Aircall
  • OpenClassrooms
  • 3h18
  • Mooncard
  • Luzmo
  • Plus Que Pro
  • Brique House
  • JDC
  • JobTeaser

What teams get out of it

One published case study and two verified reviews on G2.

Pricing

A price per credit that drops with volume

  • A lead costs 0.5 to 12 credits depending on the signal
  • Credits never expire, no subscription
  • Never billed when the lead does not match your filters

A credit

€0.10 down to €0.05

depending on the volume you buy

Calculate your price →

FAQ

What people ask before they start

Yes. The signals reach your product by API, webhook or MCP server, under your brand, and you set your price. No time or volume commitment.
It is not billed. You only pay for leads that match your criteria exactly; a lead our checks reject is credited back.
No. No subscription, no minimum volume, and credits never expire.
0.5 to 12 credits depending on the signal. A credit goes from €0.10 down to €0.05 with the volume you buy. The details are on the pricing page.
We detect signals in real time. Every lead is delivered as soon as it's qualified, never batched the next day. The closer the outreach follows the signal, the more likely a reply.
Into your product, by webhook, API or MCP server. Every lead arrives as signed JSON, in the schema shown above.
Yes. For a partner project, we run a sample on your own targets.

Offer your users signals they don't have elsewhere

Let's talk about your integration, or see the partner offer first.