API Overview

Overview of DirectoryKit's API routes.

Overview

DirectoryKit's API routes live under app/api/ and follow Next.js App Router conventions.

Common patterns

Rate limiting

import { checkRateLimit, createRateLimitResponse } from '@/lib/rate-limit'
 
const rateLimitResult = await checkRateLimit(request, 'general')
// Tiers: 'general' | 'voting' | 'auth' | 'submission' | 'admin' | 'analytics'

Feature guards

import { featureGuard } from '@/lib/features'
const guard = featureGuard('partners')
if (guard) return guard // Returns 404 if feature disabled

Authentication

import { getSupabaseAdmin } from '@/lib/supabase/client'
const supabase = getSupabaseAdmin()
const { data: { user } } = await supabase.auth.getUser()

Route categories

PathPurpose
/api/projects/Project CRUD and listing
/api/categories/Category management
/api/user/User profile and settings
/api/admin/Admin operations (protected)
/api/payments/Payment processing
/api/webhooks/stripe/Stripe webhook handler
/api/ai/generate/AI features (guarded)
/api/analytics/Analytics tracking
/api/cron/Cron job endpoints