@signaliz/sdk 1.0.66 → 1.0.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -49
- package/dist/{chunk-ZXSNNBID.mjs → chunk-T5GL6QM7.mjs} +677 -288
- package/dist/index.d.mts +205 -176
- package/dist/index.d.ts +205 -176
- package/dist/index.js +677 -288
- package/dist/index.mjs +1 -1
- package/dist/mcp-config.js +677 -288
- package/dist/mcp-config.mjs +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# @signaliz/sdk
|
|
2
2
|
|
|
3
|
-
Typed JavaScript/TypeScript access to all five core products in Signaliz
|
|
3
|
+
Typed JavaScript/TypeScript access to all five core products in Signaliz, plus
|
|
4
|
+
Signal Awareness and Signaliz Flow through the same public contract.
|
|
4
5
|
|
|
5
6
|
```bash
|
|
6
7
|
npm install @signaliz/sdk
|
|
@@ -13,6 +14,10 @@ Production REST endpoints:
|
|
|
13
14
|
- `https://api.signaliz.com/functions/v1/api/v1/company-signals`
|
|
14
15
|
- `https://api.signaliz.com/functions/v1/api/v1/signal-to-copy`
|
|
15
16
|
- `https://api.signaliz.com/functions/v1/api/v1/signals`
|
|
17
|
+
- `https://api.signaliz.com/functions/v1/api/v1/signal-awareness`
|
|
18
|
+
- `https://api.signaliz.com/functions/v1/api/v1/flow`
|
|
19
|
+
|
|
20
|
+
The same request and response schemas are available under `/api/v2/`.
|
|
16
21
|
|
|
17
22
|
```ts
|
|
18
23
|
import { Signaliz } from '@signaliz/sdk';
|
|
@@ -35,8 +40,6 @@ console.log(plan.inputCount, plan.uniqueFreshInputCount, plan.inputDuplicatesSup
|
|
|
35
40
|
const found = await signaliz.findEmail({
|
|
36
41
|
companyDomain: 'example.com',
|
|
37
42
|
fullName: 'Jane Doe',
|
|
38
|
-
// Optional: bypass cached email and verification data for a fresh-provider run.
|
|
39
|
-
skipCache: true,
|
|
40
43
|
});
|
|
41
44
|
|
|
42
45
|
// An HTTPS LinkedIn person profile URL (/in/<slug>) is also sufficient on its own.
|
|
@@ -45,8 +48,6 @@ const foundFromLinkedIn = await signaliz.findEmail({
|
|
|
45
48
|
});
|
|
46
49
|
|
|
47
50
|
const verified = await signaliz.verifyEmail(found.email!, {
|
|
48
|
-
// Optional: bypass cached verification proof for a fresh-provider check.
|
|
49
|
-
skipCache: true,
|
|
50
51
|
});
|
|
51
52
|
|
|
52
53
|
// Syntax failures are terminal local results, with no HTTP or provider call.
|
|
@@ -56,25 +57,27 @@ console.log(malformed.success, malformed.isMalformed, malformed.verificationVerd
|
|
|
56
57
|
// The SDK waits for long checks by default. For an agent handoff, return early
|
|
57
58
|
// and resume the exact provider run later without duplicate spend.
|
|
58
59
|
const queuedVerification = await signaliz.verifyEmail('jane@example.com', {
|
|
59
|
-
skipCache: true,
|
|
60
60
|
waitForResult: false,
|
|
61
61
|
});
|
|
62
62
|
const resumedVerification = await signaliz.verifyEmail('jane@example.com', {
|
|
63
63
|
verificationRunId: queuedVerification.verificationRunId,
|
|
64
64
|
});
|
|
65
65
|
|
|
66
|
-
// Recovery
|
|
67
|
-
|
|
68
|
-
console.log(resumedVerification.billingMetadata?.result_returned_from); // run_recovery
|
|
69
|
-
console.log(resumedVerification.historicalBillingMetadata?.result_returned_from);
|
|
66
|
+
// Recovery reuses the original request and its public credit receipt.
|
|
67
|
+
console.log(resumedVerification.creditsUsed, resumedVerification.billingReplayed);
|
|
70
68
|
|
|
71
69
|
const signals = await signaliz.enrichCompanySignals({
|
|
72
70
|
companyDomain: 'example.com',
|
|
73
71
|
researchPrompt: 'expansion priorities',
|
|
74
72
|
});
|
|
75
|
-
//
|
|
76
|
-
console.log(
|
|
77
|
-
|
|
73
|
+
// Signal rows expose only the customer-facing signal fields.
|
|
74
|
+
console.log(
|
|
75
|
+
signals.signals[0].signal_type,
|
|
76
|
+
signals.signals[0].source,
|
|
77
|
+
signals.signals[0].date,
|
|
78
|
+
signals.signals[0].company_name,
|
|
79
|
+
signals.signals[0].domain,
|
|
80
|
+
);
|
|
78
81
|
|
|
79
82
|
// Query-first discovery returns distinct companies with dated source evidence.
|
|
80
83
|
// The first response is usually queued; resume only the returned run ID.
|
|
@@ -92,8 +95,7 @@ const painSignalDiscovery = await signaliz.discoverSignals({
|
|
|
92
95
|
const completedDiscovery = signalDiscovery.signalSearchRunId
|
|
93
96
|
? await signaliz.discoverSignals({ signalSearchRunId: signalDiscovery.signalSearchRunId })
|
|
94
97
|
: signalDiscovery;
|
|
95
|
-
console.log(completedDiscovery.signals[0]?.
|
|
96
|
-
console.log(completedDiscovery.costGuardrail?.costPerQualifiedSignalUsd);
|
|
98
|
+
console.log(completedDiscovery.signals[0]?.domain);
|
|
97
99
|
|
|
98
100
|
const copy = await signaliz.signalToCopy({
|
|
99
101
|
companyDomain: 'example.com',
|
|
@@ -101,11 +103,38 @@ const copy = await signaliz.signalToCopy({
|
|
|
101
103
|
title: 'VP Sales',
|
|
102
104
|
campaignOffer: 'pipeline intelligence',
|
|
103
105
|
researchPrompt: 'expansion priorities',
|
|
104
|
-
// Cache-first and shallow by default; opt into either behavior explicitly.
|
|
105
|
-
skipCache: false,
|
|
106
106
|
enableDeepSearch: false,
|
|
107
107
|
});
|
|
108
108
|
|
|
109
|
+
// Reuse the completed Signals First snapshot instead of rediscovering it.
|
|
110
|
+
const copyFromSignalRun = await signaliz.signalToCopy({
|
|
111
|
+
companyDomain: 'example.com',
|
|
112
|
+
personName: 'Jane Doe',
|
|
113
|
+
title: 'VP Sales',
|
|
114
|
+
campaignOffer: 'pipeline intelligence',
|
|
115
|
+
signalSearchRunId: completedDiscovery.signalSearchRunId,
|
|
116
|
+
});
|
|
117
|
+
// The copy result reuses the completed snapshot without rediscovery.
|
|
118
|
+
|
|
119
|
+
const awareness = await signaliz.signalAwareness({
|
|
120
|
+
action: 'list_signals',
|
|
121
|
+
monitorId: 'monitor-uuid',
|
|
122
|
+
});
|
|
123
|
+
console.log(
|
|
124
|
+
awareness.signals?.[0].signal_type,
|
|
125
|
+
awareness.signals?.[0].source,
|
|
126
|
+
awareness.signals?.[0].date,
|
|
127
|
+
awareness.signals?.[0].company_name,
|
|
128
|
+
awareness.signals?.[0].domain,
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
// Flow uses the same versioned REST gateway as every other SDK capability.
|
|
132
|
+
const flow = await signaliz.startFlow({
|
|
133
|
+
signalQuery: 'companies with recent hiring',
|
|
134
|
+
campaignOffer: 'pipeline intelligence',
|
|
135
|
+
});
|
|
136
|
+
const flowStatus = await signaliz.getFlow(flow.runId);
|
|
137
|
+
|
|
109
138
|
// Company Signals and Signal to Copy are hard synchronous contracts: these
|
|
110
139
|
// methods return complete data, an explicit success:false result, or throw a
|
|
111
140
|
// non-2xx terminal error in this same call.
|
|
@@ -189,49 +218,47 @@ Company/Copy submissions preserve every input row and its index so the server's
|
|
|
189
218
|
idempotency identity remains stable across REST, MCP, SDK, and CLI recovery.
|
|
190
219
|
Set `compactDuplicates: true` to return repeated successful rows as
|
|
191
220
|
`duplicateOf` references; the default remains expanded for compatibility.
|
|
192
|
-
Signal to Copy durable jobs
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
split explicitly fresh requests into batches of at most 25.
|
|
221
|
+
Signal to Copy durable jobs complete missing company-signal research before
|
|
222
|
+
generating copy. They accept uniform `enableDeepSearch`
|
|
223
|
+
controls for the full job. Rows still return `SIGNAL_DATA_REQUIRED` when
|
|
224
|
+
research completes without qualifying evidence.
|
|
197
225
|
Signal to Copy also shares company research across copy recipients.
|
|
226
|
+
Single calls and synchronous batches of at most 25 may instead pass
|
|
227
|
+
`signalSearchRunId`, `factId`, or `eventId` to reuse canonical signal evidence.
|
|
228
|
+
Durable batches of 26-5,000 reject these references rather than silently
|
|
229
|
+
starting new research.
|
|
198
230
|
|
|
199
231
|
Signals Everything is query-first rather than a row batch. It defaults to 100
|
|
200
|
-
distinct companies and supports up to 1,000. Every returned signal contains
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
identity-resolution cost, receipt source, and fallback-provider request count;
|
|
204
|
-
Signaliz returns signals only when cost stays strictly below $0.01 per qualified
|
|
205
|
-
company. A request is a ceiling, not a promise: it can return fewer results
|
|
232
|
+
distinct companies and supports up to 1,000. Every returned signal row contains
|
|
233
|
+
only a signal type, verified source URL, event date, company name, and domain.
|
|
234
|
+
A request is a ceiling, not a promise: it can return fewer results
|
|
206
235
|
when public evidence cannot verify both a date and company identity. It is
|
|
207
236
|
included on Builder, Team, and Agency plans and can be resumed with
|
|
208
|
-
`signalSearchRunId
|
|
237
|
+
`signalSearchRunId`. Pass `icpContext` to
|
|
209
238
|
ground an open-ended request such as “companies showing signals they need our
|
|
210
239
|
product” in the user's target market.
|
|
211
240
|
|
|
212
|
-
Company Signal Enrichment
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
241
|
+
Company Signal Enrichment uses one fixed provider policy: cache first, one
|
|
242
|
+
type-agnostic Parallel Advanced search, and at most one Extract of a
|
|
243
|
+
first-party multi-event hub. Deterministic code enforces company identity,
|
|
244
|
+
retrieved URLs, source quality, content-proven dates, copied evidence,
|
|
245
|
+
lookback, and event deduplication before returning the newest ten events. It
|
|
246
|
+
does not expose provider, model, prompt, lookback, signal-type, cache, or
|
|
247
|
+
target-count controls.
|
|
216
248
|
Signal to Copy AI returns three
|
|
217
249
|
complete, evidence-backed email variations when supported signals are available.
|
|
218
|
-
Signal to Copy
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
workspace signal data first even when Company Signals is set to No cache.
|
|
228
|
-
`lookbackDays` remains a hard evidence-age bound for both
|
|
229
|
-
cached and fresh Company Signals and Signal to Copy results.
|
|
250
|
+
Signal to Copy defaults `enableDeepSearch` to `false` so it normally finishes
|
|
251
|
+
within an agent turn; enable it only when deeper research is required.
|
|
252
|
+
Every core request uses the authenticated workspace. Find Email costs 1 credit
|
|
253
|
+
per returned result and Verify Email costs 0.02 credits per returned terminal
|
|
254
|
+
result on every plan. Signaliz automatically reuses eligible evidence and
|
|
255
|
+
prevents duplicate provider work. Builder, Team, Agency, and Pay-As-You-Go
|
|
256
|
+
include Company Signals.
|
|
257
|
+
Signal to Copy costs 1 credit per successful result on Free and Builder, and is
|
|
258
|
+
unlimited on Team and Agency. `lookbackDays` remains a hard evidence-age bound.
|
|
230
259
|
Unclassified evidence is returned by signal enrichment but is not used to
|
|
231
260
|
generate outreach copy.
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
`signalFamily`, `eventType`, `eventLabel`, and `classification`. Provider,
|
|
235
|
-
billing, cache, routing, and validation internals are intentionally omitted.
|
|
261
|
+
Provider, billing provenance, routing, and validation internals are intentionally
|
|
262
|
+
omitted from public signal rows.
|
|
236
263
|
|
|
237
264
|
`listTools()` and `health()` are connection helpers, not additional products.
|