1.0.3 • Published 4 months ago
directoriesai v1.0.3
Directories.ai TypeScript SDK
Official TypeScript SDK for creating and managing AI-powered directories, listings, websites, apps, and assistants with Directories.ai.
Getting Started
- Get your API key from Directories.ai Dashboard
- Install the SDK:
npm install directoriesai
# or
pnpm add directoriesai
# or
yarn add directoriesai
- Initialize the client:
import { DirectoriesClient } from 'directoriesai';
const client = new DirectoriesClient({
apiKey: process.env.DIRECTORIES_API_KEY // Get this from directories.ai/dashboard/settings/api
});
Core Concepts
Everything in Directories.ai operates within a directory context:
// Create a directory
const directory = await client.createDirectory({
name: "My Business Directory",
type: "business",
purpose: "marketplace",
industry: {
type: "services",
features: {
booking: true,
reviews: true,
verification: true
}
}
});
// Set directory context for subsequent operations
client.setDirectoryId(directory.id);
// Create a listing within the directory
const listing = await client.createListing({
name: "My Business",
description: "Business description",
type: "business",
status: "published",
contact: {
email: "contact@business.com",
phone: "+1234567890"
}
});
// Deploy a website for the listing
const website = await client.createWebsite({
listingId: listing.id,
name: "Business Website",
config: {
theme: "modern",
features: ["contact", "gallery", "booking"]
},
deployment: {
platform: "vercel",
domain: "mybusiness.com"
}
});
// Create an AI assistant for the listing
const assistant = await client.createAssistant({
name: "Business Assistant",
type: "customer_service",
capabilities: {
core: ["answer_questions", "handle_bookings"],
industry: ["service_recommendations", "price_quotes"]
}
});
Key Features
Directory Management
- Create and configure directories
- Set industry-specific features
- Manage categories and taxonomies
- Control access and permissions
Listings
- Create and manage listings
- Handle claims and verifications
- Enrich content with AI
- Manage media and attachments
Websites & Apps
- Deploy modern web applications
- Multiple deployment platforms (Vercel, Netlify, Cloudflare)
- Custom domains and SSL
- Built-in analytics and monitoring
AI Assistants
- Industry-specific AI assistants
- Customizable capabilities
- Knowledge base management
- Multi-platform deployment (web, mobile, API)
Automation
- Automated content enrichment
- Scheduled tasks and workflows
- Content moderation
- Performance monitoring
Example: Complete Business Directory
// 1. Create a directory
const directory = await client.createDirectory({
name: "Local Business Directory",
type: "business",
industry: {
type: "services",
features: ["booking", "reviews"]
}
});
// 2. Configure directory settings
await client.updateDirectory(directory.id, {
settings: {
listing: {
requireVerification: true,
moderationEnabled: true
},
ai: {
contentEnrichment: true,
customerSupport: true
}
}
});
// 3. Add categories
await client.createCategories(directory.id, [
{ name: "Restaurants", slug: "restaurants" },
{ name: "Retail", slug: "retail" },
{ name: "Professional Services", slug: "services" }
]);
// 4. Create a listing
const listing = await client.createListing({
name: "City Cafe",
category: "restaurants",
description: "Modern cafe in downtown",
contact: {
email: "hello@citycafe.com",
phone: "+1234567890"
}
});
// 5. Deploy a website
const website = await client.createWebsite({
listingId: listing.id,
name: "City Cafe Website",
deployment: {
platform: "vercel",
domain: "citycafe.com"
}
});
// 6. Create an AI assistant
const assistant = await client.createAssistant({
listingId: listing.id,
type: "restaurant",
capabilities: ["menu_info", "reservations", "faq"]
});
Error Handling
try {
const directory = await client.createDirectory({...});
} catch (error) {
if (error instanceof DirectoriesError) {
console.error('API Error:', error.message, error.code);
// Handle specific error cases
switch (error.code) {
case 'RATE_LIMIT_EXCEEDED':
// Handle rate limiting
break;
case 'INVALID_CONFIGURATION':
// Handle configuration errors
break;
default:
// Handle other errors
}
}
}
Monitoring and Analytics
// Get directory metrics
const metrics = await client.getDirectoryMetrics(directory.id);
// Monitor AI performance
const aiMetrics = await client.getAIMetrics(directory.id);
// Get website analytics
const analytics = await client.getWebsiteAnalytics(website.id);
Documentation
Support
- Dashboard
- Documentation
- GitHub Issues
- Email: support@directories.ai
License
MIT License - see the LICENSE file for details.