For Developers
Build governed relationship analysis in the customer data plane.
GraphQL and REST APIs. TypeScript and C# SDKs. Free open-source Scout with MIT licence. Scout stores relationship facts, snapshots, attribution paths, and vectors in PostgreSQL/pgvector for developer proof and lower-load use. Enterprise/Fortress adds the Rust/LanceDB runtime for high-load relationship memory before Fortress sends JSON to the customer's LLM or Elite uses the on-prem open-source model path.
Builder spark
The developer win: one clean contract from source event to JSON handoff.
Scout gives engineers a practical path: register the source, shape the selector, inspect the relationship fact, read the attribution path, and hand a model the JSON it needs.
Start with a local proof instead of a platform migration.
See the exact contract before the enterprise runtime expands.
Move to Fortress or Elite when volume, concurrency, and LanceDB search matter.
GraphQL Quick Start
Get governed facts for any entity in three lines:
query GetEvidence($entityId: ID!) {
evidenceSnapshot(entityId: $entityId) {
facts {
attribute { key label }
value
confidence
provenance { sourceSystem fieldPath timestamp }
}
}
}TypeScript data-plane call
const response = await fetch(process.env.DATA_PLANE_GRAPHQL_URL!, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.DATA_PLANE_TOKEN}`,
},
body: JSON.stringify({
query: 'query GetEvidence($entityId: ID!) { evidenceSnapshot(entityId: $entityId) { facts { value confidence provenance { sourceSystem } } } }',
variables: { entityId: 'contact-123' },
}),
});
const { data } = await response.json();
console.log(data.evidenceSnapshot.facts);C# data-plane call
using System.Net.Http.Headers;
using System.Net.Http.Json;
using var http = new HttpClient
{
BaseAddress = new Uri(Environment.GetEnvironmentVariable("DATA_PLANE_GRAPHQL_URL")!)
};
http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
"Bearer",
Environment.GetEnvironmentVariable("DATA_PLANE_TOKEN"));
var payload = new
{
query = "query GetEvidence($entityId: ID!) { evidenceSnapshot(entityId: $entityId) { facts { value confidence } } }",
variables = new { entityId = "contact-123" }
};
var result = await http.PostAsJsonAsync("", payload);
var evidence = await result.Content.ReadFromJsonAsync<EvidenceResponse>();
Console.WriteLine(evidence?.Data.EvidenceSnapshot.Facts.Count);Free Open Source vs Enterprise
| Feature | Scout (Free & Open Source) | Enterprise |
|---|---|---|
| Core selector engine | ✓ | ✓ |
| Relationship facts + snapshots | ✓ | ✓ |
| GraphQL + REST API | ✓ | ✓ |
| React admin console | ✓ | ✓ |
| PostgreSQL/pgvector proof store | ✓ | ✓ |
| SQLite connector | ✓ | ✓ |
| TypeScript + C# SDKs | ✓ | ✓ |
| SQL Server / PostgreSQL connectors | — | ✓ |
| CRM connectors (Salesforce, HubSpot) | — | ✓ |
| Canonical Rust relationship/weighting/traversal engine | — | ✓ |
| LanceDB high-load vector store | — | ✓ |
| Production P95/P99 sizing path | — | ✓ |
| Identity (OIDC, SCIM, SAML) | — | ✓ |
| Governance + compliance exports | — | ✓ |
| Credential vaults | — | ✓ |
| Fortress JSON to customer LLM; Elite on-prem open-source LLM | — | ✓ |
| Relationship-analysis discovery | — | ✓ |
| Helm charts + air-gapped deploy | — | ✓ |
Start with the data plane.
Clone free open-source Scout, run the local demo, and inspect how source fields become relationship facts in PostgreSQL/pgvector without sending raw operational records into KynticAI product operations. Move to Fortress or Elite when you need more than proof scale: roughly 100,000 relationship/vector records, 250,000 source events a month, high concurrency, LanceDB search, or production P95/P99 sizing.