@tangle-network/agent-integrations 0.40.0 → 0.41.0
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/dist/catalog.d.ts +2 -2
- package/dist/catalog.js +6 -6
- package/dist/{chunk-4TI3WXAD.js → chunk-COKK7BOH.js} +1576 -4
- package/dist/chunk-COKK7BOH.js.map +1 -0
- package/dist/{chunk-IKCXDQVP.js → chunk-DQADH6DL.js} +2 -2
- package/dist/{chunk-OMLQCESJ.js → chunk-EQB46PIG.js} +7 -1
- package/dist/chunk-EQB46PIG.js.map +1 -0
- package/dist/{chunk-FAFQZJPZ.js → chunk-GA7RAMMB.js} +2 -2
- package/dist/{chunk-4GZU3PB5.js → chunk-I3NAY66Z.js} +10 -2
- package/dist/chunk-I3NAY66Z.js.map +1 -0
- package/dist/{chunk-TC5OMANJ.js → chunk-RFBI7NUC.js} +2 -2
- package/dist/connect/index.d.ts +2 -2
- package/dist/connect/index.js +2 -2
- package/dist/connectors/adapters/index.d.ts +232 -4
- package/dist/connectors/adapters/index.js +16 -2
- package/dist/connectors/index.d.ts +3 -3
- package/dist/connectors/index.js +16 -2
- package/dist/{consumer-Cxcpp_bi.d.ts → consumer-DQiAGxQ2.d.ts} +1 -1
- package/dist/consumer.d.ts +3 -3
- package/dist/consumer.js +2 -2
- package/dist/{core-types-DMDmeutI.d.ts → core-types-17jYpwtm.d.ts} +1 -1
- package/dist/coverage-catalog.d.ts +2 -2
- package/dist/{importers-BAVOQvUf.d.ts → importers-C_mQqIJP.d.ts} +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +20 -6
- package/dist/mcp.d.ts +3 -3
- package/dist/mcp.js +6 -6
- package/dist/middleware/index.d.ts +2 -2
- package/dist/middleware/index.js +2 -2
- package/dist/registry.d.ts +2 -2
- package/dist/registry.js +6 -6
- package/dist/runtime.d.ts +2 -2
- package/dist/runtime.js +6 -6
- package/dist/specs.d.ts +2 -2
- package/dist/{tangle-id-BMScmNjp.d.ts → tangle-id-CpdEOacl.d.ts} +1 -1
- package/dist/{types-eAvAgnKr.d.ts → types-BLOYLnKZ.d.ts} +10 -3
- package/dist/webhooks/index.d.ts +11 -1
- package/dist/webhooks/index.js +31 -0
- package/dist/webhooks/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-4GZU3PB5.js.map +0 -1
- package/dist/chunk-4TI3WXAD.js.map +0 -1
- package/dist/chunk-OMLQCESJ.js.map +0 -1
- /package/dist/{chunk-IKCXDQVP.js.map → chunk-DQADH6DL.js.map} +0 -0
- /package/dist/{chunk-FAFQZJPZ.js.map → chunk-GA7RAMMB.js.map} +0 -0
- /package/dist/{chunk-TC5OMANJ.js.map → chunk-RFBI7NUC.js.map} +0 -0
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
TangleIdentityUnreachableError,
|
|
13
13
|
createTangleIdentityClient,
|
|
14
14
|
tangleIdentity
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-EQB46PIG.js";
|
|
16
16
|
import {
|
|
17
17
|
__export
|
|
18
18
|
} from "./chunk-PZ5AY32C.js";
|
|
@@ -28,6 +28,7 @@ __export(adapters_exports, {
|
|
|
28
28
|
activecampaignConnector: () => activecampaignConnector,
|
|
29
29
|
acumbamailConnector: () => acumbamailConnector,
|
|
30
30
|
adobeCreativeCloudConnector: () => adobeCreativeCloudConnector,
|
|
31
|
+
adpConnector: () => adpConnector,
|
|
31
32
|
afforaiConnector: () => afforaiConnector,
|
|
32
33
|
agentxConnector: () => agentxConnector,
|
|
33
34
|
aidbaseConnector: () => aidbaseConnector,
|
|
@@ -106,6 +107,7 @@ __export(adapters_exports, {
|
|
|
106
107
|
chatwootConnector: () => chatwootConnector,
|
|
107
108
|
checkoutConnector: () => checkoutConnector,
|
|
108
109
|
circleConnector: () => circleConnector,
|
|
110
|
+
clayConnector: () => clayConnector,
|
|
109
111
|
clearoutConnector: () => clearoutConnector,
|
|
110
112
|
clicdataConnector: () => clicdataConnector,
|
|
111
113
|
clickupConnector: () => clickupConnector,
|
|
@@ -117,6 +119,7 @@ __export(adapters_exports, {
|
|
|
117
119
|
cloudinaryConnector: () => cloudinaryConnector,
|
|
118
120
|
cloutlyConnector: () => cloutlyConnector,
|
|
119
121
|
codaConnector: () => codaConnector,
|
|
122
|
+
cognismConnector: () => cognismConnector,
|
|
120
123
|
cognitoFormsConnector: () => cognitoFormsConnector,
|
|
121
124
|
cohereConnector: () => cohereConnector,
|
|
122
125
|
cometapiConnector: () => cometapiConnector,
|
|
@@ -363,6 +366,7 @@ __export(adapters_exports, {
|
|
|
363
366
|
paperformConnector: () => paperformConnector,
|
|
364
367
|
parseurConnector: () => parseurConnector,
|
|
365
368
|
pastefyConnector: () => pastefyConnector,
|
|
369
|
+
paychexConnector: () => paychexConnector,
|
|
366
370
|
paywhirlConnector: () => paywhirlConnector,
|
|
367
371
|
pdfmonkeyConnector: () => pdfmonkeyConnector,
|
|
368
372
|
peekshotConnector: () => peekshotConnector,
|
|
@@ -412,6 +416,7 @@ __export(adapters_exports, {
|
|
|
412
416
|
scrapegraphaiConnector: () => scrapegraphaiConnector,
|
|
413
417
|
scrapelessConnector: () => scrapelessConnector,
|
|
414
418
|
seekTableConnector: () => seekTableConnector,
|
|
419
|
+
semrushConnector: () => semrushConnector,
|
|
415
420
|
sendgridConnector: () => sendgridConnector,
|
|
416
421
|
sendinblueConnector: () => sendinblueConnector,
|
|
417
422
|
sendpulseConnector: () => sendpulseConnector,
|
|
@@ -425,6 +430,7 @@ __export(adapters_exports, {
|
|
|
425
430
|
shortIoConnector: () => shortIoConnector,
|
|
426
431
|
signNowConnector: () => signNowConnector,
|
|
427
432
|
signrequestConnector: () => signrequestConnector,
|
|
433
|
+
similarwebConnector: () => similarwebConnector,
|
|
428
434
|
simplirouteConnector: () => simplirouteConnector,
|
|
429
435
|
simplybookmeConnector: () => simplybookmeConnector,
|
|
430
436
|
skyprepConnector: () => skyprepConnector,
|
|
@@ -514,6 +520,7 @@ __export(adapters_exports, {
|
|
|
514
520
|
zohoBookingsConnector: () => zohoBookingsConnector,
|
|
515
521
|
zohoCrmConnector: () => zohoCrmConnector,
|
|
516
522
|
zohoDeskConnector: () => zohoDeskConnector,
|
|
523
|
+
zoominfoConnector: () => zoominfoConnector,
|
|
517
524
|
zuoraConnector: () => zuoraConnector
|
|
518
525
|
});
|
|
519
526
|
|
|
@@ -2295,12 +2302,13 @@ function declarativeRestConnector(spec) {
|
|
|
2295
2302
|
async test(source) {
|
|
2296
2303
|
if (!spec.test) return { ok: true };
|
|
2297
2304
|
try {
|
|
2298
|
-
await executeRestRequest(spec, spec.test, {
|
|
2305
|
+
const response = await executeRestRequest(spec, spec.test, {
|
|
2299
2306
|
source,
|
|
2300
2307
|
capabilityName: "__test__",
|
|
2301
2308
|
args: {},
|
|
2302
2309
|
idempotencyKey: "test"
|
|
2303
2310
|
});
|
|
2311
|
+
validateTestResponse(spec, spec.test, response.data);
|
|
2304
2312
|
return { ok: true };
|
|
2305
2313
|
} catch (error) {
|
|
2306
2314
|
return { ok: false, reason: error instanceof Error ? error.message : "unknown error" };
|
|
@@ -2309,6 +2317,25 @@ function declarativeRestConnector(spec) {
|
|
|
2309
2317
|
};
|
|
2310
2318
|
return adapter;
|
|
2311
2319
|
}
|
|
2320
|
+
function validateTestResponse(spec, test, data) {
|
|
2321
|
+
const expectations = Array.isArray(test.expectResponse) ? test.expectResponse : test.expectResponse ? [test.expectResponse] : [];
|
|
2322
|
+
for (const expectation of expectations) {
|
|
2323
|
+
const actual = readPathFromUnknown(data, expectation.path);
|
|
2324
|
+
if (!isJsonEqual(actual, expectation.equals)) {
|
|
2325
|
+
throw new Error(
|
|
2326
|
+
`${spec.displayName} test response expected ${expectation.path}=${formatValue(expectation.equals)}, got ${formatValue(actual)}`
|
|
2327
|
+
);
|
|
2328
|
+
}
|
|
2329
|
+
}
|
|
2330
|
+
}
|
|
2331
|
+
function isJsonEqual(left, right) {
|
|
2332
|
+
if (Object.is(left, right)) return true;
|
|
2333
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
2334
|
+
}
|
|
2335
|
+
function formatValue(value) {
|
|
2336
|
+
if (value === void 0) return "undefined";
|
|
2337
|
+
return JSON.stringify(value);
|
|
2338
|
+
}
|
|
2312
2339
|
function operationToCapability(op) {
|
|
2313
2340
|
const base = {
|
|
2314
2341
|
name: op.name,
|
|
@@ -2461,6 +2488,14 @@ function readPath(input, path) {
|
|
|
2461
2488
|
return void 0;
|
|
2462
2489
|
}, input);
|
|
2463
2490
|
}
|
|
2491
|
+
function readPathFromUnknown(input, path) {
|
|
2492
|
+
return path.split(".").reduce((value, part) => {
|
|
2493
|
+
if (value && typeof value === "object" && part in value) {
|
|
2494
|
+
return value[part];
|
|
2495
|
+
}
|
|
2496
|
+
return void 0;
|
|
2497
|
+
}, input);
|
|
2498
|
+
}
|
|
2464
2499
|
async function safeErrorText(res) {
|
|
2465
2500
|
return await res.text().catch(() => res.statusText) || res.statusText;
|
|
2466
2501
|
}
|
|
@@ -47997,7 +48032,11 @@ var apolloConnector = declarativeRestConnector({
|
|
|
47997
48032
|
"content-type": "application/json",
|
|
47998
48033
|
"cache-control": "no-cache"
|
|
47999
48034
|
},
|
|
48000
|
-
test: {
|
|
48035
|
+
test: {
|
|
48036
|
+
method: "GET",
|
|
48037
|
+
path: "/api/v1/auth/health",
|
|
48038
|
+
expectResponse: { path: "is_logged_in", equals: true }
|
|
48039
|
+
},
|
|
48001
48040
|
capabilities: [
|
|
48002
48041
|
{
|
|
48003
48042
|
name: "match.person",
|
|
@@ -48262,6 +48301,1532 @@ var apolloConnector = declarativeRestConnector({
|
|
|
48262
48301
|
]
|
|
48263
48302
|
});
|
|
48264
48303
|
|
|
48304
|
+
// src/connectors/adapters/similarweb.ts
|
|
48305
|
+
var similarwebConnector = declarativeRestConnector({
|
|
48306
|
+
kind: "similarweb",
|
|
48307
|
+
displayName: "Similarweb",
|
|
48308
|
+
description: "Market intelligence on any website: estimated traffic and engagement, global/country/category rank, traffic sources, geography, similar sites, audience interests, and search keywords via the Similarweb Digital Marketing Intelligence API.",
|
|
48309
|
+
auth: {
|
|
48310
|
+
kind: "api-key",
|
|
48311
|
+
hint: "Similarweb API key from Account \u2192 API Management. Sent as the `api_key` query parameter on every request."
|
|
48312
|
+
},
|
|
48313
|
+
category: "market-intelligence",
|
|
48314
|
+
defaultConsistencyModel: "cache",
|
|
48315
|
+
baseUrl: "https://api.similarweb.com",
|
|
48316
|
+
credentialPlacement: { kind: "query", parameter: "api_key" },
|
|
48317
|
+
// `/capabilities` is free (no data-credit cost) and proves the key is valid.
|
|
48318
|
+
test: { method: "GET", path: "/capabilities" },
|
|
48319
|
+
capabilities: [
|
|
48320
|
+
{
|
|
48321
|
+
name: "rank.global",
|
|
48322
|
+
class: "read",
|
|
48323
|
+
description: "Similarweb Global Rank for a domain (estimated monthly unique visitors and pageviews, desktop + mobile). Lower is more popular.",
|
|
48324
|
+
parameters: {
|
|
48325
|
+
type: "object",
|
|
48326
|
+
properties: {
|
|
48327
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48328
|
+
start_date: { type: "string", description: "Inclusive start month, YYYY-MM." },
|
|
48329
|
+
end_date: { type: "string", description: "Inclusive end month, YYYY-MM." },
|
|
48330
|
+
main_domain_only: { type: "boolean", description: "Exclude subdomains (default false)." }
|
|
48331
|
+
},
|
|
48332
|
+
required: ["domain"]
|
|
48333
|
+
},
|
|
48334
|
+
request: {
|
|
48335
|
+
method: "GET",
|
|
48336
|
+
path: "/v1/website/{domain}/global-rank/global-rank",
|
|
48337
|
+
query: { start_date: "{start_date}", end_date: "{end_date}", main_domain_only: "{main_domain_only}" }
|
|
48338
|
+
}
|
|
48339
|
+
},
|
|
48340
|
+
{
|
|
48341
|
+
name: "rank.country",
|
|
48342
|
+
class: "read",
|
|
48343
|
+
description: "Monthly rank of a domain within a single country.",
|
|
48344
|
+
parameters: {
|
|
48345
|
+
type: "object",
|
|
48346
|
+
properties: {
|
|
48347
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48348
|
+
country: { type: "string", description: "Lowercase ISO 3166-1 alpha-2 code, e.g. us." },
|
|
48349
|
+
start_date: { type: "string", description: "Inclusive start month, YYYY-MM." },
|
|
48350
|
+
end_date: { type: "string", description: "Inclusive end month, YYYY-MM." },
|
|
48351
|
+
main_domain_only: { type: "boolean" }
|
|
48352
|
+
},
|
|
48353
|
+
required: ["domain", "country"]
|
|
48354
|
+
},
|
|
48355
|
+
request: {
|
|
48356
|
+
method: "GET",
|
|
48357
|
+
path: "/v1/website/{domain}/country-rank/country-rank",
|
|
48358
|
+
query: {
|
|
48359
|
+
country: "{country}",
|
|
48360
|
+
start_date: "{start_date}",
|
|
48361
|
+
end_date: "{end_date}",
|
|
48362
|
+
main_domain_only: "{main_domain_only}"
|
|
48363
|
+
}
|
|
48364
|
+
}
|
|
48365
|
+
},
|
|
48366
|
+
{
|
|
48367
|
+
name: "rank.category",
|
|
48368
|
+
class: "read",
|
|
48369
|
+
description: "Industry/category rank for a domain relative to its category globally (latest value; no date range).",
|
|
48370
|
+
parameters: {
|
|
48371
|
+
type: "object",
|
|
48372
|
+
properties: { domain: { type: "string", description: "Bare host, e.g. cnn.com." } },
|
|
48373
|
+
required: ["domain"]
|
|
48374
|
+
},
|
|
48375
|
+
request: { method: "GET", path: "/v1/website/{domain}/category-rank/category-rank" }
|
|
48376
|
+
},
|
|
48377
|
+
{
|
|
48378
|
+
name: "total-traffic.visits",
|
|
48379
|
+
class: "read",
|
|
48380
|
+
description: "Estimated total visits (desktop + mobile combined) for a domain over a date range.",
|
|
48381
|
+
parameters: {
|
|
48382
|
+
type: "object",
|
|
48383
|
+
properties: {
|
|
48384
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48385
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48386
|
+
granularity: { type: "string", description: "daily | weekly | monthly." },
|
|
48387
|
+
start_date: { type: "string", description: "Inclusive start month, YYYY-MM." },
|
|
48388
|
+
end_date: { type: "string", description: "Inclusive end month, YYYY-MM." },
|
|
48389
|
+
main_domain_only: { type: "boolean" },
|
|
48390
|
+
show_verified: { type: "boolean", description: "Surface shared Google Analytics data when available." }
|
|
48391
|
+
},
|
|
48392
|
+
required: ["domain", "country", "granularity"]
|
|
48393
|
+
},
|
|
48394
|
+
request: {
|
|
48395
|
+
method: "GET",
|
|
48396
|
+
path: "/v1/website/{domain}/total-traffic-and-engagement/visits",
|
|
48397
|
+
query: {
|
|
48398
|
+
country: "{country}",
|
|
48399
|
+
granularity: "{granularity}",
|
|
48400
|
+
start_date: "{start_date}",
|
|
48401
|
+
end_date: "{end_date}",
|
|
48402
|
+
main_domain_only: "{main_domain_only}",
|
|
48403
|
+
show_verified: "{show_verified}"
|
|
48404
|
+
}
|
|
48405
|
+
}
|
|
48406
|
+
},
|
|
48407
|
+
{
|
|
48408
|
+
name: "total-traffic.pages-per-visit",
|
|
48409
|
+
class: "read",
|
|
48410
|
+
description: "Average pages per visit (desktop + mobile combined).",
|
|
48411
|
+
parameters: {
|
|
48412
|
+
type: "object",
|
|
48413
|
+
properties: {
|
|
48414
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48415
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48416
|
+
granularity: { type: "string", description: "daily | weekly | monthly." },
|
|
48417
|
+
start_date: { type: "string", description: "YYYY-MM." },
|
|
48418
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48419
|
+
main_domain_only: { type: "boolean" }
|
|
48420
|
+
},
|
|
48421
|
+
required: ["domain", "country", "granularity"]
|
|
48422
|
+
},
|
|
48423
|
+
request: {
|
|
48424
|
+
method: "GET",
|
|
48425
|
+
path: "/v1/website/{domain}/total-traffic-and-engagement/pages-per-visit",
|
|
48426
|
+
query: {
|
|
48427
|
+
country: "{country}",
|
|
48428
|
+
granularity: "{granularity}",
|
|
48429
|
+
start_date: "{start_date}",
|
|
48430
|
+
end_date: "{end_date}",
|
|
48431
|
+
main_domain_only: "{main_domain_only}"
|
|
48432
|
+
}
|
|
48433
|
+
}
|
|
48434
|
+
},
|
|
48435
|
+
{
|
|
48436
|
+
name: "total-traffic.average-visit-duration",
|
|
48437
|
+
class: "read",
|
|
48438
|
+
description: "Average visit duration in seconds (desktop + mobile combined).",
|
|
48439
|
+
parameters: {
|
|
48440
|
+
type: "object",
|
|
48441
|
+
properties: {
|
|
48442
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48443
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48444
|
+
granularity: { type: "string", description: "daily | weekly | monthly." },
|
|
48445
|
+
start_date: { type: "string", description: "YYYY-MM." },
|
|
48446
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48447
|
+
main_domain_only: { type: "boolean" }
|
|
48448
|
+
},
|
|
48449
|
+
required: ["domain", "country", "granularity"]
|
|
48450
|
+
},
|
|
48451
|
+
request: {
|
|
48452
|
+
method: "GET",
|
|
48453
|
+
path: "/v1/website/{domain}/total-traffic-and-engagement/average-visit-duration",
|
|
48454
|
+
query: {
|
|
48455
|
+
country: "{country}",
|
|
48456
|
+
granularity: "{granularity}",
|
|
48457
|
+
start_date: "{start_date}",
|
|
48458
|
+
end_date: "{end_date}",
|
|
48459
|
+
main_domain_only: "{main_domain_only}"
|
|
48460
|
+
}
|
|
48461
|
+
}
|
|
48462
|
+
},
|
|
48463
|
+
{
|
|
48464
|
+
name: "total-traffic.bounce-rate",
|
|
48465
|
+
class: "read",
|
|
48466
|
+
description: "Bounce rate (desktop + mobile combined) over a date range.",
|
|
48467
|
+
parameters: {
|
|
48468
|
+
type: "object",
|
|
48469
|
+
properties: {
|
|
48470
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48471
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48472
|
+
granularity: { type: "string", description: "daily | weekly | monthly." },
|
|
48473
|
+
start_date: { type: "string", description: "YYYY-MM." },
|
|
48474
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48475
|
+
main_domain_only: { type: "boolean" }
|
|
48476
|
+
},
|
|
48477
|
+
required: ["domain", "country", "granularity"]
|
|
48478
|
+
},
|
|
48479
|
+
request: {
|
|
48480
|
+
method: "GET",
|
|
48481
|
+
path: "/v1/website/{domain}/total-traffic-and-engagement/bounce-rate",
|
|
48482
|
+
query: {
|
|
48483
|
+
country: "{country}",
|
|
48484
|
+
granularity: "{granularity}",
|
|
48485
|
+
start_date: "{start_date}",
|
|
48486
|
+
end_date: "{end_date}",
|
|
48487
|
+
main_domain_only: "{main_domain_only}"
|
|
48488
|
+
}
|
|
48489
|
+
}
|
|
48490
|
+
},
|
|
48491
|
+
{
|
|
48492
|
+
name: "desktop-traffic.visits",
|
|
48493
|
+
class: "read",
|
|
48494
|
+
description: "Estimated desktop-only visits for a domain. Supports a US state filter when country=us.",
|
|
48495
|
+
parameters: {
|
|
48496
|
+
type: "object",
|
|
48497
|
+
properties: {
|
|
48498
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48499
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48500
|
+
granularity: { type: "string", description: "daily | weekly | monthly." },
|
|
48501
|
+
start_date: { type: "string", description: "YYYY-MM." },
|
|
48502
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48503
|
+
state: { type: "string", description: "US state filter, valid only when country=us." },
|
|
48504
|
+
main_domain_only: { type: "boolean" }
|
|
48505
|
+
},
|
|
48506
|
+
required: ["domain", "country", "granularity"]
|
|
48507
|
+
},
|
|
48508
|
+
request: {
|
|
48509
|
+
method: "GET",
|
|
48510
|
+
path: "/v1/website/{domain}/traffic-and-engagement/visits",
|
|
48511
|
+
query: {
|
|
48512
|
+
country: "{country}",
|
|
48513
|
+
granularity: "{granularity}",
|
|
48514
|
+
start_date: "{start_date}",
|
|
48515
|
+
end_date: "{end_date}",
|
|
48516
|
+
state: "{state}",
|
|
48517
|
+
main_domain_only: "{main_domain_only}"
|
|
48518
|
+
}
|
|
48519
|
+
}
|
|
48520
|
+
},
|
|
48521
|
+
{
|
|
48522
|
+
name: "traffic-sources.overview-share",
|
|
48523
|
+
class: "read",
|
|
48524
|
+
description: "Share of visits by marketing channel (direct, search, social, referrals, mail, display, paid) over time.",
|
|
48525
|
+
parameters: {
|
|
48526
|
+
type: "object",
|
|
48527
|
+
properties: {
|
|
48528
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48529
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48530
|
+
granularity: { type: "string", description: "daily | weekly | monthly." },
|
|
48531
|
+
start_date: { type: "string", description: "YYYY-MM." },
|
|
48532
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48533
|
+
main_domain_only: { type: "boolean" }
|
|
48534
|
+
},
|
|
48535
|
+
required: ["domain", "country", "granularity"]
|
|
48536
|
+
},
|
|
48537
|
+
request: {
|
|
48538
|
+
method: "GET",
|
|
48539
|
+
path: "/v1/website/{domain}/traffic-sources/overview-share",
|
|
48540
|
+
query: {
|
|
48541
|
+
country: "{country}",
|
|
48542
|
+
granularity: "{granularity}",
|
|
48543
|
+
start_date: "{start_date}",
|
|
48544
|
+
end_date: "{end_date}",
|
|
48545
|
+
main_domain_only: "{main_domain_only}"
|
|
48546
|
+
}
|
|
48547
|
+
}
|
|
48548
|
+
},
|
|
48549
|
+
{
|
|
48550
|
+
name: "traffic-sources.referrals",
|
|
48551
|
+
class: "read",
|
|
48552
|
+
description: "Top referring websites sending traffic to a domain: traffic share per referrer and total referral visits.",
|
|
48553
|
+
parameters: {
|
|
48554
|
+
type: "object",
|
|
48555
|
+
properties: {
|
|
48556
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48557
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48558
|
+
start_date: { type: "string", description: "YYYY-MM." },
|
|
48559
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48560
|
+
main_domain_only: { type: "boolean" },
|
|
48561
|
+
limit: { type: "integer", description: "Max rows (default 100)." },
|
|
48562
|
+
offset: { type: "integer" }
|
|
48563
|
+
},
|
|
48564
|
+
required: ["domain", "country"]
|
|
48565
|
+
},
|
|
48566
|
+
request: {
|
|
48567
|
+
method: "GET",
|
|
48568
|
+
path: "/v4/website/{domain}/traffic-sources/referrals",
|
|
48569
|
+
query: {
|
|
48570
|
+
country: "{country}",
|
|
48571
|
+
start_date: "{start_date}",
|
|
48572
|
+
end_date: "{end_date}",
|
|
48573
|
+
main_domain_only: "{main_domain_only}",
|
|
48574
|
+
limit: "{limit}",
|
|
48575
|
+
offset: "{offset}"
|
|
48576
|
+
}
|
|
48577
|
+
}
|
|
48578
|
+
},
|
|
48579
|
+
{
|
|
48580
|
+
name: "traffic-sources.social",
|
|
48581
|
+
class: "read",
|
|
48582
|
+
description: "Leading social networks sending traffic to a domain: traffic share per network and social visits.",
|
|
48583
|
+
parameters: {
|
|
48584
|
+
type: "object",
|
|
48585
|
+
properties: {
|
|
48586
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48587
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48588
|
+
start_date: { type: "string", description: "YYYY-MM." },
|
|
48589
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48590
|
+
main_domain_only: { type: "boolean" },
|
|
48591
|
+
limit: { type: "integer" },
|
|
48592
|
+
offset: { type: "integer" }
|
|
48593
|
+
},
|
|
48594
|
+
required: ["domain", "country"]
|
|
48595
|
+
},
|
|
48596
|
+
request: {
|
|
48597
|
+
method: "GET",
|
|
48598
|
+
path: "/v4/website/{domain}/traffic-sources/social",
|
|
48599
|
+
query: {
|
|
48600
|
+
country: "{country}",
|
|
48601
|
+
start_date: "{start_date}",
|
|
48602
|
+
end_date: "{end_date}",
|
|
48603
|
+
main_domain_only: "{main_domain_only}",
|
|
48604
|
+
limit: "{limit}",
|
|
48605
|
+
offset: "{offset}"
|
|
48606
|
+
}
|
|
48607
|
+
}
|
|
48608
|
+
},
|
|
48609
|
+
{
|
|
48610
|
+
name: "geo.traffic-by-country",
|
|
48611
|
+
class: "read",
|
|
48612
|
+
description: "Distribution of a domain\u2019s traffic across countries: per-country traffic share, visits, pages/visit, average duration, bounce rate, and rank.",
|
|
48613
|
+
parameters: {
|
|
48614
|
+
type: "object",
|
|
48615
|
+
properties: {
|
|
48616
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48617
|
+
start_date: { type: "string", description: "YYYY-MM." },
|
|
48618
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48619
|
+
main_domain_only: { type: "boolean" },
|
|
48620
|
+
limit: { type: "integer" },
|
|
48621
|
+
offset: { type: "integer" }
|
|
48622
|
+
},
|
|
48623
|
+
required: ["domain"]
|
|
48624
|
+
},
|
|
48625
|
+
request: {
|
|
48626
|
+
method: "GET",
|
|
48627
|
+
path: "/v4/website/{domain}/geo/traffic-by-country",
|
|
48628
|
+
query: {
|
|
48629
|
+
start_date: "{start_date}",
|
|
48630
|
+
end_date: "{end_date}",
|
|
48631
|
+
main_domain_only: "{main_domain_only}",
|
|
48632
|
+
limit: "{limit}",
|
|
48633
|
+
offset: "{offset}"
|
|
48634
|
+
}
|
|
48635
|
+
}
|
|
48636
|
+
},
|
|
48637
|
+
{
|
|
48638
|
+
name: "audience.similar-sites",
|
|
48639
|
+
class: "read",
|
|
48640
|
+
description: "Up to 40 websites most similar to a domain, with a similarity score per site. No date or country params.",
|
|
48641
|
+
parameters: {
|
|
48642
|
+
type: "object",
|
|
48643
|
+
properties: {
|
|
48644
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48645
|
+
limit: { type: "integer", description: "Max similar sites (max 40)." }
|
|
48646
|
+
},
|
|
48647
|
+
required: ["domain"]
|
|
48648
|
+
},
|
|
48649
|
+
request: {
|
|
48650
|
+
method: "GET",
|
|
48651
|
+
path: "/v4/website/{domain}/similar-sites/similarsites",
|
|
48652
|
+
query: { limit: "{limit}" }
|
|
48653
|
+
}
|
|
48654
|
+
},
|
|
48655
|
+
{
|
|
48656
|
+
name: "audience.also-visited",
|
|
48657
|
+
class: "read",
|
|
48658
|
+
description: "Other websites visited by the same audience (desktop + mobile): affinity score and audience overlap. Useful for competitive/adjacency analysis.",
|
|
48659
|
+
parameters: {
|
|
48660
|
+
type: "object",
|
|
48661
|
+
properties: {
|
|
48662
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48663
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48664
|
+
start_date: { type: "string", description: "YYYY-MM." },
|
|
48665
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48666
|
+
main_domain_only: { type: "boolean" },
|
|
48667
|
+
limit: { type: "integer" },
|
|
48668
|
+
offset: { type: "integer" }
|
|
48669
|
+
},
|
|
48670
|
+
required: ["domain", "country", "start_date", "end_date"]
|
|
48671
|
+
},
|
|
48672
|
+
request: {
|
|
48673
|
+
method: "GET",
|
|
48674
|
+
path: "/v4/website/{domain}/total-audience-interests/also-visited",
|
|
48675
|
+
query: {
|
|
48676
|
+
country: "{country}",
|
|
48677
|
+
start_date: "{start_date}",
|
|
48678
|
+
end_date: "{end_date}",
|
|
48679
|
+
main_domain_only: "{main_domain_only}",
|
|
48680
|
+
limit: "{limit}",
|
|
48681
|
+
offset: "{offset}"
|
|
48682
|
+
}
|
|
48683
|
+
}
|
|
48684
|
+
},
|
|
48685
|
+
{
|
|
48686
|
+
name: "keywords.website-keywords",
|
|
48687
|
+
class: "read",
|
|
48688
|
+
description: "Search keywords driving clicks to a domain (Similarweb Search 3.0). Filter by traffic_source (Organic/Paid/All) and web_source (Desktop/MobileWeb/Total). The domain is passed as the `URL` query parameter.",
|
|
48689
|
+
parameters: {
|
|
48690
|
+
type: "object",
|
|
48691
|
+
properties: {
|
|
48692
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com (sent as the URL query param)." },
|
|
48693
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48694
|
+
start_date: { type: "string", description: "YYYY-MM (defaults to ~last 28 days if omitted)." },
|
|
48695
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48696
|
+
traffic_source: { type: "string", description: "Organic | Paid | All." },
|
|
48697
|
+
web_source: { type: "string", description: "Desktop | MobileWeb | Total." },
|
|
48698
|
+
limit: { type: "integer" },
|
|
48699
|
+
offset: { type: "integer" }
|
|
48700
|
+
},
|
|
48701
|
+
required: ["domain", "country"]
|
|
48702
|
+
},
|
|
48703
|
+
request: {
|
|
48704
|
+
method: "GET",
|
|
48705
|
+
path: "/v4/website-analysis/keywords",
|
|
48706
|
+
query: {
|
|
48707
|
+
URL: "{domain}",
|
|
48708
|
+
country: "{country}",
|
|
48709
|
+
start_date: "{start_date}",
|
|
48710
|
+
end_date: "{end_date}",
|
|
48711
|
+
traffic_source: "{traffic_source}",
|
|
48712
|
+
web_source: "{web_source}",
|
|
48713
|
+
limit: "{limit}",
|
|
48714
|
+
offset: "{offset}"
|
|
48715
|
+
}
|
|
48716
|
+
}
|
|
48717
|
+
},
|
|
48718
|
+
{
|
|
48719
|
+
name: "lead-enrichment",
|
|
48720
|
+
class: "read",
|
|
48721
|
+
description: "Firmographics plus website traffic and engagement for a domain in one call (Similarweb Lead Enrichment). Up to 12 months of history; set show_verified to surface shared Google Analytics data.",
|
|
48722
|
+
parameters: {
|
|
48723
|
+
type: "object",
|
|
48724
|
+
properties: {
|
|
48725
|
+
domain: { type: "string", description: "Bare host, e.g. cnn.com." },
|
|
48726
|
+
country: { type: "string", description: 'Lowercase ISO alpha-2 code or "world".' },
|
|
48727
|
+
start_date: { type: "string", description: "YYYY-MM." },
|
|
48728
|
+
end_date: { type: "string", description: "YYYY-MM." },
|
|
48729
|
+
main_domain_only: { type: "boolean" },
|
|
48730
|
+
show_verified: { type: "boolean" }
|
|
48731
|
+
},
|
|
48732
|
+
required: ["domain", "country", "start_date", "end_date"]
|
|
48733
|
+
},
|
|
48734
|
+
request: {
|
|
48735
|
+
method: "GET",
|
|
48736
|
+
path: "/v1/website/{domain}/lead-enrichment/all",
|
|
48737
|
+
query: {
|
|
48738
|
+
country: "{country}",
|
|
48739
|
+
start_date: "{start_date}",
|
|
48740
|
+
end_date: "{end_date}",
|
|
48741
|
+
main_domain_only: "{main_domain_only}",
|
|
48742
|
+
show_verified: "{show_verified}"
|
|
48743
|
+
}
|
|
48744
|
+
}
|
|
48745
|
+
}
|
|
48746
|
+
]
|
|
48747
|
+
});
|
|
48748
|
+
|
|
48749
|
+
// src/connectors/adapters/semrush.ts
|
|
48750
|
+
var semrushConnector = declarativeRestConnector({
|
|
48751
|
+
kind: "semrush",
|
|
48752
|
+
displayName: "Semrush",
|
|
48753
|
+
description: "Competitive SEO market intelligence: backlink profile (overview, links, referring domains/IPs, anchors, pages, authority-score trend) and keyword metrics via the Semrush v4 REST API.",
|
|
48754
|
+
auth: {
|
|
48755
|
+
kind: "api-key",
|
|
48756
|
+
hint: "Semrush API key from Subscription info \u2192 API units. Sent as the `Authorization: Apikey <key>` header."
|
|
48757
|
+
},
|
|
48758
|
+
category: "market-intelligence",
|
|
48759
|
+
defaultConsistencyModel: "cache",
|
|
48760
|
+
baseUrl: "https://api.semrush.com",
|
|
48761
|
+
credentialPlacement: { kind: "header", header: "Authorization", prefix: "Apikey " },
|
|
48762
|
+
capabilities: [
|
|
48763
|
+
{
|
|
48764
|
+
name: "backlinks.overview",
|
|
48765
|
+
class: "read",
|
|
48766
|
+
description: "Aggregated backlink metrics for a target: total backlinks, referring domains, authority score, follow/nofollow split, referring IPs.",
|
|
48767
|
+
parameters: {
|
|
48768
|
+
type: "object",
|
|
48769
|
+
properties: {
|
|
48770
|
+
url: { type: "string", description: "Target host, subdomain, folder, or page, e.g. semrush.com." },
|
|
48771
|
+
scope: {
|
|
48772
|
+
type: "string",
|
|
48773
|
+
description: "Which part of the URL to analyze: ROOT_DOMAIN | SUBDOMAIN | SUBFOLDER | PAGE."
|
|
48774
|
+
},
|
|
48775
|
+
fields: { type: "string", description: "Comma-separated subset of response fields (all by default)." }
|
|
48776
|
+
},
|
|
48777
|
+
required: ["url", "scope"]
|
|
48778
|
+
},
|
|
48779
|
+
request: {
|
|
48780
|
+
method: "GET",
|
|
48781
|
+
path: "/apis/v4/backlinks/v1/overview",
|
|
48782
|
+
query: { url: "{url}", scope: "{scope}", fields: "{fields}" }
|
|
48783
|
+
}
|
|
48784
|
+
},
|
|
48785
|
+
{
|
|
48786
|
+
name: "backlinks.summary",
|
|
48787
|
+
class: "read",
|
|
48788
|
+
description: "Monthly historical trend of authority score, backlinks count, and referring domains. date_from/date_to are YYYY-MM.",
|
|
48789
|
+
parameters: {
|
|
48790
|
+
type: "object",
|
|
48791
|
+
properties: {
|
|
48792
|
+
url: { type: "string", description: "Target host/subdomain/folder/page." },
|
|
48793
|
+
scope: { type: "string", description: "ROOT_DOMAIN | SUBDOMAIN | SUBFOLDER | PAGE." },
|
|
48794
|
+
date_from: { type: "string", description: "Start month, YYYY-MM." },
|
|
48795
|
+
date_to: { type: "string", description: "End month, YYYY-MM." },
|
|
48796
|
+
fields: { type: "string" },
|
|
48797
|
+
limit: { type: "integer" }
|
|
48798
|
+
},
|
|
48799
|
+
required: ["url", "scope"]
|
|
48800
|
+
},
|
|
48801
|
+
request: {
|
|
48802
|
+
method: "GET",
|
|
48803
|
+
path: "/apis/v4/backlinks/v1/summary",
|
|
48804
|
+
query: {
|
|
48805
|
+
url: "{url}",
|
|
48806
|
+
scope: "{scope}",
|
|
48807
|
+
date_from: "{date_from}",
|
|
48808
|
+
date_to: "{date_to}",
|
|
48809
|
+
fields: "{fields}",
|
|
48810
|
+
limit: "{limit}"
|
|
48811
|
+
}
|
|
48812
|
+
}
|
|
48813
|
+
},
|
|
48814
|
+
{
|
|
48815
|
+
name: "backlinks.links",
|
|
48816
|
+
class: "read",
|
|
48817
|
+
description: "Paginated list of individual backlinks: anchor text, source/target URLs, domain & page authority, follow/nofollow, first/last seen.",
|
|
48818
|
+
parameters: {
|
|
48819
|
+
type: "object",
|
|
48820
|
+
properties: {
|
|
48821
|
+
url: { type: "string" },
|
|
48822
|
+
scope: { type: "string", description: "ROOT_DOMAIN | SUBDOMAIN | SUBFOLDER | PAGE." },
|
|
48823
|
+
fields: { type: "string" },
|
|
48824
|
+
order_by: { type: "string", description: "Field to sort by." },
|
|
48825
|
+
direction: { type: "string", description: "ASC | DESC." },
|
|
48826
|
+
limit: { type: "integer" },
|
|
48827
|
+
offset: { type: "integer" },
|
|
48828
|
+
filter: { type: "string", description: "Field-operator-value filter expression, e.g. is_follow=1." }
|
|
48829
|
+
},
|
|
48830
|
+
required: ["url", "scope"]
|
|
48831
|
+
},
|
|
48832
|
+
request: {
|
|
48833
|
+
method: "GET",
|
|
48834
|
+
path: "/apis/v4/backlinks/v1/links",
|
|
48835
|
+
query: {
|
|
48836
|
+
url: "{url}",
|
|
48837
|
+
scope: "{scope}",
|
|
48838
|
+
fields: "{fields}",
|
|
48839
|
+
order_by: "{order_by}",
|
|
48840
|
+
direction: "{direction}",
|
|
48841
|
+
limit: "{limit}",
|
|
48842
|
+
offset: "{offset}",
|
|
48843
|
+
filter: "{filter}"
|
|
48844
|
+
}
|
|
48845
|
+
}
|
|
48846
|
+
},
|
|
48847
|
+
{
|
|
48848
|
+
name: "backlinks.ref_domains",
|
|
48849
|
+
class: "read",
|
|
48850
|
+
description: "Referring domains with per-domain backlink counts, domain authority score, country, IP, and follow/new/lost status.",
|
|
48851
|
+
parameters: {
|
|
48852
|
+
type: "object",
|
|
48853
|
+
properties: {
|
|
48854
|
+
url: { type: "string" },
|
|
48855
|
+
scope: { type: "string", description: "ROOT_DOMAIN | SUBDOMAIN | SUBFOLDER | PAGE." },
|
|
48856
|
+
fields: { type: "string" },
|
|
48857
|
+
order_by: { type: "string" },
|
|
48858
|
+
direction: { type: "string" },
|
|
48859
|
+
limit: { type: "integer" },
|
|
48860
|
+
offset: { type: "integer" },
|
|
48861
|
+
filter: { type: "string" }
|
|
48862
|
+
},
|
|
48863
|
+
required: ["url", "scope"]
|
|
48864
|
+
},
|
|
48865
|
+
request: {
|
|
48866
|
+
method: "GET",
|
|
48867
|
+
path: "/apis/v4/backlinks/v1/ref-domains",
|
|
48868
|
+
query: {
|
|
48869
|
+
url: "{url}",
|
|
48870
|
+
scope: "{scope}",
|
|
48871
|
+
fields: "{fields}",
|
|
48872
|
+
order_by: "{order_by}",
|
|
48873
|
+
direction: "{direction}",
|
|
48874
|
+
limit: "{limit}",
|
|
48875
|
+
offset: "{offset}",
|
|
48876
|
+
filter: "{filter}"
|
|
48877
|
+
}
|
|
48878
|
+
}
|
|
48879
|
+
},
|
|
48880
|
+
{
|
|
48881
|
+
name: "backlinks.ref_ips",
|
|
48882
|
+
class: "read",
|
|
48883
|
+
description: "Referring IP addresses with backlink count, referring-domain count, and country.",
|
|
48884
|
+
parameters: {
|
|
48885
|
+
type: "object",
|
|
48886
|
+
properties: {
|
|
48887
|
+
url: { type: "string" },
|
|
48888
|
+
scope: { type: "string", description: "ROOT_DOMAIN | SUBDOMAIN | SUBFOLDER | PAGE." },
|
|
48889
|
+
fields: { type: "string" },
|
|
48890
|
+
order_by: { type: "string" },
|
|
48891
|
+
direction: { type: "string" },
|
|
48892
|
+
limit: { type: "integer" },
|
|
48893
|
+
offset: { type: "integer" }
|
|
48894
|
+
},
|
|
48895
|
+
required: ["url", "scope"]
|
|
48896
|
+
},
|
|
48897
|
+
request: {
|
|
48898
|
+
method: "GET",
|
|
48899
|
+
path: "/apis/v4/backlinks/v1/ref-ips",
|
|
48900
|
+
query: {
|
|
48901
|
+
url: "{url}",
|
|
48902
|
+
scope: "{scope}",
|
|
48903
|
+
fields: "{fields}",
|
|
48904
|
+
order_by: "{order_by}",
|
|
48905
|
+
direction: "{direction}",
|
|
48906
|
+
limit: "{limit}",
|
|
48907
|
+
offset: "{offset}"
|
|
48908
|
+
}
|
|
48909
|
+
}
|
|
48910
|
+
},
|
|
48911
|
+
{
|
|
48912
|
+
name: "backlinks.anchors",
|
|
48913
|
+
class: "read",
|
|
48914
|
+
description: "Backlink anchor texts with per-anchor backlink count, referring domains, and domain/page authority scores.",
|
|
48915
|
+
parameters: {
|
|
48916
|
+
type: "object",
|
|
48917
|
+
properties: {
|
|
48918
|
+
url: { type: "string" },
|
|
48919
|
+
scope: { type: "string", description: "ROOT_DOMAIN | SUBDOMAIN | SUBFOLDER | PAGE." },
|
|
48920
|
+
fields: { type: "string" },
|
|
48921
|
+
order_by: { type: "string" },
|
|
48922
|
+
direction: { type: "string" },
|
|
48923
|
+
limit: { type: "integer" },
|
|
48924
|
+
offset: { type: "integer" }
|
|
48925
|
+
},
|
|
48926
|
+
required: ["url", "scope"]
|
|
48927
|
+
},
|
|
48928
|
+
request: {
|
|
48929
|
+
method: "GET",
|
|
48930
|
+
path: "/apis/v4/backlinks/v1/anchors",
|
|
48931
|
+
query: {
|
|
48932
|
+
url: "{url}",
|
|
48933
|
+
scope: "{scope}",
|
|
48934
|
+
fields: "{fields}",
|
|
48935
|
+
order_by: "{order_by}",
|
|
48936
|
+
direction: "{direction}",
|
|
48937
|
+
limit: "{limit}",
|
|
48938
|
+
offset: "{offset}"
|
|
48939
|
+
}
|
|
48940
|
+
}
|
|
48941
|
+
},
|
|
48942
|
+
{
|
|
48943
|
+
name: "backlinks.pages",
|
|
48944
|
+
class: "read",
|
|
48945
|
+
description: "Pages on the target domain that receive backlinks, with per-page backlink and referring-domain counts.",
|
|
48946
|
+
parameters: {
|
|
48947
|
+
type: "object",
|
|
48948
|
+
properties: {
|
|
48949
|
+
url: { type: "string" },
|
|
48950
|
+
scope: { type: "string", description: "ROOT_DOMAIN | SUBDOMAIN | SUBFOLDER | PAGE." },
|
|
48951
|
+
fields: { type: "string" },
|
|
48952
|
+
order_by: { type: "string" },
|
|
48953
|
+
direction: { type: "string" },
|
|
48954
|
+
limit: { type: "integer" },
|
|
48955
|
+
offset: { type: "integer" },
|
|
48956
|
+
filter: { type: "string" }
|
|
48957
|
+
},
|
|
48958
|
+
required: ["url", "scope"]
|
|
48959
|
+
},
|
|
48960
|
+
request: {
|
|
48961
|
+
method: "GET",
|
|
48962
|
+
path: "/apis/v4/backlinks/v1/pages",
|
|
48963
|
+
query: {
|
|
48964
|
+
url: "{url}",
|
|
48965
|
+
scope: "{scope}",
|
|
48966
|
+
fields: "{fields}",
|
|
48967
|
+
order_by: "{order_by}",
|
|
48968
|
+
direction: "{direction}",
|
|
48969
|
+
limit: "{limit}",
|
|
48970
|
+
offset: "{offset}",
|
|
48971
|
+
filter: "{filter}"
|
|
48972
|
+
}
|
|
48973
|
+
}
|
|
48974
|
+
},
|
|
48975
|
+
{
|
|
48976
|
+
name: "backlinks.score_profile",
|
|
48977
|
+
class: "read",
|
|
48978
|
+
description: "Authority Score distribution of a target\u2019s backlink profile \u2014 the breakdown of backlink quality scores.",
|
|
48979
|
+
parameters: {
|
|
48980
|
+
type: "object",
|
|
48981
|
+
properties: {
|
|
48982
|
+
url: { type: "string" },
|
|
48983
|
+
scope: { type: "string", description: "ROOT_DOMAIN | SUBDOMAIN | SUBFOLDER | PAGE." },
|
|
48984
|
+
fields: { type: "string" }
|
|
48985
|
+
},
|
|
48986
|
+
required: ["url", "scope"]
|
|
48987
|
+
},
|
|
48988
|
+
request: {
|
|
48989
|
+
method: "GET",
|
|
48990
|
+
path: "/apis/v4/backlinks/v1/score-profile",
|
|
48991
|
+
query: { url: "{url}", scope: "{scope}", fields: "{fields}" }
|
|
48992
|
+
}
|
|
48993
|
+
},
|
|
48994
|
+
{
|
|
48995
|
+
name: "backlinks.comparison",
|
|
48996
|
+
class: "read",
|
|
48997
|
+
description: "Compare the backlink profiles of up to 10 targets side by side. `urls` is comma-separated; scope here supports ROOT_DOMAIN | SUBDOMAIN | PAGE only (no SUBFOLDER).",
|
|
48998
|
+
parameters: {
|
|
48999
|
+
type: "object",
|
|
49000
|
+
properties: {
|
|
49001
|
+
urls: { type: "string", description: "Comma-separated list of up to 10 target URLs." },
|
|
49002
|
+
scope: { type: "string", description: "ROOT_DOMAIN | SUBDOMAIN | PAGE." },
|
|
49003
|
+
fields: { type: "string" }
|
|
49004
|
+
},
|
|
49005
|
+
required: ["urls", "scope"]
|
|
49006
|
+
},
|
|
49007
|
+
request: {
|
|
49008
|
+
method: "GET",
|
|
49009
|
+
path: "/apis/v4/backlinks/v1/comparison",
|
|
49010
|
+
query: { urls: "{urls}", scope: "{scope}", fields: "{fields}" }
|
|
49011
|
+
}
|
|
49012
|
+
},
|
|
49013
|
+
{
|
|
49014
|
+
name: "keyword.metrics",
|
|
49015
|
+
class: "read",
|
|
49016
|
+
description: "Keyword metrics for a single keyword (Semrush v4 keyword surface): search volume, CPC, keyword difficulty, competition, trend, SERP features, and search intent.",
|
|
49017
|
+
parameters: {
|
|
49018
|
+
type: "object",
|
|
49019
|
+
properties: {
|
|
49020
|
+
keyword: { type: "string", description: "The keyword phrase to look up." },
|
|
49021
|
+
country: { type: "string", description: "Database/country code, e.g. us, uk, de." },
|
|
49022
|
+
month: { type: "string", description: "Optional month for the metric snapshot, YYYY-MM." }
|
|
49023
|
+
},
|
|
49024
|
+
required: ["keyword", "country"]
|
|
49025
|
+
},
|
|
49026
|
+
request: {
|
|
49027
|
+
method: "GET",
|
|
49028
|
+
path: "/apis/v4/keywords/v1/metrics",
|
|
49029
|
+
query: { keyword: "{keyword}", country: "{country}", month: "{month}" }
|
|
49030
|
+
}
|
|
49031
|
+
}
|
|
49032
|
+
]
|
|
49033
|
+
});
|
|
49034
|
+
|
|
49035
|
+
// src/connectors/adapters/cognism.ts
|
|
49036
|
+
var cognismConnector = declarativeRestConnector({
|
|
49037
|
+
kind: "cognism",
|
|
49038
|
+
displayName: "Cognism",
|
|
49039
|
+
description: "B2B sales intelligence: search and enrich contacts and companies against the Cognism database, then redeem records for full contact data (emails, phones, firmographics).",
|
|
49040
|
+
auth: {
|
|
49041
|
+
kind: "api-key",
|
|
49042
|
+
hint: "Cognism API token from Profile Settings \u2192 API. Sent as the `Authorization: Bearer <token>` header."
|
|
49043
|
+
},
|
|
49044
|
+
category: "sales-intelligence",
|
|
49045
|
+
defaultConsistencyModel: "authoritative",
|
|
49046
|
+
baseUrl: "https://app.cognism.com/api/search",
|
|
49047
|
+
credentialPlacement: { kind: "bearer" },
|
|
49048
|
+
capabilities: [
|
|
49049
|
+
{
|
|
49050
|
+
name: "contact.search",
|
|
49051
|
+
class: "read",
|
|
49052
|
+
description: "Search the Cognism contact database by persona/firmographic filters. Returns a preview list with data-presence flags and a redeemId per record (no PII). Free. Follow with contact.redeem to fetch full data.",
|
|
49053
|
+
parameters: {
|
|
49054
|
+
type: "object",
|
|
49055
|
+
properties: {
|
|
49056
|
+
filters: {
|
|
49057
|
+
type: "object",
|
|
49058
|
+
description: 'Search filter body, e.g. { jobTitles: ["CTO"], excludeJobTitles: ["CEO"], regions: ["EMEA"], countries: ["US"], emailQuality: { highPlus: true }, account: { names: ["Acme"] } }. All fields optional; pass {} to match broadly.'
|
|
49059
|
+
},
|
|
49060
|
+
lastReturnedKey: { type: "string", description: "Pagination cursor from a previous page (linear only)." },
|
|
49061
|
+
indexSize: { type: "integer", description: "Page size, 20\u2013100 (default 20)." }
|
|
49062
|
+
},
|
|
49063
|
+
required: ["filters"]
|
|
49064
|
+
},
|
|
49065
|
+
request: {
|
|
49066
|
+
method: "POST",
|
|
49067
|
+
path: "/contact/search",
|
|
49068
|
+
query: { lastReturnedKey: "{lastReturnedKey}", indexSize: "{indexSize}" },
|
|
49069
|
+
body: "{filters}"
|
|
49070
|
+
}
|
|
49071
|
+
},
|
|
49072
|
+
{
|
|
49073
|
+
name: "contact.enrich",
|
|
49074
|
+
class: "read",
|
|
49075
|
+
description: "Match a single contact by known identifiers (email, linkedinUrl, domain, name + company). Returns one best-match preview with matchScore, data-presence flags, and a redeemId (no PII). Free. Follow with contact.redeem.",
|
|
49076
|
+
parameters: {
|
|
49077
|
+
type: "object",
|
|
49078
|
+
properties: {
|
|
49079
|
+
match: {
|
|
49080
|
+
type: "object",
|
|
49081
|
+
description: 'Identifier body, e.g. { email: "jane@acme.com", linkedinUrl: "...", domain: "acme.com", minMatchScore: 30, firstName, lastName, jobTitle, companyName }. At least one identifier recommended.'
|
|
49082
|
+
}
|
|
49083
|
+
},
|
|
49084
|
+
required: ["match"]
|
|
49085
|
+
},
|
|
49086
|
+
request: { method: "POST", path: "/contact/enrich", body: "{match}" }
|
|
49087
|
+
},
|
|
49088
|
+
{
|
|
49089
|
+
name: "contact.redeem",
|
|
49090
|
+
class: "mutation",
|
|
49091
|
+
description: "Fetch full contact profiles (email, mobile, direct dial, LinkedIn, seniority, \u2026) for redeemIds obtained from contact.search/contact.enrich. CONSUMES 1 credit per contact redeemed. 1\u201320 redeemIds per call.",
|
|
49092
|
+
parameters: {
|
|
49093
|
+
type: "object",
|
|
49094
|
+
properties: {
|
|
49095
|
+
redeemIds: {
|
|
49096
|
+
type: "array",
|
|
49097
|
+
items: { type: "string" },
|
|
49098
|
+
description: "redeemId values from contact.search/contact.enrich (1\u201320)."
|
|
49099
|
+
}
|
|
49100
|
+
},
|
|
49101
|
+
required: ["redeemIds"]
|
|
49102
|
+
},
|
|
49103
|
+
request: { method: "POST", path: "/contact/redeem", body: { redeemIds: "{redeemIds}" } },
|
|
49104
|
+
cas: "native-idempotency",
|
|
49105
|
+
externalEffect: true
|
|
49106
|
+
},
|
|
49107
|
+
{
|
|
49108
|
+
name: "account.search",
|
|
49109
|
+
class: "read",
|
|
49110
|
+
description: "Search the Cognism company/account database by name, industry, location, size, revenue. Returns matching accounts with data-presence flags and redeemIds. Free. Follow with account.redeem.",
|
|
49111
|
+
parameters: {
|
|
49112
|
+
type: "object",
|
|
49113
|
+
properties: {
|
|
49114
|
+
filters: {
|
|
49115
|
+
type: "object",
|
|
49116
|
+
description: 'Account filter body, e.g. { names: ["Acme Corp"], industries: ["SaaS"], countries: ["US"], regions: ["EMEA"], employeeCount: {...}, revenue: {...} }. All fields optional.'
|
|
49117
|
+
},
|
|
49118
|
+
lastReturnedKey: { type: "string" },
|
|
49119
|
+
indexSize: { type: "integer", description: "Page size, 20\u2013100." }
|
|
49120
|
+
},
|
|
49121
|
+
required: ["filters"]
|
|
49122
|
+
},
|
|
49123
|
+
request: {
|
|
49124
|
+
method: "POST",
|
|
49125
|
+
path: "/account/search",
|
|
49126
|
+
query: { lastReturnedKey: "{lastReturnedKey}", indexSize: "{indexSize}" },
|
|
49127
|
+
body: "{filters}"
|
|
49128
|
+
}
|
|
49129
|
+
},
|
|
49130
|
+
{
|
|
49131
|
+
name: "account.enrich",
|
|
49132
|
+
class: "read",
|
|
49133
|
+
description: "Match a company/account by domain, website, linkedinUrl, or name. Returns one best-match preview with data-presence flags and a redeemId. Free. Follow with account.redeem.",
|
|
49134
|
+
parameters: {
|
|
49135
|
+
type: "object",
|
|
49136
|
+
properties: {
|
|
49137
|
+
match: {
|
|
49138
|
+
type: "object",
|
|
49139
|
+
description: 'Identifier body, e.g. { domain: "cognism.com" } or { website, linkedinUrl, name }.'
|
|
49140
|
+
}
|
|
49141
|
+
},
|
|
49142
|
+
required: ["match"]
|
|
49143
|
+
},
|
|
49144
|
+
request: { method: "POST", path: "/account/enrich", body: "{match}" }
|
|
49145
|
+
},
|
|
49146
|
+
{
|
|
49147
|
+
name: "account.redeem",
|
|
49148
|
+
class: "read",
|
|
49149
|
+
description: "Fetch full company/account profiles (domain, revenue, employeeCount, industry, \u2026) for redeemIds from account.search/account.enrich. Free (account redeem does not consume credits).",
|
|
49150
|
+
parameters: {
|
|
49151
|
+
type: "object",
|
|
49152
|
+
properties: {
|
|
49153
|
+
redeemIds: {
|
|
49154
|
+
type: "array",
|
|
49155
|
+
items: { type: "string" },
|
|
49156
|
+
description: "redeemId values from account.search/account.enrich."
|
|
49157
|
+
}
|
|
49158
|
+
},
|
|
49159
|
+
required: ["redeemIds"]
|
|
49160
|
+
},
|
|
49161
|
+
request: { method: "POST", path: "/account/redeem", body: { redeemIds: "{redeemIds}" } }
|
|
49162
|
+
}
|
|
49163
|
+
]
|
|
49164
|
+
});
|
|
49165
|
+
|
|
49166
|
+
// src/connectors/adapters/clay.ts
|
|
49167
|
+
var clayConnector = {
|
|
49168
|
+
manifest: {
|
|
49169
|
+
kind: "clay",
|
|
49170
|
+
displayName: "Clay",
|
|
49171
|
+
description: "Push rows into a Clay table to trigger GTM enrichment workflows. Clay has no general REST API \u2014 this sends a JSON row to your table\u2019s inbound webhook URL; enriched results flow back out via Clay\u2019s HTTP API action (received through the clay webhook provider).",
|
|
49172
|
+
auth: {
|
|
49173
|
+
kind: "api-key",
|
|
49174
|
+
hint: "Optional Clay table webhook token (x-clay-webhook-auth), shown once when you add a webhook source to a table. Leave blank if the table\u2019s webhook has no token. The per-table webhook URL goes in the connection metadata as `webhookUrl`."
|
|
49175
|
+
},
|
|
49176
|
+
category: "crm",
|
|
49177
|
+
defaultConsistencyModel: "advisory",
|
|
49178
|
+
capabilities: [
|
|
49179
|
+
{
|
|
49180
|
+
name: "push_row",
|
|
49181
|
+
class: "mutation",
|
|
49182
|
+
description: "Send a flat JSON object to the configured Clay table webhook URL, creating a new row. Keys map to table columns (no fixed schema). Processing is asynchronous \u2014 the response acknowledges receipt but does not return enriched data.",
|
|
49183
|
+
cas: "native-idempotency",
|
|
49184
|
+
externalEffect: true,
|
|
49185
|
+
parameters: {
|
|
49186
|
+
type: "object",
|
|
49187
|
+
additionalProperties: true,
|
|
49188
|
+
description: 'Flat JSON whose keys become Clay table columns, e.g. { "firstName": "Jane", "email": "jane@acme.com", "company": "Acme" }.'
|
|
49189
|
+
}
|
|
49190
|
+
}
|
|
49191
|
+
]
|
|
49192
|
+
},
|
|
49193
|
+
async executeMutation(inv) {
|
|
49194
|
+
const url = readWebhookUrl(inv.source.metadata);
|
|
49195
|
+
const body = JSON.stringify(inv.args ?? {});
|
|
49196
|
+
const headers = { "content-type": "application/json" };
|
|
49197
|
+
const token = clayToken(inv.source.credentials);
|
|
49198
|
+
if (token) headers["x-clay-webhook-auth"] = token;
|
|
49199
|
+
const res = await fetch(url, {
|
|
49200
|
+
method: "POST",
|
|
49201
|
+
headers,
|
|
49202
|
+
body,
|
|
49203
|
+
signal: AbortSignal.timeout(15e3)
|
|
49204
|
+
});
|
|
49205
|
+
if (res.status === 401 || res.status === 403) {
|
|
49206
|
+
throw new CredentialsExpired(`Clay rejected the webhook token (${res.status})`, inv.source.id);
|
|
49207
|
+
}
|
|
49208
|
+
if (!res.ok) {
|
|
49209
|
+
throw new Error(`clay push_row ${res.status}: ${(await res.text().catch(() => res.statusText)).slice(0, 200)}`);
|
|
49210
|
+
}
|
|
49211
|
+
const data = await res.json().catch(() => ({}));
|
|
49212
|
+
return {
|
|
49213
|
+
status: "committed",
|
|
49214
|
+
data,
|
|
49215
|
+
committedAt: Date.now(),
|
|
49216
|
+
idempotentReplay: false
|
|
49217
|
+
};
|
|
49218
|
+
},
|
|
49219
|
+
async test(source) {
|
|
49220
|
+
try {
|
|
49221
|
+
readWebhookUrl(source.metadata);
|
|
49222
|
+
return { ok: true };
|
|
49223
|
+
} catch (err) {
|
|
49224
|
+
return { ok: false, reason: err instanceof Error ? err.message : String(err) };
|
|
49225
|
+
}
|
|
49226
|
+
}
|
|
49227
|
+
};
|
|
49228
|
+
function readWebhookUrl(metadata) {
|
|
49229
|
+
const value = metadata.webhookUrl;
|
|
49230
|
+
if (typeof value !== "string" || value.length === 0) {
|
|
49231
|
+
throw new Error("clay DataSource.metadata.webhookUrl is missing");
|
|
49232
|
+
}
|
|
49233
|
+
return new URL(value).toString();
|
|
49234
|
+
}
|
|
49235
|
+
function clayToken(credentials) {
|
|
49236
|
+
if (credentials.kind === "api-key" && credentials.apiKey) return credentials.apiKey;
|
|
49237
|
+
return void 0;
|
|
49238
|
+
}
|
|
49239
|
+
|
|
49240
|
+
// src/connectors/adapters/zoominfo.ts
|
|
49241
|
+
var zoominfoConnector = declarativeRestConnector({
|
|
49242
|
+
kind: "zoominfo",
|
|
49243
|
+
displayName: "ZoomInfo",
|
|
49244
|
+
description: "Search and enrich contacts and companies, plus buyer-intent signals, business Scoops, and company news, via the ZoomInfo GTM Data API. Search is free; enrich consumes bulk-data credits.",
|
|
49245
|
+
auth: {
|
|
49246
|
+
kind: "oauth2",
|
|
49247
|
+
authorizationUrl: "https://api.zoominfo.com/gtm/oauth/v1/authorize",
|
|
49248
|
+
tokenUrl: "https://api.zoominfo.com/gtm/oauth/v1/token",
|
|
49249
|
+
scopes: [
|
|
49250
|
+
"api:data:contact",
|
|
49251
|
+
"api:data:company",
|
|
49252
|
+
"api:data:intent",
|
|
49253
|
+
"api:data:scoops",
|
|
49254
|
+
"api:data:news"
|
|
49255
|
+
],
|
|
49256
|
+
clientIdEnv: "ZOOMINFO_OAUTH_CLIENT_ID",
|
|
49257
|
+
clientSecretEnv: "ZOOMINFO_OAUTH_CLIENT_SECRET"
|
|
49258
|
+
},
|
|
49259
|
+
category: "sales-intelligence",
|
|
49260
|
+
defaultConsistencyModel: "authoritative",
|
|
49261
|
+
baseUrl: "https://api.zoominfo.com",
|
|
49262
|
+
// `users/usage` is a free GET that proves the access token is valid.
|
|
49263
|
+
test: { method: "GET", path: "/gtm/data/v1/users/usage" },
|
|
49264
|
+
capabilities: [
|
|
49265
|
+
{
|
|
49266
|
+
name: "contact.search",
|
|
49267
|
+
class: "read",
|
|
49268
|
+
description: "Search the contact database by firmographic/persona criteria. Returns ranked matches with stable contactId values and basic info only (no emails/phones). Free. Pass contactId to contact.enrich for full detail.",
|
|
49269
|
+
parameters: {
|
|
49270
|
+
type: "object",
|
|
49271
|
+
properties: {
|
|
49272
|
+
data: {
|
|
49273
|
+
type: "object",
|
|
49274
|
+
description: 'Search criteria wrapped under `data`, e.g. { companyName, jobTitle: ["VP Sales"], managementLevel, zipCode }. Resolve valid field names via lookup.search_fields (entity=contact, fieldType=input).'
|
|
49275
|
+
},
|
|
49276
|
+
pageNumber: { type: "integer", description: "Page number, >= 1 (default 1)." },
|
|
49277
|
+
pageSize: { type: "integer", description: "Page size, 1\u2013100 (default 25)." },
|
|
49278
|
+
sort: { type: "string", description: "Sort field; prefix with - for descending." }
|
|
49279
|
+
},
|
|
49280
|
+
required: ["data"]
|
|
49281
|
+
},
|
|
49282
|
+
request: {
|
|
49283
|
+
method: "POST",
|
|
49284
|
+
path: "/gtm/data/v1/contacts/search",
|
|
49285
|
+
query: { "page[number]": "{pageNumber}", "page[size]": "{pageSize}", sort: "{sort}" },
|
|
49286
|
+
body: { data: "{data}" }
|
|
49287
|
+
}
|
|
49288
|
+
},
|
|
49289
|
+
{
|
|
49290
|
+
name: "company.search",
|
|
49291
|
+
class: "read",
|
|
49292
|
+
description: "Search the company database by firmographic filters (industry, revenue, employee count, geography, tech stack). Returns basic company info and stable companyId values. Free.",
|
|
49293
|
+
parameters: {
|
|
49294
|
+
type: "object",
|
|
49295
|
+
properties: {
|
|
49296
|
+
data: {
|
|
49297
|
+
type: "object",
|
|
49298
|
+
description: "Search criteria under `data`, e.g. { companyName, industry, employeeCount, revenue, location, technologies }. Resolve fields via lookup.search_fields (entity=company, fieldType=input)."
|
|
49299
|
+
},
|
|
49300
|
+
pageNumber: { type: "integer" },
|
|
49301
|
+
pageSize: { type: "integer" },
|
|
49302
|
+
sort: { type: "string" }
|
|
49303
|
+
},
|
|
49304
|
+
required: ["data"]
|
|
49305
|
+
},
|
|
49306
|
+
request: {
|
|
49307
|
+
method: "POST",
|
|
49308
|
+
path: "/gtm/data/v1/companies/search",
|
|
49309
|
+
query: { "page[number]": "{pageNumber}", "page[size]": "{pageSize}", sort: "{sort}" },
|
|
49310
|
+
body: { data: "{data}" }
|
|
49311
|
+
}
|
|
49312
|
+
},
|
|
49313
|
+
{
|
|
49314
|
+
name: "intent.search",
|
|
49315
|
+
class: "read",
|
|
49316
|
+
description: "Search for companies showing buyer-intent signals across 1\u201350 intent topics. Returns ranked companies with intent signal scores. Free.",
|
|
49317
|
+
parameters: {
|
|
49318
|
+
type: "object",
|
|
49319
|
+
properties: {
|
|
49320
|
+
data: {
|
|
49321
|
+
type: "object",
|
|
49322
|
+
description: 'Criteria under `data`, must include topics: ["cybersecurity", "cloud migration"] plus optional filters.'
|
|
49323
|
+
},
|
|
49324
|
+
pageNumber: { type: "integer" },
|
|
49325
|
+
pageSize: { type: "integer" },
|
|
49326
|
+
sort: { type: "string" }
|
|
49327
|
+
},
|
|
49328
|
+
required: ["data"]
|
|
49329
|
+
},
|
|
49330
|
+
request: {
|
|
49331
|
+
method: "POST",
|
|
49332
|
+
path: "/gtm/data/v1/intent/search",
|
|
49333
|
+
query: { "page[number]": "{pageNumber}", "page[size]": "{pageSize}", sort: "{sort}" },
|
|
49334
|
+
body: { data: "{data}" }
|
|
49335
|
+
}
|
|
49336
|
+
},
|
|
49337
|
+
{
|
|
49338
|
+
name: "scoops.search",
|
|
49339
|
+
class: "read",
|
|
49340
|
+
description: "Search real-time business-intelligence signals (Scoops: hiring, expansion, tech changes) across ZoomInfo companies. Free; each scoop counts against the record limit.",
|
|
49341
|
+
parameters: {
|
|
49342
|
+
type: "object",
|
|
49343
|
+
properties: {
|
|
49344
|
+
data: { type: "object", description: "Scoop filter criteria under `data`." },
|
|
49345
|
+
pageNumber: { type: "integer" },
|
|
49346
|
+
pageSize: { type: "integer" },
|
|
49347
|
+
sort: { type: "string", description: "e.g. scoopId | originalPublishedDate; default -originalPublishedDate." }
|
|
49348
|
+
},
|
|
49349
|
+
required: ["data"]
|
|
49350
|
+
},
|
|
49351
|
+
request: {
|
|
49352
|
+
method: "POST",
|
|
49353
|
+
path: "/gtm/data/v1/scoops/search",
|
|
49354
|
+
query: { "page[number]": "{pageNumber}", "page[size]": "{pageSize}", sort: "{sort}" },
|
|
49355
|
+
body: { data: "{data}" }
|
|
49356
|
+
}
|
|
49357
|
+
},
|
|
49358
|
+
{
|
|
49359
|
+
name: "news.search",
|
|
49360
|
+
class: "read",
|
|
49361
|
+
description: "Search news articles across ZoomInfo companies. All filters optional but at least one must be set. Free; each article counts as one record. No sort param.",
|
|
49362
|
+
parameters: {
|
|
49363
|
+
type: "object",
|
|
49364
|
+
properties: {
|
|
49365
|
+
data: { type: "object", description: "News filter criteria under `data`, e.g. { companyId, keywords }." },
|
|
49366
|
+
pageNumber: { type: "integer" },
|
|
49367
|
+
pageSize: { type: "integer" }
|
|
49368
|
+
},
|
|
49369
|
+
required: ["data"]
|
|
49370
|
+
},
|
|
49371
|
+
request: {
|
|
49372
|
+
method: "POST",
|
|
49373
|
+
path: "/gtm/data/v1/news/search",
|
|
49374
|
+
query: { "page[number]": "{pageNumber}", "page[size]": "{pageSize}" },
|
|
49375
|
+
body: { data: "{data}" }
|
|
49376
|
+
}
|
|
49377
|
+
},
|
|
49378
|
+
{
|
|
49379
|
+
name: "contact.enrich",
|
|
49380
|
+
class: "mutation",
|
|
49381
|
+
description: "Enrich up to 25 contacts with full detail (email, phone, jobTitle, 300+ fields). Best practice: contact.search first, then pass contactId. CONSUMES 1 bulk-data credit per matched record returned (waived if under management). `data` carries matchPersonInput + outputFields (+ optional requiredFields).",
|
|
49382
|
+
parameters: {
|
|
49383
|
+
type: "object",
|
|
49384
|
+
properties: {
|
|
49385
|
+
data: {
|
|
49386
|
+
type: "object",
|
|
49387
|
+
description: 'Enrich body under `data`, e.g. { matchPersonInput: [{ contactId } | { firstName, lastName, companyName, emailAddress }], outputFields: ["id","email","phone","jobTitle"], requiredFields: [] }.'
|
|
49388
|
+
}
|
|
49389
|
+
},
|
|
49390
|
+
required: ["data"]
|
|
49391
|
+
},
|
|
49392
|
+
request: { method: "POST", path: "/gtm/data/v1/contacts/enrich", body: { data: "{data}" } },
|
|
49393
|
+
cas: "native-idempotency",
|
|
49394
|
+
externalEffect: true
|
|
49395
|
+
},
|
|
49396
|
+
{
|
|
49397
|
+
name: "company.enrich",
|
|
49398
|
+
class: "mutation",
|
|
49399
|
+
description: "Enrich up to 25 companies with 300+ data points (firmographics, technographics). Best practice: company.search first, then pass companyId. CONSUMES 1 bulk-data credit per matched record. `data` carries matchCompanyInput + outputFields.",
|
|
49400
|
+
parameters: {
|
|
49401
|
+
type: "object",
|
|
49402
|
+
properties: {
|
|
49403
|
+
data: {
|
|
49404
|
+
type: "object",
|
|
49405
|
+
description: 'Enrich body under `data`, e.g. { matchCompanyInput: [{ companyId } | { companyName, website }], outputFields: ["id","name","website","industry","employeeCount","revenue"], requiredFields: [] }.'
|
|
49406
|
+
}
|
|
49407
|
+
},
|
|
49408
|
+
required: ["data"]
|
|
49409
|
+
},
|
|
49410
|
+
request: { method: "POST", path: "/gtm/data/v1/companies/enrich", body: { data: "{data}" } },
|
|
49411
|
+
cas: "native-idempotency",
|
|
49412
|
+
externalEffect: true
|
|
49413
|
+
},
|
|
49414
|
+
{
|
|
49415
|
+
name: "intent.enrich",
|
|
49416
|
+
class: "mutation",
|
|
49417
|
+
description: "Fetch intent signals for a specific known company (companyId, companyName, or companyWebsite) across 1\u201350 topics. CONSUMES bulk-data credits per enriched company.",
|
|
49418
|
+
parameters: {
|
|
49419
|
+
type: "object",
|
|
49420
|
+
properties: {
|
|
49421
|
+
data: { type: "object", description: "Body under `data`, e.g. { companyId, topics: [...] }." },
|
|
49422
|
+
pageNumber: { type: "integer" },
|
|
49423
|
+
pageSize: { type: "integer" }
|
|
49424
|
+
},
|
|
49425
|
+
required: ["data"]
|
|
49426
|
+
},
|
|
49427
|
+
request: {
|
|
49428
|
+
method: "POST",
|
|
49429
|
+
path: "/gtm/data/v1/intent/enrich",
|
|
49430
|
+
query: { "page[number]": "{pageNumber}", "page[size]": "{pageSize}" },
|
|
49431
|
+
body: { data: "{data}" }
|
|
49432
|
+
},
|
|
49433
|
+
cas: "native-idempotency",
|
|
49434
|
+
externalEffect: true
|
|
49435
|
+
},
|
|
49436
|
+
{
|
|
49437
|
+
name: "scoops.enrich",
|
|
49438
|
+
class: "mutation",
|
|
49439
|
+
description: "Fetch Scoops for a specific known company (at least one company identifier). CONSUMES 1 credit per enriched company; each returned scoop counts against the record limit.",
|
|
49440
|
+
parameters: {
|
|
49441
|
+
type: "object",
|
|
49442
|
+
properties: {
|
|
49443
|
+
data: { type: "object", description: "Body under `data`, e.g. { companyId }." },
|
|
49444
|
+
pageNumber: { type: "integer" },
|
|
49445
|
+
pageSize: { type: "integer" }
|
|
49446
|
+
},
|
|
49447
|
+
required: ["data"]
|
|
49448
|
+
},
|
|
49449
|
+
request: {
|
|
49450
|
+
method: "POST",
|
|
49451
|
+
path: "/gtm/data/v1/scoops/enrich",
|
|
49452
|
+
query: { "page[number]": "{pageNumber}", "page[size]": "{pageSize}" },
|
|
49453
|
+
body: { data: "{data}" }
|
|
49454
|
+
},
|
|
49455
|
+
cas: "native-idempotency",
|
|
49456
|
+
externalEffect: true
|
|
49457
|
+
},
|
|
49458
|
+
{
|
|
49459
|
+
name: "news.enrich",
|
|
49460
|
+
class: "mutation",
|
|
49461
|
+
description: "Fetch categorized news coverage for a specific known company (at least one company identifier). CONSUMES bulk-data credits per enriched company.",
|
|
49462
|
+
parameters: {
|
|
49463
|
+
type: "object",
|
|
49464
|
+
properties: {
|
|
49465
|
+
data: { type: "object", description: "Body under `data`, e.g. { companyId }." },
|
|
49466
|
+
pageNumber: { type: "integer" },
|
|
49467
|
+
pageSize: { type: "integer" }
|
|
49468
|
+
},
|
|
49469
|
+
required: ["data"]
|
|
49470
|
+
},
|
|
49471
|
+
request: {
|
|
49472
|
+
method: "POST",
|
|
49473
|
+
path: "/gtm/data/v1/news/enrich",
|
|
49474
|
+
query: { "page[number]": "{pageNumber}", "page[size]": "{pageSize}" },
|
|
49475
|
+
body: { data: "{data}" }
|
|
49476
|
+
},
|
|
49477
|
+
cas: "native-idempotency",
|
|
49478
|
+
externalEffect: true
|
|
49479
|
+
},
|
|
49480
|
+
{
|
|
49481
|
+
name: "lookup.data",
|
|
49482
|
+
class: "read",
|
|
49483
|
+
description: "Retrieve enumerated valid values for a filter field (industries, regions, job functions, management levels, technologies, intent topics). Use to build valid search bodies. Free.",
|
|
49484
|
+
parameters: {
|
|
49485
|
+
type: "object",
|
|
49486
|
+
properties: {
|
|
49487
|
+
fieldName: { type: "string", description: "The filter field to enumerate, e.g. industry, managementLevel." },
|
|
49488
|
+
category: { type: "string" },
|
|
49489
|
+
parentCategory: { type: "string" },
|
|
49490
|
+
subCategory: { type: "string" },
|
|
49491
|
+
vendor: { type: "string" }
|
|
49492
|
+
},
|
|
49493
|
+
required: ["fieldName"]
|
|
49494
|
+
},
|
|
49495
|
+
request: {
|
|
49496
|
+
method: "GET",
|
|
49497
|
+
path: "/gtm/data/v1/lookup/{fieldName}",
|
|
49498
|
+
query: {
|
|
49499
|
+
"filter[category]": "{category}",
|
|
49500
|
+
"filter[parentCategory]": "{parentCategory}",
|
|
49501
|
+
"filter[subCategory]": "{subCategory}",
|
|
49502
|
+
"filter[vendor]": "{vendor}"
|
|
49503
|
+
}
|
|
49504
|
+
}
|
|
49505
|
+
},
|
|
49506
|
+
{
|
|
49507
|
+
name: "lookup.search_fields",
|
|
49508
|
+
class: "read",
|
|
49509
|
+
description: "Discover the valid input and output field names for a search/enrich entity. REQUIRED to build correct search/enrich bodies and enrich outputFields. Free.",
|
|
49510
|
+
parameters: {
|
|
49511
|
+
type: "object",
|
|
49512
|
+
properties: {
|
|
49513
|
+
entity: { type: "string", description: "company | contact | scoop | news | intent." },
|
|
49514
|
+
fieldType: { type: "string", description: "input | output." }
|
|
49515
|
+
},
|
|
49516
|
+
required: ["entity", "fieldType"]
|
|
49517
|
+
},
|
|
49518
|
+
request: {
|
|
49519
|
+
method: "GET",
|
|
49520
|
+
path: "/gtm/data/v1/lookup/search",
|
|
49521
|
+
query: { "filter[entity]": "{entity}", "filter[fieldType]": "{fieldType}" }
|
|
49522
|
+
}
|
|
49523
|
+
},
|
|
49524
|
+
{
|
|
49525
|
+
name: "usage.get",
|
|
49526
|
+
class: "read",
|
|
49527
|
+
description: "Return the current user\u2019s API usage and limits (credits consumed, request counts, entitlements). Free.",
|
|
49528
|
+
parameters: { type: "object", properties: {} },
|
|
49529
|
+
request: { method: "GET", path: "/gtm/data/v1/users/usage" }
|
|
49530
|
+
}
|
|
49531
|
+
]
|
|
49532
|
+
});
|
|
49533
|
+
|
|
49534
|
+
// src/connectors/adapters/paychex.ts
|
|
49535
|
+
var paychexConnector = declarativeRestConnector({
|
|
49536
|
+
kind: "paychex",
|
|
49537
|
+
displayName: "Paychex",
|
|
49538
|
+
description: "Read HR and payroll data from Paychex: companies, workers, worker profiles, compensation, pay rates, communications, and federal tax setup.",
|
|
49539
|
+
auth: {
|
|
49540
|
+
kind: "oauth2",
|
|
49541
|
+
grantType: "client_credentials",
|
|
49542
|
+
tokenUrl: "https://api.paychex.com/auth/oauth/v2/token",
|
|
49543
|
+
scopes: [],
|
|
49544
|
+
clientIdEnv: "PAYCHEX_OAUTH_CLIENT_ID",
|
|
49545
|
+
clientSecretEnv: "PAYCHEX_OAUTH_CLIENT_SECRET"
|
|
49546
|
+
},
|
|
49547
|
+
category: "hr",
|
|
49548
|
+
defaultConsistencyModel: "authoritative",
|
|
49549
|
+
baseUrl: { metadataKey: "apiBaseUri", fallback: "https://api.paychex.com" },
|
|
49550
|
+
// Listing companies is the cheapest read that proves the client-credentials
|
|
49551
|
+
// token is valid and the app has been granted access.
|
|
49552
|
+
test: { method: "GET", path: "/companies" },
|
|
49553
|
+
capabilities: [
|
|
49554
|
+
{
|
|
49555
|
+
name: "companies.list",
|
|
49556
|
+
class: "read",
|
|
49557
|
+
description: "List all companies the app has been granted access to. Each carries the companyId (UUID) needed for company-scoped calls.",
|
|
49558
|
+
parameters: {
|
|
49559
|
+
type: "object",
|
|
49560
|
+
properties: {
|
|
49561
|
+
limit: { type: "integer", description: "Page size, max 100 (default 25)." },
|
|
49562
|
+
offset: { type: "integer", description: "Zero-based pagination offset." },
|
|
49563
|
+
displayid: { type: "string", description: "Filter by the company display id." }
|
|
49564
|
+
}
|
|
49565
|
+
},
|
|
49566
|
+
request: {
|
|
49567
|
+
method: "GET",
|
|
49568
|
+
path: "/companies",
|
|
49569
|
+
query: { limit: "{limit}", offset: "{offset}", displayid: "{displayid}" }
|
|
49570
|
+
}
|
|
49571
|
+
},
|
|
49572
|
+
{
|
|
49573
|
+
name: "companies.get",
|
|
49574
|
+
class: "read",
|
|
49575
|
+
description: "Read a single company by companyId.",
|
|
49576
|
+
parameters: {
|
|
49577
|
+
type: "object",
|
|
49578
|
+
properties: { companyId: { type: "string" } },
|
|
49579
|
+
required: ["companyId"]
|
|
49580
|
+
},
|
|
49581
|
+
request: { method: "GET", path: "/companies/{companyId}" }
|
|
49582
|
+
},
|
|
49583
|
+
{
|
|
49584
|
+
name: "companies.workers.list",
|
|
49585
|
+
class: "read",
|
|
49586
|
+
description: "List workers (employees + contractors) for a company. Minimal fields per worker (givenName, familyName, legalId, workerId); sub-resources are separate calls. Use statusType=ACTIVE to exclude terminated workers.",
|
|
49587
|
+
parameters: {
|
|
49588
|
+
type: "object",
|
|
49589
|
+
properties: {
|
|
49590
|
+
companyId: { type: "string" },
|
|
49591
|
+
limit: { type: "integer", description: "Page size, max 100." },
|
|
49592
|
+
offset: { type: "integer" },
|
|
49593
|
+
statusType: { type: "string", description: "e.g. ACTIVE to exclude terminated workers." },
|
|
49594
|
+
employeeId: { type: "string", description: "Filter to a specific employee id." }
|
|
49595
|
+
},
|
|
49596
|
+
required: ["companyId"]
|
|
49597
|
+
},
|
|
49598
|
+
request: {
|
|
49599
|
+
method: "GET",
|
|
49600
|
+
path: "/companies/{companyId}/workers",
|
|
49601
|
+
query: {
|
|
49602
|
+
limit: "{limit}",
|
|
49603
|
+
offset: "{offset}",
|
|
49604
|
+
statusType: "{statusType}",
|
|
49605
|
+
employeeId: "{employeeId}"
|
|
49606
|
+
}
|
|
49607
|
+
}
|
|
49608
|
+
},
|
|
49609
|
+
{
|
|
49610
|
+
name: "workers.get",
|
|
49611
|
+
class: "read",
|
|
49612
|
+
description: "Full profile for a single worker: demographics, employment type, hire date, current status, job info.",
|
|
49613
|
+
parameters: {
|
|
49614
|
+
type: "object",
|
|
49615
|
+
properties: { workerId: { type: "string" } },
|
|
49616
|
+
required: ["workerId"]
|
|
49617
|
+
},
|
|
49618
|
+
request: { method: "GET", path: "/workers/{workerId}" }
|
|
49619
|
+
},
|
|
49620
|
+
{
|
|
49621
|
+
name: "workers.compensation.get",
|
|
49622
|
+
class: "read",
|
|
49623
|
+
description: "Compensation overview for a worker: payFrequency, flsaStatus, calculatedAnnualPay, calculatedPayPeriod, defaultOvertimeFactor (with HATEOAS links to payrates and paystandards).",
|
|
49624
|
+
parameters: {
|
|
49625
|
+
type: "object",
|
|
49626
|
+
properties: { workerId: { type: "string" } },
|
|
49627
|
+
required: ["workerId"]
|
|
49628
|
+
},
|
|
49629
|
+
request: { method: "GET", path: "/workers/{workerId}/compensation" }
|
|
49630
|
+
},
|
|
49631
|
+
{
|
|
49632
|
+
name: "workers.compensation.payrates.list",
|
|
49633
|
+
class: "read",
|
|
49634
|
+
description: "All pay rate profiles for a worker (up to 25): rateId, startDate, rateType, amount, standardHours, standardOvertime. `asof` scopes to an effective date.",
|
|
49635
|
+
parameters: {
|
|
49636
|
+
type: "object",
|
|
49637
|
+
properties: {
|
|
49638
|
+
workerId: { type: "string" },
|
|
49639
|
+
asof: { type: "string", description: "Effective date to scope the rates to (YYYY-MM-DD)." }
|
|
49640
|
+
},
|
|
49641
|
+
required: ["workerId"]
|
|
49642
|
+
},
|
|
49643
|
+
request: {
|
|
49644
|
+
method: "GET",
|
|
49645
|
+
path: "/workers/{workerId}/compensation/payrates",
|
|
49646
|
+
query: { asof: "{asof}" }
|
|
49647
|
+
}
|
|
49648
|
+
},
|
|
49649
|
+
{
|
|
49650
|
+
name: "workers.compensation.paystandards.get",
|
|
49651
|
+
class: "read",
|
|
49652
|
+
description: "Pay standards for a worker: payFrequency (WEEKLY/BI_WEEKLY/SEMI_MONTHLY/MONTHLY), defaultOvertimeFactor, calculatedPayPeriod, calculatedAnnualSalary.",
|
|
49653
|
+
parameters: {
|
|
49654
|
+
type: "object",
|
|
49655
|
+
properties: { workerId: { type: "string" } },
|
|
49656
|
+
required: ["workerId"]
|
|
49657
|
+
},
|
|
49658
|
+
request: { method: "GET", path: "/workers/{workerId}/compensation/paystandards" }
|
|
49659
|
+
},
|
|
49660
|
+
{
|
|
49661
|
+
name: "workers.communications.list",
|
|
49662
|
+
class: "read",
|
|
49663
|
+
description: "Worker contact info (email addresses, phone numbers) \u2014 not embedded in the base worker profile.",
|
|
49664
|
+
parameters: {
|
|
49665
|
+
type: "object",
|
|
49666
|
+
properties: { workerId: { type: "string" } },
|
|
49667
|
+
required: ["workerId"]
|
|
49668
|
+
},
|
|
49669
|
+
request: { method: "GET", path: "/workers/{workerId}/communications" }
|
|
49670
|
+
},
|
|
49671
|
+
{
|
|
49672
|
+
name: "workers.federaltax.get",
|
|
49673
|
+
class: "read",
|
|
49674
|
+
description: "W-4 federal tax withholding configuration for a worker.",
|
|
49675
|
+
parameters: {
|
|
49676
|
+
type: "object",
|
|
49677
|
+
properties: { workerId: { type: "string" } },
|
|
49678
|
+
required: ["workerId"]
|
|
49679
|
+
},
|
|
49680
|
+
request: { method: "GET", path: "/workers/{workerId}/federaltax" }
|
|
49681
|
+
}
|
|
49682
|
+
]
|
|
49683
|
+
});
|
|
49684
|
+
|
|
49685
|
+
// src/connectors/adapters/adp.ts
|
|
49686
|
+
var adpConnector = declarativeRestConnector({
|
|
49687
|
+
kind: "adp",
|
|
49688
|
+
displayName: "ADP",
|
|
49689
|
+
description: "Read HR and payroll data from ADP Workforce Now: workers, worker demographics, pay statements, and pay distributions. Requires mutual-TLS client certificates (see adapter notes) in addition to OAuth2.",
|
|
49690
|
+
auth: {
|
|
49691
|
+
kind: "oauth2",
|
|
49692
|
+
authorizationUrl: "https://accounts.adp.com/auth/oauth/v2/authorize",
|
|
49693
|
+
tokenUrl: "https://accounts.adp.com/auth/oauth/v2/token",
|
|
49694
|
+
scopes: [
|
|
49695
|
+
"hr/workerInformationManagement/read",
|
|
49696
|
+
"payroll/payStatementManagement/read"
|
|
49697
|
+
],
|
|
49698
|
+
clientIdEnv: "ADP_OAUTH_CLIENT_ID",
|
|
49699
|
+
clientSecretEnv: "ADP_OAUTH_CLIENT_SECRET"
|
|
49700
|
+
},
|
|
49701
|
+
category: "hr",
|
|
49702
|
+
defaultConsistencyModel: "authoritative",
|
|
49703
|
+
baseUrl: "https://api.adp.com",
|
|
49704
|
+
// ADP requires a roleCode on most HR/payroll endpoints; practitioner is the
|
|
49705
|
+
// broadest read role. (PII stays masked unless the caller opts into
|
|
49706
|
+
// `Accept: application/json;masked=false`.)
|
|
49707
|
+
defaultHeaders: { roleCode: "practitioner" },
|
|
49708
|
+
test: { method: "GET", path: "/hr/v2/workers/meta" },
|
|
49709
|
+
capabilities: [
|
|
49710
|
+
{
|
|
49711
|
+
name: "worker.list",
|
|
49712
|
+
class: "read",
|
|
49713
|
+
description: "Collection of all workers for the authenticated client. OData paging via $top/$skip (default 50, max 100); total at meta.totalNumber. The associateOID on each worker is the key for per-worker endpoints. SSN/birth date are masked.",
|
|
49714
|
+
parameters: {
|
|
49715
|
+
type: "object",
|
|
49716
|
+
properties: {
|
|
49717
|
+
top: { type: "integer", description: "OData $top page size (default 50, max 100)." },
|
|
49718
|
+
skip: { type: "integer", description: "OData $skip offset for pagination." },
|
|
49719
|
+
filter: { type: "string", description: "OData $filter expression." },
|
|
49720
|
+
select: { type: "string", description: "OData $select field projection." }
|
|
49721
|
+
}
|
|
49722
|
+
},
|
|
49723
|
+
request: {
|
|
49724
|
+
method: "GET",
|
|
49725
|
+
path: "/hr/v2/workers",
|
|
49726
|
+
query: { $top: "{top}", $skip: "{skip}", $filter: "{filter}", $select: "{select}" }
|
|
49727
|
+
}
|
|
49728
|
+
},
|
|
49729
|
+
{
|
|
49730
|
+
name: "worker.get",
|
|
49731
|
+
class: "read",
|
|
49732
|
+
description: "A single worker by Associate OID (aoid). SSN/birth date are masked unless unmasking is requested.",
|
|
49733
|
+
parameters: {
|
|
49734
|
+
type: "object",
|
|
49735
|
+
properties: {
|
|
49736
|
+
aoid: { type: "string", description: "Associate OID from worker.list." },
|
|
49737
|
+
select: { type: "string", description: "OData $select field projection." }
|
|
49738
|
+
},
|
|
49739
|
+
required: ["aoid"]
|
|
49740
|
+
},
|
|
49741
|
+
request: {
|
|
49742
|
+
method: "GET",
|
|
49743
|
+
path: "/hr/v2/workers/{aoid}",
|
|
49744
|
+
query: { $select: "{select}" }
|
|
49745
|
+
}
|
|
49746
|
+
},
|
|
49747
|
+
{
|
|
49748
|
+
name: "worker.demographics.list",
|
|
49749
|
+
class: "read",
|
|
49750
|
+
description: "Worker collection WITHOUT PII/SPI (no SSN, no full birth date) \u2014 a lighter payload than worker.list. OData paging supported.",
|
|
49751
|
+
parameters: {
|
|
49752
|
+
type: "object",
|
|
49753
|
+
properties: {
|
|
49754
|
+
top: { type: "integer" },
|
|
49755
|
+
skip: { type: "integer" },
|
|
49756
|
+
filter: { type: "string" },
|
|
49757
|
+
select: { type: "string" }
|
|
49758
|
+
}
|
|
49759
|
+
},
|
|
49760
|
+
request: {
|
|
49761
|
+
method: "GET",
|
|
49762
|
+
path: "/hr/v2/worker-demographics",
|
|
49763
|
+
query: { $top: "{top}", $skip: "{skip}", $filter: "{filter}", $select: "{select}" }
|
|
49764
|
+
}
|
|
49765
|
+
},
|
|
49766
|
+
{
|
|
49767
|
+
name: "worker.demographics.get",
|
|
49768
|
+
class: "read",
|
|
49769
|
+
description: "Demographic data for one worker by Associate OID, without PII/SPI.",
|
|
49770
|
+
parameters: {
|
|
49771
|
+
type: "object",
|
|
49772
|
+
properties: {
|
|
49773
|
+
aoid: { type: "string" },
|
|
49774
|
+
select: { type: "string" }
|
|
49775
|
+
},
|
|
49776
|
+
required: ["aoid"]
|
|
49777
|
+
},
|
|
49778
|
+
request: {
|
|
49779
|
+
method: "GET",
|
|
49780
|
+
path: "/hr/v2/worker-demographics/{aoid}",
|
|
49781
|
+
query: { $select: "{select}" }
|
|
49782
|
+
}
|
|
49783
|
+
},
|
|
49784
|
+
{
|
|
49785
|
+
name: "paystatements.list",
|
|
49786
|
+
class: "read",
|
|
49787
|
+
description: "Pay statements for one worker: payDate, net/gross pay amounts, total hours, and a statement image URI. Use numberoflastpaydates to cap results.",
|
|
49788
|
+
parameters: {
|
|
49789
|
+
type: "object",
|
|
49790
|
+
properties: {
|
|
49791
|
+
aoid: { type: "string", description: "Associate OID from worker.list." },
|
|
49792
|
+
numberoflastpaydates: { type: "integer", description: "Limit to the N most recent pay dates." }
|
|
49793
|
+
},
|
|
49794
|
+
required: ["aoid"]
|
|
49795
|
+
},
|
|
49796
|
+
request: {
|
|
49797
|
+
method: "GET",
|
|
49798
|
+
path: "/payroll/v1/workers/{aoid}/pay-statements",
|
|
49799
|
+
query: { numberoflastpaydates: "{numberoflastpaydates}" }
|
|
49800
|
+
}
|
|
49801
|
+
},
|
|
49802
|
+
{
|
|
49803
|
+
name: "paystatements.get",
|
|
49804
|
+
class: "read",
|
|
49805
|
+
description: "Full detail of one pay statement: pay period, net/gross/YTD amounts, earnings, deductions, and memos. The pay-statement id is resolved from paystatements.list.",
|
|
49806
|
+
parameters: {
|
|
49807
|
+
type: "object",
|
|
49808
|
+
properties: {
|
|
49809
|
+
aoid: { type: "string" },
|
|
49810
|
+
payStatementId: { type: "string", description: "Pay statement id from paystatements.list." }
|
|
49811
|
+
},
|
|
49812
|
+
required: ["aoid", "payStatementId"]
|
|
49813
|
+
},
|
|
49814
|
+
request: { method: "GET", path: "/payroll/v1/workers/{aoid}/pay-statements/{payStatementId}" }
|
|
49815
|
+
},
|
|
49816
|
+
{
|
|
49817
|
+
name: "paydistributions.get",
|
|
49818
|
+
class: "read",
|
|
49819
|
+
description: "Direct-deposit distribution setup for one worker: accounts, routing numbers, distribution amounts, and remaining-balance flags.",
|
|
49820
|
+
parameters: {
|
|
49821
|
+
type: "object",
|
|
49822
|
+
properties: { aoid: { type: "string" } },
|
|
49823
|
+
required: ["aoid"]
|
|
49824
|
+
},
|
|
49825
|
+
request: { method: "GET", path: "/payroll/v2/workers/{aoid}/pay-distributions" }
|
|
49826
|
+
}
|
|
49827
|
+
]
|
|
49828
|
+
});
|
|
49829
|
+
|
|
48265
49830
|
// src/connectors/adapters/ashby.ts
|
|
48266
49831
|
var ashbyConnector = declarativeRestConnector({
|
|
48267
49832
|
kind: "ashby",
|
|
@@ -118839,6 +120404,13 @@ export {
|
|
|
118839
120404
|
apitableConnector,
|
|
118840
120405
|
aminosConnector,
|
|
118841
120406
|
apolloConnector,
|
|
120407
|
+
similarwebConnector,
|
|
120408
|
+
semrushConnector,
|
|
120409
|
+
cognismConnector,
|
|
120410
|
+
clayConnector,
|
|
120411
|
+
zoominfoConnector,
|
|
120412
|
+
paychexConnector,
|
|
120413
|
+
adpConnector,
|
|
118842
120414
|
ashbyConnector,
|
|
118843
120415
|
assemblyaiConnector,
|
|
118844
120416
|
avianConnector,
|
|
@@ -119192,4 +120764,4 @@ export {
|
|
|
119192
120764
|
pipedreamConnector,
|
|
119193
120765
|
adapters_exports
|
|
119194
120766
|
};
|
|
119195
|
-
//# sourceMappingURL=chunk-
|
|
120767
|
+
//# sourceMappingURL=chunk-COKK7BOH.js.map
|