From Yelp API
Overview
Key Differences
Aspect
Yelp API
AIDP Schema
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
Enriching Yelp Data
Benefits of Migration
Maintaining Both Platforms
Next Steps
Support
Last updated