Servidor MCP

BeachFinder - beaches and live conditions

com.getbeachfinder/beachfinder
Mapas y ubicación Viajes y hospitalidad Público y accesible MCP 2025-11-25

Qué hace este MCP

Searches beaches, swimming, surf, diving, river, vanlife, and coastal activity locations, with spot details, current conditions, providers, and guides.

compare_spots
Compare BeachFinder spots
Compare two to five explicit BeachFinder spot IDs using only documented facts and current available conditions.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['spotIds'], 'properties': {'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'intent': {'enum': ['general', 'swimming', 'family', 'low-wind', 'warm-water', 'surf', 'accessible', 'amenities'], 'type': 'string', 'default': 'general'}, 'spotIds': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid'}, 'maxItems': 5, 'minItems': 2}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
get_community_conditions
Get community conditions
Get an anonymous aggregate of active BeachFinder community reports for one spot. No user identity is returned.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['spotId'], 'properties': {'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'spotId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
get_spot_conditions
Get spot conditions
Get current water, weather, wind, UV, wave and current planning signals for one BeachFinder spot ID.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['spotId'], 'properties': {'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'spotId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
get_spot_details
Get spot details
Get stable public facts and localized editorial content for one BeachFinder spot ID.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['spotId'], 'properties': {'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'spotId': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
search_activity_providers
Search activity and coastal travel providers
Use for conversational requests for professionals near a destination: surf schools, camps, shops, board or wetsuit rental and repair; dive, snorkel and freedive centers; SUP, paddle, kayak and canoe rental, lessons or tours; rafting, canyoning and whitewater outfitters; boat, sailing, fishing, wildlife, jet-ski and beach services; plus campervan, motorhome, RV and surf-van rental, sales, dealers, conversion builders, repair workshops and coastal RV parks. Search in any supported language. Results expose only the provider name, normalized service category, approximate location, verification tier and BeachFinder profile/app links; direct contacts remain on the BeachFinder claimable profile.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude supplied with user consent'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude supplied with user consent'}, 'city': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': 'Destination city; use this instead of coordinates'}, 'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': "Exact beach, activity or professional-service request in the user's language. Preserve narrow needs such as surfboard repair, freediving school, SUP rental, rafting guide, campervan rental, motorhome dealer, van conversion or RV repair."}, 'intent': {'enum': ['general', 'swimming', 'family', 'low-wind', 'warm-water', 'surf', 'accessible', 'amenities'], 'type': 'string', 'default': 'general'}, 'country': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'radiusKm': {'type': 'number', 'default': 50, 'maximum': 150, 'minimum': 1}, 'maxWindKmh': {'type': 'number', 'maximum': 150, 'minimum': 0}, 'minWaterTempC': {'type': 'number', 'maximum': 45, 'minimum': -5}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
search_beaches
Search beaches
Find public beaches by city or consented coordinates and rank them for swimming, family, warm-water, low-wind, surf, accessibility or amenities. Returns compact results with BeachFinder links.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude supplied with user consent'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude supplied with user consent'}, 'city': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': 'Destination city; use this instead of coordinates'}, 'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': "Exact beach, activity or professional-service request in the user's language. Preserve narrow needs such as surfboard repair, freediving school, SUP rental, rafting guide, campervan rental, motorhome dealer, van conversion or RV repair."}, 'intent': {'enum': ['general', 'swimming', 'family', 'low-wind', 'warm-water', 'surf', 'accessible', 'amenities'], 'type': 'string', 'default': 'general'}, 'country': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'radiusKm': {'type': 'number', 'default': 50, 'maximum': 150, 'minimum': 1}, 'maxWindKmh': {'type': 'number', 'maximum': 150, 'minimum': 0}, 'minWaterTempC': {'type': 'number', 'maximum': 45, 'minimum': -5}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
search_dive_snorkel_spots
Search dive and snorkel spots
Find mapped diving and snorkeling locations without inferring visibility or safety.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude supplied with user consent'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude supplied with user consent'}, 'city': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': 'Destination city; use this instead of coordinates'}, 'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': "Exact beach, activity or professional-service request in the user's language. Preserve narrow needs such as surfboard repair, freediving school, SUP rental, rafting guide, campervan rental, motorhome dealer, van conversion or RV repair."}, 'intent': {'enum': ['general', 'swimming', 'family', 'low-wind', 'warm-water', 'surf', 'accessible', 'amenities'], 'type': 'string', 'default': 'general'}, 'country': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'radiusKm': {'type': 'number', 'default': 50, 'maximum': 150, 'minimum': 1}, 'maxWindKmh': {'type': 'number', 'maximum': 150, 'minimum': 0}, 'minWaterTempC': {'type': 'number', 'maximum': 45, 'minimum': -5}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
search_guides
Search BeachFinder guides
Find active localized practical, destination and GTA travel guides published by BeachFinder.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude supplied with user consent'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude supplied with user consent'}, 'city': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': 'Destination city; use this instead of coordinates'}, 'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': "Exact beach, activity or professional-service request in the user's language. Preserve narrow needs such as surfboard repair, freediving school, SUP rental, rafting guide, campervan rental, motorhome dealer, van conversion or RV repair."}, 'intent': {'enum': ['general', 'swimming', 'family', 'low-wind', 'warm-water', 'surf', 'accessible', 'amenities'], 'type': 'string', 'default': 'general'}, 'country': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'radiusKm': {'type': 'number', 'default': 50, 'maximum': 150, 'minimum': 1}, 'maxWindKmh': {'type': 'number', 'maximum': 150, 'minimum': 0}, 'minWaterTempC': {'type': 'number', 'maximum': 45, 'minimum': -5}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
search_river_whitewater_spots
Search river and whitewater spots
Find mapped river and whitewater activity locations near a destination.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude supplied with user consent'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude supplied with user consent'}, 'city': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': 'Destination city; use this instead of coordinates'}, 'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': "Exact beach, activity or professional-service request in the user's language. Preserve narrow needs such as surfboard repair, freediving school, SUP rental, rafting guide, campervan rental, motorhome dealer, van conversion or RV repair."}, 'intent': {'enum': ['general', 'swimming', 'family', 'low-wind', 'warm-water', 'surf', 'accessible', 'amenities'], 'type': 'string', 'default': 'general'}, 'country': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'radiusKm': {'type': 'number', 'default': 50, 'maximum': 150, 'minimum': 1}, 'maxWindKmh': {'type': 'number', 'maximum': 150, 'minimum': 0}, 'minWaterTempC': {'type': 'number', 'maximum': 45, 'minimum': -5}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
search_surf_spots
Search surf spots
Find mapped swimming locations with surf or wave relevance and current planning signals when available.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude supplied with user consent'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude supplied with user consent'}, 'city': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': 'Destination city; use this instead of coordinates'}, 'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': "Exact beach, activity or professional-service request in the user's language. Preserve narrow needs such as surfboard repair, freediving school, SUP rental, rafting guide, campervan rental, motorhome dealer, van conversion or RV repair."}, 'intent': {'enum': ['general', 'swimming', 'family', 'low-wind', 'warm-water', 'surf', 'accessible', 'amenities'], 'type': 'string', 'default': 'general'}, 'country': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'radiusKm': {'type': 'number', 'default': 50, 'maximum': 150, 'minimum': 1}, 'maxWindKmh': {'type': 'number', 'maximum': 150, 'minimum': 0}, 'minWaterTempC': {'type': 'number', 'maximum': 45, 'minimum': -5}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
search_swim_spots
Search swimming spots
Find beaches, lakes, bathing places and public swimming locations. Current conditions are fetched only for the highest-ranked results.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude supplied with user consent'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude supplied with user consent'}, 'city': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': 'Destination city; use this instead of coordinates'}, 'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': "Exact beach, activity or professional-service request in the user's language. Preserve narrow needs such as surfboard repair, freediving school, SUP rental, rafting guide, campervan rental, motorhome dealer, van conversion or RV repair."}, 'intent': {'enum': ['general', 'swimming', 'family', 'low-wind', 'warm-water', 'surf', 'accessible', 'amenities'], 'type': 'string', 'default': 'general'}, 'country': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'radiusKm': {'type': 'number', 'default': 50, 'maximum': 150, 'minimum': 1}, 'maxWindKmh': {'type': 'number', 'maximum': 150, 'minimum': 0}, 'minWaterTempC': {'type': 'number', 'maximum': 45, 'minimum': -5}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
search_vanlife_spots
Search vanlife spots
Find published van and camping locations near beaches while withholding direct contact details.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude supplied with user consent'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude supplied with user consent'}, 'city': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': 'Destination city; use this instead of coordinates'}, 'lang': {'enum': ['en', 'fr', 'es', 'de', 'it', 'pt', 'nl', 'ja', 'ko', 'zh', 'ar', 'tr', 'ru', 'id'], 'type': 'string', 'default': 'en'}, 'limit': {'type': 'integer', 'default': 5, 'maximum': 10, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 90, 'minLength': 1, 'description': "Exact beach, activity or professional-service request in the user's language. Preserve narrow needs such as surfboard repair, freediving school, SUP rental, rafting guide, campervan rental, motorhome dealer, van conversion or RV repair."}, 'intent': {'enum': ['general', 'swimming', 'family', 'low-wind', 'warm-water', 'surf', 'accessible', 'amenities'], 'type': 'string', 'default': 'general'}, 'country': {'type': 'string', 'maxLength': 60, 'minLength': 2}, 'radiusKm': {'type': 'number', 'default': 50, 'maximum': 150, 'minimum': 1}, 'maxWindKmh': {'type': 'number', 'maximum': 150, 'minimum': 0}, 'minWaterTempC': {'type': 'number', 'maximum': 45, 'minimum': -5}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ok', 'operation', 'query', 'answer', 'updatedAt', 'confidence', 'answerConfidence', 'primaryAnswerId', 'degraded', 'results', 'safetyNotice', 'attribution', 'links'], 'properties': {'ok': {'type': 'boolean', 'const': True}, 'links': {'type': 'object', 'required': ['app', 'methodology', 'privacy'], 'properties': {'app': {'type': 'string', 'format': 'uri'}, 'privacy': {'type': 'string', 'format': 'uri'}, 'methodology': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}, 'query': {'type': 'object', 'additionalProperties': {}}, 'answer': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'entityType', 'verificationStatus', 'name', 'location', 'distanceKm', 'canonicalUrl', 'openUrl', 'downloadAppUrl', 'why', 'stableFacts', 'liveConditions', 'conditionsUpdatedAt', 'sources', 'confidence'], 'properties': {'id': {'type': 'string'}, 'geo': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'additionalProperties': False}, 'why': {'type': 'array', 'items': {'type': 'string'}}, 'name': {'type': 'string'}, 'openUrl': {'type': 'string', 'format': 'uri'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'observedAt': {'type': ['string', 'null']}}, 'additionalProperties': False}}, 'category': {'type': ['string', 'null']}, 'location': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'distanceKm': {'type': ['number', 'null']}, 'entityType': {'enum': ['beach', 'swim_spot', 'river_spot', 'van_spot', 'provider', 'guide'], 'type': 'string'}, 'stableFacts': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'label': {'type': 'string'}, 'value': {}}, 'additionalProperties': False}}, 'canonicalUrl': {'type': 'string', 'format': 'uri'}, 'downloadAppUrl': {'type': 'string', 'format': 'uri'}, 'liveConditions': {'anyOf': [{'type': 'object', 'required': ['updatedAt', 'observedAt', 'fetchedAt', 'expiresAt', 'source', 'timezone', 'freshnessStatus', 'airTemperatureC', 'apparentTemperatureC', 'waterTemperatureC', 'windSpeedKmh', 'windGustKmh', 'uvIndex', 'waveHeightM', 'currentVelocityKmh'], 'properties': {'source': {'type': ['string', 'null']}, 'uvIndex': {'type': ['number', 'null']}, 'timezone': {'type': ['string', 'null']}, 'expiresAt': {'type': ['string', 'null']}, 'fetchedAt': {'type': ['string', 'null']}, 'updatedAt': {'type': ['string', 'null']}, 'observedAt': {'type': ['string', 'null']}, 'waveHeightM': {'type': ['number', 'null']}, 'windGustKmh': {'type': ['number', 'null']}, 'windSpeedKmh': {'type': ['number', 'null']}, 'airTemperatureC': {'type': ['number', 'null']}, 'freshnessStatus': {'enum': ['LIVE', 'FRESH', 'STALE', 'EXPIRED', 'UNAVAILABLE'], 'type': 'string'}, 'waterTemperatureC': {'type': ['number', 'null']}, 'currentVelocityKmh': {'type': ['number', 'null']}, 'apparentTemperatureC': {'type': ['number', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'verificationStatus': {'enum': ['owner_verified', 'source_backed', 'mapped'], 'type': 'string'}, 'conditionsUpdatedAt': {'type': ['string', 'null']}, 'primaryAnswerReasons': {'type': 'array', 'items': {'type': 'string'}}, 'entityConfidenceLevel': {'enum': ['VERIFIED', 'HIGH_CONFIDENCE', 'PROBABLE', 'UNVERIFIED', 'REJECTED'], 'type': 'string'}, 'entityConfidenceScore': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'primaryAnswerEligible': {'type': 'boolean'}}, 'additionalProperties': False}}, 'degraded': {'type': 'boolean'}, 'operation': {'type': 'string'}, 'updatedAt': {'type': 'string'}, 'confidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'attribution': {'type': 'string'}, 'safetyNotice': {'type': 'string'}, 'primaryAnswerId': {'type': ['string', 'null']}, 'answerConfidence': {'enum': ['high', 'medium', 'low'], 'type': 'string'}}, 'additionalProperties': False}
Añadido
compare_spots
17 de September de 2026 a las 12:35
Añadido
get_community_conditions
17 de September de 2026 a las 12:35
Añadido
get_spot_conditions
17 de September de 2026 a las 12:35
Añadido
get_spot_details
17 de September de 2026 a las 12:35
Añadido
search_guides
17 de September de 2026 a las 12:35
Añadido
search_activity_providers
17 de September de 2026 a las 12:35
Añadido
search_vanlife_spots
17 de September de 2026 a las 12:35
Añadido
search_river_whitewater_spots
17 de September de 2026 a las 12:35
Añadido
search_dive_snorkel_spots
17 de September de 2026 a las 12:35
Añadido
search_surf_spots
17 de September de 2026 a las 12:35
Añadido
search_swim_spots
17 de September de 2026 a las 12:35
Añadido
search_beaches
17 de September de 2026 a las 12:35