SocialCrawl

Place schema

The unified SocialCrawl place or business schema. Every field, its type, per-platform availability, and a machine-readable JSON Schema, generated from the canonical Zod source.

Every SocialCrawl endpoint that returns a place or business gives you this exact shape, whatever the source platform. Write your parser once and the same code reads place data from every platform below. That is the unified schema: one contract instead of a dozen raw upstream formats.

Field reference

FieldTypeNullableDescription
idstringNoPlace ID (Google cid for a business, hotel_identifier for a hotel)
namestringYesBusiness / hotel name
urlstringYesWebsite or canonical URL
categorystringYesPrimary category (e.g. "Coffee shop", "Hotel")
rating.valuenumberYes
rating.maxnumberYes
reviews_countnumberYesNumber of ratings
price_levelstringYesPrice band ("inexpensive" / "$$" / null)
addressstringYes
phonestringYes
latitudenumberYes
longitudenumberYes
verifiedbooleanYesClaimed-business flag (Google is_claimed)
descriptionstringYes
image_urlsstring or string[]YesUnion: string | array | null
categoriesstring[]Yes
hotel.starsnumberYes
hotel.stars_descriptionstringYes
hotel.check_in_timestringYes
hotel.check_out_timestringYes
hotel.amenitiesobject[]Yes
hotel.review_topicsobject[]Yes
hotel.pricesobject[]Yes

Extension fields (ext)

Platform-specific passthrough. Each field is present only on the platforms that expose it and is absent everywhere else, so treat every ext.* field as optional. These carry the richer, per-platform signals the unified leaves cannot hold, and the join keys that chain endpoints together.

FieldTypeNullableDescription
ext.distancenumberYes
ext.statusstringYes
ext.timezonestringYes
ext.hoursobject[]Yes
ext.place_idstringYes
ext.attributesobjectYes
ext.rating_distributionobjectYes
ext.people_also_searchobject[]Yes
ext.menu_urlstringYes
ext.domainstringYes
ext.maps_urlstringYes
ext.ranknumberYes
ext.citystringYes
ext.postal_codestringYes
ext.regionstringYes
ext.country_codestringYes
ext.posts_countnumberYes/v1/instagram/location only: the number of public posts Instagram counts at the place.
ext.websitestringYes/v1/instagram/location only: the venue's own website (place.url is its Instagram page).
ext.facebook_places_idstringYes/v1/instagram/location only: the Facebook Places id of the same place.
ext.business_usernamestringYes/v1/instagram/location only: the username of the Instagram business account linked to the place, or null when none is linked.
ext.is_adbooleanYes
ext.ad_ranknumberYes
ext.ad_descriptionstringYes
ext.status_descriptionstringYes
ext.visitor_reviews_countnumberYes
ext.blog_reviews_countnumberYes
ext.booking_urlstringYes
ext.keywordsstring[]Yes

Platform availability

11 platforms return the Place shape. id are never null on any platform. The fields below vary: yes means the platform populates it (the value may still be null); a blank means the platform never provides it, so it is always null.

Platformaddresscategoryurlprice_levelrating.valuereviews_countcategoriesdescriptionimage_urlsphonerating.maxverified
Googleyesyesyesyesyesyesyesyesyesyesyesyes
Gumtree
H&Myes
Home Depotyesyesyes
Instagramyesyesyesyesyes
Kohl'syes
Naveryesyesyesyesyesyesyesyesyesyes
Sephorayes
Targetyes
Tripadvisoryesyesyesyesyesyesyesyesyesyesyesyes
Yelpyesyesyesyes

Machine-readable schema

Validate responses programmatically against the JSON Schema (2020-12):

/schemas/place.json

Point a validator (Ajv, jsonschema, or your framework's) at that URL, or hand it to an agent so it can check the shape without a live call.

Returned by

Endpoints with the Place / PlaceList archetype return this shape:

Google · Gumtree · H&M · Home Depot · Instagram · Kohl's · Naver · Sephora · Target · Tripadvisor · Yelp

See how the same fields map to each platform's raw upstream names in the cross-platform field equivalence table.

On this page