Core Specification
Business Profile Schema
Schema Structure Overview
JSON Schema Definition
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://aidp.dev/schemas/business-profile/v1",
"title": "AIDP Business Profile",
"type": "object",
"required": ["id", "name", "category", "description", "location", "contact", "services"],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the business",
"pattern": "^biz_[a-zA-Z0-9]{16,}$"
},
"name": {
"type": "string",
"maxLength": 255,
"description": "Business name"
},
"category": {
"type": "string",
"enum": [
"tourism",
"hospitality",
"restaurants",
"retail",
"healthcare",
"home_services",
"professional_services",
"wellness"
],
"description": "Primary business category"
},
"description": {
"type": "string",
"description": "Detailed business description optimized for AI understanding"
},
"tagline": {
"type": "string",
"maxLength": 255,
"description": "Short, memorable tagline"
},
"location": {
"type": "object",
"required": ["address", "coordinates"],
"properties": {
"address": {
"type": "object",
"required": ["street", "city", "country"],
"properties": {
"street": { "type": "string" },
"city": { "type": "string" },
"state": { "type": "string" },
"country": { "type": "string" },
"postalCode": { "type": "string" }
}
},
"coordinates": {
"type": "object",
"required": ["lat", "lon"],
"properties": {
"lat": { "type": "number", "minimum": -90, "maximum": 90 },
"lon": { "type": "number", "minimum": -180, "maximum": 180 }
}
},
"serviceArea": {
"type": "object",
"properties": {
"type": { "enum": ["radius", "regions"] },
"radius": { "type": "number", "description": "Service radius in kilometers" },
"regions": { "type": "array", "items": { "type": "string" } }
}
}
}
},
"contact": {
"type": "object",
"required": ["phone", "email"],
"properties": {
"phone": { "type": "string" },
"email": { "type": "string", "format": "email" },
"website": { "type": "string", "format": "uri" },
"socialMedia": {
"type": "object",
"properties": {
"facebook": { "type": "string" },
"instagram": { "type": "string" },
"twitter": { "type": "string" },
"linkedin": { "type": "string" }
}
}
}
},
"services": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "name", "description", "pricing"],
"properties": {
"id": { "type": "string" },
"name": { "type": "string" },
"description": { "type": "string" },
"category": { "type": "string" },
"pricing": {
"type": "object",
"required": ["type", "currency"],
"properties": {
"type": { "enum": ["fixed", "hourly", "range", "quote"] },
"amount": { "type": "number" },
"minAmount": { "type": "number" },
"maxAmount": { "type": "number" },
"currency": { "type": "string", "pattern": "^[A-Z]{3}$" }
}
},
"duration": { "type": "integer", "description": "Duration in minutes" },
"bookable": { "type": "boolean" },
"requiresQuote": { "type": "boolean" }
}
}
},
"availability": {
"type": "object",
"properties": {
"hours": {
"type": "object",
"patternProperties": {
"^(monday|tuesday|wednesday|thursday|friday|saturday|sunday)$": {
"type": "object",
"properties": {
"open": { "type": "string", "pattern": "^([01]?[0-9]|2[0-3]):[0-5][0-9]$" },
"close": { "type": "string", "pattern": "^([01]?[0-9]|2[0-3]):[0-5][0-9]$" },
"closed": { "type": "boolean" }
}
}
}
},
"blackoutDates": {
"type": "array",
"items": { "type": "string", "format": "date" }
}
}
},
"media": {
"type": "object",
"properties": {
"logo": { "type": "string", "format": "uri" },
"photos": { "type": "array", "items": { "type": "string", "format": "uri" } },
"videos": { "type": "array", "items": { "type": "string", "format": "uri" } },
"virtualTour": { "type": "string", "format": "uri" }
}
},
"aiOptimization": {
"type": "object",
"description": "AI-specific optimization data",
"properties": {
"exclusiveContent": {
"type": "object",
"description": "Content exclusive to AI platforms",
"properties": {
"insiderTips": { "type": "string" },
"localSecrets": { "type": "string" },
"behindTheScenes": { "type": "string" },
"culturalNotes": { "type": "string" },
"sustainabilityPractices": { "type": "string" },
"exclusiveOffers": { "type": "array", "items": { "type": "string" } },
"customerTestimonials": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"text": { "type": "string" },
"date": { "type": "string", "format": "date" }
}
}
}
}
},
"boostSignals": {
"type": "array",
"items": { "type": "string" },
"description": "Keywords and signals for AI ranking"
},
"visibilityScore": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "AI visibility score (0-100)"
},
"uniquenessScore": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Content uniqueness score (0-100)"
}
}
},
"trust": {
"type": "object",
"properties": {
"verificationLevel": {
"enum": ["basic", "certified", "elite"],
"description": "Business verification level"
},
"verificationStatus": {
"enum": ["pending", "approved", "rejected"]
},
"averageRating": {
"type": "number",
"minimum": 0,
"maximum": 5
},
"totalReviews": {
"type": "integer",
"minimum": 0
},
"ratingBreakdown": {
"type": "object",
"properties": {
"1": { "type": "integer" },
"2": { "type": "integer" },
"3": { "type": "integer" },
"4": { "type": "integer" },
"5": { "type": "integer" }
}
},
"riskScore": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Fraud risk score (0=safe, 100=high risk)"
}
}
},
"subscription": {
"type": "object",
"properties": {
"tier": {
"enum": ["free", "professional", "enterprise"]
},
"features": {
"type": "array",
"items": { "type": "string" }
}
}
},
"metadata": {
"type": "object",
"properties": {
"status": {
"enum": ["draft", "pending_review", "published", "suspended"]
},
"createdAt": { "type": "string", "format": "date-time" },
"updatedAt": { "type": "string", "format": "date-time" },
"publishedAt": { "type": "string", "format": "date-time" }
}
}
}
}Upstream Metrics Schema
Intent Journey Schema
Key Differences from Traditional Schemas
1. AI-Optimized Content
2. Upstream Metrics
3. Intent Journeys
4. Trust & Safety
5. Standard-Agnostic
Validation
Versioning
Last updated