Skip to main content

Installation

npm install @getgraniteai/ts-sdk

Configuration

For browser apps where users are logged in:
import { client } from '@getgraniteai/ts-sdk';

client.setConfig({
  baseUrl: 'https://api.getgranite.ai',
  credentials: 'include', // Send cookies
  headers: {
    'Content-Type': 'application/json',
  },
});

With API Key

For server-side or automated use:
import { client } from '@getgraniteai/ts-sdk';

client.setConfig({
  baseUrl: 'https://api.getgranite.ai',
  headers: {
    'X-Granite-API-Key': process.env.GRANITE_API_KEY,
    'Content-Type': 'application/json',
  },
});

Environment Variables

Keep credentials out of code:
# .env
GRANITE_API_KEY=gk_live_abc123...
GRANITE_API_URL=https://api.getgranite.ai
import { client } from '@getgraniteai/ts-sdk';

client.setConfig({
  baseUrl: process.env.GRANITE_API_URL,
  headers: {
    'X-Granite-API-Key': process.env.GRANITE_API_KEY,
  },
});

TypeScript Setup

The SDK includes full TypeScript types. No additional setup needed.
import type {
  WorkflowJob,
  AgentRun,
  Organization,
} from '@getgraniteai/ts-sdk';

const job: WorkflowJob = await client.getWorkflowJob({
  jobId: 'job_123',
});

Verifying Installation

Test that everything works:
import { client } from '@getgraniteai/ts-sdk';

client.setConfig({
  baseUrl: 'https://api.getgranite.ai',
  headers: {
    'X-Granite-API-Key': process.env.GRANITE_API_KEY,
  },
});

// This should work if API key is valid
const status = await client.getHealthStatus();
console.log('API Status:', status);

Error Handling

The SDK throws on HTTP errors:
try {
  const result = await client.someOperation();
} catch (error) {
  if (error.status === 401) {
    console.error('Invalid API key');
  } else if (error.status === 404) {
    console.error('Resource not found');
  } else {
    console.error('API error:', error.message);
  }
}

Next Steps