Skip to main content
The Narrative TypeScript SDK (@narrative.io/data-collaboration-sdk-ts) provides type-safe access to the Narrative API for Node.js and TypeScript applications.

Installation

npm install @narrative.io/data-collaboration-sdk-ts

Quick start

import { NarrativeApi } from '@narrative.io/data-collaboration-sdk-ts';

const api = new NarrativeApi({
  apiKey: process.env.NARRATIVE_API_KEY,
});

// Execute an NQL query
const result = await api.executeNql({
  nql: 'SELECT * FROM company_data."my_dataset" LIMIT 10',
  data_plane_id: null,
});

// List datasets
const datasets = await api.getDatasets();

Architecture

The SDK uses a mixin pattern to combine multiple API modules into a single NarrativeApi class. This provides a unified interface while maintaining type safety for each module’s methods.
// All API methods are available on the NarrativeApi instance
const api = new NarrativeApi({ apiKey: 'your-key' });

// NQL operations
await api.executeNql({ ... });
await api.compileNql({ ... });

// Dataset operations
await api.getDatasets();
await api.getDataset(datasetId);

// Job tracking
await api.getJobs();
await api.getJob(jobId);

Available API modules

The SDK provides access to the following API modules:
ModuleMethodsDescription
NQLexecuteNql(), compileNql(), validateNql(), parseNql()Execute and analyze NQL queries
DatasetsgetDatasets(), getDataset(), createDataset(), updateDataset(), deleteDataset()Manage datasets
JobsgetJobs(), getJob()Track asynchronous job status
UploadsUpload file operationsUpload data to datasets
Access RulesgetAccessRules(), createAccessRule(), updateAccessRule(), deleteAccessRule()Manage permissions
MappingsRosetta Stone mapping operationsWork with schema mappings
Data PlanesgetDataPlanes()Data plane operations
SubscriptionsgetSubscriptions()Manage data subscriptions
Access TokensToken management operationsManage API tokens
For complete method signatures and parameters, see API Modules Reference.

Requirements

  • Node.js: 18 or later
  • TypeScript: 4.7 or later (for TypeScript users)

Source and issues