Advanced Details Endpoint
This endpoint provides the most complete picture about a location, including all images, menus, events and more
The Advanced Details endpoint provides the most comprehensive venue information available. This includes complete venue profiles, all available images, detailed descriptions, amenities, contact information, and much more. Use this endpoint when you need the full picture of a venue for detailed profile pages or rich user experiences.
Endpoint
GET /v1/establishments/advanced/{venueId}Caching
If you are caching the venue details, you should only cache the venue ID. Do not cache the full venue details response, as the data changes frequently and must always be fetched fresh for accuracy and compliance.
Parameters
id (required)
The venue ID obtained from search results or other InBe endpoints.
Response structure
type AdvancedDetails = {
id: string;
name: string;
displayName: string;
formattedAddress: string;
location: {
type: string;
coordinates: [number, number];
};
websiteUri: string;
contactEmail: string;
contactNumber: string;
description: string;
primaryGenre: string;
additionalGenres: string[];
wordOnTheStreet: string;
isChain: boolean;
regularOpeningHours: {
days: string[];
timeSlots: {
open: string;
close: string;
isClosed: boolean;
closeNextDay: boolean;
}[];
}[];
mainImageUrl: string;
logo: string;
establishmentFlags: string[];
catersFlags: string[];
photos: {
url: string;
caption: string | null;
}[];
avgPPH: string;
specialOpeningHours: {
date: string;
timeSlots: {
open: string;
close: string;
isClosed: boolean;
closeNextDay: boolean;
}[];
}[];
kitchenOpenTimes: {
days: string[];
timeSlots: {
open: string;
close: string;
isClosed: boolean;
closeNextDay: boolean;
}[];
}[];
bookingUrl: {
url: string;
provider: string;
};
ratings: {
rating: string;
userRatingCount: number;
};
accessibility: {
entrance: boolean;
parking: boolean;
bathroom: boolean;
seating: boolean;
};
payment: {
credit: boolean;
debit: boolean;
cash: boolean;
nfc: boolean;
online: boolean;
amex: boolean;
amexFee: boolean;
exclAmex: boolean;
};
parking: {
street: boolean;
garage: boolean;
lot: boolean;
valet: boolean;
};
extraInformation: {
registeredNumber?: string;
vatNumber?: string;
companyNumber?: string;
healthAndSafetyRating?: string;
foodHygieneRating?: number;
};
socialMediaLinks: {
facebook?: string;
twitter?: string;
instagram?: string;
linkedin?: string;
youtube?: string;
};
activeMenus: Menu[];
activeEvents: {}[];
};Use cases
- Venue profile pages
- Detailed venue information
- Rich user experiences
- Complete venue data
Real-world examples
class VenueProfilePage {
async loadFullVenueDetails(venueId: string) {
try {
const response = await fetch(`/v1/establishments/advanced/${venueId}`, {
headers: { "Api-Key": `${process.env.API_KEY}` },
});
if (!response.ok) {
throw new Error(`Failed to load venue: ${response.status}`);
}
const venue: AdvancedDetails = await response.json();
this.renderVenueProfile(venue);
this.setupImageGallery(venue.photos);
this.displayAmenities(venue.establishmentFlags);
} catch (error) {
this.showError("Failed to load venue details");
}
}
private renderVenueProfile(venue: AdvancedDetails) {
const profileHTML = `
<div class="venue-profile">
<h1>${venue.name}</h1>
<p class="description">${venue.description}</p>
<div class="rating">
<span class="stars">${"⭐".repeat(Math.floor(parseFloat(venue.ratings.rating)))}</span>
<span class="score">${venue.ratings.rating} (${venue.ratings.userRatingCount} reviews)</span>
</div>
<div class="location">
<p>${venue.formattedAddress}</p>
</div>
<div class="contact">
<p>📞 ${venue.contactNumber}</p>
<p>🌐 <a href="${venue.websiteUri}">${venue.websiteUri}</a></p>
</div>
</div>
`;
document.getElementById("venue-profile")!.innerHTML = profileHTML;
}
private setupImageGallery(photos: { url: string; caption: string | null }[]) {
const gallery = document.getElementById("image-gallery")!;
gallery.innerHTML = photos
.map(
(photo) => `
<div class="gallery-item">
<img src="${photo.url}" alt="${photo.caption || "Venue photo"}" />
<p class="caption">${photo.caption || ""}</p>
</div>
`,
)
.join("");
}
}API Reference
Below is the complete OpenAPI specification for the Advanced Details endpoint:
v1/establishments/advanced/{id}Authorization
API-KEY<token>
API key for authentication
In: header
Path Parameters
idRequiredstring
"uuid"curl -X GET "https://api.inbe.us/v1/establishments/advanced/497f6eca-6276-4993-bfeb-53cbbbba6f08" \
-H "API-KEY: <token>"Successfully retrieved establishment advanced details
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"dateofDataUpdate": "2019-08-24T14:15:22Z",
"websiteUri": "string",
"name": "string",
"formattedAddress": "string",
"displayName": "string",
"contactNumber": "string",
"contactEmail": "string",
"description": "string",
"isChain": true,
"accessibilityOptions": [
"string"
],
"parkingOptions": [
"string"
],
"paymentOptions": [
"string"
],
"primaryGenre": "string",
"additionalGenres": [
"string"
],
"avgPPH": "string",
"wordOnTheStreet": "string",
"establishmentFlags": [
"string"
],
"catersFlags": [
"string"
],
"location": {
"type": "Point",
"coordinates": [
0,
0
]
},
"rating": {
"rating": "string",
"userRatingCount": 0
},
"regularOpeningHours": [
{
"days": [
"string"
],
"timeSlots": [
{
"open": "string",
"close": "string",
"isClosed": true,
"closeNextDay": true
}
]
}
],
"specialOpeningHours": [
{
"date": "2019-08-24",
"timeSlots": [
{
"open": "string",
"close": "string",
"isClosed": true,
"closeNextDay": true
}
]
}
],
"kitchenOpeningHours": [
{
"days": [
"string"
],
"timeSlots": [
{
"open": "string",
"close": "string",
"isClosed": true,
"closeNextDay": true
}
]
}
],
"bookingUrl": [
{
"url": "http://example.com",
"provider": "string"
}
],
"mainImage": "http://example.com",
"photos": [
{
"url": "http://example.com",
"caption": "string"
}
],
"logo": "http://example.com",
"extras": [
{
"key": "registerNumber",
"value": "HT834Y6S"
},
{
"key": "registerName",
"value": "THE LEAKY CAULDRON LIMITED"
}
],
"socialMediaLinks": [
"http://example.com"
],
"activeMenus": [
{
"name": "string",
"description": "string",
"price": 0,
"sections": [
{
"name": "string",
"description": "string",
"price": 0,
"items": [
{
"name": "string",
"description": "string",
"ingredients": "string",
"calories": 0,
"price": 0,
"dietaryFlags": [
"string"
],
"choices": [
{
"name": "string",
"description": "string",
"required": true,
"choiceType": "string",
"minSelections": 0,
"maxSelections": 0,
"options": [
{
"name": "string",
"description": "string",
"default": true,
"price": 0,
"dietaryFlags": [
"string"
],
"calories": 0,
"maxQuantity": 0
}
]
}
]
}
],
"subSections": [
{
"name": "string",
"description": "string",
"price": 0,
"items": [
{
"name": "string",
"description": "string",
"ingredients": "string",
"calories": 0,
"price": 0,
"dietaryFlags": [
"string"
],
"choices": [
{
"name": "string",
"description": "string",
"required": true,
"choiceType": "string",
"minSelections": 0,
"maxSelections": 0,
"options": [
{
"name": "string",
"description": "string",
"default": true,
"price": 0,
"dietaryFlags": [
"string"
],
"calories": 0,
"maxQuantity": 0
}
]
}
]
}
]
}
]
}
]
}
],
"activeEvents": null
}