📂 Multi-Directory Platform

User Guide v2.0

1. Introduction

The Multi-Directory Platform is a full-stack white-label directory SAAS. Create and manage multiple city-specific or industry-specific directories from a single dashboard. Each directory has its own public URL, theme, SEO settings, blog, newsletter, deals, CRM, call tracking, monetization, and more.

🏭 Multi-Industry Templates

10 pre-built templates: local business, farm, restaurant, real estate, medical, service, education, automotive, fitness, hospitality.

🎨 Customizable Themes

Brand colors, fonts, logos, layout per directory. Each directory looks unique.

📱 City-Based URLs

Each directory gets its own public URL at /{slug}. Auto geo-redirect for visitors.

🧮 AI Content Engine

Blog generator, business articles, programmatic pages, content repurposing.

📊 Analytics & CRM

Track views, clicks, calls, visitors. Manage contacts, pipelines, and deals.

💰 Monetization

Tiers, subscriptions, ad zones, sponsored listings, article sponsorships.

43. Admin Panel vs Directory Dashboard

This platform has two layers of navigation. Think of it like a mall:

๐Ÿข Global Admin (The Mall)

  • Dashboard โ€” cross-directory stats (foot traffic across stores)
  • Directories โ€” create, manage, clone, sell directories
  • API Keys โ€” Google, OpenAI, Stripe (fuels all directories)
  • Settings โ€” tenant name, password

This is where you walk between directories and manage the building.

๐Ÿช Directory Dashboard (Each Store)

  • Dashboard โ€” directory stats (listings, articles, posts)
  • Listings + Categories โ€” manage businesses
  • Blog + SEO Articles (AI Writer) โ€” content marketing
  • SEO + Trap Doors + Branding โ€” rankings & appearance
  • Monetize โ€” tiers, subscriptions, ad zones, sponsored articles
  • Analytics โ€” per-directory views, clicks, events
  • Integrations โ€” Core Swift, CRM, webhooks, SMTP
  • Settings + Legal + Domains โ€” directory config

Everything the directory owner needs in one place.

How to Enter a Directory Dashboard

  1. Go to Directories in the global admin
  2. Click the ๐Ÿ“‚ Dashboard button on any directory card
  3. The sidebar swaps to that directory's controls
  4. Click the back arrow to return to global admin

What Happens When You Sell a Directory

The buyer logs into their own dashboard and sees only their directory โ€” with full access to listings, SEO Articles, monetization, analytics, branding, integrations, and SMTP. They connect their own Core Swift tenant, their own CRM, their own sending email. Everything is independent.


2. Getting Started

Platform URL

Your directory platform โ€” deployed on your domain.

Default Login Credentials

Email:Your admin email
Password:Your admin password

Change your password immediately after first login.

Quick Start Steps

  1. Log into your platform with admin credentials.
  2. Create your first directory from the Dashboard using a template.
  3. Add categories relevant to your industry.
  4. Add businesses manually or import via CSV.
  5. Customize the theme (colors, logo, fonts) under directory settings.
  6. Share the public directory URL (e.g., /palm-bay) with visitors.

3. Dashboard

High-level overview with key metrics:

--Total Directories
--Active Listings
--Categories
--API Calls Today

Dashboard Actions

API Endpoint

GET /api/v1/dashboard/stats — Dashboard statistics

4. Directories & Cities

Each directory represents a city or industry. Directories use a city-based URL structure. The root domain is a homepage city grid; each directory lives at /{slug}.

🏠 Root Homepage

The root domain shows a city grid. Visitors browse available cities.

🏡 Per-City Pages

/{city-slug} (e.g., /palm-bay). Displays businesses, deals, blog posts, categories.

🌍 Geo-Redirect

IP-based detection offers to redirect visitors to their nearest city directory. Non-blocking, dismissible banner.

🔍 Per-City SEO

Unique meta title, description, OG tags, JSON-LD schema, canonical URL, sitemap entry per city.

Directory CRUD

GET /api/v1/directories — List all directories

GET /api/v1/directories/:slug — Get single directory with stats

POST /api/v1/directories — Create directory

PUT /api/v1/directories/:slug — Update directory

DELETE /api/v1/directories/:slug — Delete directory and all data

GET /api/v1/directories/:slug/render — Render directory template

GET /api/v1/templates — List available templates

Transfer

POST /api/v1/directories/:id/transfer — Transfer directory to another network

5. Templates

10 industry-specific templates with pre-configured fields and layouts. Templates are loaded from Handlebar files and embeddable at compile time.

🏠 Local Business

Business name, address, phone, website, hours, service area, year established.

🌿 Farm / Farmers Market

Farm name, products, acreage, certifications, pick-your-own hours, market locations.

🍲 Food & Drink

Cuisine type, price range, reservation URL, delivery options, dietary accommodations.

🏢 Real Estate

Property type, beds/baths, sqft, lot size, listing price, agent, open house dates.

🏥 Medical / Healthcare

Providers, specialties, insurance accepted, board certifications, telehealth available.

🔧 Service Professionals

Categories, license numbers, insurance, service radius, availability, reviews.

🎓 Education

Schools, tutoring, colleges, training centers, grade levels, accreditation.

🚗 Automotive

Dealers, repair shops, body shops, parts stores, makes serviced.

💪 Fitness & Wellness

Gyms, studios, trainers, class types, membership options.

🏨 Hospitality

Hotels, B&Bs, vacation rentals, event venues, amenities.

Custom templates with your own field definitions can also be created.

6. Businesses / Listings

Core content of your directories. Each business belongs to a directory and one or more categories.

Key Fields

NameBusiness or listing title
AddressStreet, city, state, zip
PhonePrimary contact number
WebsiteBusiness website URL
HoursDays and hours of operation
CategoriesAssign one or more categories
DescriptionRich text description (optional)
ImagesUpload up to 10 images per listing
StatusPublished, Draft, or Pending Review

CRUD & Search

GET /api/v1/listings — All listings (paginated)

GET /api/v1/directories/:slug/businesses — Directory businesses

GET /api/v1/directories/:slug/businesses/suggestions — Search suggestions

GET /api/v1/directories/:slug/businesses/:business_id — Single business

POST /api/v1/directories/:slug/businesses — Create business

PUT /api/v1/directories/:slug/businesses/:business_id — Update business

DELETE /api/v1/directories/:slug/businesses/:business_id — Delete business

Search

GET /api/v1/search?q=... — Search businesses across directories

GET /api/v1/search/config — List search configs

GET /api/v1/search/config/:directory_id — Get directory search config

PUT /api/v1/search/config/:directory_id — Update search config

GET /api/v1/search/filters/:directory_id — Directory search filters

7. Categories

Organized into 15 categories (Fine Dining & Cuisine, Food & Drink, Home & Outdoor, Professional, etc.) with 61 subcategories underneath. A business can belong to up to 3 subcategories (admins can override to 5). Business owners can remove subcategories instantly; adding new ones requires admin approval.

Category Structure

๐Ÿฝ๏ธ Fine Dining & Cuisine7 subcategories โ€” Italian, Chinese, Indian, Japanese, French, Mediterranean, Steakhouse
๐Ÿฅค Food & Drink7 subcategories โ€” Coffee Shop, Pizza, Seafood, Catering, Bars & Breweries, Food Trucks, Breakfast
๐Ÿ›๏ธ Hyper-Local Retail10 categories โ€” Bakeries & Dessert Shops, Boutiques, Farmers Market, Artisan Goods, Specialty Grocery, Home & Decor, Books & Music, Florists, Gifts, Electronics Repair
๐Ÿ”ง Home & Outdoor10 categories โ€” Cleaning, Electrician, HVAC, Landscaping, Handyman, Plumber, Pool Service, Roofing, Screen Enclosures, Tree Service
๐Ÿฅ Health & Wellness7 categories โ€” Chiropractor, Dentist, Medical, Medical Spa, Pet Groomer, Physical Therapy, Veterinarian
๐Ÿ’ผ Professional5 categories โ€” Accountant, Business Services, Personal Injury Lawyer, Property Management, Real Estate
๐ŸŽญ Entertainment4 categories โ€” Family Entertainment, Live Music & Bars, Attractions & Tours, Special Events
โœ‚๏ธ Personal Care5 categories โ€” Boat Charter, Day Spa, Fitness Studio, Hair Salon, Tattoo Parlor
๐Ÿš— Automotive3 categories โ€” Auto Repair, Car Detailing, Tire & Oil Change
+ 6 more groupsPet Services, Education & Family, Other โ€” 1 category each

Multi-Category System

Max per business3 categories (admin can override to 5 for verified businesses)
Primary categoryFirst category assigned gets full search weight. Additional categories at 75%.
Business owner โ†’ removeInstant self-service. No admin approval needed.
Business owner โ†’ addRequest-based. Admin approves from Pending Category Requests panel.
Admin โ†’ assignDirect assignment during search, import, or manual creation. No request flow.

API Endpoints

GET /api/v1/categories — All categories (optional ?directory_id=)

GET /api/v1/categories/:id — Single category with listing count

GET /api/v1/directories/:slug/categories — Directory categories

POST /api/v1/directories/:slug/categories — Create category

PUT /api/v1/directories/:slug/categories/:category_id — Update category

DELETE /api/v1/directories/:slug/categories/:category_id — Delete category

POST /api/v1/directories/:slug/categories/bulk-move — Bulk move categories

POST /api/v1/directories/:slug/categories/bulk-delete — Bulk delete categories

8. Reviews & Submissions

Review moderation and business submission approval flows.

Reviews

GET /api/v1/reviews — List all reviews

GET /api/v1/reviews/stats/:business_id — Review stats per business

GET /api/v1/directories/:slug/businesses/:business_id/reviews — Business reviews

POST /api/v1/reviews — Create review

PUT /api/v1/reviews/:id — Update review

DELETE /api/v1/reviews/:id — Delete review

POST /api/v1/reviews/:id/approve — Approve review

POST /api/v1/reviews/:id/reject — Reject review

Submissions

GET /api/v1/submissions — List submissions

GET /api/v1/submissions/:id — Single submission

POST /api/v1/submissions — Create submission

PUT /api/v1/submissions/:id — Update submission

DELETE /api/v1/submissions/:id — Delete submission

POST /api/v1/submissions/:id/approve — Approve submission (creates business)

POST /api/v1/submissions/:id/reject — Reject submission

9. Deals (Groupon-Style)

Limited-time offers, coupons, and promotions linked to directories and businesses.

🎯 Coupons & Deals

Percentage-off or fixed-price deals. Original vs deal price. Coupon codes for redemption.

⏰ Scheduled Offers

Start/end dates. Deals auto-activate and auto-expire.

📊 Redemption Tracking

Track claims, set limits, auto-mark "Sold Out". Manual claim for testing.

🏢 Featured Deals

Toggle deals as featured. They appear prominently on directory landing pages.

API Endpoints

GET /api/v1/deals — List all deals

GET /api/v1/deals/featured — List featured deals

GET /api/v1/deals/:id — Single deal

GET /api/v1/directories/:slug/deals — Directory deals

GET /api/v1/directories/:slug/businesses/:bid/deals — Business deals

POST /api/v1/deals — Create deal

PUT /api/v1/deals/:id — Update deal

DELETE /api/v1/deals/:id — Delete deal

POST /api/v1/deals/:id/claim — Claim/redeem a deal

10. SEO Module

Per-page SEO meta, sitemap generation, robots.txt, search config, and schema markup.

GET /api/v1/seo/sitemap-config — List all sitemap configs

GET /api/v1/seo/sitemap-config/:directory_id — Get sitemap config

PUT /api/v1/seo/sitemap-config/:directory_id — Update sitemap config

GET /api/v1/seo/:page_type/:page_id — Get SEO meta

PUT /api/v1/seo/:page_type/:page_id — Update SEO meta

POST /api/v1/seo/regenerate-sitemap — Regenerate sitemap

GET /sitemap.xml — Generated sitemap

GET /robots.txt — Robots.txt

GET /api/v1/sitemap.xml — API sitemap

Advanced SEO Config

GET /api/v1/directories/:id/seo-settings — Get directory SEO settings

PUT /api/v1/directories/:id/seo-settings — Update directory SEO settings

GET /api/v1/directories/:id/sitemap — Generate directory sitemap

GET /api/v1/directories/:id/seo-fallbacks — List SEO fallbacks

PUT /api/v1/directories/:id/seo-fallbacks/:page_type — Upsert SEO fallback

GET /api/v1/directories/:id/schema-configs — List schema configs

PUT /api/v1/directories/:id/schema-configs/:schema_type — Upsert schema config

11. Blog System

Full-featured blog per directory. Write, schedule, publish, and distribute blog posts. Supports multiple templates, extended content fields, and scheduled publishing.

📖 Posts & Content

Rich text editor, featured images, tags, categories, author attribution.

⏰ Scheduling

Schedule posts for future publishing. Auto-processes scheduled posts on CRON.

📤 Distribution

Distribute posts across multiple directories simultaneously.

📄 Templates

Pre-built blog post templates for consistent formatting.

Posts CRUD

GET /api/v1/blog-posts — List all posts

GET /api/v1/directories/:slug/blog-posts — Directory posts

GET /api/v1/blog-posts/:id — Single post

POST /api/v1/blog-posts — Create post

PUT /api/v1/blog-posts/:id — Update post

DELETE /api/v1/blog-posts/:id — Delete post

POST /api/v1/blog-posts/:id/publish — Publish post

GET /api/v1/blog-posts/scheduled — List scheduled posts

Extended Posts

GET /api/v1/blog-posts/ext — List extended posts

POST /api/v1/blog-posts/ext — Create extended post

PUT /api/v1/blog-posts/:id/ext — Update extended fields

GET /api/v1/directories/:slug/blog-posts/ext — Directory extended posts

POST /api/v1/blog/distribute — Distribute post

POST /api/v1/blog/process-scheduled — Process scheduled posts

Blog Templates

GET /api/v1/blog-templates — List templates

POST /api/v1/blog-templates — Create template

GET /api/v1/blog-templates/:id — Get template

PUT /api/v1/blog-templates/:id — Update template

DELETE /api/v1/blog-templates/:id — Delete template

Legacy Blog Endpoints

GET /api/v1/blog — List posts (legacy)

POST /api/v1/blog — Create post (legacy)

GET /api/v1/blog/:id — Single post (legacy)

PUT /api/v1/blog/:id — Update post (legacy)

DELETE /api/v1/blog/:id — Delete post (legacy)

GET /api/v1/directories/:slug/blog — Directory posts (legacy)

12. Blog Generator (AI)

AI-powered blog post generation. Generate SEO-optimized content for your directories using templates and topic feeds.

🤖 AI Generation

Generate complete blog posts from topic prompts or template configurations.

🔄 Regeneration

Regenerate existing posts with updated or expanded content.

📋 Template Mapping

Assign blog templates to specific directories for consistent AI output.

POST /api/v1/blog-generate — Generate blog posts via AI

POST /api/v1/blog-posts/:id/regenerate — Regenerate a post

GET /api/v1/blog-templates/:id/directories — List template directories

POST /api/v1/blog-templates/:id/directories — Set template directories

13. Business Articles

Generate and manage individual business profile articles. Each article is tied to a business in a directory and can be auto-generated with AI on a weekly schedule.

📝 Per-Business Content

Generate unique articles for each business listing with AI-driven content.

🔄 Weekly Automation

Auto-generate weekly articles for all businesses in a directory.

📈 Tracking

Track article views and engagement events.

GET /api/v1/directories/:id/business-articles — List articles for directory

POST /api/v1/directories/:id/business-articles/generate — Generate articles

PUT /api/v1/business-articles/:id — Update article

DELETE /api/v1/business-articles/:id — Delete article

POST /api/v1/business-articles/:id/generate-weekly — Generate weekly batch

GET /api/v1/articles/:slug — Serve article publicly

POST /api/v1/business-articles/:id/track — Track article event

14. Newsletter

Email newsletter system per directory. Build subscriber lists, create AI-generated newsletters, send campaigns.

📥 Subscriber Management

Collect subscribers via opt-in forms. Import in bulk. One-click unsubscribe.

🤖 AI Generation

Auto-generate newsletter content from directory blog posts and listings.

✉️ Send Campaigns

Send newsletters to all subscribers. Per-directory sender settings.

Newsletters

GET /api/v1/newsletters — List newsletters

POST /api/v1/newsletters — Create newsletter

GET /api/v1/newsletters/:id — Get newsletter

PUT /api/v1/newsletters/:id — Update newsletter

DELETE /api/v1/newsletters/:id — Delete newsletter

POST /api/v1/newsletters/:id/generate — AI-generate content

POST /api/v1/newsletters/:id/send — Send newsletter

Subscribers & Settings

GET /api/v1/directories/:slug/email-settings — Get email settings. Answers 200 {"configured": false} (never a 404) when the directory has not configured email yet; configured is true on the stored settings.

PUT /api/v1/directories/:slug/email-settings — Update email settings

DELETE /api/v1/directories/:slug/email-settings — Delete email settings

GET /api/v1/directories/:slug/subscribers — List subscribers

POST /api/v1/directories/:slug/subscribers — Add subscriber

POST /api/v1/directories/:slug/subscribers/import — Bulk import subscribers

POST /api/v1/directories/:slug/subscribers/:id/unsubscribe — Unsubscribe

15. Email Campaigns

Standalone email campaign system with templates and send scheduling.

Email Templates

GET /api/v1/email/templates — List email templates

POST /api/v1/email/templates — Create email template

GET /api/v1/email/templates/:id — Get template

PUT /api/v1/email/templates/:id — Update template

DELETE /api/v1/email/templates/:id — Delete template

Campaigns

GET /api/v1/email/campaigns — List campaigns

POST /api/v1/email/campaigns — Create campaign

GET /api/v1/email/campaigns/:id — Get campaign

PUT /api/v1/email/campaigns/:id — Update campaign

DELETE /api/v1/email/campaigns/:id — Delete campaign

POST /api/v1/email/campaigns/:id/send — Send campaign

16. CRM

Built-in CRM for managing contacts, pipelines, and deals. Track leads from directory listings, form submissions, and manual entry.

👤 Contacts

Contact records with search, custom fields, and directory association.

📋 Pipelines

Custom sales pipelines with stages. Move deals through stages.

💰 Deals

Deal tracking per pipeline with value, stage, expected close date.

Contacts

GET /api/v1/crm/contacts — List contacts

GET /api/v1/crm/contacts/search — Search contacts

POST /api/v1/crm/contacts — Create contact

PUT /api/v1/crm/contacts/:id — Update contact

DELETE /api/v1/crm/contacts/:id — Delete contact

GET /api/v1/directories/:slug/crm/stats — Directory CRM stats

Pipelines

GET /api/v1/crm/pipelines — List pipelines

POST /api/v1/crm/pipelines — Create pipeline

PUT /api/v1/crm/pipelines/:id — Update pipeline

DELETE /api/v1/crm/pipelines/:id — Delete pipeline

Deals

GET /api/v1/crm/deals — List deals

POST /api/v1/crm/deals — Create deal

PUT /api/v1/crm/deals/:id — Update deal

DELETE /api/v1/crm/deals/:id — Delete deal

17. Analytics

Track events, page views, and directory performance metrics. Built-in event tracking system with per-directory breakdowns.

📊 Event Tracking

Track custom events with type, metadata, and directory association.

📋 Directory Breakdown

View analytics filtered by individual directory.

🗑️ Data Purge

Purge old events to maintain database performance.

POST /api/v1/analytics/track — Track an event

GET /api/v1/analytics — List all events

GET /api/v1/analytics/events — List events (paginated)

GET /api/v1/analytics/summary — Analytics summary

GET /api/v1/analytics/by-directory/:directory_id — Directory analytics

DELETE /api/v1/analytics/events/old — Purge old events

18. Monetization

Revenue features for directory operators. Tiered subscription plans, ad zones, sponsored listings, invoices, and payouts.

💵 Subscription Tiers

Define pricing tiers with different features per directory. Monthly/annual billing.

📰 Ad Zones

Sell ad placements within directory pages. Multiple zone positions.

⭐ Sponsored Listings

Premium business listings with enhanced visibility and badges.

📄 Invoices & Payouts

Generate invoices for advertisers. Track payouts and commissions.

GET /api/v1/monetization — Monetization dashboard

GET /api/v1/monetization/tiers — List tiers

POST /api/v1/monetization/tiers — Create tier

GET /api/v1/monetization/tiers/:id — Get tier

PUT /api/v1/monetization/tiers/:id — Update tier

DELETE /api/v1/monetization/tiers/:id — Delete tier

19. Call Tracking

Track phone calls generated from directory listings. Provision local phone numbers per business, record calls, and view analytics.

📞 Phone Numbers

Provision local phone numbers for directory businesses. Numbers are assigned and forwarded.

🎙️ Call Recording

Record inbound calls for quality assurance. Store recordings per call.

📊 Analytics

Track call volume, duration, source directory, and time of day.

Number Management

GET /api/v1/call-tracking/numbers — List provisioned numbers

POST /api/v1/call-tracking/numbers — Provision a number

GET /api/v1/call-tracking/numbers/available — List available numbers

GET /api/v1/call-tracking/numbers/:id — Get number details

PUT /api/v1/call-tracking/numbers/:id — Update number config

DELETE /api/v1/call-tracking/numbers/:id — Release a number

Call Logs & Analytics

GET /api/v1/call-tracking/calls — List calls

GET /api/v1/call-tracking/calls/:id — Get call details

POST /api/v1/call-tracking/calls/:id/recording — Upload recording

GET /api/v1/call-tracking/summary — Call tracking summary

GET /api/v1/call-tracking/by-directory/:directory_id — Per-directory call stats

20. Data Company & Enrichment

Import business data from third-party sources and enrich existing listings with additional information. Enriched listings display a Data Freshness Timestamp showing when the data was last updated (e.g., "Data last updated: June 2025 from Google Places"). This gives visitors confidence that the business information they see is current and accurate.

🔍 Yelp Search

Search Yelp for businesses in any location. Pull name, address, rating, review count, and URL.

📦 Business Enrichment

Enrich listings with Google Places data, contact info, hours, and social profiles.

🎨 Brand Color Extraction

Extract brand colors from logo images. Auto-suggest color palettes for directory branding.

GET /api/v1/yelp/search?term=... — Yelp business search

POST /api/v1/enrich/:id — Enrich a business listing

POST /api/v1/branding/:directory_id/extract — Extract brand colors

21. Import/Export

Bulk import and export data. CSV import for businesses. Export businesses, reviews, contacts in CSV or JSON. Custom export templates for scheduled runs. All website URLs are automatically cleaned on import โ€” tracking parameters like utm_*, fbclid, ref, and 30+ others are stripped before the URL is stored.

📥 CSV Import

Import businesses, services, and locations from CSV files. View import logs for error tracking. URLs are auto-cleaned of tracking params.

📤 Export Data

Export businesses, reviews, and contacts per directory in CSV or JSON format.

📄 Export Templates

Create reusable export templates with field mapping and scheduling.

Import

POST /api/v1/import — Import business data (CSV)

GET /api/v1/import/logs — List import logs

GET /api/v1/import/logs/:id — Get import log details

Export

GET /api/v1/export/businesses/:directory_id — Export businesses

GET /api/v1/export/reviews/:directory_id — Export reviews

GET /api/v1/export/contacts/:directory_id — Export contacts

Export Templates

GET /api/v1/export/templates — List export templates

POST /api/v1/export/templates — Create export template

GET /api/v1/export/templates/:id — Get template

PUT /api/v1/export/templates/:id — Update template

DELETE /api/v1/export/templates/:id — Delete template

POST /api/v1/export/templates/:id/run — Execute export template

22. Programmatic Pages

AI-generated content pages at scale. Generate hundreds of location+service+keyword combination pages with SEO metadata, topics, and author profiles.

📄 Page Generation

Generate programmatic pages from topic templates. Bulk status updates.

📝 Topic Management

Manage topics with suggestions, bulk actions, and author assignment.

✏️ AI Drafting

Generate AI drafts from topic outlines. Repurpose existing content.

🔗 Internal Links

Get internal link suggestions for content SEO optimization.

Pages

GET /api/v1/directories/:id/programmatic-pages — List pages

GET /api/v1/directories/:id/programmatic-pages/:page_id — Get page

POST /api/v1/directories/:id/programmatic-pages/generate — Generate pages

POST /api/v1/directories/:id/programmatic-pages/bulk-status — Bulk status update

Topics & Authors

GET /api/v1/directories/:id/topics — List topics

POST /api/v1/directories/:id/topics — Create topic

PUT /api/v1/directories/:id/topics/:topic_id — Update topic

DELETE /api/v1/directories/:id/topics/:topic_id — Delete topic

POST /api/v1/directories/:id/topics/bulk — Bulk topic action

GET /api/v1/directories/:id/topics/suggestions — Topic suggestions

GET /api/v1/directories/:id/authors — List authors

POST /api/v1/directories/:id/authors — Create author

PUT /api/v1/directories/:id/authors/:author_id — Update author

DELETE /api/v1/directories/:id/authors/:author_id — Delete author

AI Content Tools

POST /api/v1/directories/:id/ai-draft — Generate AI draft

POST /api/v1/directories/:id/repurpose — Repurpose content

GET /api/v1/directories/:id/internal-links — Internal link suggestions

23. Services & Locations

Manage services and locations for directory businesses. Useful for multi-location businesses and service-area professionals.

🏢 Services

Define services offered by businesses. Name, description, price range, duration.

📍 Locations

Manage multiple business locations per directory. Address, phone, hours per location.

📁 CSV Import

Bulk import services and locations from CSV files.

Services

GET /api/v1/directories/:id/services — List services

POST /api/v1/directories/:id/services — Create service

PUT /api/v1/directories/:id/services/:svc_id — Update service

DELETE /api/v1/directories/:id/services/:svc_id — Delete service

POST /api/v1/directories/:id/services/import — CSV import services

Locations

GET /api/v1/directories/:id/locations — List locations

POST /api/v1/directories/:id/locations — Create location

PUT /api/v1/directories/:id/locations/:loc_id — Update location

DELETE /api/v1/directories/:id/locations/:loc_id — Delete location

POST /api/v1/directories/:id/locations/import — CSV import locations

24. Networks

Group directories into networks for shared branding, cross-directory navigation, and homepage management.

🌐 Multi-Directory Groups

Group related directories into networks. Shared themes and navigation.

🏠 Homepage Editor

Customizable homepage sections per network. Hero, featured cities, categories, blog feed.

🎨 Network Branding

Apply consistent branding across all directories in a network.

Networks CRUD

GET /api/v1/networks — List networks

POST /api/v1/networks — Create network

GET /api/v1/networks/:id — Get network

PUT /api/v1/networks/:id — Update network

DELETE /api/v1/networks/:id — Delete network

GET /api/v1/networks/:id/directories — Network directories

POST /api/v1/networks/:id/export — Export network

POST /api/v1/networks/:id/transfer — Transfer network

Branding & Homepage

GET /api/v1/networks/:id/branding — Get network branding

PUT /api/v1/networks/:id/branding — Update network branding

GET /api/v1/networks/:id/homepage — Get network homepage

GET /api/v1/directories/:slug/homepage — Get directory homepage

POST /api/v1/homepage-sections — Create homepage section

GET /api/v1/homepage-sections/:id — Get section

PUT /api/v1/homepage-sections/:id — Update section

DELETE /api/v1/homepage-sections/:id — Delete section

Create and manage legal pages for each directory. Privacy policy, terms of service, cookie policy, and custom legal content.

GET /api/v1/legal-pages — List legal pages

POST /api/v1/legal-pages — Create legal page

GET /api/v1/legal-pages/:id — Get legal page

PUT /api/v1/legal-pages/:id — Update legal page

DELETE /api/v1/legal-pages/:id — Delete legal page

26. Branding

Custom branding per directory. Colors, logos, fonts, and visual identity settings.

🎨 Brand Settings

Primary/secondary colors, logo upload, custom CSS, font selection.

🎥 Color Extraction

Auto-extract brand colors from uploaded logo images.

🔄 Brand Sync

Sync branding assets across directories.

GET /api/v1/directories/:slug/branding — Get directory branding

PUT /api/v1/branding/:directory_id — Update branding

POST /api/v1/branding/:directory_id/extract — Extract brand colors

POST /api/v1/admin/brand-sync — Sync branding

27. ZaarHub Network

ZaarHub is the community aggregation engine that connects multiple directories into a unified discovery experience. Each directory can opt in to share its businesses, deals, and events across the entire platform. ZaarHub includes Verification Badges (Verified Owner, Top Rated, Editor's Pick), a 3-step Claim Workflow at /claim, Editor's Picks for admin-curated featured businesses, and Near-Me Geolocation for proximity-based browsing.

๐ŸŒ Multi-Directory Aggregation

Search businesses across all participating directories from a single search bar. Results include city labels so visitors know where each business is located.

๐Ÿ“‚ Category Pills

Browse categories across all directories via clickable pill filters. Quickly narrow down by industry or service type regardless of city.

๐Ÿ“ก Community Activity Feed

Real-time feed showing new businesses, recent deals, and upcoming events from all opt-in directories. Drives cross-directory discovery.

โญ Featured Deals & Events

Flag deals and events as "Featured" to highlight them across ZaarHub. Featured items appear in the ZaarHub spotlight carousel.

How ZaarHub Works

  1. Each directory has a zaarhub_config in its settings that controls ZaarHub participation.
  2. Toggle Enable ZaarHub on for each directory you want to include.
  3. Toggle Show Featured Deals/Events to push promoted content to the ZaarHub front page.
  4. ZaarHub aggregates at /zaarhub/ or /z/ โ€” a single-page application that loads data from all enabled directories.

Enabling ZaarHub

  1. Navigate to the directory's Settings page.
  2. Find the ZaarHub Configuration section.
  3. Toggle Enable ZaarHub Network to ON.
  4. Optionally toggle Featured Deals and Featured Events to promote specific content.
  5. Save settings. The directory will appear in ZaarHub search results immediately.

ZaarCash Loyalty Programme

ZaarCash ๐Ÿ’Ž is the network's loyalty currency โ€” native to the platform, not a third-party service. It is earned and spent across every ZaarHub city, and new cities join the same programme automatically.

  • Earn: 1 ZaarCash per $1.00 of earnable spend at any participating business
  • Value: 100 ZaarCash = $1.00 (1 ZaarCash = 1ยข)
  • Redemption cap: at most 10% of a bill may be paid with ZaarCash
  • Minimum: a member must bank at least 100 ZaarCash before redeeming
  • Free items: free or fully discounted items earn nothing โ€” only the paid subtotal earns
  • Opt-in: only businesses that sign up to the loyalty programme participate and show the ZaarCash ๐Ÿ’Ž badge

Every one of those numbers is a per-programme setting, not a constant. Edit them in the admin panel's โญ Loyalty Programmes card โ€” earn rate, redemption cap %, minimum balance to redeem, whether free items earn nothing, and the currency's name and icon, plus the per-check-in, per-visit and per-redemption rates. A programme can be scoped to one directory or a whole network (ZaarHub runs one network-wide programme), so another directory could call its currency something else and run different numbers.

ZaarHub Frontend Features

  • City selector โ€” Dropdown to filter by city/directory.
  • Global search โ€” Search across all directories with auto-suggest.
  • Category pills โ€” Filter by category across all cities.
  • Deals & Events carousel โ€” Rotating featured content.
  • Community activity feed โ€” Latest additions across the network.
  • Ticker bar โ€” Scrollable announcements from admin (see Section 30).
  • Notification bell โ€” In-header icon with directory alerts and updates.
  • Sign In / Profile โ€” Auth-based identity with role switcher (Visitor, Business Owner, Supplier).
  • Role switcher โ€” Toggle between visitor, business owner, and supplier views in the header.
  • Owner verification badges โ€” Verified Owner, Top Rated, and other badges on business listings.
  • Map/Split view โ€” List, Map, or Split layout toggle using Leaflet.js + OSM tiles.
  • Happening Today ticker โ€” Rotating micro-ticker with featured deals, events, and spotlights.
  • Meet the Founder โ€” Story cards section for featured businesses.
  • Saved bookmarks โ€” localStorage-based collections for quick access to favorite businesses.
  • Mobile bottom nav โ€” Home, Cities, Deals, Events, Search tabs on small screens.

Secondary Pages

  • /biz/:slug/:id โ€” Business detail page with gallery, hours, map, reviews, and message form.
  • /grow โ€” Business owner landing page with feature tiers, plan comparison, and testimonials.
  • /claim โ€” 3-step business claiming flow: search โ†’ verify โ†’ confirm.
  • /user/saved โ€” User profile dashboard with saved spots, written reviews, and redeemed perks.

API Endpoints

GET /api/v1/zaarhub/search?q=... — Search across all ZaarHub directories

GET /api/v1/zaarhub/categories — List aggregated categories

GET /api/v1/zaarhub/deals — Featured deals across directories

GET /api/v1/zaarhub/events — Featured events across directories


Editor's Picks are admin-curated businesses that receive special placement on the directory frontend and ZaarHub carousel. This is a manual curation tool โ€” it doesn't affect subscription tiers or billing.

โญ Curation Controls

Mark any business as an Editor's Pick from the admin panel. The business immediately receives the Editor's Pick badge and appears in the featured section.

โ†•๏ธ Drag-and-Drop Ordering

Editor's Picks can be reordered via drag-and-drop. The display order on the frontend and ZaarHub carousel follows this ordering.

๐ŸŒ Cross-Directory Exposure

Editor's Picks appear in the ZaarHub carousel alongside featured deals and spotlights, giving them visibility across the entire directory network.

๐Ÿ’ก Tip: Rotate Editor's Picks weekly or monthly to keep the carousel fresh. Highlight seasonal businesses, new arrivals, or community favorites.

API Endpoints

GET /api/v1/editors-picks โ€” List all Editor's Picks with display order

POST /api/v1/editors-picks/:business_id โ€” Mark business as Editor's Pick

DELETE /api/v1/editors-picks/:business_id โ€” Remove Editor's Pick status

PUT /api/v1/editors-picks/reorder โ€” Update display order


27b. Data Freshness & Timestamp Tracking

Every business listing displays a Data Freshness Timestamp that tells visitors when the listing was last verified. This builds trust and improves engagement on listings with recent verification.

How It Works

Enrichment timestampWhen a listing is enriched from third-party sources (Google Places, Yelp, etc.), the enrichment date and source are recorded. Visitors see: "Data last updated: August 2026 from Google Places."
Manual updatesWhen a business owner updates their profile via the Business Portal, the timestamp refreshes to reflect the most recent edit.
Stale data flaggingListings not refreshed in 6+ months appear in the admin panel as "stale." Admins can trigger re-enrichment with one click.
Visitor impactListings with recent timestamps ("Updated this month") see higher click-through rates and call conversions than listings with outdated data.

๐Ÿ’ก Tip: Set up a recurring n8n workflow to auto-enrich listings older than 90 days. This keeps your directory data current without manual effort and maximizes visitor confidence.


27c. URL Cleanliness

All website URLs submitted by businesses are automatically cleaned of tracking parameters before storage. This keeps listings looking professional and prevents tracking data from leaking through displayed URLs.

What Gets Stripped

Over 30 tracking and analytics parameters are automatically removed, including:

  • utm_source, utm_medium, utm_campaign, utm_term, utm_content
  • fbclid, gclid, gclsrc
  • ref, ref_src, ref_url
  • _ga, _gl, _ke
  • mc_cid, mc_eid, mc_tc
  • hsCtaTracking, hsa_cam, hsa_grp, hsa_mt

And 15+ additional marketing/tracking parameters. The core domain and path are preserved โ€” only query parameters are cleaned.

Where It Applies

  • Business website URLs โ€” Cleaned on import, manual entry, and API updates.
  • CSV imports โ€” All URLs in bulk imports are automatically cleaned.
  • API submissions โ€” URLs submitted via REST API are cleaned before storage.
  • Display-only delivery โ€” Raw URLs are stored cleaned; tracking params are not recoverable.

27d. Near-Me Geolocation

The Near-Me feature lets visitors find businesses closest to their current location. It uses the browser's Geolocation API with a fallback to IP-based geolocation.

๐Ÿ“ Browser Geolocation

Visitors click the "Near Me" button. The browser prompts for location permission. On approval, businesses are sorted by distance from the visitor's GPS coordinates.

๐ŸŒ IP Fallback

If the visitor declines GPS access, the system falls back to IP-based geolocation to approximate their location and show nearby results.

๐Ÿ“ Distance Sorting

Businesses are ranked by Haversine distance from the visitor's position. Each result shows "X.X mi away" for transparency.

Requirements for Near-Me Visibility

  • Business must have a complete, accurate address with street, city, state, and zip.
  • Coordinates are geocoded from the address using the platform's geocoding provider.
  • Incomplete addresses are excluded from near-me results โ€” ensure all business listings have full address data.

โš ๏ธ Important: Near-Me results depend on geocoded coordinates. Newly imported or address-changed businesses may take a few minutes to appear in near-me results while geocoding completes.

API Endpoints

GET /api/v1/near-me?lat=...&lng=...&radius=50 โ€” Businesses within radius (km)

GET /api/v1/geocode?address=... โ€” Geocode address to lat/lng


27e. Collections & Saved Favorites

Visitors can save businesses to their personal collections for quick access. Favorites are stored in localStorage for anonymous users and synced to the server for logged-in users.

How Collections Work

  • Save any business โ€” Click the bookmark/heart icon on any business listing card or detail page.
  • LocalStorage fallback โ€” Anonymous visitors' favorites persist in the browser via localStorage. No account required.
  • Account sync โ€” When a visitor creates an account or signs in, their localStorage favorites are merged with their server-side saved collection.
  • Cross-device access โ€” Logged-in users see the same saved businesses on any device.

๐Ÿ“ My Saved

The /user/saved dashboard shows all saved businesses, written reviews, and redeemed perks in one view.

๐Ÿ  Feed Integration

The ZaarHub feed at /feed surfaces saved businesses, upcoming events, and personalized recommendations.

API Endpoints

GET /api/v1/saved โ€” Get saved businesses for authenticated user

POST /api/v1/saved/:business_id โ€” Save a business to favorites

DELETE /api/v1/saved/:business_id โ€” Remove from favorites


28. Sponsors & Advertising

The advertising system enables directory operators to sell ad placements to businesses. It uses a three-tier structure: Sponsor Profiles โ†’ Ad Creatives โ†’ Ad Schedules, all managed through an approval queue.

๐Ÿ‘ค Sponsor Profiles

Sponsors are businesses that have opted to advertise. Sponsor profiles are auto-created from existing business data when an ad is submitted.

๐Ÿ–ผ๏ธ Ad Creatives

Image-based advertisements with enforced dimensions that must match the selected ad zone. Each creative includes a name, image URL, and optional target URL.

๐Ÿ“… Ad Schedules

Schedules define when an ad runs โ€” with start date, end date, and status (active/paused/ended). Multiple schedules can run concurrently for the same creative.

๐Ÿ“‹ Approval Queue

All submissions pass through a cascading approval flow: sponsor โ†’ creative โ†’ schedule. Each level must be approved before the ad goes live.

Ad Zones

Ad zones define the available placement slots in the directory interface. Three zone types are supported:

Zone TypeSizeLocationMax Price
Hero Banner728ร—90Top of directory pagesConfigurable
Sidebar300ร—250Side panel on search resultsConfigurable
Footer468ร—60Bottom of directory pagesConfigurable

GET /api/v1/ad-zones — List available ad zones

POST /api/v1/ad-zones — Create ad zone

PUT /api/v1/ad-zones/:id — Update ad zone

DELETE /api/v1/ad-zones/:id — Delete ad zone

Sponsor Profiles

GET /api/v1/sponsors — List sponsors

POST /api/v1/sponsors — Create sponsor profile

GET /api/v1/sponsors/:id — Get sponsor

PUT /api/v1/sponsors/:id — Update sponsor

DELETE /api/v1/sponsors/:id — Delete sponsor

Ad Creatives & Schedules

GET /api/v1/ad-creatives — List ad creatives

POST /api/v1/ad-creatives — Create ad creative

PUT /api/v1/ad-creatives/:id — Update creative

DELETE /api/v1/ad-creatives/:id — Delete creative

GET /api/v1/ad-schedules — List schedules

POST /api/v1/ad-schedules — Create schedule

PUT /api/v1/ad-schedules/:id — Update schedule

DELETE /api/v1/ad-schedules/:id — Delete schedule

Approval Workflow

Each ad submission goes through a three-stage approval process:

  1. Sponsor Approval โ€” Admin reviews the business submitting the ad. Verify the sponsor profile is complete and the business is legitimate.
  2. Creative Approval โ€” Admin reviews the ad creative (image, copy, target URL). Verify dimensions match the zone and content is appropriate.
  3. Schedule Approval โ€” Admin reviews the proposed schedule dates and slot availability. Approve or adjust the date range.

Each level has its own approval endpoint. All three must show "Approved" status before the ad renders publicly.

POST /api/v1/ad-sponsors/:id/approve — Approve sponsor

POST /api/v1/ad-sponsors/:id/reject — Reject sponsor

POST /api/v1/ad-creatives/:id/approve — Approve creative

POST /api/v1/ad-creatives/:id/reject — Reject creative

POST /api/v1/ad-schedules/:id/approve — Approve schedule

POST /api/v1/ad-schedules/:id/reject — Reject schedule

Self-Serve Business Submissions

Business owners can submit ads directly from their Business Portal (/portal):

  1. Log in to the Business Portal and select your business.
  2. Click + New Ad in the Promotions section.
  3. Fill in: Ad Name, Slot Size (from available zones), Image URL, and optional Target URL.
  4. Submit for admin review. The ad appears as "Pending" until all approvals clear.
  5. Track status from the My Ads list โ€” Pending, Approved, or Rejected with reason.

Earnings Tracking

The system tracks earnings at multiple levels:

  • Per slot โ€” Revenue earned from each scheduled ad placement.
  • Per sponsor โ€” Aggregate earnings per business across all their ads.
  • Dashboard โ€” Total earnings overview across all ad zones and sponsors.

GET /api/v1/ad-earnings — Aggregate earnings dashboard

GET /api/v1/businesses/:id/ads/earnings — Per-business ad earnings

GET /api/v1/businesses/:id/ads — List business's ads

POST /api/v1/businesses/:id/ads/submit — Submit ad from business portal


29. Spotlight Listings

Spotlight listings are premium placements that give businesses enhanced visibility both in their local directory and across the ZaarHub network. They appear in a dedicated spotlight carousel section with a configurable badge.

โœจ Premium Placement

Spotlight listings render at the top of directory pages and in the ZaarHub spotlight carousel. They stand out from regular listings with a visual badge.

๐Ÿท๏ธ Configurable Badge

Each spotlight listing has a custom badge text (e.g., "Featured", "Top Pick", "Best of [City]"). Badges are displayed inline with the listing.

๐Ÿ“… Scheduled Placement

Set a start date and end date for each spotlight. Listings auto-activate and auto-expire based on the schedule.

๐ŸŒ ZaarHub Exposure

Toggle the ZaarHub featured flag to expose a spotlight listing across the entire ZaarHub network, not just its local directory.

Managing Spotlight Listings

  1. Go to the Monetization section in the directory dashboard.
  2. Select Spotlight Listings tab.
  3. Click Add Spotlight to create a new premium placement.
  4. Select the business, enter badge text, and choose a slot position (1-based ordering).
  5. Set the start and end date for the placement period.
  6. Toggle Featured on ZaarHub to enable cross-network visibility.
  7. Save. The listing appears in the spotlight carousel immediately (if within date range).

API Endpoints

GET /api/v1/spotlight — List all spotlight listings

GET /api/v1/directories/:slug/spotlight — Directory spotlight listings

POST /api/v1/spotlight — Create spotlight listing

PUT /api/v1/spotlight/:id — Update spotlight

DELETE /api/v1/spotlight/:id — Remove spotlight

POST /api/v1/spotlight/:id/feature — Toggle ZaarHub featured flag


30. Directory Notifications

The notification system powers the ticker bar at the top of the ZaarHub and directory frontends. Create scrolling announcements that inform visitors about events, promotions, or important updates.

๐Ÿ“ข Ticker Bar

The ticker bar is a horizontally scrolling strip at the top of the page. Notifications cycle through in a smooth auto-scroll animation.

๐Ÿ”– Notification Types

Four types: Info (blue), Warning (amber), Announcement (green), and Event (purple). Each type has a distinct visual style.

๐Ÿ”„ Auto-Expiry

Notifications automatically expire based on their date range. Past-due notifications are not displayed and can be purged.

๐Ÿ”— Link Support

Each notification can include an optional link. Clicking the ticker item navigates the visitor to the specified URL.

Creating a Notification

  1. Navigate to the directory Settings and find the Notifications tab.
  2. Click + New Notification.
  3. Enter the message text (plain text, rendered in the ticker bar).
  4. Select the type: Info, Warning, Announcement, or Event.
  5. Optionally enter a link URL for clickable notifications.
  6. Set the display start and end dates.
  7. Save. The notification appears in the ticker bar immediately (if within date range).

Managing Notifications

Active notifications are shown in the ticker bar, rotating through all currently valid entries. Multiple notifications can be active simultaneously โ€” they cycle in order. Notifications respect their date range; expired ones automatically stop displaying. The ticker bar can be dismissed by visitors, but reappears on the next page load if active notifications exist.

API Endpoints

GET /api/v1/notifications — List all notifications

GET /api/v1/directories/:slug/notifications — Directory notifications (active)

POST /api/v1/notifications — Create notification

GET /api/v1/notifications/:id — Get notification

PUT /api/v1/notifications/:id — Update notification

DELETE /api/v1/notifications/:id — Delete notification


31. Mobile Experience

All front-end pages are fully responsive and optimized for mobile browsing. The ZaarHub frontend and directory pages include mobile-specific navigation and touch-optimized interactions.

๐Ÿ“ฑ Bottom Navigation Bar

On mobile, the primary navigation switches to a fixed bottom bar with five icons: Home, Cities, Deals, Events, Search. This replaces the desktop top navigation.

๐Ÿ‘† Touch-Optimized Targets

All interactive elements have a minimum touch target of 44ร—44px as recommended by Apple's HIG and Material Design guidelines.

๐Ÿ” Hamburger Menu

On screens narrower than 768px, the desktop nav links collapse into a hamburger menu. The menu slides in from the side with a clean overlay.

๐Ÿ“ Responsive Layout

All grid layouts, cards, and content sections fluidly adjust from desktop (1280px+) to tablet (768px) to mobile (320px+). No horizontal scrolling required.

Bottom Nav Details

IconLabelDestination
๐Ÿ HomeZaarHub homepage with city grid and featured content
๐Ÿ™๏ธCitiesDirectory/city browser showing all available cities
๐Ÿท๏ธDealsFeatured deals and coupons from all directories
๐Ÿ“…EventsUpcoming community events across directories
๐Ÿ”SearchGlobal search across all directories and listings

The bottom nav includes safe-area-inset padding for devices with a home indicator (iPhone X+). It is only visible on screens narrower than 768px.

Mobile Best Practices

  • Cards โ€” Stack vertically on mobile; use full-width cards with clear visual hierarchy.
  • Forms โ€” Full-width inputs with large tap targets. Labels remain visible above inputs.
  • Images โ€” Use responsive images with max-width: 100% and WebP format.
  • Modals โ€” Full-screen modals on mobile with a close button in the top-right corner.
  • Loading states โ€” Skeleton loaders for content-heavy sections; spinner for small requests.
  • Touch feedback โ€” Buttons and links have :active states for tactile response.

Tested Viewports

DeviceWidthBehavior
Desktop1280px+Full sidebar, top nav, multi-column grids
Tablet768-1279pxCondensed sidebar, 2-column grids, hamburger menu
Mobile320-767pxSingle column, bottom nav, full-width cards

32. API Keys

Manage API keys for external integrations. Create scoped keys with usage tracking and rate limiting.

🔑 Key Management

Create, revoke, and manage API keys with optional expiry dates.

📊 Usage Tracking

Track API call volume per key. View usage history and quotas.

✅ Verification

Verify API keys are valid and active before use.

GET /api/v1/api-keys — List API keys

POST /api/v1/api-keys — Create API key

GET /api/v1/api-keys/:id — Get API key

PUT /api/v1/api-keys/:id — Update API key

DELETE /api/v1/api-keys/:id — Delete API key

GET /api/v1/api-keys/:id/usage — Get key usage

POST /api/v1/api-keys/verify — Verify API key

33. Webhooks

Send real-time notifications to external services when events occur. Integrate with n8n and other automation platforms.

🔗 Event Triggers

Trigger webhooks on listing creation, review submission, deal claims, and more.

📋 Delivery Logs

View delivery status and retry logs for each webhook.

GET /api/v1/webhooks — List webhooks

POST /api/v1/webhooks — Create webhook

GET /api/v1/webhooks/:id — Get webhook

PUT /api/v1/webhooks/:id — Update webhook

DELETE /api/v1/webhooks/:id — Delete webhook

GET /api/v1/webhooks/:id/deliveries — List deliveries

34. Provider Keys

Manage third-party API provider keys. Store and rotate keys for external services used by the platform.

GET /api/v1/provider-keys — List provider keys

POST /api/v1/provider-keys — Upsert provider key

DELETE /api/v1/provider-keys/:provider — Delete provider key

35. Visitor Tracking

Track visitor sessions, page views, and events across directories. Understand how users interact with your listings.

👤 Session Tracking

Track visitor sessions with pag views, events, and duration.

📋 Business Analytics

Per-business visitor summary with page views and actions.

📥 Export

Export visitor data per directory for external analysis.

🎯 Business Claim

Visitors can claim business listings through the tracking system.

Tracking

POST /api/v1/visitors/track — Track visitor session

POST /api/v1/visitors/page-view — Track page view

POST /api/v1/visitors/event — Track visitor event

POST /api/v1/visitors/session/:id/end — End session

Analytics & Claims

GET /api/v1/visitors/summary — Visitor summary

GET /api/v1/visitors/business/:business_id — Business visitor summary

GET /api/v1/visitors/category-summary/:directory_id — Category visitor summary

GET /api/v1/visitors/export/:directory_id — Export visitors

POST /api/v1/businesses/:id/claim — Claim business listing

36. Landing Pages

Create and manage public landing pages per directory. Customizable themes, publish controls, and SEO-friendly URLs.

📄 Page Builder

Create landing pages with rich content, images, and call-to-action sections.

🎨 Public Themes

Pre-built public themes for landing pages. Customizable colors and layout.

📢 Publish Controls

Toggle publish status per page. Preview before going live.

Landing Pages

GET /api/v1/landing-pages — List landing pages

POST /api/v1/landing-pages — Create landing page

GET /api/v1/landing-pages/:id — Get landing page

PUT /api/v1/landing-pages/:id — Update landing page

DELETE /api/v1/landing-pages/:id — Delete landing page

POST /api/v1/landing-pages/:slug/publish — Toggle publish status

GET /api/v1/landing-pages/featured — List featured pages

GET /api/v1/directories/:slug/public-pages — Directory pages

Public Pages (Alias)

GET /api/v1/public-pages — List public pages

POST /api/v1/public-pages — Create public page

GET /api/v1/public-pages/:id — Get public page

PUT /api/v1/public-pages/:id — Update public page

DELETE /api/v1/public-pages/:id — Delete public page

POST /api/v1/public-pages/:slug/publish — Toggle publish

Themes

GET /api/v1/public-themes — List public themes

POST /api/v1/public-themes — Create theme

GET /api/v1/public-themes/:id — Get theme

PUT /api/v1/public-themes/:id — Update theme

DELETE /api/v1/public-themes/:id — Delete theme

37. Domains

Register custom domains for directories. Map your own domain names to individual directories with automatic SSL.

🌐 Custom Domains

Point your own domain to a directory. Automatic DNS verification.

✅ Verification

Verify domain ownership via DNS record or HTML file upload.

📋 Domain Limit

Domain limits are managed per subscription plan.

GET /api/v1/domains — List registered domains

POST /api/v1/domains — Register domain

DELETE /api/v1/domains/:domain_id — Remove domain

POST /api/v1/domains/:domain_id/verify — Verify domain

GET /api/v1/plans/:plan_id/domains — Check plan domain limits

38. Automation / n8n

The platform integrates with n8n for workflow automation. Webhooks, CRON triggers, and event-driven actions enable automated content generation, lead sync, review moderation, and more.

Key Automation Use Cases

📡 Lead Sync

Forward new business submissions and review notifications to external CRMs or email lists via webhooks.

🔄 Content Automation

Schedule AI content generation on CRON. Auto-publish blog posts and programmatic pages.

📋 Review Moderation

Auto-approve or flag reviews based on content rules. Send alerts for critical reviews.

📢 Broadcast Notifications

Send email digests, SMS alerts, or Slack messages when new listings are created.

Integration Points

Webhooks — Configure webhooks per-directory or globally for each event type.

API Keys — Use scoped API keys in n8n HTTP Request nodes to call platform APIs.

Provider Keys — Store OpenAI or other provider keys for AI-powered n8n workflows.

CRON — Schedule recurring content generation and data export workflows via n8n CRON triggers.

Format — Webhook payloads use JSON with consistent event envelope format.

39. Industries

The verticals a directory can be built on. The whole list is managed from the admin panel's Industries section โ€” add, rename, re-describe, re-icon, reorder, publish or switch one off. Nothing here needs SQL or a code change.

GET /api/v1/industries/catalogue — Every industry, published or not · operator

POST /api/v1/industries/catalogue — Add an industry (the slug is derived from the name) · operator

PUT /api/v1/industries/catalogue/:slug — Edit, reorder, publish or unpublish · operator

GET /api/v1/industries/available — The published list (active only), in display order · authenticated

Where to click: Admin Panel → ๐Ÿญ Industries. Edit a row and press Save; use ↑ / ↓ to reorder; untick published to hide an industry from the list; ๏ผ‹ Add industry creates one. Preview published list shows exactly what the published-list endpoint returns.

40. Settings

User profile settings, password management, and account configuration.

👤 Profile

Manage your name, email, and account preferences.

🔐 Security

Change password and manage session tokens.

📧 Notifications

Configure email notification preferences per directory.

GET /api/v1/auth/me — Get user profile

PUT /api/v1/auth/password — Change password

41. API Reference

General API usage guidelines for the Multi-Directory Platform.

Authentication

All API requests require a Bearer token in the Authorization header:

Authorization: Bearer <your-api-key>

API keys are managed from the admin dashboard or via the /api/v1/api-keys endpoint.

Rate Limits

General API60 requests per minute per key
Search endpoints30 requests per minute per key
Import/Export10 requests per minute per key

Content Types

Request: application/json for all POST/PUT requests

Response: application/json for all API responses

File uploads: multipart/form-data for image and CSV uploads

Error Handling

Standard HTTP status codes are used:

200Success
201Created
400Bad request / validation error
401Unauthorized / missing API key
403Forbidden / insufficient permissions
404Not found
409Conflict / duplicate entry
429Rate limit exceeded
500Internal server error

Error responses include a message field with details and an optional errors field with field-level validation messages.

Pagination

List endpoints support pagination with query parameters:

GET /api/v1/businesses?page=1&per_page=20
pagePage number (default: 1)
per_pageItems per page (default: 20, max: 100)

Responses include total, page, per_page, and total_pages in the response metadata.

44. AI Article Writer (Answer-First)

The AI Article Writer generates SEO-optimized content in the Answer-First format. Access it via SEO Articles in the directory dashboard sidebar.

How It Works

A 10-question wizard collects the business name, category, city, competitors, and nearby areas. The AI generates:

Competitor Auto-Suggest

When you select a directory and enter a business name, the system automatically queries the directory for other businesses that could serve as competitors. These appear as clickable badges โ€” click one to add it. Manual entry is still supported.

AI Article Writer Endpoints

POST /api/v1/admin/articles/generate-answer-first — Generate Answer-First article

POST /api/v1/admin/articles/suggest-competitors — Suggest competitors from same directory

Where Articles Appear


45. Core Swift Native Integration

Core Swift is the sister company engine that handles all CRM, communication campaigns, automation, and tagging. Directories are capture points that feed contacts and trigger campaigns. Every directory network gets its own Core Swift tenant account (not the admin account).

⚡ Built-In Architecture

  • Core Swift โ€” CRM, campaigns, deal pipelines, call tracking, automation
  • Multi-Directory โ€” capture points for signups, sponsorships, upgrades
  • SMTP (per-directory) โ€” newsletters, receipts, transactional emails only
  • Third-party CRM โ€” optional add-on for sold directories

One-Click Tenant + Campaign Creation

  1. Go to a directory Dashboard → Integrations
  2. Click ✨ Auto-Create Tenant + Campaigns
  3. The system creates a Core Swift tenant account scoped to this directory:
    • Generates a unique API token
    • Seeds a Signup Campaign (fires when a business signs up)
    • Seeds a Sponsor Campaign (fires when a business upgrades)
    • Creates default email lists per city
  4. Auto-fills the endpoint + token fields
  5. Calls Test Connection to verify
  6. Saves everything automatically

Per-Directory Configuration

Each directory stores its own Core Swift endpoint and token in template_config.integrations. When you sell a directory, the buyer connects their own Core Swift tenant:

Your directoryhttps://core.yourplatform.com/tenant/your-city
Sold directoryhttps://core.buyer.com/tenant/their-city

Endpoints

POST /api/v1/admin/core-swift/setup-tenant — Create tenant + campaigns, get token

POST /api/v1/admin/core-swift/test-connection — Test Core Swift reachability


46. Integrations Panel

Each directory has its own Integrations panel (Dashboard → Integrations). The system is designed around Core Swift as the built-in engine.

⚡ Core Swift (Built-in)

This is the default. Core Swift handles all CRM, campaigns, and communication. No API keys required for your own directories.

  • Business signs up → flows into Core Swift CRM as a contact, tagged with directory + tier
  • Business sponsors/upgrades → tag changes, moves to sponsor campaign
  • Auto-Create button seeds signup + sponsor campaigns with one click

📧 Email (SMTP per Directory)

Configured in Directory Settings → SMTP. Used for newsletters, receipts, and confirmation emails. Each directory has its own sending reputation.

📞 External CRM (Optional)

Connect HubSpot, Salesforce, Zoho, or Pipedrive for sold directories that want their own stack.

🔗 Webhooks

Configure URLs for new businesses, new articles, and lead captures. Each directory has its own webhook endpoints.


47. Trap Door Pages

Hyper-niche landing pages targeting long-tail SEO queries. Generated from combinations of services, cities, days of the week, and time slots.

8,400+Pages per Directory
4Factors (svc x city x day x time)
7API Endpoints

How It Works

  1. Enter your services, cities, days, and time tags
  2. Preview the estimated page count
  3. Generate all combinations as Trap Door pages
  4. Each page has unique SEO meta, content, FAQ, and CTA
  5. Weekly automation via n8n discovers new factors and generates fresh pages

Templates

Create Trap Door templates with patterns like: Best {service} in {city} open {day} {time}. Templates auto-fill placeholders for batch generation.

Public Pages

Each Trap Door page lives at /p/{slug} with:

Analytics

The Analytics tab shows impressions, clicks, and conversion data. Filter by day, time slot, or service.


Monetize directory content by selling article sponsorships to businesses. One of 4 monetization methods alongside Plan Tiers, Subscriptions, and Ad Zones.

How Sponsorship Works

  1. Create a sponsorship from the Monetization → Sponsored Articles tab
  2. Select directory, business, target keyword, weekly price, and duration
  3. Article is generated and published with a Sponsored badge
  4. Business gets exposure; directory gets recurring revenue

Tracking

Two-tier model: Owner articles (directory SEO) are free. Business-sponsored articles are paid, with weekly renewal.

42. B2B SSR Pages

The platform includes three server-rendered B2B pages that connect suppliers, businesses, and service providers across the directory ecosystem:

📋 RFQ Marketplace

/rfq-marketplace โ€” Businesses post Request-for-Quote listings. Suppliers browse and respond to RFQs. Server-side rendered for SEO and fast load times.

🤝 Co-op Hub

/coop-hub โ€” Cooperative purchasing and partnership hub. Businesses and suppliers find collaboration opportunities, group buying arrangements, and shared resource agreements.

📣 Lead Exchange

/lead-exchange โ€” Marketplace for business leads. Qualified leads can be bought, sold, or exchanged between businesses within the directory network.

Architecture

All three B2B pages are server-side rendered (SSR) โ€” pre-rendered HTML is served directly, providing instant first paint, crawlable content for search engines, and excellent performance on mobile devices. The pages use the same design system and CSS framework as the rest of the platform.

API Endpoints

GET /rfq-marketplace — Server-rendered RFQ marketplace page

GET /coop-hub — Server-rendered Co-op Hub page

GET /lead-exchange — Server-rendered Lead Exchange page

43. Notifications Ticker

The Notifications Ticker is a real-time scrolling bar on the directory and ZaarHub frontends that automatically displays recent platform activity. Unlike the admin-managed Announcement Ticker (see Section 30: Notifications), this ticker is system-driven โ€” it populates automatically from platform events without manual input.

๐Ÿช New Businesses

Recently added or verified business listings appear in the ticker.

๐Ÿท๏ธ New Deals

Businesses posting new deals or promotions trigger a ticker entry.

โญ New Reviews

Recent customer reviews with high ratings appear in the ticker.

โœ… Verified Claims

Newly claimed and verified businesses are highlighted.

โš™๏ธ Configuration

Enable / DisableToggle the ticker on or off from the admin panel under Settings โ†’ Notifications Ticker.
PositionChoose top (below header nav) or bottom (above footer).
Scroll SpeedSet animation speed: Slow (60s), Normal (30s), or Fast (15s) for a full scroll cycle.
Max ItemsLimit how many ticker entries display at once (default: 5, max: 20). Older entries rotate out automatically.
Event TypesChoose which events appear: new businesses, new deals, new reviews, verified claims. Toggle each independently.

๐Ÿ’ก Auto-Populated: Ticker items are generated automatically when the corresponding platform event occurs. There's no manual posting โ€” the system detects new businesses, deals, reviews, and claims and adds them to the ticker queue automatically.

๐ŸŽจ CSS Customization

The ticker appearance can be customized through the admin panel's Theme settings or by overriding CSS variables:

/* Ticker bar background */
--ticker-bg: #1e293b;
/* Ticker item text color */
--ticker-text: #e2e8f0;
/* Ticker font size */
--ticker-font-size: 0.9rem;
/* Animation duration */
--ticker-speed: 30s;
/* Ticker item accent / highlight color */
--ticker-accent: #10b981;

API Endpoints

GET /api/v1/ticker/items โ€” Retrieve current ticker items with metadata (event type, timestamp, link URL)

GET /api/v1/ticker/config โ€” Retrieve current ticker configuration (enabled, position, speed, max items, event filters)

POST /api/v1/ticker/config โ€” Update ticker configuration (admin only)


50. FAQ

How do I create a new directory?

From the Dashboard, click New Directory. Select a template, enter your city/industry name, and choose a URL slug. The directory will be created with default settings and categories matching the template.

Can I change a directory's template after creation?

Yes. Go to the directory settings page and select a new template. Note that custom field values from the old template that don't exist in the new one will be preserved in the database but hidden from the public view.

How do I add businesses in bulk?

Use the CSV Import feature under the Import/Export section. Download the sample CSV template, fill in your business data, and upload. The system validates and imports with a detailed log.

What AI content features are available?

The platform offers AI blog generation, business article generation, programmatic page generation, newsletter content generation, and content repurposing. Each feature has directory-level configuration for tone, length, and topic focus.

How do I set up call tracking?

Navigate to Call Tracking in the admin panel. Provision a local phone number from available inventory, assign it to a business, and configure forwarding. Calls are automatically logged and recorded.

Can I use my own domain?

Yes. Register your domain under Domains in the admin panel. Follow the verification instructions (DNS TXT record or file upload). Once verified, assign the domain to any directory. SSL is automatic.

How does monetization work?

Define subscription tiers with different feature sets and pricing. Businesses can subscribe to premium tiers for enhanced listings, ad zones, and sponsored placements. Invoices are generated automatically and payouts are tracked per directory.

How do I integrate with n8n?

Create an API key under Settings > API Keys. Use the webhook system to send events to n8n endpoints. The platform exposes all CRUD operations via REST API for n8n HTTP Request nodes to consume.

Is there a mobile app?

The platform is fully responsive and works on mobile browsers. There is no native mobile app, but the admin dashboard and public directory pages are optimized for mobile viewing.

How do I get support?

Contact your platform admin for technical issues, account questions, or feature requests. Include your account email and a description of the issue.