From Yelp API

Overview

Convert Yelp Fusion API data to AIDP Schema format. AIDP provides AI-native features while maintaining compatibility with Yelp's rich review and business data.

Key Differences

Aspect
Yelp API
AIDP Schema

Discovery

Search API

MCP tools + Search API

Reviews

Consumer-generated

Consumer + business responses

Booking

External links

Native booking system

Analytics

Not provided

Upstream + intent metrics

Content

Public only

AI-exclusive content

Field Mapping

Business Basics

// Yelp API Response
const yelpBusiness = {
  id: 'artisan-coffee-roasters-portland',
  alias: 'artisan-coffee-roasters-portland',
  name: 'Artisan Coffee Roasters',
  image_url: 'https://s3-media.yelp.com/...',
  is_closed: false,
  url: 'https://www.yelp.com/biz/...',
  review_count: 342,
  categories: [
    { alias: 'coffee', title: 'Coffee & Tea' },
    { alias: 'cafes', title: 'Cafes' },
  ],
  rating: 4.5,
  coordinates: {
    latitude: 45.5231,
    longitude: -122.6765,
  },
  transactions: ['pickup', 'delivery'],
  price: '$$',
  location: {
    address1: '123 Main St',
    address2: '',
    address3: '',
    city: 'Portland',
    zip_code: '97201',
    country: 'US',
    state: 'OR',
    display_address: ['123 Main St', 'Portland, OR 97201'],
  },
  phone: '+15035550123',
  display_phone: '(503) 555-0123',
};

// AIDP Schema
const aidpBusiness: AIDPSchema.BusinessProfile = {
  id: generateAIDPId('biz'),
  name: yelpBusiness.name,
  category: mapYelpCategory(yelpBusiness.categories[0].alias), // "restaurants"
  description: '', // Not provided by Yelp, must fetch from business details
  tagline: extractFromReviews(yelpBusiness.id), // Extract common themes

  location: {
    address: {
      street: yelpBusiness.location.address1,
      city: yelpBusiness.location.city,
      state: yelpBusiness.location.state,
      postalCode: yelpBusiness.location.zip_code,
      country: yelpBusiness.location.country,
    },
    coordinates: {
      lat: yelpBusiness.coordinates.latitude,
      lon: yelpBusiness.coordinates.longitude,
    },
  },

  contact: {
    phone: yelpBusiness.phone,
    email: '', // Not in Yelp API
    website: '', // Must fetch from business details
    socialMedia: {}, // Not in Yelp API
  },

  media: {
    logo: yelpBusiness.image_url,
    photos: [], // Must fetch from photos endpoint
    videos: [],
  },

  trust: {
    averageRating: yelpBusiness.rating,
    totalReviews: yelpBusiness.review_count,
    ratingBreakdown: {}, // Must calculate from reviews
    verificationLevel: 'basic',
    verificationStatus: 'pending',
  },

  aiOptimization: {
    boostSignals: yelpBusiness.categories.map((c) => c.alias),
    exclusiveContent: {}, // Must be added
  },

  metadata: {
    status: yelpBusiness.is_closed ? 'suspended' : 'published',
    createdAt: new Date().toISOString(),
    updatedAt: new Date().toISOString(),
  },
};

Business Details

Reviews

Category Mapping

Complete Migration Script

What's Missing from Yelp

  1. Email addresses - Not in Yelp API

  2. Structured services - Must be created manually

  3. Booking system - Yelp only links externally

  4. AI-exclusive content - Unique to AIDP

  5. Business responses - Not in API (only on website)

  6. Upstream metrics - Not tracked by Yelp

Enriching Yelp Data

After migration, enhance with AIDP-specific features:

Benefits of Migration

  • AI Discovery: Appear in AI assistant results

  • Direct Booking: No third-party fees

  • Richer Analytics: Track upstream metrics

  • Exclusive Content: Differentiate from Yelp listing

  • Data Ownership: Control your business data

Maintaining Both Platforms

Keep Yelp and AIDP in sync:

Next Steps

  1. Export Yelp data using Fusion API

  2. Run migration script

  3. Add missing fields (email, services, AI content)

  4. Set up MCP server

  5. Monitor both platforms

Support

  • Documentation: https://docs.aidp.dev/migrations/yelp

  • Migration tool: npm install @aidp/yelp-migrator

  • Community: https://github.com/aidp-platform/discussions

Last updated