Node.js / TypeScript SDK
The stable SDK surface is intentionally small and webhook-first.
Stable surface​
conduit.reports.create(...)conduit.reports.get(...)conduit.psychometrics.create(...)conduit.psychometrics.get(...)conduit.matching.create(...)conduit.matching.get(...)conduit.webhooks.verifySignature(...)conduit.webhooks.parseEvent(...)
Advanced stable primitives​
conduit.primitives.entities.get(...)conduit.primitives.entities.list(...)conduit.primitives.entities.update(...)conduit.primitives.media.upload(...)conduit.primitives.media.get(...)conduit.primitives.media.list(...)conduit.primitives.media.delete(...)conduit.primitives.media.setRetentionLock(...)conduit.primitives.jobs.get(...)conduit.primitives.jobs.cancel(...)
List primitives use cursor pagination with a default limit of 20, a max limit of 100, and latests first ordering. Deleted media stays hidden unless you pass includeDeleted: true.
Report generation typically takes around 150s, so production flows should always prefer webhook delivery. psychometrics is the additional stable sync workflow when you want the direct trait payload instead of an async report job.
Quick example​
import { Conduit } from "@mappa-ai/conduit"
const conduitClient = new Conduit({ apiKey: process.env.CONDUIT_API_KEY! })
await conduitClient.reports.create({
source: { url: "https://example.com/sales-call.mp3" },
output: { template: "sales_playbook" },
target: { strategy: "dominant" },
webhook: { url: "https://your-app.com/webhooks/conduit" },
})
Psychometrics quick example​
const result = await conduitClient.psychometrics.create({
source: { path: "./calls/candidate-call.wav" },
target: { strategy: "magic_hint", hint: "the candidate" },
})
console.log(result.analysisId)
console.log(result.psychometrics.conscientiousness)
Psychometrics stays narrow on purpose: accepted targets are { strategy: "dominant" } and { strategy: "magic_hint", hint }, and accepted sources are file, url, or path.
Documentation​
Getting started​
Reliability and operations​
Legacy resources​
The pages below are kept for migration context. These resources are not part of the stable SDK surface anymore.
Matching​
Matching is part of the stable SDK surface on conduit.matching.*.