Skip to content

API Reference

Complete reference documentation for the Contio Partner SDK.

SDK Classes

ContioPartnerSDK

The main entry point for the SDK. Use the static factory methods to create SDK instances.

import { ContioPartnerSDK } from '@contio/partner-sdk';

// For OAuth user operations
const { oauth, user } = ContioPartnerSDK.forUser({
  clientId: 'your-client-id',
  clientSecret: 'your-client-secret',
  redirectUri: 'https://your-app.com/callback'
});

// For API key admin operations
const { admin } = ContioPartnerSDK.forAdmin({
  apiKey: 'your-api-key'
});

OAuthClient

Handles OAuth 2.0 authorization flow.

Method Description
getAuthorizationUrl(state?, scopes?) Generate authorization URL
exchangeCodeForToken(code) Exchange authorization code for tokens
refreshToken(refreshToken) Refresh an expired access token
setTokens(tokens) Set tokens for authenticated requests

PartnerUserClient

Access user data via OAuth 2.0.

Meetings

// List meetings with optional filters
const meetings = await sdk.user.getMeetings({
  limit: 50,                           // Max results (default: 20)
  offset: 0,                           // Pagination offset
  start_date: '2024-01-01T00:00:00Z',  // Filter by start date
  end_date: '2024-12-31T23:59:59Z'     // Filter by end date
});

// Get specific meeting
const meeting = await sdk.user.getMeeting(meetingId);

// Get meeting notes/summary
const notes = await sdk.user.getMeetingNotes(meetingId);

// Get meeting transcript
const transcript = await sdk.user.getMeetingTranscript(meetingId);

Action Items

// List action items with optional filters
const actionItems = await sdk.user.getActionItems({
  limit: 50,
  offset: 0,
  meeting_id: 'meeting-id',           // Filter by meeting
  is_completed: false,                 // Filter by status
  has_partner_assignment: true         // Only partner-assigned items
});

// Create action item
const newItem = await sdk.user.createActionItem({
  meeting_id: 'meeting-id',
  description: 'Follow up with client',
  due_date: '2024-01-08T17:00:00Z',   // RFC3339 format
  partner_context: {                   // Custom metadata
    crm_id: '12345',
    priority: 'high'
  }
});

// Update action item
const updated = await sdk.user.updateActionItem(actionItemId, {
  is_completed: true,
  partner_context: { resolution: 'Completed via email' }
});

// Delete action item
await sdk.user.deleteActionItem(actionItemId);

User Profile

// Get authenticated user's profile
const profile = await sdk.user.getProfile();
// profile.workspace_id    - UUID of the user's workspace
// profile.workspace_name  - Display name of the workspace
// profile.workspace_role  - "WORKSPACE_OWNER" | "WORKSPACE_ADMIN" | "WORKSPACE_MEMBER"

// List user's workspaces
const workspaces = await sdk.user.getWorkspaces();

PartnerAdminClient

Manage partner app configuration via API key.

Workflows

// List workflows
const workflows = await sdk.admin.getWorkflows({ limit: 50, offset: 0 });

// Create workflow
const workflow = await sdk.admin.createWorkflow({
  name: 'CRM Integration',
  description: 'Sync action items to CRM',
  trigger_type: 'action_item_created',
  actions: [{
    type: 'webhook',
    config: { url: 'https://your-crm.com/webhook', method: 'POST' }
  }]
});

// Update workflow
await sdk.admin.updateWorkflow(workflowId, { status: 'active' });

// Delete workflow
await sdk.admin.deleteWorkflow(workflowId);

Partner App Management

// Get app info
const app = await sdk.admin.getApp();

// Update app details
await sdk.admin.updateApp({
  name: 'Updated App Name',
  webhook_url: 'https://new-webhook-url.com'
});

// Get usage statistics
const stats = await sdk.admin.getStats();

User Connections

// List user connections
const connections = await sdk.admin.getConnections({
  limit: 50,
  offset: 0,
  status: 'active'  // 'active' | 'revoked'
});

// Revoke a connection
await sdk.admin.revokeConnection(connectionId);

Webhook Deliveries

// List webhook deliveries
const deliveries = await sdk.admin.getWebhookDeliveries({
  limit: 50,
  offset: 0,
  status: 'failed'  // 'pending' | 'success' | 'failed'
});

// Retry failed delivery
await sdk.admin.retryWebhookDelivery(deliveryId);

Credential Management

See Credential Management Guide for detailed rotation workflows.

WebhookVerifier

Verify webhook signatures for security.

import { WebhookVerifier } from '@contio/partner-sdk';

const verifier = new WebhookVerifier(webhookSecret);
const result = verifier.verifySignature(payload, signature, timestamp);

if (result.isValid) {
  // Process webhook
} else {
  console.error('Invalid signature:', result.error);
}

Advanced Configuration

The SDK supports custom configuration for advanced use cases:

import { ContioPartnerSDK } from '@contio/partner-sdk';

const sdk = new ContioPartnerSDK({
  oauth: {
    clientId: 'your-client-id',
    clientSecret: 'your-client-secret',
    redirectUri: 'https://your-app.com/callback'
  },
  apiKey: 'your-api-key',
  baseURL: 'https://api.contio.ai',  // Custom API endpoint
  timeout: 60000                      // Request timeout in ms (default: 30000)
});
Option Type Default Description
oauth.clientId string - OAuth client ID
oauth.clientSecret string - OAuth client secret
oauth.redirectUri string - OAuth redirect URI
apiKey string - API key for admin operations
baseURL string https://api.contio.ai API base URL
timeout number 30000 Request timeout in milliseconds

TypeDoc Reference

For detailed type definitions, interfaces, and method signatures, see the full TypeDoc-generated documentation:

View TypeDoc API Reference →

Types & Interfaces

Key interfaces exported by the SDK:

  • Meeting - Meeting object
  • ActionItem - Action item object
  • Workflow - Workflow configuration
  • WebhookEvent - Webhook event payload
  • OAuthTokens - OAuth token response
  • PartnerApp - Partner app configuration
  • PartnerStats - Usage statistics

See TypeDoc Reference for complete type definitions.