Skip to main content

Introduction

The @refine-ai/sdk package is the official TypeScript SDK for integrating Refine into your application. It provides:
  • Search — Text and image search with visual AI
  • Recommendations — Similar items, visitor, and user-based personalization
  • Product Listing Pages — Curated collections with pinned products
  • Event Tracking — Comprehensive analytics with automatic batching
  • Identity Management — Visitor, session, and user tracking
  • Plugins — Extensible architecture for consent, debugging, and auto-tracking

Quick Example

import { Refine } from '@refine-ai/sdk';

// Initialize
const refine = new Refine({
  apiKey: process.env.REFINE_API_KEY,
  organizationId: 'org_abc123',
  catalogId: 'cat_xyz789'
});

// Search
const results = await refine.search.text({
  query: 'summer dress',
  topK: 24,
  visualWeight: 0.5
});

// Track events
const context = refine.events.trackSearch('summer dress', results.results, {
  surface: 'search_results',
  totalResults: results.totalResults
});

// Handle user interaction
context.trackClick('sku_001', 0);

// Get recommendations
const recs = await refine.recs.similarItems({
  anchorId: 'sku_001',
  topK: 8
});

// Identify logged-in users
refine.identify('user_12345');

SDK Structure

The SDK is organized into namespaces:
NamespacePurpose
refine.searchText and image search
refine.recsRecommendations (similar items, visitor, user)
refine.plpProduct listing pages
refine.eventsEvent tracking and queue management
refine.identify()User identification
refine.use()Plugin registration

Requirements

  • Runtime: Browser or Node.js 18+
  • TypeScript: 4.7+ (optional but recommended)
  • Bundle size: ~12KB gzipped

Documentation