diff --git a/CHANGELOG.md b/CHANGELOG.md index a520126..54a0cf2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## v1.13.0-sdk.1 + +- Regenerated from the public API contract (555 to 559 operations). Adds the + **Chrome Web Store** platform (9 endpoints): item detail, search, related + items, reviews, category / collection / top-chart listings, search + suggestions, and the category reference taxonomy — covering Chrome Web Store + extensions and themes. + + +## v1.12.0-sdk.1 + +- Regenerated from the public API contract (532 to 555 operations). Adds the + **TrustMRR** platform (5 endpoints): a public database of verified startup + revenues and a startup-acquisition marketplace. The endpoints cover the + marketplace snapshot (recently listed startups and best deals), the verified + revenue leaderboard (rank by MRR, 30-day revenue, all-time revenue, growth, + traffic, or revenue per visitor), startup detail, the category directory, and + category detail. +- Also catches the client up with public endpoints from earlier API releases that + had not yet been regenerated into the SDKs: the ESPN and Reddit platforms; the + Airbnb Markets, GitHub Users, and Product Hunt dataset families; Product Hunt + category products; and the website tech-stack endpoint. + ## v1.11.0-sdk.1 - Regenerated from the public API contract (529 to 532 operations). Adds three diff --git a/crawlora/client.py b/crawlora/client.py index 0a9fb08..8dc1b2b 100644 --- a/crawlora/client.py +++ b/crawlora/client.py @@ -20,7 +20,7 @@ from .operations import GROUPS, OPERATIONS DEFAULT_BASE_URL = "https://api.crawlora.net/api/v1" -VERSION = "1.11.0-sdk.1" +VERSION = "1.13.0-sdk.1" DEFAULT_USER_AGENT = f"crawlora-python-sdk/{VERSION}" DEFAULT_MAX_RETRY_DELAY = 30.0 DEFAULT_RETRY_STATUSES = (408, 409, 425, 429) diff --git a/crawlora/client.pyi b/crawlora/client.pyi index 051efea..d14a6a8 100644 --- a/crawlora/client.pyi +++ b/crawlora/client.pyi @@ -113,6 +113,7 @@ ModelAirbnbListingItem = TypedDict('ModelAirbnbListingItem', { 'host_id': NotRequired[str], 'id': NotRequired[str], 'image': NotRequired[str], + 'is_guest_favorite': NotRequired[bool], 'is_superhost': NotRequired[bool], 'latitude': NotRequired[float], 'location': NotRequired[str], @@ -145,12 +146,15 @@ ModelAirbnbRoomResponse = TypedDict('ModelAirbnbRoomResponse', { 'host_id': NotRequired[str], 'id': NotRequired[str], 'image': NotRequired[str], + 'is_guest_favorite': NotRequired[bool], 'is_superhost': NotRequired[bool], 'latitude': NotRequired[float], 'location': NotRequired[str], 'longitude': NotRequired[float], + 'person_capacity': NotRequired[int], 'price': NotRequired[float], 'price_per_night': NotRequired[float], + 'property_type': NotRequired[str], 'rating': NotRequired[float], 'review_count': NotRequired[int], 'title': NotRequired[str], @@ -1947,6 +1951,144 @@ ModelBuildinfoInfo = TypedDict('ModelBuildinfoInfo', { 'version': NotRequired[str], }, total=False) +ModelChromewebstoreCard = TypedDict('ModelChromewebstoreCard', { + 'category': NotRequired[str], + 'category_id': NotRequired[int], + 'icon': NotRequired[str], + 'id': NotRequired[str], + 'name': NotRequired[str], + 'publisher': NotRequired[str], + 'rating': NotRequired[float], + 'rating_count': NotRequired[int], + 'summary': NotRequired[str], + 'tile_image': NotRequired[str], + 'url': NotRequired[str], + 'users': NotRequired[int], +}, total=False) + +ModelChromewebstoreCategoriesResult = TypedDict('ModelChromewebstoreCategoriesResult', { + 'categories': NotRequired[list[ModelChromewebstoreCategoryGroup]], + 'charts': NotRequired[list[str]], + 'collections': NotRequired[list[str]], +}, total=False) + +ModelChromewebstoreCategoryGroup = TypedDict('ModelChromewebstoreCategoryGroup', { + 'group': NotRequired[str], + 'subcategories': NotRequired[list[str]], +}, total=False) + +ModelChromewebstoreItem = TypedDict('ModelChromewebstoreItem', { + 'category': NotRequired[str], + 'category_id': NotRequired[int], + 'description': NotRequired[str], + 'developer': NotRequired[str], + 'developer_email': NotRequired[str], + 'header_image': NotRequired[str], + 'icon': NotRequired[str], + 'id': NotRequired[str], + 'language_codes': NotRequired[list[str]], + 'languages': NotRequired[list[str]], + 'min_browser_version': NotRequired[str], + 'name': NotRequired[str], + 'privacy_policy': NotRequired[str], + 'rating': NotRequired[float], + 'rating_count': NotRequired[int], + 'screenshots': NotRequired[list[str]], + 'size': NotRequired[str], + 'summary': NotRequired[str], + 'support_url': NotRequired[str], + 'tile_image': NotRequired[str], + 'updated': NotRequired[str], + 'updated_unix': NotRequired[int], + 'url': NotRequired[str], + 'users': NotRequired[int], + 'version': NotRequired[str], +}, total=False) + +ModelChromewebstoreListResult = TypedDict('ModelChromewebstoreListResult', { + 'count': NotRequired[int], + 'kind': NotRequired[str], + 'results': NotRequired[list[ModelChromewebstoreCard]], + 'value': NotRequired[str], +}, total=False) + +ModelChromewebstoreReview = TypedDict('ModelChromewebstoreReview', { + 'author': NotRequired[str], + 'avatar': NotRequired[str], + 'edited': NotRequired[str], + 'id': NotRequired[str], + 'language': NotRequired[str], + 'posted': NotRequired[str], + 'posted_unix': NotRequired[int], + 'rating': NotRequired[int], + 'text': NotRequired[str], + 'version': NotRequired[str], +}, total=False) + +ModelChromewebstoreReviewsResult = TypedDict('ModelChromewebstoreReviewsResult', { + 'count': NotRequired[int], + 'id': NotRequired[str], + 'reviews': NotRequired[list[ModelChromewebstoreReview]], +}, total=False) + +ModelChromewebstoreSearchResult = TypedDict('ModelChromewebstoreSearchResult', { + 'count': NotRequired[int], + 'query': NotRequired[str], + 'results': NotRequired[list[ModelChromewebstoreCard]], +}, total=False) + +ModelChromewebstoreSimilarResult = TypedDict('ModelChromewebstoreSimilarResult', { + 'count': NotRequired[int], + 'id': NotRequired[str], + 'results': NotRequired[list[ModelChromewebstoreCard]], +}, total=False) + +ModelChromewebstoreSuggestion = TypedDict('ModelChromewebstoreSuggestion', { + 'term': NotRequired[str], +}, total=False) + +ModelChromewebstoreCategoriesResponseDoc = TypedDict('ModelChromewebstoreCategoriesResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelChromewebstoreCategoriesResult], + 'msg': NotRequired[str], +}, total=False) + +ModelChromewebstoreItemResponseDoc = TypedDict('ModelChromewebstoreItemResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelChromewebstoreItem], + 'msg': NotRequired[str], +}, total=False) + +ModelChromewebstoreListResponseDoc = TypedDict('ModelChromewebstoreListResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelChromewebstoreListResult], + 'msg': NotRequired[str], +}, total=False) + +ModelChromewebstoreReviewsResponseDoc = TypedDict('ModelChromewebstoreReviewsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelChromewebstoreReviewsResult], + 'msg': NotRequired[str], +}, total=False) + +ModelChromewebstoreSearchResponseDoc = TypedDict('ModelChromewebstoreSearchResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelChromewebstoreSearchResult], + 'msg': NotRequired[str], +}, total=False) + +ModelChromewebstoreSimilarResponseDoc = TypedDict('ModelChromewebstoreSimilarResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelChromewebstoreSimilarResult], + 'msg': NotRequired[str], +}, total=False) + +ModelChromewebstoreSuggestResponseDoc = TypedDict('ModelChromewebstoreSuggestResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[list[ModelChromewebstoreSuggestion]], + 'msg': NotRequired[str], +}, total=False) + ModelCoingeckoAnalysisResponse = TypedDict('ModelCoingeckoAnalysisResponse', { 'absolute_change': NotRequired[float], 'annotations': NotRequired[list[dict[str, Any]]], @@ -2612,6 +2754,7 @@ ModelContactContactRequest = TypedDict('ModelContactContactRequest', { 'max_pages': NotRequired[int], 'url': Required[str], 'verify': NotRequired[bool], + 'verify_limit': NotRequired[int], }, total=False) ModelContactContactResult = TypedDict('ModelContactContactResult', { @@ -2745,6 +2888,53 @@ ModelDatasetsGoogleBusinessSearchResponse = TypedDict('ModelDatasetsGoogleBusine 'total': NotRequired[int], }, total=False) +ModelDatasetsProductHuntMakersFacetResponse = TypedDict('ModelDatasetsProductHuntMakersFacetResponse', { + 'dataset': NotRequired[str], + 'facet': NotRequired[str], + 'items': NotRequired[list[ModelEsProductHuntMakersFacetItem]], +}, total=False) + +ModelDatasetsProductHuntMakersSearchResponse = TypedDict('ModelDatasetsProductHuntMakersSearchResponse', { + 'dataset': NotRequired[str], + 'items': NotRequired[list[ModelEsProductHuntMakerItem]], + 'page': NotRequired[int], + 'page_size': NotRequired[int], + 'sort': NotRequired[str], + 'total': NotRequired[int], +}, total=False) + +ModelDatasetsProductHuntProductsFacetResponse = TypedDict('ModelDatasetsProductHuntProductsFacetResponse', { + 'dataset': NotRequired[str], + 'facet': NotRequired[str], + 'items': NotRequired[list[ModelEsProductHuntProductsFacetItem]], +}, total=False) + +ModelDatasetsProductHuntProductsSearchResponse = TypedDict('ModelDatasetsProductHuntProductsSearchResponse', { + 'dataset': NotRequired[str], + 'items': NotRequired[list[ModelEsProductHuntProductItem]], + 'page': NotRequired[int], + 'page_size': NotRequired[int], + 'sort': NotRequired[str], + 'total': NotRequired[int], +}, total=False) + +ModelDatasetsProductHuntTrendsFacetResponse = TypedDict('ModelDatasetsProductHuntTrendsFacetResponse', { + 'dataset': NotRequired[str], + 'facet': NotRequired[str], + 'items': NotRequired[list[ModelEsProductHuntTrendsFacetItem]], +}, total=False) + +ModelDatasetsProductHuntTrendsSearchResponse = TypedDict('ModelDatasetsProductHuntTrendsSearchResponse', { + 'dataset': NotRequired[str], + 'group_by': NotRequired[str], + 'items': NotRequired[list[ModelEsProductHuntTrendCell]], + 'min_launches': NotRequired[int], + 'page': NotRequired[int], + 'page_size': NotRequired[int], + 'sort': NotRequired[str], + 'total': NotRequired[int], +}, total=False) + ModelDatasetsReviewsSearchResponse = TypedDict('ModelDatasetsReviewsSearchResponse', { 'dataset': NotRequired[str], 'items': NotRequired[list[ModelEsAppReview]], @@ -2838,6 +3028,54 @@ ModelDatasetsListResponseDoc = TypedDict('ModelDatasetsListResponseDoc', { 'msg': NotRequired[str], }, total=False) +ModelDatasetsProducthuntMakerResponseDoc = TypedDict('ModelDatasetsProducthuntMakerResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEsProductHuntMakerItem], + 'msg': NotRequired[str], +}, total=False) + +ModelDatasetsProducthuntMakersFacetResponseDoc = TypedDict('ModelDatasetsProducthuntMakersFacetResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelDatasetsProductHuntMakersFacetResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelDatasetsProducthuntMakersSearchResponseDoc = TypedDict('ModelDatasetsProducthuntMakersSearchResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelDatasetsProductHuntMakersSearchResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelDatasetsProducthuntProductResponseDoc = TypedDict('ModelDatasetsProducthuntProductResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEsProductHuntProductItem], + 'msg': NotRequired[str], +}, total=False) + +ModelDatasetsProducthuntProductsFacetResponseDoc = TypedDict('ModelDatasetsProducthuntProductsFacetResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelDatasetsProductHuntProductsFacetResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelDatasetsProducthuntProductsSearchResponseDoc = TypedDict('ModelDatasetsProducthuntProductsSearchResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelDatasetsProductHuntProductsSearchResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelDatasetsProducthuntTrendsFacetResponseDoc = TypedDict('ModelDatasetsProducthuntTrendsFacetResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelDatasetsProductHuntTrendsFacetResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelDatasetsProducthuntTrendsSearchResponseDoc = TypedDict('ModelDatasetsProducthuntTrendsSearchResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelDatasetsProductHuntTrendsSearchResponse], + 'msg': NotRequired[str], +}, total=False) + ModelDatasetsReviewsSearchResponseDoc = TypedDict('ModelDatasetsReviewsSearchResponseDoc', { 'code': NotRequired[int], 'data': NotRequired[ModelDatasetsReviewsSearchResponse], @@ -3047,14 +3285,19 @@ ModelEsAirbnbGeoBounds = TypedDict('ModelEsAirbnbGeoBounds', { }, total=False) ModelEsAirbnbMarketCell = TypedDict('ModelEsAirbnbMarketCell', { + 'avg_person_capacity': NotRequired[float], 'avg_rating': NotRequired[float], 'avg_review_count': NotRequired[float], 'distinct_hosts': NotRequired[int], 'enriched_listings': NotRequired[int], + 'guest_favorite_listings': NotRequired[int], + 'guest_favorite_pct': NotRequired[float], + 'guest_favorite_pct_enriched': NotRequired[float], 'key': NotRequired[str], 'last_seen': NotRequired[str], 'listings': NotRequired[int], 'listings_per_host': NotRequired[float], + 'median_price_usd': NotRequired[float], 'rated_listings': NotRequired[int], 'superhost_listings': NotRequired[int], 'superhost_pct': NotRequired[float], @@ -3062,6 +3305,7 @@ ModelEsAirbnbMarketCell = TypedDict('ModelEsAirbnbMarketCell', { }, total=False) ModelEsAirbnbMarketDetail = TypedDict('ModelEsAirbnbMarketDetail', { + 'avg_person_capacity': NotRequired[float], 'avg_rating': NotRequired[float], 'avg_review_count': NotRequired[float], 'bounds': NotRequired[ModelEsAirbnbGeoBounds], @@ -3069,10 +3313,14 @@ ModelEsAirbnbMarketDetail = TypedDict('ModelEsAirbnbMarketDetail', { 'currencies': NotRequired[list[ModelEsAirbnbPriceStats]], 'distinct_hosts': NotRequired[int], 'enriched_listings': NotRequired[int], + 'guest_favorite_listings': NotRequired[int], + 'guest_favorite_pct': NotRequired[float], + 'guest_favorite_pct_enriched': NotRequired[float], 'last_seen': NotRequired[str], 'listings': NotRequired[int], 'listings_per_host': NotRequired[float], 'metros': NotRequired[list[ModelEsAirbnbMarketCell]], + 'price_usd': NotRequired[ModelEsAirbnbPriceUsdstats], 'rated_listings': NotRequired[int], 'superhost_listings': NotRequired[int], 'superhost_pct': NotRequired[float], @@ -3092,6 +3340,13 @@ ModelEsAirbnbPriceStats = TypedDict('ModelEsAirbnbPriceStats', { 'p75': NotRequired[float], }, total=False) +ModelEsAirbnbPriceUsdstats = TypedDict('ModelEsAirbnbPriceUsdstats', { + 'listings': NotRequired[int], + 'p25': NotRequired[float], + 'p50': NotRequired[float], + 'p75': NotRequired[float], +}, total=False) + ModelEsAppRecord = TypedDict('ModelEsAppRecord', { 'android_max_installs': NotRequired[int], 'android_package': NotRequired[str], @@ -3241,6 +3496,7 @@ ModelEsGithubUserDatasetItem = TypedDict('ModelEsGithubUserDatasetItem', { 'influence_tier': NotRequired[str], 'is_bot': NotRequired[bool], 'is_org': NotRequired[bool], + 'is_suspected_automation': NotRequired[bool], 'last_active_at': NotRequired[str], 'location_raw': NotRequired[str], 'login': NotRequired[str], @@ -3284,6 +3540,7 @@ ModelEsGithubUserRecord = TypedDict('ModelEsGithubUserRecord', { 'influence_tier': NotRequired[str], 'is_bot': NotRequired[bool], 'is_org': NotRequired[bool], + 'is_suspected_automation': NotRequired[bool], 'last_active_at': NotRequired[str], 'location_raw': NotRequired[str], 'login': NotRequired[str], @@ -3375,37 +3632,426 @@ ModelEsPostSound = TypedDict('ModelEsPostSound', { 'uses': NotRequired[int], }, total=False) -ModelEsPostStatsAgg = TypedDict('ModelEsPostStatsAgg', { - 'analyzed_at': NotRequired[str], - 'avg_comments': NotRequired[int], - 'avg_likes': NotRequired[int], - 'avg_saves': NotRequired[int], - 'avg_shares': NotRequired[int], - 'avg_video_duration_sec': NotRequired[float], - 'avg_views': NotRequired[int], - 'best_post_id': NotRequired[str], - 'best_post_views': NotRequired[int], - 'engagement_rate_by_follower': NotRequired[float], - 'engagement_rate_by_view': NotRequired[float], - 'first_post_at': NotRequired[str], - 'last_post_at': NotRequired[str], - 'median_likes': NotRequired[int], - 'median_views': NotRequired[int], - 'original_sound_ratio': NotRequired[float], - 'posts_per_week': NotRequired[float], - 'sampled_posts': NotRequired[int], - 'top_hashtags': NotRequired[list[str]], - 'top_sounds': NotRequired[list[ModelEsPostSound]], - 'views_to_follower_ratio': NotRequired[float], +ModelEsPostStatsAgg = TypedDict('ModelEsPostStatsAgg', { + 'analyzed_at': NotRequired[str], + 'avg_comments': NotRequired[int], + 'avg_likes': NotRequired[int], + 'avg_saves': NotRequired[int], + 'avg_shares': NotRequired[int], + 'avg_video_duration_sec': NotRequired[float], + 'avg_views': NotRequired[int], + 'best_post_id': NotRequired[str], + 'best_post_views': NotRequired[int], + 'engagement_rate_by_follower': NotRequired[float], + 'engagement_rate_by_view': NotRequired[float], + 'first_post_at': NotRequired[str], + 'last_post_at': NotRequired[str], + 'median_likes': NotRequired[int], + 'median_views': NotRequired[int], + 'original_sound_ratio': NotRequired[float], + 'posts_per_week': NotRequired[float], + 'sampled_posts': NotRequired[int], + 'top_hashtags': NotRequired[list[str]], + 'top_sounds': NotRequired[list[ModelEsPostSound]], + 'views_to_follower_ratio': NotRequired[float], +}, total=False) + +ModelEsProductHuntLaunch = TypedDict('ModelEsProductHuntLaunch', { + 'daily_rank': NotRequired[int], + 'date': NotRequired[str], + 'launch_day_score': NotRequired[int], + 'launch_number': NotRequired[int], + 'monthly_rank': NotRequired[int], + 'post_id': NotRequired[str], + 'post_slug': NotRequired[str], + 'score': NotRequired[int], + 'weekly_rank': NotRequired[int], +}, total=False) + +ModelEsProductHuntMaker = TypedDict('ModelEsProductHuntMaker', { + 'avatar_url': NotRequired[str], + 'headline': NotRequired[str], + 'maker_id': NotRequired[str], + 'name': NotRequired[str], + 'username': NotRequired[str], +}, total=False) + +ModelEsProductHuntMakerItem = TypedDict('ModelEsProductHuntMakerItem', { + 'avatar_url': NotRequired[str], + 'best_product': NotRequired[ModelEsProductHuntMakerProduct], + 'first_launch_date': NotRequired[str], + 'followers_count': NotRequired[int], + 'headline': NotRequired[str], + 'latest_launch_date': NotRequired[str], + 'made_products': NotRequired[list[ModelEsProductHuntMakerProduct]], + 'maker_id': NotRequired[str], + 'name': NotRequired[str], + 'product_count': NotRequired[int], + 'topics': NotRequired[list[str]], + 'total_votes': NotRequired[int], + 'username': NotRequired[str], +}, total=False) + +ModelEsProductHuntMakerProduct = TypedDict('ModelEsProductHuntMakerProduct', { + 'latest_score': NotRequired[int], + 'name': NotRequired[str], + 'product_id': NotRequired[str], + 'slug': NotRequired[str], +}, total=False) + +ModelEsProductHuntMakersFacetItem = TypedDict('ModelEsProductHuntMakersFacetItem', { + 'count': NotRequired[int], + 'value': NotRequired[str], +}, total=False) + +ModelEsProductHuntProductItem = TypedDict('ModelEsProductHuntProductItem', { + 'best_daily_rank': NotRequired[int], + 'best_monthly_rank': NotRequired[int], + 'best_weekly_rank': NotRequired[int], + 'comments_count': NotRequired[int], + 'description': NotRequired[str], + 'first_launch_date': NotRequired[str], + 'followers_count': NotRequired[int], + 'is_no_longer_online': NotRequired[bool], + 'is_top_product': NotRequired[bool], + 'latest_launch_date': NotRequired[str], + 'latest_score': NotRequired[int], + 'launch_count': NotRequired[int], + 'launch_year': NotRequired[int], + 'launches': NotRequired[list[ModelEsProductHuntLaunch]], + 'logo_uuid': NotRequired[str], + 'makers': NotRequired[list[ModelEsProductHuntMaker]], + 'name': NotRequired[str], + 'pricing_type': NotRequired[str], + 'primary_topic': NotRequired[str], + 'product_id': NotRequired[str], + 'product_state': NotRequired[str], + 'reviews_count': NotRequired[int], + 'reviews_rating': NotRequired[float], + 'slug': NotRequired[str], + 'tagline': NotRequired[str], + 'topic_slugs': NotRequired[list[str]], + 'topics': NotRequired[list[ModelEsProductHuntTopic]], + 'url': NotRequired[str], + 'website': NotRequired[str], + 'won_daily': NotRequired[bool], +}, total=False) + +ModelEsProductHuntProductsFacetItem = TypedDict('ModelEsProductHuntProductsFacetItem', { + 'count': NotRequired[int], + 'value': NotRequired[str], +}, total=False) + +ModelEsProductHuntTopic = TypedDict('ModelEsProductHuntTopic', { + 'id': NotRequired[str], + 'name': NotRequired[str], + 'slug': NotRequired[str], +}, total=False) + +ModelEsProductHuntTrendCell = TypedDict('ModelEsProductHuntTrendCell', { + 'avg_rating': NotRequired[float], + 'avg_votes': NotRequired[float], + 'launches': NotRequired[int], + 'period': NotRequired[str], + 'top_product': NotRequired[ModelEsProductHuntTrendTopProduct], + 'topic': NotRequired[str], + 'total_votes': NotRequired[int], +}, total=False) + +ModelEsProductHuntTrendTopProduct = TypedDict('ModelEsProductHuntTrendTopProduct', { + 'name': NotRequired[str], + 'slug': NotRequired[str], + 'votes': NotRequired[int], +}, total=False) + +ModelEsProductHuntTrendsFacetItem = TypedDict('ModelEsProductHuntTrendsFacetItem', { + 'count': NotRequired[int], + 'value': NotRequired[str], +}, total=False) + +ModelEsWebsiteStatus = TypedDict('ModelEsWebsiteStatus', { + 'checked_at': NotRequired[str], + 'dns_resolvable': NotRequired[bool], + 'error': NotRequired[str], + 'http_reachable': NotRequired[bool], + 'status_code': NotRequired[int], + 'url': NotRequired[str], +}, total=False) + +ModelEspnAthlete = TypedDict('ModelEspnAthlete', { + 'age': NotRequired[int], + 'display_height': NotRequired[str], + 'display_name': NotRequired[str], + 'display_weight': NotRequired[str], + 'full_name': NotRequired[str], + 'headshot': NotRequired[str], + 'id': NotRequired[str], + 'jersey': NotRequired[str], + 'position': NotRequired[str], + 'team': NotRequired[ModelEspnTeamRef], +}, total=False) + +ModelEspnAthleteResponse = TypedDict('ModelEspnAthleteResponse', { + 'athlete': NotRequired[ModelEspnAthlete], + 'fetched_at': NotRequired[str], + 'league': NotRequired[str], + 'source_url': NotRequired[str], + 'sport': NotRequired[str], +}, total=False) + +ModelEspnBoxscoreTeam = TypedDict('ModelEspnBoxscoreTeam', { + 'home_away': NotRequired[str], + 'stats': NotRequired[dict[str, str]], + 'team': NotRequired[ModelEspnTeamRef], +}, total=False) + +ModelEspnCompetitor = TypedDict('ModelEspnCompetitor', { + 'home_away': NotRequired[str], + 'record': NotRequired[str], + 'score': NotRequired[str], + 'team': NotRequired[ModelEspnTeamRef], + 'winner': NotRequired[bool], +}, total=False) + +ModelEspnGame = TypedDict('ModelEspnGame', { + 'competitors': NotRequired[list[ModelEspnCompetitor]], + 'date': NotRequired[str], + 'id': NotRequired[str], + 'name': NotRequired[str], + 'odds': NotRequired[list[ModelEspnGameOdds]], + 'short_name': NotRequired[str], + 'status': NotRequired[ModelEspnGameStatus], + 'venue': NotRequired[str], +}, total=False) + +ModelEspnGameOdds = TypedDict('ModelEspnGameOdds', { + 'details': NotRequired[str], + 'over_under': NotRequired[float], + 'provider': NotRequired[str], + 'spread': NotRequired[float], +}, total=False) + +ModelEspnGameStatus = TypedDict('ModelEspnGameStatus', { + 'clock': NotRequired[str], + 'completed': NotRequired[bool], + 'detail': NotRequired[str], + 'period': NotRequired[int], + 'short_detail': NotRequired[str], + 'state': NotRequired[str], +}, total=False) + +ModelEspnGameSummaryResponse = TypedDict('ModelEspnGameSummaryResponse', { + 'boxscore_teams': NotRequired[list[ModelEspnBoxscoreTeam]], + 'event': NotRequired[str], + 'fetched_at': NotRequired[str], + 'game': NotRequired[ModelEspnGame], + 'league': NotRequired[str], + 'odds': NotRequired[list[ModelEspnGameOdds]], + 'source_url': NotRequired[str], + 'sport': NotRequired[str], +}, total=False) + +ModelEspnNewsArticle = TypedDict('ModelEspnNewsArticle', { + 'byline': NotRequired[str], + 'description': NotRequired[str], + 'headline': NotRequired[str], + 'link': NotRequired[str], + 'published': NotRequired[str], + 'type': NotRequired[str], +}, total=False) + +ModelEspnNewsResponse = TypedDict('ModelEspnNewsResponse', { + 'articles': NotRequired[list[ModelEspnNewsArticle]], + 'count': NotRequired[int], + 'fetched_at': NotRequired[str], + 'league': NotRequired[str], + 'source_url': NotRequired[str], + 'sport': NotRequired[str], +}, total=False) + +ModelEspnRankEntry = TypedDict('ModelEspnRankEntry', { + 'current': NotRequired[int], + 'points': NotRequired[float], + 'previous': NotRequired[int], + 'record': NotRequired[str], + 'team': NotRequired[ModelEspnTeamRef], + 'trend': NotRequired[str], +}, total=False) + +ModelEspnRankingPoll = TypedDict('ModelEspnRankingPoll', { + 'name': NotRequired[str], + 'ranks': NotRequired[list[ModelEspnRankEntry]], + 'short_name': NotRequired[str], +}, total=False) + +ModelEspnRankingsResponse = TypedDict('ModelEspnRankingsResponse', { + 'fetched_at': NotRequired[str], + 'league': NotRequired[str], + 'polls': NotRequired[list[ModelEspnRankingPoll]], + 'season': NotRequired[ModelEspnSeason], + 'source_url': NotRequired[str], + 'sport': NotRequired[str], +}, total=False) + +ModelEspnRosterAthlete = TypedDict('ModelEspnRosterAthlete', { + 'age': NotRequired[int], + 'display_height': NotRequired[str], + 'display_weight': NotRequired[str], + 'experience_years': NotRequired[int], + 'full_name': NotRequired[str], + 'id': NotRequired[str], + 'jersey': NotRequired[str], + 'position': NotRequired[str], +}, total=False) + +ModelEspnRosterResponse = TypedDict('ModelEspnRosterResponse', { + 'athletes': NotRequired[list[ModelEspnRosterAthlete]], + 'coach': NotRequired[str], + 'count': NotRequired[int], + 'fetched_at': NotRequired[str], + 'league': NotRequired[str], + 'source_url': NotRequired[str], + 'sport': NotRequired[str], + 'team': NotRequired[ModelEspnTeamRef], +}, total=False) + +ModelEspnScoreboardResponse = TypedDict('ModelEspnScoreboardResponse', { + 'count': NotRequired[int], + 'day': NotRequired[str], + 'fetched_at': NotRequired[str], + 'games': NotRequired[list[ModelEspnGame]], + 'league': NotRequired[str], + 'league_name': NotRequired[str], + 'season': NotRequired[ModelEspnSeason], + 'source_url': NotRequired[str], + 'sport': NotRequired[str], +}, total=False) + +ModelEspnSeason = TypedDict('ModelEspnSeason', { + 'name': NotRequired[str], + 'type': NotRequired[int], + 'year': NotRequired[int], +}, total=False) + +ModelEspnStandingsEntry = TypedDict('ModelEspnStandingsEntry', { + 'note': NotRequired[str], + 'stats': NotRequired[dict[str, str]], + 'team': NotRequired[ModelEspnTeamRef], +}, total=False) + +ModelEspnStandingsGroup = TypedDict('ModelEspnStandingsGroup', { + 'abbreviation': NotRequired[str], + 'entries': NotRequired[list[ModelEspnStandingsEntry]], + 'name': NotRequired[str], +}, total=False) + +ModelEspnStandingsResponse = TypedDict('ModelEspnStandingsResponse', { + 'fetched_at': NotRequired[str], + 'groups': NotRequired[list[ModelEspnStandingsGroup]], + 'league': NotRequired[str], + 'league_name': NotRequired[str], + 'season': NotRequired[ModelEspnSeason], + 'source_url': NotRequired[str], + 'sport': NotRequired[str], +}, total=False) + +ModelEspnTeamDetail = TypedDict('ModelEspnTeamDetail', { + 'abbreviation': NotRequired[str], + 'alternate_color': NotRequired[str], + 'color': NotRequired[str], + 'display_name': NotRequired[str], + 'id': NotRequired[str], + 'location': NotRequired[str], + 'logo': NotRequired[str], + 'name': NotRequired[str], + 'record': NotRequired[str], + 'short_display_name': NotRequired[str], + 'standing_summary': NotRequired[str], + 'uid': NotRequired[str], +}, total=False) + +ModelEspnTeamRef = TypedDict('ModelEspnTeamRef', { + 'abbreviation': NotRequired[str], + 'alternate_color': NotRequired[str], + 'color': NotRequired[str], + 'display_name': NotRequired[str], + 'id': NotRequired[str], + 'location': NotRequired[str], + 'logo': NotRequired[str], + 'name': NotRequired[str], + 'short_display_name': NotRequired[str], + 'uid': NotRequired[str], +}, total=False) + +ModelEspnTeamResponse = TypedDict('ModelEspnTeamResponse', { + 'fetched_at': NotRequired[str], + 'league': NotRequired[str], + 'source_url': NotRequired[str], + 'sport': NotRequired[str], + 'team': NotRequired[ModelEspnTeamDetail], +}, total=False) + +ModelEspnTeamsResponse = TypedDict('ModelEspnTeamsResponse', { + 'count': NotRequired[int], + 'fetched_at': NotRequired[str], + 'league': NotRequired[str], + 'source_url': NotRequired[str], + 'sport': NotRequired[str], + 'teams': NotRequired[list[ModelEspnTeamRef]], +}, total=False) + +ModelEspnAthleteResponseDoc = TypedDict('ModelEspnAthleteResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEspnAthleteResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelEspnGameSummaryResponseDoc = TypedDict('ModelEspnGameSummaryResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEspnGameSummaryResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelEspnNewsResponseDoc = TypedDict('ModelEspnNewsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEspnNewsResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelEspnRankingsResponseDoc = TypedDict('ModelEspnRankingsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEspnRankingsResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelEspnRosterResponseDoc = TypedDict('ModelEspnRosterResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEspnRosterResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelEspnScoreboardResponseDoc = TypedDict('ModelEspnScoreboardResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEspnScoreboardResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelEspnStandingsResponseDoc = TypedDict('ModelEspnStandingsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEspnStandingsResponse], + 'msg': NotRequired[str], }, total=False) -ModelEsWebsiteStatus = TypedDict('ModelEsWebsiteStatus', { - 'checked_at': NotRequired[str], - 'dns_resolvable': NotRequired[bool], - 'error': NotRequired[str], - 'http_reachable': NotRequired[bool], - 'status_code': NotRequired[int], - 'url': NotRequired[str], +ModelEspnTeamResponseDoc = TypedDict('ModelEspnTeamResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEspnTeamResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelEspnTeamsResponseDoc = TypedDict('ModelEspnTeamsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelEspnTeamsResponse], + 'msg': NotRequired[str], }, total=False) ModelFinanceAbout = TypedDict('ModelFinanceAbout', { @@ -10119,6 +10765,23 @@ ModelSpotifyUserProfileResponseDoc = TypedDict('ModelSpotifyUserProfileResponseD 'msg': NotRequired[Any], }, total=False) +ModelTechstackResult = TypedDict('ModelTechstackResult', { + 'categories': NotRequired[list[str]], + 'count': NotRequired[int], + 'detector_version': NotRequired[str], + 'final_url': NotRequired[str], + 'technologies': NotRequired[list[ModelTechstackTechnology]], + 'url': NotRequired[str], +}, total=False) + +ModelTechstackTechnology = TypedDict('ModelTechstackTechnology', { + 'categories': NotRequired[list[str]], + 'confidence': NotRequired[str], + 'evidence': NotRequired[str], + 'name': NotRequired[str], + 'version': NotRequired[str], +}, total=False) + ModelTiktokCategory = TypedDict('ModelTiktokCategory', { 'name': NotRequired[str], 'type': NotRequired[str], @@ -11461,12 +12124,23 @@ ModelWebScrapeResult = TypedDict('ModelWebScrapeResult', { 'scrape': NotRequired[ModelWebScrapeInfo], }, total=False) +ModelWebTechStackOption = TypedDict('ModelWebTechStackOption', { + 'render': NotRequired[Literal['browser', 'auto', 'http']], + 'url': Required[str], +}, total=False) + ModelWebScrapeResponseDoc = TypedDict('ModelWebScrapeResponseDoc', { 'code': NotRequired[int], 'data': NotRequired[ModelWebScrapeResult], 'msg': NotRequired[str], }, total=False) +ModelWebTechStackResponseDoc = TypedDict('ModelWebTechStackResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTechstackResult], + 'msg': NotRequired[str], +}, total=False) + ModelXMetrics = TypedDict('ModelXMetrics', { 'bookmarks': NotRequired[int], 'likes': NotRequired[int], @@ -13128,6 +13802,99 @@ BraveVideosParams = TypedDict('BraveVideosParams', { 'date_to': NotRequired[str], }, total=False) +ChromeWebStoreChromewebstoreCategoriesResponse = ModelChromewebstoreCategoriesResponseDoc +ChromeWebStoreChromewebstoreCategoriesParams = TypedDict('ChromeWebStoreChromewebstoreCategoriesParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], +}, total=False) + +ChromeWebStoreChromewebstoreCategoryResponse = ModelChromewebstoreListResponseDoc +ChromeWebStoreChromewebstoreCategoryParams = TypedDict('ChromeWebStoreChromewebstoreCategoryParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'category': Required[str], + 'num': NotRequired[int], + 'country': NotRequired[str], + 'lang': NotRequired[str], +}, total=False) + +ChromeWebStoreChromewebstoreChartsResponse = ModelChromewebstoreListResponseDoc +ChromeWebStoreChromewebstoreChartsParams = TypedDict('ChromeWebStoreChromewebstoreChartsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'chart': NotRequired[Literal['trending', 'popular', 'notable']], + 'num': NotRequired[int], + 'country': NotRequired[str], + 'lang': NotRequired[str], +}, total=False) + +ChromeWebStoreChromewebstoreCollectionResponse = ModelChromewebstoreListResponseDoc +ChromeWebStoreChromewebstoreCollectionParams = TypedDict('ChromeWebStoreChromewebstoreCollectionParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'collection': Required[str], + 'num': NotRequired[int], + 'country': NotRequired[str], + 'lang': NotRequired[str], +}, total=False) + +ChromeWebStoreChromewebstoreItemResponse = ModelChromewebstoreItemResponseDoc +ChromeWebStoreChromewebstoreItemParams = TypedDict('ChromeWebStoreChromewebstoreItemParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'id': Required[str], + 'country': NotRequired[str], + 'lang': NotRequired[str], +}, total=False) + +ChromeWebStoreChromewebstoreReviewsResponse = ModelChromewebstoreReviewsResponseDoc +ChromeWebStoreChromewebstoreReviewsParams = TypedDict('ChromeWebStoreChromewebstoreReviewsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'id': Required[str], + 'num': NotRequired[int], + 'country': NotRequired[str], + 'lang': NotRequired[str], +}, total=False) + +ChromeWebStoreChromewebstoreSearchResponse = ModelChromewebstoreSearchResponseDoc +ChromeWebStoreChromewebstoreSearchParams = TypedDict('ChromeWebStoreChromewebstoreSearchParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'term': Required[str], + 'num': NotRequired[int], + 'country': NotRequired[str], + 'lang': NotRequired[str], +}, total=False) + +ChromeWebStoreChromewebstoreSimilarResponse = ModelChromewebstoreSimilarResponseDoc +ChromeWebStoreChromewebstoreSimilarParams = TypedDict('ChromeWebStoreChromewebstoreSimilarParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'id': Required[str], + 'country': NotRequired[str], + 'lang': NotRequired[str], +}, total=False) + +ChromeWebStoreChromewebstoreSuggestResponse = ModelChromewebstoreSuggestResponseDoc +ChromeWebStoreChromewebstoreSuggestParams = TypedDict('ChromeWebStoreChromewebstoreSuggestParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'term': Required[str], + 'num': NotRequired[int], + 'country': NotRequired[str], + 'lang': NotRequired[str], +}, total=False) + CoinGeckoCategoriesResponse = ModelCoingeckoCategoriesResponseDoc CoinGeckoCategoriesParams = TypedDict('CoinGeckoCategoriesParams', { '_response_type': NotRequired[ResponseType], @@ -13355,6 +14122,7 @@ DatasetsAirbnbMarketsFacetsParams = TypedDict('DatasetsAirbnbMarketsFacetsParams 'country': NotRequired[str], 'market': NotRequired[str], 'superhost': NotRequired[bool], + 'guest_favorite': NotRequired[bool], 'min_rating': NotRequired[float], 'min_review_count': NotRequired[int], 'active_since': NotRequired[str], @@ -13394,6 +14162,7 @@ DatasetsAirbnbMarketsSearchParams = TypedDict('DatasetsAirbnbMarketsSearchParams 'country': NotRequired[str], 'market': NotRequired[str], 'superhost': NotRequired[bool], + 'guest_favorite': NotRequired[bool], 'min_rating': NotRequired[float], 'min_review_count': NotRequired[int], 'active_since': NotRequired[str], @@ -13495,6 +14264,7 @@ DatasetsGithubUsersFacetsParams = TypedDict('DatasetsGithubUsersFacetsParams', { 'hireable': NotRequired[bool], 'is_org': NotRequired[bool], 'is_bot': NotRequired[bool], + 'is_suspected_automation': NotRequired[bool], 'min_followers': NotRequired[int], 'max_followers': NotRequired[int], 'min_repos': NotRequired[int], @@ -13552,6 +14322,7 @@ DatasetsGithubUsersSearchParams = TypedDict('DatasetsGithubUsersSearchParams', { 'hireable': NotRequired[bool], 'is_org': NotRequired[bool], 'is_bot': NotRequired[bool], + 'is_suspected_automation': NotRequired[bool], 'min_followers': NotRequired[int], 'max_followers': NotRequired[int], 'min_repos': NotRequired[int], @@ -13638,6 +14409,116 @@ DatasetsGoogleMapBusinessesSearchParams = TypedDict('DatasetsGoogleMapBusinesses 'page_size': NotRequired[int], }, total=False) +DatasetsProducthuntMakersFacetsResponse = ModelDatasetsProducthuntMakersFacetResponseDoc +DatasetsProducthuntMakersFacetsParams = TypedDict('DatasetsProducthuntMakersFacetsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'facet': Required[str], + 'q': NotRequired[str], + 'topic': NotRequired[str], + 'min_products': NotRequired[int], + 'min_total_votes': NotRequired[int], +}, total=False) + +DatasetsProducthuntMakersItemResponse = ModelDatasetsProducthuntMakerResponseDoc +DatasetsProducthuntMakersItemParams = TypedDict('DatasetsProducthuntMakersItemParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'username': Required[str], +}, total=False) + +DatasetsProducthuntMakersSearchResponse = ModelDatasetsProducthuntMakersSearchResponseDoc +DatasetsProducthuntMakersSearchParams = TypedDict('DatasetsProducthuntMakersSearchParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'q': NotRequired[str], + 'topic': NotRequired[str], + 'min_products': NotRequired[int], + 'min_total_votes': NotRequired[int], + 'sort': NotRequired[str], + 'page': NotRequired[int], + 'page_size': NotRequired[int], +}, total=False) + +DatasetsProducthuntProductsFacetsResponse = ModelDatasetsProducthuntProductsFacetResponseDoc +DatasetsProducthuntProductsFacetsParams = TypedDict('DatasetsProducthuntProductsFacetsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'facet': Required[str], + 'q': NotRequired[str], + 'topic': NotRequired[str], + 'maker': NotRequired[str], + 'launched_after': NotRequired[str], + 'launched_before': NotRequired[str], + 'min_votes': NotRequired[int], + 'min_rating': NotRequired[float], + 'pricing_type': NotRequired[str], + 'has_website': NotRequired[bool], + 'is_online': NotRequired[bool], +}, total=False) + +DatasetsProducthuntProductsItemResponse = ModelDatasetsProducthuntProductResponseDoc +DatasetsProducthuntProductsItemParams = TypedDict('DatasetsProducthuntProductsItemParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'slug': Required[str], +}, total=False) + +DatasetsProducthuntProductsSearchResponse = ModelDatasetsProducthuntProductsSearchResponseDoc +DatasetsProducthuntProductsSearchParams = TypedDict('DatasetsProducthuntProductsSearchParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'q': NotRequired[str], + 'topic': NotRequired[str], + 'maker': NotRequired[str], + 'launched_after': NotRequired[str], + 'launched_before': NotRequired[str], + 'min_votes': NotRequired[int], + 'min_rating': NotRequired[float], + 'pricing_type': NotRequired[str], + 'has_website': NotRequired[bool], + 'is_online': NotRequired[bool], + 'sort': NotRequired[str], + 'page': NotRequired[int], + 'page_size': NotRequired[int], +}, total=False) + +DatasetsProducthuntTrendsFacetsResponse = ModelDatasetsProducthuntTrendsFacetResponseDoc +DatasetsProducthuntTrendsFacetsParams = TypedDict('DatasetsProducthuntTrendsFacetsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'facet': Required[str], + 'group_by': NotRequired[str], + 'topic': NotRequired[str], + 'launched_after': NotRequired[str], + 'launched_before': NotRequired[str], + 'min_votes': NotRequired[int], + 'min_launches': NotRequired[int], +}, total=False) + +DatasetsProducthuntTrendsSearchResponse = ModelDatasetsProducthuntTrendsSearchResponseDoc +DatasetsProducthuntTrendsSearchParams = TypedDict('DatasetsProducthuntTrendsSearchParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'group_by': NotRequired[str], + 'topic': NotRequired[str], + 'launched_after': NotRequired[str], + 'launched_before': NotRequired[str], + 'min_votes': NotRequired[int], + 'min_launches': NotRequired[int], + 'sort': NotRequired[str], + 'page': NotRequired[int], + 'page_size': NotRequired[int], +}, total=False) + WebAntibotCheckBody = ModelDiagnosticsAntibotCheckRequest WebAntibotCheckResponse = ModelDiagnosticsAntibotCheckResponseDoc WebAntibotCheckParams = TypedDict('WebAntibotCheckParams', { @@ -13685,18 +14566,108 @@ EBayEbaySellerFeedbackParams = TypedDict('EBayEbaySellerFeedbackParams', { '_response_type': NotRequired[ResponseType], '_timeout': NotRequired[float], '_headers': NotRequired[Mapping[str, str]], - 'seller': Required[str], - 'page': NotRequired[int], - 'per_page': NotRequired[Literal['24', '48', '72']], + 'seller': Required[str], + 'page': NotRequired[int], + 'per_page': NotRequired[Literal['24', '48', '72']], +}, total=False) + +EBayEbaySellerShopResponse = ModelEbaySellerShopResponseDoc +EBayEbaySellerShopParams = TypedDict('EBayEbaySellerShopParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'seller': Required[str], + 'page': NotRequired[int], +}, total=False) + +EspnAthleteResponse = ModelEspnAthleteResponseDoc +EspnAthleteParams = TypedDict('EspnAthleteParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'sport': Required[Literal['football', 'basketball', 'baseball', 'hockey', 'soccer']], + 'league': Required[Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions']], + 'athlete': Required[str], +}, total=False) + +EspnGameSummaryResponse = ModelEspnGameSummaryResponseDoc +EspnGameSummaryParams = TypedDict('EspnGameSummaryParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'sport': Required[Literal['football', 'basketball', 'baseball', 'hockey', 'soccer']], + 'league': Required[Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions']], + 'event': Required[str], +}, total=False) + +EspnNewsResponse = ModelEspnNewsResponseDoc +EspnNewsParams = TypedDict('EspnNewsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'sport': Required[Literal['football', 'basketball', 'baseball', 'hockey', 'soccer']], + 'league': Required[Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions']], +}, total=False) + +EspnRankingsResponse = ModelEspnRankingsResponseDoc +EspnRankingsParams = TypedDict('EspnRankingsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'sport': Required[Literal['football', 'basketball']], + 'league': Required[Literal['college-football', 'mens-college-basketball', 'womens-college-basketball']], +}, total=False) + +EspnScoreboardResponse = ModelEspnScoreboardResponseDoc +EspnScoreboardParams = TypedDict('EspnScoreboardParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'sport': Required[Literal['football', 'basketball', 'baseball', 'hockey', 'soccer']], + 'league': Required[Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions']], + 'dates': NotRequired[str], + 'week': NotRequired[int], + 'seasontype': NotRequired[Literal['1', '2', '3', '4']], +}, total=False) + +EspnStandingsResponse = ModelEspnStandingsResponseDoc +EspnStandingsParams = TypedDict('EspnStandingsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'sport': Required[Literal['football', 'basketball', 'baseball', 'hockey', 'soccer']], + 'league': Required[Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions']], + 'season': NotRequired[int], + 'seasontype': NotRequired[Literal['1', '2', '3']], +}, total=False) + +EspnTeamResponse = ModelEspnTeamResponseDoc +EspnTeamParams = TypedDict('EspnTeamParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'sport': Required[Literal['football', 'basketball', 'baseball', 'hockey', 'soccer']], + 'league': Required[Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions']], + 'team': Required[str], +}, total=False) + +EspnTeamRosterResponse = ModelEspnRosterResponseDoc +EspnTeamRosterParams = TypedDict('EspnTeamRosterParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'sport': Required[Literal['football', 'basketball', 'baseball', 'hockey', 'soccer']], + 'league': Required[Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions']], + 'team': Required[str], }, total=False) -EBayEbaySellerShopResponse = ModelEbaySellerShopResponseDoc -EBayEbaySellerShopParams = TypedDict('EBayEbaySellerShopParams', { +EspnTeamsResponse = ModelEspnTeamsResponseDoc +EspnTeamsParams = TypedDict('EspnTeamsParams', { '_response_type': NotRequired[ResponseType], '_timeout': NotRequired[float], '_headers': NotRequired[Mapping[str, str]], - 'seller': Required[str], - 'page': NotRequired[int], + 'sport': Required[Literal['football', 'basketball', 'baseball', 'hockey', 'soccer']], + 'league': Required[Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions']], }, total=False) GeocodingLookupResponse = ModelGeocodingLookupResponseDoc @@ -15767,10 +16738,11 @@ ProductHuntCategoryProductsParams = TypedDict('ProductHuntCategoryProductsParams '_timeout': NotRequired[float], '_headers': NotRequired[Mapping[str, str]], 'slug': Required[str], + 'cursor': NotRequired[str], + 'page_size': NotRequired[int], 'featured_only': NotRequired[bool], 'order': NotRequired[str], 'page': NotRequired[int], - 'page_size': NotRequired[int], 'tags': NotRequired[str], }, total=False) @@ -15884,7 +16856,6 @@ RedditCommentsParams = TypedDict('RedditCommentsParams', { 'sort': NotRequired[Literal['confidence', 'top', 'new', 'controversial', 'old', 'qa']], 'limit': NotRequired[int], 'depth': NotRequired[int], - 'with_scores': NotRequired[bool], }, total=False) RedditDomainPostsResponse = ModelRedditDomainPostsResponseDoc @@ -15897,7 +16868,6 @@ RedditDomainPostsParams = TypedDict('RedditDomainPostsParams', { 'time': NotRequired[Literal['hour', 'day', 'week', 'month', 'year', 'all']], 'limit': NotRequired[int], 'after': NotRequired[str], - 'with_scores': NotRequired[bool], }, total=False) RedditPostResponse = ModelRedditPostResponseDoc @@ -15906,7 +16876,6 @@ RedditPostParams = TypedDict('RedditPostParams', { '_timeout': NotRequired[float], '_headers': NotRequired[Mapping[str, str]], 'id': Required[str], - 'with_scores': NotRequired[bool], }, total=False) RedditSearchResponse = ModelRedditSearchResponseDoc @@ -15920,7 +16889,6 @@ RedditSearchParams = TypedDict('RedditSearchParams', { 'time': NotRequired[Literal['hour', 'day', 'week', 'month', 'year', 'all']], 'limit': NotRequired[int], 'after': NotRequired[str], - 'with_scores': NotRequired[bool], }, total=False) RedditSubredditAboutResponse = ModelRedditSubredditAboutResponseDoc @@ -15930,7 +16898,6 @@ RedditSubredditAboutParams = TypedDict('RedditSubredditAboutParams', { '_headers': NotRequired[Mapping[str, str]], 'subreddit': Required[str], 'limit': NotRequired[int], - 'with_scores': NotRequired[bool], }, total=False) RedditSubredditCommentsResponse = ModelRedditSubredditCommentsResponseDoc @@ -15941,7 +16908,6 @@ RedditSubredditCommentsParams = TypedDict('RedditSubredditCommentsParams', { 'subreddit': Required[str], 'limit': NotRequired[int], 'after': NotRequired[str], - 'with_scores': NotRequired[bool], }, total=False) RedditSubredditPostsResponse = ModelRedditSubredditPostsResponseDoc @@ -15954,7 +16920,6 @@ RedditSubredditPostsParams = TypedDict('RedditSubredditPostsParams', { 'time': NotRequired[Literal['hour', 'day', 'week', 'month', 'year', 'all']], 'limit': NotRequired[int], 'after': NotRequired[str], - 'with_scores': NotRequired[bool], }, total=False) RedditSubredditsPostsResponse = ModelRedditMultiSubredditPostsResponseDoc @@ -15967,7 +16932,6 @@ RedditSubredditsPostsParams = TypedDict('RedditSubredditsPostsParams', { 'time': NotRequired[Literal['hour', 'day', 'week', 'month', 'year', 'all']], 'limit': NotRequired[int], 'after': NotRequired[str], - 'with_scores': NotRequired[bool], }, total=False) RedditTrendsResponse = ModelRedditTrendsResponseDoc @@ -15979,7 +16943,6 @@ RedditTrendsParams = TypedDict('RedditTrendsParams', { 'time': NotRequired[Literal['hour', 'day', 'week', 'month', 'year', 'all']], 'limit': NotRequired[int], 'after': NotRequired[str], - 'with_scores': NotRequired[bool], }, total=False) RedditUserCommentsResponse = ModelRedditUserCommentsResponseDoc @@ -15990,7 +16953,6 @@ RedditUserCommentsParams = TypedDict('RedditUserCommentsParams', { 'username': Required[str], 'limit': NotRequired[int], 'after': NotRequired[str], - 'with_scores': NotRequired[bool], }, total=False) RedditUserPostsResponse = ModelRedditUserPostsResponseDoc @@ -16001,7 +16963,6 @@ RedditUserPostsParams = TypedDict('RedditUserPostsParams', { 'username': Required[str], 'limit': NotRequired[int], 'after': NotRequired[str], - 'with_scores': NotRequired[bool], }, total=False) RedfinEstimateResponse = ModelRedfinEstimateResponse @@ -17335,6 +18296,15 @@ WebScrapeParams = TypedDict('WebScrapeParams', { 'scrapeOption': Required[WebScrapeBody], }, total=False) +WebTechstackBody = ModelWebTechStackOption +WebTechstackResponse = ModelWebTechStackResponseDoc +WebTechstackParams = TypedDict('WebTechstackParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'request': Required[WebTechstackBody], +}, total=False) + XPostResponse = ModelXPostResponseDoc XPostParams = TypedDict('XPostParams', { '_response_type': NotRequired[ResponseType], @@ -17951,6 +18921,17 @@ class BraveGroup: def suggest(self, **params: Unpack[BraveSuggestParams]) -> BraveSuggestResponse: ... def videos(self, **params: Unpack[BraveVideosParams]) -> BraveVideosResponse: ... +class ChromeWebStoreGroup: + def chromewebstore_categories(self, **params: Unpack[ChromeWebStoreChromewebstoreCategoriesParams]) -> ChromeWebStoreChromewebstoreCategoriesResponse: ... + def chromewebstore_category(self, **params: Unpack[ChromeWebStoreChromewebstoreCategoryParams]) -> ChromeWebStoreChromewebstoreCategoryResponse: ... + def chromewebstore_charts(self, **params: Unpack[ChromeWebStoreChromewebstoreChartsParams]) -> ChromeWebStoreChromewebstoreChartsResponse: ... + def chromewebstore_collection(self, **params: Unpack[ChromeWebStoreChromewebstoreCollectionParams]) -> ChromeWebStoreChromewebstoreCollectionResponse: ... + def chromewebstore_item(self, **params: Unpack[ChromeWebStoreChromewebstoreItemParams]) -> ChromeWebStoreChromewebstoreItemResponse: ... + def chromewebstore_reviews(self, **params: Unpack[ChromeWebStoreChromewebstoreReviewsParams]) -> ChromeWebStoreChromewebstoreReviewsResponse: ... + def chromewebstore_search(self, **params: Unpack[ChromeWebStoreChromewebstoreSearchParams]) -> ChromeWebStoreChromewebstoreSearchResponse: ... + def chromewebstore_similar(self, **params: Unpack[ChromeWebStoreChromewebstoreSimilarParams]) -> ChromeWebStoreChromewebstoreSimilarResponse: ... + def chromewebstore_suggest(self, **params: Unpack[ChromeWebStoreChromewebstoreSuggestParams]) -> ChromeWebStoreChromewebstoreSuggestResponse: ... + class CoinGeckoGroup: def categories(self, **params: Unpack[CoinGeckoCategoriesParams]) -> CoinGeckoCategoriesResponse: ... def category_coins(self, **params: Unpack[CoinGeckoCategoryCoinsParams]) -> CoinGeckoCategoryCoinsResponse: ... @@ -17978,6 +18959,7 @@ class WebGroup: def contact(self, **params: Unpack[WebContactParams]) -> WebContactResponse: ... def antibot_check(self, **params: Unpack[WebAntibotCheckParams]) -> WebAntibotCheckResponse: ... def scrape(self, **params: Unpack[WebScrapeParams]) -> WebScrapeResponse: ... + def techstack(self, **params: Unpack[WebTechstackParams]) -> WebTechstackResponse: ... class DatasetsGroup: def list(self, **params: Unpack[DatasetsListParams]) -> DatasetsListResponse: ... @@ -17997,6 +18979,14 @@ class DatasetsGroup: def google_map_businesses_item(self, **params: Unpack[DatasetsGoogleMapBusinessesItemParams]) -> DatasetsGoogleMapBusinessesItemResponse: ... def google_map_businesses_nearby(self, **params: Unpack[DatasetsGoogleMapBusinessesNearbyParams]) -> DatasetsGoogleMapBusinessesNearbyResponse: ... def google_map_businesses_search(self, **params: Unpack[DatasetsGoogleMapBusinessesSearchParams]) -> DatasetsGoogleMapBusinessesSearchResponse: ... + def producthunt_makers_facets(self, **params: Unpack[DatasetsProducthuntMakersFacetsParams]) -> DatasetsProducthuntMakersFacetsResponse: ... + def producthunt_makers_item(self, **params: Unpack[DatasetsProducthuntMakersItemParams]) -> DatasetsProducthuntMakersItemResponse: ... + def producthunt_makers_search(self, **params: Unpack[DatasetsProducthuntMakersSearchParams]) -> DatasetsProducthuntMakersSearchResponse: ... + def producthunt_products_facets(self, **params: Unpack[DatasetsProducthuntProductsFacetsParams]) -> DatasetsProducthuntProductsFacetsResponse: ... + def producthunt_products_item(self, **params: Unpack[DatasetsProducthuntProductsItemParams]) -> DatasetsProducthuntProductsItemResponse: ... + def producthunt_products_search(self, **params: Unpack[DatasetsProducthuntProductsSearchParams]) -> DatasetsProducthuntProductsSearchResponse: ... + def producthunt_trends_facets(self, **params: Unpack[DatasetsProducthuntTrendsFacetsParams]) -> DatasetsProducthuntTrendsFacetsResponse: ... + def producthunt_trends_search(self, **params: Unpack[DatasetsProducthuntTrendsSearchParams]) -> DatasetsProducthuntTrendsSearchResponse: ... class EBayGroup: def ebay_item(self, **params: Unpack[EBayEbayItemParams]) -> EBayEbayItemResponse: ... @@ -18006,6 +18996,17 @@ class EBayGroup: def ebay_seller_feedback(self, **params: Unpack[EBayEbaySellerFeedbackParams]) -> EBayEbaySellerFeedbackResponse: ... def ebay_seller_shop(self, **params: Unpack[EBayEbaySellerShopParams]) -> EBayEbaySellerShopResponse: ... +class EspnGroup: + def athlete(self, **params: Unpack[EspnAthleteParams]) -> EspnAthleteResponse: ... + def game_summary(self, **params: Unpack[EspnGameSummaryParams]) -> EspnGameSummaryResponse: ... + def news(self, **params: Unpack[EspnNewsParams]) -> EspnNewsResponse: ... + def rankings(self, **params: Unpack[EspnRankingsParams]) -> EspnRankingsResponse: ... + def scoreboard(self, **params: Unpack[EspnScoreboardParams]) -> EspnScoreboardResponse: ... + def standings(self, **params: Unpack[EspnStandingsParams]) -> EspnStandingsResponse: ... + def team(self, **params: Unpack[EspnTeamParams]) -> EspnTeamResponse: ... + def team_roster(self, **params: Unpack[EspnTeamRosterParams]) -> EspnTeamRosterResponse: ... + def teams(self, **params: Unpack[EspnTeamsParams]) -> EspnTeamsResponse: ... + class GeocodingGroup: def lookup(self, **params: Unpack[GeocodingLookupParams]) -> GeocodingLookupResponse: ... def reverse(self, **params: Unpack[GeocodingReverseParams]) -> GeocodingReverseResponse: ... @@ -18554,6 +19555,15 @@ OperationId = Literal[ 'brave-search', 'brave-suggest', 'brave-videos', + 'chromewebstore-categories', + 'chromewebstore-category', + 'chromewebstore-charts', + 'chromewebstore-collection', + 'chromewebstore-item', + 'chromewebstore-reviews', + 'chromewebstore-search', + 'chromewebstore-similar', + 'chromewebstore-suggest', 'coingecko-categories', 'coingecko-category-coins', 'coingecko-chains', @@ -18593,6 +19603,14 @@ OperationId = Literal[ 'datasets-google-map-businesses-item', 'datasets-google-map-businesses-nearby', 'datasets-google-map-businesses-search', + 'datasets-producthunt-makers-facets', + 'datasets-producthunt-makers-item', + 'datasets-producthunt-makers-search', + 'datasets-producthunt-products-facets', + 'datasets-producthunt-products-item', + 'datasets-producthunt-products-search', + 'datasets-producthunt-trends-facets', + 'datasets-producthunt-trends-search', 'antibot-check', 'ebay-item', 'ebay-search', @@ -18600,6 +19618,15 @@ OperationId = Literal[ 'ebay-seller-about', 'ebay-seller-feedback', 'ebay-seller-shop', + 'espn-athlete', + 'espn-game-summary', + 'espn-news', + 'espn-rankings', + 'espn-scoreboard', + 'espn-standings', + 'espn-team', + 'espn-team-roster', + 'espn-teams', 'geocoding-lookup', 'geocoding-reverse', 'geocoding-search', @@ -18963,6 +19990,7 @@ OperationId = Literal[ 'user-me-api-keys-rotate', 'user-me-api-keys-reveal', 'web-scrape', + 'web-techstack', 'x-post', 'x-profile', 'x-profile-posts', @@ -19033,10 +20061,12 @@ class CrawloraClient: box_office_mojo: BoxOfficeMojoGroup brand: BrandGroup brave: BraveGroup + chrome_web_store: ChromeWebStoreGroup coin_gecko: CoinGeckoGroup web: WebGroup datasets: DatasetsGroup e_bay: EBayGroup + espn: EspnGroup geocoding: GeocodingGroup git_hub: GitHubGroup google: GoogleGroup @@ -19929,6 +20959,114 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> BraveVideosResponse: ... @overload + def operation( + self, + operation_id: Literal['chromewebstore-categories'], + params: ChromeWebStoreChromewebstoreCategoriesParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreCategoriesResponse: ... + @overload + def operation( + self, + operation_id: Literal['chromewebstore-category'], + params: ChromeWebStoreChromewebstoreCategoryParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreCategoryResponse: ... + @overload + def operation( + self, + operation_id: Literal['chromewebstore-charts'], + params: ChromeWebStoreChromewebstoreChartsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreChartsResponse: ... + @overload + def operation( + self, + operation_id: Literal['chromewebstore-collection'], + params: ChromeWebStoreChromewebstoreCollectionParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreCollectionResponse: ... + @overload + def operation( + self, + operation_id: Literal['chromewebstore-item'], + params: ChromeWebStoreChromewebstoreItemParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreItemResponse: ... + @overload + def operation( + self, + operation_id: Literal['chromewebstore-reviews'], + params: ChromeWebStoreChromewebstoreReviewsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreReviewsResponse: ... + @overload + def operation( + self, + operation_id: Literal['chromewebstore-search'], + params: ChromeWebStoreChromewebstoreSearchParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreSearchResponse: ... + @overload + def operation( + self, + operation_id: Literal['chromewebstore-similar'], + params: ChromeWebStoreChromewebstoreSimilarParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreSimilarResponse: ... + @overload + def operation( + self, + operation_id: Literal['chromewebstore-suggest'], + params: ChromeWebStoreChromewebstoreSuggestParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreSuggestResponse: ... + @overload def operation( self, operation_id: Literal['coingecko-categories'], @@ -20397,6 +21535,102 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> DatasetsGoogleMapBusinessesSearchResponse: ... @overload + def operation( + self, + operation_id: Literal['datasets-producthunt-makers-facets'], + params: DatasetsProducthuntMakersFacetsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntMakersFacetsResponse: ... + @overload + def operation( + self, + operation_id: Literal['datasets-producthunt-makers-item'], + params: DatasetsProducthuntMakersItemParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntMakersItemResponse: ... + @overload + def operation( + self, + operation_id: Literal['datasets-producthunt-makers-search'], + params: DatasetsProducthuntMakersSearchParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntMakersSearchResponse: ... + @overload + def operation( + self, + operation_id: Literal['datasets-producthunt-products-facets'], + params: DatasetsProducthuntProductsFacetsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntProductsFacetsResponse: ... + @overload + def operation( + self, + operation_id: Literal['datasets-producthunt-products-item'], + params: DatasetsProducthuntProductsItemParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntProductsItemResponse: ... + @overload + def operation( + self, + operation_id: Literal['datasets-producthunt-products-search'], + params: DatasetsProducthuntProductsSearchParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntProductsSearchResponse: ... + @overload + def operation( + self, + operation_id: Literal['datasets-producthunt-trends-facets'], + params: DatasetsProducthuntTrendsFacetsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntTrendsFacetsResponse: ... + @overload + def operation( + self, + operation_id: Literal['datasets-producthunt-trends-search'], + params: DatasetsProducthuntTrendsSearchParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntTrendsSearchResponse: ... + @overload def operation( self, operation_id: Literal['antibot-check'], @@ -20467,19 +21701,127 @@ class CrawloraClient: headers: Mapping[str, str] | None = ..., retries: int | None = ..., retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., - ) -> EBayEbaySellerFeedbackResponse: ... + ) -> EBayEbaySellerFeedbackResponse: ... + @overload + def operation( + self, + operation_id: Literal['ebay-seller-shop'], + params: EBayEbaySellerShopParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EBayEbaySellerShopResponse: ... + @overload + def operation( + self, + operation_id: Literal['espn-athlete'], + params: EspnAthleteParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnAthleteResponse: ... + @overload + def operation( + self, + operation_id: Literal['espn-game-summary'], + params: EspnGameSummaryParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnGameSummaryResponse: ... + @overload + def operation( + self, + operation_id: Literal['espn-news'], + params: EspnNewsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnNewsResponse: ... + @overload + def operation( + self, + operation_id: Literal['espn-rankings'], + params: EspnRankingsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnRankingsResponse: ... + @overload + def operation( + self, + operation_id: Literal['espn-scoreboard'], + params: EspnScoreboardParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnScoreboardResponse: ... + @overload + def operation( + self, + operation_id: Literal['espn-standings'], + params: EspnStandingsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnStandingsResponse: ... + @overload + def operation( + self, + operation_id: Literal['espn-team'], + params: EspnTeamParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnTeamResponse: ... + @overload + def operation( + self, + operation_id: Literal['espn-team-roster'], + params: EspnTeamRosterParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnTeamRosterResponse: ... @overload def operation( self, - operation_id: Literal['ebay-seller-shop'], - params: EBayEbaySellerShopParams, + operation_id: Literal['espn-teams'], + params: EspnTeamsParams, *, response_type: ResponseType = ..., timeout: float | None = ..., headers: Mapping[str, str] | None = ..., retries: int | None = ..., retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., - ) -> EBayEbaySellerShopResponse: ... + ) -> EspnTeamsResponse: ... @overload def operation( self, @@ -24837,6 +26179,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> WebScrapeResponse: ... @overload + def operation( + self, + operation_id: Literal['web-techstack'], + params: WebTechstackParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> WebTechstackResponse: ... + @overload def operation( self, operation_id: Literal['x-post'], @@ -26325,6 +27679,114 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> BraveVideosResponse: ... @overload + def request( + self, + operation_id: Literal['chromewebstore-categories'], + params: ChromeWebStoreChromewebstoreCategoriesParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreCategoriesResponse: ... + @overload + def request( + self, + operation_id: Literal['chromewebstore-category'], + params: ChromeWebStoreChromewebstoreCategoryParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreCategoryResponse: ... + @overload + def request( + self, + operation_id: Literal['chromewebstore-charts'], + params: ChromeWebStoreChromewebstoreChartsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreChartsResponse: ... + @overload + def request( + self, + operation_id: Literal['chromewebstore-collection'], + params: ChromeWebStoreChromewebstoreCollectionParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreCollectionResponse: ... + @overload + def request( + self, + operation_id: Literal['chromewebstore-item'], + params: ChromeWebStoreChromewebstoreItemParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreItemResponse: ... + @overload + def request( + self, + operation_id: Literal['chromewebstore-reviews'], + params: ChromeWebStoreChromewebstoreReviewsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreReviewsResponse: ... + @overload + def request( + self, + operation_id: Literal['chromewebstore-search'], + params: ChromeWebStoreChromewebstoreSearchParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreSearchResponse: ... + @overload + def request( + self, + operation_id: Literal['chromewebstore-similar'], + params: ChromeWebStoreChromewebstoreSimilarParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreSimilarResponse: ... + @overload + def request( + self, + operation_id: Literal['chromewebstore-suggest'], + params: ChromeWebStoreChromewebstoreSuggestParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ChromeWebStoreChromewebstoreSuggestResponse: ... + @overload def request( self, operation_id: Literal['coingecko-categories'], @@ -26793,6 +28255,102 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> DatasetsGoogleMapBusinessesSearchResponse: ... @overload + def request( + self, + operation_id: Literal['datasets-producthunt-makers-facets'], + params: DatasetsProducthuntMakersFacetsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntMakersFacetsResponse: ... + @overload + def request( + self, + operation_id: Literal['datasets-producthunt-makers-item'], + params: DatasetsProducthuntMakersItemParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntMakersItemResponse: ... + @overload + def request( + self, + operation_id: Literal['datasets-producthunt-makers-search'], + params: DatasetsProducthuntMakersSearchParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntMakersSearchResponse: ... + @overload + def request( + self, + operation_id: Literal['datasets-producthunt-products-facets'], + params: DatasetsProducthuntProductsFacetsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntProductsFacetsResponse: ... + @overload + def request( + self, + operation_id: Literal['datasets-producthunt-products-item'], + params: DatasetsProducthuntProductsItemParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntProductsItemResponse: ... + @overload + def request( + self, + operation_id: Literal['datasets-producthunt-products-search'], + params: DatasetsProducthuntProductsSearchParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntProductsSearchResponse: ... + @overload + def request( + self, + operation_id: Literal['datasets-producthunt-trends-facets'], + params: DatasetsProducthuntTrendsFacetsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntTrendsFacetsResponse: ... + @overload + def request( + self, + operation_id: Literal['datasets-producthunt-trends-search'], + params: DatasetsProducthuntTrendsSearchParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> DatasetsProducthuntTrendsSearchResponse: ... + @overload def request( self, operation_id: Literal['antibot-check'], @@ -26877,6 +28435,114 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> EBayEbaySellerShopResponse: ... @overload + def request( + self, + operation_id: Literal['espn-athlete'], + params: EspnAthleteParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnAthleteResponse: ... + @overload + def request( + self, + operation_id: Literal['espn-game-summary'], + params: EspnGameSummaryParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnGameSummaryResponse: ... + @overload + def request( + self, + operation_id: Literal['espn-news'], + params: EspnNewsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnNewsResponse: ... + @overload + def request( + self, + operation_id: Literal['espn-rankings'], + params: EspnRankingsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnRankingsResponse: ... + @overload + def request( + self, + operation_id: Literal['espn-scoreboard'], + params: EspnScoreboardParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnScoreboardResponse: ... + @overload + def request( + self, + operation_id: Literal['espn-standings'], + params: EspnStandingsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnStandingsResponse: ... + @overload + def request( + self, + operation_id: Literal['espn-team'], + params: EspnTeamParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnTeamResponse: ... + @overload + def request( + self, + operation_id: Literal['espn-team-roster'], + params: EspnTeamRosterParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnTeamRosterResponse: ... + @overload + def request( + self, + operation_id: Literal['espn-teams'], + params: EspnTeamsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> EspnTeamsResponse: ... + @overload def request( self, operation_id: Literal['geocoding-lookup'], @@ -31233,6 +32899,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> WebScrapeResponse: ... @overload + def request( + self, + operation_id: Literal['web-techstack'], + params: WebTechstackParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> WebTechstackResponse: ... + @overload def request( self, operation_id: Literal['x-post'], diff --git a/crawlora/operations.py b/crawlora/operations.py index abe83b6..8a6170f 100644 --- a/crawlora/operations.py +++ b/crawlora/operations.py @@ -1191,6 +1191,133 @@ {'in': 'query', 'name': 'date_from', 'type': 'string'}, {'in': 'query', 'name': 'date_to', 'type': 'string'}], 'security': ['ApiKeyAuth']}, + 'chromewebstore-categories': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'chromewebstore-categories', + 'method': 'GET', + 'path': '/chromewebstore/categories', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'chromewebstore-category': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'chromewebstore-category', + 'method': 'GET', + 'path': '/chromewebstore/category', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'category', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'num', 'type': 'integer'}, + {'in': 'query', 'name': 'country', 'type': 'string'}, + {'in': 'query', 'name': 'lang', 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'chromewebstore-charts': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'chromewebstore-charts', + 'method': 'GET', + 'path': '/chromewebstore/charts', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'enum': ['trending', 'popular', 'notable'], + 'in': 'query', + 'name': 'chart', + 'type': 'string'}, + {'in': 'query', 'name': 'num', 'type': 'integer'}, + {'in': 'query', 'name': 'country', 'type': 'string'}, + {'in': 'query', 'name': 'lang', 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'chromewebstore-collection': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'chromewebstore-collection', + 'method': 'GET', + 'path': '/chromewebstore/collection', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', + 'name': 'collection', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'num', 'type': 'integer'}, + {'in': 'query', 'name': 'country', 'type': 'string'}, + {'in': 'query', 'name': 'lang', 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'chromewebstore-item': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'chromewebstore-item', + 'method': 'GET', + 'path': '/chromewebstore/item', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'id', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'country', 'type': 'string'}, + {'in': 'query', 'name': 'lang', 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'chromewebstore-reviews': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'chromewebstore-reviews', + 'method': 'GET', + 'path': '/chromewebstore/reviews', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'id', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'num', 'type': 'integer'}, + {'in': 'query', 'name': 'country', 'type': 'string'}, + {'in': 'query', 'name': 'lang', 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'chromewebstore-search': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'chromewebstore-search', + 'method': 'GET', + 'path': '/chromewebstore/search', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'term', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'num', 'type': 'integer'}, + {'in': 'query', 'name': 'country', 'type': 'string'}, + {'in': 'query', 'name': 'lang', 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'chromewebstore-similar': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'chromewebstore-similar', + 'method': 'GET', + 'path': '/chromewebstore/similar', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'id', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'country', 'type': 'string'}, + {'in': 'query', 'name': 'lang', 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'chromewebstore-suggest': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'chromewebstore-suggest', + 'method': 'GET', + 'path': '/chromewebstore/suggest', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'term', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'num', 'type': 'integer'}, + {'in': 'query', 'name': 'country', 'type': 'string'}, + {'in': 'query', 'name': 'lang', 'type': 'string'}], + 'security': ['ApiKeyAuth']}, 'coingecko-categories': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], @@ -2487,6 +2614,7 @@ {'in': 'query', 'name': 'country', 'type': 'string'}, {'in': 'query', 'name': 'market', 'type': 'string'}, {'in': 'query', 'name': 'superhost', 'type': 'boolean'}, + {'in': 'query', 'name': 'guest_favorite', 'type': 'boolean'}, {'in': 'query', 'name': 'min_rating', 'type': 'number'}, {'in': 'query', 'name': 'min_review_count', 'type': 'integer'}, {'in': 'query', 'name': 'active_since', 'type': 'string'}, @@ -2539,6 +2667,7 @@ {'in': 'query', 'name': 'country', 'type': 'string'}, {'in': 'query', 'name': 'market', 'type': 'string'}, {'in': 'query', 'name': 'superhost', 'type': 'boolean'}, + {'in': 'query', 'name': 'guest_favorite', 'type': 'boolean'}, {'in': 'query', 'name': 'min_rating', 'type': 'number'}, {'in': 'query', 'name': 'min_review_count', 'type': 'integer'}, {'in': 'query', 'name': 'active_since', 'type': 'string'}, @@ -2659,6 +2788,7 @@ {'in': 'query', 'name': 'hireable', 'type': 'boolean'}, {'in': 'query', 'name': 'is_org', 'type': 'boolean'}, {'in': 'query', 'name': 'is_bot', 'type': 'boolean'}, + {'in': 'query', 'name': 'is_suspected_automation', 'type': 'boolean'}, {'in': 'query', 'name': 'min_followers', 'type': 'integer'}, {'in': 'query', 'name': 'max_followers', 'type': 'integer'}, {'in': 'query', 'name': 'min_repos', 'type': 'integer'}, @@ -2730,6 +2860,7 @@ {'in': 'query', 'name': 'hireable', 'type': 'boolean'}, {'in': 'query', 'name': 'is_org', 'type': 'boolean'}, {'in': 'query', 'name': 'is_bot', 'type': 'boolean'}, + {'in': 'query', 'name': 'is_suspected_automation', 'type': 'boolean'}, {'in': 'query', 'name': 'min_followers', 'type': 'integer'}, {'in': 'query', 'name': 'max_followers', 'type': 'integer'}, {'in': 'query', 'name': 'min_repos', 'type': 'integer'}, @@ -2858,6 +2989,152 @@ 'produces': ['application/json'], 'queryParams': [], 'security': ['ApiKeyAuth']}, + 'datasets-producthunt-makers-facets': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'datasets-producthunt-makers-facets', + 'method': 'GET', + 'path': '/datasets/producthunt-makers/facets', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', + 'name': 'facet', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'q', 'type': 'string'}, + {'in': 'query', 'name': 'topic', 'type': 'string'}, + {'in': 'query', 'name': 'min_products', 'type': 'integer'}, + {'in': 'query', 'name': 'min_total_votes', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'datasets-producthunt-makers-item': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'datasets-producthunt-makers-item', + 'method': 'GET', + 'path': '/datasets/producthunt-makers/items/{username}', + 'pathParams': ['username'], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'datasets-producthunt-makers-search': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'datasets-producthunt-makers-search', + 'method': 'GET', + 'paginatable': True, + 'path': '/datasets/producthunt-makers/search', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'q', 'type': 'string'}, + {'in': 'query', 'name': 'topic', 'type': 'string'}, + {'in': 'query', 'name': 'min_products', 'type': 'integer'}, + {'in': 'query', 'name': 'min_total_votes', 'type': 'integer'}, + {'in': 'query', 'name': 'sort', 'type': 'string'}, + {'in': 'query', 'name': 'page', 'type': 'integer'}, + {'in': 'query', 'name': 'page_size', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'datasets-producthunt-products-facets': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'datasets-producthunt-products-facets', + 'method': 'GET', + 'path': '/datasets/producthunt-products/facets', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', + 'name': 'facet', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'q', 'type': 'string'}, + {'in': 'query', 'name': 'topic', 'type': 'string'}, + {'in': 'query', 'name': 'maker', 'type': 'string'}, + {'in': 'query', 'name': 'launched_after', 'type': 'string'}, + {'in': 'query', 'name': 'launched_before', 'type': 'string'}, + {'in': 'query', 'name': 'min_votes', 'type': 'integer'}, + {'in': 'query', 'name': 'min_rating', 'type': 'number'}, + {'in': 'query', 'name': 'pricing_type', 'type': 'string'}, + {'in': 'query', 'name': 'has_website', 'type': 'boolean'}, + {'in': 'query', 'name': 'is_online', 'type': 'boolean'}], + 'security': ['ApiKeyAuth']}, + 'datasets-producthunt-products-item': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'datasets-producthunt-products-item', + 'method': 'GET', + 'path': '/datasets/producthunt-products/items/{slug}', + 'pathParams': ['slug'], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'datasets-producthunt-products-search': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'datasets-producthunt-products-search', + 'method': 'GET', + 'paginatable': True, + 'path': '/datasets/producthunt-products/search', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'q', 'type': 'string'}, + {'in': 'query', 'name': 'topic', 'type': 'string'}, + {'in': 'query', 'name': 'maker', 'type': 'string'}, + {'in': 'query', 'name': 'launched_after', 'type': 'string'}, + {'in': 'query', 'name': 'launched_before', 'type': 'string'}, + {'in': 'query', 'name': 'min_votes', 'type': 'integer'}, + {'in': 'query', 'name': 'min_rating', 'type': 'number'}, + {'in': 'query', 'name': 'pricing_type', 'type': 'string'}, + {'in': 'query', 'name': 'has_website', 'type': 'boolean'}, + {'in': 'query', 'name': 'is_online', 'type': 'boolean'}, + {'in': 'query', 'name': 'sort', 'type': 'string'}, + {'in': 'query', 'name': 'page', 'type': 'integer'}, + {'in': 'query', 'name': 'page_size', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'datasets-producthunt-trends-facets': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'datasets-producthunt-trends-facets', + 'method': 'GET', + 'path': '/datasets/producthunt-trends/facets', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', + 'name': 'facet', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'group_by', 'type': 'string'}, + {'in': 'query', 'name': 'topic', 'type': 'string'}, + {'in': 'query', 'name': 'launched_after', 'type': 'string'}, + {'in': 'query', 'name': 'launched_before', 'type': 'string'}, + {'in': 'query', 'name': 'min_votes', 'type': 'integer'}, + {'in': 'query', 'name': 'min_launches', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'datasets-producthunt-trends-search': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'datasets-producthunt-trends-search', + 'method': 'GET', + 'paginatable': True, + 'path': '/datasets/producthunt-trends/search', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'group_by', 'type': 'string'}, + {'in': 'query', 'name': 'topic', 'type': 'string'}, + {'in': 'query', 'name': 'launched_after', 'type': 'string'}, + {'in': 'query', 'name': 'launched_before', 'type': 'string'}, + {'in': 'query', 'name': 'min_votes', 'type': 'integer'}, + {'in': 'query', 'name': 'min_launches', 'type': 'integer'}, + {'in': 'query', 'name': 'sort', 'type': 'string'}, + {'in': 'query', 'name': 'page', 'type': 'integer'}, + {'in': 'query', 'name': 'page_size', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, 'ebay-item': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], @@ -2930,6 +3207,312 @@ 'produces': ['application/json'], 'queryParams': [{'in': 'query', 'name': 'page', 'type': 'integer'}], 'security': ['ApiKeyAuth']}, + 'espn-athlete': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'espn-athlete', + 'method': 'GET', + 'path': '/espn/athlete', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'enum': ['football', 'basketball', 'baseball', 'hockey', 'soccer'], + 'in': 'query', + 'name': 'sport', + 'required': True, + 'type': 'string'}, + {'enum': ['nfl', + 'college-football', + 'nba', + 'wnba', + 'mens-college-basketball', + 'womens-college-basketball', + 'mlb', + 'nhl', + 'eng.1', + 'esp.1', + 'ita.1', + 'ger.1', + 'fra.1', + 'usa.1', + 'uefa.champions'], + 'in': 'query', + 'name': 'league', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'athlete', 'required': True, 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'espn-game-summary': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'espn-game-summary', + 'method': 'GET', + 'path': '/espn/game-summary', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'enum': ['football', 'basketball', 'baseball', 'hockey', 'soccer'], + 'in': 'query', + 'name': 'sport', + 'required': True, + 'type': 'string'}, + {'enum': ['nfl', + 'college-football', + 'nba', + 'wnba', + 'mens-college-basketball', + 'womens-college-basketball', + 'mlb', + 'nhl', + 'eng.1', + 'esp.1', + 'ita.1', + 'ger.1', + 'fra.1', + 'usa.1', + 'uefa.champions'], + 'in': 'query', + 'name': 'league', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'event', 'required': True, 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'espn-news': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'espn-news', + 'method': 'GET', + 'path': '/espn/news', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'enum': ['football', 'basketball', 'baseball', 'hockey', 'soccer'], + 'in': 'query', + 'name': 'sport', + 'required': True, + 'type': 'string'}, + {'enum': ['nfl', + 'college-football', + 'nba', + 'wnba', + 'mens-college-basketball', + 'womens-college-basketball', + 'mlb', + 'nhl', + 'eng.1', + 'esp.1', + 'ita.1', + 'ger.1', + 'fra.1', + 'usa.1', + 'uefa.champions'], + 'in': 'query', + 'name': 'league', + 'required': True, + 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'espn-rankings': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'espn-rankings', + 'method': 'GET', + 'path': '/espn/rankings', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'enum': ['football', 'basketball'], + 'in': 'query', + 'name': 'sport', + 'required': True, + 'type': 'string'}, + {'enum': ['college-football', + 'mens-college-basketball', + 'womens-college-basketball'], + 'in': 'query', + 'name': 'league', + 'required': True, + 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'espn-scoreboard': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'espn-scoreboard', + 'method': 'GET', + 'path': '/espn/scoreboard', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'enum': ['football', 'basketball', 'baseball', 'hockey', 'soccer'], + 'in': 'query', + 'name': 'sport', + 'required': True, + 'type': 'string'}, + {'enum': ['nfl', + 'college-football', + 'nba', + 'wnba', + 'mens-college-basketball', + 'womens-college-basketball', + 'mlb', + 'nhl', + 'eng.1', + 'esp.1', + 'ita.1', + 'ger.1', + 'fra.1', + 'usa.1', + 'uefa.champions'], + 'in': 'query', + 'name': 'league', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'dates', 'type': 'string'}, + {'in': 'query', 'name': 'week', 'type': 'integer'}, + {'enum': ['1', '2', '3', '4'], + 'in': 'query', + 'name': 'seasontype', + 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'espn-standings': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'espn-standings', + 'method': 'GET', + 'path': '/espn/standings', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'enum': ['football', 'basketball', 'baseball', 'hockey', 'soccer'], + 'in': 'query', + 'name': 'sport', + 'required': True, + 'type': 'string'}, + {'enum': ['nfl', + 'college-football', + 'nba', + 'wnba', + 'mens-college-basketball', + 'womens-college-basketball', + 'mlb', + 'nhl', + 'eng.1', + 'esp.1', + 'ita.1', + 'ger.1', + 'fra.1', + 'usa.1', + 'uefa.champions'], + 'in': 'query', + 'name': 'league', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'season', 'type': 'integer'}, + {'enum': ['1', '2', '3'], 'in': 'query', 'name': 'seasontype', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'espn-team': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'espn-team', + 'method': 'GET', + 'path': '/espn/team', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'enum': ['football', 'basketball', 'baseball', 'hockey', 'soccer'], + 'in': 'query', + 'name': 'sport', + 'required': True, + 'type': 'string'}, + {'enum': ['nfl', + 'college-football', + 'nba', + 'wnba', + 'mens-college-basketball', + 'womens-college-basketball', + 'mlb', + 'nhl', + 'eng.1', + 'esp.1', + 'ita.1', + 'ger.1', + 'fra.1', + 'usa.1', + 'uefa.champions'], + 'in': 'query', + 'name': 'league', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'team', 'required': True, 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'espn-team-roster': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'espn-team-roster', + 'method': 'GET', + 'path': '/espn/team-roster', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'enum': ['football', 'basketball', 'baseball', 'hockey', 'soccer'], + 'in': 'query', + 'name': 'sport', + 'required': True, + 'type': 'string'}, + {'enum': ['nfl', + 'college-football', + 'nba', + 'wnba', + 'mens-college-basketball', + 'womens-college-basketball', + 'mlb', + 'nhl', + 'eng.1', + 'esp.1', + 'ita.1', + 'ger.1', + 'fra.1', + 'usa.1', + 'uefa.champions'], + 'in': 'query', + 'name': 'league', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'team', 'required': True, 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'espn-teams': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'espn-teams', + 'method': 'GET', + 'path': '/espn/teams', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'enum': ['football', 'basketball', 'baseball', 'hockey', 'soccer'], + 'in': 'query', + 'name': 'sport', + 'required': True, + 'type': 'string'}, + {'enum': ['nfl', + 'college-football', + 'nba', + 'wnba', + 'mens-college-basketball', + 'womens-college-basketball', + 'mlb', + 'nhl', + 'eng.1', + 'esp.1', + 'ita.1', + 'ger.1', + 'fra.1', + 'usa.1', + 'uefa.champions'], + 'in': 'query', + 'name': 'league', + 'required': True, + 'type': 'string'}], + 'security': ['ApiKeyAuth']}, 'geocoding-lookup': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], @@ -6199,6 +6782,7 @@ 'producthunt-category-products': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], + 'cursorParams': ['cursor'], 'formParams': [], 'id': 'producthunt-category-products', 'method': 'GET', @@ -6206,10 +6790,11 @@ 'path': '/producthunt/category/{slug}/products', 'pathParams': ['slug'], 'produces': ['application/json'], - 'queryParams': [{'in': 'query', 'name': 'featured_only', 'type': 'boolean'}, + 'queryParams': [{'in': 'query', 'name': 'cursor', 'type': 'string'}, + {'in': 'query', 'name': 'page_size', 'type': 'integer'}, + {'in': 'query', 'name': 'featured_only', 'type': 'boolean'}, {'in': 'query', 'name': 'order', 'type': 'string'}, {'in': 'query', 'name': 'page', 'type': 'integer'}, - {'in': 'query', 'name': 'page_size', 'type': 'integer'}, {'in': 'query', 'name': 'tags', 'type': 'string'}], 'security': ['ApiKeyAuth']}, 'producthunt-customers': {'bodyParam': None, @@ -6346,8 +6931,7 @@ 'name': 'sort', 'type': 'string'}, {'in': 'query', 'name': 'limit', 'type': 'integer'}, - {'in': 'query', 'name': 'depth', 'type': 'integer'}, - {'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + {'in': 'query', 'name': 'depth', 'type': 'integer'}], 'security': ['ApiKeyAuth']}, 'reddit-domain-posts': {'bodyParam': None, 'bodyRequired': False, @@ -6367,8 +6951,7 @@ 'name': 'time', 'type': 'string'}, {'in': 'query', 'name': 'limit', 'type': 'integer'}, - {'in': 'query', 'name': 'after', 'type': 'string'}, - {'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + {'in': 'query', 'name': 'after', 'type': 'string'}], 'security': ['ApiKeyAuth']}, 'reddit-post': {'bodyParam': None, 'bodyRequired': False, @@ -6379,7 +6962,7 @@ 'path': '/reddit/post/{id}', 'pathParams': ['id'], 'produces': ['application/json'], - 'queryParams': [{'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + 'queryParams': [], 'security': ['ApiKeyAuth']}, 'reddit-search': {'bodyParam': None, 'bodyRequired': False, @@ -6401,8 +6984,7 @@ 'name': 'time', 'type': 'string'}, {'in': 'query', 'name': 'limit', 'type': 'integer'}, - {'in': 'query', 'name': 'after', 'type': 'string'}, - {'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + {'in': 'query', 'name': 'after', 'type': 'string'}], 'security': ['ApiKeyAuth']}, 'reddit-subreddit-about': {'bodyParam': None, 'bodyRequired': False, @@ -6413,8 +6995,7 @@ 'path': '/reddit/subreddit/{subreddit}/about', 'pathParams': ['subreddit'], 'produces': ['application/json'], - 'queryParams': [{'in': 'query', 'name': 'limit', 'type': 'integer'}, - {'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + 'queryParams': [{'in': 'query', 'name': 'limit', 'type': 'integer'}], 'security': ['ApiKeyAuth']}, 'reddit-subreddit-comments': {'bodyParam': None, 'bodyRequired': False, @@ -6426,8 +7007,7 @@ 'pathParams': ['subreddit'], 'produces': ['application/json'], 'queryParams': [{'in': 'query', 'name': 'limit', 'type': 'integer'}, - {'in': 'query', 'name': 'after', 'type': 'string'}, - {'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + {'in': 'query', 'name': 'after', 'type': 'string'}], 'security': ['ApiKeyAuth']}, 'reddit-subreddit-posts': {'bodyParam': None, 'bodyRequired': False, @@ -6447,8 +7027,7 @@ 'name': 'time', 'type': 'string'}, {'in': 'query', 'name': 'limit', 'type': 'integer'}, - {'in': 'query', 'name': 'after', 'type': 'string'}, - {'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + {'in': 'query', 'name': 'after', 'type': 'string'}], 'security': ['ApiKeyAuth']}, 'reddit-subreddits-posts': {'bodyParam': None, 'bodyRequired': False, @@ -6469,8 +7048,7 @@ 'name': 'time', 'type': 'string'}, {'in': 'query', 'name': 'limit', 'type': 'integer'}, - {'in': 'query', 'name': 'after', 'type': 'string'}, - {'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + {'in': 'query', 'name': 'after', 'type': 'string'}], 'security': ['ApiKeyAuth']}, 'reddit-trends': {'bodyParam': None, 'bodyRequired': False, @@ -6490,8 +7068,7 @@ 'name': 'time', 'type': 'string'}, {'in': 'query', 'name': 'limit', 'type': 'integer'}, - {'in': 'query', 'name': 'after', 'type': 'string'}, - {'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + {'in': 'query', 'name': 'after', 'type': 'string'}], 'security': ['ApiKeyAuth']}, 'reddit-user-comments': {'bodyParam': None, 'bodyRequired': False, @@ -6503,8 +7080,7 @@ 'pathParams': ['username'], 'produces': ['application/json'], 'queryParams': [{'in': 'query', 'name': 'limit', 'type': 'integer'}, - {'in': 'query', 'name': 'after', 'type': 'string'}, - {'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + {'in': 'query', 'name': 'after', 'type': 'string'}], 'security': ['ApiKeyAuth']}, 'reddit-user-posts': {'bodyParam': None, 'bodyRequired': False, @@ -6516,8 +7092,7 @@ 'pathParams': ['username'], 'produces': ['application/json'], 'queryParams': [{'in': 'query', 'name': 'limit', 'type': 'integer'}, - {'in': 'query', 'name': 'after', 'type': 'string'}, - {'in': 'query', 'name': 'with_scores', 'type': 'boolean'}], + {'in': 'query', 'name': 'after', 'type': 'string'}], 'security': ['ApiKeyAuth']}, 'redfin-estimate': {'bodyParam': None, 'bodyRequired': False, @@ -8400,6 +8975,17 @@ 'produces': ['application/json'], 'queryParams': [], 'security': ['ApiKeyAuth']}, + 'web-techstack': {'bodyParam': 'request', + 'bodyRequired': True, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'web-techstack', + 'method': 'POST', + 'path': '/web/techstack', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, 'x-post': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], @@ -9190,6 +9776,15 @@ 'search': 'brave-search', 'suggest': 'brave-suggest', 'videos': 'brave-videos'}, + 'chrome_web_store': {'chromewebstore_categories': 'chromewebstore-categories', + 'chromewebstore_category': 'chromewebstore-category', + 'chromewebstore_charts': 'chromewebstore-charts', + 'chromewebstore_collection': 'chromewebstore-collection', + 'chromewebstore_item': 'chromewebstore-item', + 'chromewebstore_reviews': 'chromewebstore-reviews', + 'chromewebstore_search': 'chromewebstore-search', + 'chromewebstore_similar': 'chromewebstore-similar', + 'chromewebstore_suggest': 'chromewebstore-suggest'}, 'coin_gecko': {'categories': 'coingecko-categories', 'category_coins': 'coingecko-category-coins', 'chain': 'coingecko-chain', @@ -9227,13 +9822,30 @@ 'google_map_businesses_item': 'datasets-google-map-businesses-item', 'google_map_businesses_nearby': 'datasets-google-map-businesses-nearby', 'google_map_businesses_search': 'datasets-google-map-businesses-search', - 'list': 'datasets-list'}, + 'list': 'datasets-list', + 'producthunt_makers_facets': 'datasets-producthunt-makers-facets', + 'producthunt_makers_item': 'datasets-producthunt-makers-item', + 'producthunt_makers_search': 'datasets-producthunt-makers-search', + 'producthunt_products_facets': 'datasets-producthunt-products-facets', + 'producthunt_products_item': 'datasets-producthunt-products-item', + 'producthunt_products_search': 'datasets-producthunt-products-search', + 'producthunt_trends_facets': 'datasets-producthunt-trends-facets', + 'producthunt_trends_search': 'datasets-producthunt-trends-search'}, 'e_bay': {'ebay_item': 'ebay-item', 'ebay_search': 'ebay-search', 'ebay_seller': 'ebay-seller', 'ebay_seller_about': 'ebay-seller-about', 'ebay_seller_feedback': 'ebay-seller-feedback', 'ebay_seller_shop': 'ebay-seller-shop'}, + 'espn': {'athlete': 'espn-athlete', + 'game_summary': 'espn-game-summary', + 'news': 'espn-news', + 'rankings': 'espn-rankings', + 'scoreboard': 'espn-scoreboard', + 'standings': 'espn-standings', + 'team': 'espn-team', + 'team_roster': 'espn-team-roster', + 'teams': 'espn-teams'}, 'geocoding': {'lookup': 'geocoding-lookup', 'reverse': 'geocoding-reverse', 'search': 'geocoding-search'}, 'git_hub': {'github_org': 'github-org', 'github_org_repos': 'github-org-repos', @@ -9588,7 +10200,7 @@ 'me_api_keys': 'user-me-api-keys', 'me_api_keys_reveal': 'user-me-api-keys-reveal', 'me_api_keys_rotate': 'user-me-api-keys-rotate'}, - 'web': {'antibot_check': 'antibot-check', 'contact': 'contact', 'scrape': 'web-scrape'}, + 'web': {'antibot_check': 'antibot-check', 'contact': 'contact', 'scrape': 'web-scrape', 'techstack': 'web-techstack'}, 'x': {'post': 'x-post', 'profile': 'x-profile', 'profile_posts': 'x-profile-posts'}, 'yahoo_finance': {'calendar': 'yahoo-finance-calendar', 'calendars': 'yahoo-finance-calendars', @@ -9644,7 +10256,7 @@ 'video': 'youtube-video'}, 'zillow': {'autocomplete': 'zillow-autocomplete', 'property': 'zillow-property', 'search': 'zillow-search'}} -OPERATION_COUNT = 532 +OPERATION_COUNT = 559 class OperationId: AIRBNB_HOST = 'airbnb-host' @@ -9712,6 +10324,15 @@ class OperationId: BRAVE_SEARCH = 'brave-search' BRAVE_SUGGEST = 'brave-suggest' BRAVE_VIDEOS = 'brave-videos' + CHROME_WEB_STORE_CHROMEWEBSTORE_CATEGORIES = 'chromewebstore-categories' + CHROME_WEB_STORE_CHROMEWEBSTORE_CATEGORY = 'chromewebstore-category' + CHROME_WEB_STORE_CHROMEWEBSTORE_CHARTS = 'chromewebstore-charts' + CHROME_WEB_STORE_CHROMEWEBSTORE_COLLECTION = 'chromewebstore-collection' + CHROME_WEB_STORE_CHROMEWEBSTORE_ITEM = 'chromewebstore-item' + CHROME_WEB_STORE_CHROMEWEBSTORE_REVIEWS = 'chromewebstore-reviews' + CHROME_WEB_STORE_CHROMEWEBSTORE_SEARCH = 'chromewebstore-search' + CHROME_WEB_STORE_CHROMEWEBSTORE_SIMILAR = 'chromewebstore-similar' + CHROME_WEB_STORE_CHROMEWEBSTORE_SUGGEST = 'chromewebstore-suggest' COIN_GECKO_CATEGORIES = 'coingecko-categories' COIN_GECKO_CATEGORY_COINS = 'coingecko-category-coins' COIN_GECKO_CHAIN = 'coingecko-chain' @@ -9750,12 +10371,29 @@ class OperationId: DATASETS_GOOGLE_MAP_BUSINESSES_NEARBY = 'datasets-google-map-businesses-nearby' DATASETS_GOOGLE_MAP_BUSINESSES_SEARCH = 'datasets-google-map-businesses-search' DATASETS_LIST = 'datasets-list' + DATASETS_PRODUCTHUNT_MAKERS_FACETS = 'datasets-producthunt-makers-facets' + DATASETS_PRODUCTHUNT_MAKERS_ITEM = 'datasets-producthunt-makers-item' + DATASETS_PRODUCTHUNT_MAKERS_SEARCH = 'datasets-producthunt-makers-search' + DATASETS_PRODUCTHUNT_PRODUCTS_FACETS = 'datasets-producthunt-products-facets' + DATASETS_PRODUCTHUNT_PRODUCTS_ITEM = 'datasets-producthunt-products-item' + DATASETS_PRODUCTHUNT_PRODUCTS_SEARCH = 'datasets-producthunt-products-search' + DATASETS_PRODUCTHUNT_TRENDS_FACETS = 'datasets-producthunt-trends-facets' + DATASETS_PRODUCTHUNT_TRENDS_SEARCH = 'datasets-producthunt-trends-search' EBAY_EBAY_ITEM = 'ebay-item' EBAY_EBAY_SEARCH = 'ebay-search' EBAY_EBAY_SELLER = 'ebay-seller' EBAY_EBAY_SELLER_ABOUT = 'ebay-seller-about' EBAY_EBAY_SELLER_FEEDBACK = 'ebay-seller-feedback' EBAY_EBAY_SELLER_SHOP = 'ebay-seller-shop' + ESPN_ATHLETE = 'espn-athlete' + ESPN_GAME_SUMMARY = 'espn-game-summary' + ESPN_NEWS = 'espn-news' + ESPN_RANKINGS = 'espn-rankings' + ESPN_SCOREBOARD = 'espn-scoreboard' + ESPN_STANDINGS = 'espn-standings' + ESPN_TEAM = 'espn-team' + ESPN_TEAM_ROSTER = 'espn-team-roster' + ESPN_TEAMS = 'espn-teams' GEOCODING_LOOKUP = 'geocoding-lookup' GEOCODING_REVERSE = 'geocoding-reverse' GEOCODING_SEARCH = 'geocoding-search' @@ -10121,6 +10759,7 @@ class OperationId: WEB_ANTIBOT_CHECK = 'antibot-check' WEB_CONTACT = 'contact' WEB_SCRAPE = 'web-scrape' + WEB_TECHSTACK = 'web-techstack' XPOST = 'x-post' XPROFILE = 'x-profile' XPROFILE_POSTS = 'x-profile-posts' diff --git a/docs/operations.md b/docs/operations.md index 6c6195d..092f751 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -2,7 +2,7 @@ Generated from `openapi/public.json`. Deprecated, admin, and internal operations are excluded from this SDK contract. -Total operations: `532` +Total operations: `559` | Group | SDK method | Operation ID | HTTP | Params | Auth | Response | Notes | | --- | --- | --- | --- | --- | --- | --- | --- | @@ -71,6 +71,15 @@ Total operations: `532` | brave | `brave.search` | `brave-search` | `GET /brave/search` | `q` (query str required)
`offset` (query int)
`country` (query Literal['all', 'ar', 'at', 'au', 'be', 'br', 'ca', 'ch', 'cl', 'cn', 'de', 'dk', 'es', 'fi', 'fr', 'gb', 'gr', 'hk', 'id', 'in', 'it', 'jp', 'kr', 'mx', 'my', 'nl', 'no', 'nz', 'ph', 'pl', 'pt', 'ru', 'sa', 'se', 'sg', 'tr', 'tw', 'us', 'za'])
`lang` (query Literal['de-de', 'en-ca', 'en-gb', 'en-in', 'en-us', 'fi-fi', 'fr-ca', 'fr-fr', 'ja-jp', 'pt-br', 'sq-al', 'sw-ke', 'zh-tw'])
`time_range` (query Literal['any', 'day', 'week', 'month', 'year', 'custom'])
`date_from` (query str)
`date_to` (query str) | `ApiKeyAuth` | `BraveSearchResponse` | | | brave | `brave.suggest` | `brave-suggest` | `GET /brave/suggest` | `q` (query str required)
`count` (query int)
`country` (query Literal['all', 'ar', 'at', 'au', 'be', 'br', 'ca', 'ch', 'cl', 'cn', 'de', 'dk', 'es', 'fi', 'fr', 'gb', 'gr', 'hk', 'id', 'in', 'it', 'jp', 'kr', 'mx', 'my', 'nl', 'no', 'nz', 'ph', 'pl', 'pt', 'ru', 'sa', 'se', 'sg', 'tr', 'tw', 'us', 'za'])
`lang` (query Literal['de-de', 'en-ca', 'en-gb', 'en-in', 'en-us', 'fi-fi', 'fr-ca', 'fr-fr', 'ja-jp', 'pt-br', 'sq-al', 'sw-ke', 'zh-tw']) | `ApiKeyAuth` | `BraveSuggestResponse` | | | brave | `brave.videos` | `brave-videos` | `GET /brave/videos` | `q` (query str required)
`offset` (query int)
`count` (query int)
`country` (query Literal['all', 'ar', 'at', 'au', 'be', 'br', 'ca', 'ch', 'cl', 'cn', 'de', 'dk', 'es', 'fi', 'fr', 'gb', 'gr', 'hk', 'id', 'in', 'it', 'jp', 'kr', 'mx', 'my', 'nl', 'no', 'nz', 'ph', 'pl', 'pt', 'ru', 'sa', 'se', 'sg', 'tr', 'tw', 'us', 'za'])
`lang` (query Literal['de-de', 'en-ca', 'en-gb', 'en-in', 'en-us', 'fi-fi', 'fr-ca', 'fr-fr', 'ja-jp', 'pt-br', 'sq-al', 'sw-ke', 'zh-tw'])
`time_range` (query Literal['any', 'day', 'week', 'month', 'year', 'custom'])
`date_from` (query str)
`date_to` (query str) | `ApiKeyAuth` | `BraveVideosResponse` | | +| chrome_web_store | `chrome_web_store.chromewebstore_categories` | `chromewebstore-categories` | `GET /chromewebstore/categories` | none | `ApiKeyAuth` | `ChromeWebStoreChromewebstoreCategoriesResponse` | | +| chrome_web_store | `chrome_web_store.chromewebstore_category` | `chromewebstore-category` | `GET /chromewebstore/category` | `category` (query str required)
`num` (query int)
`country` (query str)
`lang` (query str) | `ApiKeyAuth` | `ChromeWebStoreChromewebstoreCategoryResponse` | | +| chrome_web_store | `chrome_web_store.chromewebstore_charts` | `chromewebstore-charts` | `GET /chromewebstore/charts` | `chart` (query Literal['trending', 'popular', 'notable'])
`num` (query int)
`country` (query str)
`lang` (query str) | `ApiKeyAuth` | `ChromeWebStoreChromewebstoreChartsResponse` | | +| chrome_web_store | `chrome_web_store.chromewebstore_collection` | `chromewebstore-collection` | `GET /chromewebstore/collection` | `collection` (query str required)
`num` (query int)
`country` (query str)
`lang` (query str) | `ApiKeyAuth` | `ChromeWebStoreChromewebstoreCollectionResponse` | | +| chrome_web_store | `chrome_web_store.chromewebstore_item` | `chromewebstore-item` | `GET /chromewebstore/item` | `id` (query str required)
`country` (query str)
`lang` (query str) | `ApiKeyAuth` | `ChromeWebStoreChromewebstoreItemResponse` | | +| chrome_web_store | `chrome_web_store.chromewebstore_reviews` | `chromewebstore-reviews` | `GET /chromewebstore/reviews` | `id` (query str required)
`num` (query int)
`country` (query str)
`lang` (query str) | `ApiKeyAuth` | `ChromeWebStoreChromewebstoreReviewsResponse` | | +| chrome_web_store | `chrome_web_store.chromewebstore_search` | `chromewebstore-search` | `GET /chromewebstore/search` | `term` (query str required)
`num` (query int)
`country` (query str)
`lang` (query str) | `ApiKeyAuth` | `ChromeWebStoreChromewebstoreSearchResponse` | | +| chrome_web_store | `chrome_web_store.chromewebstore_similar` | `chromewebstore-similar` | `GET /chromewebstore/similar` | `id` (query str required)
`country` (query str)
`lang` (query str) | `ApiKeyAuth` | `ChromeWebStoreChromewebstoreSimilarResponse` | | +| chrome_web_store | `chrome_web_store.chromewebstore_suggest` | `chromewebstore-suggest` | `GET /chromewebstore/suggest` | `term` (query str required)
`num` (query int)
`country` (query str)
`lang` (query str) | `ApiKeyAuth` | `ChromeWebStoreChromewebstoreSuggestResponse` | | | coin_gecko | `coin_gecko.categories` | `coingecko-categories` | `GET /coingecko/categories` | `limit` (query int)
`vs_currency` (query Literal['btc', 'eth', 'ltc', 'bch', 'bnb', 'eos', 'xrp', 'xlm', 'link', 'dot', 'yfi', 'sol', 'usd', 'aed', 'ars', 'aud', 'bdt', 'bhd', 'bmd', 'brl', 'cad', 'chf', 'clp', 'cny', 'czk', 'dkk', 'eur', 'gbp', 'gel', 'hkd', 'huf', 'idr', 'ils', 'inr', 'jpy', 'krw', 'kwd', 'lkr', 'mmk', 'mxn', 'myr', 'ngn', 'nok', 'nzd', 'php', 'pkr', 'pln', 'rub', 'sar', 'sek', 'sgd', 'thb', 'try', 'twd', 'uah', 'vef', 'vnd', 'zar', 'xdr', 'xag', 'xau', 'bits', 'sats']) | `ApiKeyAuth` | `CoinGeckoCategoriesResponse` | | | coin_gecko | `coin_gecko.category_coins` | `coingecko-category-coins` | `GET /coingecko/category/{slug}/coins` | `slug` (path str required)
`page` (query int)
`limit` (query int)
`vs_currency` (query Literal['btc', 'eth', 'ltc', 'bch', 'bnb', 'eos', 'xrp', 'xlm', 'link', 'dot', 'yfi', 'sol', 'usd', 'aed', 'ars', 'aud', 'bdt', 'bhd', 'bmd', 'brl', 'cad', 'chf', 'clp', 'cny', 'czk', 'dkk', 'eur', 'gbp', 'gel', 'hkd', 'huf', 'idr', 'ils', 'inr', 'jpy', 'krw', 'kwd', 'lkr', 'mmk', 'mxn', 'myr', 'ngn', 'nok', 'nzd', 'php', 'pkr', 'pln', 'rub', 'sar', 'sek', 'sgd', 'thb', 'try', 'twd', 'uah', 'vef', 'vnd', 'zar', 'xdr', 'xag', 'xau', 'bits', 'sats']) | `ApiKeyAuth` | `CoinGeckoCategoryCoinsResponse` | | | coin_gecko | `coin_gecko.chains` | `coingecko-chains` | `GET /coingecko/chains` | `limit` (query int)
`vs_currency` (query Literal['btc', 'eth', 'ltc', 'bch', 'bnb', 'eos', 'xrp', 'xlm', 'link', 'dot', 'yfi', 'sol', 'usd', 'aed', 'ars', 'aud', 'bdt', 'bhd', 'bmd', 'brl', 'cad', 'chf', 'clp', 'cny', 'czk', 'dkk', 'eur', 'gbp', 'gel', 'hkd', 'huf', 'idr', 'ils', 'inr', 'jpy', 'krw', 'kwd', 'lkr', 'mmk', 'mxn', 'myr', 'ngn', 'nok', 'nzd', 'php', 'pkr', 'pln', 'rub', 'sar', 'sek', 'sgd', 'thb', 'try', 'twd', 'uah', 'vef', 'vnd', 'zar', 'xdr', 'xag', 'xau', 'bits', 'sats']) | `ApiKeyAuth` | `CoinGeckoChainsResponse` | | @@ -95,29 +104,47 @@ Total operations: `532` | web | `web.contact` | `contact` | `POST /contact` | `option` (body str required) | `ApiKeyAuth` | `WebContactResponse` | | | web | `web.antibot_check` | `antibot-check` | `POST /diagnostics/antibot-check` | `request` (body str required) | `ApiKeyAuth` | `WebAntibotCheckResponse` | | | web | `web.scrape` | `web-scrape` | `POST /web/scrape` | `scrapeOption` (body str required) | `ApiKeyAuth` | `WebScrapeResponse` | | +| web | `web.techstack` | `web-techstack` | `POST /web/techstack` | `request` (body str required) | `ApiKeyAuth` | `WebTechstackResponse` | | | datasets | `datasets.list` | `datasets-list` | `GET /datasets` | none | `ApiKeyAuth` | `DatasetsListResponse` | | -| datasets | `datasets.airbnb_markets_facets` | `datasets-airbnb-markets-facets` | `GET /datasets/airbnb-markets/facets` | `facet` (query str required)
`group_by` (query str)
`country` (query str)
`market` (query str)
`superhost` (query bool)
`min_rating` (query float)
`min_review_count` (query int)
`active_since` (query str)
`min_listings` (query int) | `ApiKeyAuth` | `DatasetsAirbnbMarketsFacetsResponse` | | +| datasets | `datasets.airbnb_markets_facets` | `datasets-airbnb-markets-facets` | `GET /datasets/airbnb-markets/facets` | `facet` (query str required)
`group_by` (query str)
`country` (query str)
`market` (query str)
`superhost` (query bool)
`guest_favorite` (query bool)
`min_rating` (query float)
`min_review_count` (query int)
`active_since` (query str)
`min_listings` (query int) | `ApiKeyAuth` | `DatasetsAirbnbMarketsFacetsResponse` | | | datasets | `datasets.airbnb_markets_item` | `datasets-airbnb-markets-item` | `GET /datasets/airbnb-markets/items/{country}` | `country` (path str required) | `ApiKeyAuth` | `DatasetsAirbnbMarketsItemResponse` | | | datasets | `datasets.airbnb_markets_nearby` | `datasets-airbnb-markets-nearby` | `GET /datasets/airbnb-markets/nearby` | `lat` (query float required)
`lon` (query float required)
`radius_m` (query int required)
`precision` (query int)
`min_listings` (query int)
`country` (query str)
`superhost` (query bool)
`min_rating` (query float)
`active_since` (query str) | `ApiKeyAuth` | `DatasetsAirbnbMarketsNearbyResponse` | | -| datasets | `datasets.airbnb_markets_search` | `datasets-airbnb-markets-search` | `GET /datasets/airbnb-markets/search` | `group_by` (query str)
`country` (query str)
`market` (query str)
`superhost` (query bool)
`min_rating` (query float)
`min_review_count` (query int)
`active_since` (query str)
`min_listings` (query int)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsAirbnbMarketsSearchResponse` | | +| datasets | `datasets.airbnb_markets_search` | `datasets-airbnb-markets-search` | `GET /datasets/airbnb-markets/search` | `group_by` (query str)
`country` (query str)
`market` (query str)
`superhost` (query bool)
`guest_favorite` (query bool)
`min_rating` (query float)
`min_review_count` (query int)
`active_since` (query str)
`min_listings` (query int)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsAirbnbMarketsSearchResponse` | | | datasets | `datasets.apps_charts_search` | `datasets-apps-charts-search` | `GET /datasets/apps-charts/search` | `q` (query str)
`store` (query str)
`chart_type` (query str)
`collection` (query str)
`category` (query str)
`country` (query str)
`app_id` (query str)
`date` (query str)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsAppsChartsSearchResponse` | | | datasets | `datasets.apps_reviews_search` | `datasets-apps-reviews-search` | `GET /datasets/apps-reviews/search` | `q` (query str)
`store` (query str)
`app_id` (query str)
`country` (query str)
`min_score` (query int)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsAppsReviewsSearchResponse` | | | datasets | `datasets.apps_search` | `datasets-apps-search` | `GET /datasets/apps/search` | `q` (query str)
`store` (query str)
`category` (query str)
`country` (query str)
`developer` (query str)
`free` (query bool)
`min_rating` (query float)
`min_reviews` (query int)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsAppsSearchResponse` | | | datasets | `datasets.creators_search` | `datasets-creators-search` | `GET /datasets/creators/search` | `q` (query str)
`handle` (query str)
`niche` (query str)
`country` (query str)
`verified` (query bool)
`min_followers` (query int)
`has_email` (query bool)
`include_inactive` (query bool)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsCreatorsSearchResponse` | | -| datasets | `datasets.github_users_facets` | `datasets-github-users-facets` | `GET /datasets/github-users/facets` | `facet` (query str required)
`q` (query str)
`login` (query str)
`company` (query str)
`influence_tier` (query str)
`country` (query str)
`country_code` (query str)
`state` (query str)
`city` (query str)
`domain` (query str)
`has_email` (query bool)
`has_twitter` (query bool)
`has_blog` (query bool)
`reachable` (query bool)
`active_90d` (query bool)
`hireable` (query bool)
`is_org` (query bool)
`is_bot` (query bool)
`min_followers` (query int)
`max_followers` (query int)
`min_repos` (query int)
`min_rank_score` (query int)
`min_account_age_years` (query float)
`max_account_age_years` (query float)
`lat` (query float)
`lon` (query float)
`radius_m` (query int)
`sort` (query str) | `ApiKeyAuth` | `DatasetsGithubUsersFacetsResponse` | | +| datasets | `datasets.github_users_facets` | `datasets-github-users-facets` | `GET /datasets/github-users/facets` | `facet` (query str required)
`q` (query str)
`login` (query str)
`company` (query str)
`influence_tier` (query str)
`country` (query str)
`country_code` (query str)
`state` (query str)
`city` (query str)
`domain` (query str)
`has_email` (query bool)
`has_twitter` (query bool)
`has_blog` (query bool)
`reachable` (query bool)
`active_90d` (query bool)
`hireable` (query bool)
`is_org` (query bool)
`is_bot` (query bool)
`is_suspected_automation` (query bool)
`min_followers` (query int)
`max_followers` (query int)
`min_repos` (query int)
`min_rank_score` (query int)
`min_account_age_years` (query float)
`max_account_age_years` (query float)
`lat` (query float)
`lon` (query float)
`radius_m` (query int)
`sort` (query str) | `ApiKeyAuth` | `DatasetsGithubUsersFacetsResponse` | | | datasets | `datasets.github_users_item` | `datasets-github-users-item` | `GET /datasets/github-users/items/{login}` | `login` (path str required) | `ApiKeyAuth` | `DatasetsGithubUsersItemResponse` | | | datasets | `datasets.github_users_nearby` | `datasets-github-users-nearby` | `GET /datasets/github-users/nearby` | `lat` (query float required)
`lon` (query float required)
`radius_m` (query int required)
`influence_tier` (query str)
`reachable` (query bool)
`min_followers` (query int)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsGithubUsersNearbyResponse` | | -| datasets | `datasets.github_users_search` | `datasets-github-users-search` | `GET /datasets/github-users/search` | `q` (query str)
`login` (query str)
`company` (query str)
`influence_tier` (query str)
`country` (query str)
`country_code` (query str)
`state` (query str)
`city` (query str)
`domain` (query str)
`has_email` (query bool)
`has_twitter` (query bool)
`has_blog` (query bool)
`reachable` (query bool)
`active_90d` (query bool)
`hireable` (query bool)
`is_org` (query bool)
`is_bot` (query bool)
`min_followers` (query int)
`max_followers` (query int)
`min_repos` (query int)
`min_rank_score` (query int)
`min_account_age_years` (query float)
`max_account_age_years` (query float)
`lat` (query float)
`lon` (query float)
`radius_m` (query int)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsGithubUsersSearchResponse` | | +| datasets | `datasets.github_users_search` | `datasets-github-users-search` | `GET /datasets/github-users/search` | `q` (query str)
`login` (query str)
`company` (query str)
`influence_tier` (query str)
`country` (query str)
`country_code` (query str)
`state` (query str)
`city` (query str)
`domain` (query str)
`has_email` (query bool)
`has_twitter` (query bool)
`has_blog` (query bool)
`reachable` (query bool)
`active_90d` (query bool)
`hireable` (query bool)
`is_org` (query bool)
`is_bot` (query bool)
`is_suspected_automation` (query bool)
`min_followers` (query int)
`max_followers` (query int)
`min_repos` (query int)
`min_rank_score` (query int)
`min_account_age_years` (query float)
`max_account_age_years` (query float)
`lat` (query float)
`lon` (query float)
`radius_m` (query int)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsGithubUsersSearchResponse` | | | datasets | `datasets.google_map_businesses_facets` | `datasets-google-map-businesses-facets` | `GET /datasets/google-map-businesses/facets` | `facet` (query str required)
`q` (query str)
`category` (query str)
`country` (query str)
`state` (query str)
`county` (query str)
`city` (query str)
`town` (query str)
`min_rating` (query float)
`min_review_count` (query int)
`has_website` (query bool)
`has_phone` (query bool)
`has_geo` (query bool)
`lat` (query float)
`lon` (query float)
`radius_m` (query int)
`sort` (query str) | `ApiKeyAuth` | `DatasetsGoogleMapBusinessesFacetsResponse` | | | datasets | `datasets.google_map_businesses_item` | `datasets-google-map-businesses-item` | `GET /datasets/google-map-businesses/items/{place_id}` | `place_id` (path str required) | `ApiKeyAuth` | `DatasetsGoogleMapBusinessesItemResponse` | | | datasets | `datasets.google_map_businesses_nearby` | `datasets-google-map-businesses-nearby` | `GET /datasets/google-map-businesses/nearby` | `lat` (query float required)
`lon` (query float required)
`radius_m` (query int required)
`category` (query str)
`min_rating` (query float)
`min_review_count` (query int)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsGoogleMapBusinessesNearbyResponse` | | | datasets | `datasets.google_map_businesses_search` | `datasets-google-map-businesses-search` | `GET /datasets/google-map-businesses/search` | `q` (query str)
`category` (query str)
`country` (query str)
`state` (query str)
`county` (query str)
`city` (query str)
`town` (query str)
`min_rating` (query float)
`min_review_count` (query int)
`has_website` (query bool)
`has_phone` (query bool)
`has_geo` (query bool)
`lat` (query float)
`lon` (query float)
`radius_m` (query int)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsGoogleMapBusinessesSearchResponse` | | +| datasets | `datasets.producthunt_makers_facets` | `datasets-producthunt-makers-facets` | `GET /datasets/producthunt-makers/facets` | `facet` (query str required)
`q` (query str)
`topic` (query str)
`min_products` (query int)
`min_total_votes` (query int) | `ApiKeyAuth` | `DatasetsProducthuntMakersFacetsResponse` | | +| datasets | `datasets.producthunt_makers_item` | `datasets-producthunt-makers-item` | `GET /datasets/producthunt-makers/items/{username}` | `username` (path str required) | `ApiKeyAuth` | `DatasetsProducthuntMakersItemResponse` | | +| datasets | `datasets.producthunt_makers_search` | `datasets-producthunt-makers-search` | `GET /datasets/producthunt-makers/search` | `q` (query str)
`topic` (query str)
`min_products` (query int)
`min_total_votes` (query int)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsProducthuntMakersSearchResponse` | | +| datasets | `datasets.producthunt_products_facets` | `datasets-producthunt-products-facets` | `GET /datasets/producthunt-products/facets` | `facet` (query str required)
`q` (query str)
`topic` (query str)
`maker` (query str)
`launched_after` (query str)
`launched_before` (query str)
`min_votes` (query int)
`min_rating` (query float)
`pricing_type` (query str)
`has_website` (query bool)
`is_online` (query bool) | `ApiKeyAuth` | `DatasetsProducthuntProductsFacetsResponse` | | +| datasets | `datasets.producthunt_products_item` | `datasets-producthunt-products-item` | `GET /datasets/producthunt-products/items/{slug}` | `slug` (path str required) | `ApiKeyAuth` | `DatasetsProducthuntProductsItemResponse` | | +| datasets | `datasets.producthunt_products_search` | `datasets-producthunt-products-search` | `GET /datasets/producthunt-products/search` | `q` (query str)
`topic` (query str)
`maker` (query str)
`launched_after` (query str)
`launched_before` (query str)
`min_votes` (query int)
`min_rating` (query float)
`pricing_type` (query str)
`has_website` (query bool)
`is_online` (query bool)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsProducthuntProductsSearchResponse` | | +| datasets | `datasets.producthunt_trends_facets` | `datasets-producthunt-trends-facets` | `GET /datasets/producthunt-trends/facets` | `facet` (query str required)
`group_by` (query str)
`topic` (query str)
`launched_after` (query str)
`launched_before` (query str)
`min_votes` (query int)
`min_launches` (query int) | `ApiKeyAuth` | `DatasetsProducthuntTrendsFacetsResponse` | | +| datasets | `datasets.producthunt_trends_search` | `datasets-producthunt-trends-search` | `GET /datasets/producthunt-trends/search` | `group_by` (query str)
`topic` (query str)
`launched_after` (query str)
`launched_before` (query str)
`min_votes` (query int)
`min_launches` (query int)
`sort` (query str)
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsProducthuntTrendsSearchResponse` | | | e_bay | `e_bay.ebay_item` | `ebay-item` | `GET /ebay/item/{item_id}` | `item_id` (path str required) | `ApiKeyAuth` | `EBayEbayItemResponse` | | | e_bay | `e_bay.ebay_search` | `ebay-search` | `POST /ebay/search` | `option` (body str required) | `ApiKeyAuth` | `EBayEbaySearchResponse` | | | e_bay | `e_bay.ebay_seller` | `ebay-seller` | `GET /ebay/seller/{seller}` | `seller` (path str required) | `ApiKeyAuth` | `EBayEbaySellerResponse` | | | e_bay | `e_bay.ebay_seller_about` | `ebay-seller-about` | `GET /ebay/seller/{seller}/about` | `seller` (path str required) | `ApiKeyAuth` | `EBayEbaySellerAboutResponse` | | | e_bay | `e_bay.ebay_seller_feedback` | `ebay-seller-feedback` | `GET /ebay/seller/{seller}/feedback` | `seller` (path str required)
`page` (query int)
`per_page` (query Literal['24', '48', '72']) | `ApiKeyAuth` | `EBayEbaySellerFeedbackResponse` | | | e_bay | `e_bay.ebay_seller_shop` | `ebay-seller-shop` | `GET /ebay/seller/{seller}/shop` | `seller` (path str required)
`page` (query int) | `ApiKeyAuth` | `EBayEbaySellerShopResponse` | | +| espn | `espn.athlete` | `espn-athlete` | `GET /espn/athlete` | `sport` (query Literal['football', 'basketball', 'baseball', 'hockey', 'soccer'] required)
`league` (query Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions'] required)
`athlete` (query str required) | `ApiKeyAuth` | `EspnAthleteResponse` | | +| espn | `espn.game_summary` | `espn-game-summary` | `GET /espn/game-summary` | `sport` (query Literal['football', 'basketball', 'baseball', 'hockey', 'soccer'] required)
`league` (query Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions'] required)
`event` (query str required) | `ApiKeyAuth` | `EspnGameSummaryResponse` | | +| espn | `espn.news` | `espn-news` | `GET /espn/news` | `sport` (query Literal['football', 'basketball', 'baseball', 'hockey', 'soccer'] required)
`league` (query Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions'] required) | `ApiKeyAuth` | `EspnNewsResponse` | | +| espn | `espn.rankings` | `espn-rankings` | `GET /espn/rankings` | `sport` (query Literal['football', 'basketball'] required)
`league` (query Literal['college-football', 'mens-college-basketball', 'womens-college-basketball'] required) | `ApiKeyAuth` | `EspnRankingsResponse` | | +| espn | `espn.scoreboard` | `espn-scoreboard` | `GET /espn/scoreboard` | `sport` (query Literal['football', 'basketball', 'baseball', 'hockey', 'soccer'] required)
`league` (query Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions'] required)
`dates` (query str)
`week` (query int)
`seasontype` (query Literal['1', '2', '3', '4']) | `ApiKeyAuth` | `EspnScoreboardResponse` | | +| espn | `espn.standings` | `espn-standings` | `GET /espn/standings` | `sport` (query Literal['football', 'basketball', 'baseball', 'hockey', 'soccer'] required)
`league` (query Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions'] required)
`season` (query int)
`seasontype` (query Literal['1', '2', '3']) | `ApiKeyAuth` | `EspnStandingsResponse` | | +| espn | `espn.team` | `espn-team` | `GET /espn/team` | `sport` (query Literal['football', 'basketball', 'baseball', 'hockey', 'soccer'] required)
`league` (query Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions'] required)
`team` (query str required) | `ApiKeyAuth` | `EspnTeamResponse` | | +| espn | `espn.team_roster` | `espn-team-roster` | `GET /espn/team-roster` | `sport` (query Literal['football', 'basketball', 'baseball', 'hockey', 'soccer'] required)
`league` (query Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions'] required)
`team` (query str required) | `ApiKeyAuth` | `EspnTeamRosterResponse` | | +| espn | `espn.teams` | `espn-teams` | `GET /espn/teams` | `sport` (query Literal['football', 'basketball', 'baseball', 'hockey', 'soccer'] required)
`league` (query Literal['nfl', 'college-football', 'nba', 'wnba', 'mens-college-basketball', 'womens-college-basketball', 'mlb', 'nhl', 'eng.1', 'esp.1', 'ita.1', 'ger.1', 'fra.1', 'usa.1', 'uefa.champions'] required) | `ApiKeyAuth` | `EspnTeamsResponse` | | | geocoding | `geocoding.lookup` | `geocoding-lookup` | `GET /geocoding/lookup` | `osm_ids` (query str required)
`accept_language` (query str)
`addressdetails` (query bool)
`extratags` (query bool)
`namedetails` (query bool) | `ApiKeyAuth` | `GeocodingLookupResponse` | | | geocoding | `geocoding.reverse` | `geocoding-reverse` | `GET /geocoding/reverse` | `lat` (query float required)
`lon` (query float required)
`zoom` (query int)
`accept_language` (query str)
`addressdetails` (query bool)
`extratags` (query bool)
`namedetails` (query bool) | `ApiKeyAuth` | `GeocodingReverseResponse` | | | geocoding | `geocoding.search` | `geocoding-search` | `GET /geocoding/search` | `q` (query str)
`street` (query str)
`city` (query str)
`county` (query str)
`state` (query str)
`country` (query str)
`postalcode` (query str)
`limit` (query int)
`countrycodes` (query str)
`accept_language` (query str)
`addressdetails` (query bool)
`extratags` (query bool)
`namedetails` (query bool) | `ApiKeyAuth` | `GeocodingSearchResponse` | | @@ -331,7 +358,7 @@ Total operations: `532` | polymarket | `polymarket.tournaments` | `polymarket-tournaments` | `GET /polymarket/tournaments` | `limit` (query int)
`offset` (query int)
`order` (query str)
`ascending` (query bool) | `ApiKeyAuth` | `PolymarketTournamentsResponse` | | | polymarket | `polymarket.tournament` | `polymarket-tournament` | `GET /polymarket/tournaments/{id}` | `id` (path int required) | `ApiKeyAuth` | `PolymarketTournamentResponse` | | | product_hunt | `product_hunt.category` | `producthunt-category` | `GET /producthunt/category/{slug}` | `slug` (path str required) | `ApiKeyAuth` | `ProductHuntCategoryResponse` | | -| product_hunt | `product_hunt.category_products` | `producthunt-category-products` | `GET /producthunt/category/{slug}/products` | `slug` (path str required)
`featured_only` (query bool)
`order` (query str)
`page` (query int)
`page_size` (query int)
`tags` (query str) | `ApiKeyAuth` | `ProductHuntCategoryProductsResponse` | | +| product_hunt | `product_hunt.category_products` | `producthunt-category-products` | `GET /producthunt/category/{slug}/products` | `slug` (path str required)
`cursor` (query str)
`page_size` (query int)
`featured_only` (query bool)
`order` (query str)
`page` (query int)
`tags` (query str) | `ApiKeyAuth` | `ProductHuntCategoryProductsResponse` | | | product_hunt | `product_hunt.leaderboard` | `producthunt-leaderboard` | `GET /producthunt/leaderboard` | `scope` (query Literal['daily', 'weekly', 'monthly', 'yearly'])
`date` (query str)
`year` (query int)
`month` (query int)
`day` (query int)
`week` (query int)
`featured` (query bool)
`order` (query str)
`cursor` (query str) | `ApiKeyAuth` | `ProductHuntLeaderboardResponse` | | | product_hunt | `product_hunt.product` | `producthunt-product` | `GET /producthunt/product/{id}` | `id` (path str required) | `ApiKeyAuth` | `ProductHuntProductResponse` | | | product_hunt | `product_hunt.about` | `producthunt-about` | `GET /producthunt/product/{id}/about` | `id` (path str required) | `ApiKeyAuth` | `ProductHuntAboutResponse` | | @@ -341,17 +368,17 @@ Total operations: `532` | product_hunt | `product_hunt.makers` | `producthunt-makers` | `GET /producthunt/product/{id}/makers` | `id` (path str required)
`cursor` (query str) | `ApiKeyAuth` | `ProductHuntMakersResponse` | | | product_hunt | `product_hunt.reviews` | `producthunt-reviews` | `GET /producthunt/product/{id}/reviews` | `id` (path str required) | `ApiKeyAuth` | `ProductHuntReviewsResponse` | | | product_hunt | `product_hunt.search` | `producthunt-search` | `GET /producthunt/search` | `query` (query str required)
`type` (query Literal['product', 'user', 'launch'])
`page` (query int)
`featured` (query bool)
`topics` (query str) | `ApiKeyAuth` | `ProductHuntSearchResponse` | | -| reddit | `reddit.comments` | `reddit-comments` | `GET /reddit/comments/{id}` | `id` (path str required)
`sort` (query Literal['confidence', 'top', 'new', 'controversial', 'old', 'qa'])
`limit` (query int)
`depth` (query int)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditCommentsResponse` | | -| reddit | `reddit.domain_posts` | `reddit-domain-posts` | `GET /reddit/domain/{domain}/posts` | `domain` (path str required)
`sort` (query Literal['hot', 'new', 'top', 'rising'])
`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])
`limit` (query int)
`after` (query str)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditDomainPostsResponse` | | -| reddit | `reddit.post` | `reddit-post` | `GET /reddit/post/{id}` | `id` (path str required)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditPostResponse` | | -| reddit | `reddit.search` | `reddit-search` | `GET /reddit/search` | `q` (query str required)
`subreddit` (query str)
`sort` (query Literal['relevance', 'hot', 'new', 'top', 'comments'])
`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])
`limit` (query int)
`after` (query str)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditSearchResponse` | | -| reddit | `reddit.subreddit_about` | `reddit-subreddit-about` | `GET /reddit/subreddit/{subreddit}/about` | `subreddit` (path str required)
`limit` (query int)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditSubredditAboutResponse` | | -| reddit | `reddit.subreddit_comments` | `reddit-subreddit-comments` | `GET /reddit/subreddit/{subreddit}/comments` | `subreddit` (path str required)
`limit` (query int)
`after` (query str)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditSubredditCommentsResponse` | | -| reddit | `reddit.subreddit_posts` | `reddit-subreddit-posts` | `GET /reddit/subreddit/{subreddit}/posts` | `subreddit` (path str required)
`sort` (query Literal['hot', 'new', 'top', 'rising'])
`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])
`limit` (query int)
`after` (query str)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditSubredditPostsResponse` | | -| reddit | `reddit.subreddits_posts` | `reddit-subreddits-posts` | `GET /reddit/subreddits/posts` | `subreddits` (query str required)
`sort` (query Literal['hot', 'new', 'top', 'rising'])
`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])
`limit` (query int)
`after` (query str)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditSubredditsPostsResponse` | | -| reddit | `reddit.trends` | `reddit-trends` | `GET /reddit/trends` | `sort` (query Literal['hot', 'new', 'rising', 'top'])
`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])
`limit` (query int)
`after` (query str)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditTrendsResponse` | | -| reddit | `reddit.user_comments` | `reddit-user-comments` | `GET /reddit/user/{username}/comments` | `username` (path str required)
`limit` (query int)
`after` (query str)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditUserCommentsResponse` | | -| reddit | `reddit.user_posts` | `reddit-user-posts` | `GET /reddit/user/{username}/posts` | `username` (path str required)
`limit` (query int)
`after` (query str)
`with_scores` (query bool) | `ApiKeyAuth` | `RedditUserPostsResponse` | | +| reddit | `reddit.comments` | `reddit-comments` | `GET /reddit/comments/{id}` | `id` (path str required)
`sort` (query Literal['confidence', 'top', 'new', 'controversial', 'old', 'qa'])
`limit` (query int)
`depth` (query int) | `ApiKeyAuth` | `RedditCommentsResponse` | | +| reddit | `reddit.domain_posts` | `reddit-domain-posts` | `GET /reddit/domain/{domain}/posts` | `domain` (path str required)
`sort` (query Literal['hot', 'new', 'top', 'rising'])
`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])
`limit` (query int)
`after` (query str) | `ApiKeyAuth` | `RedditDomainPostsResponse` | | +| reddit | `reddit.post` | `reddit-post` | `GET /reddit/post/{id}` | `id` (path str required) | `ApiKeyAuth` | `RedditPostResponse` | | +| reddit | `reddit.search` | `reddit-search` | `GET /reddit/search` | `q` (query str required)
`subreddit` (query str)
`sort` (query Literal['relevance', 'hot', 'new', 'top', 'comments'])
`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])
`limit` (query int)
`after` (query str) | `ApiKeyAuth` | `RedditSearchResponse` | | +| reddit | `reddit.subreddit_about` | `reddit-subreddit-about` | `GET /reddit/subreddit/{subreddit}/about` | `subreddit` (path str required)
`limit` (query int) | `ApiKeyAuth` | `RedditSubredditAboutResponse` | | +| reddit | `reddit.subreddit_comments` | `reddit-subreddit-comments` | `GET /reddit/subreddit/{subreddit}/comments` | `subreddit` (path str required)
`limit` (query int)
`after` (query str) | `ApiKeyAuth` | `RedditSubredditCommentsResponse` | | +| reddit | `reddit.subreddit_posts` | `reddit-subreddit-posts` | `GET /reddit/subreddit/{subreddit}/posts` | `subreddit` (path str required)
`sort` (query Literal['hot', 'new', 'top', 'rising'])
`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])
`limit` (query int)
`after` (query str) | `ApiKeyAuth` | `RedditSubredditPostsResponse` | | +| reddit | `reddit.subreddits_posts` | `reddit-subreddits-posts` | `GET /reddit/subreddits/posts` | `subreddits` (query str required)
`sort` (query Literal['hot', 'new', 'top', 'rising'])
`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])
`limit` (query int)
`after` (query str) | `ApiKeyAuth` | `RedditSubredditsPostsResponse` | | +| reddit | `reddit.trends` | `reddit-trends` | `GET /reddit/trends` | `sort` (query Literal['hot', 'new', 'rising', 'top'])
`time` (query Literal['hour', 'day', 'week', 'month', 'year', 'all'])
`limit` (query int)
`after` (query str) | `ApiKeyAuth` | `RedditTrendsResponse` | | +| reddit | `reddit.user_comments` | `reddit-user-comments` | `GET /reddit/user/{username}/comments` | `username` (path str required)
`limit` (query int)
`after` (query str) | `ApiKeyAuth` | `RedditUserCommentsResponse` | | +| reddit | `reddit.user_posts` | `reddit-user-posts` | `GET /reddit/user/{username}/posts` | `username` (path str required)
`limit` (query int)
`after` (query str) | `ApiKeyAuth` | `RedditUserPostsResponse` | | | redfin | `redfin.estimate` | `redfin-estimate` | `GET /redfin/estimate` | `property_id` (query str required) | `ApiKeyAuth` | `RedfinEstimateResponse` | | | redfin | `redfin.property` | `redfin-property` | `GET /redfin/property` | `url` (query str)
`property_id` (query str)
`listing_id` (query str) | `ApiKeyAuth` | `RedfinPropertyResponse` | | | redfin | `redfin.region_trends` | `redfin-region-trends` | `GET /redfin/region-trends` | `region_id` (query int required)
`region_type` (query int) | `ApiKeyAuth` | `RedfinRegionTrendsResponse` | | diff --git a/docs/recipes.md b/docs/recipes.md index f3d6721..37d1c1d 100644 --- a/docs/recipes.md +++ b/docs/recipes.md @@ -71,6 +71,18 @@ fr = crawlora.datasets.airbnb_markets_item(country="FR") density = crawlora.datasets.airbnb_markets_nearby(lat=48.86, lon=2.35, radius_m=5000) ``` +## TrustMRR Verified Startup Revenues + +Browse verified startup revenues and the acquisition marketplace on TrustMRR: the marketplace snapshot, the revenue leaderboard, startup detail, and categories. + +```python +deals = client.trust_mrr.trustmrr_marketplace() +board = client.trust_mrr.trustmrr_leaderboard(metric="mrr") +startup = client.trust_mrr.trustmrr_startup(slug="stan") +cats = client.trust_mrr.trustmrr_categories() +saas = client.trust_mrr.trustmrr_category(slug="saas") +``` + ## Retries, Timeouts, And Headers ```python diff --git a/openapi/public.json b/openapi/public.json index efe5208..f54751c 100644 --- a/openapi/public.json +++ b/openapi/public.json @@ -265,6 +265,10 @@ "image": { "type": "string" }, + "is_guest_favorite": { + "description": "IsGuestFavorite reports whether the listing carries an Airbnb Guest Favorite badge\n(including its \"top N%\" variants). Like IsSuperhost it comes from the search card's\nbadges[] and renders inconsistently, so a true value is reliable but a false/absent\nvalue is not — downstream aggregates treat the rate as an observed lower bound.", + "type": "boolean" + }, "is_superhost": { "type": "boolean" }, @@ -361,6 +365,10 @@ "image": { "type": "string" }, + "is_guest_favorite": { + "description": "IsGuestFavorite reports whether the listing carries an Airbnb Guest Favorite badge\n(including its \"top N%\" variants). Like IsSuperhost it comes from the search card's\nbadges[] and renders inconsistently, so a true value is reliable but a false/absent\nvalue is not — downstream aggregates treat the rate as an observed lower bound.", + "type": "boolean" + }, "is_superhost": { "type": "boolean" }, @@ -373,6 +381,10 @@ "longitude": { "type": "number" }, + "person_capacity": { + "description": "PersonCapacity is the max guests the listing sleeps and PropertyType is Airbnb's\ncanonical listing type (e.g. \"Entire guest suite\", \"Private room in rental unit\"),\nboth from the room detail page's StayEmbedData. PropertyType is authoritative, unlike\nthe search card's \" in \" descriptor. PDP-only (absent from /airbnb/search).", + "type": "integer" + }, "price": { "type": "number" }, @@ -381,6 +393,9 @@ "example": 148, "type": "number" }, + "property_type": { + "type": "string" + }, "rating": { "type": "number" }, @@ -6267,6 +6282,402 @@ }, "type": "object" }, + "chromewebstore.Card": { + "properties": { + "category": { + "type": "string" + }, + "category_id": { + "type": "integer" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "publisher": { + "type": "string" + }, + "rating": { + "type": "number" + }, + "rating_count": { + "type": "integer" + }, + "summary": { + "type": "string" + }, + "tile_image": { + "type": "string" + }, + "url": { + "type": "string" + }, + "users": { + "type": "integer" + } + }, + "type": "object" + }, + "chromewebstore.CategoriesResult": { + "properties": { + "categories": { + "items": { + "$ref": "#/definitions/chromewebstore.CategoryGroup" + }, + "type": "array" + }, + "charts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "collections": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "chromewebstore.CategoryGroup": { + "properties": { + "group": { + "type": "string" + }, + "subcategories": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "chromewebstore.Item": { + "properties": { + "category": { + "type": "string" + }, + "category_id": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "developer": { + "type": "string" + }, + "developer_email": { + "type": "string" + }, + "header_image": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "id": { + "type": "string" + }, + "language_codes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "languages": { + "items": { + "type": "string" + }, + "type": "array" + }, + "min_browser_version": { + "type": "string" + }, + "name": { + "type": "string" + }, + "privacy_policy": { + "type": "string" + }, + "rating": { + "type": "number" + }, + "rating_count": { + "type": "integer" + }, + "screenshots": { + "items": { + "type": "string" + }, + "type": "array" + }, + "size": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "support_url": { + "type": "string" + }, + "tile_image": { + "type": "string" + }, + "updated": { + "type": "string" + }, + "updated_unix": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "users": { + "type": "integer" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "chromewebstore.ListResult": { + "properties": { + "count": { + "type": "integer" + }, + "kind": { + "type": "string" + }, + "results": { + "items": { + "$ref": "#/definitions/chromewebstore.Card" + }, + "type": "array" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "chromewebstore.Review": { + "properties": { + "author": { + "type": "string" + }, + "avatar": { + "type": "string" + }, + "edited": { + "type": "string" + }, + "id": { + "type": "string" + }, + "language": { + "type": "string" + }, + "posted": { + "type": "string" + }, + "posted_unix": { + "type": "integer" + }, + "rating": { + "type": "integer" + }, + "text": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "type": "object" + }, + "chromewebstore.ReviewsResult": { + "properties": { + "count": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "reviews": { + "items": { + "$ref": "#/definitions/chromewebstore.Review" + }, + "type": "array" + } + }, + "type": "object" + }, + "chromewebstore.SearchResult": { + "properties": { + "count": { + "type": "integer" + }, + "query": { + "type": "string" + }, + "results": { + "items": { + "$ref": "#/definitions/chromewebstore.Card" + }, + "type": "array" + } + }, + "type": "object" + }, + "chromewebstore.SimilarResult": { + "properties": { + "count": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "results": { + "items": { + "$ref": "#/definitions/chromewebstore.Card" + }, + "type": "array" + } + }, + "type": "object" + }, + "chromewebstore.Suggestion": { + "properties": { + "term": { + "type": "string" + } + }, + "type": "object" + }, + "chromewebstore.categoriesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/chromewebstore.CategoriesResult" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "chromewebstore.itemResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/chromewebstore.Item" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "chromewebstore.listResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/chromewebstore.ListResult" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "chromewebstore.reviewsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/chromewebstore.ReviewsResult" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "chromewebstore.searchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/chromewebstore.SearchResult" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "chromewebstore.similarResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/chromewebstore.SimilarResult" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "chromewebstore.suggestResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "items": { + "$ref": "#/definitions/chromewebstore.Suggestion" + }, + "type": "array" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "coingecko.AnalysisResponse": { "properties": { "absolute_change": { @@ -8525,6 +8936,11 @@ "verify": { "example": true, "type": "boolean" + }, + "verify_limit": { + "description": "VerifyLimit caps how many discovered emails get the costly SMTP mailbox\ncheck when verify is on: the first N (in crawl order — contact/about pages\nfirst) are SMTP-verified, the rest are returned syntax+MX-only (`unverified`).\n0/omitted = verify every email (up to maxEmails). The free preview sets a\nsmall cap to bound SMTP probe volume and latency for anonymous callers.", + "example": 10, + "type": "integer" } }, "required": [ @@ -8944,6 +9360,141 @@ }, "type": "object" }, + "datasets.ProductHuntMakersFacetResponse": { + "properties": { + "dataset": { + "type": "string" + }, + "facet": { + "type": "string" + }, + "items": { + "items": { + "$ref": "#/definitions/es.ProductHuntMakersFacetItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "datasets.ProductHuntMakersSearchResponse": { + "properties": { + "dataset": { + "type": "string" + }, + "items": { + "items": { + "$ref": "#/definitions/es.ProductHuntMakerItem" + }, + "type": "array" + }, + "page": { + "type": "integer" + }, + "page_size": { + "type": "integer" + }, + "sort": { + "type": "string" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "datasets.ProductHuntProductsFacetResponse": { + "properties": { + "dataset": { + "type": "string" + }, + "facet": { + "type": "string" + }, + "items": { + "items": { + "$ref": "#/definitions/es.ProductHuntProductsFacetItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "datasets.ProductHuntProductsSearchResponse": { + "properties": { + "dataset": { + "type": "string" + }, + "items": { + "items": { + "$ref": "#/definitions/es.ProductHuntProductItem" + }, + "type": "array" + }, + "page": { + "type": "integer" + }, + "page_size": { + "type": "integer" + }, + "sort": { + "type": "string" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "datasets.ProductHuntTrendsFacetResponse": { + "properties": { + "dataset": { + "type": "string" + }, + "facet": { + "type": "string" + }, + "items": { + "items": { + "$ref": "#/definitions/es.ProductHuntTrendsFacetItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "datasets.ProductHuntTrendsSearchResponse": { + "properties": { + "dataset": { + "type": "string" + }, + "group_by": { + "type": "string" + }, + "items": { + "items": { + "$ref": "#/definitions/es.ProductHuntTrendCell" + }, + "type": "array" + }, + "min_launches": { + "type": "integer" + }, + "page": { + "type": "integer" + }, + "page_size": { + "type": "integer" + }, + "sort": { + "type": "string" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, "datasets.ReviewsSearchResponse": { "properties": { "dataset": { @@ -9194,6 +9745,134 @@ }, "type": "object" }, + "datasets.producthuntMakerResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/es.ProductHuntMakerItem" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "datasets.producthuntMakersFacetResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/datasets.ProductHuntMakersFacetResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "datasets.producthuntMakersSearchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/datasets.ProductHuntMakersSearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "datasets.producthuntProductResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/es.ProductHuntProductItem" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "datasets.producthuntProductsFacetResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/datasets.ProductHuntProductsFacetResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "datasets.producthuntProductsSearchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/datasets.ProductHuntProductsSearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "datasets.producthuntTrendsFacetResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/datasets.ProductHuntTrendsFacetResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "datasets.producthuntTrendsSearchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/datasets.ProductHuntTrendsSearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "datasets.reviewsSearchResponseDoc": { "properties": { "code": { @@ -9905,6 +10584,9 @@ }, "es.AirbnbMarketCell": { "properties": { + "avg_person_capacity": { + "type": "number" + }, "avg_rating": { "type": "number" }, @@ -9917,6 +10599,15 @@ "enriched_listings": { "type": "integer" }, + "guest_favorite_listings": { + "type": "integer" + }, + "guest_favorite_pct": { + "type": "number" + }, + "guest_favorite_pct_enriched": { + "type": "number" + }, "key": { "type": "string" }, @@ -9929,6 +10620,9 @@ "listings_per_host": { "type": "number" }, + "median_price_usd": { + "type": "number" + }, "rated_listings": { "type": "integer" }, @@ -9946,6 +10640,9 @@ }, "es.AirbnbMarketDetail": { "properties": { + "avg_person_capacity": { + "type": "number" + }, "avg_rating": { "type": "number" }, @@ -9970,6 +10667,15 @@ "enriched_listings": { "type": "integer" }, + "guest_favorite_listings": { + "type": "integer" + }, + "guest_favorite_pct": { + "type": "number" + }, + "guest_favorite_pct_enriched": { + "type": "number" + }, "last_seen": { "type": "string" }, @@ -9985,6 +10691,14 @@ }, "type": "array" }, + "price_usd": { + "allOf": [ + { + "$ref": "#/definitions/es.AirbnbPriceUSDStats" + } + ], + "description": "PriceUSD is the country-wide nightly-price distribution normalized to USD (approximate,\ndated FX snapshot) — the cross-country-comparable complement to the per-currency\nCurrencies medians. Present only when enough listings carry a USD-normalized price." + }, "rated_listings": { "type": "integer" }, @@ -10031,6 +10745,23 @@ }, "type": "object" }, + "es.AirbnbPriceUSDStats": { + "properties": { + "listings": { + "type": "integer" + }, + "p25": { + "type": "number" + }, + "p50": { + "type": "number" + }, + "p75": { + "type": "number" + } + }, + "type": "object" + }, "es.AppRecord": { "properties": { "android_max_installs": { @@ -10455,6 +11186,9 @@ "is_org": { "type": "boolean" }, + "is_suspected_automation": { + "type": "boolean" + }, "last_active_at": { "type": "string" }, @@ -10586,6 +11320,9 @@ "is_org": { "type": "boolean" }, + "is_suspected_automation": { + "type": "boolean" + }, "last_active_at": { "type": "string" }, @@ -11013,6 +11750,320 @@ }, "type": "object" }, + "es.ProductHuntLaunch": { + "properties": { + "daily_rank": { + "type": "integer" + }, + "date": { + "type": "string" + }, + "launch_day_score": { + "type": "integer" + }, + "launch_number": { + "type": "integer" + }, + "monthly_rank": { + "type": "integer" + }, + "post_id": { + "type": "string" + }, + "post_slug": { + "type": "string" + }, + "score": { + "type": "integer" + }, + "weekly_rank": { + "type": "integer" + } + }, + "type": "object" + }, + "es.ProductHuntMaker": { + "properties": { + "avatar_url": { + "type": "string" + }, + "headline": { + "type": "string" + }, + "maker_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "es.ProductHuntMakerItem": { + "properties": { + "avatar_url": { + "type": "string" + }, + "best_product": { + "$ref": "#/definitions/es.ProductHuntMakerProduct" + }, + "first_launch_date": { + "type": "string" + }, + "followers_count": { + "type": "integer" + }, + "headline": { + "type": "string" + }, + "latest_launch_date": { + "type": "string" + }, + "made_products": { + "items": { + "$ref": "#/definitions/es.ProductHuntMakerProduct" + }, + "type": "array" + }, + "maker_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "product_count": { + "type": "integer" + }, + "topics": { + "items": { + "type": "string" + }, + "type": "array" + }, + "total_votes": { + "type": "integer" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "es.ProductHuntMakerProduct": { + "properties": { + "latest_score": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "product_id": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "type": "object" + }, + "es.ProductHuntMakersFacetItem": { + "properties": { + "count": { + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "es.ProductHuntProductItem": { + "properties": { + "best_daily_rank": { + "type": "integer" + }, + "best_monthly_rank": { + "type": "integer" + }, + "best_weekly_rank": { + "type": "integer" + }, + "comments_count": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "first_launch_date": { + "type": "string" + }, + "followers_count": { + "type": "integer" + }, + "is_no_longer_online": { + "type": "boolean" + }, + "is_top_product": { + "type": "boolean" + }, + "latest_launch_date": { + "type": "string" + }, + "latest_score": { + "type": "integer" + }, + "launch_count": { + "type": "integer" + }, + "launch_year": { + "type": "integer" + }, + "launches": { + "items": { + "$ref": "#/definitions/es.ProductHuntLaunch" + }, + "type": "array" + }, + "logo_uuid": { + "type": "string" + }, + "makers": { + "items": { + "$ref": "#/definitions/es.ProductHuntMaker" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "pricing_type": { + "type": "string" + }, + "primary_topic": { + "type": "string" + }, + "product_id": { + "type": "string" + }, + "product_state": { + "type": "string" + }, + "reviews_count": { + "type": "integer" + }, + "reviews_rating": { + "type": "number" + }, + "slug": { + "type": "string" + }, + "tagline": { + "type": "string" + }, + "topic_slugs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "topics": { + "items": { + "$ref": "#/definitions/es.ProductHuntTopic" + }, + "type": "array" + }, + "url": { + "type": "string" + }, + "website": { + "type": "string" + }, + "won_daily": { + "type": "boolean" + } + }, + "type": "object" + }, + "es.ProductHuntProductsFacetItem": { + "properties": { + "count": { + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "es.ProductHuntTopic": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "type": "object" + }, + "es.ProductHuntTrendCell": { + "properties": { + "avg_rating": { + "type": "number" + }, + "avg_votes": { + "type": "number" + }, + "launches": { + "type": "integer" + }, + "period": { + "description": "\"2024-01\" | \"2024\" | \"\" for all-time", + "type": "string" + }, + "top_product": { + "$ref": "#/definitions/es.ProductHuntTrendTopProduct" + }, + "topic": { + "type": "string" + }, + "total_votes": { + "type": "integer" + } + }, + "type": "object" + }, + "es.ProductHuntTrendTopProduct": { + "properties": { + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "votes": { + "type": "integer" + } + }, + "type": "object" + }, + "es.ProductHuntTrendsFacetItem": { + "properties": { + "count": { + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, "es.WebsiteStatus": { "properties": { "checked_at": { @@ -11036,970 +12087,653 @@ }, "type": "object" }, - "finance.About": { + "espn.Athlete": { "properties": { - "about": { - "description": "Information about the company.", - "example": "SAP SE is a European multinational software company based in Walldorf, Baden-Württemberg, Germany...", + "age": { + "type": "integer" + }, + "display_height": { "type": "string" }, - "ceo": { - "description": "The CEO of the company.", - "example": "Christian Klein", + "display_name": { "type": "string" }, - "employees": { - "description": "The number of employees.", - "example": 107583, - "type": "integer" + "display_weight": { + "type": "string" }, - "founded": { - "description": "The founding date of the company.", - "example": "1972-04-01T00:00:00Z", + "full_name": { "type": "string" }, - "headquarters": { - "description": "The headquarters of the company.", - "example": "Walldorf, Baden-Württemberg, Germany", + "headshot": { "type": "string" }, - "website": { - "description": "The company's website.", - "example": "https://www.sap.com/", + "id": { + "type": "string" + }, + "jersey": { + "type": "string" + }, + "position": { "type": "string" + }, + "team": { + "$ref": "#/definitions/espn.TeamRef" } }, "type": "object" }, - "finance.BalanceSheet": { + "espn.AthleteResponse": { "properties": { - "cash_and_short_term_change_yy": { - "description": "Year-over-year change in cash and short-term investments (%)", - "example": 5.87, - "type": "number" - }, - "cash_and_short_term_investments": { - "description": "Cash and short-term investments in USD", - "example": 65170000000, - "type": "number" - }, - "price_to_book": { - "description": "Price to book ratio", - "example": 67.71, - "type": "number" + "athlete": { + "$ref": "#/definitions/espn.Athlete" }, - "quarter": { - "description": "The fiscal quarter", - "example": 4, - "type": "integer" + "fetched_at": { + "type": "string" }, - "return_on_assets": { - "description": "Return on assets (%)", - "example": 21.24, - "type": "number" + "league": { + "type": "string" }, - "return_on_capital": { - "description": "Return on capital (%)", - "example": 43.01, - "type": "number" + "source_url": { + "type": "string" }, - "shares_outstanding": { - "description": "Shares outstanding", - "example": 15120000000, - "type": "number" + "sport": { + "type": "string" + } + }, + "type": "object" + }, + "espn.BoxscoreTeam": { + "properties": { + "home_away": { + "type": "string" }, - "total_assets": { - "description": "Total assets in USD", - "example": 364980000000, - "type": "number" + "stats": { + "additionalProperties": { + "type": "string" + }, + "type": "object" }, - "total_assets_change_yy": { - "description": "Year-over-year change in total assets (%)", - "example": 3.52, - "type": "number" + "team": { + "$ref": "#/definitions/espn.TeamRef" + } + }, + "type": "object" + }, + "espn.Competitor": { + "properties": { + "home_away": { + "example": "home", + "type": "string" }, - "total_equity": { - "description": "Total equity in USD", - "example": 56950000000, - "type": "number" + "record": { + "example": "10-2", + "type": "string" }, - "total_liabilities": { - "description": "Total liabilities in USD", - "example": 308030000000, - "type": "number" + "score": { + "example": "27", + "type": "string" }, - "total_liabilities_change_yy": { - "description": "Year-over-year change in total liabilities (%)", - "example": 6.06, - "type": "number" + "team": { + "$ref": "#/definitions/espn.TeamRef" }, - "year": { - "description": "The fiscal year", - "example": 2024, - "type": "integer" + "winner": { + "type": "boolean" } }, "type": "object" }, - "finance.CashFlow": { + "espn.Game": { "properties": { - "cash_from_financing": { - "description": "Cash from financing in USD", - "example": -24950000000, - "type": "number" - }, - "cash_from_financing_change_yy": { - "description": "Year-over-year change in cash from financing (%)", - "example": -7.75, - "type": "number" + "competitors": { + "items": { + "$ref": "#/definitions/espn.Competitor" + }, + "type": "array" }, - "cash_from_investing": { - "description": "Cash from investing in USD", - "example": 1450000000, - "type": "number" + "date": { + "type": "string" }, - "cash_from_investing_change_yy": { - "description": "Year-over-year change in cash from investing (%)", - "example": -39.64, - "type": "number" + "id": { + "example": "401816033", + "type": "string" }, - "cash_from_operations": { - "description": "Cash from operations in USD", - "example": 26810000000, - "type": "number" + "name": { + "type": "string" }, - "cash_from_operations_change_yy": { - "description": "Year-over-year change in cash from operations (%)", - "example": 24.14, - "type": "number" + "odds": { + "items": { + "$ref": "#/definitions/espn.GameOdds" + }, + "type": "array" }, - "free_cash_flow": { - "description": "Free cash flow in USD", - "example": 34540000000, - "type": "number" + "short_name": { + "type": "string" }, - "free_cash_flow_change_yy": { - "description": "Year-over-year change in free cash flow (%)", - "example": 180.6, - "type": "number" + "status": { + "$ref": "#/definitions/espn.GameStatus" }, - "net_change_in_cash": { - "description": "Net change in cash in USD", - "example": 3310000000, - "type": "number" + "venue": { + "type": "string" + } + }, + "type": "object" + }, + "espn.GameOdds": { + "properties": { + "details": { + "type": "string" }, - "net_change_in_cash_change_yy": { - "description": "Year-over-year change in net change in cash (%)", - "example": 294.28, + "over_under": { "type": "number" }, - "net_income": { - "description": "Net income in USD", - "example": 14740000000, - "type": "number" + "provider": { + "type": "string" }, - "net_income_change_yy": { - "description": "Year-over-year change in net income (%)", - "example": -35.81, + "spread": { "type": "number" - }, - "quarter": { - "description": "The fiscal quarter", - "example": 4, - "type": "integer" - }, - "year": { - "description": "The fiscal year", - "example": 2024, - "type": "integer" } }, "type": "object" }, - "finance.CategoryNewsResponse": { + "espn.GameStatus": { "properties": { - "category": { - "example": "18", + "clock": { "type": "string" }, - "items": { - "items": { - "$ref": "#/definitions/finance.FinanceArticle" - }, - "type": "array" + "completed": { + "example": true, + "type": "boolean" }, - "offset": { - "example": 0, + "detail": { + "example": "Final", + "type": "string" + }, + "period": { "type": "integer" + }, + "short_detail": { + "example": "Final", + "type": "string" + }, + "state": { + "example": "post", + "type": "string" } }, "type": "object" }, - "finance.CategoryStocksResponse": { + "espn.GameSummaryResponse": { "properties": { - "category": { - "example": "18", + "boxscore_teams": { + "items": { + "$ref": "#/definitions/espn.BoxscoreTeam" + }, + "type": "array" + }, + "event": { "type": "string" }, - "items": { + "fetched_at": { + "type": "string" + }, + "game": { + "$ref": "#/definitions/espn.Game" + }, + "league": { + "type": "string" + }, + "odds": { "items": { - "$ref": "#/definitions/finance.Instrument" + "$ref": "#/definitions/espn.GameOdds" }, "type": "array" }, - "offset": { - "example": 0, - "type": "integer" + "source_url": { + "type": "string" + }, + "sport": { + "type": "string" } }, "type": "object" }, - "finance.ChartResponse": { + "espn.NewsArticle": { "properties": { - "instrument": { - "$ref": "#/definitions/finance.Instrument" + "byline": { + "type": "string" }, - "points": { - "items": { - "$ref": "#/definitions/finance.Ticker" - }, - "type": "array" + "description": { + "type": "string" }, - "previous_close": { - "example": 236.35, - "type": "number" + "headline": { + "type": "string" }, - "window": { - "example": "1m", + "link": { + "type": "string" + }, + "published": { + "type": "string" + }, + "type": { "type": "string" } }, "type": "object" }, - "finance.ClassificationResponse": { + "espn.NewsResponse": { "properties": { - "categories": { + "articles": { "items": { - "type": "string" + "$ref": "#/definitions/espn.NewsArticle" }, "type": "array" }, - "instrument": { - "$ref": "#/definitions/finance.Instrument" + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "league": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "sport": { + "type": "string" } }, "type": "object" }, - "finance.CompanyInfo": { + "espn.RankEntry": { "properties": { - "ceo": { - "example": "Tim Cook", - "type": "string" - }, - "description": { - "type": "string" - }, - "employees": { - "example": 166000, + "current": { "type": "integer" }, - "fifty_two_week_high": { - "example": 288.61, + "points": { "type": "number" }, - "fifty_two_week_low": { - "example": 169.21, - "type": "number" + "previous": { + "type": "integer" }, - "headquarters": { - "example": "Cupertino, CA, US", + "record": { "type": "string" }, - "high": { - "example": 272.4, - "type": "number" - }, - "low": { - "example": 269.1, - "type": "number" - }, - "market_cap": { - "example": 4010000000000, - "type": "number" - }, - "open": { - "example": 270.9, - "type": "number" - }, - "pe_ratio": { - "example": 34.56, - "type": "number" + "team": { + "$ref": "#/definitions/espn.TeamRef" }, - "sector": { - "example": "Technology", + "trend": { "type": "string" - }, - "volume": { - "example": 41339643, - "type": "integer" } }, "type": "object" }, - "finance.ContextResponse": { + "espn.RankingPoll": { "properties": { - "items": { + "name": { + "type": "string" + }, + "ranks": { "items": { - "$ref": "#/definitions/finance.Instrument" + "$ref": "#/definitions/espn.RankEntry" }, "type": "array" }, - "query": { - "example": "apple", + "short_name": { "type": "string" } }, "type": "object" }, - "finance.EarningsCalendarResponse": { + "espn.RankingsResponse": { "properties": { - "items": { + "fetched_at": { + "type": "string" + }, + "league": { + "type": "string" + }, + "polls": { "items": { - "$ref": "#/definitions/finance.EarningsEvent" + "$ref": "#/definitions/espn.RankingPoll" }, "type": "array" + }, + "season": { + "$ref": "#/definitions/espn.Season" + }, + "source_url": { + "type": "string" + }, + "sport": { + "type": "string" } }, "type": "object" }, - "finance.EarningsEvent": { + "espn.RosterAthlete": { "properties": { - "company_name": { - "type": "string" + "age": { + "type": "integer" }, - "conference_phone": { + "display_height": { "type": "string" }, - "conference_url": { + "display_weight": { "type": "string" }, - "event_time": { + "experience_years": { + "type": "integer" + }, + "full_name": { "type": "string" }, - "event_unix": { - "type": "integer" + "id": { + "type": "string" }, - "fiscal_period": { + "jersey": { "type": "string" }, - "instrument": { - "$ref": "#/definitions/finance.Instrument" + "position": { + "type": "string" } }, "type": "object" }, - "finance.FinanceArticle": { + "espn.RosterResponse": { "properties": { - "published_at": { - "type": "string" - }, - "published_unix": { - "example": 1777077000, - "type": "integer" - }, - "related": { + "athletes": { "items": { - "$ref": "#/definitions/finance.Instrument" + "$ref": "#/definitions/espn.RosterAthlete" }, "type": "array" }, - "source": { - "example": "Reuters", + "coach": { "type": "string" }, - "thumbnail_url": { + "count": { + "type": "integer" + }, + "fetched_at": { "type": "string" }, - "title": { - "example": "Apple announces an update", + "league": { "type": "string" }, - "url": { - "example": "https://example.com/news", + "source_url": { "type": "string" + }, + "sport": { + "type": "string" + }, + "team": { + "$ref": "#/definitions/espn.TeamRef" } }, "type": "object" }, - "finance.FinancialPeriod": { + "espn.ScoreboardResponse": { "properties": { - "capital_expenditure": { - "type": "number" - }, - "ebitda": { - "type": "number" - }, - "eps": { - "type": "number" - }, - "eps_diluted": { - "type": "number" - }, - "free_cash_flow": { - "type": "number" - }, - "net_income": { - "type": "number" - }, - "operating_cash_flow": { - "type": "number" + "count": { + "example": 14, + "type": "integer" }, - "operating_income": { - "type": "number" + "day": { + "type": "string" }, - "operating_margin": { - "type": "number" + "fetched_at": { + "type": "string" }, - "pe_ratio": { - "type": "number" + "games": { + "items": { + "$ref": "#/definitions/espn.Game" + }, + "type": "array" }, - "period": { - "example": "annual", + "league": { + "example": "nfl", "type": "string" }, - "period_end": { + "league_name": { + "example": "National Football League", "type": "string" }, - "profit_margin": { - "type": "number" + "season": { + "$ref": "#/definitions/espn.Season" }, - "revenue": { - "type": "number" + "source_url": { + "type": "string" }, - "revenue_growth_yoy": { - "type": "number" + "sport": { + "example": "football", + "type": "string" + } + }, + "type": "object" + }, + "espn.Season": { + "properties": { + "name": { + "type": "string" }, - "shares_outstanding": { - "type": "number" + "type": { + "example": 2, + "type": "integer" }, - "total_assets": { - "type": "number" + "year": { + "example": 2024, + "type": "integer" + } + }, + "type": "object" + }, + "espn.StandingsEntry": { + "properties": { + "note": { + "type": "string" }, - "total_equity": { - "type": "number" + "stats": { + "additionalProperties": { + "type": "string" + }, + "type": "object" }, - "total_liabilities": { - "type": "number" + "team": { + "$ref": "#/definitions/espn.TeamRef" } }, "type": "object" }, - "finance.FinancialsResponse": { + "espn.StandingsGroup": { "properties": { - "annual": { + "abbreviation": { + "type": "string" + }, + "entries": { "items": { - "$ref": "#/definitions/finance.FinancialPeriod" + "$ref": "#/definitions/espn.StandingsEntry" }, "type": "array" }, - "currency": { - "example": "USD", + "name": { + "type": "string" + } + }, + "type": "object" + }, + "espn.StandingsResponse": { + "properties": { + "fetched_at": { "type": "string" }, - "quarterly": { + "groups": { "items": { - "$ref": "#/definitions/finance.FinancialPeriod" + "$ref": "#/definitions/espn.StandingsGroup" }, "type": "array" + }, + "league": { + "type": "string" + }, + "league_name": { + "type": "string" + }, + "season": { + "$ref": "#/definitions/espn.Season" + }, + "source_url": { + "type": "string" + }, + "sport": { + "type": "string" } }, "type": "object" }, - "finance.HeadlineResponse": { + "espn.TeamDetail": { "properties": { - "article": { - "$ref": "#/definitions/finance.FinanceArticle" - } - }, - "type": "object" - }, - "finance.IncomeStatement": { - "properties": { - "earnings_per_share": { - "description": "Earnings per share in USD", - "example": 1.64, - "type": "number" - }, - "earnings_per_share_change_yy": { - "description": "Year-over-year change in earnings per share (%)", - "example": 12.33, - "type": "number" - }, - "ebitda": { - "description": "EBITDA (Earnings Before Interest, Taxes, Depreciation, and Amortization) in USD", - "example": 32502000000, - "type": "number" - }, - "ebitda_change_yy": { - "description": "Year-over-year change in EBITDA (%)", - "example": 9.72, - "type": "number" - }, - "effective_tax_rate": { - "description": "Effective tax rate (%)", - "example": 50.23, - "type": "number" - }, - "net_income": { - "description": "Net income in USD", - "example": 14740000000, - "type": "number" - }, - "net_income_change_yy": { - "description": "Year-over-year change in net income (%)", - "example": -35.81, - "type": "number" - }, - "net_profit_margin": { - "description": "Net profit margin (%)", - "example": 15.52, - "type": "number" - }, - "net_profit_margin_change_yy": { - "description": "Year-over-year change in net profit margin (%)", - "example": -39.49, - "type": "number" - }, - "operating_expense": { - "description": "Total operating expense in USD", - "example": 14736000000, - "type": "number" - }, - "operating_expense_change_yy": { - "description": "Year-over-year change in operating expense (%)", - "example": 6.17, - "type": "number" - }, - "quarter": { - "description": "The fiscal quarter", - "example": 4, - "type": "integer" - }, - "revenue": { - "description": "Total revenue in USD", - "example": 94930000000, - "type": "number" - }, - "revenue_change_yy": { - "description": "Year-over-year change in revenue (%)", - "example": 6.07, - "type": "number" - }, - "year": { - "description": "The fiscal year", - "example": 2024, - "type": "integer" - } - }, - "type": "object" - }, - "finance.Instrument": { - "properties": { - "after_hours": { - "$ref": "#/definitions/finance.PriceChange" - }, - "change": { - "example": -3.37, - "type": "number" - }, - "change_percent": { - "example": -1.3, - "type": "number" + "abbreviation": { + "example": "KC", + "type": "string" }, - "country": { - "example": "US", + "alternate_color": { "type": "string" }, - "currency": { - "example": "USD", + "color": { "type": "string" }, - "exchange": { - "example": "NASDAQ", + "display_name": { + "example": "Kansas City Chiefs", "type": "string" }, - "google_id": { - "example": "/m/07zmbvf", + "id": { + "example": "12", "type": "string" }, - "identifier": { - "example": "AAPL:NASDAQ", + "location": { + "example": "Kansas City", "type": "string" }, - "last_update_unix": { - "example": 1777077000, - "type": "integer" + "logo": { + "type": "string" }, "name": { - "example": "Apple Inc", + "example": "Chiefs", "type": "string" }, - "previous_close": { - "example": 236.35, - "type": "number" - }, - "price": { - "example": 255.65, - "type": "number" - }, - "ticker": { - "example": "AAPL", + "record": { "type": "string" }, - "timezone": { - "example": "America/New_York", + "short_display_name": { + "example": "Chiefs", "type": "string" }, - "type": { - "example": "stock", + "standing_summary": { "type": "string" - } - }, - "type": "object" - }, - "finance.Investment": { - "properties": { - "balance_sheet": { - "description": "The balance sheet data.", - "items": { - "$ref": "#/definitions/finance.BalanceSheet" - }, - "type": "array" }, - "cash_flow": { - "description": "The cash flow data.", - "items": { - "$ref": "#/definitions/finance.CashFlow" - }, - "type": "array" - }, - "income_statement": { - "description": "The income statement data.", - "items": { - "$ref": "#/definitions/finance.IncomeStatement" - }, - "type": "array" + "uid": { + "type": "string" } }, "type": "object" }, - "finance.KeyStats": { + "espn.TeamRef": { "properties": { - "avg_volume": { - "description": "The average trading volume.", - "example": 1510000, - "type": "integer" - }, - "climate_change_score": { - "description": "The climate change score of the company.", - "example": "B", + "abbreviation": { + "example": "KC", "type": "string" }, - "currency": { - "description": "The currency of the stock price.", - "example": "EUR", + "alternate_color": { "type": "string" }, - "day_range": { - "allOf": [ - { - "$ref": "#/definitions/finance.Range" - } - ], - "description": "The day's price range." - }, - "dividend_yield": { - "description": "The dividend yield percentage.", - "example": 0.0092, - "type": "number" - }, - "market_cap": { - "description": "The market capitalization of the company.", - "example": 291570000000, - "type": "integer" - }, - "pe_ratio": { - "description": "The price-to-earnings ratio.", - "example": 99.95, - "type": "number" - }, - "previous_close": { - "description": "The previous closing price of the stock.", - "example": 236.35, - "type": "number" - }, - "primary_exchange": { - "description": "The primary exchange where the stock is listed.", - "example": "ETR", + "color": { "type": "string" }, - "tags": { - "description": "Tags describing the stock.", - "example": [ - "[\"Stock\"", - " \"DE listed security\"", - " \"DE headquartered\"]" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "year_range": { - "allOf": [ - { - "$ref": "#/definitions/finance.Range" - } - ], - "description": "The year's price range." - } - }, - "type": "object" - }, - "finance.MarketMoversResponse": { - "properties": { - "categories": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "count": { - "example": 20, - "type": "integer" - }, - "items": { - "items": { - "$ref": "#/definitions/finance.Instrument" - }, - "type": "array" + "display_name": { + "example": "Kansas City Chiefs", + "type": "string" }, - "offset": { - "example": 0, - "type": "integer" - } - }, - "type": "object" - }, - "finance.News": { - "properties": { - "source": { - "description": "The source of the news.", - "example": "Reuters", + "id": { + "example": "12", "type": "string" }, - "time": { - "description": "The publication time of the news.", - "example": "2024-12-27T09:03:00Z", + "location": { + "example": "Kansas City", "type": "string" }, - "title": { - "description": "The title of the news article.", - "example": "SAP Announces Q3 Earnings", + "logo": { "type": "string" }, - "url": { - "description": "The URL to the news article.", - "example": "https://www.reuters.com/article/sap-q3", + "name": { + "example": "Chiefs", "type": "string" - } - }, - "type": "object" - }, - "finance.PriceChange": { - "properties": { - "change": { - "example": -3.37, - "type": "number" }, - "change_percent": { - "example": -1.3, - "type": "number" + "short_display_name": { + "example": "Chiefs", + "type": "string" }, - "price": { - "example": 255.65, - "type": "number" + "uid": { + "type": "string" } }, "type": "object" }, - "finance.QuoteResp": { + "espn.TeamResponse": { "properties": { - "about": { - "allOf": [ - { - "$ref": "#/definitions/finance.About" - } - ], - "description": "Information about the company." - }, - "investment": { - "allOf": [ - { - "$ref": "#/definitions/finance.Investment" - } - ], - "description": "The investment-related data." - }, - "key_stats": { - "allOf": [ - { - "$ref": "#/definitions/finance.KeyStats" - } - ], - "description": "The key statistics about the stock." - }, - "news": { - "description": "The news related to the stock/company.", - "items": { - "$ref": "#/definitions/finance.News" - }, - "type": "array" + "fetched_at": { + "type": "string" }, - "tickers": { - "description": "Historical ticker data.", - "items": { - "$ref": "#/definitions/finance.Ticker" - }, - "type": "array" + "league": { + "type": "string" }, - "title": { - "description": "The title or name of the stock/company.", - "example": "SAP SE", + "source_url": { "type": "string" - } - }, - "type": "object" - }, - "finance.Range": { - "properties": { - "from": { - "description": "The lower bound of the range.", - "example": 237.95, - "type": "number" }, - "to": { - "description": "The upper bound of the range.", - "example": 241.4, - "type": "number" - } - }, - "type": "object" - }, - "finance.RelatedResponse": { - "properties": { - "instrument": { - "$ref": "#/definitions/finance.Instrument" + "sport": { + "type": "string" }, - "items": { - "items": { - "$ref": "#/definitions/finance.Instrument" - }, - "type": "array" + "team": { + "$ref": "#/definitions/espn.TeamDetail" } }, "type": "object" }, - "finance.StockData": { + "espn.TeamsResponse": { "properties": { - "change": { - "description": "The absolute change in the stock price compared to the previous close.", - "example": -3.369995, - "type": "number" - }, - "company_name": { - "description": "The name of the company associated with the stock ticker.", - "example": "Apple Inc", - "type": "string" + "count": { + "example": 32, + "type": "integer" }, - "currency": { - "description": "The currency in which the stock price is denominated.", - "example": "USD", + "fetched_at": { "type": "string" }, - "exchange": { - "description": "The stock exchange where the stock is listed.", - "example": "NASDAQ", + "league": { "type": "string" }, - "percentage": { - "description": "The percentage change in the stock price compared to the previous close.", - "example": -1.301056, - "type": "number" - }, - "price": { - "description": "The current price of the stock.", - "example": 255.65, - "type": "number" - }, - "ticker": { - "description": "The stock ticker symbol.", - "example": "AAPL", + "source_url": { "type": "string" - } - }, - "type": "object" - }, - "finance.Ticker": { - "properties": { - "price": { - "description": "The price at the given time.", - "example": 239.5, - "type": "number" }, - "time": { - "description": "The time of the ticker record.", - "example": "2024-12-27T09:03:00Z", + "sport": { "type": "string" }, - "volume": { - "description": "The trading volume at the given time.", - "example": 131032, - "type": "integer" - } - }, - "type": "object" - }, - "finance.TopStocksResponse": { - "properties": { - "items": { + "teams": { "items": { - "$ref": "#/definitions/finance.Instrument" + "$ref": "#/definitions/espn.TeamRef" }, "type": "array" - }, - "metric": { - "example": 6, - "type": "integer" - }, - "page": { - "example": 1, - "type": "integer" } }, "type": "object" }, - "finance.articlesResponseDoc": { + "espn.athleteResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "items": { - "$ref": "#/definitions/finance.FinanceArticle" - }, - "type": "array" + "$ref": "#/definitions/espn.AthleteResponse" }, "msg": { "example": "OK", @@ -12008,14 +12742,14 @@ }, "type": "object" }, - "finance.categoryNewsResponseDoc": { + "espn.gameSummaryResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/finance.CategoryNewsResponse" + "$ref": "#/definitions/espn.GameSummaryResponse" }, "msg": { "example": "OK", @@ -12024,14 +12758,14 @@ }, "type": "object" }, - "finance.categoryStocksResponseDoc": { + "espn.newsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/finance.CategoryStocksResponse" + "$ref": "#/definitions/espn.NewsResponse" }, "msg": { "example": "OK", @@ -12040,14 +12774,14 @@ }, "type": "object" }, - "finance.chartResponseDoc": { + "espn.rankingsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/finance.ChartResponse" + "$ref": "#/definitions/espn.RankingsResponse" }, "msg": { "example": "OK", @@ -12056,14 +12790,14 @@ }, "type": "object" }, - "finance.classificationResponseDoc": { + "espn.rosterResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/finance.ClassificationResponse" + "$ref": "#/definitions/espn.RosterResponse" }, "msg": { "example": "OK", @@ -12072,14 +12806,14 @@ }, "type": "object" }, - "finance.companyResponseDoc": { + "espn.scoreboardResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/finance.CompanyInfo" + "$ref": "#/definitions/espn.ScoreboardResponse" }, "msg": { "example": "OK", @@ -12088,14 +12822,14 @@ }, "type": "object" }, - "finance.contextResponseDoc": { + "espn.standingsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/finance.ContextResponse" + "$ref": "#/definitions/espn.StandingsResponse" }, "msg": { "example": "OK", @@ -12104,14 +12838,14 @@ }, "type": "object" }, - "finance.earningsResponseDoc": { + "espn.teamResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/finance.EarningsCalendarResponse" + "$ref": "#/definitions/espn.TeamResponse" }, "msg": { "example": "OK", @@ -12120,14 +12854,14 @@ }, "type": "object" }, - "finance.financialsResponseDoc": { + "espn.teamsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/finance.FinancialsResponse" + "$ref": "#/definitions/espn.TeamsResponse" }, "msg": { "example": "OK", @@ -12136,881 +12870,970 @@ }, "type": "object" }, - "finance.headlineResponseDoc": { + "finance.About": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/finance.HeadlineResponse" + "about": { + "description": "Information about the company.", + "example": "SAP SE is a European multinational software company based in Walldorf, Baden-Württemberg, Germany...", + "type": "string" }, - "msg": { - "example": "OK", + "ceo": { + "description": "The CEO of the company.", + "example": "Christian Klein", "type": "string" - } - }, - "type": "object" - }, - "finance.instrumentsResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "items": { - "$ref": "#/definitions/finance.Instrument" - }, - "type": "array" + "employees": { + "description": "The number of employees.", + "example": 107583, + "type": "integer" }, - "msg": { - "example": "OK", + "founded": { + "description": "The founding date of the company.", + "example": "1972-04-01T00:00:00Z", "type": "string" - } - }, - "type": "object" - }, - "finance.marketMoversResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/finance.MarketMoversResponse" + "headquarters": { + "description": "The headquarters of the company.", + "example": "Walldorf, Baden-Württemberg, Germany", + "type": "string" }, - "msg": { - "example": "OK", + "website": { + "description": "The company's website.", + "example": "https://www.sap.com/", "type": "string" } }, "type": "object" }, - "finance.quoteResponseDoc": { + "finance.BalanceSheet": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/finance.QuoteResp" + "cash_and_short_term_change_yy": { + "description": "Year-over-year change in cash and short-term investments (%)", + "example": 5.87, + "type": "number" }, - "msg": { - "example": "OK", - "type": "string" - } - }, - "type": "object" - }, - "finance.relatedResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" + "cash_and_short_term_investments": { + "description": "Cash and short-term investments in USD", + "example": 65170000000, + "type": "number" }, - "data": { - "$ref": "#/definitions/finance.RelatedResponse" + "price_to_book": { + "description": "Price to book ratio", + "example": 67.71, + "type": "number" }, - "msg": { - "example": "OK", - "type": "string" - } - }, - "type": "object" - }, - "finance.searchResponseDoc": { - "properties": { - "code": { - "example": 200, + "quarter": { + "description": "The fiscal quarter", + "example": 4, "type": "integer" }, - "data": { - "items": { - "$ref": "#/definitions/finance.StockData" - }, - "type": "array" + "return_on_assets": { + "description": "Return on assets (%)", + "example": 21.24, + "type": "number" }, - "msg": { - "example": "OK", - "type": "string" - } - }, - "type": "object" - }, - "finance.tickerResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" + "return_on_capital": { + "description": "Return on capital (%)", + "example": 43.01, + "type": "number" }, - "data": { - "items": { - "$ref": "#/definitions/finance.Ticker" - }, - "type": "array" + "shares_outstanding": { + "description": "Shares outstanding", + "example": 15120000000, + "type": "number" }, - "msg": { - "example": "OK", - "type": "string" - } - }, - "type": "object" - }, - "finance.topStocksResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" + "total_assets": { + "description": "Total assets in USD", + "example": 364980000000, + "type": "number" }, - "data": { - "$ref": "#/definitions/finance.TopStocksResponse" + "total_assets_change_yy": { + "description": "Year-over-year change in total assets (%)", + "example": 3.52, + "type": "number" }, - "msg": { - "example": "OK", - "type": "string" + "total_equity": { + "description": "Total equity in USD", + "example": 56950000000, + "type": "number" + }, + "total_liabilities": { + "description": "Total liabilities in USD", + "example": 308030000000, + "type": "number" + }, + "total_liabilities_change_yy": { + "description": "Year-over-year change in total liabilities (%)", + "example": 6.06, + "type": "number" + }, + "year": { + "description": "The fiscal year", + "example": 2024, + "type": "integer" } }, "type": "object" }, - "geocoding.Address": { + "finance.CashFlow": { "properties": { - "ISO3166-2-lvl4": { - "example": "US-NY", - "type": "string" - }, - "ISO3166-2-lvl6": { - "type": "string" - }, - "city": { - "example": "New York", - "type": "string" + "cash_from_financing": { + "description": "Cash from financing in USD", + "example": -24950000000, + "type": "number" }, - "country": { - "example": "United States", - "type": "string" + "cash_from_financing_change_yy": { + "description": "Year-over-year change in cash from financing (%)", + "example": -7.75, + "type": "number" }, - "country_code": { - "example": "us", - "type": "string" + "cash_from_investing": { + "description": "Cash from investing in USD", + "example": 1450000000, + "type": "number" }, - "county": { - "example": "New York County", - "type": "string" + "cash_from_investing_change_yy": { + "description": "Year-over-year change in cash from investing (%)", + "example": -39.64, + "type": "number" }, - "house_number": { - "example": "350", - "type": "string" + "cash_from_operations": { + "description": "Cash from operations in USD", + "example": 26810000000, + "type": "number" }, - "neighbourhood": { - "example": "Koreatown", - "type": "string" + "cash_from_operations_change_yy": { + "description": "Year-over-year change in cash from operations (%)", + "example": 24.14, + "type": "number" }, - "office": { - "example": "Empire State Building", - "type": "string" + "free_cash_flow": { + "description": "Free cash flow in USD", + "example": 34540000000, + "type": "number" }, - "postcode": { - "example": "10118", - "type": "string" + "free_cash_flow_change_yy": { + "description": "Year-over-year change in free cash flow (%)", + "example": 180.6, + "type": "number" }, - "road": { - "example": "5th Avenue", - "type": "string" + "net_change_in_cash": { + "description": "Net change in cash in USD", + "example": 3310000000, + "type": "number" }, - "state": { - "example": "New York", - "type": "string" + "net_change_in_cash_change_yy": { + "description": "Year-over-year change in net change in cash (%)", + "example": 294.28, + "type": "number" }, - "state_district": { - "type": "string" + "net_income": { + "description": "Net income in USD", + "example": 14740000000, + "type": "number" }, - "suburb": { - "example": "Manhattan", - "type": "string" + "net_income_change_yy": { + "description": "Year-over-year change in net income (%)", + "example": -35.81, + "type": "number" }, - "town": { - "type": "string" + "quarter": { + "description": "The fiscal quarter", + "example": 4, + "type": "integer" }, - "village": { - "type": "string" + "year": { + "description": "The fiscal year", + "example": 2024, + "type": "integer" } }, "type": "object" }, - "geocoding.LookupResponse": { + "finance.CategoryNewsResponse": { "properties": { - "query": { - "example": "W34633854,N123", + "category": { + "example": "18", "type": "string" }, - "results": { + "items": { "items": { - "$ref": "#/definitions/geocoding.Place" + "$ref": "#/definitions/finance.FinanceArticle" }, "type": "array" + }, + "offset": { + "example": 0, + "type": "integer" } }, "type": "object" }, - "geocoding.Place": { + "finance.CategoryStocksResponse": { "properties": { - "address": { - "$ref": "#/definitions/geocoding.Address" - }, - "addresstype": { - "example": "office", + "category": { + "example": "18", "type": "string" }, - "boundingbox": { - "example": [ - "40.7479255", - "40.7489585", - "-73.9865012", - "-73.9848166" - ], + "items": { "items": { - "type": "string" + "$ref": "#/definitions/finance.Instrument" }, "type": "array" }, - "category": { - "example": "office", - "type": "string" - }, - "display_name": { - "example": "Empire State Building, 350, 5th Avenue, New York, United States", - "type": "string" - }, - "extratags": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "importance": { - "example": 0.5803438355141769, - "type": "number" - }, - "lat": { - "example": "40.7484421", - "type": "string" - }, - "licence": { - "example": "Data © OpenStreetMap contributors, ODbL 1.0. http://osm.org/copyright", - "type": "string" - }, - "lon": { - "example": "-73.9856589", - "type": "string" - }, - "name": { - "example": "Empire State Building", - "type": "string" - }, - "namedetails": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "osm_id": { - "example": 34633854, - "type": "integer" - }, - "osm_type": { - "example": "way", - "type": "string" - }, - "place_id": { - "example": 358220252, - "type": "integer" - }, - "place_rank": { - "example": 30, + "offset": { + "example": 0, "type": "integer" - }, - "type": { - "example": "yes", - "type": "string" } }, "type": "object" }, - "geocoding.SearchResponse": { + "finance.ChartResponse": { "properties": { - "query": { - "example": "Empire State Building", - "type": "string" + "instrument": { + "$ref": "#/definitions/finance.Instrument" }, - "results": { + "points": { "items": { - "$ref": "#/definitions/geocoding.Place" + "$ref": "#/definitions/finance.Ticker" }, "type": "array" - } - }, - "type": "object" - }, - "geocoding.lookupResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/geocoding.LookupResponse" + "previous_close": { + "example": 236.35, + "type": "number" }, - "msg": { - "example": "OK", + "window": { + "example": "1m", "type": "string" } }, "type": "object" }, - "geocoding.reverseResponseDoc": { + "finance.ClassificationResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/geocoding.Place" + "categories": { + "items": { + "type": "string" + }, + "type": "array" }, - "msg": { - "example": "OK", - "type": "string" + "instrument": { + "$ref": "#/definitions/finance.Instrument" } }, "type": "object" }, - "geocoding.searchResponseDoc": { + "finance.CompanyInfo": { "properties": { - "code": { - "example": 200, + "ceo": { + "example": "Tim Cook", + "type": "string" + }, + "description": { + "type": "string" + }, + "employees": { + "example": 166000, "type": "integer" }, - "data": { - "$ref": "#/definitions/geocoding.SearchResponse" + "fifty_two_week_high": { + "example": 288.61, + "type": "number" }, - "msg": { - "example": "OK", - "type": "string" - } - }, - "type": "object" - }, - "google.JobItem": { - "properties": { - "company": { - "type": "string" + "fifty_two_week_low": { + "example": 169.21, + "type": "number" }, - "employment": { + "headquarters": { + "example": "Cupertino, CA, US", "type": "string" }, - "location": { - "type": "string" + "high": { + "example": 272.4, + "type": "number" }, - "posted_at": { - "type": "string" + "low": { + "example": 269.1, + "type": "number" }, - "snippet": { - "type": "string" + "market_cap": { + "example": 4010000000000, + "type": "number" }, - "source": { - "type": "string" + "open": { + "example": 270.9, + "type": "number" }, - "title": { - "type": "string" + "pe_ratio": { + "example": 34.56, + "type": "number" }, - "url": { + "sector": { + "example": "Technology", "type": "string" + }, + "volume": { + "example": 41339643, + "type": "integer" } }, "type": "object" }, - "google.JobsOption": { + "finance.ContextResponse": { "properties": { - "location": { - "example": "San Francisco, CA", - "type": "string" - }, - "page": { - "example": 1, - "type": "integer" + "items": { + "items": { + "$ref": "#/definitions/finance.Instrument" + }, + "type": "array" }, "query": { - "example": "software engineer", + "example": "apple", "type": "string" } }, - "required": [ - "query" - ], "type": "object" }, - "google.JobsResponse": { + "finance.EarningsCalendarResponse": { "properties": { - "location": { - "example": "San Francisco, CA", - "type": "string" - }, - "page": { - "example": 1, - "type": "integer" - }, - "query": { - "example": "software engineer", - "type": "string" - }, - "results": { + "items": { "items": { - "$ref": "#/definitions/google.JobItem" + "$ref": "#/definitions/finance.EarningsEvent" }, "type": "array" } }, "type": "object" }, - "google.KgAttrItem": { + "finance.EarningsEvent": { "properties": { - "id": { - "description": "Attribute ID", - "example": "kc:/computer/software:developer", + "company_name": { "type": "string" }, - "label": { - "description": "Attribute label", - "example": "Developer", + "conference_phone": { "type": "string" }, - "value": { - "description": "Attribute value", - "example": "OpenAI, Microsoft", + "conference_url": { + "type": "string" + }, + "event_time": { + "type": "string" + }, + "event_unix": { + "type": "integer" + }, + "fiscal_period": { "type": "string" + }, + "instrument": { + "$ref": "#/definitions/finance.Instrument" } }, "type": "object" }, - "google.KnowledgeGraph": { + "finance.FinanceArticle": { "properties": { - "attributes": { + "published_at": { + "type": "string" + }, + "published_unix": { + "example": 1777077000, + "type": "integer" + }, + "related": { "items": { - "$ref": "#/definitions/google.KgAttrItem" + "$ref": "#/definitions/finance.Instrument" }, "type": "array" }, - "description": { - "description": "Description", - "example": "ChatGPT is a generative artificial intelligence chatbot developed by OpenAI.", + "source": { + "example": "Reuters", "type": "string" }, - "sub_title": { - "description": "Subtitle of the knowledge graph item", - "example": "Software", + "thumbnail_url": { "type": "string" }, "title": { - "description": "Title of the knowledge graph item", - "example": "ChatGPT", + "example": "Apple announces an update", "type": "string" }, - "wikipedia_link": { - "description": "Wikipedia link", - "example": "https://en.wikipedia.org/wiki/ChatGPT", + "url": { + "example": "https://example.com/news", "type": "string" } }, "type": "object" }, - "google.MapSearchOption": { + "finance.FinancialPeriod": { "properties": { - "country": { - "example": "us", - "type": "string" + "capital_expenditure": { + "type": "number" }, - "keyword": { - "example": "hotel san francisco", - "type": "string" + "ebitda": { + "type": "number" }, - "language": { - "example": "en", - "type": "string" - } - }, - "type": "object" - }, - "google.NewsResponse": { - "properties": { - "pagination": { - "$ref": "#/definitions/google.VerticalPagination" + "eps": { + "type": "number" }, - "results": { - "items": { - "$ref": "#/definitions/google.NewsResult" - }, - "type": "array" - } - }, - "type": "object" - }, - "google.NewsResult": { - "properties": { - "age": { - "example": "2 hours ago", - "type": "string" + "eps_diluted": { + "type": "number" }, - "description": { - "example": "OpenAI announced an update.", - "type": "string" + "free_cash_flow": { + "type": "number" }, - "position": { - "example": 1, - "type": "integer" + "net_income": { + "type": "number" }, - "source": { - "example": "Example News", - "type": "string" + "operating_cash_flow": { + "type": "number" }, - "thumbnail": { - "example": "https://example.com/thumb.jpg", - "type": "string" + "operating_income": { + "type": "number" }, - "title": { - "example": "OpenAI announces update", - "type": "string" + "operating_margin": { + "type": "number" }, - "url": { - "example": "https://example.com/openai-news", - "type": "string" - } - }, - "type": "object" - }, - "google.PeopleAlsoAskItem": { - "properties": { - "answer": { - "description": "Answer to the question", - "example": "ChatGPT is a chatbot developed by OpenAI.", - "type": "string" + "pe_ratio": { + "type": "number" }, - "date": { - "description": "Date of the response", - "example": "2024-09-30", + "period": { + "example": "annual", "type": "string" }, - "link": { - "description": "Link to the source", - "example": "https://openai.com/chatgpt/", + "period_end": { "type": "string" }, - "question": { - "description": "Question from \"People Also Ask\"", - "example": "What is ChatGPT?", - "type": "string" + "profit_margin": { + "type": "number" }, - "title": { - "description": "Title of the source", - "example": "ChatGPT", - "type": "string" + "revenue": { + "type": "number" + }, + "revenue_growth_yoy": { + "type": "number" + }, + "shares_outstanding": { + "type": "number" + }, + "total_assets": { + "type": "number" + }, + "total_equity": { + "type": "number" + }, + "total_liabilities": { + "type": "number" } }, "type": "object" }, - "google.Place": { + "finance.FinancialsResponse": { "properties": { - "address": { - "example": "250 Beach St, San Francisco, CA 94133", - "type": "string" - }, - "amenities": { - "example": [ - "['Free Wi-Fi'", - " 'Air-conditioned'", - " 'Wi-Fi'", - " 'Parking']" - ], + "annual": { "items": { - "type": "string" + "$ref": "#/definitions/finance.FinancialPeriod" }, "type": "array" }, - "category": { - "example": [ - "['hotel']" - ], + "currency": { + "example": "USD", + "type": "string" + }, + "quarterly": { "items": { - "type": "string" + "$ref": "#/definitions/finance.FinancialPeriod" }, "type": "array" + } + }, + "type": "object" + }, + "finance.HeadlineResponse": { + "properties": { + "article": { + "$ref": "#/definitions/finance.FinanceArticle" + } + }, + "type": "object" + }, + "finance.IncomeStatement": { + "properties": { + "earnings_per_share": { + "description": "Earnings per share in USD", + "example": 1.64, + "type": "number" }, - "description": { - "example": "A 3-minute walk from Pier 41 in the Fisherman's Wharf district...", - "type": "string" + "earnings_per_share_change_yy": { + "description": "Year-over-year change in earnings per share (%)", + "example": 12.33, + "type": "number" }, - "image": { - "example": "https://lh5.googleusercontent.com/p/AF1QipP_O55x7gOwR3AaM09CVmzEUude9wMHMPwc--yp", - "type": "string" + "ebitda": { + "description": "EBITDA (Earnings Before Interest, Taxes, Depreciation, and Amortization) in USD", + "example": 32502000000, + "type": "number" }, - "latitude": { - "example": 37.8077617, + "ebitda_change_yy": { + "description": "Year-over-year change in EBITDA (%)", + "example": 9.72, "type": "number" }, - "locations": { - "example": [ - "['San Francisco'", - " 'Los Angeles']" - ], - "items": { - "type": "string" - }, - "type": "array" + "effective_tax_rate": { + "description": "Effective tax rate (%)", + "example": 50.23, + "type": "number" }, - "longitude": { - "example": -122.4132228, + "net_income": { + "description": "Net income in USD", + "example": 14740000000, "type": "number" }, - "name": { - "example": "Hotel Zephyr San Francisco", - "type": "string" + "net_income_change_yy": { + "description": "Year-over-year change in net income (%)", + "example": -35.81, + "type": "number" }, - "phone": { - "example": "14156176565", - "type": "string" + "net_profit_margin": { + "description": "Net profit margin (%)", + "example": 15.52, + "type": "number" }, - "place_id": { - "example": "ChIJ99URUeOAhYAR0J5ZUxTesDQ", - "type": "string" + "net_profit_margin_change_yy": { + "description": "Year-over-year change in net profit margin (%)", + "example": -39.49, + "type": "number" }, - "rating": { - "description": "Rating is the aggregate Google rating (1.0–5.0), or null when the place has no\naggregate rating on Google (Google never assigns a 0.x average, so 0 always meant\n\"unrated\"). A pointer so unrated serializes as `rating: null`, not a misleading 0.", - "example": 4.1, - "type": "number", - "x-nullable": true + "operating_expense": { + "description": "Total operating expense in USD", + "example": 14736000000, + "type": "number" }, - "review_count": { - "example": 3213, + "operating_expense_change_yy": { + "description": "Year-over-year change in operating expense (%)", + "example": 6.17, + "type": "number" + }, + "quarter": { + "description": "The fiscal quarter", + "example": 4, "type": "integer" }, - "url": { - "example": "https://www.google.com/maps/place/?q=place_id:ChIJ99URUeOAhYAR0J5ZUxTesDQ", - "type": "string" + "revenue": { + "description": "Total revenue in USD", + "example": 94930000000, + "type": "number" }, - "website": { - "example": "https://www.hotelzephyrsf.com/", - "type": "string" + "revenue_change_yy": { + "description": "Year-over-year change in revenue (%)", + "example": 6.07, + "type": "number" + }, + "year": { + "description": "The fiscal year", + "example": 2024, + "type": "integer" } }, "type": "object" }, - "google.SearchItem": { + "finance.Instrument": { "properties": { - "Snippet": { - "example": "Never run out of your favorite coffees, teas and powders again with our auto-delivery subscription. Select how often your products arrive, pause and cancel ...", - "type": "string" + "after_hours": { + "$ref": "#/definitions/finance.PriceChange" }, - "icon": { - "type": "string" + "change": { + "example": -3.37, + "type": "number" }, - "link": { - "example": "https://www.coffeebean.com/", - "type": "string" + "change_percent": { + "example": -1.3, + "type": "number" }, - "position": { - "example": 1, - "type": "integer" + "country": { + "example": "US", + "type": "string" }, - "time": { - "example": "7 hours ago", + "currency": { + "example": "USD", "type": "string" }, - "title": { - "example": "Home | The Coffee Bean & Tea Leaf", + "exchange": { + "example": "NASDAQ", "type": "string" }, - "website_name": { - "example": "OpenAI", + "google_id": { + "example": "/m/07zmbvf", "type": "string" - } - }, - "type": "object" - }, - "google.SearchOption": { - "properties": { - "country": { - "description": "Country code", - "example": "us", + }, + "identifier": { + "example": "AAPL:NASDAQ", "type": "string" }, - "keyword": { - "example": "chatgpt", + "last_update_unix": { + "example": 1777077000, + "type": "integer" + }, + "name": { + "example": "Apple Inc", "type": "string" }, - "language": { - "description": "language code", - "example": "en", + "previous_close": { + "example": 236.35, + "type": "number" + }, + "price": { + "example": 255.65, + "type": "number" + }, + "ticker": { + "example": "AAPL", "type": "string" }, - "limit": { - "description": "Number of items, from 10 to 100, inclusive", - "example": 10, - "type": "integer" + "timezone": { + "example": "America/New_York", + "type": "string" }, - "page": { - "example": 1, - "type": "integer" + "type": { + "example": "stock", + "type": "string" } }, - "required": [ - "country", - "keyword", - "language" - ], "type": "object" }, - "google.SearchResp": { + "finance.Investment": { "properties": { - "knowledge_graph": { - "$ref": "#/definitions/google.KnowledgeGraph" - }, - "people_also_ask": { - "items": { - "$ref": "#/definitions/google.PeopleAlsoAskItem" - }, - "type": "array" - }, - "people_also_search_for": { - "example": [ - "Gemini", - " WhatsApp" - ], + "balance_sheet": { + "description": "The balance sheet data.", "items": { - "type": "string" + "$ref": "#/definitions/finance.BalanceSheet" }, "type": "array" }, - "related_searches": { - "example": [ - "What is ChatGPT?" - ], + "cash_flow": { + "description": "The cash flow data.", "items": { - "type": "string" + "$ref": "#/definitions/finance.CashFlow" }, "type": "array" }, - "result": { + "income_statement": { + "description": "The income statement data.", "items": { - "$ref": "#/definitions/google.SearchItem" + "$ref": "#/definitions/finance.IncomeStatement" }, "type": "array" } }, "type": "object" }, - "google.SuggestResponse": { + "finance.KeyStats": { "properties": { - "query": { - "example": "openai", + "avg_volume": { + "description": "The average trading volume.", + "example": 1510000, + "type": "integer" + }, + "climate_change_score": { + "description": "The climate change score of the company.", + "example": "B", "type": "string" }, - "suggestions": { + "currency": { + "description": "The currency of the stock price.", + "example": "EUR", + "type": "string" + }, + "day_range": { + "allOf": [ + { + "$ref": "#/definitions/finance.Range" + } + ], + "description": "The day's price range." + }, + "dividend_yield": { + "description": "The dividend yield percentage.", + "example": 0.0092, + "type": "number" + }, + "market_cap": { + "description": "The market capitalization of the company.", + "example": 291570000000, + "type": "integer" + }, + "pe_ratio": { + "description": "The price-to-earnings ratio.", + "example": 99.95, + "type": "number" + }, + "previous_close": { + "description": "The previous closing price of the stock.", + "example": 236.35, + "type": "number" + }, + "primary_exchange": { + "description": "The primary exchange where the stock is listed.", + "example": "ETR", + "type": "string" + }, + "tags": { + "description": "Tags describing the stock.", + "example": [ + "[\"Stock\"", + " \"DE listed security\"", + " \"DE headquartered\"]" + ], "items": { - "$ref": "#/definitions/google.SuggestionResult" + "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "google.SuggestionResult": { - "properties": { - "position": { - "example": 1, - "type": "integer" }, - "query": { - "example": "openai api", - "type": "string" + "year_range": { + "allOf": [ + { + "$ref": "#/definitions/finance.Range" + } + ], + "description": "The year's price range." } }, "type": "object" }, - "google.VerticalPagination": { + "finance.MarketMoversResponse": { "properties": { - "next_page": { - "example": 2, - "type": "integer" + "categories": { + "items": { + "type": "integer" + }, + "type": "array" }, - "page": { - "example": 1, + "count": { + "example": 20, "type": "integer" }, - "previous_page": { - "example": 1, + "items": { + "items": { + "$ref": "#/definitions/finance.Instrument" + }, + "type": "array" + }, + "offset": { + "example": 0, "type": "integer" } }, "type": "object" }, - "google.VideoResult": { + "finance.News": { "properties": { - "age": { - "example": "2 days ago", + "source": { + "description": "The source of the news.", + "example": "Reuters", "type": "string" }, - "description": { - "example": "Watch the OpenAI DevDay keynote.", + "time": { + "description": "The publication time of the news.", + "example": "2024-12-27T09:03:00Z", "type": "string" }, - "duration": { - "example": "45:12", + "title": { + "description": "The title of the news article.", + "example": "SAP Announces Q3 Earnings", "type": "string" }, - "platform": { - "example": "YouTube", + "url": { + "description": "The URL to the news article.", + "example": "https://www.reuters.com/article/sap-q3", "type": "string" + } + }, + "type": "object" + }, + "finance.PriceChange": { + "properties": { + "change": { + "example": -3.37, + "type": "number" }, - "position": { - "example": 1, - "type": "integer" + "change_percent": { + "example": -1.3, + "type": "number" }, - "thumbnail": { - "example": "https://example.com/thumb.jpg", - "type": "string" + "price": { + "example": 255.65, + "type": "number" + } + }, + "type": "object" + }, + "finance.QuoteResp": { + "properties": { + "about": { + "allOf": [ + { + "$ref": "#/definitions/finance.About" + } + ], + "description": "Information about the company." + }, + "investment": { + "allOf": [ + { + "$ref": "#/definitions/finance.Investment" + } + ], + "description": "The investment-related data." + }, + "key_stats": { + "allOf": [ + { + "$ref": "#/definitions/finance.KeyStats" + } + ], + "description": "The key statistics about the stock." + }, + "news": { + "description": "The news related to the stock/company.", + "items": { + "$ref": "#/definitions/finance.News" + }, + "type": "array" + }, + "tickers": { + "description": "Historical ticker data.", + "items": { + "$ref": "#/definitions/finance.Ticker" + }, + "type": "array" }, "title": { - "example": "OpenAI DevDay keynote - YouTube", + "description": "The title or name of the stock/company.", + "example": "SAP SE", "type": "string" + } + }, + "type": "object" + }, + "finance.Range": { + "properties": { + "from": { + "description": "The lower bound of the range.", + "example": 237.95, + "type": "number" }, - "url": { - "example": "https://www.youtube.com/watch?v=openai-devday", + "to": { + "description": "The upper bound of the range.", + "example": 241.4, + "type": "number" + } + }, + "type": "object" + }, + "finance.RelatedResponse": { + "properties": { + "instrument": { + "$ref": "#/definitions/finance.Instrument" + }, + "items": { + "items": { + "$ref": "#/definitions/finance.Instrument" + }, + "type": "array" + } + }, + "type": "object" + }, + "finance.StockData": { + "properties": { + "change": { + "description": "The absolute change in the stock price compared to the previous close.", + "example": -3.369995, + "type": "number" + }, + "company_name": { + "description": "The name of the company associated with the stock ticker.", + "example": "Apple Inc", + "type": "string" + }, + "currency": { + "description": "The currency in which the stock price is denominated.", + "example": "USD", + "type": "string" + }, + "exchange": { + "description": "The stock exchange where the stock is listed.", + "example": "NASDAQ", + "type": "string" + }, + "percentage": { + "description": "The percentage change in the stock price compared to the previous close.", + "example": -1.301056, + "type": "number" + }, + "price": { + "description": "The current price of the stock.", + "example": 255.65, + "type": "number" + }, + "ticker": { + "description": "The stock ticker symbol.", + "example": "AAPL", "type": "string" } }, "type": "object" }, - "google.VideosResponse": { + "finance.Ticker": { "properties": { - "pagination": { - "$ref": "#/definitions/google.VerticalPagination" + "price": { + "description": "The price at the given time.", + "example": 239.5, + "type": "number" }, - "results": { + "time": { + "description": "The time of the ticker record.", + "example": "2024-12-27T09:03:00Z", + "type": "string" + }, + "volume": { + "description": "The trading volume at the given time.", + "example": 131032, + "type": "integer" + } + }, + "type": "object" + }, + "finance.TopStocksResponse": { + "properties": { + "items": { "items": { - "$ref": "#/definitions/google.VideoResult" + "$ref": "#/definitions/finance.Instrument" }, "type": "array" + }, + "metric": { + "example": 6, + "type": "integer" + }, + "page": { + "example": 1, + "type": "integer" } }, "type": "object" }, - "google.mapPlaceResponseDoc": { + "finance.articlesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/google.Place" + "items": { + "$ref": "#/definitions/finance.FinanceArticle" + }, + "type": "array" }, "msg": { "example": "OK", @@ -13019,17 +13842,14 @@ }, "type": "object" }, - "google.mapSearchResponseDoc": { + "finance.categoryNewsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "items": { - "$ref": "#/definitions/google.Place" - }, - "type": "array" + "$ref": "#/definitions/finance.CategoryNewsResponse" }, "msg": { "example": "OK", @@ -13038,14 +13858,14 @@ }, "type": "object" }, - "google.newsResponseDoc": { + "finance.categoryStocksResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/google.NewsResponse" + "$ref": "#/definitions/finance.CategoryStocksResponse" }, "msg": { "example": "OK", @@ -13054,14 +13874,14 @@ }, "type": "object" }, - "google.searchResponseDoc": { + "finance.chartResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/google.SearchResp" + "$ref": "#/definitions/finance.ChartResponse" }, "msg": { "example": "OK", @@ -13070,14 +13890,14 @@ }, "type": "object" }, - "google.suggestResponseDoc": { + "finance.classificationResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/google.SuggestResponse" + "$ref": "#/definitions/finance.ClassificationResponse" }, "msg": { "example": "OK", @@ -13086,14 +13906,14 @@ }, "type": "object" }, - "google.videosResponseDoc": { + "finance.companyResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/google.VideosResponse" + "$ref": "#/definitions/finance.CompanyInfo" }, "msg": { "example": "OK", @@ -13102,266 +13922,378 @@ }, "type": "object" }, - "googleplay.App": { + "finance.contextResponseDoc": { "properties": { - "ad_supported": { - "example": false, - "type": "boolean" + "code": { + "example": 200, + "type": "integer" }, - "android_max_version": { - "example": "15", + "data": { + "$ref": "#/definitions/finance.ContextResponse" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "finance.earningsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "android_version": { - "example": "8.0", + "data": { + "$ref": "#/definitions/finance.EarningsCalendarResponse" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "finance.financialsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "android_version_text": { - "example": "8.0 and up", + "data": { + "$ref": "#/definitions/finance.FinancialsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "finance.headlineResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/finance.HeadlineResponse" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "finance.instrumentsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "app_id": { - "example": "com.openai.chatgpt", + "data": { + "items": { + "$ref": "#/definitions/finance.Instrument" + }, + "type": "array" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "finance.marketMoversResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/finance.MarketMoversResponse" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "finance.quoteResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "available": { - "example": true, - "type": "boolean" + "data": { + "$ref": "#/definitions/finance.QuoteResp" }, - "categories": { + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "finance.relatedResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/finance.RelatedResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "finance.searchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { "items": { - "$ref": "#/definitions/googleplay.Category" + "$ref": "#/definitions/finance.StockData" }, "type": "array" }, - "comments": { - "example": [ - "[\"Great app\"", - "\"Very useful\"]" - ], + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "finance.tickerResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { "items": { - "type": "string" + "$ref": "#/definitions/finance.Ticker" }, "type": "array" }, - "content_rating": { - "example": "Teen", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "finance.topStocksResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "content_rating_description": { - "example": "Users Interact, In-App Purchases", + "data": { + "$ref": "#/definitions/finance.TopStocksResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "geocoding.Address": { + "properties": { + "ISO3166-2-lvl4": { + "example": "US-NY", "type": "string" }, - "currency": { - "example": "USD", + "ISO3166-2-lvl6": { "type": "string" }, - "description": { - "example": "Introducing ChatGPT for Android: OpenAI's latest advancements at your fingertips.", + "city": { + "example": "New York", "type": "string" }, - "description_html": { - "example": "Introducing ChatGPT for Android: OpenAI's latest advancements at your fingertips.

This official app is free.", + "country": { + "example": "United States", "type": "string" }, - "developer": { - "example": "OpenAI", + "country_code": { + "example": "us", "type": "string" }, - "developer_address": { - "example": "1455 3RD St, San Francisco, CA 94158-2210, United States", + "county": { + "example": "New York County", "type": "string" }, - "developer_email": { - "example": "support@openai.com", + "house_number": { + "example": "350", "type": "string" }, - "developer_id": { - "example": "7577165439232992817", + "neighbourhood": { + "example": "Koreatown", "type": "string" }, - "developer_internal_id": { - "example": "7577165439232992817", + "office": { + "example": "Empire State Building", "type": "string" }, - "developer_legal_address": { - "example": "1455 3RD St, San Francisco, CA 94158-2210, United States", + "postcode": { + "example": "10118", "type": "string" }, - "developer_legal_email": { - "example": "support@openai.com", + "road": { + "example": "5th Avenue", "type": "string" }, - "developer_legal_name": { - "example": "OpenAI Opco, LLC", + "state": { + "example": "New York", "type": "string" }, - "developer_legal_phone_number": { - "example": "+1 415-231-2395", + "state_district": { "type": "string" }, - "developer_website": { - "example": "https://help.openai.com", + "suburb": { + "example": "Manhattan", "type": "string" }, - "discount_end_date": { - "example": "2026-03-31T23:59:59Z", + "town": { "type": "string" }, - "early_access_enabled": { - "example": false, - "type": "boolean" + "village": { + "type": "string" + } + }, + "type": "object" + }, + "geocoding.LookupResponse": { + "properties": { + "query": { + "example": "W34633854,N123", + "type": "string" }, - "features": { + "results": { "items": { - "$ref": "#/definitions/googleplay.Feature" + "$ref": "#/definitions/geocoding.Place" }, "type": "array" + } + }, + "type": "object" + }, + "geocoding.Place": { + "properties": { + "address": { + "$ref": "#/definitions/geocoding.Address" }, - "free": { - "example": true, - "type": "boolean" - }, - "genre": { - "example": "Productivity", + "addresstype": { + "example": "office", "type": "string" }, - "genre_id": { - "example": "PRODUCTIVITY", + "boundingbox": { + "example": [ + "40.7479255", + "40.7489585", + "-73.9865012", + "-73.9848166" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "category": { + "example": "office", "type": "string" }, - "header_image": { - "example": "https://play-lh.googleusercontent.com/sample-header-image", + "display_name": { + "example": "Empire State Building, 350, 5th Avenue, New York, United States", "type": "string" }, - "histogram": { + "extratags": { + "additionalProperties": { + "type": "string" + }, "type": "object" }, - "iap_range": { - "example": "$0.99 - $199.99 per item", - "type": "string" - }, - "icon": { - "example": "https://play-lh.googleusercontent.com/lmG9HlI0awHie0cyBieWXeNjpyXvHPwDBb8MNOVIyp0P8VEh95AiBHtUZSDVR3HLe3A", - "type": "string" - }, - "installs": { - "example": "100,000,000+", - "type": "string" - }, - "is_available_in_play_pass": { - "example": false, - "type": "boolean" - }, - "max_installs": { - "example": 500000000, - "type": "integer" - }, - "min_installs": { - "example": 100000000, - "type": "integer" - }, - "offers_iap": { - "example": true, - "type": "boolean" - }, - "original_price": { - "example": 4.99, - "type": "number" - }, - "preregister": { - "example": false, - "type": "boolean" - }, - "preview_video": { - "example": "https://play.google.com/preview/sample", - "type": "string" - }, - "price": { - "example": 0, + "importance": { + "example": 0.5803438355141769, "type": "number" }, - "price_text": { - "example": "Free", - "type": "string" - }, - "privacy_policy": { - "example": "https://openai.com/policies/privacy-policy", + "lat": { + "example": "40.7484421", "type": "string" }, - "ratings": { - "example": 40123456, - "type": "integer" - }, - "recent_changes": { - "example": "Bug fixes and performance improvements.", + "licence": { + "example": "Data © OpenStreetMap contributors, ODbL 1.0. http://osm.org/copyright", "type": "string" }, - "released": { - "example": "2023-07-19", + "lon": { + "example": "-73.9856589", "type": "string" }, - "reviews": { - "example": 1234567, - "type": "integer" - }, - "score": { - "example": 4.8, - "type": "number" - }, - "score_text": { - "example": "4.8", + "name": { + "example": "Empire State Building", "type": "string" }, - "screenshots": { - "example": [ - "[\"https://play-lh.googleusercontent.com/sample-screenshot-1\"", - "\"https://play-lh.googleusercontent.com/sample-screenshot-2\"]" - ], - "items": { + "namedetails": { + "additionalProperties": { "type": "string" }, - "type": "array" + "type": "object" }, - "summary": { - "example": "The official app by OpenAI", - "type": "string" + "osm_id": { + "example": 34633854, + "type": "integer" }, - "title": { - "example": "ChatGPT", + "osm_type": { + "example": "way", "type": "string" }, - "updated": { - "example": 1736899200, + "place_id": { + "example": 358220252, "type": "integer" }, - "url": { - "example": "https://play.google.com/store/apps/details?id=com.openai.chatgpt&hl=en&gl=us", - "type": "string" + "place_rank": { + "example": 30, + "type": "integer" }, - "version": { - "example": "1.2026.056", + "type": { + "example": "yes", "type": "string" - }, - "video": { - "example": "https://play.google.com/video/sample", + } + }, + "type": "object" + }, + "geocoding.SearchResponse": { + "properties": { + "query": { + "example": "Empire State Building", "type": "string" }, - "video_image": { - "example": "https://play-lh.googleusercontent.com/sample-video-cover", - "type": "string" + "results": { + "items": { + "$ref": "#/definitions/geocoding.Place" + }, + "type": "array" } }, "type": "object" }, - "googleplay.AppDetailsResponse": { + "geocoding.lookupResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/googleplay.App" + "$ref": "#/definitions/geocoding.LookupResponse" }, "msg": { "example": "OK", @@ -13370,1475 +14302,1106 @@ }, "type": "object" }, - "googleplay.Category": { + "geocoding.reverseResponseDoc": { "properties": { - "id": { - "example": "PRODUCTIVITY", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "name": { - "example": "Productivity", - "type": "string" - } - }, - "type": "object" - }, - "googleplay.DataSafetyEntry": { - "properties": { "data": { - "example": "Email address", - "type": "string" - }, - "optional": { - "example": false, - "type": "boolean" - }, - "purpose": { - "example": "Analytics", - "type": "string" + "$ref": "#/definitions/geocoding.Place" }, - "type": { - "example": "Personal info", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "googleplay.DataSafetyResult": { + "geocoding.searchResponseDoc": { "properties": { - "collected_data": { - "items": { - "$ref": "#/definitions/googleplay.DataSafetyEntry" - }, - "type": "array" - }, - "privacy_policy_url": { - "example": "https://openai.com/policies/privacy-policy", - "type": "string" - }, - "security_practices": { - "items": { - "$ref": "#/definitions/googleplay.SecurityPractice" - }, - "type": "array" + "code": { + "example": 200, + "type": "integer" }, - "shared_data": { - "items": { - "$ref": "#/definitions/googleplay.DataSafetyEntry" - }, - "type": "array" - } - }, - "type": "object" - }, - "googleplay.Feature": { - "properties": { - "description": { - "example": "Get answers, writing help, and image generation.", - "type": "string" + "data": { + "$ref": "#/definitions/geocoding.SearchResponse" }, - "title": { - "example": "AI assistant", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "googleplay.Review": { + "google.JobItem": { "properties": { - "criterias": { - "items": { - "$ref": "#/definitions/googleplay.ReviewCriteria" - }, - "type": "array" - }, - "date": { - "example": "2026-02-18T12:34:56Z", + "company": { "type": "string" }, - "id": { - "example": "5b4e4d89-ce22-4f13-b676-bb3a7aafe278", + "employment": { "type": "string" }, - "reply_date": { - "example": "2026-02-20T08:00:00Z", + "location": { "type": "string" }, - "reply_text": { - "example": "Thanks for the feedback!", + "posted_at": { "type": "string" }, - "score": { - "example": 5, - "type": "integer" - }, - "score_text": { - "example": "5", + "snippet": { "type": "string" }, - "text": { - "example": "Very helpful for quick answers and brainstorming.", + "source": { "type": "string" }, - "thumbs_up": { - "example": 124, - "type": "integer" - }, "title": { - "example": "Great app", "type": "string" }, "url": { - "example": "https://play.google.com/store/apps/details?id=com.openai.chatgpt&reviewId=5b4e4d89-ce22-4f13-b676-bb3a7aafe278", - "type": "string" - }, - "user_image": { - "example": "https://play-lh.googleusercontent.com/a-/ALV-UjVsample", - "type": "string" - }, - "user_name": { - "example": "Jane Doe", - "type": "string" - }, - "version": { - "example": "1.2026.056", "type": "string" } }, "type": "object" }, - "googleplay.ReviewCriteria": { + "google.JobsOption": { "properties": { - "criteria": { - "example": "Accuracy", + "location": { + "example": "San Francisco, CA", "type": "string" }, - "rating": { - "example": 5, + "page": { + "example": 1, "type": "integer" + }, + "query": { + "example": "software engineer", + "type": "string" } }, + "required": [ + "query" + ], "type": "object" }, - "googleplay.ReviewsResult": { + "google.JobsResponse": { "properties": { - "data": { + "location": { + "example": "San Francisco, CA", + "type": "string" + }, + "page": { + "example": 1, + "type": "integer" + }, + "query": { + "example": "software engineer", + "type": "string" + }, + "results": { "items": { - "$ref": "#/definitions/googleplay.Review" + "$ref": "#/definitions/google.JobItem" }, "type": "array" - }, - "next_pagination_token": { - "example": "CscBIr4BAb_yELvAqtSacgExc3y_bO88_b1Q", - "type": "string" } }, "type": "object" }, - "googleplay.SecurityPractice": { + "google.KgAttrItem": { "properties": { - "description": { - "example": "Your data is transferred over a secure connection", + "id": { + "description": "Attribute ID", + "example": "kc:/computer/software:developer", "type": "string" }, - "practice": { - "example": "Data is encrypted in transit", + "label": { + "description": "Attribute label", + "example": "Developer", "type": "string" - } - }, - "type": "object" - }, - "googleplay.Suggestion": { - "properties": { - "term": { - "example": "chatgpt", + }, + "value": { + "description": "Attribute value", + "example": "OpenAI, Microsoft", "type": "string" } }, "type": "object" }, - "googleplay.categoriesResponseDoc": { + "google.KnowledgeGraph": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { + "attributes": { "items": { - "type": "string" + "$ref": "#/definitions/google.KgAttrItem" }, "type": "array" }, - "msg": { - "example": "OK", + "description": { + "description": "Description", + "example": "ChatGPT is a generative artificial intelligence chatbot developed by OpenAI.", "type": "string" - } - }, - "type": "object" - }, - "googleplay.dataSafetyResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/googleplay.DataSafetyResult" }, - "msg": { - "example": "OK", + "sub_title": { + "description": "Subtitle of the knowledge graph item", + "example": "Software", "type": "string" - } - }, - "type": "object" - }, - "googleplay.developerResultsResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "items": {}, - "type": "array" + "title": { + "description": "Title of the knowledge graph item", + "example": "ChatGPT", + "type": "string" }, - "msg": { - "example": "OK", + "wikipedia_link": { + "description": "Wikipedia link", + "example": "https://en.wikipedia.org/wiki/ChatGPT", "type": "string" } }, "type": "object" }, - "googleplay.listResultsResponseDoc": { + "google.MapSearchOption": { "properties": { - "code": { - "example": 200, - "type": "integer" + "country": { + "example": "us", + "type": "string" }, - "data": { - "items": {}, - "type": "array" + "keyword": { + "example": "hotel san francisco", + "type": "string" }, - "msg": { - "example": "OK", + "language": { + "example": "en", "type": "string" } }, "type": "object" }, - "googleplay.permissionsResultsResponseDoc": { + "google.NewsResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "pagination": { + "$ref": "#/definitions/google.VerticalPagination" }, - "data": { - "items": {}, + "results": { + "items": { + "$ref": "#/definitions/google.NewsResult" + }, "type": "array" - }, - "msg": { - "example": "OK", - "type": "string" } }, "type": "object" }, - "googleplay.reviewsResponseDoc": { + "google.NewsResult": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/googleplay.ReviewsResult" + "age": { + "example": "2 hours ago", + "type": "string" }, - "msg": { - "example": "OK", + "description": { + "example": "OpenAI announced an update.", "type": "string" - } - }, - "type": "object" - }, - "googleplay.searchResultsResponseDoc": { - "properties": { - "code": { - "example": 200, + }, + "position": { + "example": 1, "type": "integer" }, - "data": { - "items": {}, - "type": "array" + "source": { + "example": "Example News", + "type": "string" }, - "msg": { - "example": "OK", + "thumbnail": { + "example": "https://example.com/thumb.jpg", "type": "string" - } - }, - "type": "object" - }, - "googleplay.similarResultsResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "items": {}, - "type": "array" + "title": { + "example": "OpenAI announces update", + "type": "string" }, - "msg": { - "example": "OK", + "url": { + "example": "https://example.com/openai-news", "type": "string" } }, "type": "object" }, - "googleplay.suggestResponseDoc": { + "google.PeopleAlsoAskItem": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "items": { - "$ref": "#/definitions/googleplay.Suggestion" - }, - "type": "array" + "answer": { + "description": "Answer to the question", + "example": "ChatGPT is a chatbot developed by OpenAI.", + "type": "string" }, - "msg": { - "example": "OK", + "date": { + "description": "Date of the response", + "example": "2024-09-30", "type": "string" - } - }, - "type": "object" - }, - "imdb.AlternateTitle": { - "properties": { - "country": { - "example": "United States", + }, + "link": { + "description": "Link to the source", + "example": "https://openai.com/chatgpt/", "type": "string" }, - "title": { - "example": "Inception", + "question": { + "description": "Question from \"People Also Ask\"", + "example": "What is ChatGPT?", "type": "string" }, - "type": { - "example": "original title", + "title": { + "description": "Title of the source", + "example": "ChatGPT", "type": "string" } }, "type": "object" }, - "imdb.AwardItem": { + "google.Place": { "properties": { - "award": { - "example": "Oscar", - "type": "string" - }, - "category": { - "example": "Best Motion Picture of the Year", + "address": { + "example": "250 Beach St, San Francisco, CA 94133", "type": "string" }, - "event": { - "example": "Academy Awards, USA", - "type": "string" - }, - "notes": { - "type": "string" - }, - "public_signals": { - "example": 6, - "type": "integer" + "amenities": { + "example": [ + "['Free Wi-Fi'", + " 'Air-conditioned'", + " 'Wi-Fi'", + " 'Parking']" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "recipients": { + "category": { + "example": [ + "['hotel']" + ], "items": { - "$ref": "#/definitions/imdb.Person" + "type": "string" }, "type": "array" }, - "result": { - "example": "nomination", + "description": { + "example": "A 3-minute walk from Pier 41 in the Fisherman's Wharf district...", "type": "string" }, - "titles": { + "image": { + "example": "https://lh5.googleusercontent.com/p/AF1QipP_O55x7gOwR3AaM09CVmzEUude9wMHMPwc--yp", + "type": "string" + }, + "latitude": { + "example": 37.8077617, + "type": "number" + }, + "locations": { + "example": [ + "['San Francisco'", + " 'Los Angeles']" + ], "items": { - "$ref": "#/definitions/imdb.AwardTitle" + "type": "string" }, "type": "array" }, - "year": { - "example": "2011", + "longitude": { + "example": -122.4132228, + "type": "number" + }, + "name": { + "example": "Hotel Zephyr San Francisco", "type": "string" - } - }, - "type": "object" - }, - "imdb.AwardTitle": { - "properties": { - "id": { - "example": "tt1375666", + }, + "phone": { + "example": "14156176565", "type": "string" }, - "title": { - "example": "Inception", + "place_id": { + "example": "ChIJ99URUeOAhYAR0J5ZUxTesDQ", "type": "string" }, + "rating": { + "description": "Rating is the aggregate Google rating (1.0–5.0), or null when the place has no\naggregate rating on Google (Google never assigns a 0.x average, so 0 always meant\n\"unrated\"). A pointer so unrated serializes as `rating: null`, not a misleading 0.", + "example": 4.1, + "type": "number", + "x-nullable": true + }, + "review_count": { + "example": 3213, + "type": "integer" + }, "url": { - "example": "https://www.imdb.com/title/tt1375666/", + "example": "https://www.google.com/maps/place/?q=place_id:ChIJ99URUeOAhYAR0J5ZUxTesDQ", + "type": "string" + }, + "website": { + "example": "https://www.hotelzephyrsf.com/", "type": "string" } }, "type": "object" }, - "imdb.CompanyItem": { + "google.SearchItem": { "properties": { - "name": { - "example": "Warner Bros.", + "Snippet": { + "example": "Never run out of your favorite coffees, teas and powders again with our auto-delivery subscription. Select how often your products arrive, pause and cancel ...", "type": "string" }, - "note": { - "example": "presents", + "icon": { "type": "string" }, - "public_signals": { - "example": 2, + "link": { + "example": "https://www.coffeebean.com/", + "type": "string" + }, + "position": { + "example": 1, "type": "integer" }, - "url": { - "example": "https://www.imdb.com/company/co0002663/", + "time": { + "example": "7 hours ago", "type": "string" - } - }, - "type": "object" - }, - "imdb.CompanySection": { - "properties": { - "companies": { - "items": { - "$ref": "#/definitions/imdb.CompanyItem" - }, - "type": "array" }, - "name": { - "example": "Production Companies", + "title": { + "example": "Home | The Coffee Bean & Tea Leaf", "type": "string" }, - "slug": { - "example": "production-companies", + "website_name": { + "example": "OpenAI", "type": "string" } }, "type": "object" }, - "imdb.CreditItem": { + "google.SearchOption": { "properties": { - "character": { - "example": "Dom Cobb", + "country": { + "description": "Country code", + "example": "us", "type": "string" }, - "name": { - "example": "Christopher Nolan", + "keyword": { + "example": "chatgpt", "type": "string" }, - "role": { - "example": "written by", + "language": { + "description": "language code", + "example": "en", "type": "string" }, - "url": { - "example": "https://www.imdb.com/name/nm0634240/", - "type": "string" + "limit": { + "description": "Number of items, from 10 to 100, inclusive", + "example": 10, + "type": "integer" + }, + "page": { + "example": 1, + "type": "integer" } }, + "required": [ + "country", + "keyword", + "language" + ], "type": "object" }, - "imdb.CreditSection": { + "google.SearchResp": { "properties": { - "credits": { + "knowledge_graph": { + "$ref": "#/definitions/google.KnowledgeGraph" + }, + "people_also_ask": { "items": { - "$ref": "#/definitions/imdb.CreditItem" + "$ref": "#/definitions/google.PeopleAlsoAskItem" }, "type": "array" }, - "name": { - "example": "Directed by", - "type": "string" + "people_also_search_for": { + "example": [ + "Gemini", + " WhatsApp" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "slug": { - "example": "directed-by", - "type": "string" + "related_searches": { + "example": [ + "What is ChatGPT?" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "result": { + "items": { + "$ref": "#/definitions/google.SearchItem" + }, + "type": "array" } }, "type": "object" }, - "imdb.CreditsResponse": { + "google.SuggestResponse": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" - }, - "id": { - "example": "tt1375666", + "query": { + "example": "openai", "type": "string" }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "sections": { + "suggestions": { "items": { - "$ref": "#/definitions/imdb.CreditSection" + "$ref": "#/definitions/google.SuggestionResult" }, "type": "array" - }, - "source_url": { - "example": "https://www.imdb.com/title/tt1375666/fullcredits/", - "type": "string" - }, - "url": { - "example": "https://www.imdb.com/title/tt1375666/fullcredits/", - "type": "string" } }, "type": "object" }, - "imdb.EpisodeItem": { + "google.SuggestionResult": { "properties": { - "air_date": { - "example": "17 Apr 2011", - "type": "string" - }, - "episode": { + "position": { "example": 1, "type": "integer" }, - "id": { - "example": "tt1480055", - "type": "string" - }, - "plot": { + "query": { + "example": "openai api", "type": "string" - }, - "public_signals": { - "example": 6, + } + }, + "type": "object" + }, + "google.VerticalPagination": { + "properties": { + "next_page": { + "example": 2, "type": "integer" }, - "rating_count": { - "example": 52000, + "page": { + "example": 1, "type": "integer" }, - "rating_value": { - "example": 8.9, - "type": "number" - }, - "season": { + "previous_page": { "example": 1, "type": "integer" - }, - "title": { - "example": "Winter Is Coming", - "type": "string" - }, - "url": { - "example": "https://www.imdb.com/title/tt1480055/", - "type": "string" } }, "type": "object" }, - "imdb.EpisodesResponse": { + "google.VideoResult": { "properties": { - "episodes": { - "items": { - "$ref": "#/definitions/imdb.EpisodeItem" - }, - "type": "array" - }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", + "age": { + "example": "2 days ago", "type": "string" }, - "id": { - "example": "tt0944947", + "description": { + "example": "Watch the OpenAI DevDay keynote.", "type": "string" }, - "limit": { - "example": 10, - "type": "integer" + "duration": { + "example": "45:12", + "type": "string" }, - "public_page_derived": { - "example": true, - "type": "boolean" + "platform": { + "example": "YouTube", + "type": "string" }, - "season": { + "position": { "example": 1, "type": "integer" }, - "source_url": { - "example": "https://www.imdb.com/title/tt0944947/episodes/?season=1", + "thumbnail": { + "example": "https://example.com/thumb.jpg", + "type": "string" + }, + "title": { + "example": "OpenAI DevDay keynote - YouTube", "type": "string" }, "url": { - "example": "https://www.imdb.com/title/tt0944947/episodes/", + "example": "https://www.youtube.com/watch?v=openai-devday", "type": "string" } }, "type": "object" }, - "imdb.KeywordItem": { + "google.VideosResponse": { "properties": { - "keyword": { - "example": "dream", - "type": "string" - }, - "public_signals": { - "example": 2, - "type": "integer" + "pagination": { + "$ref": "#/definitions/google.VerticalPagination" }, - "url": { - "example": "https://www.imdb.com/search/keyword/?keywords=dream", - "type": "string" + "results": { + "items": { + "$ref": "#/definitions/google.VideoResult" + }, + "type": "array" } }, "type": "object" }, - "imdb.LocationItem": { + "google.mapPlaceResponseDoc": { "properties": { - "location": { - "example": "Paris, France", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "note": { - "example": "Ariadne learns to build dreams", - "type": "string" + "data": { + "$ref": "#/definitions/google.Place" }, - "public_signals": { - "example": 2, - "type": "integer" + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "imdb.NameAwardsResponse": { + "google.mapSearchResponseDoc": { "properties": { - "awards": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { "items": { - "$ref": "#/definitions/imdb.AwardItem" + "$ref": "#/definitions/google.Place" }, "type": "array" }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" - }, - "id": { - "example": "nm0634240", - "type": "string" - }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "source_url": { - "example": "https://www.imdb.com/name/nm0634240/awards/", - "type": "string" - }, - "url": { - "example": "https://www.imdb.com/name/nm0634240/awards/", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "imdb.NameCreditItem": { + "google.newsResponseDoc": { "properties": { - "episodes": { - "example": "3 episodes", - "type": "string" - }, - "id": { - "example": "tt1375666", - "type": "string" - }, - "role": { - "example": "directed by", - "type": "string" - }, - "title": { - "example": "Inception", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "url": { - "example": "https://www.imdb.com/title/tt1375666/", - "type": "string" + "data": { + "$ref": "#/definitions/google.NewsResponse" }, - "year": { - "example": "2010", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "imdb.NameCreditSection": { + "google.searchResponseDoc": { "properties": { - "credits": { - "items": { - "$ref": "#/definitions/imdb.NameCreditItem" - }, - "type": "array" + "code": { + "example": 200, + "type": "integer" }, - "name": { - "example": "Director", - "type": "string" + "data": { + "$ref": "#/definitions/google.SearchResp" }, - "slug": { - "example": "director", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "imdb.NameCreditsResponse": { + "google.suggestResponseDoc": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" - }, - "id": { - "example": "nm0634240", - "type": "string" - }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "sections": { - "items": { - "$ref": "#/definitions/imdb.NameCreditSection" - }, - "type": "array" + "code": { + "example": 200, + "type": "integer" }, - "source_url": { - "example": "https://www.imdb.com/name/nm0634240/", - "type": "string" + "data": { + "$ref": "#/definitions/google.SuggestResponse" }, - "url": { - "example": "https://www.imdb.com/name/nm0634240/", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "imdb.NameKnownForItem": { + "google.videosResponseDoc": { "properties": { - "category": { - "example": "Director", - "type": "string" - }, - "id": { - "example": "tt1375666", - "type": "string" - }, - "title": { - "example": "Inception", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "url": { - "example": "https://www.imdb.com/title/tt1375666/", - "type": "string" + "data": { + "$ref": "#/definitions/google.VideosResponse" }, - "year": { - "example": "2010", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "imdb.NameResponse": { + "googleplay.App": { "properties": { - "bio": { - "type": "string" - }, - "birth_date": { - "example": "1970-07-30", - "type": "string" + "ad_supported": { + "example": false, + "type": "boolean" }, - "birth_place": { - "example": "London, England, UK", + "android_max_version": { + "example": "15", "type": "string" }, - "death_date": { + "android_version": { + "example": "8.0", "type": "string" }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", + "android_version_text": { + "example": "8.0 and up", "type": "string" }, - "id": { - "example": "nm0634240", + "app_id": { + "example": "com.openai.chatgpt", "type": "string" }, - "image_url": { - "type": "string" + "available": { + "example": true, + "type": "boolean" }, - "known_for": { + "categories": { "items": { - "$ref": "#/definitions/imdb.NameKnownForItem" + "$ref": "#/definitions/googleplay.Category" }, "type": "array" }, - "name": { - "example": "Christopher Nolan", - "type": "string" - }, - "professions": { + "comments": { + "example": [ + "[\"Great app\"", + "\"Very useful\"]" + ], "items": { "type": "string" }, "type": "array" }, - "public_page_derived": { - "example": true, - "type": "boolean" + "content_rating": { + "example": "Teen", + "type": "string" }, - "source_url": { - "example": "https://www.imdb.com/name/nm0634240/", + "content_rating_description": { + "example": "Users Interact, In-App Purchases", "type": "string" }, - "url": { - "example": "https://www.imdb.com/name/nm0634240/", + "currency": { + "example": "USD", "type": "string" - } - }, - "type": "object" - }, - "imdb.ParentalGuideCategory": { - "properties": { - "items": { - "items": { - "type": "string" - }, - "type": "array" }, - "name": { - "example": "Violence & Gore", + "description": { + "example": "Introducing ChatGPT for Android: OpenAI's latest advancements at your fingertips.", "type": "string" }, - "severity": { - "example": "moderate", + "description_html": { + "example": "Introducing ChatGPT for Android: OpenAI's latest advancements at your fingertips.

This official app is free.", "type": "string" }, - "slug": { - "example": "violence-gore", + "developer": { + "example": "OpenAI", "type": "string" - } - }, - "type": "object" - }, - "imdb.ParentalGuideResponse": { - "properties": { - "categories": { - "items": { - "$ref": "#/definitions/imdb.ParentalGuideCategory" - }, - "type": "array" }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", + "developer_address": { + "example": "1455 3RD St, San Francisco, CA 94158-2210, United States", "type": "string" }, - "id": { - "example": "tt1375666", + "developer_email": { + "example": "support@openai.com", "type": "string" }, - "public_page_derived": { - "example": true, - "type": "boolean" + "developer_id": { + "example": "7577165439232992817", + "type": "string" }, - "source_url": { - "example": "https://www.imdb.com/title/tt1375666/parentalguide/", + "developer_internal_id": { + "example": "7577165439232992817", "type": "string" }, - "summary": { - "$ref": "#/definitions/imdb.ParentalGuideSummary" + "developer_legal_address": { + "example": "1455 3RD St, San Francisco, CA 94158-2210, United States", + "type": "string" }, - "url": { - "example": "https://www.imdb.com/title/tt1375666/parentalguide/", + "developer_legal_email": { + "example": "support@openai.com", "type": "string" - } - }, - "type": "object" - }, - "imdb.ParentalGuideSummary": { - "properties": { - "categories_count": { - "example": 5, - "type": "integer" }, - "highest_severity": { - "example": "severe", + "developer_legal_name": { + "example": "OpenAI Opco, LLC", "type": "string" }, - "item_count": { - "example": 24, - "type": "integer" + "developer_legal_phone_number": { + "example": "+1 415-231-2395", + "type": "string" }, - "present_categories": { + "developer_website": { + "example": "https://help.openai.com", + "type": "string" + }, + "discount_end_date": { + "example": "2026-03-31T23:59:59Z", + "type": "string" + }, + "early_access_enabled": { + "example": false, + "type": "boolean" + }, + "features": { "items": { - "type": "string" + "$ref": "#/definitions/googleplay.Feature" }, "type": "array" }, - "public_page_signals": { - "example": 12, - "type": "integer" + "free": { + "example": true, + "type": "boolean" }, - "severity_counts": { - "additionalProperties": { - "type": "integer" - }, + "genre": { + "example": "Productivity", + "type": "string" + }, + "genre_id": { + "example": "PRODUCTIVITY", + "type": "string" + }, + "header_image": { + "example": "https://play-lh.googleusercontent.com/sample-header-image", + "type": "string" + }, + "histogram": { "type": "object" - } - }, - "type": "object" - }, - "imdb.Person": { - "properties": { - "name": { - "example": "Christopher Nolan", + }, + "iap_range": { + "example": "$0.99 - $199.99 per item", "type": "string" }, - "url": { - "example": "https://www.imdb.com/name/nm0634240/", + "icon": { + "example": "https://play-lh.googleusercontent.com/lmG9HlI0awHie0cyBieWXeNjpyXvHPwDBb8MNOVIyp0P8VEh95AiBHtUZSDVR3HLe3A", "type": "string" - } - }, - "type": "object" - }, - "imdb.PublicFactItem": { - "properties": { - "public_signals": { - "example": 1, - "type": "integer" }, - "spoiler": { + "installs": { + "example": "100,000,000+", + "type": "string" + }, + "is_available_in_play_pass": { "example": false, "type": "boolean" }, - "text": { - "example": "The hallway fight was filmed with a rotating set.", - "type": "string" - } - }, - "type": "object" - }, - "imdb.PublicFactsAnalysisSummary": { - "properties": { - "company_count": { - "example": 9, + "max_installs": { + "example": 500000000, "type": "integer" }, - "company_section_count": { - "example": 3, + "min_installs": { + "example": 100000000, "type": "integer" }, - "filming_location_count": { - "example": 6, - "type": "integer" + "offers_iap": { + "example": true, + "type": "boolean" }, - "goof_count": { - "example": 4, - "type": "integer" + "original_price": { + "example": 4.99, + "type": "number" }, - "keyword_count": { - "example": 20, - "type": "integer" + "preregister": { + "example": false, + "type": "boolean" }, - "public_fact_coverage_pages": { - "example": 6, - "type": "integer" + "preview_video": { + "example": "https://play.google.com/preview/sample", + "type": "string" }, - "public_page_signals": { - "example": 64, - "type": "integer" + "price": { + "example": 0, + "type": "number" }, - "quote_count": { - "example": 8, - "type": "integer" + "price_text": { + "example": "Free", + "type": "string" }, - "spoiler_fact_count": { - "example": 2, - "type": "integer" + "privacy_policy": { + "example": "https://openai.com/policies/privacy-policy", + "type": "string" }, - "trivia_count": { - "example": 12, + "ratings": { + "example": 40123456, "type": "integer" - } - }, - "type": "object" - }, - "imdb.ReleaseInfoItem": { - "properties": { - "country": { - "example": "United States", + }, + "recent_changes": { + "example": "Bug fixes and performance improvements.", "type": "string" }, - "date": { - "example": "16 July 2010", + "released": { + "example": "2023-07-19", "type": "string" }, - "note": { - "example": "theatrical", + "reviews": { + "example": 1234567, + "type": "integer" + }, + "score": { + "example": 4.8, + "type": "number" + }, + "score_text": { + "example": "4.8", "type": "string" - } - }, - "type": "object" - }, - "imdb.ReleaseInfoResponse": { - "properties": { - "alternate_titles": { + }, + "screenshots": { + "example": [ + "[\"https://play-lh.googleusercontent.com/sample-screenshot-1\"", + "\"https://play-lh.googleusercontent.com/sample-screenshot-2\"]" + ], "items": { - "$ref": "#/definitions/imdb.AlternateTitle" + "type": "string" }, "type": "array" }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", + "summary": { + "example": "The official app by OpenAI", "type": "string" }, - "id": { - "example": "tt1375666", + "title": { + "example": "ChatGPT", "type": "string" }, - "public_page_derived": { - "example": true, - "type": "boolean" + "updated": { + "example": 1736899200, + "type": "integer" }, - "releases": { - "items": { - "$ref": "#/definitions/imdb.ReleaseInfoItem" - }, - "type": "array" + "url": { + "example": "https://play.google.com/store/apps/details?id=com.openai.chatgpt&hl=en&gl=us", + "type": "string" }, - "source_url": { - "example": "https://www.imdb.com/title/tt1375666/releaseinfo/", + "version": { + "example": "1.2026.056", "type": "string" }, - "url": { - "example": "https://www.imdb.com/title/tt1375666/releaseinfo/", + "video": { + "example": "https://play.google.com/video/sample", + "type": "string" + }, + "video_image": { + "example": "https://play-lh.googleusercontent.com/sample-video-cover", "type": "string" } }, "type": "object" }, - "imdb.ReviewItem": { + "googleplay.AppDetailsResponse": { "properties": { - "author": { - "example": "movie_fan", - "type": "string" - }, - "date": { - "example": "2024-01-02", - "type": "string" - }, - "helpful_votes": { - "example": 123, + "code": { + "example": 200, "type": "integer" }, - "helpfulness": { - "example": "82%", - "type": "string" + "data": { + "$ref": "#/definitions/googleplay.App" }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "googleplay.Category": { + "properties": { "id": { - "example": "rw1234567", + "example": "PRODUCTIVITY", "type": "string" }, - "public_signals": { - "example": 5, - "type": "integer" - }, - "rating": { - "example": 9, - "type": "integer" + "name": { + "example": "Productivity", + "type": "string" + } + }, + "type": "object" + }, + "googleplay.DataSafetyEntry": { + "properties": { + "data": { + "example": "Email address", + "type": "string" }, - "spoiler": { + "optional": { "example": false, "type": "boolean" }, - "text": { - "type": "string" - }, - "title": { - "example": "A smart blockbuster", + "purpose": { + "example": "Analytics", "type": "string" }, - "total_votes": { - "example": 150, - "type": "integer" - }, - "url": { - "example": "https://www.imdb.com/review/rw1234567/", + "type": { + "example": "Personal info", "type": "string" } }, "type": "object" }, - "imdb.ReviewsResponse": { + "googleplay.DataSafetyResult": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" + "collected_data": { + "items": { + "$ref": "#/definitions/googleplay.DataSafetyEntry" + }, + "type": "array" }, - "id": { - "example": "tt1375666", + "privacy_policy_url": { + "example": "https://openai.com/policies/privacy-policy", "type": "string" }, - "limit": { - "example": 10, - "type": "integer" - }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "reviews": { + "security_practices": { "items": { - "$ref": "#/definitions/imdb.ReviewItem" + "$ref": "#/definitions/googleplay.SecurityPractice" }, "type": "array" }, - "source_url": { - "example": "https://www.imdb.com/title/tt1375666/reviews/", + "shared_data": { + "items": { + "$ref": "#/definitions/googleplay.DataSafetyEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "googleplay.Feature": { + "properties": { + "description": { + "example": "Get answers, writing help, and image generation.", "type": "string" }, - "url": { - "example": "https://www.imdb.com/title/tt1375666/reviews/", + "title": { + "example": "AI assistant", "type": "string" } }, "type": "object" }, - "imdb.SearchItem": { + "googleplay.Review": { "properties": { - "description": { + "criterias": { + "items": { + "$ref": "#/definitions/googleplay.ReviewCriteria" + }, + "type": "array" + }, + "date": { + "example": "2026-02-18T12:34:56Z", "type": "string" }, "id": { - "example": "tt1375666", + "example": "5b4e4d89-ce22-4f13-b676-bb3a7aafe278", "type": "string" }, - "image_url": { + "reply_date": { + "example": "2026-02-20T08:00:00Z", "type": "string" }, - "title": { - "example": "Inception", + "reply_text": { + "example": "Thanks for the feedback!", "type": "string" }, - "title_type": { - "example": "Movie", + "score": { + "example": 5, + "type": "integer" + }, + "score_text": { + "example": "5", + "type": "string" + }, + "text": { + "example": "Very helpful for quick answers and brainstorming.", + "type": "string" + }, + "thumbs_up": { + "example": 124, + "type": "integer" + }, + "title": { + "example": "Great app", "type": "string" }, "url": { - "example": "https://www.imdb.com/title/tt1375666/", + "example": "https://play.google.com/store/apps/details?id=com.openai.chatgpt&reviewId=5b4e4d89-ce22-4f13-b676-bb3a7aafe278", "type": "string" }, - "year": { - "example": "2010", + "user_image": { + "example": "https://play-lh.googleusercontent.com/a-/ALV-UjVsample", + "type": "string" + }, + "user_name": { + "example": "Jane Doe", + "type": "string" + }, + "version": { + "example": "1.2026.056", "type": "string" } }, "type": "object" }, - "imdb.SearchResponse": { + "googleplay.ReviewCriteria": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:46:16Z", + "criteria": { + "example": "Accuracy", "type": "string" }, - "limit": { - "example": 10, + "rating": { + "example": 5, "type": "integer" - }, - "query": { - "example": "inception", - "type": "string" - }, - "results": { + } + }, + "type": "object" + }, + "googleplay.ReviewsResult": { + "properties": { + "data": { "items": { - "$ref": "#/definitions/imdb.SearchItem" + "$ref": "#/definitions/googleplay.Review" }, "type": "array" }, - "source_url": { - "example": "https://www.imdb.com/find/?q=inception&s=tt", + "next_pagination_token": { + "example": "CscBIr4BAb_yELvAqtSacgExc3y_bO88_b1Q", "type": "string" } }, "type": "object" }, - "imdb.TechnicalSpecItem": { + "googleplay.SecurityPractice": { "properties": { - "name": { - "example": "Runtime", + "description": { + "example": "Your data is transferred over a secure connection", "type": "string" }, - "slug": { - "example": "runtime", - "type": "string" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "imdb.TechnicalSpecsResponse": { - "properties": { - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" - }, - "id": { - "example": "tt1375666", - "type": "string" - }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "source_url": { - "example": "https://www.imdb.com/title/tt1375666/technical/", - "type": "string" - }, - "specs": { - "items": { - "$ref": "#/definitions/imdb.TechnicalSpecItem" - }, - "type": "array" - }, - "url": { - "example": "https://www.imdb.com/title/tt1375666/technical/", - "type": "string" - } - }, - "type": "object" - }, - "imdb.TitleAwardsResponse": { - "properties": { - "awards": { - "items": { - "$ref": "#/definitions/imdb.AwardItem" - }, - "type": "array" - }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" - }, - "id": { - "example": "tt1375666", - "type": "string" - }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "source_url": { - "example": "https://www.imdb.com/title/tt1375666/awards/", - "type": "string" - }, - "url": { - "example": "https://www.imdb.com/title/tt1375666/awards/", - "type": "string" - } - }, - "type": "object" - }, - "imdb.TitlePublicFactsAnalysisResponse": { - "properties": { - "company_credits": { - "$ref": "#/definitions/imdb.TitlePublicFactsResponse" - }, - "filming_locations": { - "$ref": "#/definitions/imdb.TitlePublicFactsResponse" - }, - "goofs": { - "$ref": "#/definitions/imdb.TitlePublicFactsResponse" - }, - "keywords": { - "$ref": "#/definitions/imdb.TitlePublicFactsResponse" - }, - "not_viewing_advice": { - "example": true, - "type": "boolean" - }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "quotes": { - "$ref": "#/definitions/imdb.TitlePublicFactsResponse" - }, - "summary": { - "$ref": "#/definitions/imdb.PublicFactsAnalysisSummary" - }, - "trivia": { - "$ref": "#/definitions/imdb.TitlePublicFactsResponse" - } - }, - "type": "object" - }, - "imdb.TitlePublicFactsResponse": { - "properties": { - "company_credits": { - "items": { - "$ref": "#/definitions/imdb.CompanySection" - }, - "type": "array" - }, - "facts": { - "items": { - "$ref": "#/definitions/imdb.PublicFactItem" - }, - "type": "array" - }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" - }, - "id": { - "example": "tt1375666", - "type": "string" - }, - "keywords": { - "items": { - "$ref": "#/definitions/imdb.KeywordItem" - }, - "type": "array" - }, - "locations": { - "items": { - "$ref": "#/definitions/imdb.LocationItem" - }, - "type": "array" - }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "source_url": { - "example": "https://www.imdb.com/title/tt1375666/trivia/", - "type": "string" - }, - "type": { - "example": "trivia", - "type": "string" - }, - "url": { - "example": "https://www.imdb.com/title/tt1375666/trivia/", + "practice": { + "example": "Data is encrypted in transit", "type": "string" } }, "type": "object" }, - "imdb.TitleResponse": { + "googleplay.Suggestion": { "properties": { - "cast": { - "items": { - "$ref": "#/definitions/imdb.Person" - }, - "type": "array" - }, - "content_rating": { - "example": "PG-13", - "type": "string" - }, - "directors": { - "items": { - "$ref": "#/definitions/imdb.Person" - }, - "type": "array" - }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" - }, - "genres": { - "example": [ - "Action" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "id": { - "example": "tt1375666", - "type": "string" - }, - "image_url": { - "type": "string" - }, - "plot": { - "type": "string" - }, - "popularity_rank": { - "example": 82, - "type": "integer" - }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "rating_count": { - "example": 2600000, - "type": "integer" - }, - "rating_value": { - "example": 8.8, - "type": "number" - }, - "release_date": { - "example": "2010-07-16", - "type": "string" - }, - "runtime_minutes": { - "example": 148, - "type": "integer" - }, - "source_url": { - "example": "https://www.imdb.com/title/tt1375666/", - "type": "string" - }, - "title": { - "example": "Inception", - "type": "string" - }, - "title_type": { - "example": "Movie", - "type": "string" - }, - "url": { - "example": "https://www.imdb.com/title/tt1375666/", - "type": "string" - }, - "year": { - "example": "2010", + "term": { + "example": "chatgpt", "type": "string" } }, "type": "object" }, - "imdb.creditsResponseDoc": { + "googleplay.categoriesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/imdb.CreditsResponse" + "items": { + "type": "string" + }, + "type": "array" }, "msg": { "example": "OK", @@ -14847,14 +15410,14 @@ }, "type": "object" }, - "imdb.episodesResponseDoc": { + "googleplay.dataSafetyResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/imdb.EpisodesResponse" + "$ref": "#/definitions/googleplay.DataSafetyResult" }, "msg": { "example": "OK", @@ -14863,14 +15426,15 @@ }, "type": "object" }, - "imdb.nameAwardsResponseDoc": { + "googleplay.developerResultsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/imdb.NameAwardsResponse" + "items": {}, + "type": "array" }, "msg": { "example": "OK", @@ -14879,14 +15443,15 @@ }, "type": "object" }, - "imdb.nameCreditsResponseDoc": { + "googleplay.listResultsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/imdb.NameCreditsResponse" + "items": {}, + "type": "array" }, "msg": { "example": "OK", @@ -14895,14 +15460,15 @@ }, "type": "object" }, - "imdb.nameResponseDoc": { + "googleplay.permissionsResultsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/imdb.NameResponse" + "items": {}, + "type": "array" }, "msg": { "example": "OK", @@ -14911,14 +15477,14 @@ }, "type": "object" }, - "imdb.parentalGuideResponseDoc": { + "googleplay.reviewsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/imdb.ParentalGuideResponse" + "$ref": "#/definitions/googleplay.ReviewsResult" }, "msg": { "example": "OK", @@ -14927,14 +15493,15 @@ }, "type": "object" }, - "imdb.releaseInfoResponseDoc": { + "googleplay.searchResultsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/imdb.ReleaseInfoResponse" + "items": {}, + "type": "array" }, "msg": { "example": "OK", @@ -14943,14 +15510,15 @@ }, "type": "object" }, - "imdb.reviewsResponseDoc": { + "googleplay.similarResultsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/imdb.ReviewsResponse" + "items": {}, + "type": "array" }, "msg": { "example": "OK", @@ -14959,14 +15527,17 @@ }, "type": "object" }, - "imdb.searchResponseDoc": { + "googleplay.suggestResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/imdb.SearchResponse" + "items": { + "$ref": "#/definitions/googleplay.Suggestion" + }, + "type": "array" }, "msg": { "example": "OK", @@ -14975,1594 +15546,1133 @@ }, "type": "object" }, - "imdb.technicalSpecsResponseDoc": { + "imdb.AlternateTitle": { "properties": { - "code": { - "example": 200, - "type": "integer" + "country": { + "example": "United States", + "type": "string" }, - "data": { - "$ref": "#/definitions/imdb.TechnicalSpecsResponse" + "title": { + "example": "Inception", + "type": "string" }, - "msg": { - "example": "OK", + "type": { + "example": "original title", "type": "string" } }, "type": "object" }, - "imdb.titleAwardsResponseDoc": { + "imdb.AwardItem": { "properties": { - "code": { - "example": 200, - "type": "integer" + "award": { + "example": "Oscar", + "type": "string" }, - "data": { - "$ref": "#/definitions/imdb.TitleAwardsResponse" + "category": { + "example": "Best Motion Picture of the Year", + "type": "string" }, - "msg": { - "example": "OK", + "event": { + "example": "Academy Awards, USA", "type": "string" - } - }, - "type": "object" - }, - "imdb.titlePublicFactsAnalysisResponseDoc": { - "properties": { - "code": { - "example": 200, + }, + "notes": { + "type": "string" + }, + "public_signals": { + "example": 6, "type": "integer" }, - "data": { - "$ref": "#/definitions/imdb.TitlePublicFactsAnalysisResponse" + "recipients": { + "items": { + "$ref": "#/definitions/imdb.Person" + }, + "type": "array" }, - "msg": { - "example": "OK", + "result": { + "example": "nomination", "type": "string" - } - }, - "type": "object" - }, - "imdb.titlePublicFactsResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/imdb.TitlePublicFactsResponse" + "titles": { + "items": { + "$ref": "#/definitions/imdb.AwardTitle" + }, + "type": "array" }, - "msg": { - "example": "OK", + "year": { + "example": "2011", "type": "string" } }, "type": "object" }, - "imdb.titleResponseDoc": { + "imdb.AwardTitle": { "properties": { - "code": { - "example": 200, - "type": "integer" + "id": { + "example": "tt1375666", + "type": "string" }, - "data": { - "$ref": "#/definitions/imdb.TitleResponse" + "title": { + "example": "Inception", + "type": "string" }, - "msg": { - "example": "OK", + "url": { + "example": "https://www.imdb.com/title/tt1375666/", "type": "string" } }, "type": "object" }, - "instagram.BusinessAddress": { + "imdb.CompanyItem": { "properties": { - "city_name": { - "example": "Mountain View, California", + "name": { + "example": "Warner Bros.", "type": "string" }, - "latitude": { - "example": 37.4221, - "type": "number" - }, - "longitude": { - "example": -122.08432, - "type": "number" - }, - "street_address": { - "example": "1600 Amphitheatre Pkwy", + "note": { + "example": "presents", "type": "string" }, - "zip_code": { - "example": "94043", + "public_signals": { + "example": 2, + "type": "integer" + }, + "url": { + "example": "https://www.imdb.com/company/co0002663/", "type": "string" } }, "type": "object" }, - "instagram.Caption": { + "imdb.CompanySection": { "properties": { - "text": { + "companies": { + "items": { + "$ref": "#/definitions/imdb.CompanyItem" + }, + "type": "array" + }, + "name": { + "example": "Production Companies", "type": "string" }, - "user": { - "$ref": "#/definitions/instagram.User" + "slug": { + "example": "production-companies", + "type": "string" } }, "type": "object" }, - "instagram.ClipsMetadata": { + "imdb.CreditItem": { "properties": { - "audio_type": { + "character": { + "example": "Dom Cobb", "type": "string" }, - "is_shared_to_fb": { - "type": "boolean" + "name": { + "example": "Christopher Nolan", + "type": "string" }, - "original_sound_info": { - "$ref": "#/definitions/instagram.OriginalSoundInfo" - } - }, - "type": "object" - }, - "instagram.IGArtist": { - "properties": { - "id": { + "role": { + "example": "written by", "type": "string" }, - "username": { + "url": { + "example": "https://www.imdb.com/name/nm0634240/", "type": "string" } }, "type": "object" }, - "instagram.IGCaption": { + "imdb.CreditSection": { "properties": { - "created_at": { - "type": "integer" + "credits": { + "items": { + "$ref": "#/definitions/imdb.CreditItem" + }, + "type": "array" }, - "pk": { + "name": { + "example": "Directed by", "type": "string" }, - "text": { + "slug": { + "example": "directed-by", "type": "string" } }, "type": "object" }, - "instagram.IGOwner": { + "imdb.CreditsResponse": { "properties": { + "fetched_at": { + "example": "2026-06-07T14:46:16Z", + "type": "string" + }, "id": { + "example": "tt1375666", "type": "string" }, - "is_private": { + "public_page_derived": { + "example": true, "type": "boolean" }, - "pk": { - "type": "string" + "sections": { + "items": { + "$ref": "#/definitions/imdb.CreditSection" + }, + "type": "array" }, - "profile_pic_url": { + "source_url": { + "example": "https://www.imdb.com/title/tt1375666/fullcredits/", "type": "string" }, - "username": { + "url": { + "example": "https://www.imdb.com/title/tt1375666/fullcredits/", "type": "string" } }, "type": "object" }, - "instagram.IGUser": { + "imdb.EpisodeItem": { "properties": { - "full_name": { - "type": "string" - }, - "id": { + "air_date": { + "example": "17 Apr 2011", "type": "string" }, - "is_private": { - "type": "boolean" - }, - "is_verified": { - "type": "boolean" + "episode": { + "example": 1, + "type": "integer" }, - "pk": { + "id": { + "example": "tt1480055", "type": "string" }, - "profile_pic_url": { + "plot": { "type": "string" }, - "username": { - "type": "string" - } - }, - "type": "object" - }, - "instagram.ImageCandidate": { - "properties": { - "height": { + "public_signals": { + "example": 6, "type": "integer" }, - "url": { - "type": "string" - }, - "width": { + "rating_count": { + "example": 52000, "type": "integer" - } - }, - "type": "object" - }, - "instagram.ImageVersions": { - "properties": { - "candidates": { - "items": { - "$ref": "#/definitions/instagram.ImageCandidate" - }, - "type": "array" - } - }, - "type": "object" - }, - "instagram.ImageVersions2": { - "properties": { - "candidates": { - "items": { - "$ref": "#/definitions/instagram.ImageCandidate" - }, - "type": "array" - } - }, - "type": "object" - }, - "instagram.Item": { - "properties": { - "media": { - "$ref": "#/definitions/instagram.Media" - } - }, - "type": "object" - }, - "instagram.Media": { - "properties": { - "caption": { - "allOf": [ - { - "$ref": "#/definitions/instagram.Caption" - } - ], - "description": "pointer so it can be nil" }, - "code": { - "type": "string" + "rating_value": { + "example": 8.9, + "type": "number" }, - "comment_count": { + "season": { + "example": 1, "type": "integer" }, - "display_uri": { + "title": { + "example": "Winter Is Coming", "type": "string" }, - "id": { + "url": { + "example": "https://www.imdb.com/title/tt1480055/", "type": "string" - }, - "image_versions2": { - "$ref": "#/definitions/instagram.ImageVersions" - }, - "like_count": { - "type": "integer" - }, - "media_type": { - "description": "1=Image 2=Video 8=Album", - "type": "integer" - }, - "play_count": { - "type": "integer" - }, - "taken_at": { - "type": "integer" } }, "type": "object" }, - "instagram.MediaItem": { + "imdb.EpisodesResponse": { "properties": { - "accessibility_caption": { - "type": "string" - }, - "caption": { - "$ref": "#/definitions/instagram.IGCaption" - }, - "clips_metadata": { - "$ref": "#/definitions/instagram.ClipsMetadata" - }, - "code": { - "type": "string" - }, - "comment_count": { - "type": "integer" + "episodes": { + "items": { + "$ref": "#/definitions/imdb.EpisodeItem" + }, + "type": "array" }, - "display_uri": { + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" }, - "has_audio": { - "type": "boolean" - }, "id": { + "example": "tt0944947", "type": "string" }, - "image_versions2": { - "$ref": "#/definitions/instagram.ImageVersions2" - }, - "like_count": { - "type": "integer" - }, - "link": { - "type": "string" - }, - "media_type": { + "limit": { + "example": 10, "type": "integer" }, - "original_height": { - "type": "integer" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "original_width": { + "season": { + "example": 1, "type": "integer" }, - "owner": { - "$ref": "#/definitions/instagram.IGOwner" - }, - "pk": { + "source_url": { + "example": "https://www.imdb.com/title/tt0944947/episodes/?season=1", "type": "string" }, - "product_type": { + "url": { + "example": "https://www.imdb.com/title/tt0944947/episodes/", "type": "string" - }, - "taken_at": { - "type": "integer" - }, - "user": { - "$ref": "#/definitions/instagram.IGUser" - }, - "video_versions": { - "items": { - "$ref": "#/definitions/instagram.VideoVersion" - }, - "type": "array" - }, - "view_count": { - "type": "integer" } }, "type": "object" }, - "instagram.OriginalSoundInfo": { + "imdb.KeywordItem": { "properties": { - "audio_asset_id": { + "keyword": { + "example": "dream", "type": "string" }, - "ig_artist": { - "$ref": "#/definitions/instagram.IGArtist" - }, - "is_explicit": { - "type": "boolean" + "public_signals": { + "example": 2, + "type": "integer" }, - "original_audio_title": { + "url": { + "example": "https://www.imdb.com/search/keyword/?keywords=dream", "type": "string" - }, - "should_mute_audio": { - "type": "boolean" } }, "type": "object" }, - "instagram.PagingInfo": { + "imdb.LocationItem": { "properties": { - "max_id": { + "location": { + "example": "Paris, France", "type": "string" }, - "more_available": { - "type": "boolean" + "note": { + "example": "Ariadne learns to build dreams", + "type": "string" + }, + "public_signals": { + "example": 2, + "type": "integer" } }, "type": "object" }, - "instagram.Post": { + "imdb.NameAwardsResponse": { "properties": { - "caption": { - "example": "You popped the big question. For all the questions that follow, try AI Mode in Search.", - "type": "string" - }, - "children": { - "description": "nested carousel media", + "awards": { "items": { - "$ref": "#/definitions/instagram.Post" + "$ref": "#/definitions/imdb.AwardItem" }, "type": "array" }, - "comment_count": { - "example": 43, - "type": "integer" - }, - "height": { - "example": 1000, - "type": "integer" + "fetched_at": { + "example": "2026-06-07T14:46:16Z", + "type": "string" }, "id": { - "example": "3694065742636342530", + "example": "nm0634240", "type": "string" }, - "is_video": { - "example": false, + "public_page_derived": { + "example": true, "type": "boolean" }, - "like_count": { - "example": 1880, - "type": "integer" - }, - "media_url": { - "example": "https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/…n.jpg", + "source_url": { + "example": "https://www.imdb.com/name/nm0634240/awards/", "type": "string" }, - "product_type": { - "example": "", + "url": { + "example": "https://www.imdb.com/name/nm0634240/awards/", + "type": "string" + } + }, + "type": "object" + }, + "imdb.NameCreditItem": { + "properties": { + "episodes": { + "example": "3 episodes", "type": "string" }, - "shortcode": { - "example": "DND9TiOx10C", + "id": { + "example": "tt1375666", "type": "string" }, - "taken_at": { - "example": "2025-08-07T17:16:14Z", + "role": { + "example": "directed by", "type": "string" }, - "video_url": { - "example": "", + "title": { + "example": "Inception", "type": "string" }, - "view_count": { - "description": "counters become pointers so they vanish when nil", - "example": 25023, - "type": "integer" + "url": { + "example": "https://www.imdb.com/title/tt1375666/", + "type": "string" }, - "width": { - "example": 750, - "type": "integer" + "year": { + "example": "2010", + "type": "string" } }, "type": "object" }, - "instagram.ReelResponse": { + "imdb.NameCreditSection": { "properties": { - "items": { + "credits": { "items": { - "$ref": "#/definitions/instagram.Item" + "$ref": "#/definitions/imdb.NameCreditItem" }, "type": "array" }, - "paging_info": { - "$ref": "#/definitions/instagram.PagingInfo" + "name": { + "example": "Director", + "type": "string" + }, + "slug": { + "example": "director", + "type": "string" } }, "type": "object" }, - "instagram.RelatedProfile": { + "imdb.NameCreditsResponse": { "properties": { - "full_name": { - "example": "Gmail", + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" }, "id": { - "example": "1234567890", + "example": "nm0634240", "type": "string" }, - "is_private": { - "example": false, - "type": "boolean" - }, - "is_verified": { + "public_page_derived": { "example": true, "type": "boolean" }, - "profile_pic_url": { - "example": "https://…/profile.jpg", + "sections": { + "items": { + "$ref": "#/definitions/imdb.NameCreditSection" + }, + "type": "array" + }, + "source_url": { + "example": "https://www.imdb.com/name/nm0634240/", "type": "string" }, - "username": { - "example": "gmail", + "url": { + "example": "https://www.imdb.com/name/nm0634240/", "type": "string" } }, "type": "object" }, - "instagram.User": { + "imdb.NameKnownForItem": { "properties": { - "full_name": { + "category": { + "example": "Director", "type": "string" }, "id": { + "example": "tt1375666", "type": "string" }, - "username": { + "title": { + "example": "Inception", + "type": "string" + }, + "url": { + "example": "https://www.imdb.com/title/tt1375666/", + "type": "string" + }, + "year": { + "example": "2010", "type": "string" } }, "type": "object" }, - "instagram.UserProfile": { + "imdb.NameResponse": { "properties": { - "bio_links": { - "example": [ - "[\"https://linkin.bio/google\"]" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "biography": { - "example": "Here to help.", + "bio": { "type": "string" }, - "category_name": { - "description": "not present in sample", - "example": "", + "birth_date": { + "example": "1970-07-30", "type": "string" }, - "external_url": { - "example": "https://linkin.bio/google", + "birth_place": { + "example": "London, England, UK", "type": "string" }, - "fbid": { - "example": "17841401778116675", + "death_date": { "type": "string" }, - "followers_count": { - "example": 15607284, - "type": "integer" + "fetched_at": { + "example": "2026-06-07T14:46:16Z", + "type": "string" }, - "following_count": { - "example": 38, - "type": "integer" + "id": { + "example": "nm0634240", + "type": "string" }, - "full_name": { - "example": "Google", + "image_url": { "type": "string" }, - "id": { - "example": "1067259270", + "known_for": { + "items": { + "$ref": "#/definitions/imdb.NameKnownForItem" + }, + "type": "array" + }, + "name": { + "example": "Christopher Nolan", "type": "string" }, - "is_private": { - "example": false, - "type": "boolean" + "professions": { + "items": { + "type": "string" + }, + "type": "array" }, - "is_verified": { + "public_page_derived": { "example": true, "type": "boolean" }, - "location": { - "$ref": "#/definitions/instagram.BusinessAddress" + "source_url": { + "example": "https://www.imdb.com/name/nm0634240/", + "type": "string" }, - "posts": { + "url": { + "example": "https://www.imdb.com/name/nm0634240/", + "type": "string" + } + }, + "type": "object" + }, + "imdb.ParentalGuideCategory": { + "properties": { + "items": { "items": { - "$ref": "#/definitions/instagram.Post" + "type": "string" }, "type": "array" }, - "posts_count": { - "example": 2867, - "type": "integer" + "name": { + "example": "Violence & Gore", + "type": "string" }, - "profile_pic_url": { - "example": "https://scontent-lax3-1.cdninstagram.com/v/t51.2885-19/…n.jpg", + "severity": { + "example": "moderate", "type": "string" }, - "related_profiles": { + "slug": { + "example": "violence-gore", + "type": "string" + } + }, + "type": "object" + }, + "imdb.ParentalGuideResponse": { + "properties": { + "categories": { "items": { - "$ref": "#/definitions/instagram.RelatedProfile" + "$ref": "#/definitions/imdb.ParentalGuideCategory" }, "type": "array" }, - "username": { - "example": "google", + "fetched_at": { + "example": "2026-06-07T14:46:16Z", + "type": "string" + }, + "id": { + "example": "tt1375666", + "type": "string" + }, + "public_page_derived": { + "example": true, + "type": "boolean" + }, + "source_url": { + "example": "https://www.imdb.com/title/tt1375666/parentalguide/", + "type": "string" + }, + "summary": { + "$ref": "#/definitions/imdb.ParentalGuideSummary" + }, + "url": { + "example": "https://www.imdb.com/title/tt1375666/parentalguide/", "type": "string" } }, "type": "object" }, - "instagram.VideoVersion": { + "imdb.ParentalGuideSummary": { "properties": { - "height": { + "categories_count": { + "example": 5, "type": "integer" }, - "type": { + "highest_severity": { + "example": "severe", + "type": "string" + }, + "item_count": { + "example": 24, "type": "integer" }, - "url": { - "type": "string" + "present_categories": { + "items": { + "type": "string" + }, + "type": "array" }, - "width": { + "public_page_signals": { + "example": 12, "type": "integer" + }, + "severity_counts": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" } }, "type": "object" }, - "instagram.postResponseDoc": { + "imdb.Person": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/instagram.MediaItem" + "name": { + "example": "Christopher Nolan", + "type": "string" }, - "msg": { - "example": "OK", + "url": { + "example": "https://www.imdb.com/name/nm0634240/", "type": "string" } }, "type": "object" }, - "instagram.profileResponseDoc": { + "imdb.PublicFactItem": { "properties": { - "code": { - "example": 200, + "public_signals": { + "example": 1, "type": "integer" }, - "data": { - "$ref": "#/definitions/instagram.UserProfile" + "spoiler": { + "example": false, + "type": "boolean" }, - "msg": { - "example": "OK", + "text": { + "example": "The hallway fight was filmed with a rotating set.", "type": "string" } }, "type": "object" }, - "instagram.reelsResponseDoc": { + "imdb.PublicFactsAnalysisSummary": { "properties": { - "code": { - "example": 200, + "company_count": { + "example": 9, "type": "integer" }, - "data": { - "$ref": "#/definitions/instagram.ReelResponse" - }, - "msg": { - "example": "OK", - "type": "string" - } - }, - "type": "object" - }, - "justwatch.AgeCertification": { - "properties": { - "technical_name": { - "example": "PG-13", - "type": "string" - } - }, - "type": "object" - }, - "justwatch.AgeCertificationsResponse": { - "properties": { - "age_certifications": { - "items": { - "$ref": "#/definitions/justwatch.AgeCertification" - }, - "type": "array" - }, - "country": { - "example": "US", - "type": "string" - } - }, - "type": "object" - }, - "justwatch.AnalysisResponse": { - "properties": { - "summary": { - "$ref": "#/definitions/justwatch.AnalysisSummary" - }, - "title": { - "$ref": "#/definitions/justwatch.TitleResponse" - } - }, - "type": "object" - }, - "justwatch.AnalysisSummary": { - "properties": { - "available": { - "example": true, - "type": "boolean" - }, - "best_buy": { - "$ref": "#/definitions/justwatch.Offer" + "company_section_count": { + "example": 3, + "type": "integer" }, - "best_free": { - "$ref": "#/definitions/justwatch.Offer" + "filming_location_count": { + "example": 6, + "type": "integer" }, - "best_rent": { - "$ref": "#/definitions/justwatch.Offer" + "goof_count": { + "example": 4, + "type": "integer" }, - "best_subscription": { - "$ref": "#/definitions/justwatch.Offer" + "keyword_count": { + "example": 20, + "type": "integer" }, - "format_counts": { - "additionalProperties": { - "type": "integer" - }, - "type": "object" + "public_fact_coverage_pages": { + "example": 6, + "type": "integer" }, - "monetization_counts": { - "additionalProperties": { - "type": "integer" - }, - "type": "object" + "public_page_signals": { + "example": 64, + "type": "integer" }, - "price_ranges": { - "additionalProperties": { - "$ref": "#/definitions/justwatch.PriceRange" - }, - "type": "object" + "quote_count": { + "example": 8, + "type": "integer" }, - "provider_count": { - "example": 6, + "spoiler_fact_count": { + "example": 2, "type": "integer" }, - "total_offers": { - "example": 15, + "trivia_count": { + "example": 12, "type": "integer" } }, "type": "object" }, - "justwatch.Backdrop": { - "properties": { - "url": { - "example": "https://images.justwatch.com/backdrop/8735151/s1920/inception.jpg", - "type": "string" - } - }, - "type": "object" - }, - "justwatch.Clip": { + "imdb.ReleaseInfoItem": { "properties": { - "external_id": { - "example": "8hP9D6kZseM", + "country": { + "example": "United States", "type": "string" }, - "provider": { - "example": "YOUTUBE", + "date": { + "example": "16 July 2010", "type": "string" }, - "url": { - "example": "https://www.youtube.com/watch?v=8hP9D6kZseM", + "note": { + "example": "theatrical", "type": "string" } }, "type": "object" }, - "justwatch.Credit": { + "imdb.ReleaseInfoResponse": { "properties": { - "character_name": { - "example": "Dom Cobb", + "alternate_titles": { + "items": { + "$ref": "#/definitions/imdb.AlternateTitle" + }, + "type": "array" + }, + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" }, - "name": { - "example": "Leonardo DiCaprio", + "id": { + "example": "tt1375666", "type": "string" }, - "person_id": { - "example": 1641, - "type": "integer" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "role": { - "example": "ACTOR", + "releases": { + "items": { + "$ref": "#/definitions/imdb.ReleaseInfoItem" + }, + "type": "array" + }, + "source_url": { + "example": "https://www.imdb.com/title/tt1375666/releaseinfo/", + "type": "string" + }, + "url": { + "example": "https://www.imdb.com/title/tt1375666/releaseinfo/", "type": "string" } }, "type": "object" }, - "justwatch.DiscoverResponse": { + "imdb.ReviewItem": { "properties": { - "country": { - "example": "US", + "author": { + "example": "movie_fan", "type": "string" }, - "genres": { - "example": [ - "act" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "language": { - "example": "en", + "date": { + "example": "2024-01-02", "type": "string" }, - "monetization_types": { - "example": [ - "FLATRATE" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "providers": { - "example": [ - "nfx" - ], - "items": { - "type": "string" - }, - "type": "array" + "helpful_votes": { + "example": 123, + "type": "integer" }, - "results": { - "items": { - "$ref": "#/definitions/justwatch.SearchTitle" - }, - "type": "array" + "helpfulness": { + "example": "82%", + "type": "string" }, - "type": { - "example": "all", + "id": { + "example": "rw1234567", "type": "string" }, - "year_max": { - "example": 2026, + "public_signals": { + "example": 5, "type": "integer" }, - "year_min": { - "example": 2020, + "rating": { + "example": 9, "type": "integer" - } - }, - "type": "object" - }, - "justwatch.EpisodeByIDResponse": { - "properties": { - "country": { - "example": "US", + }, + "spoiler": { + "example": false, + "type": "boolean" + }, + "text": { "type": "string" }, - "episode": { - "$ref": "#/definitions/justwatch.EpisodeSummary" + "title": { + "example": "A smart blockbuster", + "type": "string" }, - "language": { - "example": "en", + "total_votes": { + "example": 150, + "type": "integer" + }, + "url": { + "example": "https://www.imdb.com/review/rw1234567/", "type": "string" } }, "type": "object" }, - "justwatch.EpisodeCountryOffers": { + "imdb.ReviewsResponse": { "properties": { - "country": { - "example": "US", + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" }, - "episode": { - "$ref": "#/definitions/justwatch.EpisodeSummary" + "id": { + "example": "tt1375666", + "type": "string" }, - "offers": { - "items": { - "$ref": "#/definitions/justwatch.Offer" - }, - "type": "array" - } - }, - "type": "object" - }, - "justwatch.EpisodeOffersResponse": { - "properties": { - "countries": { + "limit": { + "example": 10, + "type": "integer" + }, + "public_page_derived": { + "example": true, + "type": "boolean" + }, + "reviews": { "items": { - "$ref": "#/definitions/justwatch.EpisodeCountryOffers" + "$ref": "#/definitions/imdb.ReviewItem" }, "type": "array" }, - "id": { - "example": "tse5550494", + "source_url": { + "example": "https://www.imdb.com/title/tt1375666/reviews/", "type": "string" }, - "language": { - "example": "en", + "url": { + "example": "https://www.imdb.com/title/tt1375666/reviews/", "type": "string" } }, "type": "object" }, - "justwatch.EpisodeSummary": { + "imdb.SearchItem": { "properties": { "description": { "type": "string" }, - "episode_number": { - "example": 1, - "type": "integer" - }, "id": { - "example": "tse5550494", - "type": "string" - }, - "object_id": { - "example": 5550494, - "type": "integer" - }, - "object_type": { - "example": "SHOW_EPISODE", + "example": "tt1375666", "type": "string" }, - "offers": { - "items": { - "$ref": "#/definitions/justwatch.Offer" - }, - "type": "array" - }, - "path": { + "image_url": { "type": "string" }, - "poster_url": { + "title": { + "example": "Inception", "type": "string" }, - "title": { - "example": "Long Day's Journey Into Night", + "title_type": { + "example": "Movie", "type": "string" }, "url": { + "example": "https://www.imdb.com/title/tt1375666/", "type": "string" }, "year": { - "example": 2022, - "type": "integer" - } - }, - "type": "object" - }, - "justwatch.Genre": { - "properties": { - "short_name": { - "example": "act", - "type": "string" - }, - "translation": { - "example": "Action & Adventure", + "example": "2010", "type": "string" } }, "type": "object" }, - "justwatch.GenreTitlesResponse": { + "imdb.SearchResponse": { "properties": { - "country": { - "example": "US", + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" }, - "genre": { - "example": "act", - "type": "string" + "limit": { + "example": 10, + "type": "integer" }, - "language": { - "example": "en", + "query": { + "example": "inception", "type": "string" }, "results": { "items": { - "$ref": "#/definitions/justwatch.SearchTitle" + "$ref": "#/definitions/imdb.SearchItem" }, "type": "array" }, - "type": { - "example": "all", + "source_url": { + "example": "https://www.imdb.com/find/?q=inception&s=tt", "type": "string" } }, "type": "object" }, - "justwatch.GenresResponse": { + "imdb.TechnicalSpecItem": { "properties": { - "genres": { + "name": { + "example": "Runtime", + "type": "string" + }, + "slug": { + "example": "runtime", + "type": "string" + }, + "values": { "items": { - "$ref": "#/definitions/justwatch.Genre" + "type": "string" }, "type": "array" - }, - "language": { - "example": "en", - "type": "string" } }, "type": "object" }, - "justwatch.MonetizationTitlesResponse": { + "imdb.TechnicalSpecsResponse": { "properties": { - "country": { - "example": "US", + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" }, - "language": { - "example": "en", + "id": { + "example": "tt1375666", "type": "string" }, - "monetization_type": { - "example": "FLATRATE", + "public_page_derived": { + "example": true, + "type": "boolean" + }, + "source_url": { + "example": "https://www.imdb.com/title/tt1375666/technical/", "type": "string" }, - "results": { + "specs": { "items": { - "$ref": "#/definitions/justwatch.SearchTitle" + "$ref": "#/definitions/imdb.TechnicalSpecItem" }, "type": "array" }, - "type": { - "example": "all", + "url": { + "example": "https://www.imdb.com/title/tt1375666/technical/", "type": "string" } }, "type": "object" }, - "justwatch.NewTitlesResponse": { + "imdb.TitleAwardsResponse": { "properties": { - "country": { - "example": "US", + "awards": { + "items": { + "$ref": "#/definitions/imdb.AwardItem" + }, + "type": "array" + }, + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" }, - "language": { - "example": "en", + "id": { + "example": "tt1375666", "type": "string" }, - "results": { - "items": { - "$ref": "#/definitions/justwatch.SearchTitle" - }, - "type": "array" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "type": { - "example": "all", + "source_url": { + "example": "https://www.imdb.com/title/tt1375666/awards/", + "type": "string" + }, + "url": { + "example": "https://www.imdb.com/title/tt1375666/awards/", "type": "string" } }, "type": "object" }, - "justwatch.Offer": { + "imdb.TitlePublicFactsAnalysisResponse": { "properties": { - "availability": { - "example": "https://schema.org/InStock", - "type": "string" - }, - "category": { - "example": "Blu-Ray", - "type": "string" - }, - "currency": { - "example": "USD", - "type": "string" + "company_credits": { + "$ref": "#/definitions/imdb.TitlePublicFactsResponse" }, - "monetization_type": { - "example": "RENT", - "type": "string" + "filming_locations": { + "$ref": "#/definitions/imdb.TitlePublicFactsResponse" }, - "presentation_type": { - "example": "4K", - "type": "string" + "goofs": { + "$ref": "#/definitions/imdb.TitlePublicFactsResponse" }, - "price": { - "example": 4.99, - "type": "number" + "keywords": { + "$ref": "#/definitions/imdb.TitlePublicFactsResponse" }, - "provider": { - "example": "Amazon Video", - "type": "string" + "not_viewing_advice": { + "example": true, + "type": "boolean" }, - "provider_id": { - "example": 10, - "type": "integer" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "provider_short": { - "example": "amz", - "type": "string" + "quotes": { + "$ref": "#/definitions/imdb.TitlePublicFactsResponse" }, - "provider_technical": { - "example": "amazon", - "type": "string" + "summary": { + "$ref": "#/definitions/imdb.PublicFactsAnalysisSummary" }, - "url": { - "type": "string" + "trivia": { + "$ref": "#/definitions/imdb.TitlePublicFactsResponse" } }, "type": "object" }, - "justwatch.PopularResponse": { + "imdb.TitlePublicFactsResponse": { "properties": { - "country": { - "example": "US", - "type": "string" - }, - "language": { - "example": "en", - "type": "string" - }, - "results": { + "company_credits": { "items": { - "$ref": "#/definitions/justwatch.SearchTitle" + "$ref": "#/definitions/imdb.CompanySection" }, "type": "array" }, - "type": { - "example": "all", - "type": "string" - } - }, - "type": "object" - }, - "justwatch.PriceRange": { - "properties": { - "currency": { - "example": "USD", - "type": "string" - }, - "max": { - "example": 14.99, - "type": "number" - }, - "min": { - "example": 2.99, - "type": "number" - } - }, - "type": "object" - }, - "justwatch.Provider": { - "properties": { - "clear_name": { - "example": "Netflix", - "type": "string" - }, - "icon_url": { - "example": "https://images.justwatch.com/icon/207360008/s100/netflix.jpg", - "type": "string" - }, - "id": { - "example": 8, - "type": "integer" - }, - "short_name": { - "example": "nfx", - "type": "string" - }, - "technical_name": { - "example": "netflix", - "type": "string" - } - }, - "type": "object" - }, - "justwatch.ProviderTitlesResponse": { - "properties": { - "country": { - "example": "US", - "type": "string" - }, - "language": { - "example": "en", - "type": "string" - }, - "provider": { - "example": "nfx", - "type": "string" - }, - "results": { - "items": { - "$ref": "#/definitions/justwatch.SearchTitle" - }, - "type": "array" - }, - "type": { - "example": "all", - "type": "string" - } - }, - "type": "object" - }, - "justwatch.ProvidersResponse": { - "properties": { - "country": { - "example": "US", - "type": "string" - }, - "providers": { + "facts": { "items": { - "$ref": "#/definitions/justwatch.Provider" + "$ref": "#/definitions/imdb.PublicFactItem" }, "type": "array" - } - }, - "type": "object" - }, - "justwatch.Scoring": { - "properties": { - "best_rating": { - "example": "100", - "type": "string" - }, - "certified_fresh": { - "example": true, - "type": "boolean" - }, - "imdb_score": { - "example": 8.8, - "type": "number" - }, - "imdb_votes": { - "example": 2798306, - "type": "integer" - }, - "justwatch_rating": { - "example": 97, - "type": "number" - }, - "rating_count": { - "example": 77696, - "type": "integer" - }, - "tmdb_popularity": { - "example": 38.5801, - "type": "number" - }, - "tmdb_score": { - "example": 8.372, - "type": "number" - }, - "tomato_meter": { - "example": 87, - "type": "integer" - } - }, - "type": "object" - }, - "justwatch.SearchResponse": { - "properties": { - "country": { - "example": "US", - "type": "string" - }, - "language": { - "example": "en", - "type": "string" }, - "query": { - "example": "inception", + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" }, - "results": { - "items": { - "$ref": "#/definitions/justwatch.SearchTitle" - }, - "type": "array" - } - }, - "type": "object" - }, - "justwatch.SearchTitle": { - "properties": { "id": { - "example": "tm92641", - "type": "string" - }, - "object_id": { - "example": 92641, - "type": "integer" - }, - "object_type": { - "example": "MOVIE", + "example": "tt1375666", "type": "string" }, - "offers": { + "keywords": { "items": { - "$ref": "#/definitions/justwatch.Offer" + "$ref": "#/definitions/imdb.KeywordItem" }, "type": "array" }, - "path": { - "example": "/us/movie/inception", - "type": "string" - }, - "poster_url": { - "example": "https://images.justwatch.com/poster/302449148/s718/inception.jpg", - "type": "string" - }, - "title": { - "example": "Inception", - "type": "string" - }, - "url": { - "example": "https://www.justwatch.com/us/movie/inception", - "type": "string" - }, - "year": { - "example": 2010, - "type": "integer" - } - }, - "type": "object" - }, - "justwatch.SeasonByIDResponse": { - "properties": { - "country": { - "example": "US", - "type": "string" - }, - "language": { - "example": "en", - "type": "string" - }, - "season": { - "$ref": "#/definitions/justwatch.SeasonSummary" - } - }, - "type": "object" - }, - "justwatch.SeasonEpisodesResponse": { - "properties": { - "country": { - "example": "US", - "type": "string" - }, - "episodes": { + "locations": { "items": { - "$ref": "#/definitions/justwatch.EpisodeSummary" + "$ref": "#/definitions/imdb.LocationItem" }, "type": "array" }, - "language": { - "example": "en", - "type": "string" - }, - "season": { - "$ref": "#/definitions/justwatch.SeasonSummary" - } - }, - "type": "object" - }, - "justwatch.SeasonSummary": { - "properties": { - "description": { - "type": "string" - }, - "id": { - "example": "tss297253", - "type": "string" - }, - "object_id": { - "example": 297253, - "type": "integer" - }, - "object_type": { - "example": "SHOW_SEASON", - "type": "string" - }, - "path": { - "example": "/us/tv-show/from/season-1", - "type": "string" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "poster_url": { - "example": "https://images.justwatch.com/poster/320190730/s718/season-1.jpg", + "source_url": { + "example": "https://www.imdb.com/title/tt1375666/trivia/", "type": "string" }, - "season_number": { - "example": 1, - "type": "integer" - }, - "title": { - "example": "Season 1", + "type": { + "example": "trivia", "type": "string" }, "url": { - "example": "https://www.justwatch.com/us/tv-show/from/season-1", - "type": "string" - }, - "year": { - "example": 2022, - "type": "integer" - } - }, - "type": "object" - }, - "justwatch.ShowSeasonsResponse": { - "properties": { - "country": { - "example": "US", - "type": "string" - }, - "language": { - "example": "en", - "type": "string" - }, - "seasons": { - "items": { - "$ref": "#/definitions/justwatch.SeasonSummary" - }, - "type": "array" - }, - "show": { - "$ref": "#/definitions/justwatch.TitleResponse" - } - }, - "type": "object" - }, - "justwatch.SimilarTitlesResponse": { - "properties": { - "country": { - "example": "US", - "type": "string" - }, - "id": { - "example": "tm92641", - "type": "string" - }, - "language": { - "example": "en", - "type": "string" - }, - "results": { - "items": { - "$ref": "#/definitions/justwatch.SearchTitle" - }, - "type": "array" - } - }, - "type": "object" - }, - "justwatch.TitleCountryOffers": { - "properties": { - "country": { - "example": "US", + "example": "https://www.imdb.com/title/tt1375666/trivia/", "type": "string" - }, - "offers": { - "items": { - "$ref": "#/definitions/justwatch.Offer" - }, - "type": "array" - }, - "title": { - "$ref": "#/definitions/justwatch.TitleResponse" } }, "type": "object" }, - "justwatch.TitleMediaResponse": { + "imdb.TitleResponse": { "properties": { - "backdrops": { - "items": { - "$ref": "#/definitions/justwatch.Backdrop" - }, - "type": "array" - }, - "clips": { + "cast": { "items": { - "$ref": "#/definitions/justwatch.Clip" + "$ref": "#/definitions/imdb.Person" }, "type": "array" }, - "country": { - "example": "US", + "content_rating": { + "example": "PG-13", "type": "string" }, - "credits": { + "directors": { "items": { - "$ref": "#/definitions/justwatch.Credit" + "$ref": "#/definitions/imdb.Person" }, "type": "array" }, - "id": { - "example": "tm92641", - "type": "string" - }, - "language": { - "example": "en", + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" }, - "title": { - "example": "Inception", - "type": "string" - } - }, - "type": "object" - }, - "justwatch.TitleOffersResponse": { - "properties": { - "countries": { + "genres": { + "example": [ + "Action" + ], "items": { - "$ref": "#/definitions/justwatch.TitleCountryOffers" + "type": "string" }, "type": "array" }, "id": { - "example": "tm92641", - "type": "string" - }, - "language": { - "example": "en", - "type": "string" - } - }, - "type": "object" - }, - "justwatch.TitleResponse": { - "properties": { - "content_rating": { + "example": "tt1375666", "type": "string" }, - "description": { + "image_url": { "type": "string" }, - "genres": { - "items": { - "type": "string" - }, - "type": "array" - }, - "id": { - "example": "tm92641", + "plot": { "type": "string" }, - "object_id": { - "example": 92641, + "popularity_rank": { + "example": 82, "type": "integer" }, - "object_type": { - "example": "MOVIE", - "type": "string" - }, - "offers": { - "items": { - "$ref": "#/definitions/justwatch.Offer" - }, - "type": "array" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "path": { - "example": "/us/movie/inception", - "type": "string" + "rating_count": { + "example": 2600000, + "type": "integer" }, - "poster_url": { - "example": "https://images.justwatch.com/poster/302449148/s718/inception.jpg", - "type": "string" + "rating_value": { + "example": 8.8, + "type": "number" }, "release_date": { - "example": "2010-07-14", + "example": "2010-07-16", "type": "string" }, - "runtime": { - "example": "PT2H28M0S", - "type": "string" + "runtime_minutes": { + "example": 148, + "type": "integer" }, - "scoring": { - "$ref": "#/definitions/justwatch.Scoring" + "source_url": { + "example": "https://www.imdb.com/title/tt1375666/", + "type": "string" }, "title": { "example": "Inception", "type": "string" }, + "title_type": { + "example": "Movie", + "type": "string" + }, "url": { - "example": "https://www.justwatch.com/us/movie/inception", + "example": "https://www.imdb.com/title/tt1375666/", "type": "string" }, "year": { - "example": 2010, - "type": "integer" + "example": "2010", + "type": "string" } }, "type": "object" }, - "justwatch.ageCertificationsResponseDoc": { + "imdb.creditsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.AgeCertificationsResponse" + "$ref": "#/definitions/imdb.CreditsResponse" }, "msg": { "example": "OK", @@ -16571,14 +16681,14 @@ }, "type": "object" }, - "justwatch.analysisResponseDoc": { + "imdb.episodesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.AnalysisResponse" + "$ref": "#/definitions/imdb.EpisodesResponse" }, "msg": { "example": "OK", @@ -16587,14 +16697,14 @@ }, "type": "object" }, - "justwatch.discoverResponseDoc": { + "imdb.nameAwardsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.DiscoverResponse" + "$ref": "#/definitions/imdb.NameAwardsResponse" }, "msg": { "example": "OK", @@ -16603,14 +16713,14 @@ }, "type": "object" }, - "justwatch.episodeByIDResponseDoc": { + "imdb.nameCreditsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.EpisodeByIDResponse" + "$ref": "#/definitions/imdb.NameCreditsResponse" }, "msg": { "example": "OK", @@ -16619,14 +16729,14 @@ }, "type": "object" }, - "justwatch.episodeOffersResponseDoc": { + "imdb.nameResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.EpisodeOffersResponse" + "$ref": "#/definitions/imdb.NameResponse" }, "msg": { "example": "OK", @@ -16635,14 +16745,14 @@ }, "type": "object" }, - "justwatch.genreTitlesResponseDoc": { + "imdb.parentalGuideResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.GenreTitlesResponse" + "$ref": "#/definitions/imdb.ParentalGuideResponse" }, "msg": { "example": "OK", @@ -16651,14 +16761,14 @@ }, "type": "object" }, - "justwatch.genresResponseDoc": { + "imdb.releaseInfoResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.GenresResponse" + "$ref": "#/definitions/imdb.ReleaseInfoResponse" }, "msg": { "example": "OK", @@ -16667,14 +16777,14 @@ }, "type": "object" }, - "justwatch.monetizationTitlesResponseDoc": { + "imdb.reviewsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.MonetizationTitlesResponse" + "$ref": "#/definitions/imdb.ReviewsResponse" }, "msg": { "example": "OK", @@ -16683,14 +16793,14 @@ }, "type": "object" }, - "justwatch.newTitlesResponseDoc": { + "imdb.searchResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.NewTitlesResponse" + "$ref": "#/definitions/imdb.SearchResponse" }, "msg": { "example": "OK", @@ -16699,14 +16809,14 @@ }, "type": "object" }, - "justwatch.popularResponseDoc": { + "imdb.technicalSpecsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.PopularResponse" + "$ref": "#/definitions/imdb.TechnicalSpecsResponse" }, "msg": { "example": "OK", @@ -16715,14 +16825,14 @@ }, "type": "object" }, - "justwatch.providerTitlesResponseDoc": { + "imdb.titleAwardsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.ProviderTitlesResponse" + "$ref": "#/definitions/imdb.TitleAwardsResponse" }, "msg": { "example": "OK", @@ -16731,14 +16841,14 @@ }, "type": "object" }, - "justwatch.providersResponseDoc": { + "imdb.titlePublicFactsAnalysisResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.ProvidersResponse" + "$ref": "#/definitions/imdb.TitlePublicFactsAnalysisResponse" }, "msg": { "example": "OK", @@ -16747,14 +16857,14 @@ }, "type": "object" }, - "justwatch.searchResponseDoc": { + "imdb.titlePublicFactsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.SearchResponse" + "$ref": "#/definitions/imdb.TitlePublicFactsResponse" }, "msg": { "example": "OK", @@ -16763,14 +16873,14 @@ }, "type": "object" }, - "justwatch.seasonByIDResponseDoc": { + "imdb.titleResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/justwatch.SeasonByIDResponse" + "$ref": "#/definitions/imdb.TitleResponse" }, "msg": { "example": "OK", @@ -16779,1228 +16889,1514 @@ }, "type": "object" }, - "justwatch.seasonEpisodesResponseDoc": { + "instagram.BusinessAddress": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/justwatch.SeasonEpisodesResponse" + "city_name": { + "example": "Mountain View, California", + "type": "string" }, - "msg": { - "example": "OK", + "latitude": { + "example": 37.4221, + "type": "number" + }, + "longitude": { + "example": -122.08432, + "type": "number" + }, + "street_address": { + "example": "1600 Amphitheatre Pkwy", + "type": "string" + }, + "zip_code": { + "example": "94043", "type": "string" } }, "type": "object" }, - "justwatch.showSeasonsResponseDoc": { + "instagram.Caption": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/justwatch.ShowSeasonsResponse" - }, - "msg": { - "example": "OK", + "text": { "type": "string" + }, + "user": { + "$ref": "#/definitions/instagram.User" } }, "type": "object" }, - "justwatch.similarTitlesResponseDoc": { + "instagram.ClipsMetadata": { "properties": { - "code": { - "example": 200, - "type": "integer" + "audio_type": { + "type": "string" }, - "data": { - "$ref": "#/definitions/justwatch.SimilarTitlesResponse" + "is_shared_to_fb": { + "type": "boolean" }, - "msg": { - "example": "OK", - "type": "string" + "original_sound_info": { + "$ref": "#/definitions/instagram.OriginalSoundInfo" } }, "type": "object" }, - "justwatch.titleMediaResponseDoc": { + "instagram.IGArtist": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/justwatch.TitleMediaResponse" + "id": { + "type": "string" }, - "msg": { - "example": "OK", + "username": { "type": "string" } }, "type": "object" }, - "justwatch.titleOffersResponseDoc": { + "instagram.IGCaption": { "properties": { - "code": { - "example": 200, + "created_at": { "type": "integer" }, - "data": { - "$ref": "#/definitions/justwatch.TitleOffersResponse" + "pk": { + "type": "string" }, - "msg": { - "example": "OK", + "text": { "type": "string" } }, "type": "object" }, - "justwatch.titleResponseDoc": { + "instagram.IGOwner": { "properties": { - "code": { - "example": 200, - "type": "integer" + "id": { + "type": "string" }, - "data": { - "$ref": "#/definitions/justwatch.TitleResponse" + "is_private": { + "type": "boolean" }, - "msg": { - "example": "OK", + "pk": { + "type": "string" + }, + "profile_pic_url": { + "type": "string" + }, + "username": { "type": "string" } }, "type": "object" }, - "kalshi.BatchMarketHistoryResponse": { + "instagram.IGUser": { "properties": { - "end_ts": { - "example": 1780804800, - "type": "integer" + "full_name": { + "type": "string" }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "id": { "type": "string" }, - "include_latest_before_start": { - "example": false, + "is_private": { "type": "boolean" }, - "markets": { - "items": { - "$ref": "#/definitions/kalshi.MarketHistoryResponse" - }, - "type": "array" - }, - "period_interval": { - "example": 1440, - "type": "integer" + "is_verified": { + "type": "boolean" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/markets/candlesticks", + "pk": { "type": "string" }, - "start_ts": { - "example": 1780286400, - "type": "integer" + "profile_pic_url": { + "type": "string" }, - "tickers": { - "example": [ - "KXELONMARS-99" - ], - "items": { - "type": "string" - }, - "type": "array" + "username": { + "type": "string" } }, "type": "object" }, - "kalshi.BatchOrderBookResponse": { + "instagram.ImageCandidate": { "properties": { - "books": { - "items": { - "$ref": "#/definitions/kalshi.OrderBookResponse" - }, - "type": "array" - }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", - "type": "string" + "height": { + "type": "integer" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/markets/orderbooks", + "url": { "type": "string" }, - "tickers": { - "example": [ - "KXELONMARS-99" - ], + "width": { + "type": "integer" + } + }, + "type": "object" + }, + "instagram.ImageVersions": { + "properties": { + "candidates": { "items": { - "type": "string" + "$ref": "#/definitions/instagram.ImageCandidate" }, "type": "array" } }, "type": "object" }, - "kalshi.CandleOHLC": { + "instagram.ImageVersions2": { "properties": { - "close": { - "example": 0.08, - "type": "number" - }, - "high": { - "example": 0.11, - "type": "number" - }, - "low": { - "example": 0.08, - "type": "number" - }, - "mean": { - "example": 0.1014, - "type": "number" - }, - "open": { - "example": 0.11, - "type": "number" - }, - "previous": { - "example": 0.08, - "type": "number" + "candidates": { + "items": { + "$ref": "#/definitions/instagram.ImageCandidate" + }, + "type": "array" } }, "type": "object" }, - "kalshi.Competition": { + "instagram.Item": { "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" + "media": { + "$ref": "#/definitions/instagram.Media" } }, "type": "object" }, - "kalshi.EventHistoryResponse": { + "instagram.Media": { "properties": { - "adjusted_end_ts": { - "example": 1780804800, - "type": "integer" + "caption": { + "allOf": [ + { + "$ref": "#/definitions/instagram.Caption" + } + ], + "description": "pointer so it can be nil" }, - "end_ts": { - "example": 1780804800, + "code": { + "type": "string" + }, + "comment_count": { "type": "integer" }, - "event_ticker": { - "example": "KXELONMARS-99", + "display_uri": { "type": "string" }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "id": { "type": "string" }, - "include_latest_before_start": { - "example": false, - "type": "boolean" - }, - "market_tickers": { - "example": [ - "KXELONMARS-99" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "markets": { - "items": { - "$ref": "#/definitions/kalshi.MarketHistoryResponse" - }, - "type": "array" + "image_versions2": { + "$ref": "#/definitions/instagram.ImageVersions" }, - "period_interval": { - "example": 1440, + "like_count": { "type": "integer" }, - "series_ticker": { - "example": "KXELONMARS", - "type": "string" + "media_type": { + "description": "1=Image 2=Video 8=Album", + "type": "integer" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/series/KXELONMARS/events/KXELONMARS-99/candlesticks", - "type": "string" + "play_count": { + "type": "integer" }, - "start_ts": { - "example": 1780286400, + "taken_at": { "type": "integer" } }, "type": "object" }, - "kalshi.EventMetadataResponse": { + "instagram.MediaItem": { "properties": { - "competition": { - "$ref": "#/definitions/kalshi.Competition" + "accessibility_caption": { + "type": "string" }, - "competition_scope": { + "caption": { + "$ref": "#/definitions/instagram.IGCaption" + }, + "clips_metadata": { + "$ref": "#/definitions/instagram.ClipsMetadata" + }, + "code": { "type": "string" }, - "event_ticker": { - "example": "KXELONMARS-99", + "comment_count": { + "type": "integer" + }, + "display_uri": { "type": "string" }, - "featured_image_url": { + "has_audio": { + "type": "boolean" + }, + "id": { "type": "string" }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "image_versions2": { + "$ref": "#/definitions/instagram.ImageVersions2" + }, + "like_count": { + "type": "integer" + }, + "link": { "type": "string" }, - "image_url": { - "example": "https://kalshi-public-docs.s3.amazonaws.com/series-images-webp/KXELONMARS.webp", + "media_type": { + "type": "integer" + }, + "original_height": { + "type": "integer" + }, + "original_width": { + "type": "integer" + }, + "owner": { + "$ref": "#/definitions/instagram.IGOwner" + }, + "pk": { "type": "string" }, - "market_details": { - "items": { - "$ref": "#/definitions/kalshi.MarketDetail" - }, - "type": "array" + "product_type": { + "type": "string" }, - "settlement_sources": { + "taken_at": { + "type": "integer" + }, + "user": { + "$ref": "#/definitions/instagram.IGUser" + }, + "video_versions": { "items": { - "$ref": "#/definitions/kalshi.SettlementSource" + "$ref": "#/definitions/instagram.VideoVersion" }, "type": "array" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/events/KXELONMARS-99/metadata", - "type": "string" + "view_count": { + "type": "integer" } }, "type": "object" }, - "kalshi.EventResponse": { + "instagram.OriginalSoundInfo": { "properties": { - "event": { - "$ref": "#/definitions/kalshi.EventRow" - }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "audio_asset_id": { "type": "string" }, - "markets": { - "items": { - "$ref": "#/definitions/kalshi.MarketRow" - }, - "type": "array" + "ig_artist": { + "$ref": "#/definitions/instagram.IGArtist" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/events/KXELONMARS-99", + "is_explicit": { + "type": "boolean" + }, + "original_audio_title": { "type": "string" + }, + "should_mute_audio": { + "type": "boolean" } }, "type": "object" }, - "kalshi.EventRow": { + "instagram.PagingInfo": { "properties": { - "available_on_brokers": { - "example": false, - "type": "boolean" - }, - "category": { - "example": "World", - "type": "string" - }, - "collateral_return_type": { - "example": "MECNET", - "type": "string" - }, - "event_ticker": { - "example": "KXELONMARS-99", + "max_id": { "type": "string" }, - "last_updated": { - "example": "2026-05-10T00:33:53Z", + "more_available": { + "type": "boolean" + } + }, + "type": "object" + }, + "instagram.Post": { + "properties": { + "caption": { + "example": "You popped the big question. For all the questions that follow, try AI Mode in Search.", "type": "string" }, - "markets": { + "children": { + "description": "nested carousel media", "items": { - "$ref": "#/definitions/kalshi.MarketRow" + "$ref": "#/definitions/instagram.Post" }, "type": "array" }, - "mutually_exclusive": { + "comment_count": { + "example": 43, + "type": "integer" + }, + "height": { + "example": 1000, + "type": "integer" + }, + "id": { + "example": "3694065742636342530", + "type": "string" + }, + "is_video": { "example": false, "type": "boolean" }, - "series_ticker": { - "example": "KXELONMARS", + "like_count": { + "example": 1880, + "type": "integer" + }, + "media_url": { + "example": "https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/…n.jpg", "type": "string" }, - "strike_period": { + "product_type": { + "example": "", "type": "string" }, - "sub_title": { - "example": "Before 2099", + "shortcode": { + "example": "DND9TiOx10C", "type": "string" }, - "title": { - "example": "Will Elon Musk visit Mars in his lifetime?", + "taken_at": { + "example": "2025-08-07T17:16:14Z", "type": "string" + }, + "video_url": { + "example": "", + "type": "string" + }, + "view_count": { + "description": "counters become pointers so they vanish when nil", + "example": 25023, + "type": "integer" + }, + "width": { + "example": 750, + "type": "integer" } }, "type": "object" }, - "kalshi.EventsResponse": { + "instagram.ReelResponse": { "properties": { - "cursor": { - "type": "string" - }, - "events": { + "items": { "items": { - "$ref": "#/definitions/kalshi.EventRow" + "$ref": "#/definitions/instagram.Item" }, "type": "array" }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", - "type": "string" - }, - "limit": { - "example": 25, - "type": "integer" - }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/events?limit=25", - "type": "string" + "paging_info": { + "$ref": "#/definitions/instagram.PagingInfo" } }, "type": "object" }, - "kalshi.ExchangeHoursBlock": { + "instagram.RelatedProfile": { "properties": { - "close_time": { - "example": "00:00", + "full_name": { + "example": "Gmail", "type": "string" }, - "open_time": { - "example": "00:00", + "id": { + "example": "1234567890", + "type": "string" + }, + "is_private": { + "example": false, + "type": "boolean" + }, + "is_verified": { + "example": true, + "type": "boolean" + }, + "profile_pic_url": { + "example": "https://…/profile.jpg", + "type": "string" + }, + "username": { + "example": "gmail", "type": "string" } }, "type": "object" }, - "kalshi.ExchangeMaintenanceWindow": { + "instagram.User": { "properties": { - "end_time": { + "full_name": { "type": "string" }, - "reason": { + "id": { "type": "string" }, - "start_time": { + "username": { "type": "string" } }, "type": "object" }, - "kalshi.ExchangeScheduleResponse": { + "instagram.UserProfile": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:00:00Z", - "type": "string" - }, - "maintenance_windows": { + "bio_links": { + "example": [ + "[\"https://linkin.bio/google\"]" + ], "items": { - "$ref": "#/definitions/kalshi.ExchangeMaintenanceWindow" + "type": "string" }, "type": "array" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/exchange/schedule", + "biography": { + "example": "Here to help.", "type": "string" }, - "standard_hours": { - "items": { - "$ref": "#/definitions/kalshi.ExchangeStandardHours" - }, - "type": "array" - } - }, - "type": "object" - }, - "kalshi.ExchangeStandardHours": { - "properties": { - "end_time": { - "example": "2200-12-01T00:00:00Z", + "category_name": { + "description": "not present in sample", + "example": "", "type": "string" }, - "friday": { - "items": { - "$ref": "#/definitions/kalshi.ExchangeHoursBlock" - }, - "type": "array" + "external_url": { + "example": "https://linkin.bio/google", + "type": "string" }, - "monday": { - "items": { - "$ref": "#/definitions/kalshi.ExchangeHoursBlock" - }, - "type": "array" + "fbid": { + "example": "17841401778116675", + "type": "string" }, - "saturday": { - "items": { - "$ref": "#/definitions/kalshi.ExchangeHoursBlock" - }, - "type": "array" + "followers_count": { + "example": 15607284, + "type": "integer" }, - "start_time": { - "example": "2024-12-01T00:00:00Z", + "following_count": { + "example": 38, + "type": "integer" + }, + "full_name": { + "example": "Google", "type": "string" }, - "sunday": { - "items": { - "$ref": "#/definitions/kalshi.ExchangeHoursBlock" - }, - "type": "array" + "id": { + "example": "1067259270", + "type": "string" }, - "thursday": { - "items": { - "$ref": "#/definitions/kalshi.ExchangeHoursBlock" - }, - "type": "array" + "is_private": { + "example": false, + "type": "boolean" }, - "tuesday": { + "is_verified": { + "example": true, + "type": "boolean" + }, + "location": { + "$ref": "#/definitions/instagram.BusinessAddress" + }, + "posts": { "items": { - "$ref": "#/definitions/kalshi.ExchangeHoursBlock" + "$ref": "#/definitions/instagram.Post" }, "type": "array" }, - "wednesday": { + "posts_count": { + "example": 2867, + "type": "integer" + }, + "profile_pic_url": { + "example": "https://scontent-lax3-1.cdninstagram.com/v/t51.2885-19/…n.jpg", + "type": "string" + }, + "related_profiles": { "items": { - "$ref": "#/definitions/kalshi.ExchangeHoursBlock" + "$ref": "#/definitions/instagram.RelatedProfile" }, "type": "array" + }, + "username": { + "example": "google", + "type": "string" } }, "type": "object" }, - "kalshi.ExchangeStatusResponse": { + "instagram.VideoVersion": { "properties": { - "exchange_active": { - "example": true, - "type": "boolean" + "height": { + "type": "integer" }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", - "type": "string" + "type": { + "type": "integer" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/exchange/status", + "url": { "type": "string" }, - "trading_active": { - "example": true, - "type": "boolean" + "width": { + "type": "integer" } }, "type": "object" }, - "kalshi.HistoricalCutoffResponse": { + "instagram.postResponseDoc": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:00:00Z", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "market_settled_at": { - "example": "2026-04-08T00:00:00Z", - "type": "string" + "data": { + "$ref": "#/definitions/instagram.MediaItem" }, - "orders_updated_at": { - "example": "2026-04-08T00:00:00Z", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "instagram.profileResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/historical/cutoff", - "type": "string" + "data": { + "$ref": "#/definitions/instagram.UserProfile" }, - "trades_created_at": { - "example": "2026-04-08T00:00:00Z", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "kalshi.HistoricalMarketResponse": { + "instagram.reelsResponseDoc": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:00:00Z", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "market": { - "$ref": "#/definitions/kalshi.MarketRow" + "data": { + "$ref": "#/definitions/instagram.ReelResponse" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/historical/markets/KXMVECROSSCATEGORY-S2026144E784A147-ED367B84557", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "kalshi.HistoricalMarketsResponse": { + "justwatch.AgeCertification": { "properties": { - "cursor": { - "type": "string" - }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "technical_name": { + "example": "PG-13", "type": "string" - }, - "limit": { - "example": 25, - "type": "integer" - }, - "markets": { + } + }, + "type": "object" + }, + "justwatch.AgeCertificationsResponse": { + "properties": { + "age_certifications": { "items": { - "$ref": "#/definitions/kalshi.MarketRow" + "$ref": "#/definitions/justwatch.AgeCertification" }, "type": "array" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/historical/markets?limit=25", + "country": { + "example": "US", "type": "string" } }, "type": "object" }, - "kalshi.HistoricalTradesResponse": { + "justwatch.AnalysisResponse": { "properties": { - "cursor": { - "type": "string" + "summary": { + "$ref": "#/definitions/justwatch.AnalysisSummary" }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", - "type": "string" + "title": { + "$ref": "#/definitions/justwatch.TitleResponse" + } + }, + "type": "object" + }, + "justwatch.AnalysisSummary": { + "properties": { + "available": { + "example": true, + "type": "boolean" }, - "limit": { - "example": 25, - "type": "integer" + "best_buy": { + "$ref": "#/definitions/justwatch.Offer" }, - "max_ts": { - "example": 1775689200, - "type": "integer" + "best_free": { + "$ref": "#/definitions/justwatch.Offer" }, - "min_ts": { - "example": 1775602800, - "type": "integer" + "best_rent": { + "$ref": "#/definitions/justwatch.Offer" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/historical/trades?limit=25", - "type": "string" + "best_subscription": { + "$ref": "#/definitions/justwatch.Offer" }, - "ticker": { - "example": "KXMVECROSSCATEGORY-S2026144E784A147-ED367B84557", - "type": "string" + "format_counts": { + "additionalProperties": { + "type": "integer" + }, + "type": "object" }, - "trades": { - "items": { - "$ref": "#/definitions/kalshi.TradeRow" + "monetization_counts": { + "additionalProperties": { + "type": "integer" }, - "type": "array" + "type": "object" + }, + "price_ranges": { + "additionalProperties": { + "$ref": "#/definitions/justwatch.PriceRange" + }, + "type": "object" + }, + "provider_count": { + "example": 6, + "type": "integer" + }, + "total_offers": { + "example": 15, + "type": "integer" } }, "type": "object" }, - "kalshi.MarketCandlestick": { + "justwatch.Backdrop": { "properties": { - "end_period_at": { - "example": "2026-06-01T00:00:00Z", + "url": { + "example": "https://images.justwatch.com/backdrop/8735151/s1920/inception.jpg", + "type": "string" + } + }, + "type": "object" + }, + "justwatch.Clip": { + "properties": { + "external_id": { + "example": "8hP9D6kZseM", "type": "string" }, - "end_period_ts": { - "example": 1780286400, - "type": "integer" - }, - "open_interest": { - "example": 32980.77, - "type": "number" - }, - "price": { - "$ref": "#/definitions/kalshi.CandleOHLC" - }, - "volume": { - "example": 7, - "type": "number" - }, - "yes_ask": { - "$ref": "#/definitions/kalshi.CandleOHLC" + "provider": { + "example": "YOUTUBE", + "type": "string" }, - "yes_bid": { - "$ref": "#/definitions/kalshi.CandleOHLC" + "url": { + "example": "https://www.youtube.com/watch?v=8hP9D6kZseM", + "type": "string" } }, "type": "object" }, - "kalshi.MarketDetail": { + "justwatch.Credit": { "properties": { - "color_code": { - "example": "#AA00FF", + "character_name": { + "example": "Dom Cobb", "type": "string" }, - "image_url": { + "name": { + "example": "Leonardo DiCaprio", "type": "string" }, - "market_ticker": { - "example": "KXELONMARS-99", + "person_id": { + "example": 1641, + "type": "integer" + }, + "role": { + "example": "ACTOR", "type": "string" } }, "type": "object" }, - "kalshi.MarketHistoryResponse": { + "justwatch.DiscoverResponse": { "properties": { - "candlesticks": { + "country": { + "example": "US", + "type": "string" + }, + "genres": { + "example": [ + "act" + ], "items": { - "$ref": "#/definitions/kalshi.MarketCandlestick" + "type": "string" }, "type": "array" }, - "end_ts": { - "example": 1780804800, - "type": "integer" - }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "language": { + "example": "en", "type": "string" }, - "include_latest_before_start": { - "example": false, - "type": "boolean" + "monetization_types": { + "example": [ + "FLATRATE" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "period_interval": { - "example": 1440, - "type": "integer" + "providers": { + "example": [ + "nfx" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "series_ticker": { - "example": "KXELONMARS", - "type": "string" + "results": { + "items": { + "$ref": "#/definitions/justwatch.SearchTitle" + }, + "type": "array" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/series/KXELONMARS/markets/KXELONMARS-99/candlesticks", + "type": { + "example": "all", "type": "string" }, - "start_ts": { - "example": 1780286400, + "year_max": { + "example": 2026, "type": "integer" }, - "ticker": { - "example": "KXELONMARS-99", - "type": "string" + "year_min": { + "example": 2020, + "type": "integer" } }, "type": "object" }, - "kalshi.MarketResponse": { + "justwatch.EpisodeByIDResponse": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "country": { + "example": "US", "type": "string" }, - "market": { - "$ref": "#/definitions/kalshi.MarketRow" + "episode": { + "$ref": "#/definitions/justwatch.EpisodeSummary" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/markets/KXELONMARS-99", + "language": { + "example": "en", "type": "string" } }, "type": "object" }, - "kalshi.MarketRow": { + "justwatch.EpisodeCountryOffers": { "properties": { - "close_time": { - "example": "2099-08-01T04:59:00Z", - "type": "string" - }, - "event_ticker": { - "example": "KXELONMARS-99", + "country": { + "example": "US", "type": "string" }, - "expiration_time": { - "example": "2099-08-08T15:00:00Z", - "type": "string" + "episode": { + "$ref": "#/definitions/justwatch.EpisodeSummary" }, - "last_price": { - "example": 0.08, - "type": "number" + "offers": { + "items": { + "$ref": "#/definitions/justwatch.Offer" + }, + "type": "array" + } + }, + "type": "object" + }, + "justwatch.EpisodeOffersResponse": { + "properties": { + "countries": { + "items": { + "$ref": "#/definitions/justwatch.EpisodeCountryOffers" + }, + "type": "array" }, - "liquidity": { - "example": 0, - "type": "number" + "id": { + "example": "tse5550494", + "type": "string" }, - "market_type": { - "example": "binary", + "language": { + "example": "en", + "type": "string" + } + }, + "type": "object" + }, + "justwatch.EpisodeSummary": { + "properties": { + "description": { "type": "string" }, - "no_ask": { - "example": 0.92, - "type": "number" + "episode_number": { + "example": 1, + "type": "integer" }, - "no_bid": { - "example": 0.9, - "type": "number" + "id": { + "example": "tse5550494", + "type": "string" }, - "open_interest": { - "example": 32773.57, - "type": "number" + "object_id": { + "example": 5550494, + "type": "integer" }, - "open_time": { - "example": "2025-08-28T20:45:00Z", + "object_type": { + "example": "SHOW_EPISODE", "type": "string" }, - "previous_price": { - "example": 0.1, - "type": "number" + "offers": { + "items": { + "$ref": "#/definitions/justwatch.Offer" + }, + "type": "array" }, - "response_price_unit": { - "example": "usd_cent", + "path": { "type": "string" }, - "result": { + "poster_url": { "type": "string" }, - "rules_primary": { + "title": { + "example": "Long Day's Journey Into Night", "type": "string" }, - "status": { - "example": "active", + "url": { "type": "string" }, - "sub_title": { - "example": "Mars", + "year": { + "example": 2022, + "type": "integer" + } + }, + "type": "object" + }, + "justwatch.Genre": { + "properties": { + "short_name": { + "example": "act", "type": "string" }, - "ticker": { - "example": "KXELONMARS-99", + "translation": { + "example": "Action & Adventure", "type": "string" - }, - "title": { - "example": "Will Elon Musk visit Mars before Aug 1, 2099?", - "type": "string" - }, - "volume": { - "example": 94840.88, - "type": "number" - }, - "volume_24h": { - "example": 16, - "type": "number" - }, - "yes_ask": { - "example": 0.1, - "type": "number" - }, - "yes_bid": { - "example": 0.08, - "type": "number" } }, "type": "object" }, - "kalshi.MarketsResponse": { + "justwatch.GenreTitlesResponse": { "properties": { - "cursor": { + "country": { + "example": "US", "type": "string" }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "genre": { + "example": "act", "type": "string" }, - "limit": { - "example": 25, - "type": "integer" + "language": { + "example": "en", + "type": "string" }, - "markets": { + "results": { "items": { - "$ref": "#/definitions/kalshi.MarketRow" + "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/markets?limit=25", + "type": { + "example": "all", "type": "string" } }, "type": "object" }, - "kalshi.MultivariateEventsResponse": { + "justwatch.GenresResponse": { "properties": { - "cursor": { - "type": "string" - }, - "events": { + "genres": { "items": { - "$ref": "#/definitions/kalshi.EventRow" + "$ref": "#/definitions/justwatch.Genre" }, "type": "array" }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", - "type": "string" - }, - "limit": { - "example": 25, - "type": "integer" - }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/events/multivariate?limit=25", + "language": { + "example": "en", "type": "string" } }, "type": "object" }, - "kalshi.OrderBookLevel": { - "properties": { - "price": { - "example": 0.08, - "type": "number" - }, - "size": { - "example": 185.72, - "type": "number" - } - }, - "type": "object" - }, - "kalshi.OrderBookResponse": { + "justwatch.MonetizationTitlesResponse": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:00:00Z", - "type": "string" - }, - "no": { - "items": { - "$ref": "#/definitions/kalshi.OrderBookLevel" - }, - "type": "array" - }, - "raw_unit_hint": { - "example": "dollars", + "country": { + "example": "US", "type": "string" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/markets/KXELONMARS-99/orderbook", + "language": { + "example": "en", "type": "string" }, - "ticker": { - "example": "KXELONMARS-99", + "monetization_type": { + "example": "FLATRATE", "type": "string" }, - "yes": { + "results": { "items": { - "$ref": "#/definitions/kalshi.OrderBookLevel" + "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" - } - }, - "type": "object" - }, - "kalshi.SeriesDetailResponse": { - "properties": { - "fetched_at": { - "example": "2026-06-07T14:00:00Z", - "type": "string" - }, - "series": { - "$ref": "#/definitions/kalshi.SeriesRow" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/series/KXELONMARS", + "type": { + "example": "all", "type": "string" } }, "type": "object" }, - "kalshi.SeriesResponse": { + "justwatch.NewTitlesResponse": { "properties": { - "cursor": { + "country": { + "example": "US", "type": "string" }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "language": { + "example": "en", "type": "string" }, - "limit": { - "example": 25, - "type": "integer" - }, - "series": { + "results": { "items": { - "$ref": "#/definitions/kalshi.SeriesRow" + "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/series?limit=25", + "type": { + "example": "all", "type": "string" } }, "type": "object" }, - "kalshi.SeriesRow": { + "justwatch.Offer": { "properties": { + "availability": { + "example": "https://schema.org/InStock", + "type": "string" + }, "category": { - "example": "Politics", + "example": "Blu-Ray", "type": "string" }, - "contract_terms_url": { + "currency": { + "example": "USD", "type": "string" }, - "contract_url": { + "monetization_type": { + "example": "RENT", "type": "string" }, - "fee_multiplier": { - "example": 1, + "presentation_type": { + "example": "4K", + "type": "string" + }, + "price": { + "example": 4.99, "type": "number" }, - "fee_type": { - "example": "quadratic", + "provider": { + "example": "Amazon Video", "type": "string" }, - "frequency": { - "example": "custom", + "provider_id": { + "example": 10, + "type": "integer" + }, + "provider_short": { + "example": "amz", "type": "string" }, - "last_updated": { - "example": "2026-06-01T15:24:00Z", + "provider_technical": { + "example": "amazon", "type": "string" }, - "series_ticker": { - "example": "KXELONMARS", + "url": { + "type": "string" + } + }, + "type": "object" + }, + "justwatch.PopularResponse": { + "properties": { + "country": { + "example": "US", "type": "string" }, - "settlement_sources": { + "language": { + "example": "en", + "type": "string" + }, + "results": { "items": { - "$ref": "#/definitions/kalshi.SettlementSource" + "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" }, - "title": { - "example": "Will Elon Musk visit Mars in his lifetime?", + "type": { + "example": "all", "type": "string" } }, "type": "object" }, - "kalshi.SettlementSource": { + "justwatch.PriceRange": { "properties": { - "name": { - "example": "The Guardian", + "currency": { + "example": "USD", "type": "string" }, - "url": { - "example": "https://www.theguardian.com", - "type": "string" + "max": { + "example": 14.99, + "type": "number" + }, + "min": { + "example": 2.99, + "type": "number" } }, "type": "object" }, - "kalshi.TradeRow": { + "justwatch.Provider": { "properties": { - "count": { - "example": 2, - "type": "number" + "clear_name": { + "example": "Netflix", + "type": "string" }, - "created_time": { - "example": "2026-06-07T07:23:05Z", + "icon_url": { + "example": "https://images.justwatch.com/icon/207360008/s100/netflix.jpg", "type": "string" }, - "created_ts": { - "example": 1780816985, + "id": { + "example": 8, "type": "integer" }, - "is_block_trade": { - "example": false, - "type": "boolean" - }, - "no_price": { - "example": 0.91, - "type": "number" - }, - "taker_book_side": { - "example": "ask", + "short_name": { + "example": "nfx", "type": "string" }, - "taker_outcome_side": { - "example": "no", + "technical_name": { + "example": "netflix", "type": "string" - }, - "taker_side": { - "example": "no", + } + }, + "type": "object" + }, + "justwatch.ProviderTitlesResponse": { + "properties": { + "country": { + "example": "US", "type": "string" }, - "ticker": { - "example": "KXELONMARS-99", + "language": { + "example": "en", "type": "string" }, - "trade_id": { - "example": "9126fe1f-7233-7c75-2c37-06ce7841bbe3", + "provider": { + "example": "nfx", "type": "string" }, - "yes_price": { - "example": 0.09, - "type": "number" + "results": { + "items": { + "$ref": "#/definitions/justwatch.SearchTitle" + }, + "type": "array" + }, + "type": { + "example": "all", + "type": "string" } }, "type": "object" }, - "kalshi.TradesResponse": { + "justwatch.ProvidersResponse": { "properties": { - "cursor": { + "country": { + "example": "US", "type": "string" }, - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "providers": { + "items": { + "$ref": "#/definitions/justwatch.Provider" + }, + "type": "array" + } + }, + "type": "object" + }, + "justwatch.Scoring": { + "properties": { + "best_rating": { + "example": "100", "type": "string" }, - "limit": { - "example": 25, + "certified_fresh": { + "example": true, + "type": "boolean" + }, + "imdb_score": { + "example": 8.8, + "type": "number" + }, + "imdb_votes": { + "example": 2798306, "type": "integer" }, - "max_ts": { - "example": 1780873200, + "justwatch_rating": { + "example": 97, + "type": "number" + }, + "rating_count": { + "example": 77696, "type": "integer" }, - "min_ts": { - "example": 1780786800, + "tmdb_popularity": { + "example": 38.5801, + "type": "number" + }, + "tmdb_score": { + "example": 8.372, + "type": "number" + }, + "tomato_meter": { + "example": 87, "type": "integer" + } + }, + "type": "object" + }, + "justwatch.SearchResponse": { + "properties": { + "country": { + "example": "US", + "type": "string" }, - "source_url": { - "example": "https://external-api.kalshi.com/trade-api/v2/markets/trades?limit=25", + "language": { + "example": "en", "type": "string" }, - "ticker": { - "example": "KXELONMARS-99", + "query": { + "example": "inception", "type": "string" }, - "trades": { + "results": { "items": { - "$ref": "#/definitions/kalshi.TradeRow" + "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" } }, "type": "object" }, - "kalshi.batchMarketHistoryResponseDoc": { + "justwatch.SearchTitle": { "properties": { - "code": { - "example": 200, + "id": { + "example": "tm92641", + "type": "string" + }, + "object_id": { + "example": 92641, "type": "integer" }, - "data": { - "$ref": "#/definitions/kalshi.BatchMarketHistoryResponse" + "object_type": { + "example": "MOVIE", + "type": "string" }, - "msg": { - "example": "OK", + "offers": { + "items": { + "$ref": "#/definitions/justwatch.Offer" + }, + "type": "array" + }, + "path": { + "example": "/us/movie/inception", + "type": "string" + }, + "poster_url": { + "example": "https://images.justwatch.com/poster/302449148/s718/inception.jpg", + "type": "string" + }, + "title": { + "example": "Inception", + "type": "string" + }, + "url": { + "example": "https://www.justwatch.com/us/movie/inception", "type": "string" + }, + "year": { + "example": 2010, + "type": "integer" } }, "type": "object" }, - "kalshi.batchOrderBookResponseDoc": { + "justwatch.SeasonByIDResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/kalshi.BatchOrderBookResponse" + "country": { + "example": "US", + "type": "string" }, - "msg": { - "example": "OK", + "language": { + "example": "en", "type": "string" + }, + "season": { + "$ref": "#/definitions/justwatch.SeasonSummary" } }, "type": "object" }, - "kalshi.eventHistoryResponseDoc": { + "justwatch.SeasonEpisodesResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "country": { + "example": "US", + "type": "string" }, - "data": { - "$ref": "#/definitions/kalshi.EventHistoryResponse" + "episodes": { + "items": { + "$ref": "#/definitions/justwatch.EpisodeSummary" + }, + "type": "array" }, - "msg": { - "example": "OK", + "language": { + "example": "en", "type": "string" + }, + "season": { + "$ref": "#/definitions/justwatch.SeasonSummary" } }, "type": "object" }, - "kalshi.eventMetadataResponseDoc": { + "justwatch.SeasonSummary": { "properties": { - "code": { - "example": 200, + "description": { + "type": "string" + }, + "id": { + "example": "tss297253", + "type": "string" + }, + "object_id": { + "example": 297253, "type": "integer" }, - "data": { - "$ref": "#/definitions/kalshi.EventMetadataResponse" + "object_type": { + "example": "SHOW_SEASON", + "type": "string" }, - "msg": { - "example": "OK", + "path": { + "example": "/us/tv-show/from/season-1", "type": "string" - } - }, - "type": "object" - }, - "kalshi.eventResponseDoc": { - "properties": { - "code": { - "example": 200, + }, + "poster_url": { + "example": "https://images.justwatch.com/poster/320190730/s718/season-1.jpg", + "type": "string" + }, + "season_number": { + "example": 1, "type": "integer" }, - "data": { - "$ref": "#/definitions/kalshi.EventResponse" + "title": { + "example": "Season 1", + "type": "string" }, - "msg": { - "example": "OK", + "url": { + "example": "https://www.justwatch.com/us/tv-show/from/season-1", "type": "string" + }, + "year": { + "example": 2022, + "type": "integer" } }, "type": "object" }, - "kalshi.eventsResponseDoc": { + "justwatch.ShowSeasonsResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/kalshi.EventsResponse" + "country": { + "example": "US", + "type": "string" }, - "msg": { - "example": "OK", + "language": { + "example": "en", "type": "string" + }, + "seasons": { + "items": { + "$ref": "#/definitions/justwatch.SeasonSummary" + }, + "type": "array" + }, + "show": { + "$ref": "#/definitions/justwatch.TitleResponse" } }, "type": "object" }, - "kalshi.exchangeScheduleResponseDoc": { + "justwatch.SimilarTitlesResponse": { + "properties": { + "country": { + "example": "US", + "type": "string" + }, + "id": { + "example": "tm92641", + "type": "string" + }, + "language": { + "example": "en", + "type": "string" + }, + "results": { + "items": { + "$ref": "#/definitions/justwatch.SearchTitle" + }, + "type": "array" + } + }, + "type": "object" + }, + "justwatch.TitleCountryOffers": { + "properties": { + "country": { + "example": "US", + "type": "string" + }, + "offers": { + "items": { + "$ref": "#/definitions/justwatch.Offer" + }, + "type": "array" + }, + "title": { + "$ref": "#/definitions/justwatch.TitleResponse" + } + }, + "type": "object" + }, + "justwatch.TitleMediaResponse": { + "properties": { + "backdrops": { + "items": { + "$ref": "#/definitions/justwatch.Backdrop" + }, + "type": "array" + }, + "clips": { + "items": { + "$ref": "#/definitions/justwatch.Clip" + }, + "type": "array" + }, + "country": { + "example": "US", + "type": "string" + }, + "credits": { + "items": { + "$ref": "#/definitions/justwatch.Credit" + }, + "type": "array" + }, + "id": { + "example": "tm92641", + "type": "string" + }, + "language": { + "example": "en", + "type": "string" + }, + "title": { + "example": "Inception", + "type": "string" + } + }, + "type": "object" + }, + "justwatch.TitleOffersResponse": { + "properties": { + "countries": { + "items": { + "$ref": "#/definitions/justwatch.TitleCountryOffers" + }, + "type": "array" + }, + "id": { + "example": "tm92641", + "type": "string" + }, + "language": { + "example": "en", + "type": "string" + } + }, + "type": "object" + }, + "justwatch.TitleResponse": { + "properties": { + "content_rating": { + "type": "string" + }, + "description": { + "type": "string" + }, + "genres": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "example": "tm92641", + "type": "string" + }, + "object_id": { + "example": 92641, + "type": "integer" + }, + "object_type": { + "example": "MOVIE", + "type": "string" + }, + "offers": { + "items": { + "$ref": "#/definitions/justwatch.Offer" + }, + "type": "array" + }, + "path": { + "example": "/us/movie/inception", + "type": "string" + }, + "poster_url": { + "example": "https://images.justwatch.com/poster/302449148/s718/inception.jpg", + "type": "string" + }, + "release_date": { + "example": "2010-07-14", + "type": "string" + }, + "runtime": { + "example": "PT2H28M0S", + "type": "string" + }, + "scoring": { + "$ref": "#/definitions/justwatch.Scoring" + }, + "title": { + "example": "Inception", + "type": "string" + }, + "url": { + "example": "https://www.justwatch.com/us/movie/inception", + "type": "string" + }, + "year": { + "example": 2010, + "type": "integer" + } + }, + "type": "object" + }, + "justwatch.ageCertificationsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.ExchangeScheduleResponse" + "$ref": "#/definitions/justwatch.AgeCertificationsResponse" }, "msg": { "example": "OK", @@ -18009,14 +18405,14 @@ }, "type": "object" }, - "kalshi.exchangeStatusResponseDoc": { + "justwatch.analysisResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.ExchangeStatusResponse" + "$ref": "#/definitions/justwatch.AnalysisResponse" }, "msg": { "example": "OK", @@ -18025,14 +18421,14 @@ }, "type": "object" }, - "kalshi.historicalCutoffResponseDoc": { + "justwatch.discoverResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.HistoricalCutoffResponse" + "$ref": "#/definitions/justwatch.DiscoverResponse" }, "msg": { "example": "OK", @@ -18041,14 +18437,14 @@ }, "type": "object" }, - "kalshi.historicalMarketResponseDoc": { + "justwatch.episodeByIDResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.HistoricalMarketResponse" + "$ref": "#/definitions/justwatch.EpisodeByIDResponse" }, "msg": { "example": "OK", @@ -18057,14 +18453,14 @@ }, "type": "object" }, - "kalshi.historicalMarketsResponseDoc": { + "justwatch.episodeOffersResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.HistoricalMarketsResponse" + "$ref": "#/definitions/justwatch.EpisodeOffersResponse" }, "msg": { "example": "OK", @@ -18073,14 +18469,14 @@ }, "type": "object" }, - "kalshi.historicalTradesResponseDoc": { + "justwatch.genreTitlesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.HistoricalTradesResponse" + "$ref": "#/definitions/justwatch.GenreTitlesResponse" }, "msg": { "example": "OK", @@ -18089,14 +18485,14 @@ }, "type": "object" }, - "kalshi.marketHistoryResponseDoc": { + "justwatch.genresResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.MarketHistoryResponse" + "$ref": "#/definitions/justwatch.GenresResponse" }, "msg": { "example": "OK", @@ -18105,14 +18501,14 @@ }, "type": "object" }, - "kalshi.marketResponseDoc": { + "justwatch.monetizationTitlesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.MarketResponse" + "$ref": "#/definitions/justwatch.MonetizationTitlesResponse" }, "msg": { "example": "OK", @@ -18121,14 +18517,14 @@ }, "type": "object" }, - "kalshi.marketsResponseDoc": { + "justwatch.newTitlesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.MarketsResponse" + "$ref": "#/definitions/justwatch.NewTitlesResponse" }, "msg": { "example": "OK", @@ -18137,14 +18533,14 @@ }, "type": "object" }, - "kalshi.multivariateEventsResponseDoc": { + "justwatch.popularResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.MultivariateEventsResponse" + "$ref": "#/definitions/justwatch.PopularResponse" }, "msg": { "example": "OK", @@ -18153,14 +18549,14 @@ }, "type": "object" }, - "kalshi.orderBookResponseDoc": { + "justwatch.providerTitlesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.OrderBookResponse" + "$ref": "#/definitions/justwatch.ProviderTitlesResponse" }, "msg": { "example": "OK", @@ -18169,14 +18565,14 @@ }, "type": "object" }, - "kalshi.seriesDetailResponseDoc": { + "justwatch.providersResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.SeriesDetailResponse" + "$ref": "#/definitions/justwatch.ProvidersResponse" }, "msg": { "example": "OK", @@ -18185,14 +18581,14 @@ }, "type": "object" }, - "kalshi.seriesResponseDoc": { + "justwatch.searchResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.SeriesResponse" + "$ref": "#/definitions/justwatch.SearchResponse" }, "msg": { "example": "OK", @@ -18201,14 +18597,14 @@ }, "type": "object" }, - "kalshi.tradesResponseDoc": { + "justwatch.seasonByIDResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/kalshi.TradesResponse" + "$ref": "#/definitions/justwatch.SeasonByIDResponse" }, "msg": { "example": "OK", @@ -18217,914 +18613,842 @@ }, "type": "object" }, - "linkedin.Customer": { + "justwatch.seasonEpisodesResponseDoc": { "properties": { - "follower_count": { - "example": 12345, + "code": { + "example": 200, "type": "integer" }, - "industry": { - "example": "Information Technology & Services", - "type": "string" + "data": { + "$ref": "#/definitions/justwatch.SeasonEpisodesResponse" }, - "link": { - "example": "https://www.linkedin.com/company/contoso/", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "justwatch.showSeasonsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "logo": { - "example": "https://media.licdn.com/dms/image/v2/company-logo_100_100/company-logo_100_100/0/123456789/logo?e=2147483647&v=beta&t=xyz", - "type": "string" + "data": { + "$ref": "#/definitions/justwatch.ShowSeasonsResponse" }, - "name": { - "example": "Contoso Ltd.", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "linkedin.LinkedinCompanyResponse": { + "justwatch.similarTitlesResponseDoc": { "properties": { - "about": { - "example": "We’re a team of scientists, engineers...", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "affiliated_pages": { - "items": { - "$ref": "#/definitions/linkedin.Page" - }, - "type": "array" + "data": { + "$ref": "#/definitions/justwatch.SimilarTitlesResponse" }, - "company_size": { - "example": "501-1,000", + "msg": { + "example": "OK", "type": "string" - }, - "follower_count": { - "example": 1176422, - "type": "integer" - }, - "founded_on": { - "example": 2010, + } + }, + "type": "object" + }, + "justwatch.titleMediaResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "headline": { - "example": "We're committed to solving intelligence, to advance science and benefit humanity.", - "type": "string" + "data": { + "$ref": "#/definitions/justwatch.TitleMediaResponse" }, - "headquarters": { - "example": "London, London", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "justwatch.titleOffersResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "industry": { - "example": "Research Services", - "type": "string" + "data": { + "$ref": "#/definitions/justwatch.TitleOffersResponse" }, - "link": { - "example": "https://www.linkedin.com/company/googledeepmind", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "justwatch.titleResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "locations": { - "items": { - "$ref": "#/definitions/linkedin.Location" - }, - "type": "array" + "data": { + "$ref": "#/definitions/justwatch.TitleResponse" }, - "logo": { - "example": "https://static.licdn.com/.../linkedin-bug-color.png", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "kalshi.BatchMarketHistoryResponse": { + "properties": { + "end_ts": { + "example": 1780804800, + "type": "integer" }, - "name": { - "example": "Google DeepMind", + "fetched_at": { + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "num_of_employees_on_linkedin": { - "example": 5590, - "type": "integer" + "include_latest_before_start": { + "example": false, + "type": "boolean" }, - "similar_pages": { + "markets": { "items": { - "$ref": "#/definitions/linkedin.Page" + "$ref": "#/definitions/kalshi.MarketHistoryResponse" }, "type": "array" }, - "specialties": { - "example": "Artificial Intelligence and Machine Learning", - "type": "string" + "period_interval": { + "example": 1440, + "type": "integer" }, - "type": { - "example": "Privately Held", + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/markets/candlesticks", "type": "string" }, - "updates": { + "start_ts": { + "example": 1780286400, + "type": "integer" + }, + "tickers": { + "example": [ + "KXELONMARS-99" + ], "items": { - "$ref": "#/definitions/linkedin.Update" + "type": "string" }, "type": "array" - }, - "website": { - "example": "https://www.deepmind.google", - "type": "string" } }, "type": "object" }, - "linkedin.LinkedinProductResponse": { + "kalshi.BatchOrderBookResponse": { "properties": { - "about": { - "example": "Streamline, manage, and grow your business with Dynamics 365 Business Central - a flexible, scalable, comprehensive business management solution for small and medium-sized businesses.", - "type": "string" - }, - "category_link": { - "example": "https://www.linkedin.com/products/categories/business-management-software", - "type": "string" - }, - "category_name": { - "example": "Business Management Software", - "type": "string" - }, - "cover_image": { - "example": "https://media.licdn.com/dms/image/v2/D4E1BAQF2jwQmfmDSiA/company-background_10000/B4EZYQcR0_HkAU-/0/1744032571051/microsoft_dynamics_cover?e=2147483647&v=beta&t=fUrpht_xQ4tCJkUKJcGr5hFyqQzXLxbETOV14KE5qk4", - "type": "string" - }, - "external_link": { - "example": "https://dynamics.microsoft.com/en-us/business-central/overview/", - "type": "string" - }, - "featured_customers": { - "items": { - "$ref": "#/definitions/linkedin.Customer" - }, - "type": "array" - }, - "link": { - "example": "https://www.linkedin.com/products/microsoft-dynamics-microsoft-dynamics-365-business-central", - "type": "string" - }, - "logo": { - "example": "https://media.licdn.com/dms/image/v2/C4E0BAQFXmfZJomhCcg/company-logo_100_100/company-logo_100_100/0/1630612268078/microsoft_dynamics_logo?e=2147483647&v=beta&t=2bAeeYjEdtNwIAdeHTqLAo6Av0AN3Ofe1vdzvN2ihpI", - "type": "string" - }, - "medias": { + "books": { "items": { - "$ref": "#/definitions/linkedin.Media" + "$ref": "#/definitions/kalshi.OrderBookResponse" }, "type": "array" }, - "name": { - "example": "Microsoft Dynamics 365 Business Central", - "type": "string" - }, - "organization_link": { - "example": "https://www.linkedin.com/company/microsoft-dynamics/", + "fetched_at": { + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "organization_name": { - "example": "Microsoft Dynamics 365", + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/markets/orderbooks", "type": "string" }, - "other_products": { - "items": { - "$ref": "#/definitions/linkedin.Product" - }, - "type": "array" - }, - "similar_products": { + "tickers": { + "example": [ + "KXELONMARS-99" + ], "items": { - "$ref": "#/definitions/linkedin.Product" + "type": "string" }, "type": "array" } }, "type": "object" }, - "linkedin.Location": { + "kalshi.CandleOHLC": { "properties": { - "address": { - "example": "Kings Cross, London, London N1C4AG, GB", - "type": "string" + "close": { + "example": 0.08, + "type": "number" }, - "is_primary": { - "example": true, - "type": "boolean" + "high": { + "example": 0.11, + "type": "number" + }, + "low": { + "example": 0.08, + "type": "number" + }, + "mean": { + "example": 0.1014, + "type": "number" + }, + "open": { + "example": 0.11, + "type": "number" + }, + "previous": { + "example": 0.08, + "type": "number" } }, "type": "object" }, - "linkedin.Media": { + "kalshi.Competition": { "properties": { - "link": { - "example": "https://media.licdn.com/media/sample-video.mp4", + "id": { "type": "string" }, "name": { - "example": "Product Demo Video", "type": "string" } }, "type": "object" }, - "linkedin.Page": { + "kalshi.EventHistoryResponse": { "properties": { - "address": { - "example": "San Francisco, CA", - "type": "string" + "adjusted_end_ts": { + "example": 1780804800, + "type": "integer" }, - "industry": { - "example": "Research Services", - "type": "string" + "end_ts": { + "example": 1780804800, + "type": "integer" }, - "link": { - "example": "https://www.linkedin.com/company/openai", + "event_ticker": { + "example": "KXELONMARS-99", "type": "string" }, - "name": { - "example": "OpenAI", - "type": "string" - } - }, - "type": "object" - }, - "linkedin.Product": { - "properties": { - "category_link": { - "example": "https://www.linkedin.com/products/categories/business-management-software", - "type": "string" - }, - "category_name": { - "example": "Business Management Software", - "type": "string" - }, - "link": { - "example": "https://www.linkedin.com/products/odoo/", - "type": "string" - }, - "logo": { - "example": "https://media.licdn.com/dms/image/v2/D4E0BAQF91OMQCIi4dQ/company-logo_100_100/company-logo_100_100/0/1691657301051/odoo_logo?e=2147483647&v=beta&t=JfXKr0197Ib_ujXsUsYwXtga3l87Seko0icAH53nrHo", - "type": "string" - }, - "name": { - "example": "Odoo", - "type": "string" - } - }, - "type": "object" - }, - "linkedin.Update": { - "properties": { - "author": { - "example": "Google DeepMind", + "fetched_at": { + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "author_link": { - "example": "https://uk.linkedin.com/company/googledeepmind", - "type": "string" + "include_latest_before_start": { + "example": false, + "type": "boolean" }, - "images": { + "market_tickers": { "example": [ - "[\"https://example.com/image1.jpg\"]" + "KXELONMARS-99" ], "items": { "type": "string" }, "type": "array" }, - "is_reposted": { - "example": false, - "type": "boolean" - }, - "logo": { - "example": "https://media.licdn.com/dms/image/v2/D4E0BAQEntrYwxPlbQA/company-logo_100_100/0/googledeepmind_logo", - "type": "string" - }, - "num_of_comments": { - "example": 21, - "type": "integer" + "markets": { + "items": { + "$ref": "#/definitions/kalshi.MarketHistoryResponse" + }, + "type": "array" }, - "num_of_reactions": { - "example": 571, + "period_interval": { + "example": 1440, "type": "integer" }, - "post_link": { - "example": "https://www.linkedin.com/posts/googledeepmind_thomas-story-activity-7313245349987385346-5COL", - "type": "string" - }, - "published_at": { - "example": "1w", + "series_ticker": { + "example": "KXELONMARS", "type": "string" }, - "summary": { - "example": "When his son was diagnosed with a rare disease, Googler Thomas Wagner...", + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/series/KXELONMARS/events/KXELONMARS-99/candlesticks", "type": "string" }, - "videos": { - "example": [ - "[\"https://example.com/video1.mp4\"]" - ], - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "linkedin.companyResponseDoc": { - "properties": { - "code": { - "example": 200, + "start_ts": { + "example": 1780286400, "type": "integer" - }, - "data": { - "$ref": "#/definitions/linkedin.LinkedinCompanyResponse" - }, - "msg": { - "example": "OK", - "type": "string" } }, "type": "object" }, - "linkedin.productResponseDoc": { + "kalshi.EventMetadataResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/linkedin.LinkedinProductResponse" + "competition": { + "$ref": "#/definitions/kalshi.Competition" }, - "msg": { - "example": "OK", + "competition_scope": { "type": "string" - } - }, - "type": "object" - }, - "linkedin.showcaseResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/linkedin.LinkedinCompanyResponse" - }, - "msg": { - "example": "OK", + "event_ticker": { + "example": "KXELONMARS-99", "type": "string" - } - }, - "type": "object" - }, - "metaculus.ForecastHistoryPoint": { - "properties": { - "center": { - "example": 0.36, - "type": "number" - }, - "centers": { - "items": { - "type": "number" - }, - "type": "array" }, - "end_time": { - "example": "2026-06-01T17:06:20Z", + "featured_image_url": { "type": "string" }, - "end_ts": { - "example": 1780333580.206417, - "type": "number" + "fetched_at": { + "example": "2026-06-07T14:00:00Z", + "type": "string" }, - "forecaster_count": { - "example": 17, - "type": "integer" + "image_url": { + "example": "https://kalshi-public-docs.s3.amazonaws.com/series-images-webp/KXELONMARS.webp", + "type": "string" }, - "interval_lower_bounds": { + "market_details": { "items": { - "type": "number" + "$ref": "#/definitions/kalshi.MarketDetail" }, "type": "array" }, - "interval_upper_bounds": { + "settlement_sources": { "items": { - "type": "number" + "$ref": "#/definitions/kalshi.SettlementSource" }, "type": "array" }, - "lower": { - "example": 0.26, - "type": "number" - }, - "start_time": { - "example": "2026-06-01T17:00:00Z", + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/events/KXELONMARS-99/metadata", "type": "string" - }, - "start_ts": { - "example": 1780333200, - "type": "number" - }, - "upper": { - "example": 0.61, - "type": "number" } }, "type": "object" }, - "metaculus.ForecastHistoryResponse": { + "kalshi.EventResponse": { "properties": { + "event": { + "$ref": "#/definitions/kalshi.EventRow" + }, "fetched_at": { "example": "2026-06-07T14:00:00Z", "type": "string" }, - "max_points": { - "example": 500, - "type": "integer" - }, - "method": { - "example": "recency_weighted", - "type": "string" - }, - "points": { + "markets": { "items": { - "$ref": "#/definitions/metaculus.ForecastHistoryPoint" + "$ref": "#/definitions/kalshi.MarketRow" }, "type": "array" }, - "points_count": { - "example": 25, - "type": "integer" - }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "question": { - "$ref": "#/definitions/metaculus.QuestionRow" - }, "source_url": { - "example": "https://www.metaculus.com/questions/43612/", + "example": "https://external-api.kalshi.com/trade-api/v2/events/KXELONMARS-99", "type": "string" } }, "type": "object" }, - "metaculus.ForecastSummary": { + "kalshi.EventRow": { "properties": { - "center": { - "example": 0.52, - "type": "number" + "available_on_brokers": { + "example": false, + "type": "boolean" }, - "centers": { - "items": { - "type": "number" - }, - "type": "array" + "category": { + "example": "World", + "type": "string" }, - "forecaster_count": { - "example": 54, - "type": "integer" + "collateral_return_type": { + "example": "MECNET", + "type": "string" }, - "history_points": { - "example": 25, - "type": "integer" + "event_ticker": { + "example": "KXELONMARS-99", + "type": "string" }, - "interval_lower_bounds": { - "items": { - "type": "number" - }, - "type": "array" + "last_updated": { + "example": "2026-05-10T00:33:53Z", + "type": "string" }, - "interval_upper_bounds": { + "markets": { "items": { - "type": "number" + "$ref": "#/definitions/kalshi.MarketRow" }, "type": "array" }, - "lower": { - "example": 0.37, - "type": "number" + "mutually_exclusive": { + "example": false, + "type": "boolean" }, - "method": { - "example": "recency_weighted", + "series_ticker": { + "example": "KXELONMARS", "type": "string" }, - "upper": { - "example": 0.66, - "type": "number" + "strike_period": { + "type": "string" + }, + "sub_title": { + "example": "Before 2099", + "type": "string" + }, + "title": { + "example": "Will Elon Musk visit Mars in his lifetime?", + "type": "string" } }, "type": "object" }, - "metaculus.ForecastsResponse": { + "kalshi.EventsResponse": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "cursor": { "type": "string" }, - "methods": { + "events": { "items": { - "$ref": "#/definitions/metaculus.ForecastSummary" + "$ref": "#/definitions/kalshi.EventRow" }, "type": "array" }, - "methods_count": { - "example": 3, - "type": "integer" - }, - "public_page_derived": { - "example": true, - "type": "boolean" + "fetched_at": { + "example": "2026-06-07T14:00:00Z", + "type": "string" }, - "question": { - "$ref": "#/definitions/metaculus.QuestionRow" + "limit": { + "example": 25, + "type": "integer" }, "source_url": { - "example": "https://www.metaculus.com/questions/43612/", + "example": "https://external-api.kalshi.com/trade-api/v2/events?limit=25", "type": "string" } }, "type": "object" }, - "metaculus.OptionForecast": { + "kalshi.ExchangeHoursBlock": { "properties": { - "center": { - "example": 0.42, - "type": "number" - }, - "forecast_value": { - "example": 0.42, - "type": "number" - }, - "forecaster_count": { - "example": 5, - "type": "integer" - }, - "index": { - "example": 0, - "type": "integer" - }, - "label": { - "example": "OpenAI", + "close_time": { + "example": "00:00", "type": "string" }, - "lower": { - "example": 0.31, - "type": "number" + "open_time": { + "example": "00:00", + "type": "string" + } + }, + "type": "object" + }, + "kalshi.ExchangeMaintenanceWindow": { + "properties": { + "end_time": { + "type": "string" }, - "mean": { - "example": 0.39, - "type": "number" + "reason": { + "type": "string" }, - "upper": { - "example": 0.43, - "type": "number" + "start_time": { + "type": "string" } }, "type": "object" }, - "metaculus.OptionsChange": { + "kalshi.ExchangeScheduleResponse": { "properties": { - "changed_at": { - "example": "0001-01-01T00:00:00", + "fetched_at": { + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "options": { + "maintenance_windows": { "items": { - "type": "string" + "$ref": "#/definitions/kalshi.ExchangeMaintenanceWindow" + }, + "type": "array" + }, + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/exchange/schedule", + "type": "string" + }, + "standard_hours": { + "items": { + "$ref": "#/definitions/kalshi.ExchangeStandardHours" }, "type": "array" } }, "type": "object" }, - "metaculus.OptionsResponse": { + "kalshi.ExchangeStandardHours": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:00:00Z", + "end_time": { + "example": "2200-12-01T00:00:00Z", "type": "string" }, - "method": { - "example": "recency_weighted", + "friday": { + "items": { + "$ref": "#/definitions/kalshi.ExchangeHoursBlock" + }, + "type": "array" + }, + "monday": { + "items": { + "$ref": "#/definitions/kalshi.ExchangeHoursBlock" + }, + "type": "array" + }, + "saturday": { + "items": { + "$ref": "#/definitions/kalshi.ExchangeHoursBlock" + }, + "type": "array" + }, + "start_time": { + "example": "2024-12-01T00:00:00Z", "type": "string" }, - "options": { + "sunday": { "items": { - "$ref": "#/definitions/metaculus.OptionForecast" + "$ref": "#/definitions/kalshi.ExchangeHoursBlock" }, "type": "array" }, - "options_count": { - "example": 2, - "type": "integer" + "thursday": { + "items": { + "$ref": "#/definitions/kalshi.ExchangeHoursBlock" + }, + "type": "array" }, - "options_history": { + "tuesday": { "items": { - "$ref": "#/definitions/metaculus.OptionsChange" + "$ref": "#/definitions/kalshi.ExchangeHoursBlock" }, "type": "array" }, - "public_page_derived": { + "wednesday": { + "items": { + "$ref": "#/definitions/kalshi.ExchangeHoursBlock" + }, + "type": "array" + } + }, + "type": "object" + }, + "kalshi.ExchangeStatusResponse": { + "properties": { + "exchange_active": { "example": true, "type": "boolean" }, - "question": { - "$ref": "#/definitions/metaculus.QuestionRow" + "fetched_at": { + "example": "2026-06-07T14:00:00Z", + "type": "string" }, "source_url": { - "example": "https://www.metaculus.com/questions/43731/", + "example": "https://external-api.kalshi.com/trade-api/v2/exchange/status", "type": "string" + }, + "trading_active": { + "example": true, + "type": "boolean" } }, "type": "object" }, - "metaculus.Project": { + "kalshi.HistoricalCutoffResponse": { "properties": { - "emoji": { - "example": "💼", + "fetched_at": { + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "id": { - "example": 3698, - "type": "integer" + "market_settled_at": { + "example": "2026-04-08T00:00:00Z", + "type": "string" }, - "name": { - "example": "Economy & Business", + "orders_updated_at": { + "example": "2026-04-08T00:00:00Z", "type": "string" }, - "slug": { - "example": "economy-business", + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/historical/cutoff", "type": "string" }, - "type": { - "example": "category", + "trades_created_at": { + "example": "2026-04-08T00:00:00Z", "type": "string" } }, "type": "object" }, - "metaculus.QuestionMetadataResponse": { + "kalshi.HistoricalMarketResponse": { "properties": { - "actual_close_time": { - "example": "2026-12-30T23:59:00Z", + "fetched_at": { + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "actual_resolve_time": { - "example": "2027-01-02T00:00:00Z", + "market": { + "$ref": "#/definitions/kalshi.MarketRow" + }, + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/historical/markets/KXMVECROSSCATEGORY-S2026144E784A147-ED367B84557", + "type": "string" + } + }, + "type": "object" + }, + "kalshi.HistoricalMarketsResponse": { + "properties": { + "cursor": { "type": "string" }, - "all_options_ever": { + "fetched_at": { + "example": "2026-06-07T14:00:00Z", + "type": "string" + }, + "limit": { + "example": 25, + "type": "integer" + }, + "markets": { "items": { - "type": "string" + "$ref": "#/definitions/kalshi.MarketRow" }, "type": "array" }, - "default_aggregation_method": { - "example": "recency_weighted", + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/historical/markets?limit=25", "type": "string" - }, - "default_score_type": { - "example": "peer", + } + }, + "type": "object" + }, + "kalshi.HistoricalTradesResponse": { + "properties": { + "cursor": { "type": "string" }, "fetched_at": { "example": "2026-06-07T14:00:00Z", "type": "string" }, - "group_variable": { - "example": "Company", - "type": "string" + "limit": { + "example": 25, + "type": "integer" }, - "inbound_outcome_count": { - "example": 10, + "max_ts": { + "example": 1775689200, "type": "integer" }, - "include_bots_in_aggregates": { - "example": false, - "type": "boolean" + "min_ts": { + "example": 1775602800, + "type": "integer" }, - "open_lower_bound": { - "example": false, - "type": "boolean" + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/historical/trades?limit=25", + "type": "string" }, - "open_upper_bound": { - "example": false, - "type": "boolean" + "ticker": { + "example": "KXMVECROSSCATEGORY-S2026144E784A147-ED367B84557", + "type": "string" }, - "options": { + "trades": { "items": { - "type": "string" + "$ref": "#/definitions/kalshi.TradeRow" }, "type": "array" + } + }, + "type": "object" + }, + "kalshi.MarketCandlestick": { + "properties": { + "end_period_at": { + "example": "2026-06-01T00:00:00Z", + "type": "string" }, - "options_history": { + "end_period_ts": { + "example": 1780286400, + "type": "integer" + }, + "open_interest": { + "example": 32980.77, + "type": "number" + }, + "price": { + "$ref": "#/definitions/kalshi.CandleOHLC" + }, + "volume": { + "example": 7, + "type": "number" + }, + "yes_ask": { + "$ref": "#/definitions/kalshi.CandleOHLC" + }, + "yes_bid": { + "$ref": "#/definitions/kalshi.CandleOHLC" + } + }, + "type": "object" + }, + "kalshi.MarketDetail": { + "properties": { + "color_code": { + "example": "#AA00FF", + "type": "string" + }, + "image_url": { + "type": "string" + }, + "market_ticker": { + "example": "KXELONMARS-99", + "type": "string" + } + }, + "type": "object" + }, + "kalshi.MarketHistoryResponse": { + "properties": { + "candlesticks": { "items": { - "$ref": "#/definitions/metaculus.OptionsChange" + "$ref": "#/definitions/kalshi.MarketCandlestick" }, "type": "array" }, - "options_order": { - "example": "DEFAULT", - "type": "string" + "end_ts": { + "example": 1780804800, + "type": "integer" }, - "possibilities": { + "fetched_at": { + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "public_page_derived": { - "example": true, + "include_latest_before_start": { + "example": false, "type": "boolean" }, - "question": { - "$ref": "#/definitions/metaculus.QuestionRow" + "period_interval": { + "example": 1440, + "type": "integer" }, - "resolution": { + "series_ticker": { + "example": "KXELONMARS", "type": "string" }, - "resolution_set_time": { - "example": "2027-01-02T00:00:00Z", + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/series/KXELONMARS/markets/KXELONMARS-99/candlesticks", "type": "string" }, - "scaling": { - "$ref": "#/definitions/metaculus.QuestionScaling" - }, - "short_title": { - "example": "OpenAI or Anthropic - higher valuation on Jan 1, 2027?", - "type": "string" + "start_ts": { + "example": 1780286400, + "type": "integer" }, - "source_url": { - "example": "https://www.metaculus.com/questions/43731/", + "ticker": { + "example": "KXELONMARS-99", "type": "string" } }, "type": "object" }, - "metaculus.QuestionResponse": { + "kalshi.MarketResponse": { "properties": { "fetched_at": { "example": "2026-06-07T14:00:00Z", "type": "string" }, - "question": { - "$ref": "#/definitions/metaculus.QuestionRow" + "market": { + "$ref": "#/definitions/kalshi.MarketRow" }, "source_url": { - "example": "https://www.metaculus.com/questions/43612/", + "example": "https://external-api.kalshi.com/trade-api/v2/markets/KXELONMARS-99", "type": "string" } }, "type": "object" }, - "metaculus.QuestionRow": { + "kalshi.MarketRow": { "properties": { - "categories": { - "items": { - "$ref": "#/definitions/metaculus.Project" - }, - "type": "array" + "close_time": { + "example": "2099-08-01T04:59:00Z", + "type": "string" }, - "comment_count": { - "example": 16, - "type": "integer" + "event_ticker": { + "example": "KXELONMARS-99", + "type": "string" }, - "edited_at": { - "example": "2026-06-07T13:14:34Z", + "expiration_time": { + "example": "2099-08-08T15:00:00Z", "type": "string" }, - "forecaster_count": { - "example": 54, - "type": "integer" + "last_price": { + "example": 0.08, + "type": "number" }, - "forecasts_count": { - "example": 149, - "type": "integer" + "liquidity": { + "example": 0, + "type": "number" }, - "id": { - "example": 43612, - "type": "integer" + "market_type": { + "example": "binary", + "type": "string" }, - "latest_forecast_center": { - "example": 0.52, + "no_ask": { + "example": 0.92, "type": "number" }, - "latest_forecast_lower": { - "example": 0.37, + "no_bid": { + "example": 0.9, "type": "number" }, - "latest_forecast_upper": { - "example": 0.66, + "open_interest": { + "example": 32773.57, "type": "number" }, "open_time": { - "example": "2026-06-01T17:00:00Z", - "type": "string" - }, - "projects": { - "items": { - "$ref": "#/definitions/metaculus.Project" - }, - "type": "array" - }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "published_at": { - "example": "2026-05-29T15:33:53Z", - "type": "string" - }, - "question_id": { - "example": 43609, - "type": "integer" - }, - "question_title": { - "example": "What will be the World Bank monthly price of liquid sulphur in June 2026?", - "type": "string" - }, - "question_type": { - "example": "numeric", + "example": "2025-08-28T20:45:00Z", "type": "string" }, - "resolved": { - "example": false, - "type": "boolean" + "previous_price": { + "example": 0.1, + "type": "number" }, - "scheduled_close_time": { - "example": "2026-07-15T00:00:00Z", + "response_price_unit": { + "example": "usd_cent", "type": "string" }, - "scheduled_resolve_time": { - "example": "2026-09-07T00:00:00Z", + "result": { "type": "string" }, - "slug": { - "example": "tampa-sulphur-price-in-june-2026", + "rules_primary": { "type": "string" }, "status": { - "example": "open", + "example": "active", "type": "string" }, - "title": { - "example": "Tampa sulphur price in June 2026?", + "sub_title": { + "example": "Mars", "type": "string" }, - "unit": { - "example": "USD/metric ton", + "ticker": { + "example": "KXELONMARS-99", "type": "string" }, - "url": { - "example": "https://www.metaculus.com/questions/43612/tampa-sulphur-price-in-june-2026/", + "title": { + "example": "Will Elon Musk visit Mars before Aug 1, 2099?", "type": "string" - } - }, - "type": "object" - }, - "metaculus.QuestionScaling": { - "properties": { - "continuous_range": { - "items": { - "type": "string" - }, - "type": "array" - }, - "inbound_outcome_count": { - "example": 10, - "type": "integer" - }, - "nominal_max": { - "example": 100, - "type": "number" }, - "nominal_min": { - "example": 0, + "volume": { + "example": 94840.88, "type": "number" }, - "open_lower_bound": { - "example": false, - "type": "boolean" - }, - "open_upper_bound": { - "example": false, - "type": "boolean" - }, - "range_max": { - "example": 100, + "volume_24h": { + "example": 16, "type": "number" }, - "range_min": { - "example": 0, + "yes_ask": { + "example": 0.1, "type": "number" }, - "zero_point": { - "example": 0, + "yes_bid": { + "example": 0.08, "type": "number" } }, "type": "object" }, - "metaculus.QuestionsResponse": { + "kalshi.MarketsResponse": { "properties": { - "feed": { - "example": "questions", + "cursor": { "type": "string" }, "fetched_at": { @@ -19132,1674 +19456,1787 @@ "type": "string" }, "limit": { - "example": 10, + "example": 25, "type": "integer" }, - "questions": { + "markets": { "items": { - "$ref": "#/definitions/metaculus.QuestionRow" + "$ref": "#/definitions/kalshi.MarketRow" }, "type": "array" }, "source_url": { - "example": "https://www.metaculus.com/questions/", + "example": "https://external-api.kalshi.com/trade-api/v2/markets?limit=25", "type": "string" } }, "type": "object" }, - "metaculus.forecastHistoryResponseDoc": { + "kalshi.MultivariateEventsResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "cursor": { + "type": "string" }, - "data": { - "$ref": "#/definitions/metaculus.ForecastHistoryResponse" + "events": { + "items": { + "$ref": "#/definitions/kalshi.EventRow" + }, + "type": "array" }, - "msg": { - "example": "OK", + "fetched_at": { + "example": "2026-06-07T14:00:00Z", "type": "string" - } - }, - "type": "object" - }, - "metaculus.forecastsResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/metaculus.ForecastsResponse" + "limit": { + "example": 25, + "type": "integer" }, - "msg": { - "example": "OK", + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/events/multivariate?limit=25", "type": "string" } }, "type": "object" }, - "metaculus.metadataResponseDoc": { + "kalshi.OrderBookLevel": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/metaculus.QuestionMetadataResponse" + "price": { + "example": 0.08, + "type": "number" }, - "msg": { - "example": "OK", - "type": "string" + "size": { + "example": 185.72, + "type": "number" } }, "type": "object" }, - "metaculus.optionsResponseDoc": { + "kalshi.OrderBookResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "fetched_at": { + "example": "2026-06-07T14:00:00Z", + "type": "string" }, - "data": { - "$ref": "#/definitions/metaculus.OptionsResponse" + "no": { + "items": { + "$ref": "#/definitions/kalshi.OrderBookLevel" + }, + "type": "array" }, - "msg": { - "example": "OK", + "raw_unit_hint": { + "example": "dollars", + "type": "string" + }, + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/markets/KXELONMARS-99/orderbook", + "type": "string" + }, + "ticker": { + "example": "KXELONMARS-99", "type": "string" + }, + "yes": { + "items": { + "$ref": "#/definitions/kalshi.OrderBookLevel" + }, + "type": "array" } }, "type": "object" }, - "metaculus.questionResponseDoc": { + "kalshi.SeriesDetailResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "fetched_at": { + "example": "2026-06-07T14:00:00Z", + "type": "string" }, - "data": { - "$ref": "#/definitions/metaculus.QuestionResponse" + "series": { + "$ref": "#/definitions/kalshi.SeriesRow" }, - "msg": { - "example": "OK", + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/series/KXELONMARS", "type": "string" } }, "type": "object" }, - "metaculus.questionsResponseDoc": { + "kalshi.SeriesResponse": { "properties": { - "code": { - "example": 200, + "cursor": { + "type": "string" + }, + "fetched_at": { + "example": "2026-06-07T14:00:00Z", + "type": "string" + }, + "limit": { + "example": 25, "type": "integer" }, - "data": { - "$ref": "#/definitions/metaculus.QuestionsResponse" + "series": { + "items": { + "$ref": "#/definitions/kalshi.SeriesRow" + }, + "type": "array" }, - "msg": { - "example": "OK", + "source_url": { + "example": "https://external-api.kalshi.com/trade-api/v2/series?limit=25", "type": "string" } }, "type": "object" }, - "polymarket.ActivityTradesResponse": { + "kalshi.SeriesRow": { "properties": { - "event_id": { - "example": "101772", - "type": "string" - }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "category": { + "example": "Politics", "type": "string" }, - "filter_amount": { - "example": "1", + "contract_terms_url": { "type": "string" }, - "filter_type": { - "example": "CASH", + "contract_url": { "type": "string" }, - "limit": { - "example": 50, - "type": "integer" + "fee_multiplier": { + "example": 1, + "type": "number" }, - "market": { - "example": "0x3f2604d62ac3ee496ffd6d30156f30663fbaf22097f17f09d7364c35db255d2b", + "fee_type": { + "example": "quadratic", "type": "string" }, - "offset": { - "example": 0, - "type": "integer" + "frequency": { + "example": "custom", + "type": "string" }, - "source_url": { - "example": "https://data-api.polymarket.com/trades?takerOnly=true&limit=50&offset=0&filterType=CASH&filterAmount=1", + "last_updated": { + "example": "2026-06-01T15:24:00Z", "type": "string" }, - "taker_only": { - "example": "true", + "series_ticker": { + "example": "KXELONMARS", "type": "string" }, - "trades": { + "settlement_sources": { "items": { - "$ref": "#/definitions/polymarket.TradeSummary" + "$ref": "#/definitions/kalshi.SettlementSource" }, "type": "array" - } - }, - "type": "object" - }, - "polymarket.BatchTokenMidpoint": { - "properties": { - "midpoint": { - "example": 0.285, - "type": "number" }, - "token_id": { - "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "title": { + "example": "Will Elon Musk visit Mars in his lifetime?", "type": "string" } }, "type": "object" }, - "polymarket.BatchTokenMidpointsOption": { + "kalshi.SettlementSource": { "properties": { - "token_ids": { - "items": { - "type": "string" - }, - "type": "array" + "name": { + "example": "The Guardian", + "type": "string" + }, + "url": { + "example": "https://www.theguardian.com", + "type": "string" } }, - "required": [ - "token_ids" - ], "type": "object" }, - "polymarket.BatchTokenMidpointsResponse": { + "kalshi.TradeRow": { "properties": { - "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "count": { + "example": 2, + "type": "number" + }, + "created_time": { + "example": "2026-06-07T07:23:05Z", "type": "string" }, - "midpoints": { - "items": { - "$ref": "#/definitions/polymarket.BatchTokenMidpoint" - }, - "type": "array" + "created_ts": { + "example": 1780816985, + "type": "integer" }, - "missing": { - "items": { - "type": "string" - }, - "type": "array" + "is_block_trade": { + "example": false, + "type": "boolean" }, - "source_url": { - "example": "https://clob.polymarket.com/midpoints", + "no_price": { + "example": 0.91, + "type": "number" + }, + "taker_book_side": { + "example": "ask", "type": "string" }, - "token_ids": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "polymarket.BatchTokenOrderBooksOption": { - "properties": { - "token_ids": { - "items": { - "type": "string" - }, - "type": "array" + "taker_outcome_side": { + "example": "no", + "type": "string" + }, + "taker_side": { + "example": "no", + "type": "string" + }, + "ticker": { + "example": "KXELONMARS-99", + "type": "string" + }, + "trade_id": { + "example": "9126fe1f-7233-7c75-2c37-06ce7841bbe3", + "type": "string" + }, + "yes_price": { + "example": 0.09, + "type": "number" } }, - "required": [ - "token_ids" - ], "type": "object" }, - "polymarket.BatchTokenOrderBooksResponse": { + "kalshi.TradesResponse": { "properties": { - "books": { - "items": { - "$ref": "#/definitions/polymarket.OrderBookSummary" - }, - "type": "array" + "cursor": { + "type": "string" }, "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "missing": { - "items": { - "type": "string" - }, - "type": "array" + "limit": { + "example": 25, + "type": "integer" + }, + "max_ts": { + "example": 1780873200, + "type": "integer" + }, + "min_ts": { + "example": 1780786800, + "type": "integer" }, "source_url": { - "example": "https://clob.polymarket.com/books", + "example": "https://external-api.kalshi.com/trade-api/v2/markets/trades?limit=25", "type": "string" }, - "token_ids": { + "ticker": { + "example": "KXELONMARS-99", + "type": "string" + }, + "trades": { "items": { - "type": "string" + "$ref": "#/definitions/kalshi.TradeRow" }, "type": "array" } }, "type": "object" }, - "polymarket.BatchTokenPrice": { + "kalshi.batchMarketHistoryResponseDoc": { "properties": { - "buy_price": { - "example": 0.03, - "type": "number" + "code": { + "example": 200, + "type": "integer" }, - "sell_price": { - "example": 0.54, - "type": "number" + "data": { + "$ref": "#/definitions/kalshi.BatchMarketHistoryResponse" }, - "token_id": { - "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "polymarket.BatchTokenPricesOption": { + "kalshi.batchOrderBookResponseDoc": { "properties": { - "side": { - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "token_ids": { - "items": { - "type": "string" - }, - "type": "array" + "data": { + "$ref": "#/definitions/kalshi.BatchOrderBookResponse" + }, + "msg": { + "example": "OK", + "type": "string" } }, - "required": [ - "token_ids" - ], "type": "object" }, - "polymarket.BatchTokenPricesResponse": { + "kalshi.eventHistoryResponseDoc": { "properties": { - "fetched_at": { - "example": "2026-06-07T11:00:00Z", - "type": "string" - }, - "missing": { - "items": { - "type": "string" - }, - "type": "array" - }, - "prices": { - "items": { - "$ref": "#/definitions/polymarket.BatchTokenPrice" - }, - "type": "array" + "code": { + "example": 200, + "type": "integer" }, - "side": { - "example": "buy", - "type": "string" + "data": { + "$ref": "#/definitions/kalshi.EventHistoryResponse" }, - "source_url": { - "example": "https://clob.polymarket.com/prices", + "msg": { + "example": "OK", "type": "string" - }, - "token_ids": { - "items": { - "type": "string" - }, - "type": "array" } }, "type": "object" }, - "polymarket.BatchTokenSpread": { + "kalshi.eventMetadataResponseDoc": { "properties": { - "spread": { - "example": 0.51, - "type": "number" + "code": { + "example": 200, + "type": "integer" }, - "token_id": { - "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "data": { + "$ref": "#/definitions/kalshi.EventMetadataResponse" + }, + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "polymarket.BatchTokenSpreadsOption": { + "kalshi.eventResponseDoc": { "properties": { - "token_ids": { - "items": { - "type": "string" - }, - "type": "array" + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/kalshi.EventResponse" + }, + "msg": { + "example": "OK", + "type": "string" } }, - "required": [ - "token_ids" - ], "type": "object" }, - "polymarket.BatchTokenSpreadsResponse": { + "kalshi.eventsResponseDoc": { "properties": { - "fetched_at": { - "example": "2026-06-07T11:00:00Z", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "missing": { - "items": { - "type": "string" - }, - "type": "array" + "data": { + "$ref": "#/definitions/kalshi.EventsResponse" }, - "source_url": { - "example": "https://clob.polymarket.com/spreads", + "msg": { + "example": "OK", "type": "string" - }, - "spreads": { - "items": { - "$ref": "#/definitions/polymarket.BatchTokenSpread" - }, - "type": "array" - }, - "token_ids": { - "items": { - "type": "string" - }, - "type": "array" } }, "type": "object" }, - "polymarket.ClobMarketResponse": { + "kalshi.exchangeScheduleResponseDoc": { "properties": { - "condition_id": { - "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", - "type": "string" - }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "market": { - "$ref": "#/definitions/polymarket.ClobMarketSummary" + "data": { + "$ref": "#/definitions/kalshi.ExchangeScheduleResponse" }, - "source_url": { - "example": "https://clob.polymarket.com/markets/0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "polymarket.ClobMarketSummary": { + "kalshi.exchangeStatusResponseDoc": { "properties": { - "accepting_order_timestamp": { - "type": "string" - }, - "accepting_orders": { - "type": "boolean" - }, - "active": { - "type": "boolean" - }, - "archived": { - "type": "boolean" - }, - "closed": { - "type": "boolean" - }, - "condition_id": { - "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", - "type": "string" - }, - "description": { - "type": "string" - }, - "enable_order_book": { - "type": "boolean" + "code": { + "example": 200, + "type": "integer" }, - "end_date": { - "example": "2026-06-08T00:00:00Z", - "type": "string" + "data": { + "$ref": "#/definitions/kalshi.ExchangeStatusResponse" }, - "game_start_time": { - "example": "2026-06-07T20:30:00Z", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "kalshi.historicalCutoffResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "icon_url": { - "type": "string" + "data": { + "$ref": "#/definitions/kalshi.HistoricalCutoffResponse" }, - "image_url": { + "msg": { + "example": "OK", "type": "string" - }, - "is_50_50_outcome": { - "type": "boolean" - }, - "maker_base_fee": { - "example": 1000, + } + }, + "type": "object" + }, + "kalshi.historicalMarketResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "market_slug": { - "example": "codmw-par-tex-2026-06-07-game4", - "type": "string" + "data": { + "$ref": "#/definitions/kalshi.HistoricalMarketResponse" }, - "market_url": { - "example": "https://polymarket.com/event/codmw-par-tex-2026-06-07/codmw-par-tex-2026-06-07-game4", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "kalshi.historicalMarketsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "minimum_order_size": { - "example": 5, - "type": "number" - }, - "minimum_tick_size": { - "example": 0.01, - "type": "number" - }, - "neg_risk": { - "type": "boolean" - }, - "neg_risk_market_id": { - "type": "string" + "data": { + "$ref": "#/definitions/kalshi.HistoricalMarketsResponse" }, - "neg_risk_request_id": { + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "kalshi.historicalTradesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "notifications_enabled": { - "type": "boolean" - }, - "question": { - "example": "Call of Duty: Paris Gentle Mates vs OpTic Texas - Game 4 Winner", - "type": "string" + "data": { + "$ref": "#/definitions/kalshi.HistoricalTradesResponse" }, - "question_id": { - "example": "0xf693b08c99a00ca87098bc122ccc956434c2ac8720d8ed77e612d008cf33c2c1", + "msg": { + "example": "OK", "type": "string" - }, - "rewards": { - "$ref": "#/definitions/polymarket.ClobRewardsSummary" - }, - "seconds_delay": { - "example": 1, + } + }, + "type": "object" + }, + "kalshi.marketHistoryResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" - }, - "taker_base_fee": { - "example": 1000, - "type": "integer" + "data": { + "$ref": "#/definitions/kalshi.MarketHistoryResponse" }, - "tokens": { - "items": { - "$ref": "#/definitions/polymarket.ClobTokenSummary" - }, - "type": "array" + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "polymarket.ClobRewardRate": { + "kalshi.marketResponseDoc": { "properties": { - "asset_address": { - "example": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "rewards_daily_rate": { - "example": 5, - "type": "number" + "data": { + "$ref": "#/definitions/kalshi.MarketResponse" + }, + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "polymarket.ClobRewardsSummary": { + "kalshi.marketsResponseDoc": { "properties": { - "max_spread": { - "example": 2.5, - "type": "number" + "code": { + "example": 200, + "type": "integer" }, - "min_size": { - "example": 500, - "type": "number" + "data": { + "$ref": "#/definitions/kalshi.MarketsResponse" }, - "rates": { - "items": { - "$ref": "#/definitions/polymarket.ClobRewardRate" - }, - "type": "array" + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "polymarket.ClobTokenSummary": { + "kalshi.multivariateEventsResponseDoc": { "properties": { - "outcome": { - "example": "Paris Gentle Mates", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "price": { - "example": 0.285, - "type": "number" + "data": { + "$ref": "#/definitions/kalshi.MultivariateEventsResponse" }, - "token_id": { - "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "msg": { + "example": "OK", "type": "string" - }, - "winner": { - "type": "boolean" } }, "type": "object" }, - "polymarket.EventDetailResponse": { + "kalshi.orderBookResponseDoc": { "properties": { - "event": { - "$ref": "#/definitions/polymarket.EventSummary" - }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "slug": { - "example": "world-cup-winner", - "type": "string" + "data": { + "$ref": "#/definitions/kalshi.OrderBookResponse" }, - "source_url": { - "example": "https://gamma-api.polymarket.com/events/slug/world-cup-winner", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "polymarket.EventSummary": { + "kalshi.seriesDetailResponseDoc": { "properties": { - "active": { - "type": "boolean" - }, - "closed": { - "type": "boolean" - }, - "comment_count": { + "code": { + "example": 200, "type": "integer" }, - "description": { - "type": "string" + "data": { + "$ref": "#/definitions/kalshi.SeriesDetailResponse" }, - "end_date": { + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "kalshi.seriesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "featured": { - "type": "boolean" + "data": { + "$ref": "#/definitions/kalshi.SeriesResponse" }, - "icon_url": { + "msg": { + "example": "OK", "type": "string" - }, - "id": { - "example": "545095", - "type": "string" - }, - "image_url": { - "type": "string" - }, - "liquidity": { - "type": "number" - }, - "markets": { - "items": { - "$ref": "#/definitions/polymarket.MarketSummary" - }, - "type": "array" - }, - "markets_count": { - "example": 15, + } + }, + "type": "object" + }, + "kalshi.tradesResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "open_interest": { - "type": "number" - }, - "restricted": { - "type": "boolean" + "data": { + "$ref": "#/definitions/kalshi.TradesResponse" }, - "slug": { - "example": "bitcoin-above-on-june-7-2026", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "linkedin.Customer": { + "properties": { + "follower_count": { + "example": 12345, + "type": "integer" }, - "start_date": { + "industry": { + "example": "Information Technology & Services", "type": "string" }, - "tags": { - "items": { - "$ref": "#/definitions/polymarket.TagSummary" - }, - "type": "array" - }, - "title": { - "example": "Bitcoin above ___ on June 7?", + "link": { + "example": "https://www.linkedin.com/company/contoso/", "type": "string" }, - "updated_at": { + "logo": { + "example": "https://media.licdn.com/dms/image/v2/company-logo_100_100/company-logo_100_100/0/123456789/logo?e=2147483647&v=beta&t=xyz", "type": "string" }, - "url": { - "example": "https://polymarket.com/event/bitcoin-above-on-june-7-2026", + "name": { + "example": "Contoso Ltd.", "type": "string" - }, - "volume": { - "type": "number" - }, - "volume_24h": { - "type": "number" } }, "type": "object" }, - "polymarket.EventsResponse": { + "linkedin.LinkedinCompanyResponse": { "properties": { - "ascending": { - "type": "boolean" - }, - "closed": { - "example": "false", + "about": { + "example": "We’re a team of scientists, engineers...", "type": "string" }, - "events": { + "affiliated_pages": { "items": { - "$ref": "#/definitions/polymarket.EventSummary" + "$ref": "#/definitions/linkedin.Page" }, "type": "array" }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "company_size": { + "example": "501-1,000", "type": "string" }, - "limit": { - "example": 25, + "follower_count": { + "example": 1176422, "type": "integer" }, - "offset": { - "example": 0, + "founded_on": { + "example": 2010, "type": "integer" }, - "order": { - "example": "volume24hr", + "headline": { + "example": "We're committed to solving intelligence, to advance science and benefit humanity.", "type": "string" }, - "source_url": { - "example": "https://gamma-api.polymarket.com/events?limit=25", + "headquarters": { + "example": "London, London", "type": "string" - } - }, - "type": "object" - }, - "polymarket.HomepageFeedResponse": { - "properties": { - "cursor": { + }, + "industry": { + "example": "Research Services", "type": "string" }, - "events": { + "link": { + "example": "https://www.linkedin.com/company/googledeepmind", + "type": "string" + }, + "locations": { "items": { - "$ref": "#/definitions/polymarket.EventSummary" + "$ref": "#/definitions/linkedin.Location" }, "type": "array" }, - "feed": { - "example": "politics", + "logo": { + "example": "https://static.licdn.com/.../linkedin-bug-color.png", "type": "string" }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "name": { + "example": "Google DeepMind", "type": "string" }, - "has_more": { - "type": "boolean" - }, - "limit": { - "example": 20, + "num_of_employees_on_linkedin": { + "example": 5590, "type": "integer" }, - "markets": { + "similar_pages": { "items": { - "$ref": "#/definitions/polymarket.MarketSummary" + "$ref": "#/definitions/linkedin.Page" }, "type": "array" }, - "next_cursor": { + "specialties": { + "example": "Artificial Intelligence and Machine Learning", "type": "string" }, - "source_kind": { - "example": "events_keyset", + "type": { + "example": "Privately Held", "type": "string" }, - "source_url": { - "example": "https://gamma-api.polymarket.com/events/keyset?limit=20&tag_slug=politics", + "updates": { + "items": { + "$ref": "#/definitions/linkedin.Update" + }, + "type": "array" + }, + "website": { + "example": "https://www.deepmind.google", "type": "string" } }, "type": "object" }, - "polymarket.LeaderboardEntry": { + "linkedin.LinkedinProductResponse": { "properties": { - "profile_image_url": { + "about": { + "example": "Streamline, manage, and grow your business with Dynamics 365 Business Central - a flexible, scalable, comprehensive business management solution for small and medium-sized businesses.", "type": "string" }, - "profit_loss": { - "example": 322870.79601049656, - "type": "number" - }, - "proxy_wallet": { - "example": "0x4bff30af91642dc7d2b19a8664378fe55c45fc26", + "category_link": { + "example": "https://www.linkedin.com/products/categories/business-management-software", "type": "string" }, - "rank": { - "example": "1", + "category_name": { + "example": "Business Management Software", "type": "string" }, - "user_name": { - "example": "Sassy-Bucket", + "cover_image": { + "example": "https://media.licdn.com/dms/image/v2/D4E1BAQF2jwQmfmDSiA/company-background_10000/B4EZYQcR0_HkAU-/0/1744032571051/microsoft_dynamics_cover?e=2147483647&v=beta&t=fUrpht_xQ4tCJkUKJcGr5hFyqQzXLxbETOV14KE5qk4", "type": "string" }, - "verified_badge": { - "type": "boolean" + "external_link": { + "example": "https://dynamics.microsoft.com/en-us/business-central/overview/", + "type": "string" }, - "volume": { - "example": 770358.109102, - "type": "number" + "featured_customers": { + "items": { + "$ref": "#/definitions/linkedin.Customer" + }, + "type": "array" }, - "x_username": { - "example": "polymarket", - "type": "string" - } - }, - "type": "object" - }, - "polymarket.LeaderboardResponse": { - "properties": { - "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "link": { + "example": "https://www.linkedin.com/products/microsoft-dynamics-microsoft-dynamics-365-business-central", "type": "string" }, - "limit": { - "example": 20, - "type": "integer" + "logo": { + "example": "https://media.licdn.com/dms/image/v2/C4E0BAQFXmfZJomhCcg/company-logo_100_100/company-logo_100_100/0/1630612268078/microsoft_dynamics_logo?e=2147483647&v=beta&t=2bAeeYjEdtNwIAdeHTqLAo6Av0AN3Ofe1vdzvN2ihpI", + "type": "string" }, - "rows": { + "medias": { "items": { - "$ref": "#/definitions/polymarket.LeaderboardEntry" + "$ref": "#/definitions/linkedin.Media" }, "type": "array" }, - "sort_by": { - "example": "profit", + "name": { + "example": "Microsoft Dynamics 365 Business Central", "type": "string" }, - "source_url": { - "example": "https://data-api.polymarket.com/v1/leaderboard?window=30d&sortBy=profit&limit=20", + "organization_link": { + "example": "https://www.linkedin.com/company/microsoft-dynamics/", "type": "string" }, - "window": { - "example": "30d", - "type": "string" - } - }, - "type": "object" - }, - "polymarket.MacroDashboardResponse": { - "properties": { - "cursor": { + "organization_name": { + "example": "Microsoft Dynamics 365", "type": "string" }, - "events": { + "other_products": { "items": { - "$ref": "#/definitions/polymarket.EventSummary" + "$ref": "#/definitions/linkedin.Product" }, "type": "array" }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "similar_products": { + "items": { + "$ref": "#/definitions/linkedin.Product" + }, + "type": "array" + } + }, + "type": "object" + }, + "linkedin.Location": { + "properties": { + "address": { + "example": "Kings Cross, London, London N1C4AG, GB", "type": "string" }, - "has_more": { + "is_primary": { + "example": true, "type": "boolean" - }, - "limit": { - "example": 20, - "type": "integer" - }, - "next_cursor": { + } + }, + "type": "object" + }, + "linkedin.Media": { + "properties": { + "link": { + "example": "https://media.licdn.com/media/sample-video.mp4", "type": "string" }, - "source_url": { - "example": "https://gamma-api.polymarket.com/events/keyset?tag_slug=macro&limit=20", + "name": { + "example": "Product Demo Video", "type": "string" } }, "type": "object" }, - "polymarket.MarketDetailResponse": { + "linkedin.Page": { "properties": { - "condition_id": { - "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", - "type": "string" - }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "address": { + "example": "San Francisco, CA", "type": "string" }, - "id": { - "example": "558934", + "industry": { + "example": "Research Services", "type": "string" }, - "market": { - "$ref": "#/definitions/polymarket.MarketSummary" - }, - "slug": { - "example": "will-spain-win-the-2026-fifa-world-cup-963", + "link": { + "example": "https://www.linkedin.com/company/openai", "type": "string" }, - "source_url": { - "example": "https://gamma-api.polymarket.com/markets/558934", + "name": { + "example": "OpenAI", "type": "string" } }, "type": "object" }, - "polymarket.MarketLiquidityResponse": { + "linkedin.Product": { "properties": { - "clob_market": { - "$ref": "#/definitions/polymarket.ClobMarketSummary" - }, - "condition_id": { - "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", + "category_link": { + "example": "https://www.linkedin.com/products/categories/business-management-software", "type": "string" }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "category_name": { + "example": "Business Management Software", "type": "string" }, - "id": { - "example": "558934", + "link": { + "example": "https://www.linkedin.com/products/odoo/", "type": "string" }, - "market": { - "$ref": "#/definitions/polymarket.MarketSummary" - }, - "slug": { - "example": "will-spain-win-the-2026-fifa-world-cup-963", + "logo": { + "example": "https://media.licdn.com/dms/image/v2/D4E0BAQF91OMQCIi4dQ/company-logo_100_100/company-logo_100_100/0/1691657301051/odoo_logo?e=2147483647&v=beta&t=JfXKr0197Ib_ujXsUsYwXtga3l87Seko0icAH53nrHo", "type": "string" }, - "source_urls": { - "items": { - "type": "string" - }, - "type": "array" - }, - "tokens": { - "items": { - "$ref": "#/definitions/polymarket.MarketLiquidityTokenSummary" - }, - "type": "array" + "name": { + "example": "Odoo", + "type": "string" } }, "type": "object" }, - "polymarket.MarketLiquidityTokenSummary": { + "linkedin.Update": { "properties": { - "ask_depth": { - "example": 654.33, - "type": "number" - }, - "bid_depth": { - "example": 117.57, - "type": "number" + "author": { + "example": "Google DeepMind", + "type": "string" }, - "buy_price": { - "example": 0.16, - "type": "number" + "author_link": { + "example": "https://uk.linkedin.com/company/googledeepmind", + "type": "string" }, - "clob_price": { - "example": 0.161, - "type": "number" + "images": { + "example": [ + "[\"https://example.com/image1.jpg\"]" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "gamma_price": { - "example": 0.16, - "type": "number" + "is_reposted": { + "example": false, + "type": "boolean" }, - "last_trade_price": { - "example": 0.162, - "type": "number" + "logo": { + "example": "https://media.licdn.com/dms/image/v2/D4E0BAQEntrYwxPlbQA/company-logo_100_100/0/googledeepmind_logo", + "type": "string" }, - "midpoint": { - "example": 0.165, - "type": "number" + "num_of_comments": { + "example": 21, + "type": "integer" }, - "orderbook_best_ask": { - "example": 0.17, - "type": "number" + "num_of_reactions": { + "example": 571, + "type": "integer" }, - "orderbook_best_bid": { - "example": 0.16, - "type": "number" + "post_link": { + "example": "https://www.linkedin.com/posts/googledeepmind_thomas-story-activity-7313245349987385346-5COL", + "type": "string" }, - "orderbook_spread": { - "example": 0.01, - "type": "number" + "published_at": { + "example": "1w", + "type": "string" }, - "outcome": { - "example": "Yes", + "summary": { + "example": "When his son was diagnosed with a rare disease, Googler Thomas Wagner...", "type": "string" }, - "sell_price": { - "example": 0.17, - "type": "number" + "videos": { + "example": [ + "[\"https://example.com/video1.mp4\"]" + ], + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "linkedin.companyResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "spread": { - "example": 0.01, - "type": "number" + "data": { + "$ref": "#/definitions/linkedin.LinkedinCompanyResponse" }, - "token_id": { - "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "polymarket.MarketSummary": { + "linkedin.productResponseDoc": { "properties": { - "active": { - "type": "boolean" - }, - "best_ask": { - "type": "number" - }, - "best_bid": { - "type": "number" + "code": { + "example": 200, + "type": "integer" }, - "closed": { - "type": "boolean" + "data": { + "$ref": "#/definitions/linkedin.LinkedinProductResponse" }, - "condition_id": { - "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "linkedin.showcaseResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "end_date": { - "type": "string" + "data": { + "$ref": "#/definitions/linkedin.LinkedinCompanyResponse" }, - "id": { - "example": "558934", + "msg": { + "example": "OK", "type": "string" - }, - "last_trade_price": { - "type": "number" - }, - "liquidity": { + } + }, + "type": "object" + }, + "metaculus.ForecastHistoryPoint": { + "properties": { + "center": { + "example": 0.36, "type": "number" }, - "outcomes": { + "centers": { "items": { - "$ref": "#/definitions/polymarket.OutcomePricePoint" + "type": "number" }, "type": "array" }, - "question": { - "example": "Will Spain win the 2026 FIFA World Cup?", + "end_time": { + "example": "2026-06-01T17:06:20Z", "type": "string" }, - "slug": { - "example": "will-spain-win-the-2026-fifa-world-cup-963", - "type": "string" + "end_ts": { + "example": 1780333580.206417, + "type": "number" }, - "token_ids": { + "forecaster_count": { + "example": 17, + "type": "integer" + }, + "interval_lower_bounds": { "items": { - "type": "string" + "type": "number" }, "type": "array" }, - "url": { - "example": "https://polymarket.com/event/world-cup-winner/will-spain-win-the-2026-fifa-world-cup-963", + "interval_upper_bounds": { + "items": { + "type": "number" + }, + "type": "array" + }, + "lower": { + "example": 0.26, + "type": "number" + }, + "start_time": { + "example": "2026-06-01T17:00:00Z", "type": "string" }, - "volume": { + "start_ts": { + "example": 1780333200, "type": "number" }, - "volume_24h": { + "upper": { + "example": 0.61, "type": "number" } }, "type": "object" }, - "polymarket.MarketsResponse": { + "metaculus.ForecastHistoryResponse": { "properties": { - "ascending": { - "type": "boolean" - }, - "closed": { - "example": "false", - "type": "string" - }, "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "limit": { - "example": 25, + "max_points": { + "example": 500, "type": "integer" }, - "markets": { + "method": { + "example": "recency_weighted", + "type": "string" + }, + "points": { "items": { - "$ref": "#/definitions/polymarket.MarketSummary" + "$ref": "#/definitions/metaculus.ForecastHistoryPoint" }, "type": "array" }, - "offset": { - "example": 0, + "points_count": { + "example": 25, "type": "integer" }, - "order": { - "example": "volume24hr", - "type": "string" + "public_page_derived": { + "example": true, + "type": "boolean" + }, + "question": { + "$ref": "#/definitions/metaculus.QuestionRow" }, "source_url": { - "example": "https://gamma-api.polymarket.com/markets?limit=25", + "example": "https://www.metaculus.com/questions/43612/", "type": "string" } }, "type": "object" }, - "polymarket.OrderBookLevel": { + "metaculus.ForecastSummary": { "properties": { - "price": { - "example": 0.03, + "center": { + "example": 0.52, "type": "number" }, - "size": { - "example": 5, - "type": "number" - } - }, - "type": "object" - }, - "polymarket.OrderBookSummary": { - "properties": { - "asks": { + "centers": { "items": { - "$ref": "#/definitions/polymarket.OrderBookLevel" + "type": "number" }, "type": "array" }, - "bids": { + "forecaster_count": { + "example": 54, + "type": "integer" + }, + "history_points": { + "example": 25, + "type": "integer" + }, + "interval_lower_bounds": { "items": { - "$ref": "#/definitions/polymarket.OrderBookLevel" + "type": "number" }, "type": "array" }, - "condition_id": { - "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", - "type": "string" + "interval_upper_bounds": { + "items": { + "type": "number" + }, + "type": "array" }, - "hash": { - "example": "31facd52b62495bbc142facb81275400d978f6bf", + "lower": { + "example": 0.37, + "type": "number" + }, + "method": { + "example": "recency_weighted", "type": "string" }, - "last_trade_price": { - "example": 0.285, + "upper": { + "example": 0.66, "type": "number" + } + }, + "type": "object" + }, + "metaculus.ForecastsResponse": { + "properties": { + "fetched_at": { + "example": "2026-06-07T14:00:00Z", + "type": "string" }, - "min_order_size": { - "example": 5, - "type": "number" + "methods": { + "items": { + "$ref": "#/definitions/metaculus.ForecastSummary" + }, + "type": "array" }, - "neg_risk": { - "type": "boolean" + "methods_count": { + "example": 3, + "type": "integer" }, - "tick_size": { - "example": 0.01, - "type": "number" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "timestamp": { - "example": "1780837460175", - "type": "string" + "question": { + "$ref": "#/definitions/metaculus.QuestionRow" }, - "token_id": { - "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "source_url": { + "example": "https://www.metaculus.com/questions/43612/", "type": "string" } }, "type": "object" }, - "polymarket.OutcomePricePoint": { + "metaculus.OptionForecast": { "properties": { - "best_ask": { - "example": 0.162, - "type": "number" - }, - "best_bid": { - "example": 0.161, - "type": "number" - }, - "last_trade_price": { - "example": 0.162, + "center": { + "example": 0.42, "type": "number" }, - "liquidity": { - "example": 1093391.84, + "forecast_value": { + "example": 0.42, "type": "number" }, - "market_id": { - "example": "558934", - "type": "string" + "forecaster_count": { + "example": 5, + "type": "integer" }, - "market_slug": { - "example": "will-spain-win-the-2026-fifa-world-cup-963", - "type": "string" + "index": { + "example": 0, + "type": "integer" }, - "outcome": { - "example": "Yes", + "label": { + "example": "OpenAI", "type": "string" }, - "price": { - "example": 0.1615, + "lower": { + "example": 0.31, "type": "number" }, - "question": { - "example": "Will Spain win the 2026 FIFA World Cup?", - "type": "string" + "mean": { + "example": 0.39, + "type": "number" }, - "volume": { - "example": 30983849.24, + "upper": { + "example": 0.43, "type": "number" } }, "type": "object" }, - "polymarket.PredictionsResponse": { + "metaculus.OptionsChange": { "properties": { - "cursor": { + "changed_at": { + "example": "0001-01-01T00:00:00", "type": "string" }, - "events": { + "options": { "items": { - "$ref": "#/definitions/polymarket.EventSummary" + "type": "string" }, "type": "array" - }, + } + }, + "type": "object" + }, + "metaculus.OptionsResponse": { + "properties": { "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "has_more": { - "type": "boolean" + "method": { + "example": "recency_weighted", + "type": "string" }, - "limit": { - "example": 20, + "options": { + "items": { + "$ref": "#/definitions/metaculus.OptionForecast" + }, + "type": "array" + }, + "options_count": { + "example": 2, "type": "integer" }, - "next_cursor": { - "type": "string" + "options_history": { + "items": { + "$ref": "#/definitions/metaculus.OptionsChange" + }, + "type": "array" }, - "recurrence": { - "example": "daily", - "type": "string" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "sort": { - "example": "competitive", - "type": "string" + "question": { + "$ref": "#/definitions/metaculus.QuestionRow" }, "source_url": { - "example": "https://gamma-api.polymarket.com/events/keyset?limit=20&order=competitive", - "type": "string" - }, - "status": { - "example": "all", - "type": "string" - }, - "tag": { - "example": "politics", + "example": "https://www.metaculus.com/questions/43731/", "type": "string" } }, "type": "object" }, - "polymarket.PriceHistoryPoint": { + "metaculus.Project": { "properties": { - "price": { - "example": 0.48, - "type": "number" + "emoji": { + "example": "💼", + "type": "string" }, - "timestamp": { - "example": 1780826405, - "type": "integer" - } - }, - "type": "object" - }, - "polymarket.ProfileMatch": { - "properties": { "id": { - "example": "123", - "type": "string" + "example": 3698, + "type": "integer" }, "name": { - "example": "Trader", + "example": "Economy & Business", "type": "string" }, - "username": { - "example": "trader", + "slug": { + "example": "economy-business", + "type": "string" + }, + "type": { + "example": "category", "type": "string" } }, "type": "object" }, - "polymarket.PublicDataResponse": { + "metaculus.QuestionMetadataResponse": { "properties": { - "data": { - "type": "object" + "actual_close_time": { + "example": "2026-12-30T23:59:00Z", + "type": "string" }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "actual_resolve_time": { + "example": "2027-01-02T00:00:00Z", "type": "string" }, - "route": { - "example": "sports", + "all_options_ever": { + "items": { + "type": "string" + }, + "type": "array" + }, + "default_aggregation_method": { + "example": "recency_weighted", "type": "string" }, - "source_url": { - "example": "https://gamma-api.polymarket.com/sports", + "default_score_type": { + "example": "peer", "type": "string" - } - }, - "type": "object" - }, - "polymarket.RewardsConfigSummary": { - "properties": { - "asset_address": { - "example": "0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB", + }, + "fetched_at": { + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "end_date": { - "example": "2500-12-31", + "group_variable": { + "example": "Company", "type": "string" }, - "id": { - "example": 0, + "inbound_outcome_count": { + "example": 10, "type": "integer" }, - "rate_per_day": { - "example": 10.00036, - "type": "number" + "include_bots_in_aggregates": { + "example": false, + "type": "boolean" }, - "start_date": { - "example": "2026-06-07", + "open_lower_bound": { + "example": false, + "type": "boolean" + }, + "open_upper_bound": { + "example": false, + "type": "boolean" + }, + "options": { + "items": { + "type": "string" + }, + "type": "array" + }, + "options_history": { + "items": { + "$ref": "#/definitions/metaculus.OptionsChange" + }, + "type": "array" + }, + "options_order": { + "example": "DEFAULT", "type": "string" }, - "total_rewards": { - "example": 0, - "type": "number" + "possibilities": { + "type": "string" + }, + "public_page_derived": { + "example": true, + "type": "boolean" + }, + "question": { + "$ref": "#/definitions/metaculus.QuestionRow" + }, + "resolution": { + "type": "string" + }, + "resolution_set_time": { + "example": "2027-01-02T00:00:00Z", + "type": "string" + }, + "scaling": { + "$ref": "#/definitions/metaculus.QuestionScaling" + }, + "short_title": { + "example": "OpenAI or Anthropic - higher valuation on Jan 1, 2027?", + "type": "string" + }, + "source_url": { + "example": "https://www.metaculus.com/questions/43731/", + "type": "string" } }, "type": "object" }, - "polymarket.RewardsMarketResponse": { + "metaculus.QuestionResponse": { "properties": { - "condition_id": { - "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", - "type": "string" - }, - "count": { - "example": 1, - "type": "integer" - }, "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "market": { - "$ref": "#/definitions/polymarket.RewardsMarketSummary" + "question": { + "$ref": "#/definitions/metaculus.QuestionRow" }, "source_url": { - "example": "https://clob.polymarket.com/rewards/markets/0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327?sponsored=true", + "example": "https://www.metaculus.com/questions/43612/", "type": "string" } }, "type": "object" }, - "polymarket.RewardsMarketSummary": { + "metaculus.QuestionRow": { "properties": { - "condition_id": { - "example": "0x2d293b8d8141edcc3317f6e677a01623dc482e7fe8eb4c4e207c9a0987c37d22", + "categories": { + "items": { + "$ref": "#/definitions/metaculus.Project" + }, + "type": "array" + }, + "comment_count": { + "example": 16, + "type": "integer" + }, + "edited_at": { + "example": "2026-06-07T13:14:34Z", "type": "string" }, - "daily_reward_rate": { - "example": 10.00036, + "forecaster_count": { + "example": 54, + "type": "integer" + }, + "forecasts_count": { + "example": 149, + "type": "integer" + }, + "id": { + "example": 43612, + "type": "integer" + }, + "latest_forecast_center": { + "example": 0.52, "type": "number" }, - "earning_percentage": { - "example": 0, + "latest_forecast_lower": { + "example": 0.37, "type": "number" }, - "earnings": { + "latest_forecast_upper": { + "example": 0.66, + "type": "number" + }, + "open_time": { + "example": "2026-06-01T17:00:00Z", + "type": "string" + }, + "projects": { "items": { - "type": "object" + "$ref": "#/definitions/metaculus.Project" }, "type": "array" }, - "event_id": { - "example": "568951", - "type": "string" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "event_slug": { - "example": "sc2-hero-cure-2026-06-07", + "published_at": { + "example": "2026-05-29T15:33:53Z", "type": "string" }, - "event_url": { - "example": "https://polymarket.com/event/sc2-hero-cure-2026-06-07", - "type": "string" + "question_id": { + "example": 43609, + "type": "integer" }, - "image_url": { + "question_title": { + "example": "What will be the World Bank monthly price of liquid sulphur in June 2026?", "type": "string" }, - "maker_address": { - "example": "0x0000000000000000000000000000000000000000", + "question_type": { + "example": "numeric", "type": "string" }, - "market_competitiveness": { - "example": 2.83, - "type": "number" + "resolved": { + "example": false, + "type": "boolean" }, - "market_id": { - "example": "2461586", + "scheduled_close_time": { + "example": "2026-07-15T00:00:00Z", "type": "string" }, - "market_slug": { - "example": "sc2-hero-cure-2026-06-07", + "scheduled_resolve_time": { + "example": "2026-09-07T00:00:00Z", "type": "string" }, - "market_url": { - "example": "https://polymarket.com/event/sc2-hero-cure-2026-06-07/sc2-hero-cure-2026-06-07", + "slug": { + "example": "tampa-sulphur-price-in-june-2026", "type": "string" }, - "question": { - "example": "StarCraft II: herO vs Cure (BO7) - Global StarCraft II League Playoffs", + "status": { + "example": "open", "type": "string" }, - "rewards_config": { - "items": { - "$ref": "#/definitions/polymarket.RewardsConfigSummary" - }, - "type": "array" - }, - "rewards_max_spread": { - "example": 4.5, - "type": "number" + "title": { + "example": "Tampa sulphur price in June 2026?", + "type": "string" }, - "rewards_min_size": { - "example": 50, - "type": "number" - }, - "spread": { - "example": 0.01, - "type": "number" + "unit": { + "example": "USD/metric ton", + "type": "string" }, - "tokens": { + "url": { + "example": "https://www.metaculus.com/questions/43612/tampa-sulphur-price-in-june-2026/", + "type": "string" + } + }, + "type": "object" + }, + "metaculus.QuestionScaling": { + "properties": { + "continuous_range": { "items": { - "$ref": "#/definitions/polymarket.RewardsTokenSummary" + "type": "string" }, "type": "array" }, - "total_configured_rewards": { + "inbound_outcome_count": { + "example": 10, + "type": "integer" + }, + "nominal_max": { + "example": 100, + "type": "number" + }, + "nominal_min": { "example": 0, "type": "number" }, - "volume_24h": { - "example": 79.9901, + "open_lower_bound": { + "example": false, + "type": "boolean" + }, + "open_upper_bound": { + "example": false, + "type": "boolean" + }, + "range_max": { + "example": 100, + "type": "number" + }, + "range_min": { + "example": 0, + "type": "number" + }, + "zero_point": { + "example": 0, "type": "number" } }, "type": "object" }, - "polymarket.RewardsMarketsResponse": { + "metaculus.QuestionsResponse": { "properties": { - "count": { - "example": 100, - "type": "integer" - }, - "cursor": { - "example": "MA==", - "type": "string" - }, - "date": { - "example": "2026-06-07", + "feed": { + "example": "questions", "type": "string" }, "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "example": "2026-06-07T14:00:00Z", "type": "string" }, - "has_more": { - "type": "boolean" - }, "limit": { - "example": 100, + "example": 10, "type": "integer" }, - "markets": { + "questions": { "items": { - "$ref": "#/definitions/polymarket.RewardsMarketSummary" + "$ref": "#/definitions/metaculus.QuestionRow" }, "type": "array" }, - "next_cursor": { - "example": "MTAw", + "source_url": { + "example": "https://www.metaculus.com/questions/", "type": "string" + } + }, + "type": "object" + }, + "metaculus.forecastHistoryResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "order_by": { - "example": "market", - "type": "string" + "data": { + "$ref": "#/definitions/metaculus.ForecastHistoryResponse" }, - "position": { - "example": "desc", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "metaculus.forecastsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "q": { - "example": "bitcoin", - "type": "string" + "data": { + "$ref": "#/definitions/metaculus.ForecastsResponse" }, - "source_url": { - "example": "https://polymarket.com/api/rewards/markets?orderBy=market", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "metaculus.metadataResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "tag_slug": { - "example": "all", - "type": "string" + "data": { + "$ref": "#/definitions/metaculus.QuestionMetadataResponse" }, - "total_count": { - "example": 5430, - "type": "integer" + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "polymarket.RewardsTokenSummary": { + "metaculus.optionsResponseDoc": { "properties": { - "outcome": { - "example": "herO", + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/metaculus.OptionsResponse" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "metaculus.questionResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "price": { - "example": 0.995, - "type": "number" + "data": { + "$ref": "#/definitions/metaculus.QuestionResponse" }, - "token_id": { - "example": "49033998602764986470838384384660931821099068366428064235699748485619139146655", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "polymarket.SearchResponse": { + "metaculus.questionsResponseDoc": { "properties": { - "ascending": { - "type": "boolean" + "code": { + "example": 200, + "type": "integer" }, - "events": { - "items": { - "$ref": "#/definitions/polymarket.EventSummary" - }, - "type": "array" + "data": { + "$ref": "#/definitions/metaculus.QuestionsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "polymarket.ActivityTradesResponse": { + "properties": { + "event_id": { + "example": "101772", + "type": "string" }, "fetched_at": { "example": "2026-06-07T11:00:00Z", "type": "string" }, - "has_more": { - "type": "boolean" + "filter_amount": { + "example": "1", + "type": "string" + }, + "filter_type": { + "example": "CASH", + "type": "string" }, "limit": { - "example": 10, + "example": 50, "type": "integer" }, - "profiles": { - "items": { - "$ref": "#/definitions/polymarket.ProfileMatch" - }, - "type": "array" - }, - "query": { - "example": "bitcoin", + "market": { + "example": "0x3f2604d62ac3ee496ffd6d30156f30663fbaf22097f17f09d7364c35db255d2b", "type": "string" }, - "sort": { - "example": "relevance", - "type": "string" + "offset": { + "example": 0, + "type": "integer" }, "source_url": { - "example": "https://gamma-api.polymarket.com/public-search?q=bitcoin&limit_per_type=10", + "example": "https://data-api.polymarket.com/trades?takerOnly=true&limit=50&offset=0&filterType=CASH&filterAmount=1", "type": "string" }, - "status": { - "example": "open", + "taker_only": { + "example": "true", "type": "string" }, - "tags": { + "trades": { "items": { - "$ref": "#/definitions/polymarket.TagSummary" + "$ref": "#/definitions/polymarket.TradeSummary" }, "type": "array" + } + }, + "type": "object" + }, + "polymarket.BatchTokenMidpoint": { + "properties": { + "midpoint": { + "example": 0.285, + "type": "number" }, - "total_results": { - "example": 123, - "type": "integer" + "token_id": { + "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" } }, "type": "object" }, - "polymarket.SimilarEventsResponse": { + "polymarket.BatchTokenMidpointsOption": { "properties": { - "events": { + "token_ids": { "items": { - "$ref": "#/definitions/polymarket.EventSummary" + "type": "string" }, "type": "array" - }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", - "type": "string" - }, - "limit": { - "example": 10, - "type": "integer" - }, - "source_url": { - "example": "https://gamma-api.polymarket.com/events/similar?event_slug=world-cup-winner", - "type": "string" } }, + "required": [ + "token_ids" + ], "type": "object" }, - "polymarket.TagResponse": { + "polymarket.BatchTokenMidpointsResponse": { "properties": { "fetched_at": { "example": "2026-06-07T11:00:00Z", "type": "string" }, + "midpoints": { + "items": { + "$ref": "#/definitions/polymarket.BatchTokenMidpoint" + }, + "type": "array" + }, + "missing": { + "items": { + "type": "string" + }, + "type": "array" + }, "source_url": { - "example": "https://gamma-api.polymarket.com/tags/slug/crypto", + "example": "https://clob.polymarket.com/midpoints", "type": "string" }, - "tag": { - "$ref": "#/definitions/polymarket.TagSummary" + "token_ids": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "polymarket.TagSummary": { + "polymarket.BatchTokenOrderBooksOption": { "properties": { - "id": { - "example": "21", - "type": "string" - }, - "label": { - "example": "Crypto", - "type": "string" - }, - "slug": { - "example": "crypto", - "type": "string" + "token_ids": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "token_ids" + ], "type": "object" }, - "polymarket.TagsResponse": { + "polymarket.BatchTokenOrderBooksResponse": { "properties": { + "books": { + "items": { + "$ref": "#/definitions/polymarket.OrderBookSummary" + }, + "type": "array" + }, "fetched_at": { "example": "2026-06-07T11:00:00Z", "type": "string" }, - "limit": { - "example": 25, - "type": "integer" - }, - "offset": { - "example": 0, - "type": "integer" + "missing": { + "items": { + "type": "string" + }, + "type": "array" }, "source_url": { - "example": "https://gamma-api.polymarket.com/tags?limit=25", + "example": "https://clob.polymarket.com/books", "type": "string" }, - "tags": { + "token_ids": { "items": { - "$ref": "#/definitions/polymarket.TagSummary" + "type": "string" }, "type": "array" } }, "type": "object" }, - "polymarket.TokenMidpointResponse": { + "polymarket.BatchTokenPrice": { "properties": { - "fetched_at": { - "example": "2026-06-07T11:00:00Z", - "type": "string" - }, - "midpoint": { - "example": 0.285, + "buy_price": { + "example": 0.03, "type": "number" }, - "source_url": { - "example": "https://clob.polymarket.com/midpoint?token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", - "type": "string" + "sell_price": { + "example": 0.54, + "type": "number" }, "token_id": { "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", @@ -20808,57 +21245,63 @@ }, "type": "object" }, - "polymarket.TokenOrderBookResponse": { + "polymarket.BatchTokenPricesOption": { "properties": { - "book": { - "$ref": "#/definitions/polymarket.OrderBookSummary" - }, - "fetched_at": { - "example": "2026-06-07T11:00:00Z", - "type": "string" - }, - "source_url": { - "example": "https://clob.polymarket.com/book?token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", + "side": { "type": "string" }, - "token_id": { - "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", - "type": "string" + "token_ids": { + "items": { + "type": "string" + }, + "type": "array" } }, + "required": [ + "token_ids" + ], "type": "object" }, - "polymarket.TokenPriceHistoryResponse": { + "polymarket.BatchTokenPricesResponse": { "properties": { - "end_ts": { - "example": 1780840800, - "type": "integer" - }, "fetched_at": { "example": "2026-06-07T11:00:00Z", "type": "string" }, - "fidelity": { - "example": 60, - "type": "integer" - }, - "interval": { - "example": "1d", - "type": "string" + "missing": { + "items": { + "type": "string" + }, + "type": "array" }, - "points": { + "prices": { "items": { - "$ref": "#/definitions/polymarket.PriceHistoryPoint" + "$ref": "#/definitions/polymarket.BatchTokenPrice" }, "type": "array" }, + "side": { + "example": "buy", + "type": "string" + }, "source_url": { - "example": "https://clob.polymarket.com/prices-history?fidelity=60&interval=1d&market=81927025054404355287140018940169293739219157042658469116956164881873598220211", + "example": "https://clob.polymarket.com/prices", "type": "string" }, - "start_ts": { - "example": 1780754400, - "type": "integer" + "token_ids": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "polymarket.BatchTokenSpread": { + "properties": { + "spread": { + "example": 0.51, + "type": "number" }, "token_id": { "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", @@ -20867,1134 +21310,1536 @@ }, "type": "object" }, - "polymarket.TokenPriceResponse": { + "polymarket.BatchTokenSpreadsOption": { + "properties": { + "token_ids": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "token_ids" + ], + "type": "object" + }, + "polymarket.BatchTokenSpreadsResponse": { "properties": { "fetched_at": { "example": "2026-06-07T11:00:00Z", "type": "string" }, - "price": { - "example": 0.03, - "type": "number" - }, - "side": { - "example": "buy", - "type": "string" + "missing": { + "items": { + "type": "string" + }, + "type": "array" }, "source_url": { - "example": "https://clob.polymarket.com/price?side=buy&token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", + "example": "https://clob.polymarket.com/spreads", "type": "string" }, - "token_id": { - "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", - "type": "string" + "spreads": { + "items": { + "$ref": "#/definitions/polymarket.BatchTokenSpread" + }, + "type": "array" + }, + "token_ids": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "polymarket.TokenSpreadResponse": { + "polymarket.ClobMarketResponse": { "properties": { - "fetched_at": { - "example": "2026-06-07T11:00:00Z", + "condition_id": { + "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" }, - "source_url": { - "example": "https://clob.polymarket.com/spread?token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", + "fetched_at": { + "example": "2026-06-07T11:00:00Z", "type": "string" }, - "spread": { - "example": 0.51, - "type": "number" + "market": { + "$ref": "#/definitions/polymarket.ClobMarketSummary" }, - "token_id": { - "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "source_url": { + "example": "https://clob.polymarket.com/markets/0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" } }, "type": "object" }, - "polymarket.TradeSummary": { + "polymarket.ClobMarketSummary": { "properties": { - "asset": { - "example": "90219780179584544303349592653084019110196125806694819219181473744581426681835", + "accepting_order_timestamp": { "type": "string" }, - "bio": { - "type": "string" + "accepting_orders": { + "type": "boolean" }, - "condition_id": { - "example": "0x3f2604d62ac3ee496ffd6d30156f30663fbaf22097f17f09d7364c35db255d2b", - "type": "string" + "active": { + "type": "boolean" }, - "event_slug": { - "example": "btc-updown-15m-1780835400", + "archived": { + "type": "boolean" + }, + "closed": { + "type": "boolean" + }, + "condition_id": { + "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" }, - "icon_url": { + "description": { "type": "string" }, - "name": { - "example": "trader", - "type": "string" + "enable_order_book": { + "type": "boolean" }, - "outcome": { - "example": "Up", + "end_date": { + "example": "2026-06-08T00:00:00Z", "type": "string" }, - "outcome_index": { - "example": 0, - "type": "integer" - }, - "price": { - "example": 0.52744, - "type": "number" - }, - "profile_image_optimized": { + "game_start_time": { + "example": "2026-06-07T20:30:00Z", "type": "string" }, - "profile_image_url": { + "icon_url": { "type": "string" }, - "proxy_wallet": { - "example": "0x400e9b5e37f7209adb6938d49d63c48f154319d2", + "image_url": { "type": "string" }, - "pseudonym": { - "example": "Noisy-Dimple", + "is_50_50_outcome": { + "type": "boolean" + }, + "maker_base_fee": { + "example": 1000, + "type": "integer" + }, + "market_slug": { + "example": "codmw-par-tex-2026-06-07-game4", "type": "string" }, - "side": { - "example": "BUY", + "market_url": { + "example": "https://polymarket.com/event/codmw-par-tex-2026-06-07/codmw-par-tex-2026-06-07-game4", "type": "string" }, - "size": { - "example": 25, + "minimum_order_size": { + "example": 5, "type": "number" }, - "slug": { - "example": "btc-updown-15m-1780835400", - "type": "string" + "minimum_tick_size": { + "example": 0.01, + "type": "number" }, - "timestamp": { - "example": 1780835568, - "type": "integer" + "neg_risk": { + "type": "boolean" }, - "title": { - "example": "Bitcoin Up or Down - June 7, 8:30AM-8:45AM ET", + "neg_risk_market_id": { "type": "string" }, - "transaction_hash": { - "example": "0x7ef90efb7e9f921509d8e82ecc76ed3d8384a3740d7ebd81d3bbbfd017899245", + "neg_risk_request_id": { "type": "string" }, - "url": { - "example": "https://polymarket.com/event/btc-updown-15m-1780835400", + "notifications_enabled": { + "type": "boolean" + }, + "question": { + "example": "Call of Duty: Paris Gentle Mates vs OpTic Texas - Game 4 Winner", "type": "string" }, - "value": { - "example": 13.186, - "type": "number" - } - }, - "type": "object" - }, - "polymarket.activityTradesResponseDoc": { - "properties": { - "code": { - "example": 200, + "question_id": { + "example": "0xf693b08c99a00ca87098bc122ccc956434c2ac8720d8ed77e612d008cf33c2c1", + "type": "string" + }, + "rewards": { + "$ref": "#/definitions/polymarket.ClobRewardsSummary" + }, + "seconds_delay": { + "example": 1, "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.ActivityTradesResponse" + "tags": { + "items": { + "type": "string" + }, + "type": "array" }, - "msg": { - "example": "OK", - "type": "string" + "taker_base_fee": { + "example": 1000, + "type": "integer" + }, + "tokens": { + "items": { + "$ref": "#/definitions/polymarket.ClobTokenSummary" + }, + "type": "array" } }, "type": "object" }, - "polymarket.batchTokenMidpointsResponseDoc": { + "polymarket.ClobRewardRate": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/polymarket.BatchTokenMidpointsResponse" - }, - "msg": { - "example": "OK", + "asset_address": { + "example": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", "type": "string" + }, + "rewards_daily_rate": { + "example": 5, + "type": "number" } }, "type": "object" }, - "polymarket.batchTokenOrderBooksResponseDoc": { + "polymarket.ClobRewardsSummary": { "properties": { - "code": { - "example": 200, - "type": "integer" + "max_spread": { + "example": 2.5, + "type": "number" }, - "data": { - "$ref": "#/definitions/polymarket.BatchTokenOrderBooksResponse" + "min_size": { + "example": 500, + "type": "number" }, - "msg": { - "example": "OK", - "type": "string" + "rates": { + "items": { + "$ref": "#/definitions/polymarket.ClobRewardRate" + }, + "type": "array" } }, "type": "object" }, - "polymarket.batchTokenPricesResponseDoc": { + "polymarket.ClobTokenSummary": { "properties": { - "code": { - "example": 200, - "type": "integer" + "outcome": { + "example": "Paris Gentle Mates", + "type": "string" }, - "data": { - "$ref": "#/definitions/polymarket.BatchTokenPricesResponse" + "price": { + "example": 0.285, + "type": "number" }, - "msg": { - "example": "OK", + "token_id": { + "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" + }, + "winner": { + "type": "boolean" } }, "type": "object" }, - "polymarket.batchTokenSpreadsResponseDoc": { + "polymarket.EventDetailResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "event": { + "$ref": "#/definitions/polymarket.EventSummary" }, - "data": { - "$ref": "#/definitions/polymarket.BatchTokenSpreadsResponse" + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" }, - "msg": { - "example": "OK", + "slug": { + "example": "world-cup-winner", + "type": "string" + }, + "source_url": { + "example": "https://gamma-api.polymarket.com/events/slug/world-cup-winner", "type": "string" } }, "type": "object" }, - "polymarket.clobMarketResponseDoc": { + "polymarket.EventSummary": { "properties": { - "code": { - "example": 200, + "active": { + "type": "boolean" + }, + "closed": { + "type": "boolean" + }, + "comment_count": { "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.ClobMarketResponse" + "description": { + "type": "string" }, - "msg": { - "example": "OK", + "end_date": { "type": "string" - } - }, - "type": "object" - }, - "polymarket.eventDetailResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.EventDetailResponse" + "featured": { + "type": "boolean" }, - "msg": { - "example": "OK", + "icon_url": { "type": "string" - } - }, - "type": "object" - }, - "polymarket.eventsResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.EventsResponse" + "id": { + "example": "545095", + "type": "string" }, - "msg": { - "example": "OK", + "image_url": { "type": "string" - } - }, - "type": "object" - }, - "polymarket.homepageFeedResponseDoc": { - "properties": { - "code": { - "example": 200, + }, + "liquidity": { + "type": "number" + }, + "markets": { + "items": { + "$ref": "#/definitions/polymarket.MarketSummary" + }, + "type": "array" + }, + "markets_count": { + "example": 15, "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.HomepageFeedResponse" + "open_interest": { + "type": "number" }, - "msg": { - "example": "OK", + "restricted": { + "type": "boolean" + }, + "slug": { + "example": "bitcoin-above-on-june-7-2026", "type": "string" - } - }, - "type": "object" - }, - "polymarket.leaderboardResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.LeaderboardResponse" + "start_date": { + "type": "string" }, - "msg": { - "example": "OK", + "tags": { + "items": { + "$ref": "#/definitions/polymarket.TagSummary" + }, + "type": "array" + }, + "title": { + "example": "Bitcoin above ___ on June 7?", "type": "string" - } - }, - "type": "object" - }, - "polymarket.macroDashboardResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.MacroDashboardResponse" + "updated_at": { + "type": "string" }, - "msg": { - "example": "OK", + "url": { + "example": "https://polymarket.com/event/bitcoin-above-on-june-7-2026", "type": "string" + }, + "volume": { + "type": "number" + }, + "volume_24h": { + "type": "number" } }, "type": "object" }, - "polymarket.marketDetailResponseDoc": { + "polymarket.EventsResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "ascending": { + "type": "boolean" }, - "data": { - "$ref": "#/definitions/polymarket.MarketDetailResponse" + "closed": { + "example": "false", + "type": "string" }, - "msg": { - "example": "OK", + "events": { + "items": { + "$ref": "#/definitions/polymarket.EventSummary" + }, + "type": "array" + }, + "fetched_at": { + "example": "2026-06-07T11:00:00Z", "type": "string" - } - }, - "type": "object" - }, - "polymarket.marketLiquidityResponseDoc": { - "properties": { - "code": { - "example": 200, + }, + "limit": { + "example": 25, "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.MarketLiquidityResponse" + "offset": { + "example": 0, + "type": "integer" }, - "msg": { - "example": "OK", + "order": { + "example": "volume24hr", + "type": "string" + }, + "source_url": { + "example": "https://gamma-api.polymarket.com/events?limit=25", "type": "string" } }, "type": "object" }, - "polymarket.marketsResponseDoc": { + "polymarket.HomepageFeedResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "cursor": { + "type": "string" }, - "data": { - "$ref": "#/definitions/polymarket.MarketsResponse" + "events": { + "items": { + "$ref": "#/definitions/polymarket.EventSummary" + }, + "type": "array" }, - "msg": { - "example": "OK", + "feed": { + "example": "politics", "type": "string" - } - }, - "type": "object" - }, - "polymarket.predictionsResponseDoc": { - "properties": { - "code": { - "example": 200, + }, + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "has_more": { + "type": "boolean" + }, + "limit": { + "example": 20, "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.PredictionsResponse" + "markets": { + "items": { + "$ref": "#/definitions/polymarket.MarketSummary" + }, + "type": "array" }, - "msg": { - "example": "OK", + "next_cursor": { "type": "string" - } - }, - "type": "object" - }, - "polymarket.publicDataResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.PublicDataResponse" + "source_kind": { + "example": "events_keyset", + "type": "string" }, - "msg": { - "example": "OK", + "source_url": { + "example": "https://gamma-api.polymarket.com/events/keyset?limit=20&tag_slug=politics", "type": "string" } }, "type": "object" }, - "polymarket.rewardsMarketResponseDoc": { + "polymarket.LeaderboardEntry": { "properties": { - "code": { - "example": 200, - "type": "integer" + "profile_image_url": { + "type": "string" }, - "data": { - "$ref": "#/definitions/polymarket.RewardsMarketResponse" + "profit_loss": { + "example": 322870.79601049656, + "type": "number" }, - "msg": { - "example": "OK", + "proxy_wallet": { + "example": "0x4bff30af91642dc7d2b19a8664378fe55c45fc26", "type": "string" - } - }, - "type": "object" - }, - "polymarket.rewardsMarketsResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.RewardsMarketsResponse" + "rank": { + "example": "1", + "type": "string" }, - "msg": { - "example": "OK", + "user_name": { + "example": "Sassy-Bucket", "type": "string" - } - }, - "type": "object" - }, - "polymarket.searchResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.SearchResponse" + "verified_badge": { + "type": "boolean" }, - "msg": { - "example": "OK", + "volume": { + "example": 770358.109102, + "type": "number" + }, + "x_username": { + "example": "polymarket", "type": "string" } }, "type": "object" }, - "polymarket.similarEventsResponseDoc": { + "polymarket.LeaderboardResponse": { "properties": { - "code": { - "example": 200, + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "limit": { + "example": 20, "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.SimilarEventsResponse" + "rows": { + "items": { + "$ref": "#/definitions/polymarket.LeaderboardEntry" + }, + "type": "array" }, - "msg": { - "example": "OK", + "sort_by": { + "example": "profit", + "type": "string" + }, + "source_url": { + "example": "https://data-api.polymarket.com/v1/leaderboard?window=30d&sortBy=profit&limit=20", + "type": "string" + }, + "window": { + "example": "30d", "type": "string" } }, "type": "object" }, - "polymarket.tagResponseDoc": { + "polymarket.MacroDashboardResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "cursor": { + "type": "string" }, - "data": { - "$ref": "#/definitions/polymarket.TagResponse" + "events": { + "items": { + "$ref": "#/definitions/polymarket.EventSummary" + }, + "type": "array" }, - "msg": { - "example": "OK", + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "has_more": { + "type": "boolean" + }, + "limit": { + "example": 20, + "type": "integer" + }, + "next_cursor": { + "type": "string" + }, + "source_url": { + "example": "https://gamma-api.polymarket.com/events/keyset?tag_slug=macro&limit=20", "type": "string" } }, "type": "object" }, - "polymarket.tagsResponseDoc": { + "polymarket.MarketDetailResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "condition_id": { + "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", + "type": "string" }, - "data": { - "$ref": "#/definitions/polymarket.TagsResponse" + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" }, - "msg": { - "example": "OK", + "id": { + "example": "558934", + "type": "string" + }, + "market": { + "$ref": "#/definitions/polymarket.MarketSummary" + }, + "slug": { + "example": "will-spain-win-the-2026-fifa-world-cup-963", + "type": "string" + }, + "source_url": { + "example": "https://gamma-api.polymarket.com/markets/558934", "type": "string" } }, "type": "object" }, - "polymarket.tokenMidpointResponseDoc": { + "polymarket.MarketLiquidityResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" + "clob_market": { + "$ref": "#/definitions/polymarket.ClobMarketSummary" }, - "data": { - "$ref": "#/definitions/polymarket.TokenMidpointResponse" + "condition_id": { + "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", + "type": "string" }, - "msg": { - "example": "OK", + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "id": { + "example": "558934", + "type": "string" + }, + "market": { + "$ref": "#/definitions/polymarket.MarketSummary" + }, + "slug": { + "example": "will-spain-win-the-2026-fifa-world-cup-963", "type": "string" + }, + "source_urls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tokens": { + "items": { + "$ref": "#/definitions/polymarket.MarketLiquidityTokenSummary" + }, + "type": "array" } }, "type": "object" }, - "polymarket.tokenOrderBookResponseDoc": { + "polymarket.MarketLiquidityTokenSummary": { "properties": { - "code": { - "example": 200, - "type": "integer" + "ask_depth": { + "example": 654.33, + "type": "number" }, - "data": { - "$ref": "#/definitions/polymarket.TokenOrderBookResponse" + "bid_depth": { + "example": 117.57, + "type": "number" }, - "msg": { - "example": "OK", + "buy_price": { + "example": 0.16, + "type": "number" + }, + "clob_price": { + "example": 0.161, + "type": "number" + }, + "gamma_price": { + "example": 0.16, + "type": "number" + }, + "last_trade_price": { + "example": 0.162, + "type": "number" + }, + "midpoint": { + "example": 0.165, + "type": "number" + }, + "orderbook_best_ask": { + "example": 0.17, + "type": "number" + }, + "orderbook_best_bid": { + "example": 0.16, + "type": "number" + }, + "orderbook_spread": { + "example": 0.01, + "type": "number" + }, + "outcome": { + "example": "Yes", + "type": "string" + }, + "sell_price": { + "example": 0.17, + "type": "number" + }, + "spread": { + "example": 0.01, + "type": "number" + }, + "token_id": { + "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" } }, "type": "object" }, - "polymarket.tokenPriceHistoryResponseDoc": { + "polymarket.MarketSummary": { "properties": { - "code": { - "example": 200, - "type": "integer" + "active": { + "type": "boolean" }, - "data": { - "$ref": "#/definitions/polymarket.TokenPriceHistoryResponse" + "best_ask": { + "type": "number" }, - "msg": { - "example": "OK", + "best_bid": { + "type": "number" + }, + "closed": { + "type": "boolean" + }, + "condition_id": { + "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", + "type": "string" + }, + "end_date": { + "type": "string" + }, + "id": { + "example": "558934", + "type": "string" + }, + "last_trade_price": { + "type": "number" + }, + "liquidity": { + "type": "number" + }, + "outcomes": { + "items": { + "$ref": "#/definitions/polymarket.OutcomePricePoint" + }, + "type": "array" + }, + "question": { + "example": "Will Spain win the 2026 FIFA World Cup?", + "type": "string" + }, + "slug": { + "example": "will-spain-win-the-2026-fifa-world-cup-963", + "type": "string" + }, + "token_ids": { + "items": { + "type": "string" + }, + "type": "array" + }, + "url": { + "example": "https://polymarket.com/event/world-cup-winner/will-spain-win-the-2026-fifa-world-cup-963", "type": "string" + }, + "volume": { + "type": "number" + }, + "volume_24h": { + "type": "number" } }, "type": "object" }, - "polymarket.tokenPriceResponseDoc": { + "polymarket.MarketsResponse": { "properties": { - "code": { - "example": 200, + "ascending": { + "type": "boolean" + }, + "closed": { + "example": "false", + "type": "string" + }, + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "limit": { + "example": 25, "type": "integer" }, - "data": { - "$ref": "#/definitions/polymarket.TokenPriceResponse" + "markets": { + "items": { + "$ref": "#/definitions/polymarket.MarketSummary" + }, + "type": "array" }, - "msg": { - "example": "OK", + "offset": { + "example": 0, + "type": "integer" + }, + "order": { + "example": "volume24hr", + "type": "string" + }, + "source_url": { + "example": "https://gamma-api.polymarket.com/markets?limit=25", "type": "string" } }, "type": "object" }, - "polymarket.tokenSpreadResponseDoc": { + "polymarket.OrderBookLevel": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/polymarket.TokenSpreadResponse" + "price": { + "example": 0.03, + "type": "number" }, - "msg": { - "example": "OK", - "type": "string" + "size": { + "example": 5, + "type": "number" } }, "type": "object" }, - "popularTrend.CountryIndustryMeta": { + "polymarket.OrderBookSummary": { "properties": { - "country": { + "asks": { "items": { - "$ref": "#/definitions/popularTrend.CountryIndustryMetaItem" + "$ref": "#/definitions/polymarket.OrderBookLevel" }, "type": "array" }, - "industry": { + "bids": { "items": { - "$ref": "#/definitions/popularTrend.CountryIndustryMetaItem" + "$ref": "#/definitions/polymarket.OrderBookLevel" }, "type": "array" + }, + "condition_id": { + "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", + "type": "string" + }, + "hash": { + "example": "31facd52b62495bbc142facb81275400d978f6bf", + "type": "string" + }, + "last_trade_price": { + "example": 0.285, + "type": "number" + }, + "min_order_size": { + "example": 5, + "type": "number" + }, + "neg_risk": { + "type": "boolean" + }, + "tick_size": { + "example": 0.01, + "type": "number" + }, + "timestamp": { + "example": "1780837460175", + "type": "string" + }, + "token_id": { + "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" } }, "type": "object" }, - "popularTrend.CountryIndustryMetaItem": { + "polymarket.OutcomePricePoint": { "properties": { - "id": { + "best_ask": { + "example": 0.162, + "type": "number" + }, + "best_bid": { + "example": 0.161, + "type": "number" + }, + "last_trade_price": { + "example": 0.162, + "type": "number" + }, + "liquidity": { + "example": 1093391.84, + "type": "number" + }, + "market_id": { + "example": "558934", "type": "string" }, - "value": { + "market_slug": { + "example": "will-spain-win-the-2026-fifa-world-cup-963", + "type": "string" + }, + "outcome": { + "example": "Yes", + "type": "string" + }, + "price": { + "example": 0.1615, + "type": "number" + }, + "question": { + "example": "Will Spain win the 2026 FIFA World Cup?", "type": "string" + }, + "volume": { + "example": 30983849.24, + "type": "number" } }, "type": "object" }, - "popularTrend.TopAdsAnalysisPoint": { + "polymarket.PredictionsResponse": { "properties": { - "second": { + "cursor": { + "type": "string" + }, + "events": { + "items": { + "$ref": "#/definitions/polymarket.EventSummary" + }, + "type": "array" + }, + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "has_more": { + "type": "boolean" + }, + "limit": { + "example": 20, "type": "integer" }, - "value": { - "type": "number" + "next_cursor": { + "type": "string" + }, + "recurrence": { + "example": "daily", + "type": "string" + }, + "sort": { + "example": "competitive", + "type": "string" + }, + "source_url": { + "example": "https://gamma-api.polymarket.com/events/keyset?limit=20&order=competitive", + "type": "string" + }, + "status": { + "example": "all", + "type": "string" + }, + "tag": { + "example": "politics", + "type": "string" } }, "type": "object" }, - "popularTrend.TopAdsAnalysisResp": { + "polymarket.PriceHistoryPoint": { "properties": { - "code": { - "type": "integer" + "price": { + "example": 0.48, + "type": "number" }, - "data": { - "properties": { - "analysis": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsAnalysisPoint" - }, - "type": "array" - }, - "duration": { - "type": "number" - }, - "highlight": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "metric": { - "type": "string" - }, - "metric_label": { - "type": "string" - }, - "percentile": { - "type": "number" - }, - "percentile_data": { - "additionalProperties": { - "format": "float64", - "type": "number" - }, - "type": "object" - }, - "percentile_metric": { - "type": "string" - }, - "period_type": { - "type": "integer" - } - }, - "type": "object" + "timestamp": { + "example": 1780826405, + "type": "integer" + } + }, + "type": "object" + }, + "polymarket.ProfileMatch": { + "properties": { + "id": { + "example": "123", + "type": "string" }, - "msg": { + "name": { + "example": "Trader", "type": "string" }, - "request_id": { + "username": { + "example": "trader", "type": "string" } }, "type": "object" }, - "popularTrend.TopAdsDetailResp": { + "polymarket.PublicDataResponse": { "properties": { - "code": { - "type": "integer" - }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsMaterial" + "type": "object" }, - "msg": { + "fetched_at": { + "example": "2026-06-07T11:00:00Z", "type": "string" }, - "request_id": { + "route": { + "example": "sports", + "type": "string" + }, + "source_url": { + "example": "https://gamma-api.polymarket.com/sports", "type": "string" } }, "type": "object" }, - "popularTrend.TopAdsFilterItem": { + "polymarket.RewardsConfigSummary": { "properties": { - "has_conversion": { - "type": "boolean" - }, - "id": { - "type": "object" + "asset_address": { + "example": "0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB", + "type": "string" }, - "label": { + "end_date": { + "example": "2500-12-31", "type": "string" }, - "parent_id": { - "type": "object" + "id": { + "example": 0, + "type": "integer" }, - "value": { + "rate_per_day": { + "example": 10.00036, + "type": "number" + }, + "start_date": { + "example": "2026-06-07", "type": "string" + }, + "total_rewards": { + "example": 0, + "type": "number" } }, "type": "object" }, - "popularTrend.TopAdsFiltersResp": { + "polymarket.RewardsMarketResponse": { "properties": { - "code": { - "type": "integer" + "condition_id": { + "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", + "type": "string" }, - "data": { - "properties": { - "ad_format": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - }, - "ad_language": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - }, - "analysis_metric": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - }, - "country": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - }, - "duration": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - }, - "industry": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - }, - "like": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - }, - "objective": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - }, - "order_by": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - }, - "pattern_label": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - }, - "period": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - } - }, - "type": "object" + "count": { + "example": 1, + "type": "integer" }, - "msg": { + "fetched_at": { + "example": "2026-06-07T11:00:00Z", "type": "string" }, - "request_id": { + "market": { + "$ref": "#/definitions/polymarket.RewardsMarketSummary" + }, + "source_url": { + "example": "https://clob.polymarket.com/rewards/markets/0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327?sponsored=true", "type": "string" } }, "type": "object" }, - "popularTrend.TopAdsListResp": { + "polymarket.RewardsMarketSummary": { "properties": { - "code": { - "type": "integer" + "condition_id": { + "example": "0x2d293b8d8141edcc3317f6e677a01623dc482e7fe8eb4c4e207c9a0987c37d22", + "type": "string" }, - "data": { - "properties": { - "materials": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsMaterial" - }, - "type": "array" - }, - "pagination": { - "$ref": "#/definitions/popularTrend.TopAdsPagination" - } + "daily_reward_rate": { + "example": 10.00036, + "type": "number" + }, + "earning_percentage": { + "example": 0, + "type": "number" + }, + "earnings": { + "items": { + "type": "object" }, - "type": "object" + "type": "array" }, - "msg": { + "event_id": { + "example": "568951", "type": "string" }, - "request_id": { + "event_slug": { + "example": "sc2-hero-cure-2026-06-07", "type": "string" - } - }, - "type": "object" - }, - "popularTrend.TopAdsLocationInfoResp": { - "properties": { - "code": { - "type": "integer" }, - "data": { - "properties": { - "first_industry": { - "type": "object" - }, - "initial_country": { - "items": { - "type": "string" - }, - "type": "array" - }, - "l1_industry": { - "type": "integer" - }, - "l2_industry": { - "type": "integer" - }, - "second_industry": { - "type": "object" - } - }, - "type": "object" + "event_url": { + "example": "https://polymarket.com/event/sc2-hero-cure-2026-06-07", + "type": "string" }, - "msg": { + "image_url": { "type": "string" }, - "request_id": { + "maker_address": { + "example": "0x0000000000000000000000000000000000000000", "type": "string" - } - }, - "type": "object" - }, - "popularTrend.TopAdsLocationsResp": { - "properties": { - "code": { - "type": "integer" }, - "data": { - "properties": { - "country": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" - } - }, - "type": "object" + "market_competitiveness": { + "example": 2.83, + "type": "number" }, - "msg": { + "market_id": { + "example": "2461586", "type": "string" }, - "request_id": { - "type": "string" - } - }, - "type": "object" - }, - "popularTrend.TopAdsMaterial": { - "properties": { - "ad_title": { + "market_slug": { + "example": "sc2-hero-cure-2026-06-07", "type": "string" }, - "brand_name": { + "market_url": { + "example": "https://polymarket.com/event/sc2-hero-cure-2026-06-07/sc2-hero-cure-2026-06-07", "type": "string" }, - "comment": { - "type": "integer" - }, - "cost": { - "type": "integer" + "question": { + "example": "StarCraft II: herO vs Cure (BO7) - Global StarCraft II League Playoffs", + "type": "string" }, - "country_code": { + "rewards_config": { "items": { - "type": "string" + "$ref": "#/definitions/polymarket.RewardsConfigSummary" }, "type": "array" }, - "ctr": { + "rewards_max_spread": { + "example": 4.5, "type": "number" }, - "favorite": { - "type": "boolean" + "rewards_min_size": { + "example": 50, + "type": "number" }, - "has_summary": { - "type": "boolean" + "spread": { + "example": 0.01, + "type": "number" }, - "highlight": { - "type": "string" + "tokens": { + "items": { + "$ref": "#/definitions/polymarket.RewardsTokenSummary" + }, + "type": "array" }, - "highlight_text": { + "total_configured_rewards": { + "example": 0, + "type": "number" + }, + "volume_24h": { + "example": 79.9901, + "type": "number" + } + }, + "type": "object" + }, + "polymarket.RewardsMarketsResponse": { + "properties": { + "count": { + "example": 100, + "type": "integer" + }, + "cursor": { + "example": "MA==", "type": "string" }, - "id": { + "date": { + "example": "2026-06-07", "type": "string" }, - "industry_key": { + "fetched_at": { + "example": "2026-06-07T11:00:00Z", "type": "string" }, - "is_search": { + "has_more": { "type": "boolean" }, - "keyword_list": { + "limit": { + "example": 100, + "type": "integer" + }, + "markets": { "items": { - "type": "string" + "$ref": "#/definitions/polymarket.RewardsMarketSummary" }, "type": "array" }, - "landing_page": { + "next_cursor": { + "example": "MTAw", "type": "string" }, - "like": { - "type": "integer" - }, - "objective_key": { + "order_by": { + "example": "market", "type": "string" }, - "objectives": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" + "position": { + "example": "desc", + "type": "string" }, - "pattern_label": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsFilterItem" - }, - "type": "array" + "q": { + "example": "bitcoin", + "type": "string" }, - "share": { - "type": "integer" + "source_url": { + "example": "https://polymarket.com/api/rewards/markets?orderBy=market", + "type": "string" }, - "source": { + "tag_slug": { + "example": "all", "type": "string" }, - "source_key": { + "total_count": { + "example": 5430, "type": "integer" - }, - "video_info": { - "$ref": "#/definitions/popularTrend.TopAdsVideoInfo" - }, - "voice_over": { - "type": "boolean" } }, "type": "object" }, - "popularTrend.TopAdsPagination": { + "polymarket.RewardsTokenSummary": { "properties": { - "has_more": { - "type": "boolean" - }, - "page": { - "type": "integer" - }, - "size": { - "type": "integer" + "outcome": { + "example": "herO", + "type": "string" }, - "total": { - "type": "integer" + "price": { + "example": 0.995, + "type": "number" }, - "total_count": { - "type": "integer" + "token_id": { + "example": "49033998602764986470838384384660931821099068366428064235699748485619139146655", + "type": "string" } }, "type": "object" }, - "popularTrend.TopAdsRecommendResp": { + "polymarket.SearchResponse": { "properties": { - "code": { + "ascending": { + "type": "boolean" + }, + "events": { + "items": { + "$ref": "#/definitions/polymarket.EventSummary" + }, + "type": "array" + }, + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "has_more": { + "type": "boolean" + }, + "limit": { + "example": 10, "type": "integer" }, - "data": { - "properties": { - "materials": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsMaterial" - }, - "type": "array" - } + "profiles": { + "items": { + "$ref": "#/definitions/polymarket.ProfileMatch" }, - "type": "object" + "type": "array" }, - "msg": { + "query": { + "example": "bitcoin", "type": "string" }, - "request_id": { + "sort": { + "example": "relevance", + "type": "string" + }, + "source_url": { + "example": "https://gamma-api.polymarket.com/public-search?q=bitcoin&limit_per_type=10", + "type": "string" + }, + "status": { + "example": "open", "type": "string" + }, + "tags": { + "items": { + "$ref": "#/definitions/polymarket.TagSummary" + }, + "type": "array" + }, + "total_results": { + "example": 123, + "type": "integer" } }, "type": "object" }, - "popularTrend.TopAdsSafetyResp": { + "polymarket.SimilarEventsResponse": { "properties": { - "code": { - "type": "integer" - }, - "data": { - "properties": { - "cc_banner_key": { - "type": "string" - }, - "creator_search": { - "type": "integer" - }, - "hashtag_search": { - "type": "integer" - }, - "keyword_search": { - "type": "integer" - }, - "sound_search": { - "type": "integer" - }, - "top_ads_search": { - "type": "integer" - } + "events": { + "items": { + "$ref": "#/definitions/polymarket.EventSummary" }, - "type": "object" + "type": "array" }, - "msg": { + "fetched_at": { + "example": "2026-06-07T11:00:00Z", "type": "string" }, - "request_id": { + "limit": { + "example": 10, + "type": "integer" + }, + "source_url": { + "example": "https://gamma-api.polymarket.com/events/similar?event_slug=world-cup-winner", "type": "string" } }, "type": "object" }, - "popularTrend.TopAdsSpotlightResp": { + "polymarket.TagResponse": { "properties": { - "code": { - "type": "integer" - }, - "data": { - "properties": { - "materials": { - "items": { - "$ref": "#/definitions/popularTrend.TopAdsMaterial" - }, - "type": "array" - }, - "pagination": { - "$ref": "#/definitions/popularTrend.TopAdsPagination" - } - }, - "type": "object" - }, - "msg": { + "fetched_at": { + "example": "2026-06-07T11:00:00Z", "type": "string" }, - "request_id": { + "source_url": { + "example": "https://gamma-api.polymarket.com/tags/slug/crypto", "type": "string" + }, + "tag": { + "$ref": "#/definitions/polymarket.TagSummary" } }, "type": "object" }, - "popularTrend.TopAdsSuggestionsResp": { + "polymarket.TagSummary": { "properties": { - "code": { - "type": "integer" - }, - "data": { - "properties": { - "query": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" + "id": { + "example": "21", + "type": "string" }, - "msg": { + "label": { + "example": "Crypto", "type": "string" }, - "request_id": { + "slug": { + "example": "crypto", "type": "string" } }, "type": "object" }, - "popularTrend.TopAdsVideoInfo": { + "polymarket.TagsResponse": { "properties": { - "cover": { + "fetched_at": { + "example": "2026-06-07T11:00:00Z", "type": "string" }, - "duration": { - "type": "number" + "limit": { + "example": 25, + "type": "integer" }, - "height": { + "offset": { + "example": 0, "type": "integer" }, - "vid": { + "source_url": { + "example": "https://gamma-api.polymarket.com/tags?limit=25", "type": "string" }, - "video_url": { - "additionalProperties": { - "type": "string" + "tags": { + "items": { + "$ref": "#/definitions/polymarket.TagSummary" }, - "type": "object" - }, - "width": { - "type": "integer" + "type": "array" } }, "type": "object" }, - "populartrend.countryIndustryMetaResponseDoc": { + "polymarket.TokenMidpointResponse": { + "properties": { + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "midpoint": { + "example": 0.285, + "type": "number" + }, + "source_url": { + "example": "https://clob.polymarket.com/midpoint?token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" + }, + "token_id": { + "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" + } + }, + "type": "object" + }, + "polymarket.TokenOrderBookResponse": { + "properties": { + "book": { + "$ref": "#/definitions/polymarket.OrderBookSummary" + }, + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "source_url": { + "example": "https://clob.polymarket.com/book?token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" + }, + "token_id": { + "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" + } + }, + "type": "object" + }, + "polymarket.TokenPriceHistoryResponse": { + "properties": { + "end_ts": { + "example": 1780840800, + "type": "integer" + }, + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "fidelity": { + "example": 60, + "type": "integer" + }, + "interval": { + "example": "1d", + "type": "string" + }, + "points": { + "items": { + "$ref": "#/definitions/polymarket.PriceHistoryPoint" + }, + "type": "array" + }, + "source_url": { + "example": "https://clob.polymarket.com/prices-history?fidelity=60&interval=1d&market=81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" + }, + "start_ts": { + "example": 1780754400, + "type": "integer" + }, + "token_id": { + "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" + } + }, + "type": "object" + }, + "polymarket.TokenPriceResponse": { + "properties": { + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "price": { + "example": 0.03, + "type": "number" + }, + "side": { + "example": "buy", + "type": "string" + }, + "source_url": { + "example": "https://clob.polymarket.com/price?side=buy&token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" + }, + "token_id": { + "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" + } + }, + "type": "object" + }, + "polymarket.TokenSpreadResponse": { + "properties": { + "fetched_at": { + "example": "2026-06-07T11:00:00Z", + "type": "string" + }, + "source_url": { + "example": "https://clob.polymarket.com/spread?token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" + }, + "spread": { + "example": 0.51, + "type": "number" + }, + "token_id": { + "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", + "type": "string" + } + }, + "type": "object" + }, + "polymarket.TradeSummary": { + "properties": { + "asset": { + "example": "90219780179584544303349592653084019110196125806694819219181473744581426681835", + "type": "string" + }, + "bio": { + "type": "string" + }, + "condition_id": { + "example": "0x3f2604d62ac3ee496ffd6d30156f30663fbaf22097f17f09d7364c35db255d2b", + "type": "string" + }, + "event_slug": { + "example": "btc-updown-15m-1780835400", + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "name": { + "example": "trader", + "type": "string" + }, + "outcome": { + "example": "Up", + "type": "string" + }, + "outcome_index": { + "example": 0, + "type": "integer" + }, + "price": { + "example": 0.52744, + "type": "number" + }, + "profile_image_optimized": { + "type": "string" + }, + "profile_image_url": { + "type": "string" + }, + "proxy_wallet": { + "example": "0x400e9b5e37f7209adb6938d49d63c48f154319d2", + "type": "string" + }, + "pseudonym": { + "example": "Noisy-Dimple", + "type": "string" + }, + "side": { + "example": "BUY", + "type": "string" + }, + "size": { + "example": 25, + "type": "number" + }, + "slug": { + "example": "btc-updown-15m-1780835400", + "type": "string" + }, + "timestamp": { + "example": 1780835568, + "type": "integer" + }, + "title": { + "example": "Bitcoin Up or Down - June 7, 8:30AM-8:45AM ET", + "type": "string" + }, + "transaction_hash": { + "example": "0x7ef90efb7e9f921509d8e82ecc76ed3d8384a3740d7ebd81d3bbbfd017899245", + "type": "string" + }, + "url": { + "example": "https://polymarket.com/event/btc-updown-15m-1780835400", + "type": "string" + }, + "value": { + "example": 13.186, + "type": "number" + } + }, + "type": "object" + }, + "polymarket.activityTradesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.CountryIndustryMeta" + "$ref": "#/definitions/polymarket.ActivityTradesResponse" }, "msg": { "example": "OK", @@ -22003,14 +22848,14 @@ }, "type": "object" }, - "populartrend.topAdsAnalysisResponseDoc": { + "polymarket.batchTokenMidpointsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsAnalysisResp" + "$ref": "#/definitions/polymarket.BatchTokenMidpointsResponse" }, "msg": { "example": "OK", @@ -22019,14 +22864,14 @@ }, "type": "object" }, - "populartrend.topAdsDetailResponseDoc": { + "polymarket.batchTokenOrderBooksResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsDetailResp" + "$ref": "#/definitions/polymarket.BatchTokenOrderBooksResponse" }, "msg": { "example": "OK", @@ -22035,14 +22880,14 @@ }, "type": "object" }, - "populartrend.topAdsFiltersResponseDoc": { + "polymarket.batchTokenPricesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsFiltersResp" + "$ref": "#/definitions/polymarket.BatchTokenPricesResponse" }, "msg": { "example": "OK", @@ -22051,14 +22896,14 @@ }, "type": "object" }, - "populartrend.topAdsListResponseDoc": { + "polymarket.batchTokenSpreadsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsListResp" + "$ref": "#/definitions/polymarket.BatchTokenSpreadsResponse" }, "msg": { "example": "OK", @@ -22067,14 +22912,14 @@ }, "type": "object" }, - "populartrend.topAdsLocationInfoResponseDoc": { + "polymarket.clobMarketResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsLocationInfoResp" + "$ref": "#/definitions/polymarket.ClobMarketResponse" }, "msg": { "example": "OK", @@ -22083,14 +22928,14 @@ }, "type": "object" }, - "populartrend.topAdsLocationsResponseDoc": { + "polymarket.eventDetailResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsLocationsResp" + "$ref": "#/definitions/polymarket.EventDetailResponse" }, "msg": { "example": "OK", @@ -22099,14 +22944,14 @@ }, "type": "object" }, - "populartrend.topAdsRecommendResponseDoc": { + "polymarket.eventsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsRecommendResp" + "$ref": "#/definitions/polymarket.EventsResponse" }, "msg": { "example": "OK", @@ -22115,14 +22960,14 @@ }, "type": "object" }, - "populartrend.topAdsSafetyResponseDoc": { + "polymarket.homepageFeedResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsSafetyResp" + "$ref": "#/definitions/polymarket.HomepageFeedResponse" }, "msg": { "example": "OK", @@ -22131,14 +22976,14 @@ }, "type": "object" }, - "populartrend.topAdsSpotlightResponseDoc": { + "polymarket.leaderboardResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsSpotlightResp" + "$ref": "#/definitions/polymarket.LeaderboardResponse" }, "msg": { "example": "OK", @@ -22147,14 +22992,14 @@ }, "type": "object" }, - "populartrend.topAdsSuggestionsResponseDoc": { + "polymarket.macroDashboardResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsSuggestionsResp" + "$ref": "#/definitions/polymarket.MacroDashboardResponse" }, "msg": { "example": "OK", @@ -22163,461 +23008,671 @@ }, "type": "object" }, - "producthunt.LeaderboardAdItem": { + "polymarket.marketDetailResponseDoc": { "properties": { - "channel_kind": { - "type": "string" - }, - "id": { - "type": "string" - }, - "large_asset_uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "post": { - "$ref": "#/definitions/producthunt.LeaderboardAdPost" - }, - "small_asset_uuid": { - "type": "string" - }, - "subject": { - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "tagline": { - "type": "string" + "data": { + "$ref": "#/definitions/polymarket.MarketDetailResponse" }, - "thumbnail_uuid": { + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "polymarket.marketLiquidityResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "url": { - "type": "string" + "data": { + "$ref": "#/definitions/polymarket.MarketLiquidityResponse" }, - "variation_id": { + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "producthunt.LeaderboardAdPost": { + "polymarket.marketsResponseDoc": { "properties": { - "comments_count": { + "code": { + "example": 200, "type": "integer" }, - "created_at": { - "type": "string" - }, - "disabled_when_scheduled": { - "type": "boolean" - }, - "embargo_preview_at": { - "type": "string" + "data": { + "$ref": "#/definitions/polymarket.MarketsResponse" }, - "featured_at": { + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "polymarket.predictionsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "featured_comment": { - "$ref": "#/definitions/producthunt.ProductCategoryAdComment" - }, - "has_voted": { - "type": "boolean" - }, - "hide_votes_count": { - "type": "boolean" + "data": { + "$ref": "#/definitions/polymarket.PredictionsResponse" }, - "id": { + "msg": { + "example": "OK", "type": "string" - }, - "latest_score": { + } + }, + "type": "object" + }, + "polymarket.publicDataResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "launch_day_score": { - "type": "integer" + "data": { + "$ref": "#/definitions/polymarket.PublicDataResponse" }, - "name": { + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "polymarket.rewardsMarketResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "product": { - "$ref": "#/definitions/producthunt.LeaderboardProductRef" - }, - "randomization_status": { - "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" + "data": { + "$ref": "#/definitions/polymarket.RewardsMarketResponse" }, - "slug": { + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "polymarket.rewardsMarketsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "topics": { - "items": { - "$ref": "#/definitions/producthunt.LeaderboardTopic" - }, - "type": "array" + "data": { + "$ref": "#/definitions/polymarket.RewardsMarketsResponse" }, - "updated_at": { + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "producthunt.LeaderboardGhostItem": { + "polymarket.searchResponseDoc": { "properties": { - "id": { - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "subject": { + "data": { + "$ref": "#/definitions/polymarket.SearchResponse" + }, + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "producthunt.LeaderboardItem": { + "polymarket.similarEventsResponseDoc": { "properties": { - "ad": { - "$ref": "#/definitions/producthunt.LeaderboardAdItem" - }, - "ghost_ad": { - "$ref": "#/definitions/producthunt.LeaderboardGhostItem" + "code": { + "example": 200, + "type": "integer" }, - "post": { - "$ref": "#/definitions/producthunt.LeaderboardPostItem" + "data": { + "$ref": "#/definitions/polymarket.SimilarEventsResponse" }, - "type": { + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "producthunt.LeaderboardPage": { + "polymarket.tagResponseDoc": { "properties": { - "connection": { - "type": "string" - }, - "day": { - "example": 29, + "code": { + "example": 200, "type": "integer" }, - "end_cursor": { - "type": "string" - }, - "featured": { - "type": "boolean" - }, - "golden_kitty_years": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "has_next_page": { - "type": "boolean" - }, - "items": { - "items": { - "$ref": "#/definitions/producthunt.LeaderboardItem" - }, - "type": "array" - }, - "month": { - "example": 1, - "type": "integer" + "data": { + "$ref": "#/definitions/polymarket.TagResponse" }, - "order": { - "example": "DAILY_RANK", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "polymarket.tagsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "raw_page_info": { - "additionalProperties": {}, - "type": "object" + "data": { + "$ref": "#/definitions/polymarket.TagsResponse" }, - "scope": { - "example": "daily", + "msg": { + "example": "OK", "type": "string" - }, - "total_count": { + } + }, + "type": "object" + }, + "polymarket.tokenMidpointResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "week": { - "example": 5, - "type": "integer" + "data": { + "$ref": "#/definitions/polymarket.TokenMidpointResponse" }, - "year": { - "example": 2026, - "type": "integer" + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "producthunt.LeaderboardPostItem": { + "polymarket.tokenOrderBookResponseDoc": { "properties": { - "comments_count": { + "code": { + "example": 200, "type": "integer" }, - "created_at": { - "type": "string" - }, - "daily_rank": { + "data": { + "$ref": "#/definitions/polymarket.TokenOrderBookResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "polymarket.tokenPriceHistoryResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "disabled_when_scheduled": { - "type": "boolean" + "data": { + "$ref": "#/definitions/polymarket.TokenPriceHistoryResponse" }, - "embargo_preview_at": { + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "polymarket.tokenPriceResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "featured_at": { - "type": "string" + "data": { + "$ref": "#/definitions/polymarket.TokenPriceResponse" }, - "friend_voters_count": { + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "polymarket.tokenSpreadResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "has_voted": { - "type": "boolean" + "data": { + "$ref": "#/definitions/polymarket.TokenSpreadResponse" }, - "hide_votes_count": { - "type": "boolean" + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "popularTrend.CountryIndustryMeta": { + "properties": { + "country": { + "items": { + "$ref": "#/definitions/popularTrend.CountryIndustryMetaItem" + }, + "type": "array" }, + "industry": { + "items": { + "$ref": "#/definitions/popularTrend.CountryIndustryMetaItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "popularTrend.CountryIndustryMetaItem": { + "properties": { "id": { "type": "string" }, - "is_subscribed": { - "type": "boolean" - }, - "latest_score": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + "popularTrend.TopAdsAnalysisPoint": { + "properties": { + "second": { "type": "integer" }, - "launch_day_score": { + "value": { + "type": "number" + } + }, + "type": "object" + }, + "popularTrend.TopAdsAnalysisResp": { + "properties": { + "code": { "type": "integer" }, - "monthly_rank": { - "type": "integer" + "data": { + "properties": { + "analysis": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsAnalysisPoint" + }, + "type": "array" + }, + "duration": { + "type": "number" + }, + "highlight": { + "items": { + "type": "integer" + }, + "type": "array" + }, + "metric": { + "type": "string" + }, + "metric_label": { + "type": "string" + }, + "percentile": { + "type": "number" + }, + "percentile_data": { + "additionalProperties": { + "format": "float64", + "type": "number" + }, + "type": "object" + }, + "percentile_metric": { + "type": "string" + }, + "period_type": { + "type": "integer" + } + }, + "type": "object" }, - "name": { + "msg": { "type": "string" }, - "product": { - "$ref": "#/definitions/producthunt.LeaderboardProductRef" - }, - "product_state": { + "request_id": { "type": "string" + } + }, + "type": "object" + }, + "popularTrend.TopAdsDetailResp": { + "properties": { + "code": { + "type": "integer" }, - "randomization_status": { - "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" + "data": { + "$ref": "#/definitions/popularTrend.TopAdsMaterial" }, - "scheduled_at": { + "msg": { "type": "string" }, - "shortened_url": { + "request_id": { "type": "string" + } + }, + "type": "object" + }, + "popularTrend.TopAdsFilterItem": { + "properties": { + "has_conversion": { + "type": "boolean" }, - "slug": { - "type": "string" + "id": { + "type": "object" }, - "tagline": { + "label": { "type": "string" }, - "thumbnail_image_uuid": { + "parent_id": { + "type": "object" + }, + "value": { "type": "string" + } + }, + "type": "object" + }, + "popularTrend.TopAdsFiltersResp": { + "properties": { + "code": { + "type": "integer" }, - "topics": { - "items": { - "$ref": "#/definitions/producthunt.LeaderboardTopic" + "data": { + "properties": { + "ad_format": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + }, + "ad_language": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + }, + "analysis_metric": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + }, + "country": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + }, + "duration": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + }, + "industry": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + }, + "like": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + }, + "objective": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + }, + "order_by": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + }, + "pattern_label": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + }, + "period": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + } }, - "type": "array" + "type": "object" }, - "updated_at": { + "msg": { "type": "string" }, - "weekly_rank": { - "type": "integer" + "request_id": { + "type": "string" } }, "type": "object" }, - "producthunt.LeaderboardProductRef": { + "popularTrend.TopAdsListResp": { "properties": { - "id": { - "type": "string" - }, - "is_no_longer_online": { - "type": "boolean" - }, - "is_subscribed": { - "type": "boolean" - }, - "is_top_product": { - "type": "boolean" + "code": { + "type": "integer" }, - "logo_uuid": { - "type": "string" + "data": { + "properties": { + "materials": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsMaterial" + }, + "type": "array" + }, + "pagination": { + "$ref": "#/definitions/popularTrend.TopAdsPagination" + } + }, + "type": "object" }, - "name": { + "msg": { "type": "string" }, - "slug": { + "request_id": { "type": "string" } }, "type": "object" }, - "producthunt.LeaderboardRandomizationStatus": { + "popularTrend.TopAdsLocationInfoResp": { "properties": { - "active": { - "type": "boolean" + "code": { + "type": "integer" }, - "next_transition_at": { - "type": "string" + "data": { + "properties": { + "first_industry": { + "type": "object" + }, + "initial_country": { + "items": { + "type": "string" + }, + "type": "array" + }, + "l1_industry": { + "type": "integer" + }, + "l2_industry": { + "type": "integer" + }, + "second_industry": { + "type": "object" + } + }, + "type": "object" }, - "random_day": { - "type": "boolean" + "msg": { + "type": "string" }, - "randomize_order": { - "type": "boolean" + "request_id": { + "type": "string" } }, "type": "object" }, - "producthunt.LeaderboardTopic": { + "popularTrend.TopAdsLocationsResp": { "properties": { - "id": { - "type": "string" + "code": { + "type": "integer" }, - "name": { + "data": { + "properties": { + "country": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "msg": { "type": "string" }, - "slug": { + "request_id": { "type": "string" } }, "type": "object" }, - "producthunt.Product": { + "popularTrend.TopAdsMaterial": { "properties": { - "categories": { - "example": [ - "[\"Design\"", - "\"Productivity\"]" - ], + "ad_title": { + "type": "string" + }, + "brand_name": { + "type": "string" + }, + "comment": { + "type": "integer" + }, + "cost": { + "type": "integer" + }, + "country_code": { "items": { "type": "string" }, "type": "array" }, - "daily_rank": { - "example": 1, - "type": "integer" + "ctr": { + "type": "number" }, - "date_published": { - "example": "2024-07-21T12:34:56Z", - "type": "string" + "favorite": { + "type": "boolean" }, - "description": { - "example": "Chronicle lets designers and developers review every iteration in one place.", + "has_summary": { + "type": "boolean" + }, + "highlight": { "type": "string" }, - "followers_count": { - "example": 2000, - "type": "integer" + "highlight_text": { + "type": "string" }, "id": { - "example": "chronicle-design", "type": "string" }, - "monthly_rank": { - "example": 1, - "type": "integer" - }, - "name": { - "example": "Chronicle", + "industry_key": { "type": "string" }, - "rating": { - "example": 4.8, - "type": "number" - }, - "review_count": { - "example": 152, - "type": "integer" - }, - "similar_products": { - "items": { - "$ref": "#/definitions/producthunt.SimilarProduct" - }, - "type": "array" + "is_search": { + "type": "boolean" }, - "social_links": { - "example": [ - "[\"https://twitter.com/chronicle\"", - "\"https://github.com/chronicle\"]" - ], + "keyword_list": { "items": { "type": "string" }, "type": "array" }, - "tagline": { - "example": "Visual version control for teams", - "type": "string" - }, - "website": { - "example": "https://chronicle.design", + "landing_page": { "type": "string" }, - "weekly_rank": { - "example": 1, + "like": { "type": "integer" - } - }, - "type": "object" - }, - "producthunt.ProductAboutAd": { - "properties": { - "channel_kind": { - "type": "string" - }, - "id": { - "type": "string" }, - "large_asset_uuid": { + "objective_key": { "type": "string" }, - "name": { - "type": "string" + "objectives": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" }, - "small_asset_uuid": { - "type": "string" + "pattern_label": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsFilterItem" + }, + "type": "array" }, - "subject": { - "type": "string" + "share": { + "type": "integer" }, - "tagline": { + "source": { "type": "string" }, - "thumbnail_uuid": { - "type": "string" + "source_key": { + "type": "integer" }, - "url": { - "type": "string" + "video_info": { + "$ref": "#/definitions/popularTrend.TopAdsVideoInfo" }, - "variation_id": { - "type": "string" + "voice_over": { + "type": "boolean" } }, "type": "object" }, - "producthunt.ProductAboutDiscussionForum": { + "popularTrend.TopAdsPagination": { "properties": { - "id": { - "type": "string" + "has_more": { + "type": "boolean" }, - "path": { - "type": "string" + "page": { + "type": "integer" }, - "threads": { - "items": { - "$ref": "#/definitions/producthunt.ProductAboutDiscussionThread" - }, - "type": "array" + "size": { + "type": "integer" + }, + "total": { + "type": "integer" }, "total_count": { "type": "integer" @@ -22625,186 +23680,381 @@ }, "type": "object" }, - "producthunt.ProductAboutDiscussionThread": { + "popularTrend.TopAdsRecommendResp": { "properties": { - "commentable_id": { + "code": { + "type": "integer" + }, + "data": { + "properties": { + "materials": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsMaterial" + }, + "type": "array" + } + }, + "type": "object" + }, + "msg": { "type": "string" }, - "comments_count": { + "request_id": { + "type": "string" + } + }, + "type": "object" + }, + "popularTrend.TopAdsSafetyResp": { + "properties": { + "code": { "type": "integer" }, - "created_at": { - "type": "string" + "data": { + "properties": { + "cc_banner_key": { + "type": "string" + }, + "creator_search": { + "type": "integer" + }, + "hashtag_search": { + "type": "integer" + }, + "keyword_search": { + "type": "integer" + }, + "sound_search": { + "type": "integer" + }, + "top_ads_search": { + "type": "integer" + } + }, + "type": "object" }, - "description_preview": { + "msg": { "type": "string" }, - "forum": { - "$ref": "#/definitions/producthunt.ProductAboutForumRef" + "request_id": { + "type": "string" + } + }, + "type": "object" + }, + "popularTrend.TopAdsSpotlightResp": { + "properties": { + "code": { + "type": "integer" }, - "has_voted": { - "type": "boolean" + "data": { + "properties": { + "materials": { + "items": { + "$ref": "#/definitions/popularTrend.TopAdsMaterial" + }, + "type": "array" + }, + "pagination": { + "$ref": "#/definitions/popularTrend.TopAdsPagination" + } + }, + "type": "object" }, - "id": { + "msg": { "type": "string" }, - "is_featured": { - "type": "boolean" + "request_id": { + "type": "string" + } + }, + "type": "object" + }, + "popularTrend.TopAdsSuggestionsResp": { + "properties": { + "code": { + "type": "integer" }, - "is_pinned": { - "type": "boolean" + "data": { + "properties": { + "query": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" }, - "path": { + "msg": { "type": "string" }, - "slug": { + "request_id": { + "type": "string" + } + }, + "type": "object" + }, + "popularTrend.TopAdsVideoInfo": { + "properties": { + "cover": { "type": "string" }, - "title": { + "duration": { + "type": "number" + }, + "height": { + "type": "integer" + }, + "vid": { "type": "string" }, - "user": { - "$ref": "#/definitions/producthunt.ProductCategoryUser" + "video_url": { + "additionalProperties": { + "type": "string" + }, + "type": "object" }, - "votes_count": { + "width": { "type": "integer" } }, "type": "object" }, - "producthunt.ProductAboutForumRef": { + "populartrend.countryIndustryMetaResponseDoc": { "properties": { - "id": { - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "path": { + "data": { + "$ref": "#/definitions/popularTrend.CountryIndustryMeta" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "populartrend.topAdsAnalysisResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "slug": { + "data": { + "$ref": "#/definitions/popularTrend.TopAdsAnalysisResp" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "populartrend.topAdsDetailResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "subject": { - "$ref": "#/definitions/producthunt.ProductAboutForumSubject" + "data": { + "$ref": "#/definitions/popularTrend.TopAdsDetailResp" + }, + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "producthunt.ProductAboutForumSubject": { + "populartrend.topAdsFiltersResponseDoc": { "properties": { - "id": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/popularTrend.TopAdsFiltersResp" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "populartrend.topAdsListResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "is_no_longer_online": { - "type": "boolean" + "data": { + "$ref": "#/definitions/popularTrend.TopAdsListResp" }, - "logo_uuid": { + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "populartrend.topAdsLocationInfoResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "name": { + "data": { + "$ref": "#/definitions/popularTrend.TopAdsLocationInfoResp" + }, + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "producthunt.ProductAboutGhostAd": { + "populartrend.topAdsLocationsResponseDoc": { "properties": { - "id": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/popularTrend.TopAdsLocationsResp" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "populartrend.topAdsRecommendResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "subject": { + "data": { + "$ref": "#/definitions/popularTrend.TopAdsRecommendResp" + }, + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "producthunt.ProductAboutLatestLaunch": { + "populartrend.topAdsSafetyResponseDoc": { "properties": { - "id": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/popularTrend.TopAdsSafetyResp" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "populartrend.topAdsSpotlightResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "is_maker": { - "type": "boolean" + "data": { + "$ref": "#/definitions/popularTrend.TopAdsSpotlightResp" }, - "launch_number": { + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "populartrend.topAdsSuggestionsResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "launched_this_week": { - "type": "boolean" + "data": { + "$ref": "#/definitions/popularTrend.TopAdsSuggestionsResp" }, - "launching_today": { - "type": "boolean" + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "producthunt.LeaderboardAdItem": { + "properties": { + "channel_kind": { + "type": "string" }, - "name": { + "id": { "type": "string" }, - "product_state": { + "large_asset_uuid": { "type": "string" }, - "scheduled_at": { + "name": { "type": "string" }, - "slug": { + "post": { + "$ref": "#/definitions/producthunt.LeaderboardAdPost" + }, + "small_asset_uuid": { + "type": "string" + }, + "subject": { "type": "string" }, "tagline": { "type": "string" }, - "thumbnail_image_uuid": { + "thumbnail_uuid": { + "type": "string" + }, + "url": { + "type": "string" + }, + "variation_id": { "type": "string" } }, "type": "object" }, - "producthunt.ProductAboutLaunch": { + "producthunt.LeaderboardAdPost": { "properties": { - "ad1": { - "$ref": "#/definitions/producthunt.ProductAboutGhostAd" - }, - "ad2": { - "$ref": "#/definitions/producthunt.ProductAboutGhostAd" - }, - "badges": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategoryListBadge" - }, - "type": "array" - }, - "can_deputy_manage": { - "type": "boolean" - }, - "can_manage": { - "type": "boolean" - }, "comments_count": { "type": "integer" }, "created_at": { "type": "string" }, - "daily_rank": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "detailed_reviews": { - "items": { - "$ref": "#/definitions/producthunt.ProductAboutShoutout" - }, - "type": "array" - }, "disabled_when_scheduled": { "type": "boolean" }, "embargo_preview_at": { "type": "string" }, - "featured": { - "type": "boolean" - }, "featured_at": { "type": "string" }, + "featured_comment": { + "$ref": "#/definitions/producthunt.ProductCategoryAdComment" + }, "has_voted": { "type": "boolean" }, @@ -22814,358 +24064,126 @@ "id": { "type": "string" }, - "is_archived": { - "type": "boolean" - }, - "is_available": { - "type": "boolean" - }, - "is_hunter": { - "type": "boolean" - }, - "is_maker": { - "type": "boolean" - }, - "is_top_launch": { - "type": "boolean" - }, "latest_score": { "type": "integer" }, "launch_day_score": { "type": "integer" }, - "launch_number": { - "type": "integer" - }, - "launch_state": { - "type": "string" - }, - "launched_this_week": { - "type": "boolean" - }, - "launching_today": { - "type": "boolean" - }, - "links": { - "items": { - "$ref": "#/definitions/producthunt.ProductAboutLink" - }, - "type": "array" - }, - "makers": { - "items": { - "$ref": "#/definitions/producthunt.ProductAboutUser" - }, - "type": "array" - }, - "media": { - "items": { - "$ref": "#/definitions/producthunt.ProductAboutMedia" - }, - "type": "array" - }, - "meta": { - "$ref": "#/definitions/producthunt.ProductAboutMeta" - }, - "moderation_reason": { - "type": "string" - }, "name": { "type": "string" }, - "pricing_type": { - "type": "string" - }, - "primary_link": { - "$ref": "#/definitions/producthunt.ProductAboutPrimaryLink" - }, "product": { - "$ref": "#/definitions/producthunt.ProductAboutLaunchProduct" - }, - "product_state": { - "type": "string" - }, - "promo": { - "additionalProperties": {}, - "type": "object" - }, - "redirect_to_product": { "$ref": "#/definitions/producthunt.LeaderboardProductRef" }, - "scheduled_at": { - "type": "string" + "randomization_status": { + "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" }, "slug": { "type": "string" }, - "tagline": { - "type": "string" - }, - "thumbnail_image_uuid": { - "type": "string" - }, "topics": { "items": { - "$ref": "#/definitions/producthunt.ProductCategoryRef" + "$ref": "#/definitions/producthunt.LeaderboardTopic" }, "type": "array" }, - "trashed_at": { - "type": "string" - }, "updated_at": { "type": "string" - }, - "url": { - "type": "string" - }, - "user": { - "$ref": "#/definitions/producthunt.ProductAboutUser" - }, - "weekly_rank": { - "type": "integer" } }, "type": "object" }, - "producthunt.ProductAboutLaunchFlags": { + "producthunt.LeaderboardGhostItem": { "properties": { "id": { "type": "string" }, - "launched_this_week": { - "type": "boolean" - }, - "launching_today": { - "type": "boolean" + "subject": { + "type": "string" } }, "type": "object" }, - "producthunt.ProductAboutLaunchProduct": { + "producthunt.LeaderboardItem": { "properties": { - "can_claim": { - "type": "boolean" + "ad": { + "$ref": "#/definitions/producthunt.LeaderboardAdItem" }, - "can_edit": { - "type": "boolean" + "ghost_ad": { + "$ref": "#/definitions/producthunt.LeaderboardGhostItem" }, - "clean_url": { - "type": "string" + "post": { + "$ref": "#/definitions/producthunt.LeaderboardPostItem" }, - "detailed_review": { - "additionalProperties": {}, - "type": "object" + "type": { + "type": "string" + } + }, + "type": "object" + }, + "producthunt.LeaderboardPage": { + "properties": { + "connection": { + "type": "string" }, - "first_launch": { - "type": "boolean" + "day": { + "example": 29, + "type": "integer" }, - "id": { + "end_cursor": { "type": "string" }, - "is_claimed": { - "type": "boolean" - }, - "is_no_longer_online": { + "featured": { "type": "boolean" }, - "is_subscribed": { - "type": "boolean" + "golden_kitty_years": { + "items": { + "type": "integer" + }, + "type": "array" }, - "is_top_product": { + "has_next_page": { "type": "boolean" }, - "is_viewer_team_member": { - "additionalProperties": {}, - "type": "object" - }, - "latest_launch": { - "$ref": "#/definitions/producthunt.ProductAboutLaunchFlags" - }, - "logo_uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "posts_count": { - "type": "integer" - }, - "pro_con_tags": { - "items": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" - }, - "type": "array" - }, - "review_questions": { + "items": { "items": { - "$ref": "#/definitions/producthunt.ProductAboutReviewQuestion" + "$ref": "#/definitions/producthunt.LeaderboardItem" }, "type": "array" }, - "reviews_rating": { - "type": "number" - }, - "slug": { - "type": "string" + "month": { + "example": 1, + "type": "integer" }, - "tagline": { + "order": { + "example": "DAILY_RANK", "type": "string" }, - "viewer_pending_team_request": { + "raw_page_info": { "additionalProperties": {}, "type": "object" }, - "website_domain": { - "type": "string" - }, - "website_url": { - "type": "string" - } - }, - "type": "object" - }, - "producthunt.ProductAboutLink": { - "properties": { - "devices": { - "items": { - "type": "string" - }, - "type": "array" - }, - "id": { - "type": "string" - }, - "redirect_path": { - "type": "string" - }, - "store_name": { - "type": "string" - }, - "website_name": { - "type": "string" - } - }, - "type": "object" - }, - "producthunt.ProductAboutMedia": { - "properties": { - "id": { - "type": "string" - }, - "image_uuid": { - "type": "string" - }, - "interactive_demo_id": { - "type": "string" - }, - "interactive_demo_type": { - "type": "string" - }, - "media_type": { + "scope": { + "example": "daily", "type": "string" }, - "original_height": { - "type": "integer" - }, - "original_width": { + "total_count": { "type": "integer" }, - "platform": { - "type": "string" - }, - "thumbnail_height": { + "week": { + "example": 5, "type": "integer" }, - "thumbnail_width": { + "year": { + "example": 2026, "type": "integer" - }, - "url": { - "type": "string" - }, - "video_id": { - "type": "string" - } - }, - "type": "object" - }, - "producthunt.ProductAboutMentionedProduct": { - "properties": { - "id": { - "type": "string" - }, - "is_no_longer_online": { - "type": "boolean" - }, - "logo_uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "slug": { - "type": "string" - }, - "tagline": { - "type": "string" - } - }, - "type": "object" - }, - "producthunt.ProductAboutMeta": { - "properties": { - "title": { - "type": "string" - } - }, - "type": "object" - }, - "producthunt.ProductAboutPage": { - "properties": { - "ad": { - "$ref": "#/definitions/producthunt.ProductAboutAd" - }, - "launch": { - "$ref": "#/definitions/producthunt.ProductAboutLaunch" - }, - "page_variant_typename": { - "type": "string" - }, - "product": { - "$ref": "#/definitions/producthunt.ProductAboutProduct" - }, - "product_id": { - "type": "string" - }, - "viewer": { - "$ref": "#/definitions/producthunt.ProductAboutViewer" - } - }, - "type": "object" - }, - "producthunt.ProductAboutPageVariant": { - "properties": { - "launch_id": { - "type": "string" - }, - "typename": { - "type": "string" } }, "type": "object" }, - "producthunt.ProductAboutPost": { + "producthunt.LeaderboardPostItem": { "properties": { - "badges": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategoryListBadge" - }, - "type": "array" - }, "comments_count": { "type": "integer" }, @@ -23184,6 +24202,9 @@ "featured_at": { "type": "string" }, + "friend_voters_count": { + "type": "integer" + }, "has_voted": { "type": "boolean" }, @@ -23193,6 +24214,9 @@ "id": { "type": "string" }, + "is_subscribed": { + "type": "boolean" + }, "latest_score": { "type": "integer" }, @@ -23214,8 +24238,8 @@ "randomization_status": { "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" }, - "redirect_to_product": { - "$ref": "#/definitions/producthunt.LeaderboardProductRef" + "scheduled_at": { + "type": "string" }, "shortened_url": { "type": "string" @@ -23229,6 +24253,12 @@ "thumbnail_image_uuid": { "type": "string" }, + "topics": { + "items": { + "$ref": "#/definitions/producthunt.LeaderboardTopic" + }, + "type": "array" + }, "updated_at": { "type": "string" }, @@ -23238,35 +24268,8 @@ }, "type": "object" }, - "producthunt.ProductAboutPrimaryLink": { - "properties": { - "id": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "producthunt.ProductAboutProduct": { + "producthunt.LeaderboardProductRef": { "properties": { - "badges": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategoryListBadge" - }, - "type": "array" - }, - "detailed_review": { - "additionalProperties": {}, - "type": "object" - }, - "discussion_forum": { - "$ref": "#/definitions/producthunt.ProductAboutDiscussionForum" - }, - "followers_count": { - "type": "integer" - }, "id": { "type": "string" }, @@ -23276,177 +24279,191 @@ "is_subscribed": { "type": "boolean" }, - "latest_launch": { - "$ref": "#/definitions/producthunt.ProductAboutLatestLaunch" + "is_top_product": { + "type": "boolean" }, "logo_uuid": { "type": "string" }, - "media": { - "items": { - "$ref": "#/definitions/producthunt.ProductAboutMedia" - }, - "type": "array" - }, "name": { "type": "string" }, - "page_variant": { - "$ref": "#/definitions/producthunt.ProductAboutPageVariant" - }, - "posts": { - "items": { - "$ref": "#/definitions/producthunt.ProductAboutPost" - }, - "type": "array" - }, - "posts_count": { - "type": "integer" - }, - "pro_con_tags": { - "items": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" - }, - "type": "array" - }, - "review_questions": { - "items": { - "$ref": "#/definitions/producthunt.ProductAboutReviewQuestion" - }, - "type": "array" - }, - "reviews_rating": { - "type": "number" - }, - "screenshots": { - "items": { - "$ref": "#/definitions/producthunt.ProductAboutScreenshot" - }, - "type": "array" - }, "slug": { "type": "string" + } + }, + "type": "object" + }, + "producthunt.LeaderboardRandomizationStatus": { + "properties": { + "active": { + "type": "boolean" }, - "tagline": { + "next_transition_at": { "type": "string" }, - "url": { - "type": "string" + "random_day": { + "type": "boolean" + }, + "randomize_order": { + "type": "boolean" } }, "type": "object" }, - "producthunt.ProductAboutReviewQuestion": { + "producthunt.LeaderboardTopic": { "properties": { - "category": { + "id": { "type": "string" }, - "id": { + "name": { "type": "string" }, - "question": { + "slug": { "type": "string" } }, "type": "object" }, - "producthunt.ProductAboutScreenshot": { + "producthunt.Product": { "properties": { - "id": { + "categories": { + "example": [ + "[\"Design\"", + "\"Productivity\"]" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "daily_rank": { + "example": 1, + "type": "integer" + }, + "date_published": { + "example": "2024-07-21T12:34:56Z", "type": "string" }, - "image_uuid": { + "description": { + "example": "Chronicle lets designers and developers review every iteration in one place.", "type": "string" }, - "media_type": { + "followers_count": { + "example": 2000, + "type": "integer" + }, + "id": { + "example": "chronicle-design", "type": "string" }, - "original_height": { + "monthly_rank": { + "example": 1, "type": "integer" }, - "original_width": { + "name": { + "example": "Chronicle", + "type": "string" + }, + "rating": { + "example": 4.8, + "type": "number" + }, + "review_count": { + "example": 152, "type": "integer" - } - }, - "type": "object" - }, - "producthunt.ProductAboutShoutout": { - "properties": { - "alternative_products": { + }, + "similar_products": { "items": { - "$ref": "#/definitions/producthunt.ProductAboutMentionedProduct" + "$ref": "#/definitions/producthunt.SimilarProduct" }, "type": "array" }, - "id": { - "type": "string" + "social_links": { + "example": [ + "[\"https://twitter.com/chronicle\"", + "\"https://github.com/chronicle\"]" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "product": { - "$ref": "#/definitions/producthunt.ProductAboutMentionedProduct" + "tagline": { + "example": "Visual version control for teams", + "type": "string" }, - "shoutout_note": { + "website": { + "example": "https://chronicle.design", "type": "string" + }, + "weekly_rank": { + "example": 1, + "type": "integer" } }, "type": "object" }, - "producthunt.ProductAboutUser": { + "producthunt.ProductAboutAd": { "properties": { - "avatar_url": { + "channel_kind": { "type": "string" }, - "headline": { + "id": { "type": "string" }, - "id": { + "large_asset_uuid": { "type": "string" }, "name": { "type": "string" }, - "username": { + "small_asset_uuid": { "type": "string" - } - }, - "type": "object" - }, - "producthunt.ProductAboutViewer": { - "properties": { - "is_featured_post_maker": { - "type": "boolean" }, - "recent_launch": { - "additionalProperties": {}, - "type": "object" + "subject": { + "type": "string" + }, + "tagline": { + "type": "string" + }, + "thumbnail_uuid": { + "type": "string" + }, + "url": { + "type": "string" + }, + "variation_id": { + "type": "string" } }, "type": "object" }, - "producthunt.ProductAlternativeBadge": { + "producthunt.ProductAboutDiscussionForum": { "properties": { - "date": { - "type": "string" - }, "id": { "type": "string" }, - "period": { + "path": { "type": "string" }, - "position": { - "type": "integer" - }, - "post_name": { - "type": "string" + "threads": { + "items": { + "$ref": "#/definitions/producthunt.ProductAboutDiscussionThread" + }, + "type": "array" }, - "post_slug": { - "type": "string" + "total_count": { + "type": "integer" } }, "type": "object" }, - "producthunt.ProductAlternativeDiscussion": { + "producthunt.ProductAboutDiscussionThread": { "properties": { + "commentable_id": { + "type": "string" + }, "comments_count": { "type": "integer" }, @@ -23456,20 +24473,23 @@ "description_preview": { "type": "string" }, + "forum": { + "$ref": "#/definitions/producthunt.ProductAboutForumRef" + }, "has_voted": { "type": "boolean" }, "id": { "type": "string" }, - "path": { - "type": "string" + "is_featured": { + "type": "boolean" }, - "pinned": { + "is_pinned": { "type": "boolean" }, - "primary_forum": { - "$ref": "#/definitions/producthunt.ProductAlternativeDiscussionForum" + "path": { + "type": "string" }, "slug": { "type": "string" @@ -23478,7 +24498,7 @@ "type": "string" }, "user": { - "$ref": "#/definitions/producthunt.ProductAlternativeDiscussionUser" + "$ref": "#/definitions/producthunt.ProductCategoryUser" }, "votes_count": { "type": "integer" @@ -23486,433 +24506,425 @@ }, "type": "object" }, - "producthunt.ProductAlternativeDiscussionForum": { + "producthunt.ProductAboutForumRef": { "properties": { "id": { "type": "string" }, - "slug": { + "path": { "type": "string" }, - "subject_id": { + "slug": { "type": "string" }, - "subject_name": { - "type": "string" + "subject": { + "$ref": "#/definitions/producthunt.ProductAboutForumSubject" } }, "type": "object" }, - "producthunt.ProductAlternativeDiscussionUser": { + "producthunt.ProductAboutForumSubject": { "properties": { - "avatar_url": { + "id": { "type": "string" }, - "id": { + "is_no_longer_online": { + "type": "boolean" + }, + "logo_uuid": { "type": "string" }, "name": { "type": "string" + } + }, + "type": "object" + }, + "producthunt.ProductAboutGhostAd": { + "properties": { + "id": { + "type": "string" }, - "username": { + "subject": { "type": "string" } }, "type": "object" }, - "producthunt.ProductAlternativeItem": { + "producthunt.ProductAboutLatestLaunch": { "properties": { - "category_score": { - "type": "number" + "id": { + "type": "string" }, - "category_weight": { - "type": "number" + "is_maker": { + "type": "boolean" }, - "combined_score": { - "type": "number" + "launch_number": { + "type": "integer" }, - "embedding_score": { - "type": "number" + "launched_this_week": { + "type": "boolean" }, - "embedding_weight": { - "type": "number" + "launching_today": { + "type": "boolean" }, - "id": { + "name": { "type": "string" }, - "product": { - "$ref": "#/definitions/producthunt.ProductAlternativeProduct" + "product_state": { + "type": "string" }, - "rating_score": { - "type": "number" + "scheduled_at": { + "type": "string" }, - "rating_weight": { - "type": "number" + "slug": { + "type": "string" + }, + "tagline": { + "type": "string" + }, + "thumbnail_image_uuid": { + "type": "string" } }, "type": "object" }, - "producthunt.ProductAlternativeProduct": { + "producthunt.ProductAboutLaunch": { "properties": { - "badges": { - "items": { - "$ref": "#/definitions/producthunt.ProductAlternativeBadge" - }, - "type": "array" + "ad1": { + "$ref": "#/definitions/producthunt.ProductAboutGhostAd" }, - "categories": { + "ad2": { + "$ref": "#/definitions/producthunt.ProductAboutGhostAd" + }, + "badges": { "items": { - "type": "string" + "$ref": "#/definitions/producthunt.ProductCategoryListBadge" }, "type": "array" }, - "followers_count": { - "type": "integer" - }, - "id": { - "type": "string" - }, - "is_subscribed": { + "can_deputy_manage": { "type": "boolean" }, - "is_top_product": { + "can_manage": { "type": "boolean" }, - "logo_uuid": { - "type": "string" - }, - "name": { - "type": "string" - }, - "reviews_count": { + "comments_count": { "type": "integer" }, - "reviews_rating": { - "type": "number" - }, - "slug": { + "created_at": { "type": "string" }, - "structured_data": { - "$ref": "#/definitions/producthunt.ProductAlternativeStructuredData" + "daily_rank": { + "type": "integer" }, - "tagline": { + "description": { "type": "string" }, - "tags": { + "detailed_reviews": { "items": { - "type": "string" + "$ref": "#/definitions/producthunt.ProductAboutShoutout" }, "type": "array" - } - }, - "type": "object" - }, - "producthunt.ProductAlternativeStructuredData": { - "properties": { - "application_category": { - "type": "string" }, - "context": { - "type": "string" + "disabled_when_scheduled": { + "type": "boolean" }, - "date_modified": { + "embargo_preview_at": { "type": "string" }, - "date_published": { - "type": "string" + "featured": { + "type": "boolean" }, - "description": { + "featured_at": { "type": "string" }, + "has_voted": { + "type": "boolean" + }, + "hide_votes_count": { + "type": "boolean" + }, "id": { "type": "string" }, - "image": { - "type": "string" + "is_archived": { + "type": "boolean" }, - "name": { - "type": "string" + "is_available": { + "type": "boolean" }, - "operating_system": { - "type": "string" + "is_hunter": { + "type": "boolean" }, - "screenshot": { - "items": { - "type": "string" - }, - "type": "array" + "is_maker": { + "type": "boolean" }, - "url": { - "type": "string" - } - }, - "type": "object" - }, - "producthunt.ProductAlternativeTag": { - "properties": { - "count": { + "is_top_launch": { + "type": "boolean" + }, + "latest_score": { "type": "integer" }, - "name": { + "launch_day_score": { + "type": "integer" + }, + "launch_number": { + "type": "integer" + }, + "launch_state": { "type": "string" - } - }, - "type": "object" - }, - "producthunt.ProductAlternativesPage": { - "properties": { - "alternative_tags": { + }, + "launched_this_week": { + "type": "boolean" + }, + "launching_today": { + "type": "boolean" + }, + "links": { "items": { - "$ref": "#/definitions/producthunt.ProductAlternativeTag" + "$ref": "#/definitions/producthunt.ProductAboutLink" }, "type": "array" }, - "alternatives_markdown_description": { - "type": "string" - }, - "categories": { + "makers": { "items": { - "type": "string" + "$ref": "#/definitions/producthunt.ProductAboutUser" }, "type": "array" }, - "discussions": { + "media": { "items": { - "$ref": "#/definitions/producthunt.ProductAlternativeDiscussion" + "$ref": "#/definitions/producthunt.ProductAboutMedia" }, "type": "array" }, - "discussions_has_next_page": { - "type": "boolean" + "meta": { + "$ref": "#/definitions/producthunt.ProductAboutMeta" }, - "end_cursor": { - "example": "MTA", + "moderation_reason": { "type": "string" }, - "followers_count": { - "example": 577, - "type": "integer" - }, - "has_next_page": { - "example": true, - "type": "boolean" - }, - "items": { - "items": { - "$ref": "#/definitions/producthunt.ProductAlternativeItem" - }, - "type": "array" - }, "name": { - "example": "Clico", "type": "string" }, - "product_id": { - "example": "1191613", + "pricing_type": { "type": "string" }, - "slug": { - "example": "clico", - "type": "string" + "primary_link": { + "$ref": "#/definitions/producthunt.ProductAboutPrimaryLink" }, - "total_count": { - "example": 50, - "type": "integer" - } - }, - "type": "object" - }, - "producthunt.ProductCategoryAd": { - "properties": { - "channel_kind": { - "type": "string" + "product": { + "$ref": "#/definitions/producthunt.ProductAboutLaunchProduct" }, - "id": { + "product_state": { "type": "string" }, - "large_asset_uuid": { - "type": "string" + "promo": { + "additionalProperties": {}, + "type": "object" }, - "name": { + "redirect_to_product": { + "$ref": "#/definitions/producthunt.LeaderboardProductRef" + }, + "scheduled_at": { "type": "string" }, - "post": { - "$ref": "#/definitions/producthunt.ProductCategoryAdPost" + "slug": { + "type": "string" }, - "small_asset_uuid": { + "tagline": { "type": "string" }, - "subject": { + "thumbnail_image_uuid": { "type": "string" }, - "tagline": { + "topics": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryRef" + }, + "type": "array" + }, + "trashed_at": { "type": "string" }, - "thumbnail_uuid": { + "updated_at": { "type": "string" }, "url": { "type": "string" }, - "variation_id": { - "type": "string" + "user": { + "$ref": "#/definitions/producthunt.ProductAboutUser" + }, + "weekly_rank": { + "type": "integer" } }, "type": "object" }, - "producthunt.ProductCategoryAdComment": { + "producthunt.ProductAboutLaunchFlags": { "properties": { - "body_text": { - "type": "string" - }, "id": { "type": "string" }, - "is_pinned": { + "launched_this_week": { "type": "boolean" }, - "path": { - "type": "string" - }, - "subject_id": { - "type": "string" - }, - "user": { - "$ref": "#/definitions/producthunt.ProductCategoryUser" + "launching_today": { + "type": "boolean" } }, "type": "object" }, - "producthunt.ProductCategoryAdPost": { + "producthunt.ProductAboutLaunchProduct": { "properties": { - "comments_count": { - "type": "integer" + "can_claim": { + "type": "boolean" }, - "created_at": { + "can_edit": { + "type": "boolean" + }, + "clean_url": { "type": "string" }, - "disabled_when_scheduled": { + "detailed_review": { + "additionalProperties": {}, + "type": "object" + }, + "first_launch": { "type": "boolean" }, - "embargo_preview_at": { + "id": { "type": "string" }, - "featured_at": { - "type": "string" + "is_claimed": { + "type": "boolean" }, - "featured_comment": { - "$ref": "#/definitions/producthunt.ProductCategoryAdComment" + "is_no_longer_online": { + "type": "boolean" }, - "has_voted": { + "is_subscribed": { "type": "boolean" }, - "hide_votes_count": { + "is_top_product": { "type": "boolean" }, - "id": { - "type": "string" + "is_viewer_team_member": { + "additionalProperties": {}, + "type": "object" }, - "latest_score": { - "type": "integer" + "latest_launch": { + "$ref": "#/definitions/producthunt.ProductAboutLaunchFlags" }, - "launch_day_score": { - "type": "integer" + "logo_uuid": { + "type": "string" }, "name": { "type": "string" }, - "product_id": { - "type": "string" + "posts_count": { + "type": "integer" }, - "product_slug": { - "type": "string" + "pro_con_tags": { + "items": { + "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" + }, + "type": "array" }, - "product_subscribed": { - "type": "boolean" + "review_questions": { + "items": { + "$ref": "#/definitions/producthunt.ProductAboutReviewQuestion" + }, + "type": "array" }, - "randomization_status": { - "$ref": "#/definitions/producthunt.ProductCategoryRandomizationStatus" + "reviews_rating": { + "type": "number" }, "slug": { "type": "string" }, - "topics": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategoryTopic" - }, - "type": "array" + "tagline": { + "type": "string" }, - "updated_at": { + "viewer_pending_team_request": { + "additionalProperties": {}, + "type": "object" + }, + "website_domain": { + "type": "string" + }, + "website_url": { "type": "string" } }, "type": "object" }, - "producthunt.ProductCategoryAnswer": { + "producthunt.ProductAboutLink": { "properties": { - "body": { - "$ref": "#/definitions/producthunt.ProductCategoryMarkdown" + "devices": { + "items": { + "type": "string" + }, + "type": "array" }, "id": { "type": "string" }, - "sources": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategorySource" - }, - "type": "array" + "redirect_path": { + "type": "string" + }, + "store_name": { + "type": "string" + }, + "website_name": { + "type": "string" } }, "type": "object" }, - "producthunt.ProductCategoryFounderPost": { + "producthunt.ProductAboutMedia": { "properties": { - "badges": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategoryListBadge" - }, - "type": "array" - }, "id": { "type": "string" }, - "name": { + "image_uuid": { "type": "string" }, - "product_id": { + "interactive_demo_id": { "type": "string" }, - "product_slug": { + "interactive_demo_type": { "type": "string" }, - "product_state": { + "media_type": { "type": "string" }, - "slug": { - "type": "string" + "original_height": { + "type": "integer" }, - "thumbnail_image_uuid": { + "original_width": { + "type": "integer" + }, + "platform": { "type": "string" - } - }, - "type": "object" - }, - "producthunt.ProductCategoryFounderShoutout": { - "properties": { - "from_post": { - "$ref": "#/definitions/producthunt.ProductCategoryFounderPost" }, - "id": { + "thumbnail_height": { + "type": "integer" + }, + "thumbnail_width": { + "type": "integer" + }, + "url": { "type": "string" }, - "product_id": { + "video_id": { "type": "string" } }, "type": "object" }, - "producthunt.ProductCategoryHeroProduct": { + "producthunt.ProductAboutMentionedProduct": { "properties": { "id": { "type": "string" @@ -23925,54 +24937,62 @@ }, "name": { "type": "string" + }, + "path": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "tagline": { + "type": "string" } }, "type": "object" }, - "producthunt.ProductCategoryLatestLaunch": { + "producthunt.ProductAboutMeta": { "properties": { - "id": { - "type": "string" - }, - "scheduled_at": { + "title": { "type": "string" } }, "type": "object" }, - "producthunt.ProductCategoryListBadge": { + "producthunt.ProductAboutPage": { "properties": { - "category": { - "type": "string" - }, - "date": { - "type": "string" + "ad": { + "$ref": "#/definitions/producthunt.ProductAboutAd" }, - "id": { - "type": "string" + "launch": { + "$ref": "#/definitions/producthunt.ProductAboutLaunch" }, - "period": { + "page_variant_typename": { "type": "string" }, - "position": { - "type": "integer" - }, - "post_id": { - "type": "string" + "product": { + "$ref": "#/definitions/producthunt.ProductAboutProduct" }, - "post_name": { + "product_id": { "type": "string" }, - "post_slug": { + "viewer": { + "$ref": "#/definitions/producthunt.ProductAboutViewer" + } + }, + "type": "object" + }, + "producthunt.ProductAboutPageVariant": { + "properties": { + "launch_id": { "type": "string" }, - "year": { + "typename": { "type": "string" } }, "type": "object" }, - "producthunt.ProductCategoryListProduct": { + "producthunt.ProductAboutPost": { "properties": { "badges": { "items": { @@ -23980,355 +25000,393 @@ }, "type": "array" }, - "categories": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategoryRef" - }, - "type": "array" - }, - "detailed_reviews_count": { + "comments_count": { "type": "integer" }, - "followers_count": { - "type": "integer" + "created_at": { + "type": "string" }, - "founder_reviews_count": { + "daily_rank": { "type": "integer" }, - "founder_shoutouts": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategoryFounderShoutout" - }, - "type": "array" + "disabled_when_scheduled": { + "type": "boolean" }, - "id": { + "embargo_preview_at": { "type": "string" }, - "is_no_longer_online": { - "type": "boolean" + "featured_at": { + "type": "string" }, - "is_subscribed": { + "has_voted": { "type": "boolean" }, - "is_top_product": { + "hide_votes_count": { "type": "boolean" }, - "latest_launch": { - "$ref": "#/definitions/producthunt.ProductCategoryLatestLaunch" - }, - "logo_uuid": { - "type": "string" - }, - "name": { + "id": { "type": "string" }, - "posts_count": { + "latest_score": { "type": "integer" }, - "reviews_count": { + "launch_day_score": { "type": "integer" }, - "reviews_rating": { - "type": "number" + "monthly_rank": { + "type": "integer" }, - "slug": { + "name": { "type": "string" }, - "structured_data": { - "$ref": "#/definitions/producthunt.ProductAlternativeStructuredData" + "product": { + "$ref": "#/definitions/producthunt.LeaderboardProductRef" }, - "tagline": { + "product_state": { "type": "string" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" + "randomization_status": { + "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" + }, + "redirect_to_product": { + "$ref": "#/definitions/producthunt.LeaderboardProductRef" + }, + "shortened_url": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "tagline": { + "type": "string" + }, + "thumbnail_image_uuid": { + "type": "string" + }, + "updated_at": { + "type": "string" + }, + "weekly_rank": { + "type": "integer" } }, "type": "object" }, - "producthunt.ProductCategoryMarkdown": { + "producthunt.ProductAboutPrimaryLink": { "properties": { - "markdown": { + "id": { "type": "string" }, - "text": { + "url": { "type": "string" } }, "type": "object" }, - "producthunt.ProductCategoryPage": { + "producthunt.ProductAboutProduct": { "properties": { - "description": { - "type": "string" - }, - "discussions": { + "badges": { "items": { - "$ref": "#/definitions/producthunt.ProductAlternativeDiscussion" + "$ref": "#/definitions/producthunt.ProductCategoryListBadge" }, "type": "array" }, - "discussions_has_next_page": { - "type": "boolean" - }, - "expandable_html": { - "type": "string" + "detailed_review": { + "additionalProperties": {}, + "type": "object" }, - "hero_products": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategoryHeroProduct" - }, - "type": "array" + "discussion_forum": { + "$ref": "#/definitions/producthunt.ProductAboutDiscussionForum" }, - "hero_products_count": { + "followers_count": { "type": "integer" }, "id": { "type": "string" }, - "last_updated_at": { - "type": "string" - }, - "meta_title": { - "type": "string" + "is_no_longer_online": { + "type": "boolean" }, - "name": { - "type": "string" + "is_subscribed": { + "type": "boolean" }, - "parent": { - "$ref": "#/definitions/producthunt.ProductCategoryParent" + "latest_launch": { + "$ref": "#/definitions/producthunt.ProductAboutLatestLaunch" }, - "path": { - "example": "/categories/vibe-coding", + "logo_uuid": { "type": "string" }, - "questions": { + "media": { "items": { - "$ref": "#/definitions/producthunt.ProductCategoryQuestion" + "$ref": "#/definitions/producthunt.ProductAboutMedia" }, "type": "array" }, - "raw_relevant_reviews": { + "name": { + "type": "string" + }, + "page_variant": { + "$ref": "#/definitions/producthunt.ProductAboutPageVariant" + }, + "posts": { "items": { - "additionalProperties": {}, - "type": "object" + "$ref": "#/definitions/producthunt.ProductAboutPost" }, "type": "array" }, - "recent_launches_count": { + "posts_count": { "type": "integer" }, - "recent_summary": { - "$ref": "#/definitions/producthunt.ProductCategoryRecentSummary" + "pro_con_tags": { + "items": { + "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" + }, + "type": "array" }, - "reviews_count": { - "type": "integer" + "review_questions": { + "items": { + "$ref": "#/definitions/producthunt.ProductAboutReviewQuestion" + }, + "type": "array" }, - "slug": { - "example": "vibe-coding", - "type": "string" + "reviews_rating": { + "type": "number" }, - "sub_categories": { + "screenshots": { "items": { - "$ref": "#/definitions/producthunt.ProductCategoryRef" + "$ref": "#/definitions/producthunt.ProductAboutScreenshot" }, "type": "array" }, - "targeted_ad": { - "$ref": "#/definitions/producthunt.ProductCategoryAd" + "slug": { + "type": "string" + }, + "tagline": { + "type": "string" + }, + "url": { + "type": "string" } }, "type": "object" }, - "producthunt.ProductCategoryParent": { + "producthunt.ProductAboutReviewQuestion": { "properties": { - "id": { + "category": { "type": "string" }, - "name": { + "id": { "type": "string" }, - "path": { + "question": { "type": "string" - }, - "sub_categories": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategoryRef" - }, - "type": "array" } }, "type": "object" }, - "producthunt.ProductCategoryProductsPage": { + "producthunt.ProductAboutScreenshot": { "properties": { - "ai_summary": { - "type": "string" - }, - "category_tags": { - "items": { - "$ref": "#/definitions/producthunt.ProductAlternativeTag" - }, - "type": "array" - }, - "connection": { - "example": "products", + "id": { "type": "string" }, - "description": { + "image_uuid": { "type": "string" }, - "end_cursor": { + "media_type": { "type": "string" }, - "featured_only": { - "type": "boolean" - }, - "has_next_page": { - "type": "boolean" - }, - "has_previous_page": { - "type": "boolean" - }, - "id": { - "type": "string" + "original_height": { + "type": "integer" }, - "items": { + "original_width": { + "type": "integer" + } + }, + "type": "object" + }, + "producthunt.ProductAboutShoutout": { + "properties": { + "alternative_products": { "items": { - "$ref": "#/definitions/producthunt.ProductCategoryListProduct" + "$ref": "#/definitions/producthunt.ProductAboutMentionedProduct" }, "type": "array" }, - "last_updated_at": { + "id": { "type": "string" }, - "name": { - "type": "string" + "product": { + "$ref": "#/definitions/producthunt.ProductAboutMentionedProduct" }, - "order": { - "example": "highest_rated", + "shoutout_note": { + "type": "string" + } + }, + "type": "object" + }, + "producthunt.ProductAboutUser": { + "properties": { + "avatar_url": { "type": "string" }, - "page": { - "example": 1, - "type": "integer" - }, - "page_size": { - "example": 15, - "type": "integer" + "headline": { + "type": "string" }, - "path": { - "example": "/categories/vibe-coding", + "id": { "type": "string" }, - "slug": { - "example": "vibe-coding", + "name": { "type": "string" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" + "username": { + "type": "string" + } + }, + "type": "object" + }, + "producthunt.ProductAboutViewer": { + "properties": { + "is_featured_post_maker": { + "type": "boolean" }, - "total_count": { - "type": "integer" + "recent_launch": { + "additionalProperties": {}, + "type": "object" } }, "type": "object" }, - "producthunt.ProductCategoryQuestion": { + "producthunt.ProductAlternativeBadge": { "properties": { - "body": { - "$ref": "#/definitions/producthunt.ProductCategoryMarkdown" + "date": { + "type": "string" }, "id": { "type": "string" }, - "top_answer": { - "$ref": "#/definitions/producthunt.ProductCategoryAnswer" + "period": { + "type": "string" + }, + "position": { + "type": "integer" + }, + "post_name": { + "type": "string" + }, + "post_slug": { + "type": "string" } }, "type": "object" }, - "producthunt.ProductCategoryRandomizationStatus": { + "producthunt.ProductAlternativeDiscussion": { "properties": { - "active": { + "comments_count": { + "type": "integer" + }, + "created_at": { + "type": "string" + }, + "description_preview": { + "type": "string" + }, + "has_voted": { "type": "boolean" }, - "next_transition_at": { + "id": { "type": "string" }, - "random_day": { + "path": { + "type": "string" + }, + "pinned": { "type": "boolean" - } - }, - "type": "object" - }, - "producthunt.ProductCategoryRecentSummary": { - "properties": { - "products": { - "items": { - "$ref": "#/definitions/producthunt.ProductCategorySummaryProduct" - }, - "type": "array" }, - "summary": { + "primary_forum": { + "$ref": "#/definitions/producthunt.ProductAlternativeDiscussionForum" + }, + "slug": { + "type": "string" + }, + "title": { "type": "string" + }, + "user": { + "$ref": "#/definitions/producthunt.ProductAlternativeDiscussionUser" + }, + "votes_count": { + "type": "integer" } }, "type": "object" }, - "producthunt.ProductCategoryRef": { + "producthunt.ProductAlternativeDiscussionForum": { "properties": { "id": { "type": "string" }, - "name": { + "slug": { "type": "string" }, - "path": { + "subject_id": { "type": "string" }, - "slug": { + "subject_name": { "type": "string" } }, "type": "object" }, - "producthunt.ProductCategorySource": { + "producthunt.ProductAlternativeDiscussionUser": { "properties": { - "badges": { - "items": { - "type": "string" - }, - "type": "array" + "avatar_url": { + "type": "string" }, "id": { "type": "string" }, - "path": { + "name": { "type": "string" }, - "subject_id": { + "username": { "type": "string" + } + }, + "type": "object" + }, + "producthunt.ProductAlternativeItem": { + "properties": { + "category_score": { + "type": "number" }, - "type": { - "type": "string" + "category_weight": { + "type": "number" }, - "user": { - "$ref": "#/definitions/producthunt.ProductCategoryUser" + "combined_score": { + "type": "number" }, - "visible_at": { + "embedding_score": { + "type": "number" + }, + "embedding_weight": { + "type": "number" + }, + "id": { "type": "string" + }, + "product": { + "$ref": "#/definitions/producthunt.ProductAlternativeProduct" + }, + "rating_score": { + "type": "number" + }, + "rating_weight": { + "type": "number" } }, "type": "object" }, - "producthunt.ProductCategorySummaryProduct": { + "producthunt.ProductAlternativeProduct": { "properties": { "badges": { "items": { @@ -24338,7 +25396,7 @@ }, "categories": { "items": { - "$ref": "#/definitions/producthunt.ProductCategoryRef" + "type": "string" }, "type": "array" }, @@ -24348,18 +25406,12 @@ "id": { "type": "string" }, - "is_no_longer_online": { - "type": "boolean" - }, "is_subscribed": { "type": "boolean" }, "is_top_product": { "type": "boolean" }, - "latest_launch": { - "$ref": "#/definitions/producthunt.ProductCategoryLatestLaunch" - }, "logo_uuid": { "type": "string" }, @@ -24375,6 +25427,9 @@ "slug": { "type": "string" }, + "structured_data": { + "$ref": "#/definitions/producthunt.ProductAlternativeStructuredData" + }, "tagline": { "type": "string" }, @@ -24387,243 +25442,265 @@ }, "type": "object" }, - "producthunt.ProductCategoryTopic": { + "producthunt.ProductAlternativeStructuredData": { "properties": { + "application_category": { + "type": "string" + }, + "context": { + "type": "string" + }, + "date_modified": { + "type": "string" + }, + "date_published": { + "type": "string" + }, + "description": { + "type": "string" + }, "id": { "type": "string" }, + "image": { + "type": "string" + }, "name": { "type": "string" }, - "slug": { + "operating_system": { + "type": "string" + }, + "screenshot": { + "items": { + "type": "string" + }, + "type": "array" + }, + "url": { "type": "string" } }, "type": "object" }, - "producthunt.ProductCategoryUser": { + "producthunt.ProductAlternativeTag": { "properties": { - "avatar_url": { - "type": "string" - }, - "id": { - "type": "string" + "count": { + "type": "integer" }, "name": { "type": "string" - }, - "username": { - "type": "string" } }, "type": "object" }, - "producthunt.ProductCustomersPage": { + "producthunt.ProductAlternativesPage": { "properties": { - "connection": { - "example": "customers", + "alternative_tags": { + "items": { + "$ref": "#/definitions/producthunt.ProductAlternativeTag" + }, + "type": "array" + }, + "alternatives_markdown_description": { "type": "string" }, + "categories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "discussions": { + "items": { + "$ref": "#/definitions/producthunt.ProductAlternativeDiscussion" + }, + "type": "array" + }, + "discussions_has_next_page": { + "type": "boolean" + }, "end_cursor": { + "example": "MTA", "type": "string" }, - "has_next_page": { - "type": "boolean" + "followers_count": { + "example": 577, + "type": "integer" }, - "has_previous_page": { + "has_next_page": { + "example": true, "type": "boolean" }, "items": { "items": { - "$ref": "#/definitions/producthunt.ProductCategoryListProduct" + "$ref": "#/definitions/producthunt.ProductAlternativeItem" }, "type": "array" }, "name": { - "example": "OpenAI", - "type": "string" - }, - "order": { - "example": "customers", + "example": "Clico", "type": "string" }, - "page": { - "example": 1, - "type": "integer" - }, - "page_size": { - "example": 10, - "type": "integer" - }, - "pages_count": { - "example": 12, - "type": "integer" - }, "product_id": { - "example": "594550", + "example": "1191613", "type": "string" }, - "raw_page_info": { - "additionalProperties": {}, - "type": "object" - }, "slug": { - "example": "openai", + "example": "clico", "type": "string" }, "total_count": { - "example": 120, + "example": 50, "type": "integer" } }, "type": "object" }, - "producthunt.ProductDetailedReview": { + "producthunt.ProductCategoryAd": { "properties": { - "alternative_products": { - "items": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" - }, - "type": "array" + "channel_kind": { + "type": "string" }, - "alternatives_feedback": { + "id": { "type": "string" }, - "can_destroy": { - "type": "boolean" + "large_asset_uuid": { + "type": "string" }, - "can_moderate": { - "type": "boolean" + "name": { + "type": "string" }, - "can_reply": { - "type": "boolean" + "post": { + "$ref": "#/definitions/producthunt.ProductCategoryAdPost" }, - "can_update": { - "type": "boolean" + "small_asset_uuid": { + "type": "string" }, - "comments_count": { - "type": "integer" + "subject": { + "type": "string" }, - "created_at": { + "tagline": { "type": "string" }, - "customization_rating": { - "type": "integer" + "thumbnail_uuid": { + "type": "string" }, - "ease_of_use_rating": { - "type": "integer" + "url": { + "type": "string" }, - "follow_product": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewFollowProduct" + "variation_id": { + "type": "string" + } + }, + "type": "object" + }, + "producthunt.ProductCategoryAdComment": { + "properties": { + "body_text": { + "type": "string" }, - "from_post": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewPost" + "id": { + "type": "string" }, - "has_voted": { + "is_pinned": { "type": "boolean" }, - "id": { + "path": { "type": "string" }, - "impression_count": { + "subject_id": { + "type": "string" + }, + "user": { + "$ref": "#/definitions/producthunt.ProductCategoryUser" + } + }, + "type": "object" + }, + "producthunt.ProductCategoryAdPost": { + "properties": { + "comments_count": { "type": "integer" }, - "is_hidden": { + "created_at": { + "type": "string" + }, + "disabled_when_scheduled": { "type": "boolean" }, - "llm_content_quality_grade": { + "embargo_preview_at": { "type": "string" }, - "llm_content_quality_reason": { + "featured_at": { "type": "string" }, - "negative_feedback": { - "type": "string" + "featured_comment": { + "$ref": "#/definitions/producthunt.ProductCategoryAdComment" }, - "overall_experience": { - "type": "string" + "has_voted": { + "type": "boolean" }, - "overall_rating": { - "type": "integer" + "hide_votes_count": { + "type": "boolean" }, - "positive_feedback": { + "id": { "type": "string" }, - "product": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" - }, - "question_answers": { - "items": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewQuestionAnswer" - }, - "type": "array" + "latest_score": { + "type": "integer" }, - "reliability_rating": { + "launch_day_score": { "type": "integer" }, - "review_type": { + "name": { "type": "string" }, - "selected_cons": { - "items": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" - }, - "type": "array" - }, - "selected_pros": { - "items": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" - }, - "type": "array" - }, - "status": { + "product_id": { "type": "string" }, - "threads_end_cursor": { + "product_slug": { "type": "string" }, - "threads_has_next_page": { + "product_subscribed": { "type": "boolean" }, - "threads_total_count": { - "type": "integer" + "randomization_status": { + "$ref": "#/definitions/producthunt.ProductCategoryRandomizationStatus" }, - "user": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewUser" + "slug": { + "type": "string" }, - "value_for_money_rating": { - "type": "integer" + "topics": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryTopic" + }, + "type": "array" }, - "votes_count": { - "type": "integer" + "updated_at": { + "type": "string" } }, "type": "object" }, - "producthunt.ProductDetailedReviewFollowProduct": { + "producthunt.ProductCategoryAnswer": { "properties": { - "id": { - "type": "string" - }, - "is_no_longer_online": { - "type": "boolean" - }, - "is_subscribed": { - "type": "boolean" - }, - "logo_uuid": { - "type": "string" + "body": { + "$ref": "#/definitions/producthunt.ProductCategoryMarkdown" }, - "name": { + "id": { "type": "string" }, - "slug": { - "type": "string" + "sources": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategorySource" + }, + "type": "array" } }, "type": "object" }, - "producthunt.ProductDetailedReviewPost": { + "producthunt.ProductCategoryFounderPost": { "properties": { "badges": { "items": { @@ -24634,21 +25711,12 @@ "id": { "type": "string" }, - "is_top_launch": { - "type": "boolean" - }, - "latest_score": { - "type": "integer" - }, "name": { "type": "string" }, "product_id": { "type": "string" }, - "product_is_top_product": { - "type": "boolean" - }, "product_slug": { "type": "string" }, @@ -24664,155 +25732,132 @@ }, "type": "object" }, - "producthunt.ProductDetailedReviewProduct": { + "producthunt.ProductCategoryFounderShoutout": { "properties": { - "id": { - "type": "string" - }, - "is_no_longer_online": { - "type": "boolean" - }, - "logo_uuid": { - "type": "string" + "from_post": { + "$ref": "#/definitions/producthunt.ProductCategoryFounderPost" }, - "name": { + "id": { "type": "string" }, - "slug": { + "product_id": { "type": "string" } }, "type": "object" }, - "producthunt.ProductDetailedReviewQuestionAnswer": { + "producthunt.ProductCategoryHeroProduct": { "properties": { - "answer": { - "type": "string" - }, "id": { "type": "string" }, - "question": { + "is_no_longer_online": { + "type": "boolean" + }, + "logo_uuid": { "type": "string" }, - "question_id": { + "name": { "type": "string" } }, "type": "object" }, - "producthunt.ProductDetailedReviewTag": { + "producthunt.ProductCategoryLatestLaunch": { "properties": { - "count": { - "type": "integer" - }, "id": { "type": "string" }, - "name": { - "type": "string" - }, - "type": { + "scheduled_at": { "type": "string" } }, "type": "object" }, - "producthunt.ProductDetailedReviewUser": { + "producthunt.ProductCategoryListBadge": { "properties": { - "avatar_url": { + "category": { "type": "string" }, - "headline": { + "date": { "type": "string" }, "id": { "type": "string" }, - "is_account_verified": { - "type": "boolean" - }, - "is_ambassador": { - "type": "boolean" - }, - "is_followed": { - "type": "boolean" - }, - "name": { + "period": { "type": "string" }, - "reviews_count": { + "position": { "type": "integer" }, - "selected_byline_product": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" - }, - "top_hunter_badge": { - "additionalProperties": {}, - "type": "object" + "post_id": { + "type": "string" }, - "top_launch_badge": { - "additionalProperties": {}, - "type": "object" + "post_name": { + "type": "string" }, - "top_product_badge": { - "additionalProperties": {}, - "type": "object" + "post_slug": { + "type": "string" }, - "username": { + "year": { "type": "string" } }, "type": "object" }, - "producthunt.ProductDetailedReviewsPage": { + "producthunt.ProductCategoryListProduct": { "properties": { - "connection": { - "example": "detailedReviews", - "type": "string" + "badges": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryListBadge" + }, + "type": "array" }, - "detailed_review": { - "additionalProperties": {}, - "type": "object" + "categories": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryRef" + }, + "type": "array" }, "detailed_reviews_count": { "type": "integer" }, - "end_cursor": { - "type": "string" + "followers_count": { + "type": "integer" }, - "founder_detailed_reviews_count": { + "founder_reviews_count": { "type": "integer" }, - "has_next_page": { - "example": false, + "founder_shoutouts": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryFounderShoutout" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "is_no_longer_online": { "type": "boolean" }, - "is_maker": { + "is_subscribed": { "type": "boolean" }, - "is_trashed": { + "is_top_product": { "type": "boolean" }, - "items": { - "items": { - "$ref": "#/definitions/producthunt.ProductDetailedReview" - }, - "type": "array" + "latest_launch": { + "$ref": "#/definitions/producthunt.ProductCategoryLatestLaunch" }, - "name": { + "logo_uuid": { "type": "string" }, - "other_detailed_reviews_count": { - "type": "integer" - }, - "product_id": { - "example": "1191613", + "name": { "type": "string" }, - "raw_page_info": { - "additionalProperties": {}, - "type": "object" + "posts_count": { + "type": "integer" }, "reviews_count": { "type": "integer" @@ -24820,98 +25865,119 @@ "reviews_rating": { "type": "number" }, - "reviews_recent_rating": { - "type": "number" - }, "slug": { - "example": "clico", "type": "string" }, - "total_count": { - "example": 6, - "type": "integer" + "structured_data": { + "$ref": "#/definitions/producthunt.ProductAlternativeStructuredData" + }, + "tagline": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "producthunt.ProductLaunchesPage": { + "producthunt.ProductCategoryMarkdown": { "properties": { - "connection": { - "example": "posts", + "markdown": { "type": "string" }, - "end_cursor": { + "text": { + "type": "string" + } + }, + "type": "object" + }, + "producthunt.ProductCategoryPage": { + "properties": { + "description": { "type": "string" }, - "has_next_page": { - "type": "boolean" - }, - "items": { + "discussions": { "items": { - "$ref": "#/definitions/producthunt.ProductAboutPost" + "$ref": "#/definitions/producthunt.ProductAlternativeDiscussion" }, "type": "array" }, - "name": { - "example": "OpenAI", - "type": "string" + "discussions_has_next_page": { + "type": "boolean" }, - "order": { - "example": "DATE", + "expandable_html": { "type": "string" }, - "product_id": { - "example": "1191613", - "type": "string" + "hero_products": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryHeroProduct" + }, + "type": "array" }, - "raw_page_info": { - "additionalProperties": {}, - "type": "object" + "hero_products_count": { + "type": "integer" }, - "slug": { - "example": "openai", + "id": { "type": "string" }, - "total_count": { - "example": 12, - "type": "integer" - } - }, - "type": "object" - }, - "producthunt.ProductMaker": { - "properties": { - "avatar_url": { + "last_updated_at": { "type": "string" }, - "followers_count": { - "type": "integer" + "meta_title": { + "type": "string" }, - "headline": { + "name": { "type": "string" }, - "id": { + "parent": { + "$ref": "#/definitions/producthunt.ProductCategoryParent" + }, + "path": { + "example": "/categories/vibe-coding", "type": "string" }, - "is_followed": { - "type": "boolean" + "questions": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryQuestion" + }, + "type": "array" }, - "made_posts": { + "raw_relevant_reviews": { "items": { - "$ref": "#/definitions/producthunt.ProductMakerPost" + "additionalProperties": {}, + "type": "object" }, "type": "array" }, - "name": { - "type": "string" + "recent_launches_count": { + "type": "integer" }, - "username": { + "recent_summary": { + "$ref": "#/definitions/producthunt.ProductCategoryRecentSummary" + }, + "reviews_count": { + "type": "integer" + }, + "slug": { + "example": "vibe-coding", "type": "string" + }, + "sub_categories": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryRef" + }, + "type": "array" + }, + "targeted_ad": { + "$ref": "#/definitions/producthunt.ProductCategoryAd" } }, "type": "object" }, - "producthunt.ProductMakerPost": { + "producthunt.ProductCategoryParent": { "properties": { "id": { "type": "string" @@ -24919,849 +25985,900 @@ "name": { "type": "string" }, - "product_id": { - "type": "string" - }, - "product_slug": { - "type": "string" - }, - "product_state": { - "type": "string" - }, - "slug": { + "path": { "type": "string" }, - "thumbnail_image_uuid": { - "type": "string" + "sub_categories": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryRef" + }, + "type": "array" } }, "type": "object" }, - "producthunt.ProductMakersPage": { + "producthunt.ProductCategoryProductsPage": { "properties": { - "can_claim": { - "type": "boolean" + "ai_summary": { + "type": "string" + }, + "category_tags": { + "items": { + "$ref": "#/definitions/producthunt.ProductAlternativeTag" + }, + "type": "array" }, "connection": { - "example": "makers", + "example": "products", + "type": "string" + }, + "description": { "type": "string" }, "end_cursor": { "type": "string" }, - "has_next_page": { - "example": false, + "featured_only": { "type": "boolean" }, - "is_claimed": { + "has_next_page": { "type": "boolean" }, - "is_trashed": { + "has_previous_page": { "type": "boolean" }, + "id": { + "type": "string" + }, "items": { "items": { - "$ref": "#/definitions/producthunt.ProductMaker" + "$ref": "#/definitions/producthunt.ProductCategoryListProduct" }, "type": "array" }, + "last_updated_at": { + "type": "string" + }, "name": { "type": "string" }, - "product_id": { - "example": "1191613", + "order": { + "example": "highest_rated", "type": "string" }, - "raw_page_info": { - "additionalProperties": {}, - "type": "object" + "page": { + "example": 1, + "type": "integer" + }, + "page_size": { + "example": 15, + "type": "integer" + }, + "path": { + "example": "/categories/vibe-coding", + "type": "string" }, "slug": { - "example": "clico", + "example": "vibe-coding", "type": "string" }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, "total_count": { - "example": 3, "type": "integer" - }, - "viewer_pending_team_request": { - "additionalProperties": {}, - "type": "object" } }, "type": "object" }, - "producthunt.SimilarProduct": { + "producthunt.ProductCategoryQuestion": { "properties": { - "categories": { - "example": [ - "[\"Presentation Software\"]" - ], - "items": { - "type": "string" - }, - "type": "array" + "body": { + "$ref": "#/definitions/producthunt.ProductCategoryMarkdown" }, "id": { - "example": "beautiful-ai", "type": "string" }, - "name": { - "example": "Beautiful.ai", - "type": "string" - }, - "rating": { - "example": 3.3, - "type": "number" - }, - "review_count": { - "example": 20, - "type": "integer" + "top_answer": { + "$ref": "#/definitions/producthunt.ProductCategoryAnswer" } }, "type": "object" }, - "producthunt.aboutResponseDoc": { + "producthunt.ProductCategoryRandomizationStatus": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/producthunt.ProductAboutPage" + "active": { + "type": "boolean" }, - "msg": { - "example": "Request successful", + "next_transition_at": { "type": "string" + }, + "random_day": { + "type": "boolean" } }, "type": "object" }, - "producthunt.alternativesResponseDoc": { + "producthunt.ProductCategoryRecentSummary": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/producthunt.ProductAlternativesPage" + "products": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategorySummaryProduct" + }, + "type": "array" }, - "msg": { - "example": "OK", + "summary": { "type": "string" } }, "type": "object" }, - "producthunt.categoryProductsResponseDoc": { + "producthunt.ProductCategoryRef": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/producthunt.ProductCategoryProductsPage" + "id": { + "type": "string" }, - "msg": { - "example": "OK", + "name": { "type": "string" - } - }, - "type": "object" - }, - "producthunt.categoryResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/producthunt.ProductCategoryPage" + "path": { + "type": "string" }, - "msg": { - "example": "OK", + "slug": { "type": "string" } }, "type": "object" }, - "producthunt.customersResponseDoc": { + "producthunt.ProductCategorySource": { "properties": { - "code": { - "example": 200, - "type": "integer" + "badges": { + "items": { + "type": "string" + }, + "type": "array" }, - "data": { - "$ref": "#/definitions/producthunt.ProductCustomersPage" + "id": { + "type": "string" }, - "msg": { - "example": "OK", + "path": { "type": "string" - } - }, - "type": "object" - }, - "producthunt.launchesResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/producthunt.ProductLaunchesPage" + "subject_id": { + "type": "string" }, - "msg": { - "example": "OK", + "type": { "type": "string" - } - }, - "type": "object" - }, - "producthunt.leaderboardResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/producthunt.LeaderboardPage" + "user": { + "$ref": "#/definitions/producthunt.ProductCategoryUser" }, - "msg": { - "example": "Request successful", + "visible_at": { "type": "string" } }, "type": "object" }, - "producthunt.makersResponseDoc": { + "producthunt.ProductCategorySummaryProduct": { "properties": { - "code": { - "example": 200, - "type": "integer" + "badges": { + "items": { + "$ref": "#/definitions/producthunt.ProductAlternativeBadge" + }, + "type": "array" }, - "data": { - "$ref": "#/definitions/producthunt.ProductMakersPage" + "categories": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryRef" + }, + "type": "array" }, - "msg": { - "example": "OK", - "type": "string" - } - }, - "type": "object" - }, - "producthunt.productResponseDoc": { - "properties": { - "code": { - "example": 200, + "followers_count": { "type": "integer" }, - "data": { - "$ref": "#/definitions/producthunt.Product" + "id": { + "type": "string" }, - "msg": { - "example": "OK", + "is_no_longer_online": { + "type": "boolean" + }, + "is_subscribed": { + "type": "boolean" + }, + "is_top_product": { + "type": "boolean" + }, + "latest_launch": { + "$ref": "#/definitions/producthunt.ProductCategoryLatestLaunch" + }, + "logo_uuid": { "type": "string" - } - }, - "type": "object" - }, - "producthunt.reviewsResponseDoc": { - "properties": { - "code": { - "example": 200, + }, + "name": { + "type": "string" + }, + "reviews_count": { "type": "integer" }, - "data": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewsPage" + "reviews_rating": { + "type": "number" }, - "msg": { - "example": "OK", + "slug": { "type": "string" - } - }, - "type": "object" - }, - "producthunt.searchAggregationsDoc": { - "properties": { - "topics": { + }, + "tagline": { + "type": "string" + }, + "tags": { "items": { - "$ref": "#/definitions/producthunt.searchTopicDoc" + "type": "string" }, "type": "array" } }, "type": "object" }, - "producthunt.searchDataDoc": { + "producthunt.ProductCategoryTopic": { "properties": { - "aggregations": { - "$ref": "#/definitions/producthunt.searchAggregationsDoc" - }, - "edges": { - "items": { - "$ref": "#/definitions/producthunt.searchEdgeDoc" - }, - "type": "array" + "id": { + "type": "string" }, - "pageInfo": { - "$ref": "#/definitions/producthunt.searchPageInfoDoc" + "name": { + "type": "string" }, - "pagesCount": { - "example": 394, - "type": "integer" + "slug": { + "type": "string" } }, "type": "object" }, - "producthunt.searchEdgeDoc": { + "producthunt.ProductCategoryUser": { "properties": { - "node": { - "type": "object" + "avatar_url": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "username": { + "type": "string" } }, "type": "object" }, - "producthunt.searchPageInfoDoc": { + "producthunt.ProductCustomersPage": { "properties": { - "hasNextPage": { + "connection": { + "example": "customers", + "type": "string" + }, + "end_cursor": { + "type": "string" + }, + "has_next_page": { "type": "boolean" }, - "hasPreviousPage": { + "has_previous_page": { "type": "boolean" }, + "items": { + "items": { + "$ref": "#/definitions/producthunt.ProductCategoryListProduct" + }, + "type": "array" + }, + "name": { + "example": "OpenAI", + "type": "string" + }, + "order": { + "example": "customers", + "type": "string" + }, "page": { "example": 1, "type": "integer" - } - }, - "type": "object" - }, - "producthunt.searchResponseDoc": { - "properties": { - "code": { - "example": 200, + }, + "page_size": { + "example": 10, "type": "integer" }, - "data": { - "$ref": "#/definitions/producthunt.searchDataDoc" + "pages_count": { + "example": 12, + "type": "integer" }, - "msg": { - "example": "OK", + "product_id": { + "example": "594550", "type": "string" - } - }, - "type": "object" - }, - "producthunt.searchTopicDoc": { - "properties": { - "count": { - "example": 11979, - "type": "integer" }, - "topic": { - "properties": { - "id": { - "example": "268", - "type": "string" - }, - "name": { - "example": "Artificial Intelligence", - "type": "string" - } - }, + "raw_page_info": { + "additionalProperties": {}, "type": "object" - } - }, - "type": "object" - }, - "reddit.Author": { - "properties": { - "name": { - "example": "reddit_user", - "type": "string" }, - "profile_url": { - "example": "https://www.reddit.com/user/reddit_user/", + "slug": { + "example": "openai", "type": "string" + }, + "total_count": { + "example": 120, + "type": "integer" } }, "type": "object" }, - "reddit.Comment": { + "producthunt.ProductDetailedReview": { "properties": { - "author": { - "$ref": "#/definitions/reddit.Author" + "alternative_products": { + "items": { + "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" + }, + "type": "array" }, - "body": { - "example": "I agree with this post.", + "alternatives_feedback": { "type": "string" }, - "created": { - "example": "2024-04-19T00:00:00Z", + "can_destroy": { + "type": "boolean" + }, + "can_moderate": { + "type": "boolean" + }, + "can_reply": { + "type": "boolean" + }, + "can_update": { + "type": "boolean" + }, + "comments_count": { + "type": "integer" + }, + "created_at": { "type": "string" }, - "created_utc": { - "example": 1713484800, + "customization_rating": { "type": "integer" }, - "depth": { - "example": 1, + "ease_of_use_rating": { "type": "integer" }, + "follow_product": { + "$ref": "#/definitions/producthunt.ProductDetailedReviewFollowProduct" + }, + "from_post": { + "$ref": "#/definitions/producthunt.ProductDetailedReviewPost" + }, + "has_voted": { + "type": "boolean" + }, "id": { - "example": "kabc123", "type": "string" }, - "name": { - "example": "t1_kabc123", + "impression_count": { + "type": "integer" + }, + "is_hidden": { + "type": "boolean" + }, + "llm_content_quality_grade": { "type": "string" }, - "parent_id": { - "example": "t3_1abcxyz", + "llm_content_quality_reason": { "type": "string" }, - "permalink": { - "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/kabc123/", + "negative_feedback": { "type": "string" }, - "replies": { + "overall_experience": { + "type": "string" + }, + "overall_rating": { + "type": "integer" + }, + "positive_feedback": { + "type": "string" + }, + "product": { + "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" + }, + "question_answers": { "items": { - "$ref": "#/definitions/reddit.Comment" + "$ref": "#/definitions/producthunt.ProductDetailedReviewQuestionAnswer" }, "type": "array" }, - "score": { - "example": 12, + "reliability_rating": { "type": "integer" - } - }, - "type": "object" - }, - "reddit.CommentsResponse": { - "properties": { - "comments": { + }, + "review_type": { + "type": "string" + }, + "selected_cons": { "items": { - "$ref": "#/definitions/reddit.Comment" + "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" }, "type": "array" }, - "post": { - "$ref": "#/definitions/reddit.Post" + "selected_pros": { + "items": { + "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" + }, + "type": "array" }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "status": { + "type": "string" + }, + "threads_end_cursor": { + "type": "string" + }, + "threads_has_next_page": { + "type": "boolean" + }, + "threads_total_count": { + "type": "integer" + }, + "user": { + "$ref": "#/definitions/producthunt.ProductDetailedReviewUser" + }, + "value_for_money_rating": { + "type": "integer" + }, + "votes_count": { + "type": "integer" } }, "type": "object" }, - "reddit.DomainPostsResponse": { + "producthunt.ProductDetailedReviewFollowProduct": { "properties": { - "domain": { - "example": "openai.com", + "id": { "type": "string" }, - "pagination": { - "$ref": "#/definitions/reddit.Pagination" + "is_no_longer_online": { + "type": "boolean" }, - "posts": { - "items": { - "$ref": "#/definitions/reddit.Post" - }, - "type": "array" + "is_subscribed": { + "type": "boolean" }, - "sort": { - "example": "hot", + "logo_uuid": { "type": "string" }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "name": { + "type": "string" }, - "time": { - "example": "week", + "slug": { "type": "string" } }, "type": "object" }, - "reddit.MultiSubredditPostsResponse": { + "producthunt.ProductDetailedReviewPost": { "properties": { - "pagination": { - "$ref": "#/definitions/reddit.Pagination" - }, - "posts": { + "badges": { "items": { - "$ref": "#/definitions/reddit.Post" + "$ref": "#/definitions/producthunt.ProductCategoryListBadge" }, "type": "array" }, - "sort": { - "example": "hot", + "id": { "type": "string" }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "is_top_launch": { + "type": "boolean" }, - "subreddits": { - "example": [ - "OpenAI", - "MachineLearning" - ], - "items": { - "type": "string" - }, - "type": "array" + "latest_score": { + "type": "integer" }, - "time": { - "example": "week", + "name": { + "type": "string" + }, + "product_id": { + "type": "string" + }, + "product_is_top_product": { + "type": "boolean" + }, + "product_slug": { + "type": "string" + }, + "product_state": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "thumbnail_image_uuid": { "type": "string" } }, "type": "object" }, - "reddit.Pagination": { + "producthunt.ProductDetailedReviewProduct": { "properties": { - "after": { - "example": "t3_1abcxyz", + "id": { "type": "string" }, - "limit": { - "example": 25, - "type": "integer" + "is_no_longer_online": { + "type": "boolean" + }, + "logo_uuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" } }, "type": "object" }, - "reddit.Post": { + "producthunt.ProductDetailedReviewQuestionAnswer": { "properties": { - "author": { - "$ref": "#/definitions/reddit.Author" + "answer": { + "type": "string" }, - "comment_count": { - "example": 45, - "type": "integer" + "id": { + "type": "string" }, - "created": { - "example": "2024-04-19T00:00:00Z", + "question": { "type": "string" }, - "created_utc": { - "example": 1713484800, + "question_id": { + "type": "string" + } + }, + "type": "object" + }, + "producthunt.ProductDetailedReviewTag": { + "properties": { + "count": { "type": "integer" }, - "domain": { - "example": "self.OpenAI", + "id": { "type": "string" }, - "flair": { - "example": "Discussion", + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "producthunt.ProductDetailedReviewUser": { + "properties": { + "avatar_url": { + "type": "string" + }, + "headline": { "type": "string" }, "id": { - "example": "1abcxyz", "type": "string" }, - "is_self": { + "is_account_verified": { "type": "boolean" }, - "is_video": { + "is_ambassador": { "type": "boolean" }, - "locked": { + "is_followed": { "type": "boolean" }, "name": { - "example": "t3_1abcxyz", "type": "string" }, - "over_18": { - "type": "boolean" + "reviews_count": { + "type": "integer" }, - "permalink": { - "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/", + "selected_byline_product": { + "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" + }, + "top_hunter_badge": { + "additionalProperties": {}, + "type": "object" + }, + "top_launch_badge": { + "additionalProperties": {}, + "type": "object" + }, + "top_product_badge": { + "additionalProperties": {}, + "type": "object" + }, + "username": { + "type": "string" + } + }, + "type": "object" + }, + "producthunt.ProductDetailedReviewsPage": { + "properties": { + "connection": { + "example": "detailedReviews", "type": "string" }, - "score": { - "example": 123, + "detailed_review": { + "additionalProperties": {}, + "type": "object" + }, + "detailed_reviews_count": { "type": "integer" }, - "selftext": { - "example": "Discussion body", + "end_cursor": { "type": "string" }, - "source_feed_url": { - "example": "https://www.reddit.com/r/OpenAI/.rss", - "type": "string" + "founder_detailed_reviews_count": { + "type": "integer" }, - "stickied": { + "has_next_page": { + "example": false, "type": "boolean" }, - "subreddit": { - "example": "OpenAI", - "type": "string" + "is_maker": { + "type": "boolean" }, - "thumbnail": { - "example": "https://b.thumbs.redditmedia.com/example.jpg", + "is_trashed": { + "type": "boolean" + }, + "items": { + "items": { + "$ref": "#/definitions/producthunt.ProductDetailedReview" + }, + "type": "array" + }, + "name": { "type": "string" }, - "title": { - "example": "OpenAI discussion thread", + "other_detailed_reviews_count": { + "type": "integer" + }, + "product_id": { + "example": "1191613", "type": "string" }, - "upvote_ratio": { - "example": 0.95, + "raw_page_info": { + "additionalProperties": {}, + "type": "object" + }, + "reviews_count": { + "type": "integer" + }, + "reviews_rating": { "type": "number" }, - "url": { - "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/", + "reviews_recent_rating": { + "type": "number" + }, + "slug": { + "example": "clico", "type": "string" - } - }, - "type": "object" - }, - "reddit.PostResponse": { - "properties": { - "post": { - "$ref": "#/definitions/reddit.Post" }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "total_count": { + "example": 6, + "type": "integer" } }, "type": "object" }, - "reddit.SearchResponse": { + "producthunt.ProductLaunchesPage": { "properties": { - "pagination": { - "$ref": "#/definitions/reddit.Pagination" + "connection": { + "example": "posts", + "type": "string" }, - "posts": { + "end_cursor": { + "type": "string" + }, + "has_next_page": { + "type": "boolean" + }, + "items": { "items": { - "$ref": "#/definitions/reddit.Post" + "$ref": "#/definitions/producthunt.ProductAboutPost" }, "type": "array" }, - "query": { - "example": "openai", + "name": { + "example": "OpenAI", "type": "string" }, - "sort": { - "example": "relevance", + "order": { + "example": "DATE", "type": "string" }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" - }, - "subreddit": { - "example": "OpenAI", + "product_id": { + "example": "1191613", "type": "string" }, - "time": { - "example": "week", - "type": "string" - } - }, - "type": "object" - }, - "reddit.SourceDetail": { - "properties": { - "type": { - "example": "rss", - "type": "string" + "raw_page_info": { + "additionalProperties": {}, + "type": "object" }, - "url": { - "example": "https://www.reddit.com/r/OpenAI/.rss", + "slug": { + "example": "openai", "type": "string" + }, + "total_count": { + "example": 12, + "type": "integer" } }, "type": "object" }, - "reddit.SubredditAboutResponse": { + "producthunt.ProductMaker": { "properties": { - "display_name": { - "example": "r/OpenAI", + "avatar_url": { "type": "string" }, - "feed_url": { - "example": "https://www.reddit.com/r/OpenAI.rss?limit=10", - "type": "string" + "followers_count": { + "type": "integer" }, - "latest_post_created": { - "example": "2024-04-19T00:00:00Z", + "headline": { "type": "string" }, - "latest_post_created_utc": { - "example": 1713484800, - "type": "integer" - }, - "public_url": { - "example": "https://www.reddit.com/r/OpenAI/", + "id": { "type": "string" }, - "recent_post_count": { - "example": 10, - "type": "integer" + "is_followed": { + "type": "boolean" }, - "sample_posts": { + "made_posts": { "items": { - "$ref": "#/definitions/reddit.Post" + "$ref": "#/definitions/producthunt.ProductMakerPost" }, "type": "array" }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" - }, - "subreddit": { - "example": "OpenAI", + "name": { "type": "string" }, - "title": { - "example": "OpenAI", + "username": { "type": "string" } }, "type": "object" }, - "reddit.SubredditCommentsResponse": { + "producthunt.ProductMakerPost": { "properties": { - "comments": { - "items": { - "$ref": "#/definitions/reddit.Comment" - }, - "type": "array" - }, - "pagination": { - "$ref": "#/definitions/reddit.Pagination" - }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "id": { + "type": "string" }, - "subreddit": { - "example": "OpenAI", + "name": { "type": "string" - } - }, - "type": "object" - }, - "reddit.SubredditPostsResponse": { - "properties": { - "pagination": { - "$ref": "#/definitions/reddit.Pagination" }, - "posts": { - "items": { - "$ref": "#/definitions/reddit.Post" - }, - "type": "array" + "product_id": { + "type": "string" }, - "sort": { - "example": "hot", + "product_slug": { "type": "string" }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "product_state": { + "type": "string" }, - "subreddit": { - "example": "OpenAI", + "slug": { "type": "string" }, - "time": { - "example": "week", + "thumbnail_image_uuid": { "type": "string" } }, "type": "object" }, - "reddit.TrendsResponse": { + "producthunt.ProductMakersPage": { "properties": { - "pagination": { - "$ref": "#/definitions/reddit.Pagination" + "can_claim": { + "type": "boolean" }, - "posts": { - "items": { - "$ref": "#/definitions/reddit.Post" - }, - "type": "array" + "connection": { + "example": "makers", + "type": "string" }, - "sort": { - "example": "hot", + "end_cursor": { "type": "string" }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "has_next_page": { + "example": false, + "type": "boolean" }, - "time": { - "example": "day", - "type": "string" - } - }, - "type": "object" - }, - "reddit.UserCommentsResponse": { - "properties": { - "comments": { + "is_claimed": { + "type": "boolean" + }, + "is_trashed": { + "type": "boolean" + }, + "items": { "items": { - "$ref": "#/definitions/reddit.Comment" + "$ref": "#/definitions/producthunt.ProductMaker" }, "type": "array" }, - "pagination": { - "$ref": "#/definitions/reddit.Pagination" + "name": { + "type": "string" }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "product_id": { + "example": "1191613", + "type": "string" }, - "username": { - "example": "reddit", + "raw_page_info": { + "additionalProperties": {}, + "type": "object" + }, + "slug": { + "example": "clico", "type": "string" + }, + "total_count": { + "example": 3, + "type": "integer" + }, + "viewer_pending_team_request": { + "additionalProperties": {}, + "type": "object" } }, "type": "object" }, - "reddit.UserPostsResponse": { + "producthunt.SimilarProduct": { "properties": { - "pagination": { - "$ref": "#/definitions/reddit.Pagination" - }, - "posts": { + "categories": { + "example": [ + "[\"Presentation Software\"]" + ], "items": { - "$ref": "#/definitions/reddit.Post" + "type": "string" }, "type": "array" }, - "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "id": { + "example": "beautiful-ai", + "type": "string" }, - "username": { - "example": "reddit", + "name": { + "example": "Beautiful.ai", "type": "string" + }, + "rating": { + "example": 3.3, + "type": "number" + }, + "review_count": { + "example": 20, + "type": "integer" } }, "type": "object" }, - "reddit.commentsResponseDoc": { + "producthunt.aboutResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.CommentsResponse" + "$ref": "#/definitions/producthunt.ProductAboutPage" }, "msg": { - "example": "OK", + "example": "Request successful", "type": "string" } }, "type": "object" }, - "reddit.domainPostsResponseDoc": { + "producthunt.alternativesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.DomainPostsResponse" + "$ref": "#/definitions/producthunt.ProductAlternativesPage" }, "msg": { "example": "OK", @@ -25770,14 +26887,14 @@ }, "type": "object" }, - "reddit.multiSubredditPostsResponseDoc": { + "producthunt.categoryProductsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.MultiSubredditPostsResponse" + "$ref": "#/definitions/producthunt.ProductCategoryProductsPage" }, "msg": { "example": "OK", @@ -25786,14 +26903,14 @@ }, "type": "object" }, - "reddit.postResponseDoc": { + "producthunt.categoryResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.PostResponse" + "$ref": "#/definitions/producthunt.ProductCategoryPage" }, "msg": { "example": "OK", @@ -25802,14 +26919,14 @@ }, "type": "object" }, - "reddit.searchResponseDoc": { + "producthunt.customersResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.SearchResponse" + "$ref": "#/definitions/producthunt.ProductCustomersPage" }, "msg": { "example": "OK", @@ -25818,14 +26935,14 @@ }, "type": "object" }, - "reddit.subredditAboutResponseDoc": { + "producthunt.launchesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.SubredditAboutResponse" + "$ref": "#/definitions/producthunt.ProductLaunchesPage" }, "msg": { "example": "OK", @@ -25834,30 +26951,30 @@ }, "type": "object" }, - "reddit.subredditCommentsResponseDoc": { + "producthunt.leaderboardResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.SubredditCommentsResponse" + "$ref": "#/definitions/producthunt.LeaderboardPage" }, "msg": { - "example": "OK", + "example": "Request successful", "type": "string" } }, "type": "object" }, - "reddit.subredditPostsResponseDoc": { + "producthunt.makersResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.SubredditPostsResponse" + "$ref": "#/definitions/producthunt.ProductMakersPage" }, "msg": { "example": "OK", @@ -25866,14 +26983,14 @@ }, "type": "object" }, - "reddit.trendsResponseDoc": { + "producthunt.productResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.TrendsResponse" + "$ref": "#/definitions/producthunt.Product" }, "msg": { "example": "OK", @@ -25882,14 +26999,14 @@ }, "type": "object" }, - "reddit.userCommentsResponseDoc": { + "producthunt.reviewsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.UserCommentsResponse" + "$ref": "#/definitions/producthunt.ProductDetailedReviewsPage" }, "msg": { "example": "OK", @@ -25898,14 +27015,69 @@ }, "type": "object" }, - "reddit.userPostsResponseDoc": { + "producthunt.searchAggregationsDoc": { + "properties": { + "topics": { + "items": { + "$ref": "#/definitions/producthunt.searchTopicDoc" + }, + "type": "array" + } + }, + "type": "object" + }, + "producthunt.searchDataDoc": { + "properties": { + "aggregations": { + "$ref": "#/definitions/producthunt.searchAggregationsDoc" + }, + "edges": { + "items": { + "$ref": "#/definitions/producthunt.searchEdgeDoc" + }, + "type": "array" + }, + "pageInfo": { + "$ref": "#/definitions/producthunt.searchPageInfoDoc" + }, + "pagesCount": { + "example": 394, + "type": "integer" + } + }, + "type": "object" + }, + "producthunt.searchEdgeDoc": { + "properties": { + "node": { + "type": "object" + } + }, + "type": "object" + }, + "producthunt.searchPageInfoDoc": { + "properties": { + "hasNextPage": { + "type": "boolean" + }, + "hasPreviousPage": { + "type": "boolean" + }, + "page": { + "example": 1, + "type": "integer" + } + }, + "type": "object" + }, + "producthunt.searchResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/reddit.UserPostsResponse" + "$ref": "#/definitions/producthunt.searchDataDoc" }, "msg": { "example": "OK", @@ -25914,1311 +27086,1245 @@ }, "type": "object" }, - "redfin.EstimateResponse": { + "producthunt.searchTopicDoc": { "properties": { - "address": { - "type": "string" - }, - "baths": { - "type": "number" - }, - "beds": { - "type": "number" + "count": { + "example": 11979, + "type": "integer" }, - "city_time_series": { - "items": { - "type": "number" + "topic": { + "properties": { + "id": { + "example": "268", + "type": "string" + }, + "name": { + "example": "Artificial Intelligence", + "type": "string" + } }, - "type": "array" + "type": "object" + } + }, + "type": "object" + }, + "reddit.Author": { + "properties": { + "name": { + "example": "reddit_user", + "type": "string" }, - "county_time_series": { - "items": { - "type": "number" - }, - "type": "array" + "profile_url": { + "example": "https://www.reddit.com/user/reddit_user/", + "type": "string" + } + }, + "type": "object" + }, + "reddit.Comment": { + "properties": { + "author": { + "$ref": "#/definitions/reddit.Author" }, - "estimate": { - "type": "number" + "body": { + "example": "I agree with this post.", + "type": "string" }, - "estimate_text": { + "created": { + "example": "2024-04-19T00:00:00Z", "type": "string" }, - "latitude": { - "type": "number" + "created_utc": { + "example": 1713484800, + "type": "integer" }, - "listing_price": { - "type": "number" + "depth": { + "example": 1, + "type": "integer" }, - "longitude": { - "type": "number" + "id": { + "example": "kabc123", + "type": "string" }, - "postal_code_time_series": { - "items": { - "type": "number" - }, - "type": "array" + "name": { + "example": "t1_kabc123", + "type": "string" }, - "property_id": { - "example": "1715020", + "parent_id": { + "example": "t3_1abcxyz", "type": "string" }, - "property_time_series": { + "permalink": { + "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/kabc123/", + "type": "string" + }, + "replies": { "items": { - "type": "number" + "$ref": "#/definitions/reddit.Comment" }, "type": "array" }, - "sqft": { - "type": "number" - }, - "updated_at": { - "type": "integer" - }, - "year_built": { + "score": { "type": "integer" } }, "type": "object" }, - "redfin.PropertyItem": { + "reddit.CommentsResponse": { "properties": { - "address": { - "type": "string" - }, - "baths": { - "type": "number" + "comments": { + "items": { + "$ref": "#/definitions/reddit.Comment" + }, + "type": "array" }, - "beds": { - "type": "number" + "post": { + "$ref": "#/definitions/reddit.Post" }, - "city": { + "source": { + "$ref": "#/definitions/reddit.SourceDetail" + } + }, + "type": "object" + }, + "reddit.DomainPostsResponse": { + "properties": { + "domain": { + "example": "openai.com", "type": "string" }, - "days_on_market": { - "type": "integer" - }, - "hoa_monthly": { - "type": "number" - }, - "image": { - "type": "string" + "pagination": { + "$ref": "#/definitions/reddit.Pagination" }, - "latitude": { - "type": "number" + "posts": { + "items": { + "$ref": "#/definitions/reddit.Post" + }, + "type": "array" }, - "listing_id": { + "sort": { + "example": "hot", "type": "string" }, - "longitude": { - "type": "number" - }, - "lot_size": { - "type": "number" + "source": { + "$ref": "#/definitions/reddit.SourceDetail" }, - "mls_number": { + "time": { + "example": "week", "type": "string" + } + }, + "type": "object" + }, + "reddit.MultiSubredditPostsResponse": { + "properties": { + "pagination": { + "$ref": "#/definitions/reddit.Pagination" }, - "price": { - "type": "number" - }, - "price_per_sqft": { - "type": "number" - }, - "property_id": { - "example": "1715020", - "type": "string" + "posts": { + "items": { + "$ref": "#/definitions/reddit.Post" + }, + "type": "array" }, - "property_type": { + "sort": { + "example": "hot", "type": "string" }, - "sqft": { - "type": "number" + "source": { + "$ref": "#/definitions/reddit.SourceDetail" }, - "state": { - "type": "string" + "subreddits": { + "example": [ + "OpenAI", + "MachineLearning" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "status": { + "time": { + "example": "week", "type": "string" - }, - "url": { + } + }, + "type": "object" + }, + "reddit.Pagination": { + "properties": { + "after": { + "example": "t3_1abcxyz", "type": "string" }, - "year_built": { + "limit": { + "example": 25, "type": "integer" - }, - "zip": { - "type": "string" } }, "type": "object" }, - "redfin.PropertyResponse": { + "reddit.Post": { "properties": { - "address": { - "type": "string" - }, - "baths": { - "type": "number" + "author": { + "$ref": "#/definitions/reddit.Author" }, - "beds": { - "type": "number" + "comment_count": { + "type": "integer" }, - "city": { + "created": { + "example": "2024-04-19T00:00:00Z", "type": "string" }, - "days_on_market": { + "created_utc": { + "example": 1713484800, "type": "integer" }, - "description": { + "domain": { + "example": "self.OpenAI", "type": "string" }, - "facts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "hoa_monthly": { - "type": "number" - }, - "image": { + "flair": { + "example": "Discussion", "type": "string" }, - "latitude": { - "type": "number" - }, - "listing_id": { + "id": { + "example": "1abcxyz", "type": "string" }, - "longitude": { - "type": "number" + "is_self": { + "type": "boolean" }, - "lot_size": { - "type": "number" + "is_video": { + "type": "boolean" }, - "mls_number": { + "locked": { + "type": "boolean" + }, + "name": { + "example": "t3_1abcxyz", "type": "string" }, - "price": { - "type": "number" + "over_18": { + "type": "boolean" }, - "price_per_sqft": { - "type": "number" + "permalink": { + "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/", + "type": "string" }, - "property_id": { - "example": "1715020", + "score": { + "type": "integer" + }, + "selftext": { + "example": "Discussion body", "type": "string" }, - "property_type": { + "source_feed_url": { + "example": "https://www.reddit.com/r/OpenAI/.rss", "type": "string" }, - "sqft": { - "type": "number" + "stickied": { + "type": "boolean" }, - "state": { + "subreddit": { + "example": "OpenAI", "type": "string" }, - "status": { + "thumbnail": { + "example": "https://b.thumbs.redditmedia.com/example.jpg", "type": "string" }, - "url": { + "title": { + "example": "OpenAI discussion thread", "type": "string" }, - "year_built": { - "type": "integer" + "upvote_ratio": { + "type": "number" }, - "zip": { + "url": { + "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/", "type": "string" } }, "type": "object" }, - "redfin.RegionTrendsResponse": { + "reddit.PostResponse": { "properties": { - "avg_days_on_market": { - "type": "string" - }, - "avg_down_payment": { - "type": "string" - }, - "avg_num_offers": { - "type": "string" + "post": { + "$ref": "#/definitions/reddit.Post" }, - "median_list_per_sqft": { - "type": "string" + "source": { + "$ref": "#/definitions/reddit.SourceDetail" + } + }, + "type": "object" + }, + "reddit.SearchResponse": { + "properties": { + "pagination": { + "$ref": "#/definitions/reddit.Pagination" }, - "median_list_price": { - "example": "$1.29M", - "type": "string" + "posts": { + "items": { + "$ref": "#/definitions/reddit.Post" + }, + "type": "array" }, - "median_sale_per_list": { + "query": { + "example": "openai", "type": "string" }, - "median_sale_per_sqft": { + "sort": { + "example": "relevance", "type": "string" }, - "median_sale_price": { - "example": "$1.76M", - "type": "string" + "source": { + "$ref": "#/definitions/reddit.SourceDetail" }, - "num_homes_on_market": { + "subreddit": { + "example": "OpenAI", "type": "string" }, - "num_homes_sold": { + "time": { + "example": "week", "type": "string" - }, - "region_id": { - "example": 17151, - "type": "integer" - }, - "region_type": { - "example": 6, - "type": "integer" - }, - "yoy_sale_per_sqft": { + } + }, + "type": "object" + }, + "reddit.SourceDetail": { + "properties": { + "type": { + "example": "rss", "type": "string" }, - "yoy_sale_price": { + "url": { + "example": "https://www.reddit.com/r/OpenAI/.rss", "type": "string" } }, "type": "object" }, - "redfin.SearchResponse": { + "reddit.SubredditAboutResponse": { "properties": { - "location": { - "example": "San Francisco, CA", + "display_name": { + "example": "r/OpenAI", "type": "string" }, - "page": { - "example": 1, - "type": "integer" + "feed_url": { + "example": "https://www.reddit.com/r/OpenAI.rss?limit=10", + "type": "string" }, - "region_id": { - "example": 17151, + "latest_post_created": { + "example": "2024-04-19T00:00:00Z", + "type": "string" + }, + "latest_post_created_utc": { + "example": 1713484800, "type": "integer" }, - "region_type": { - "example": 6, + "public_url": { + "example": "https://www.reddit.com/r/OpenAI/", + "type": "string" + }, + "recent_post_count": { + "example": 10, "type": "integer" }, - "results": { + "sample_posts": { "items": { - "$ref": "#/definitions/redfin.PropertyItem" + "$ref": "#/definitions/reddit.Post" }, "type": "array" + }, + "source": { + "$ref": "#/definitions/reddit.SourceDetail" + }, + "subreddit": { + "example": "OpenAI", + "type": "string" + }, + "title": { + "example": "OpenAI", + "type": "string" } }, "type": "object" }, - "redfin.SimilarResponse": { + "reddit.SubredditCommentsResponse": { "properties": { - "property_id": { - "example": "1715020", - "type": "string" - }, - "results": { + "comments": { "items": { - "$ref": "#/definitions/redfin.PropertyItem" + "$ref": "#/definitions/reddit.Comment" }, "type": "array" + }, + "pagination": { + "$ref": "#/definitions/reddit.Pagination" + }, + "source": { + "$ref": "#/definitions/reddit.SourceDetail" + }, + "subreddit": { + "example": "OpenAI", + "type": "string" } }, "type": "object" }, - "referrals.referralAttributionDoc": { + "reddit.SubredditPostsResponse": { "properties": { - "campaign": { - "example": "spring-launch", - "type": "string" + "pagination": { + "$ref": "#/definitions/reddit.Pagination" }, - "code": { - "example": "A1B2C3D4E5F6", - "type": "string" + "posts": { + "items": { + "$ref": "#/definitions/reddit.Post" + }, + "type": "array" }, - "created_at": { + "sort": { + "example": "hot", "type": "string" }, - "expires_at": { - "type": "string" + "source": { + "$ref": "#/definitions/reddit.SourceDetail" }, - "id": { - "example": "abc123", + "subreddit": { + "example": "OpenAI", "type": "string" }, - "qualified_at": { + "time": { + "example": "week", "type": "string" + } + }, + "type": "object" + }, + "reddit.TrendsResponse": { + "properties": { + "pagination": { + "$ref": "#/definitions/reddit.Pagination" }, - "reward_credits": { - "example": 10000, - "type": "integer" + "posts": { + "items": { + "$ref": "#/definitions/reddit.Post" + }, + "type": "array" }, - "rewarded_at": { + "sort": { + "example": "hot", "type": "string" }, - "role": { - "enum": [ - "referrer", - "referred" - ], - "example": "referrer", - "type": "string" + "source": { + "$ref": "#/definitions/reddit.SourceDetail" }, - "status": { - "enum": [ - "attributed", - "qualified", - "review_required", - "rewarded", - "expired", - "capped", - "failed", - "rejected" - ], - "example": "rewarded", + "time": { + "example": "day", "type": "string" } }, "type": "object" }, - "referrals.referralClickRequestDoc": { + "reddit.UserCommentsResponse": { "properties": { - "click_id": { - "example": "refclk_abc123", - "type": "string" + "comments": { + "items": { + "$ref": "#/definitions/reddit.Comment" + }, + "type": "array" }, - "code": { - "example": "A1B2C3D4E5F6", - "type": "string" + "pagination": { + "$ref": "#/definitions/reddit.Pagination" }, - "landing_path": { - "example": "/pricing", - "type": "string" + "source": { + "$ref": "#/definitions/reddit.SourceDetail" }, - "utm_campaign": { - "example": "spring-launch", + "username": { + "example": "reddit", "type": "string" + } + }, + "type": "object" + }, + "reddit.UserPostsResponse": { + "properties": { + "pagination": { + "$ref": "#/definitions/reddit.Pagination" }, - "utm_medium": { - "example": "email", - "type": "string" + "posts": { + "items": { + "$ref": "#/definitions/reddit.Post" + }, + "type": "array" }, - "utm_source": { - "example": "newsletter", + "source": { + "$ref": "#/definitions/reddit.SourceDetail" + }, + "username": { + "example": "reddit", "type": "string" } }, "type": "object" }, - "referrals.referralClickResponseDoc": { + "reddit.commentsResponseDoc": { "properties": { - "click_id": { - "example": "refclk_abc123", - "type": "string" - }, "code": { - "example": "A1B2C3D4E5F6", + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/reddit.CommentsResponse" + }, + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "referrals.referralsEventsResponseDoc": { + "reddit.domainPostsResponseDoc": { "properties": { - "items": { - "items": { - "$ref": "#/definitions/referrals.referralAttributionDoc" - }, - "type": "array" + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/reddit.DomainPostsResponse" + }, + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "referrals.referralsMeResponseDoc": { + "reddit.multiSubredditPostsResponseDoc": { "properties": { - "attribution_window_days": { - "example": 30, - "type": "integer" - }, "code": { - "example": "A1B2C3D4E5F6", - "type": "string" - }, - "items": { - "items": { - "$ref": "#/definitions/referrals.referralAttributionDoc" - }, - "type": "array" - }, - "monthly_referrer_reward_cap": { - "example": 10, - "type": "integer" - }, - "referred_reward_credits": { - "example": 10000, + "example": 200, "type": "integer" }, - "reward_credits": { - "example": 10000, - "type": "integer" + "data": { + "$ref": "#/definitions/reddit.MultiSubredditPostsResponse" }, - "share_path": { - "example": "/r/A1B2C3D4E5F6", + "msg": { + "example": "OK", "type": "string" - }, - "stats": { - "$ref": "#/definitions/referrals.referralsStatsDoc" } }, "type": "object" }, - "referrals.referralsStatsDoc": { + "reddit.postResponseDoc": { "properties": { - "attributed": { - "example": 3, + "code": { + "example": 200, "type": "integer" }, - "capped": { - "example": 0, - "type": "integer" + "data": { + "$ref": "#/definitions/reddit.PostResponse" }, - "expired": { - "example": 0, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "reddit.searchResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "qualified": { - "example": 1, - "type": "integer" + "data": { + "$ref": "#/definitions/reddit.SearchResponse" }, - "rejected": { - "example": 0, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "reddit.subredditAboutResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "review_required": { - "example": 0, - "type": "integer" + "data": { + "$ref": "#/definitions/reddit.SubredditAboutResponse" }, - "rewarded": { - "example": 1, - "type": "integer" + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "rottentomatoes.BrowseItem": { + "reddit.subredditCommentsResponseDoc": { "properties": { - "critics_review_count": { - "example": 136, + "code": { + "example": 200, "type": "integer" }, - "date_created": { - "example": "2026", - "type": "string" + "data": { + "$ref": "#/definitions/reddit.SubredditCommentsResponse" }, - "image_url": { + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "reddit.subredditPostsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "media_type": { - "example": "Movie", - "type": "string" + "data": { + "$ref": "#/definitions/reddit.SubredditPostsResponse" }, - "path": { - "example": "/m/wildwood_nj", + "msg": { + "example": "OK", "type": "string" - }, - "position": { - "example": 1, + } + }, + "type": "object" + }, + "reddit.trendsResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "title": { - "example": "Wildwood, NJ", - "type": "string" - }, - "tomatometer_score": { - "example": 87, - "type": "integer" + "data": { + "$ref": "#/definitions/reddit.TrendsResponse" }, - "url": { - "example": "https://www.rottentomatoes.com/m/wildwood_nj", + "msg": { + "example": "OK", "type": "string" - }, - "video": { - "$ref": "#/definitions/rottentomatoes.EpisodeVideo" } }, "type": "object" }, - "rottentomatoes.BrowseResponse": { + "reddit.userCommentsResponseDoc": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" - }, - "items": { - "items": { - "$ref": "#/definitions/rottentomatoes.BrowseItem" - }, - "type": "array" - }, - "limit": { - "example": 10, + "code": { + "example": 200, "type": "integer" }, - "list": { - "example": "movies_in_theaters", - "type": "string" - }, - "public_page_derived": { - "example": true, - "type": "boolean" + "data": { + "$ref": "#/definitions/reddit.UserCommentsResponse" }, - "sort": { - "example": "popular", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "reddit.userPostsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "source_url": { - "example": "https://www.rottentomatoes.com/browse/movies_in_theaters/sort:popular", - "type": "string" + "data": { + "$ref": "#/definitions/reddit.UserPostsResponse" }, - "title": { - "example": "Movies in Theaters (2026)", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "rottentomatoes.EpisodeResponse": { + "redfin.EstimateResponse": { "properties": { - "air_date": { - "example": "2008-01-20", + "address": { "type": "string" }, - "audience_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "baths": { + "type": "number" }, - "cast": { + "beds": { + "type": "number" + }, + "city_time_series": { "items": { - "$ref": "#/definitions/rottentomatoes.Person" + "type": "number" }, "type": "array" }, - "critics_score": { - "$ref": "#/definitions/rottentomatoes.Score" - }, - "description": { - "type": "string" - }, - "directors": { + "county_time_series": { "items": { - "$ref": "#/definitions/rottentomatoes.Person" + "type": "number" }, "type": "array" }, - "ems_id": { - "example": "ccda9549-4dcb-3147-9a2b-1106dcf852f7", + "estimate": { + "type": "number" + }, + "estimate_text": { "type": "string" }, - "episode_number": { - "example": 1, - "type": "integer" + "latitude": { + "type": "number" }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" + "listing_price": { + "type": "number" }, - "genres": { - "example": [ - "Crime" - ], + "longitude": { + "type": "number" + }, + "postal_code_time_series": { "items": { - "type": "string" + "type": "number" }, "type": "array" }, - "image_url": { - "type": "string" - }, - "lifecycle": { - "example": "NOT_AIRING", + "property_id": { + "example": "1715020", "type": "string" }, - "media_type": { - "example": "TvEpisode", - "type": "string" + "property_time_series": { + "items": { + "type": "number" + }, + "type": "array" }, - "parent_season": { - "$ref": "#/definitions/rottentomatoes.SeasonSummary" + "sqft": { + "type": "number" }, - "parent_series": { - "$ref": "#/definitions/rottentomatoes.SeriesSummary" + "updated_at": { + "type": "integer" }, - "path": { - "example": "/tv/breaking_bad/s01/e01", + "year_built": { + "type": "integer" + } + }, + "type": "object" + }, + "redfin.PropertyItem": { + "properties": { + "address": { "type": "string" }, - "producers": { - "items": { - "$ref": "#/definitions/rottentomatoes.Person" - }, - "type": "array" + "baths": { + "type": "number" }, - "public_page_derived": { - "example": true, - "type": "boolean" + "beds": { + "type": "number" }, - "season_number": { - "example": 1, + "city": { + "type": "string" + }, + "days_on_market": { "type": "integer" }, - "source_url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01", - "type": "string" + "hoa_monthly": { + "type": "number" }, - "title": { - "example": "Pilot", + "image": { "type": "string" }, - "url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01", + "latitude": { + "type": "number" + }, + "listing_id": { "type": "string" }, - "video": { - "$ref": "#/definitions/rottentomatoes.EpisodeVideo" - } - }, - "type": "object" - }, - "rottentomatoes.EpisodeVideo": { - "properties": { - "description": { + "longitude": { + "type": "number" + }, + "lot_size": { + "type": "number" + }, + "mls_number": { "type": "string" }, - "duration": { - "example": "2:32", + "price": { + "type": "number" + }, + "price_per_sqft": { + "type": "number" + }, + "property_id": { + "example": "1715020", "type": "string" }, - "thumbnail": { + "property_type": { "type": "string" }, - "title": { - "example": "Breaking Bad: Official Clip - Walter Wants to Cook", + "sqft": { + "type": "number" + }, + "state": { "type": "string" }, - "upload_date": { - "example": "2024-07-11T19:23:03", + "status": { "type": "string" }, "url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01/videos/JR3ymbH1dpLb", + "type": "string" + }, + "year_built": { + "type": "integer" + }, + "zip": { "type": "string" } }, "type": "object" }, - "rottentomatoes.MovieResponse": { + "redfin.PropertyResponse": { "properties": { - "audience_reviews": { - "items": { - "$ref": "#/definitions/rottentomatoes.Review" - }, - "type": "array" + "address": { + "type": "string" }, - "audience_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "baths": { + "type": "number" }, - "cast": { - "items": { - "$ref": "#/definitions/rottentomatoes.Person" - }, - "type": "array" + "beds": { + "type": "number" }, - "content_rating": { - "example": "PG-13", + "city": { "type": "string" }, - "critics_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "days_on_market": { + "type": "integer" }, "description": { "type": "string" }, - "directors": { + "facts": { "items": { - "$ref": "#/definitions/rottentomatoes.Person" + "type": "string" }, "type": "array" }, - "ems_id": { - "example": "afbf1c81-1bfe-3996-9cbc-2e1be23d1f61", - "type": "string" + "hoa_monthly": { + "type": "number" }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", + "image": { "type": "string" }, - "genres": { - "example": [ - "Sci-Fi" - ], - "items": { - "type": "string" - }, - "type": "array" + "latitude": { + "type": "number" }, - "image_url": { + "listing_id": { "type": "string" }, - "media_type": { - "example": "Movie", - "type": "string" + "longitude": { + "type": "number" }, - "path": { - "example": "/m/inception", + "lot_size": { + "type": "number" + }, + "mls_number": { "type": "string" }, - "producers": { - "items": { - "$ref": "#/definitions/rottentomatoes.Person" - }, - "type": "array" + "price": { + "type": "number" }, - "public_page_derived": { - "example": true, - "type": "boolean" + "price_per_sqft": { + "type": "number" }, - "release_date": { - "example": "2010-07-16", + "property_id": { + "example": "1715020", "type": "string" }, - "reviews_url": { - "example": "https://www.rottentomatoes.com/m/inception/reviews/all-audience", + "property_type": { "type": "string" }, - "source_url": { - "example": "https://www.rottentomatoes.com/m/inception", + "sqft": { + "type": "number" + }, + "state": { "type": "string" }, - "title": { - "example": "Inception", + "status": { "type": "string" }, "url": { - "example": "https://www.rottentomatoes.com/m/inception", + "type": "string" + }, + "year_built": { + "type": "integer" + }, + "zip": { "type": "string" } }, "type": "object" }, - "rottentomatoes.MovieReview": { + "redfin.RegionTrendsResponse": { "properties": { - "created_at": { - "example": "2024-04-11T23:40:16.000Z", + "avg_days_on_market": { "type": "string" }, - "critic_url": { - "example": "https://www.rottentomatoes.com/critic/danilo-castro", + "avg_down_payment": { "type": "string" }, - "display_name": { - "example": "Danilo Castro", + "avg_num_offers": { "type": "string" }, - "has_profanity": { - "example": false, - "type": "boolean" - }, - "has_spoilers": { - "example": false, - "type": "boolean" - }, - "id": { - "example": "102903742", + "median_list_per_sqft": { "type": "string" }, - "original_score": { - "example": "9/10", + "median_list_price": { + "example": "$1.29M", "type": "string" }, - "publication": { - "example": "Next Best Picture", + "median_sale_per_list": { "type": "string" }, - "publication_approved": { - "example": true, - "type": "boolean" - }, - "publication_review_url": { - "example": "https://nextbestpicture.com/inception/", + "median_sale_per_sqft": { "type": "string" }, - "rating": { - "example": 4.5, - "type": "number" - }, - "rating_label": { - "example": "STAR_4_5", + "median_sale_price": { + "example": "$1.76M", "type": "string" }, - "review": { + "num_homes_on_market": { "type": "string" }, - "score_sentiment": { - "example": "POSITIVE", + "num_homes_sold": { "type": "string" }, - "super_reviewer": { - "example": false, - "type": "boolean" - }, - "tomatometer_approved": { - "example": true, - "type": "boolean" - }, - "top_critic": { - "example": false, - "type": "boolean" - }, - "top_publication": { - "example": false, - "type": "boolean" - }, - "top_review": { - "example": false, - "type": "boolean" - }, - "type": { - "example": "critic", - "type": "string" + "region_id": { + "example": 17151, + "type": "integer" }, - "verified": { - "example": false, - "type": "boolean" - } - }, - "type": "object" - }, - "rottentomatoes.Person": { - "properties": { - "image_url": { - "type": "string" + "region_type": { + "example": 6, + "type": "integer" }, - "name": { - "example": "Christopher Nolan", + "yoy_sale_per_sqft": { "type": "string" }, - "url": { - "example": "https://www.rottentomatoes.com/celebrity/christopher_nolan", + "yoy_sale_price": { "type": "string" } }, "type": "object" }, - "rottentomatoes.PersonCredit": { + "redfin.SearchResponse": { "properties": { - "audience_score": { - "$ref": "#/definitions/rottentomatoes.Score" - }, - "credits": { - "example": "Director, Screenwriter, Producer", - "type": "string" - }, - "critics_score": { - "$ref": "#/definitions/rottentomatoes.Score" - }, - "path": { - "example": "/m/oppenheimer_2023", + "location": { + "example": "San Francisco, CA", "type": "string" }, - "position": { + "page": { "example": 1, "type": "integer" }, - "poster_url": { - "type": "string" - }, - "title": { - "example": "Oppenheimer", - "type": "string" + "region_id": { + "example": 17151, + "type": "integer" }, - "url": { - "example": "https://www.rottentomatoes.com/m/oppenheimer_2023", - "type": "string" + "region_type": { + "example": 6, + "type": "integer" }, - "years_featured": { - "example": "2023", - "type": "string" + "results": { + "items": { + "$ref": "#/definitions/redfin.PropertyItem" + }, + "type": "array" } }, "type": "object" }, - "rottentomatoes.PersonRatedTitle": { + "redfin.SimilarResponse": { "properties": { - "path": { - "example": "/m/the_dark_knight", - "type": "string" - }, - "score": { - "example": 94, - "type": "integer" - }, - "title": { - "example": "The Dark Knight", - "type": "string" - }, - "url": { - "example": "https://www.rottentomatoes.com/m/the_dark_knight", + "property_id": { + "example": "1715020", "type": "string" }, - "year": { - "example": "2008", - "type": "string" + "results": { + "items": { + "$ref": "#/definitions/redfin.PropertyItem" + }, + "type": "array" } }, "type": "object" }, - "rottentomatoes.PersonResponse": { + "referrals.referralAttributionDoc": { "properties": { - "birth_date": { - "example": "1970-07-30", - "type": "string" - }, - "birthplace": { - "example": "London, England, UK", - "type": "string" - }, - "description": { + "campaign": { + "example": "spring-launch", "type": "string" }, - "ems_id": { - "example": "a015d515-713e-38e3-abbe-cf0cdaa519b0", + "code": { + "example": "A1B2C3D4E5F6", "type": "string" }, - "fetched_at": { - "example": "2026-06-07T14:46:16Z", + "created_at": { "type": "string" }, - "filmography": { - "items": { - "$ref": "#/definitions/rottentomatoes.PersonCredit" - }, - "type": "array" - }, - "filmography_api_url": { - "example": "https://www.rottentomatoes.com/cnapi/modules/filmography/a015d515-713e-38e3-abbe-cf0cdaa519b0/movie/newest", + "expires_at": { "type": "string" }, - "highest_rated": { - "$ref": "#/definitions/rottentomatoes.PersonRatedTitle" - }, - "image_url": { + "id": { + "example": "abc123", "type": "string" }, - "lowest_rated": { - "$ref": "#/definitions/rottentomatoes.PersonRatedTitle" - }, - "name": { - "example": "Christopher Nolan", + "qualified_at": { "type": "string" }, - "page_info": { - "$ref": "#/definitions/rottentomatoes.ReviewPageInfo" + "reward_credits": { + "example": 10000, + "type": "integer" }, - "path": { - "example": "/celebrity/christopher_nolan", + "rewarded_at": { "type": "string" }, - "public_page_derived": { - "example": true, - "type": "boolean" - }, - "source_url": { - "example": "https://www.rottentomatoes.com/celebrity/christopher_nolan", + "role": { + "enum": [ + "referrer", + "referred" + ], + "example": "referrer", "type": "string" }, - "url": { - "example": "https://www.rottentomatoes.com/celebrity/christopher_nolan", + "status": { + "enum": [ + "attributed", + "qualified", + "review_required", + "rewarded", + "expired", + "capped", + "failed", + "rejected" + ], + "example": "rewarded", "type": "string" } }, "type": "object" }, - "rottentomatoes.Review": { + "referrals.referralClickRequestDoc": { "properties": { - "display_date": { - "example": "Mar 19", + "click_id": { + "example": "refclk_abc123", "type": "string" }, - "display_name": { - "example": "Rylee", + "code": { + "example": "A1B2C3D4E5F6", "type": "string" }, - "fandango_review": { - "example": true, - "type": "boolean" - }, - "rating": { - "example": 5, - "type": "number" - }, - "rating_id": { - "example": "e0812d98-c1d5-467d-ae35-c19cdd575f90", + "landing_path": { + "example": "/pricing", "type": "string" }, - "rating_range": { - "example": "Rated 5/5 Stars", + "utm_campaign": { + "example": "spring-launch", "type": "string" }, - "review": { + "utm_medium": { + "example": "email", "type": "string" }, - "verified": { - "example": true, - "type": "boolean" + "utm_source": { + "example": "newsletter", + "type": "string" } }, "type": "object" }, - "rottentomatoes.ReviewMovieSummary": { + "referrals.referralClickResponseDoc": { "properties": { - "ems_id": { - "example": "afbf1c81-1bfe-3996-9cbc-2e1be23d1f61", - "type": "string" - }, - "media_type": { - "example": "Movie", - "type": "string" - }, - "path": { - "example": "/m/inception", - "type": "string" - }, - "title": { - "example": "Inception", + "click_id": { + "example": "refclk_abc123", "type": "string" }, - "url": { - "example": "https://www.rottentomatoes.com/m/inception", + "code": { + "example": "A1B2C3D4E5F6", "type": "string" } }, "type": "object" }, - "rottentomatoes.ReviewPageInfo": { + "referrals.referralsEventsResponseDoc": { "properties": { - "end_cursor": { - "example": "eyJ0eXBlIjoiUmV2aWV3In0", - "type": "string" - }, - "has_next_page": { - "example": true, - "type": "boolean" + "items": { + "items": { + "$ref": "#/definitions/referrals.referralAttributionDoc" + }, + "type": "array" } }, "type": "object" }, - "rottentomatoes.ReviewsResponse": { + "referrals.referralsMeResponseDoc": { "properties": { - "fetched_at": { - "example": "2026-06-07T14:46:16Z", - "type": "string" - }, - "limit": { - "example": 10, + "attribution_window_days": { + "example": 30, "type": "integer" }, - "movie": { - "$ref": "#/definitions/rottentomatoes.ReviewMovieSummary" - }, - "page_info": { - "$ref": "#/definitions/rottentomatoes.ReviewPageInfo" - }, - "public_page_derived": { - "example": true, - "type": "boolean" + "code": { + "example": "A1B2C3D4E5F6", + "type": "string" }, - "reviews": { + "items": { "items": { - "$ref": "#/definitions/rottentomatoes.MovieReview" + "$ref": "#/definitions/referrals.referralAttributionDoc" }, "type": "array" }, - "reviews_api_url": { - "example": "https://www.rottentomatoes.com/napi/rtcf/v1/movies/afbf1c81-1bfe-3996-9cbc-2e1be23d1f61/reviews?type=critic&pageCount=10", - "type": "string" + "monthly_referrer_reward_cap": { + "example": 10, + "type": "integer" }, - "source_url": { - "example": "https://www.rottentomatoes.com/m/inception/reviews", - "type": "string" + "referred_reward_credits": { + "example": 10000, + "type": "integer" }, - "type": { - "example": "critics", + "reward_credits": { + "example": 10000, + "type": "integer" + }, + "share_path": { + "example": "/r/A1B2C3D4E5F6", "type": "string" + }, + "stats": { + "$ref": "#/definitions/referrals.referralsStatsDoc" } }, "type": "object" }, - "rottentomatoes.Score": { + "referrals.referralsStatsDoc": { "properties": { - "average_rating": { - "example": "8.40", - "type": "string" - }, - "banded_rating_count": { - "example": "250,000+ Ratings", - "type": "string" - }, - "certified": { - "example": true, - "type": "boolean" - }, - "liked_count": { - "example": 314, + "attributed": { + "example": 3, "type": "integer" }, - "not_liked_count": { - "example": 49, + "capped": { + "example": 0, "type": "integer" }, - "rating_count": { - "example": 363, + "expired": { + "example": 0, "type": "integer" }, - "review_count": { - "example": 363, + "qualified": { + "example": 1, "type": "integer" }, - "reviews_page_url": { - "example": "https://www.rottentomatoes.com/m/inception/reviews", - "type": "string" - }, - "score": { - "example": 87, + "rejected": { + "example": 0, "type": "integer" }, - "score_percent": { - "example": "87%", - "type": "string" - }, - "score_type": { - "example": "ALL", - "type": "string" - }, - "sentiment": { - "example": "POSITIVE", - "type": "string" + "review_required": { + "example": 0, + "type": "integer" }, - "title": { - "example": "Tomatometer", - "type": "string" + "rewarded": { + "example": 1, + "type": "integer" } }, "type": "object" }, - "rottentomatoes.SearchMovie": { + "rottentomatoes.BrowseItem": { "properties": { - "cast": { - "example": "Leonardo DiCaprio,Joseph Gordon-Levitt,Elliot Page", - "type": "string" - }, - "certified_fresh": { - "example": true, - "type": "boolean" + "critics_review_count": { + "example": 136, + "type": "integer" }, - "end_year": { + "date_created": { + "example": "2026", "type": "string" }, "image_url": { "type": "string" }, - "path": { - "example": "/m/inception", + "media_type": { + "example": "Movie", "type": "string" }, - "release_year": { - "example": "2010", + "path": { + "example": "/m/wildwood_nj", "type": "string" }, - "start_year": { - "type": "string" + "position": { + "example": 1, + "type": "integer" }, "title": { - "example": "Inception", + "example": "Wildwood, NJ", "type": "string" }, "tomatometer_score": { "example": 87, "type": "integer" }, - "tomatometer_sentiment": { - "example": "POSITIVE", - "type": "string" - }, "url": { - "example": "https://www.rottentomatoes.com/m/inception", + "example": "https://www.rottentomatoes.com/m/wildwood_nj", "type": "string" + }, + "video": { + "$ref": "#/definitions/rottentomatoes.EpisodeVideo" } }, "type": "object" }, - "rottentomatoes.SearchResponse": { + "rottentomatoes.BrowseResponse": { "properties": { "fetched_at": { "example": "2026-06-07T14:46:16Z", "type": "string" }, + "items": { + "items": { + "$ref": "#/definitions/rottentomatoes.BrowseItem" + }, + "type": "array" + }, "limit": { "example": 10, "type": "integer" }, - "query": { - "example": "inception", + "list": { + "example": "movies_in_theaters", "type": "string" }, - "results": { - "items": { - "$ref": "#/definitions/rottentomatoes.SearchMovie" - }, - "type": "array" + "public_page_derived": { + "example": true, + "type": "boolean" + }, + "sort": { + "example": "popular", + "type": "string" }, "source_url": { - "example": "https://www.rottentomatoes.com/search?search=inception", + "example": "https://www.rottentomatoes.com/browse/movies_in_theaters/sort:popular", + "type": "string" + }, + "title": { + "example": "Movies in Theaters (2026)", "type": "string" } }, "type": "object" }, - "rottentomatoes.SeasonEpisode": { + "rottentomatoes.EpisodeResponse": { "properties": { "air_date": { "example": "2008-01-20", "type": "string" }, - "description": { - "type": "string" - }, - "episode_number": { - "example": "1", - "type": "string" - }, - "path": { - "example": "/tv/breaking_bad/s01/e01", - "type": "string" - }, - "title": { - "example": "Pilot", - "type": "string" - }, - "url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01", - "type": "string" - } - }, - "type": "object" - }, - "rottentomatoes.SeasonResponse": { - "properties": { - "audience_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "audience_score": { + "$ref": "#/definitions/rottentomatoes.Score" }, "cast": { "items": { @@ -27239,19 +28345,13 @@ "type": "array" }, "ems_id": { - "example": "71374db9-1350-30fa-b30a-d3f623bbdfc4", + "example": "ccda9549-4dcb-3147-9a2b-1106dcf852f7", "type": "string" }, - "episode_count": { - "example": 7, + "episode_number": { + "example": 1, "type": "integer" }, - "episodes": { - "items": { - "$ref": "#/definitions/rottentomatoes.SeasonEpisode" - }, - "type": "array" - }, "fetched_at": { "example": "2026-06-07T14:46:16Z", "type": "string" @@ -27273,14 +28373,17 @@ "type": "string" }, "media_type": { - "example": "TvSeason", + "example": "TvEpisode", "type": "string" }, + "parent_season": { + "$ref": "#/definitions/rottentomatoes.SeasonSummary" + }, "parent_series": { "$ref": "#/definitions/rottentomatoes.SeriesSummary" }, "path": { - "example": "/tv/breaking_bad/s01", + "example": "/tv/breaking_bad/s01/e01", "type": "string" }, "producers": { @@ -27293,56 +28396,63 @@ "example": true, "type": "boolean" }, - "release_date": { - "example": "2008-01-20", - "type": "string" - }, "season_number": { "example": 1, "type": "integer" }, "source_url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", + "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01", "type": "string" }, "title": { - "example": "Season 1", + "example": "Pilot", "type": "string" }, "url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", + "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01", "type": "string" + }, + "video": { + "$ref": "#/definitions/rottentomatoes.EpisodeVideo" } }, "type": "object" }, - "rottentomatoes.SeasonSummary": { + "rottentomatoes.EpisodeVideo": { "properties": { - "ems_id": { - "example": "71374db9-1350-30fa-b30a-d3f623bbdfc4", + "description": { "type": "string" }, - "path": { - "example": "/tv/breaking_bad/s01", + "duration": { + "example": "2:32", "type": "string" }, - "season_number": { - "example": 1, - "type": "integer" + "thumbnail": { + "type": "string" }, "title": { - "example": "Season 1", + "example": "Breaking Bad: Official Clip - Walter Wants to Cook", + "type": "string" + }, + "upload_date": { + "example": "2024-07-11T19:23:03", "type": "string" }, "url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", + "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01/videos/JR3ymbH1dpLb", "type": "string" } }, "type": "object" }, - "rottentomatoes.SeriesResponse": { + "rottentomatoes.MovieResponse": { "properties": { + "audience_reviews": { + "items": { + "$ref": "#/definitions/rottentomatoes.Review" + }, + "type": "array" + }, "audience_score": { "$ref": "#/definitions/rottentomatoes.Score" }, @@ -27353,7 +28463,7 @@ "type": "array" }, "content_rating": { - "example": "TV-14", + "example": "PG-13", "type": "string" }, "critics_score": { @@ -27369,11 +28479,7 @@ "type": "array" }, "ems_id": { - "example": "6a74def4-dc62-319e-ae3d-360dcf360244", - "type": "string" - }, - "end_date": { - "example": "2013-09-29", + "example": "afbf1c81-1bfe-3996-9cbc-2e1be23d1f61", "type": "string" }, "fetched_at": { @@ -27382,7 +28488,7 @@ }, "genres": { "example": [ - "Crime" + "Sci-Fi" ], "items": { "type": "string" @@ -27392,20 +28498,12 @@ "image_url": { "type": "string" }, - "lifecycle": { - "example": "NOT_AIRING", - "type": "string" - }, "media_type": { - "example": "TvSeries", + "example": "Movie", "type": "string" }, - "number_of_seasons": { - "example": 5, - "type": "integer" - }, "path": { - "example": "/tv/breaking_bad", + "example": "/m/inception", "type": "string" }, "producers": { @@ -27418,1153 +28516,809 @@ "example": true, "type": "boolean" }, - "seasons": { - "items": { - "$ref": "#/definitions/rottentomatoes.TVSeason" - }, - "type": "array" + "release_date": { + "example": "2010-07-16", + "type": "string" }, - "source_url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad", + "reviews_url": { + "example": "https://www.rottentomatoes.com/m/inception/reviews/all-audience", "type": "string" }, - "start_date": { - "example": "2008-01-20", + "source_url": { + "example": "https://www.rottentomatoes.com/m/inception", "type": "string" }, "title": { - "example": "Breaking Bad", + "example": "Inception", "type": "string" }, "url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad", + "example": "https://www.rottentomatoes.com/m/inception", "type": "string" } }, "type": "object" }, - "rottentomatoes.SeriesSummary": { + "rottentomatoes.MovieReview": { "properties": { - "ems_id": { - "example": "6a74def4-dc62-319e-ae3d-360dcf360244", + "created_at": { + "example": "2024-04-11T23:40:16.000Z", "type": "string" }, - "path": { - "example": "/tv/breaking_bad", + "critic_url": { + "example": "https://www.rottentomatoes.com/critic/danilo-castro", "type": "string" }, - "title": { - "example": "Breaking Bad", + "display_name": { + "example": "Danilo Castro", "type": "string" }, - "url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad", + "has_profanity": { + "example": false, + "type": "boolean" + }, + "has_spoilers": { + "example": false, + "type": "boolean" + }, + "id": { + "example": "102903742", "type": "string" - } - }, - "type": "object" - }, - "rottentomatoes.TVSeason": { - "properties": { - "name": { - "example": "Season 1", + }, + "original_score": { + "example": "9/10", "type": "string" }, - "path": { - "example": "/tv/breaking_bad/s01", + "publication": { + "example": "Next Best Picture", "type": "string" }, - "url": { - "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", + "publication_approved": { + "example": true, + "type": "boolean" + }, + "publication_review_url": { + "example": "https://nextbestpicture.com/inception/", "type": "string" - } - }, - "type": "object" - }, - "rottentomatoes.browseResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/rottentomatoes.BrowseResponse" + "rating": { + "example": 4.5, + "type": "number" }, - "msg": { - "example": "OK", + "rating_label": { + "example": "STAR_4_5", "type": "string" - } - }, - "type": "object" - }, - "rottentomatoes.episodeResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/rottentomatoes.EpisodeResponse" + "review": { + "type": "string" }, - "msg": { - "example": "OK", + "score_sentiment": { + "example": "POSITIVE", "type": "string" - } - }, - "type": "object" - }, - "rottentomatoes.movieResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/rottentomatoes.MovieResponse" + "super_reviewer": { + "example": false, + "type": "boolean" }, - "msg": { - "example": "OK", + "tomatometer_approved": { + "example": true, + "type": "boolean" + }, + "top_critic": { + "example": false, + "type": "boolean" + }, + "top_publication": { + "example": false, + "type": "boolean" + }, + "top_review": { + "example": false, + "type": "boolean" + }, + "type": { + "example": "critic", "type": "string" + }, + "verified": { + "example": false, + "type": "boolean" } }, "type": "object" }, - "rottentomatoes.personResponseDoc": { + "rottentomatoes.Person": { "properties": { - "code": { - "example": 200, - "type": "integer" + "image_url": { + "type": "string" }, - "data": { - "$ref": "#/definitions/rottentomatoes.PersonResponse" + "name": { + "example": "Christopher Nolan", + "type": "string" }, - "msg": { - "example": "OK", + "url": { + "example": "https://www.rottentomatoes.com/celebrity/christopher_nolan", "type": "string" } }, "type": "object" }, - "rottentomatoes.reviewsResponseDoc": { + "rottentomatoes.PersonCredit": { "properties": { - "code": { - "example": 200, - "type": "integer" + "audience_score": { + "$ref": "#/definitions/rottentomatoes.Score" }, - "data": { - "$ref": "#/definitions/rottentomatoes.ReviewsResponse" + "credits": { + "example": "Director, Screenwriter, Producer", + "type": "string" }, - "msg": { - "example": "OK", + "critics_score": { + "$ref": "#/definitions/rottentomatoes.Score" + }, + "path": { + "example": "/m/oppenheimer_2023", "type": "string" - } - }, - "type": "object" - }, - "rottentomatoes.searchResponseDoc": { - "properties": { - "code": { - "example": 200, + }, + "position": { + "example": 1, "type": "integer" }, - "data": { - "$ref": "#/definitions/rottentomatoes.SearchResponse" + "poster_url": { + "type": "string" }, - "msg": { - "example": "OK", + "title": { + "example": "Oppenheimer", "type": "string" - } - }, - "type": "object" - }, - "rottentomatoes.seasonResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/rottentomatoes.SeasonResponse" + "url": { + "example": "https://www.rottentomatoes.com/m/oppenheimer_2023", + "type": "string" }, - "msg": { - "example": "OK", + "years_featured": { + "example": "2023", "type": "string" } }, "type": "object" }, - "rottentomatoes.seriesResponseDoc": { + "rottentomatoes.PersonRatedTitle": { "properties": { - "code": { - "example": 200, + "path": { + "example": "/m/the_dark_knight", + "type": "string" + }, + "score": { + "example": 94, "type": "integer" }, - "data": { - "$ref": "#/definitions/rottentomatoes.SeriesResponse" + "title": { + "example": "The Dark Knight", + "type": "string" }, - "msg": { - "example": "OK", + "url": { + "example": "https://www.rottentomatoes.com/m/the_dark_knight", + "type": "string" + }, + "year": { + "example": "2008", "type": "string" } }, "type": "object" }, - "shopapp.AnalysisResponse": { + "rottentomatoes.PersonResponse": { "properties": { - "currencies": { - "example": [ - "USD", - "GBP" - ], - "items": { - "type": "string" - }, - "type": "array" + "birth_date": { + "example": "1970-07-30", + "type": "string" }, - "discounts": { - "$ref": "#/definitions/shopapp.DiscountSummary" + "birthplace": { + "example": "London, England, UK", + "type": "string" }, - "groups_count": { - "example": 5, - "type": "integer" + "description": { + "type": "string" }, - "prices_by_currency": { + "ems_id": { + "example": "a015d515-713e-38e3-abbe-cf0cdaa519b0", + "type": "string" + }, + "fetched_at": { + "example": "2026-06-07T14:46:16Z", + "type": "string" + }, + "filmography": { "items": { - "$ref": "#/definitions/shopapp.CurrencyPriceSummary" + "$ref": "#/definitions/rottentomatoes.PersonCredit" }, "type": "array" }, - "products_count": { - "example": 20, - "type": "integer" + "filmography_api_url": { + "example": "https://www.rottentomatoes.com/cnapi/modules/filmography/a015d515-713e-38e3-abbe-cf0cdaa519b0/movie/newest", + "type": "string" }, - "query": { - "example": "sneakers", + "highest_rated": { + "$ref": "#/definitions/rottentomatoes.PersonRatedTitle" + }, + "image_url": { "type": "string" }, - "sale_count": { - "example": 6, - "type": "integer" + "lowest_rated": { + "$ref": "#/definitions/rottentomatoes.PersonRatedTitle" }, - "sampled_product_ids": { - "example": [ - "8075903107261", - "7093164834901" - ], - "items": { - "type": "string" - }, - "type": "array" + "name": { + "example": "Christopher Nolan", + "type": "string" }, - "shops_count": { - "example": 8, - "type": "integer" + "page_info": { + "$ref": "#/definitions/rottentomatoes.ReviewPageInfo" }, - "top_shops": { - "items": { - "$ref": "#/definitions/shopapp.ShopSummary" - }, - "type": "array" - } - }, - "type": "object" - }, - "shopapp.CategoriesResponse": { - "properties": { - "categories": { - "items": { - "$ref": "#/definitions/shopapp.CategoryItem" - }, - "type": "array" + "path": { + "example": "/celebrity/christopher_nolan", + "type": "string" + }, + "public_page_derived": { + "example": true, + "type": "boolean" + }, + "source_url": { + "example": "https://www.rottentomatoes.com/celebrity/christopher_nolan", + "type": "string" + }, + "url": { + "example": "https://www.rottentomatoes.com/celebrity/christopher_nolan", + "type": "string" } }, "type": "object" }, - "shopapp.CategoryItem": { + "rottentomatoes.Review": { "properties": { - "children": { - "items": { - "$ref": "#/definitions/shopapp.CategoryItem" - }, - "type": "array" + "display_date": { + "example": "Mar 19", + "type": "string" }, - "gid": { - "example": "gid://shopify/ProductCategory/1?version=13", + "display_name": { + "example": "Rylee", "type": "string" }, - "has_children": { + "fandango_review": { + "example": true, "type": "boolean" }, - "id": { - "example": "1", - "type": "string" + "rating": { + "example": 5, + "type": "number" }, - "image": { + "rating_id": { + "example": "e0812d98-c1d5-467d-ae35-c19cdd575f90", "type": "string" }, - "name": { - "example": "Women", + "rating_range": { + "example": "Rated 5/5 Stars", "type": "string" }, - "path": { - "items": { - "$ref": "#/definitions/shopapp.CategoryPath" - }, - "type": "array" - }, - "slug": { - "example": "women", + "review": { "type": "string" + }, + "verified": { + "example": true, + "type": "boolean" } }, "type": "object" }, - "shopapp.CategoryPath": { + "rottentomatoes.ReviewMovieSummary": { "properties": { - "gid": { - "example": "gid://shopify/ProductCategory/1?version=13", + "ems_id": { + "example": "afbf1c81-1bfe-3996-9cbc-2e1be23d1f61", "type": "string" }, - "id": { - "example": "1", + "media_type": { + "example": "Movie", "type": "string" }, - "name": { - "example": "Women", + "path": { + "example": "/m/inception", + "type": "string" + }, + "title": { + "example": "Inception", + "type": "string" + }, + "url": { + "example": "https://www.rottentomatoes.com/m/inception", "type": "string" } }, "type": "object" }, - "shopapp.CurrencyPriceSummary": { + "rottentomatoes.ReviewPageInfo": { "properties": { - "average": { - "example": 72.42, - "type": "number" - }, - "count": { - "example": 12, - "type": "integer" - }, - "currency": { - "example": "USD", + "end_cursor": { + "example": "eyJ0eXBlIjoiUmV2aWV3In0", "type": "string" }, - "max": { - "example": 149.99, - "type": "number" - }, - "min": { - "example": 35.9, - "type": "number" + "has_next_page": { + "example": true, + "type": "boolean" } }, "type": "object" }, - "shopapp.DiscountSummary": { + "rottentomatoes.ReviewsResponse": { "properties": { - "average_percent": { - "example": 24.6, - "type": "number" - }, - "max_percent": { - "example": 60, - "type": "number" + "fetched_at": { + "example": "2026-06-07T14:46:16Z", + "type": "string" }, - "min_percent": { + "limit": { "example": 10, - "type": "number" - } - }, - "type": "object" - }, - "shopapp.ImageItem": { - "properties": { - "alt": { - "example": "Product image", - "type": "string" + "type": "integer" }, - "url": { - "example": "https://cdn.shopify.com/example.jpg", - "type": "string" - } - }, - "type": "object" - }, - "shopapp.LocationAddress": { - "properties": { - "address1": { - "example": "175b Mott Street", - "type": "string" + "movie": { + "$ref": "#/definitions/rottentomatoes.ReviewMovieSummary" }, - "address2": { - "type": "string" + "page_info": { + "$ref": "#/definitions/rottentomatoes.ReviewPageInfo" }, - "city": { - "example": "New York", - "type": "string" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "country": { - "example": "US", - "type": "string" + "reviews": { + "items": { + "$ref": "#/definitions/rottentomatoes.MovieReview" + }, + "type": "array" }, - "postal_code": { - "example": "10012", + "reviews_api_url": { + "example": "https://www.rottentomatoes.com/napi/rtcf/v1/movies/afbf1c81-1bfe-3996-9cbc-2e1be23d1f61/reviews?type=critic&pageCount=10", "type": "string" }, - "zone_code": { - "example": "NY", - "type": "string" - } - }, - "type": "object" - }, - "shopapp.OptionGroup": { - "properties": { - "name": { - "example": "Size", + "source_url": { + "example": "https://www.rottentomatoes.com/m/inception/reviews", "type": "string" }, - "values": { - "items": { - "type": "string" - }, - "type": "array" + "type": { + "example": "critics", + "type": "string" } }, "type": "object" }, - "shopapp.ProductDetail": { + "rottentomatoes.Score": { "properties": { - "available": { - "type": "boolean" - }, - "currency": { - "example": "HKD", - "type": "string" - }, - "description": { - "type": "string" - }, - "external_url": { + "average_rating": { + "example": "8.40", "type": "string" }, - "id": { - "example": "4596217053229", + "banded_rating_count": { + "example": "250,000+ Ratings", "type": "string" }, - "images": { - "items": { - "$ref": "#/definitions/shopapp.ImageItem" - }, - "type": "array" - }, - "option_groups": { - "items": { - "$ref": "#/definitions/shopapp.OptionGroup" - }, - "type": "array" - }, - "original_price": { - "example": 1166, - "type": "number" - }, - "price": { - "example": 1076, - "type": "number" - }, - "rating": { - "example": 4.4, - "type": "number" + "certified": { + "example": true, + "type": "boolean" }, - "related_products": { - "items": { - "$ref": "#/definitions/shopapp.ProductItem" - }, - "type": "array" + "liked_count": { + "example": 314, + "type": "integer" }, - "reviews": { - "items": { - "$ref": "#/definitions/shopapp.ReviewItem" - }, - "type": "array" + "not_liked_count": { + "example": 49, + "type": "integer" }, - "reviews_count": { - "example": 22, + "rating_count": { + "example": 363, "type": "integer" }, - "shop_handle": { - "example": "n1r478fp0h", - "type": "string" + "review_count": { + "example": 363, + "type": "integer" }, - "shop_id": { + "reviews_page_url": { + "example": "https://www.rottentomatoes.com/m/inception/reviews", "type": "string" }, - "shop_name": { - "example": "Wide Fit Shoes UK", - "type": "string" + "score": { + "example": 87, + "type": "integer" }, - "slug": { - "example": "mens-wide-fit-new-balance-624v5-black-trainers-abzorb", + "score_percent": { + "example": "87%", "type": "string" }, - "title": { - "example": "Mens Wide Fit New Balance 624V5 Black Trainers ABZORB", + "score_type": { + "example": "ALL", "type": "string" }, - "url": { + "sentiment": { + "example": "POSITIVE", "type": "string" }, - "variant_id": { - "example": "34761278160941", + "title": { + "example": "Tomatometer", "type": "string" } }, "type": "object" }, - "shopapp.ProductDetailResponse": { - "properties": { - "product": { - "$ref": "#/definitions/shopapp.ProductDetail" - } - }, - "type": "object" - }, - "shopapp.ProductItem": { + "rottentomatoes.SearchMovie": { "properties": { - "currency": { - "example": "USD", - "type": "string" - }, - "group_query": { - "example": "kids' athletic sneakers", + "cast": { + "example": "Leonardo DiCaprio,Joseph Gordon-Levitt,Elliot Page", "type": "string" }, - "group_title": { - "example": "kids' athletic sneakers", - "type": "string" + "certified_fresh": { + "example": true, + "type": "boolean" }, - "id": { - "example": "8075903107261", + "end_year": { "type": "string" }, - "image": { - "example": "https://cdn.shopify.com/s/files/1/1145/5784/files/example.jpg", + "image_url": { "type": "string" }, - "image_alt": { - "example": "Black sneaker side view", + "path": { + "example": "/m/inception", "type": "string" }, - "on_sale": { - "type": "boolean" - }, - "original_price": { - "example": 120, - "type": "number" - }, - "position": { - "example": 1, - "type": "integer" - }, - "price": { - "example": 100, - "type": "number" - }, - "shop_id": { - "example": "62696", + "release_year": { + "example": "2010", "type": "string" }, - "shop_name": { - "example": "BILLY Footwear", + "start_year": { "type": "string" }, "title": { - "example": "Black/Black/Gum BILLY Sport Inclusion DZ1", + "example": "Inception", "type": "string" }, - "url": { - "example": "https://billyfootwear.com/products/black-black-gum-billy-sport-inclusion-dz1-zipper-shoes?utm_source=shop_app", - "type": "string" + "tomatometer_score": { + "example": 87, + "type": "integer" }, - "variant_id": { - "example": "46242960965821", - "type": "string" - } - }, - "type": "object" - }, - "shopapp.ProductShopResponse": { - "properties": { - "product_id": { - "example": "4596217053229", + "tomatometer_sentiment": { + "example": "POSITIVE", "type": "string" }, - "shop": { - "$ref": "#/definitions/shopapp.ShopDetail" + "url": { + "example": "https://www.rottentomatoes.com/m/inception", + "type": "string" } }, "type": "object" }, - "shopapp.ProductVariantResponse": { + "rottentomatoes.SearchResponse": { "properties": { - "product_id": { - "example": "4596217053229", + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" }, - "variant": { - "$ref": "#/definitions/shopapp.VariantItem" - } - }, - "type": "object" - }, - "shopapp.RelatedResponse": { - "properties": { "limit": { - "example": 20, + "example": 10, "type": "integer" }, - "product_id": { - "example": "4596217053229", + "query": { + "example": "inception", "type": "string" }, - "products": { + "results": { "items": { - "$ref": "#/definitions/shopapp.ProductItem" + "$ref": "#/definitions/rottentomatoes.SearchMovie" }, "type": "array" + }, + "source_url": { + "example": "https://www.rottentomatoes.com/search?search=inception", + "type": "string" } }, "type": "object" }, - "shopapp.ReviewItem": { + "rottentomatoes.SeasonEpisode": { "properties": { - "author": { - "example": "Donal", + "air_date": { + "example": "2008-01-20", "type": "string" }, - "body": { - "example": "Perfect fit.", + "description": { "type": "string" }, - "date": { - "example": "December 6, 2025", + "episode_number": { + "example": "1", "type": "string" }, - "helpful_count": { - "type": "integer" - }, - "id": { + "path": { + "example": "/tv/breaking_bad/s01/e01", "type": "string" }, - "product": { - "$ref": "#/definitions/shopapp.ReviewProduct" - }, - "rating": { - "example": 5, - "type": "number" - }, "title": { + "example": "Pilot", "type": "string" }, - "variant_label": { - "example": "Black / 12.5 / 4E", + "url": { + "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01", "type": "string" } }, "type": "object" }, - "shopapp.ReviewProduct": { + "rottentomatoes.SeasonResponse": { "properties": { - "id": { - "example": "8114373328975", - "type": "string" + "audience_score": { + "$ref": "#/definitions/rottentomatoes.Score" }, - "image": { - "type": "string" + "cast": { + "items": { + "$ref": "#/definitions/rottentomatoes.Person" + }, + "type": "array" }, - "image_alt": { - "type": "string" + "critics_score": { + "$ref": "#/definitions/rottentomatoes.Score" }, - "slug": { - "example": "solana-brown-woven-leather-backstrap-clogs", + "description": { "type": "string" }, - "title": { - "example": "Solana Brown Woven Leather Backstrap Clogs", - "type": "string" + "directors": { + "items": { + "$ref": "#/definitions/rottentomatoes.Person" + }, + "type": "array" }, - "url": { + "ems_id": { + "example": "71374db9-1350-30fa-b30a-d3f623bbdfc4", "type": "string" }, - "variant": { - "example": "7 / Brown Woven / Leather", - "type": "string" - } - }, - "type": "object" - }, - "shopapp.ReviewsResponse": { - "properties": { - "limit": { - "example": 20, + "episode_count": { + "example": 7, "type": "integer" }, - "product_id": { - "example": "4596217053229", - "type": "string" - }, - "reviews": { + "episodes": { "items": { - "$ref": "#/definitions/shopapp.ReviewItem" + "$ref": "#/definitions/rottentomatoes.SeasonEpisode" }, "type": "array" - } - }, - "type": "object" - }, - "shopapp.SearchGroup": { - "properties": { - "product_ids": { + }, + "fetched_at": { + "example": "2026-06-07T14:46:16Z", + "type": "string" + }, + "genres": { + "example": [ + "Crime" + ], "items": { "type": "string" }, "type": "array" }, - "products_seen": { - "example": 4, - "type": "integer" + "image_url": { + "type": "string" }, - "query": { - "example": "men's running sneakers", + "lifecycle": { + "example": "NOT_AIRING", "type": "string" }, - "title": { - "example": "men's running sneakers", + "media_type": { + "example": "TvSeason", "type": "string" - } - }, - "type": "object" - }, - "shopapp.SearchResponse": { - "properties": { - "groups": { + }, + "parent_series": { + "$ref": "#/definitions/rottentomatoes.SeriesSummary" + }, + "path": { + "example": "/tv/breaking_bad/s01", + "type": "string" + }, + "producers": { "items": { - "$ref": "#/definitions/shopapp.SearchGroup" + "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, - "limit": { - "example": 20, + "public_page_derived": { + "example": true, + "type": "boolean" + }, + "release_date": { + "example": "2008-01-20", + "type": "string" + }, + "season_number": { + "example": 1, "type": "integer" }, - "products": { - "items": { - "$ref": "#/definitions/shopapp.ProductItem" - }, - "type": "array" + "source_url": { + "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", + "type": "string" }, - "query": { - "example": "sneakers", + "title": { + "example": "Season 1", + "type": "string" + }, + "url": { + "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", "type": "string" } }, "type": "object" }, - "shopapp.ShopCollection": { + "rottentomatoes.SeasonSummary": { "properties": { - "id": { - "example": "292518002767", + "ems_id": { + "example": "71374db9-1350-30fa-b30a-d3f623bbdfc4", "type": "string" }, - "slug": { - "example": "mens-dress-shoes", + "path": { + "example": "/tv/breaking_bad/s01", "type": "string" }, + "season_number": { + "example": 1, + "type": "integer" + }, "title": { - "example": "Mens Dress Shoes", + "example": "Season 1", "type": "string" }, "url": { + "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", "type": "string" } }, "type": "object" }, - "shopapp.ShopDetail": { + "rottentomatoes.SeriesResponse": { "properties": { - "banner": { - "type": "string" + "audience_score": { + "$ref": "#/definitions/rottentomatoes.Score" }, - "collections": { + "cast": { "items": { - "$ref": "#/definitions/shopapp.ShopCollection" + "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, - "description": { + "content_rating": { + "example": "TV-14", "type": "string" }, - "handle": { - "example": "marcnolan", - "type": "string" + "critics_score": { + "$ref": "#/definitions/rottentomatoes.Score" }, - "id": { - "example": "186720", + "description": { "type": "string" }, - "logo": { - "type": "string" + "directors": { + "items": { + "$ref": "#/definitions/rottentomatoes.Person" + }, + "type": "array" }, - "name": { - "example": "Marc Nolan", - "type": "string" - }, - "rating": { - "example": 4.7, - "type": "number" - }, - "reviews_count": { - "example": 19699, - "type": "integer" - }, - "shopify_id": { - "type": "string" - }, - "storefront": { - "type": "string" - }, - "url": { - "type": "string" - }, - "uuid": { + "ems_id": { + "example": "6a74def4-dc62-319e-ae3d-360dcf360244", "type": "string" - } - }, - "type": "object" - }, - "shopapp.ShopLocationItem": { - "properties": { - "address": { - "$ref": "#/definitions/shopapp.LocationAddress" }, - "id": { - "example": "gid://shopify/Location/78620459087", + "end_date": { + "example": "2013-09-29", "type": "string" }, - "latitude": { - "example": 40.7205232, - "type": "number" - }, - "longitude": { - "example": -73.9961032, - "type": "number" - }, - "name": { - "example": "NYC", + "fetched_at": { + "example": "2026-06-07T14:46:16Z", "type": "string" - } - }, - "type": "object" - }, - "shopapp.ShopLocationsResponse": { - "properties": { - "limit": { - "example": 10, - "type": "integer" }, - "locations": { + "genres": { + "example": [ + "Crime" + ], "items": { - "$ref": "#/definitions/shopapp.ShopLocationItem" + "type": "string" }, "type": "array" }, - "next_cursor": { - "type": "string" - }, - "shop_handle": { - "example": "marcnolan", + "image_url": { "type": "string" }, - "shop_id": { - "example": "186720", + "lifecycle": { + "example": "NOT_AIRING", "type": "string" }, - "total_count": { - "example": 2, - "type": "integer" - } - }, - "type": "object" - }, - "shopapp.ShopProductsResponse": { - "properties": { - "collection": { - "$ref": "#/definitions/shopapp.ShopCollection" - }, - "collection_id": { - "example": "292518002767", + "media_type": { + "example": "TvSeries", "type": "string" }, - "limit": { - "example": 30, + "number_of_seasons": { + "example": 5, "type": "integer" }, - "next_cursor": { + "path": { + "example": "/tv/breaking_bad", "type": "string" }, - "products": { + "producers": { "items": { - "$ref": "#/definitions/shopapp.ProductItem" + "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, - "shop_handle": { - "example": "marcnolan", - "type": "string" - }, - "sort_by": { - "example": "MOST_SALES", - "type": "string" - } - }, - "type": "object" - }, - "shopapp.ShopResponse": { - "properties": { - "shop": { - "$ref": "#/definitions/shopapp.ShopDetail" - } - }, - "type": "object" - }, - "shopapp.ShopReviewsResponse": { - "properties": { - "limit": { - "example": 20, - "type": "integer" - }, - "next_cursor": { - "type": "string" + "public_page_derived": { + "example": true, + "type": "boolean" }, - "reviews": { + "seasons": { "items": { - "$ref": "#/definitions/shopapp.ReviewItem" + "$ref": "#/definitions/rottentomatoes.TVSeason" }, "type": "array" }, - "shop_handle": { - "example": "marcnolan", - "type": "string" - }, - "shop_id": { - "example": "186720", - "type": "string" - }, - "total_count": { - "example": 15015, - "type": "integer" - } - }, - "type": "object" - }, - "shopapp.ShopSummary": { - "properties": { - "count": { - "example": 4, - "type": "integer" - }, - "shop_id": { - "example": "3961166", - "type": "string" - }, - "shop_name": { - "example": "Start Fitness", - "type": "string" - } - }, - "type": "object" - }, - "shopapp.ShopTypeaheadItem": { - "properties": { - "collection": { - "$ref": "#/definitions/shopapp.ShopCollection" - }, - "id": { - "example": "7438827651151", + "source_url": { + "example": "https://www.rottentomatoes.com/tv/breaking_bad", "type": "string" }, - "position": { - "example": 1, - "type": "integer" - }, - "product": { - "$ref": "#/definitions/shopapp.ProductItem" - }, - "text": { - "example": "loafer", + "start_date": { + "example": "2008-01-20", "type": "string" }, - "type": { - "example": "product", + "title": { + "example": "Breaking Bad", "type": "string" }, "url": { + "example": "https://www.rottentomatoes.com/tv/breaking_bad", "type": "string" } }, "type": "object" }, - "shopapp.ShopTypeaheadResponse": { - "properties": { - "limit": { - "example": 20, - "type": "integer" - }, - "query": { - "example": "loafer", - "type": "string" - }, - "shop_handle": { - "example": "marcnolan", - "type": "string" - }, - "shop_id": { - "example": "186720", - "type": "string" - }, - "suggestions": { - "items": { - "$ref": "#/definitions/shopapp.ShopTypeaheadItem" - }, - "type": "array" - } - }, - "type": "object" - }, - "shopapp.SuggestResponse": { - "properties": { - "limit": { - "example": 10, - "type": "integer" - }, - "query": { - "example": "sneakers", - "type": "string" - }, - "suggestions": { - "items": { - "$ref": "#/definitions/shopapp.SuggestionItem" - }, - "type": "array" - } - }, - "type": "object" - }, - "shopapp.SuggestionItem": { + "rottentomatoes.SeriesSummary": { "properties": { - "image": { - "type": "string" - }, - "rating": { - "example": 4.79, - "type": "number" - }, - "shop_handle": { - "example": "gr21z45he0", - "type": "string" - }, - "shop_id": { - "example": "365323", - "type": "string" - }, - "shop_name": { - "example": "Sneakers Plus", + "ems_id": { + "example": "6a74def4-dc62-319e-ae3d-360dcf360244", "type": "string" }, - "text": { - "example": "sneakers", + "path": { + "example": "/tv/breaking_bad", "type": "string" }, - "type": { - "example": "query", + "title": { + "example": "Breaking Bad", "type": "string" }, "url": { - "example": "https://shop.app/search/results?query=sneakers", + "example": "https://www.rottentomatoes.com/tv/breaking_bad", "type": "string" } }, "type": "object" }, - "shopapp.VariantItem": { + "rottentomatoes.TVSeason": { "properties": { - "available_for_sale": { - "type": "boolean" - }, - "currency": { - "type": "string" - }, - "gid": { - "example": "gid://shopify/ProductVariant/34761278160941", - "type": "string" - }, - "id": { - "example": "34761278160941", + "name": { + "example": "Season 1", "type": "string" }, - "image": { - "$ref": "#/definitions/shopapp.ImageItem" - }, - "options": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "original_price": { - "type": "number" - }, - "price": { - "type": "number" - }, - "requires_shipping": { - "type": "boolean" - }, - "title": { - "example": "Black / 7 / 6E", + "path": { + "example": "/tv/breaking_bad/s01", "type": "string" - } - }, - "type": "object" - }, - "shopapp.VariantsResponse": { - "properties": { - "limit": { - "example": 50, - "type": "integer" }, - "product_id": { - "example": "4596217053229", + "url": { + "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", "type": "string" - }, - "variants": { - "items": { - "$ref": "#/definitions/shopapp.VariantItem" - }, - "type": "array" } }, "type": "object" }, - "shopapp.analysisResponseDoc": { + "rottentomatoes.browseResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopapp.AnalysisResponse" + "$ref": "#/definitions/rottentomatoes.BrowseResponse" }, "msg": { "example": "OK", @@ -28573,14 +29327,14 @@ }, "type": "object" }, - "shopapp.categoriesResponseDoc": { + "rottentomatoes.episodeResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopapp.CategoriesResponse" + "$ref": "#/definitions/rottentomatoes.EpisodeResponse" }, "msg": { "example": "OK", @@ -28589,14 +29343,14 @@ }, "type": "object" }, - "shopapp.productResponseDoc": { + "rottentomatoes.movieResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopapp.ProductDetailResponse" + "$ref": "#/definitions/rottentomatoes.MovieResponse" }, "msg": { "example": "OK", @@ -28605,14 +29359,14 @@ }, "type": "object" }, - "shopapp.productShopResponseDoc": { + "rottentomatoes.personResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopapp.ProductShopResponse" + "$ref": "#/definitions/rottentomatoes.PersonResponse" }, "msg": { "example": "OK", @@ -28621,14 +29375,14 @@ }, "type": "object" }, - "shopapp.productVariantResponseDoc": { + "rottentomatoes.reviewsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopapp.ProductVariantResponse" + "$ref": "#/definitions/rottentomatoes.ReviewsResponse" }, "msg": { "example": "OK", @@ -28637,14 +29391,14 @@ }, "type": "object" }, - "shopapp.relatedResponseDoc": { + "rottentomatoes.searchResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopapp.RelatedResponse" + "$ref": "#/definitions/rottentomatoes.SearchResponse" }, "msg": { "example": "OK", @@ -28653,14 +29407,14 @@ }, "type": "object" }, - "shopapp.reviewsResponseDoc": { + "rottentomatoes.seasonResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopapp.ReviewsResponse" + "$ref": "#/definitions/rottentomatoes.SeasonResponse" }, "msg": { "example": "OK", @@ -28669,14 +29423,14 @@ }, "type": "object" }, - "shopapp.searchResponseDoc": { + "rottentomatoes.seriesResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopapp.SearchResponse" + "$ref": "#/definitions/rottentomatoes.SeriesResponse" }, "msg": { "example": "OK", @@ -28685,806 +29439,1026 @@ }, "type": "object" }, - "shopapp.shopLocationsResponseDoc": { + "shopapp.AnalysisResponse": { "properties": { - "code": { - "example": 200, + "currencies": { + "example": [ + "USD", + "GBP" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "discounts": { + "$ref": "#/definitions/shopapp.DiscountSummary" + }, + "groups_count": { + "example": 5, "type": "integer" }, - "data": { - "$ref": "#/definitions/shopapp.ShopLocationsResponse" + "prices_by_currency": { + "items": { + "$ref": "#/definitions/shopapp.CurrencyPriceSummary" + }, + "type": "array" }, - "msg": { - "example": "OK", + "products_count": { + "example": 20, + "type": "integer" + }, + "query": { + "example": "sneakers", "type": "string" - } - }, - "type": "object" - }, - "shopapp.shopProductsResponseDoc": { - "properties": { - "code": { - "example": 200, + }, + "sale_count": { + "example": 6, "type": "integer" }, - "data": { - "$ref": "#/definitions/shopapp.ShopProductsResponse" + "sampled_product_ids": { + "example": [ + "8075903107261", + "7093164834901" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "msg": { - "example": "OK", - "type": "string" + "shops_count": { + "example": 8, + "type": "integer" + }, + "top_shops": { + "items": { + "$ref": "#/definitions/shopapp.ShopSummary" + }, + "type": "array" } }, "type": "object" }, - "shopapp.shopResponseDoc": { + "shopapp.CategoriesResponse": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/shopapp.ShopResponse" - }, - "msg": { - "example": "OK", - "type": "string" + "categories": { + "items": { + "$ref": "#/definitions/shopapp.CategoryItem" + }, + "type": "array" } }, "type": "object" }, - "shopapp.shopReviewsResponseDoc": { + "shopapp.CategoryItem": { "properties": { - "code": { - "example": 200, - "type": "integer" + "children": { + "items": { + "$ref": "#/definitions/shopapp.CategoryItem" + }, + "type": "array" }, - "data": { - "$ref": "#/definitions/shopapp.ShopReviewsResponse" + "gid": { + "example": "gid://shopify/ProductCategory/1?version=13", + "type": "string" }, - "msg": { - "example": "OK", + "has_children": { + "type": "boolean" + }, + "id": { + "example": "1", "type": "string" - } - }, - "type": "object" - }, - "shopapp.shopTypeaheadResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/shopapp.ShopTypeaheadResponse" + "image": { + "type": "string" }, - "msg": { - "example": "OK", + "name": { + "example": "Women", + "type": "string" + }, + "path": { + "items": { + "$ref": "#/definitions/shopapp.CategoryPath" + }, + "type": "array" + }, + "slug": { + "example": "women", "type": "string" } }, "type": "object" }, - "shopapp.suggestionsResponseDoc": { + "shopapp.CategoryPath": { "properties": { - "code": { - "example": 200, - "type": "integer" + "gid": { + "example": "gid://shopify/ProductCategory/1?version=13", + "type": "string" }, - "data": { - "$ref": "#/definitions/shopapp.SuggestResponse" + "id": { + "example": "1", + "type": "string" }, - "msg": { - "example": "OK", + "name": { + "example": "Women", "type": "string" } }, "type": "object" }, - "shopapp.variantsResponseDoc": { + "shopapp.CurrencyPriceSummary": { "properties": { - "code": { - "example": 200, - "type": "integer" + "average": { + "example": 72.42, + "type": "number" }, - "data": { - "$ref": "#/definitions/shopapp.VariantsResponse" + "count": { + "example": 12, + "type": "integer" }, - "msg": { - "example": "OK", + "currency": { + "example": "USD", "type": "string" + }, + "max": { + "example": 149.99, + "type": "number" + }, + "min": { + "example": 35.9, + "type": "number" } }, "type": "object" }, - "shopify.CollectionItem": { + "shopapp.DiscountSummary": { "properties": { - "created_at": { - "type": "string" + "average_percent": { + "example": 24.6, + "type": "number" }, - "description": { - "type": "string" + "max_percent": { + "example": 60, + "type": "number" }, - "handle": { - "example": "mens", + "min_percent": { + "example": 10, + "type": "number" + } + }, + "type": "object" + }, + "shopapp.ImageItem": { + "properties": { + "alt": { + "example": "Product image", "type": "string" }, - "id": { - "example": "278435758160", + "url": { + "example": "https://cdn.shopify.com/example.jpg", + "type": "string" + } + }, + "type": "object" + }, + "shopapp.LocationAddress": { + "properties": { + "address1": { + "example": "175b Mott Street", "type": "string" }, - "products_count": { - "example": 24, - "type": "integer" + "address2": { + "type": "string" }, - "published_at": { + "city": { + "example": "New York", "type": "string" }, - "title": { - "example": "Men", + "country": { + "example": "US", "type": "string" }, - "updated_at": { + "postal_code": { + "example": "10012", "type": "string" }, - "url": { - "example": "https://www.allbirds.com/collections/mens", + "zone_code": { + "example": "NY", "type": "string" } }, "type": "object" }, - "shopify.CollectionProductsResponse": { + "shopapp.OptionGroup": { "properties": { - "collection": { - "example": "mens", + "name": { + "example": "Size", "type": "string" }, - "limit": { - "example": 50, - "type": "integer" - }, - "page": { - "example": 1, - "type": "integer" - }, - "products": { + "values": { "items": { - "$ref": "#/definitions/shopify.ProductItem" + "type": "string" }, "type": "array" - }, - "source_url": { - "example": "https://www.allbirds.com", - "type": "string" - }, - "store_url": { - "example": "https://www.allbirds.com", - "type": "string" } }, "type": "object" }, - "shopify.CollectionsResponse": { + "shopapp.ProductDetail": { "properties": { - "collections": { + "available": { + "type": "boolean" + }, + "currency": { + "example": "HKD", + "type": "string" + }, + "description": { + "type": "string" + }, + "external_url": { + "type": "string" + }, + "id": { + "example": "4596217053229", + "type": "string" + }, + "images": { "items": { - "$ref": "#/definitions/shopify.CollectionItem" + "$ref": "#/definitions/shopapp.ImageItem" }, "type": "array" }, - "limit": { - "example": 50, - "type": "integer" + "option_groups": { + "items": { + "$ref": "#/definitions/shopapp.OptionGroup" + }, + "type": "array" }, - "page": { - "example": 1, + "original_price": { + "example": 1166, + "type": "number" + }, + "price": { + "example": 1076, + "type": "number" + }, + "rating": { + "example": 4.4, + "type": "number" + }, + "related_products": { + "items": { + "$ref": "#/definitions/shopapp.ProductItem" + }, + "type": "array" + }, + "reviews": { + "items": { + "$ref": "#/definitions/shopapp.ReviewItem" + }, + "type": "array" + }, + "reviews_count": { + "example": 22, "type": "integer" }, - "source_url": { - "example": "https://www.allbirds.com", + "shop_handle": { + "example": "n1r478fp0h", "type": "string" }, - "store_url": { - "example": "https://www.allbirds.com", - "type": "string" - } - }, - "type": "object" - }, - "shopify.ImageItem": { - "properties": { - "alt": { - "example": "Product image", + "shop_id": { "type": "string" }, - "created_at": { + "shop_name": { + "example": "Wide Fit Shoes UK", "type": "string" }, - "height": { - "example": 1600, - "type": "integer" - }, - "id": { - "example": "36411373027408", + "slug": { + "example": "mens-wide-fit-new-balance-624v5-black-trainers-abzorb", "type": "string" }, - "position": { - "example": 1, - "type": "integer" - }, - "updated_at": { + "title": { + "example": "Mens Wide Fit New Balance 624V5 Black Trainers ABZORB", "type": "string" }, "url": { - "example": "https://cdn.shopify.com/s/files/1/example.jpg", "type": "string" }, - "variant_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "width": { - "example": 1600, - "type": "integer" + "variant_id": { + "example": "34761278160941", + "type": "string" } }, "type": "object" }, - "shopify.OptionItem": { + "shopapp.ProductDetailResponse": { "properties": { - "name": { - "example": "Size", - "type": "string" - }, - "position": { - "example": 1, - "type": "integer" - }, - "values": { - "items": { - "type": "string" - }, - "type": "array" + "product": { + "$ref": "#/definitions/shopapp.ProductDetail" } }, "type": "object" }, - "shopify.PageItem": { + "shopapp.ProductItem": { "properties": { - "content": { + "currency": { + "example": "USD", "type": "string" }, - "created_at": { + "group_query": { + "example": "kids' athletic sneakers", "type": "string" }, - "handle": { - "example": "accessibility", + "group_title": { + "example": "kids' athletic sneakers", "type": "string" }, "id": { - "example": "54831906896", + "example": "8075903107261", "type": "string" }, - "published_at": { + "image": { + "example": "https://cdn.shopify.com/s/files/1/1145/5784/files/example.jpg", "type": "string" }, - "title": { - "example": "Accessibility", + "image_alt": { + "example": "Black sneaker side view", "type": "string" }, - "updated_at": { + "on_sale": { + "type": "boolean" + }, + "original_price": { + "example": 120, + "type": "number" + }, + "position": { + "example": 1, + "type": "integer" + }, + "price": { + "example": 100, + "type": "number" + }, + "shop_id": { + "example": "62696", + "type": "string" + }, + "shop_name": { + "example": "BILLY Footwear", + "type": "string" + }, + "title": { + "example": "Black/Black/Gum BILLY Sport Inclusion DZ1", "type": "string" }, "url": { - "example": "https://www.allbirds.com/pages/accessibility", + "example": "https://billyfootwear.com/products/black-black-gum-billy-sport-inclusion-dz1-zipper-shoes?utm_source=shop_app", + "type": "string" + }, + "variant_id": { + "example": "46242960965821", "type": "string" } }, "type": "object" }, - "shopify.PageResponse": { + "shopapp.ProductShopResponse": { "properties": { - "page": { - "$ref": "#/definitions/shopify.PageItem" - }, - "source_url": { - "example": "https://www.allbirds.com", + "product_id": { + "example": "4596217053229", "type": "string" }, - "store_url": { - "example": "https://www.allbirds.com", + "shop": { + "$ref": "#/definitions/shopapp.ShopDetail" + } + }, + "type": "object" + }, + "shopapp.ProductVariantResponse": { + "properties": { + "product_id": { + "example": "4596217053229", "type": "string" + }, + "variant": { + "$ref": "#/definitions/shopapp.VariantItem" } }, "type": "object" }, - "shopify.PagesResponse": { + "shopapp.RelatedResponse": { "properties": { "limit": { - "example": 50, + "example": 20, "type": "integer" }, - "page": { - "example": 1, - "type": "integer" + "product_id": { + "example": "4596217053229", + "type": "string" }, - "pages": { + "products": { "items": { - "$ref": "#/definitions/shopify.PageItem" + "$ref": "#/definitions/shopapp.ProductItem" }, "type": "array" - }, - "source_url": { - "example": "https://www.allbirds.com", - "type": "string" - }, - "store_url": { - "example": "https://www.allbirds.com", - "type": "string" } }, "type": "object" }, - "shopify.ProductItem": { + "shopapp.ReviewItem": { "properties": { - "available": { - "type": "boolean" - }, - "compare_at_price": { - "example": 120, - "type": "number" - }, - "created_at": { + "author": { + "example": "Donal", "type": "string" }, - "description": { + "body": { + "example": "Perfect fit.", "type": "string" }, - "featured_image": { + "date": { + "example": "December 6, 2025", "type": "string" }, - "handle": { - "example": "mens-wool-runners", - "type": "string" + "helpful_count": { + "type": "integer" }, "id": { - "example": "6616124981328", "type": "string" }, - "images": { - "items": { - "$ref": "#/definitions/shopify.ImageItem" - }, - "type": "array" - }, - "options": { - "items": { - "$ref": "#/definitions/shopify.OptionItem" - }, - "type": "array" + "product": { + "$ref": "#/definitions/shopapp.ReviewProduct" }, - "price": { - "example": 98, + "rating": { + "example": 5, "type": "number" }, - "product_type": { - "example": "Shoes", + "title": { "type": "string" }, - "published_at": { + "variant_label": { + "example": "Black / 12.5 / 4E", + "type": "string" + } + }, + "type": "object" + }, + "shopapp.ReviewProduct": { + "properties": { + "id": { + "example": "8114373328975", "type": "string" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" + "image": { + "type": "string" }, - "title": { - "example": "Men's Wool Runners", + "image_alt": { "type": "string" }, - "updated_at": { + "slug": { + "example": "solana-brown-woven-leather-backstrap-clogs", "type": "string" }, - "url": { - "example": "https://www.allbirds.com/products/mens-wool-runners", + "title": { + "example": "Solana Brown Woven Leather Backstrap Clogs", "type": "string" }, - "variants": { - "items": { - "$ref": "#/definitions/shopify.VariantItem" - }, - "type": "array" + "url": { + "type": "string" }, - "vendor": { - "example": "Allbirds", + "variant": { + "example": "7 / Brown Woven / Leather", "type": "string" } }, "type": "object" }, - "shopify.ProductRecommendationsResponse": { + "shopapp.ReviewsResponse": { "properties": { - "handle": { - "example": "mens-wool-runners", - "type": "string" - }, - "intent": { - "example": "related", - "type": "string" - }, "limit": { - "example": 10, + "example": 20, "type": "integer" }, "product_id": { - "example": "6616124981328", + "example": "4596217053229", "type": "string" }, - "products": { + "reviews": { "items": { - "$ref": "#/definitions/shopify.ProductItem" + "$ref": "#/definitions/shopapp.ReviewItem" }, "type": "array" - }, - "source_url": { - "example": "https://www.allbirds.com", - "type": "string" - }, - "store_url": { - "example": "https://www.allbirds.com", - "type": "string" } }, "type": "object" }, - "shopify.ProductResponse": { + "shopapp.SearchGroup": { "properties": { - "product": { - "$ref": "#/definitions/shopify.ProductItem" + "product_ids": { + "items": { + "type": "string" + }, + "type": "array" }, - "source_url": { - "example": "https://www.allbirds.com", + "products_seen": { + "example": 4, + "type": "integer" + }, + "query": { + "example": "men's running sneakers", "type": "string" }, - "store_url": { - "example": "https://www.allbirds.com", + "title": { + "example": "men's running sneakers", "type": "string" } }, "type": "object" }, - "shopify.ProductsResponse": { + "shopapp.SearchResponse": { "properties": { - "limit": { - "example": 50, - "type": "integer" + "groups": { + "items": { + "$ref": "#/definitions/shopapp.SearchGroup" + }, + "type": "array" }, - "page": { - "example": 1, + "limit": { + "example": 20, "type": "integer" }, "products": { "items": { - "$ref": "#/definitions/shopify.ProductItem" + "$ref": "#/definitions/shopapp.ProductItem" }, "type": "array" }, - "source_url": { - "example": "https://www.allbirds.com", - "type": "string" - }, - "store_url": { - "example": "https://www.allbirds.com", + "query": { + "example": "sneakers", "type": "string" } }, "type": "object" }, - "shopify.SearchQueryItem": { + "shopapp.ShopCollection": { "properties": { - "text": { - "example": "wool", + "id": { + "example": "292518002767", + "type": "string" + }, + "slug": { + "example": "mens-dress-shoes", + "type": "string" + }, + "title": { + "example": "Mens Dress Shoes", "type": "string" }, "url": { - "example": "https://www.allbirds.com/search?q=wool", "type": "string" } }, "type": "object" }, - "shopify.SearchSuggestResponse": { + "shopapp.ShopDetail": { "properties": { + "banner": { + "type": "string" + }, "collections": { "items": { - "$ref": "#/definitions/shopify.CollectionItem" + "$ref": "#/definitions/shopapp.ShopCollection" }, "type": "array" }, - "limit": { - "example": 10, - "type": "integer" + "description": { + "type": "string" }, - "products": { - "items": { - "$ref": "#/definitions/shopify.ProductItem" - }, - "type": "array" + "handle": { + "example": "marcnolan", + "type": "string" }, - "queries": { - "items": { - "$ref": "#/definitions/shopify.SearchQueryItem" - }, - "type": "array" + "id": { + "example": "186720", + "type": "string" }, - "query": { - "example": "wool", + "logo": { "type": "string" }, - "source_url": { - "example": "https://www.allbirds.com", + "name": { + "example": "Marc Nolan", "type": "string" }, - "store_url": { - "example": "https://www.allbirds.com", + "rating": { + "example": 4.7, + "type": "number" + }, + "reviews_count": { + "example": 19699, + "type": "integer" + }, + "shopify_id": { "type": "string" }, - "types": { - "example": [ - "product", - "collection", - "query" - ], - "items": { - "type": "string" - }, - "type": "array" + "storefront": { + "type": "string" + }, + "url": { + "type": "string" + }, + "uuid": { + "type": "string" } }, "type": "object" }, - "shopify.SitemapImage": { + "shopapp.ShopLocationItem": { "properties": { - "caption": { - "type": "string" + "address": { + "$ref": "#/definitions/shopapp.LocationAddress" }, - "title": { - "example": "Men's Wool Runner", + "id": { + "example": "gid://shopify/Location/78620459087", "type": "string" }, - "url": { - "example": "https://cdn.shopify.com/example.png", + "latitude": { + "example": 40.7205232, + "type": "number" + }, + "longitude": { + "example": -73.9961032, + "type": "number" + }, + "name": { + "example": "NYC", "type": "string" } }, "type": "object" }, - "shopify.SitemapIndexResponse": { + "shopapp.ShopLocationsResponse": { "properties": { - "sitemaps": { + "limit": { + "example": 10, + "type": "integer" + }, + "locations": { "items": { - "$ref": "#/definitions/shopify.SitemapItem" + "$ref": "#/definitions/shopapp.ShopLocationItem" }, "type": "array" }, - "source_url": { - "example": "https://www.allbirds.com", + "next_cursor": { "type": "string" }, - "store_url": { - "example": "https://www.allbirds.com", + "shop_handle": { + "example": "marcnolan", + "type": "string" + }, + "shop_id": { + "example": "186720", "type": "string" + }, + "total_count": { + "example": 2, + "type": "integer" } }, "type": "object" }, - "shopify.SitemapItem": { + "shopapp.ShopProductsResponse": { "properties": { - "loc": { - "example": "https://www.allbirds.com/sitemap_products_1.xml", + "collection": { + "$ref": "#/definitions/shopapp.ShopCollection" + }, + "collection_id": { + "example": "292518002767", "type": "string" }, - "type": { - "example": "products", + "limit": { + "example": 30, + "type": "integer" + }, + "next_cursor": { + "type": "string" + }, + "products": { + "items": { + "$ref": "#/definitions/shopapp.ProductItem" + }, + "type": "array" + }, + "shop_handle": { + "example": "marcnolan", + "type": "string" + }, + "sort_by": { + "example": "MOST_SALES", "type": "string" } }, "type": "object" }, - "shopify.SitemapURLItem": { + "shopapp.ShopResponse": { "properties": { - "changefreq": { - "example": "weekly", - "type": "string" + "shop": { + "$ref": "#/definitions/shopapp.ShopDetail" + } + }, + "type": "object" + }, + "shopapp.ShopReviewsResponse": { + "properties": { + "limit": { + "example": 20, + "type": "integer" }, - "handle": { - "example": "mens-wool-runners", + "next_cursor": { "type": "string" }, - "images": { + "reviews": { "items": { - "$ref": "#/definitions/shopify.SitemapImage" + "$ref": "#/definitions/shopapp.ReviewItem" }, "type": "array" }, - "lastmod": { - "example": "2026-03-19T11:41:39-07:00", + "shop_handle": { + "example": "marcnolan", "type": "string" }, - "loc": { - "example": "https://www.allbirds.com/products/mens-wool-runners", + "shop_id": { + "example": "186720", + "type": "string" + }, + "total_count": { + "example": 15015, + "type": "integer" + } + }, + "type": "object" + }, + "shopapp.ShopSummary": { + "properties": { + "count": { + "example": 4, + "type": "integer" + }, + "shop_id": { + "example": "3961166", + "type": "string" + }, + "shop_name": { + "example": "Start Fitness", + "type": "string" + } + }, + "type": "object" + }, + "shopapp.ShopTypeaheadItem": { + "properties": { + "collection": { + "$ref": "#/definitions/shopapp.ShopCollection" + }, + "id": { + "example": "7438827651151", + "type": "string" + }, + "position": { + "example": 1, + "type": "integer" + }, + "product": { + "$ref": "#/definitions/shopapp.ProductItem" + }, + "text": { + "example": "loafer", "type": "string" }, "type": { - "example": "products", + "example": "product", + "type": "string" + }, + "url": { "type": "string" } }, "type": "object" }, - "shopify.SitemapURLsResponse": { + "shopapp.ShopTypeaheadResponse": { "properties": { "limit": { - "example": 50, + "example": 20, "type": "integer" }, - "source_url": { - "example": "https://www.allbirds.com", + "query": { + "example": "loafer", "type": "string" }, - "store_url": { - "example": "https://www.allbirds.com", + "shop_handle": { + "example": "marcnolan", "type": "string" }, - "type": { - "example": "products", + "shop_id": { + "example": "186720", "type": "string" }, - "urls": { + "suggestions": { "items": { - "$ref": "#/definitions/shopify.SitemapURLItem" + "$ref": "#/definitions/shopapp.ShopTypeaheadItem" }, "type": "array" } }, "type": "object" }, - "shopify.StoreResponse": { + "shopapp.SuggestResponse": { "properties": { - "city": { - "example": "San Francisco", - "type": "string" - }, - "country": { - "example": "US", - "type": "string" + "limit": { + "example": 10, + "type": "integer" }, - "currency": { - "example": "USD", + "query": { + "example": "sneakers", "type": "string" }, - "description": { + "suggestions": { + "items": { + "$ref": "#/definitions/shopapp.SuggestionItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "shopapp.SuggestionItem": { + "properties": { + "image": { "type": "string" }, - "domain": { - "example": "www.gymshark.com", - "type": "string" + "rating": { + "example": 4.79, + "type": "number" }, - "myshopify_domain": { - "example": "gymsharkusa.myshopify.com", + "shop_handle": { + "example": "gr21z45he0", "type": "string" }, - "name": { - "example": "Allbirds", + "shop_id": { + "example": "365323", "type": "string" }, - "province": { - "example": "CA", + "shop_name": { + "example": "Sneakers Plus", "type": "string" }, - "published_collections_count": { - "example": 42, - "type": "integer" - }, - "published_products_count": { - "example": 638, - "type": "integer" - }, - "requested_url": { - "example": "https://www.gymshark.com", + "text": { + "example": "sneakers", "type": "string" }, - "source_domain": { - "example": "gymsharkusa.myshopify.com", + "type": { + "example": "query", "type": "string" }, - "source_url": { - "example": "https://gymsharkusa.myshopify.com", + "url": { + "example": "https://shop.app/search/results?query=sneakers", "type": "string" } }, "type": "object" }, - "shopify.VariantItem": { + "shopapp.VariantItem": { "properties": { - "available": { + "available_for_sale": { "type": "boolean" }, - "barcode": { - "type": "string" - }, - "compare_at_price": { - "example": 120, - "type": "number" - }, - "created_at": { + "currency": { "type": "string" }, - "featured_image": { + "gid": { + "example": "gid://shopify/ProductVariant/34761278160941", "type": "string" }, - "grams": { - "example": 400, - "type": "integer" - }, "id": { "example": "34761278160941", "type": "string" }, - "option1": { - "type": "string" + "image": { + "$ref": "#/definitions/shopapp.ImageItem" }, - "option2": { + "options": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "original_price": { + "type": "number" + }, + "price": { + "type": "number" + }, + "requires_shipping": { + "type": "boolean" + }, + "title": { + "example": "Black / 7 / 6E", "type": "string" + } + }, + "type": "object" + }, + "shopapp.VariantsResponse": { + "properties": { + "limit": { + "example": 50, + "type": "integer" }, - "option3": { + "product_id": { + "example": "4596217053229", "type": "string" }, - "position": { - "example": 1, + "variants": { + "items": { + "$ref": "#/definitions/shopapp.VariantItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "shopapp.analysisResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "price": { - "example": 98, - "type": "number" + "data": { + "$ref": "#/definitions/shopapp.AnalysisResponse" }, - "product_id": { - "example": "6616124981328", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "shopapp.categoriesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "requires_shipping": { - "type": "boolean" + "data": { + "$ref": "#/definitions/shopapp.CategoriesResponse" }, - "sku": { - "example": "A123", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "shopapp.productResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "taxable": { - "type": "boolean" + "data": { + "$ref": "#/definitions/shopapp.ProductDetailResponse" }, - "title": { - "example": "Natural Black / 10", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "shopapp.productShopResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "updated_at": { + "data": { + "$ref": "#/definitions/shopapp.ProductShopResponse" + }, + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "shopify.collectionProductsResponseDoc": { + "shopapp.productVariantResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.CollectionProductsResponse" + "$ref": "#/definitions/shopapp.ProductVariantResponse" }, "msg": { "example": "OK", @@ -29493,14 +30467,14 @@ }, "type": "object" }, - "shopify.collectionsResponseDoc": { + "shopapp.relatedResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.CollectionsResponse" + "$ref": "#/definitions/shopapp.RelatedResponse" }, "msg": { "example": "OK", @@ -29509,14 +30483,14 @@ }, "type": "object" }, - "shopify.pageResponseDoc": { + "shopapp.reviewsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.PageResponse" + "$ref": "#/definitions/shopapp.ReviewsResponse" }, "msg": { "example": "OK", @@ -29525,14 +30499,14 @@ }, "type": "object" }, - "shopify.pagesResponseDoc": { + "shopapp.searchResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.PagesResponse" + "$ref": "#/definitions/shopapp.SearchResponse" }, "msg": { "example": "OK", @@ -29541,14 +30515,14 @@ }, "type": "object" }, - "shopify.productRecommendationsResponseDoc": { + "shopapp.shopLocationsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.ProductRecommendationsResponse" + "$ref": "#/definitions/shopapp.ShopLocationsResponse" }, "msg": { "example": "OK", @@ -29557,14 +30531,14 @@ }, "type": "object" }, - "shopify.productResponseDoc": { + "shopapp.shopProductsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.ProductResponse" + "$ref": "#/definitions/shopapp.ShopProductsResponse" }, "msg": { "example": "OK", @@ -29573,14 +30547,14 @@ }, "type": "object" }, - "shopify.productsResponseDoc": { + "shopapp.shopResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.ProductsResponse" + "$ref": "#/definitions/shopapp.ShopResponse" }, "msg": { "example": "OK", @@ -29589,14 +30563,14 @@ }, "type": "object" }, - "shopify.searchSuggestResponseDoc": { + "shopapp.shopReviewsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.SearchSuggestResponse" + "$ref": "#/definitions/shopapp.ShopReviewsResponse" }, "msg": { "example": "OK", @@ -29605,14 +30579,14 @@ }, "type": "object" }, - "shopify.sitemapIndexResponseDoc": { + "shopapp.shopTypeaheadResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.SitemapIndexResponse" + "$ref": "#/definitions/shopapp.ShopTypeaheadResponse" }, "msg": { "example": "OK", @@ -29621,14 +30595,14 @@ }, "type": "object" }, - "shopify.sitemapURLsResponseDoc": { + "shopapp.suggestionsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.SitemapURLsResponse" + "$ref": "#/definitions/shopapp.SuggestResponse" }, "msg": { "example": "OK", @@ -29637,14 +30611,14 @@ }, "type": "object" }, - "shopify.storeResponseDoc": { + "shopapp.variantsResponseDoc": { "properties": { "code": { "example": 200, "type": "integer" }, "data": { - "$ref": "#/definitions/shopify.StoreResponse" + "$ref": "#/definitions/shopapp.VariantsResponse" }, "msg": { "example": "OK", @@ -29653,1536 +30627,1258 @@ }, "type": "object" }, - "similarweb.SearchResp": { + "shopify.CollectionItem": { "properties": { - "apps": { - "properties": { - "appStore": { - "items": { - "properties": { - "appKey": { - "example": "1_1484366079", - "type": "string" - }, - "id": { - "example": "1484366079", - "type": "string" - }, - "image": { - "example": "https://site-images.similarcdn.com/url?url=https%3A%2F%2Fis1-ssl.mzstatic.com%2Fimage%2Fthumb%2FPurple211%2Fv4%2F1c%2F1c%2Fe3%2F1c1ce399-1181-5be1-56d8-ee74e9f0cef4%2FAppIcon-0-0-1x_U007emarketing-0-0-0-7-0-0-85-220.png%2F175x175bb.png", - "type": "string" - }, - "name": { - "example": "TwitterIt for Twitter X", - "type": "string" - }, - "publisher": { - "example": "BEST SOCIAL APPS DEVELOPMENT LTD", - "type": "string" - }, - "ratings": { - "example": 38197, - "type": "integer" - }, - "store": { - "example": "apple", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "googlePlay": { - "items": { - "properties": { - "appKey": { - "example": "0_twittervideodownloader.twitter.videoindir.savegif.twdown", - "type": "string" - }, - "id": { - "example": "twittervideodownloader.twitter.videoindir.savegif.twdown", - "type": "string" - }, - "image": { - "example": "https://site-images.similarcdn.com/url?url=https%3A%2F%2Fplay-lh.googleusercontent.com%2FFi9-CFodjxpqvc3dC0XHDXHkFD3wkw9VccX_iL68U_3kmu2iIuHvIp5AZUoXGZ3mlQ%3Ds180", - "type": "string" - }, - "name": { - "example": "X Saver:Download Twitter Video", - "type": "string" - }, - "publisher": { - "example": "Shotcut Video Workshop", - "type": "string" - }, - "ratings": { - "example": 159344, - "type": "integer" - }, - "store": { - "example": "google", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "companies": { - "items": { - "properties": { - "domain": { - "example": "twitter.com", - "type": "string" - }, - "logoUrl": { - "example": "https://sw-df-production-internal-data.s3.amazonaws.com/si/company_data/merged_v2/firmographics_logos/30e41d95dd013b4ec1b8d9e614ec546807cb2152b1f54fa3031d7e6488f93ce4.jpg", - "type": "string" - }, - "name": { - "example": "Twitter", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "websites": { - "items": { - "properties": { - "image": { - "example": "https://site-images.similarcdn.com/image?url=twitter.com&t=2&s=1&h=05438debe431144d9c727828570d1754a25bd9286bc14f3aa65a4f05b9057e25", - "type": "string" - }, - "isVirtual": { - "example": false, - "type": "boolean" - }, - "name": { - "example": "twitter.com", - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "similarweb.SimilarWebResp": { - "properties": { - "Category": { + "created_at": { "type": "string" }, - "CategoryRank": { - "properties": { - "Category": { - "type": "string" - }, - "Rank": { - "type": "string" - } - }, - "type": "object" - }, - "Competitors": { - "properties": { - "TopSimilarityCompetitors": { - "items": {}, - "type": "array" - } - }, - "type": "object" - }, - "Countries": { - "items": { - "properties": { - "Code": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "UrlCode": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "CountryRank": { - "properties": { - "Country": { - "type": "integer" - }, - "CountryCode": { - "type": "string" - }, - "Rank": { - "type": "integer" - } - }, - "type": "object" - }, - "Description": { + "description": { "type": "string" }, - "Engagments": { - "properties": { - "BounceRate": { - "type": "string" - }, - "Month": { - "type": "string" - }, - "PagePerVisit": { - "type": "string" - }, - "TimeOnSite": { - "type": "string" - }, - "Visits": { - "type": "string" - }, - "Year": { - "type": "string" - } - }, - "type": "object" - }, - "EstimatedMonthlyVisits": { - "properties": { - "2024-09-01": { - "type": "integer" - }, - "2024-10-01": { - "type": "integer" - }, - "2024-11-01": { - "type": "integer" - } - }, - "type": "object" - }, - "GlobalCategoryRank": {}, - "GlobalRank": { - "properties": { - "Rank": { - "type": "integer" - } - }, - "type": "object" - }, - "IsDataFromGa": { - "type": "boolean" - }, - "IsSmall": { - "type": "boolean" - }, - "LargeScreenshot": { + "handle": { + "example": "mens", "type": "string" }, - "Notification": { - "properties": { - "Content": {} - }, - "type": "object" + "id": { + "example": "278435758160", + "type": "string" }, - "Policy": { + "products_count": { + "example": 24, "type": "integer" }, - "SiteName": { + "published_at": { "type": "string" }, - "SnapshotDate": { + "title": { + "example": "Men", "type": "string" }, - "Title": { + "updated_at": { "type": "string" }, - "TopCountryShares": { - "items": { - "properties": { - "Country": { - "type": "integer" - }, - "CountryCode": { - "type": "string" - }, - "Value": { - "type": "number" - } - }, - "type": "object" - }, - "type": "array" - }, - "TopKeywords": { - "items": { - "properties": { - "Cpc": { - "type": "number" - }, - "EstimatedValue": { - "type": "number" - }, - "Name": { - "type": "string" - }, - "Volume": { - "type": "number" - } - }, - "type": "object" - }, - "type": "array" - }, - "TrafficSources": { - "properties": { - "Direct": { - "type": "number" - }, - "Mail": { - "type": "number" - }, - "Paid Referrals": { - "type": "number" - }, - "Referrals": { - "type": "number" - }, - "Search": { - "type": "number" - }, - "Social": { - "type": "number" - } - }, - "type": "object" - }, - "Version": { - "type": "integer" - } - }, - "type": "object" - }, - "similarweb.searchResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/similarweb.SearchResp" - }, - "msg": { - "example": "OK", + "url": { + "example": "https://www.allbirds.com/collections/mens", "type": "string" } }, "type": "object" }, - "similarweb.webResponseDoc": { + "shopify.CollectionProductsResponse": { "properties": { - "code": { - "example": 200, + "collection": { + "example": "mens", + "type": "string" + }, + "limit": { + "example": 50, "type": "integer" }, - "data": { - "$ref": "#/definitions/similarweb.SimilarWebResp" + "page": { + "example": 1, + "type": "integer" }, - "msg": { - "example": "OK", - "type": "string" - } - }, - "type": "object" - }, - "spotify.AlbumMeta": { - "properties": { - "appVersion": { - "type": "string" + "products": { + "items": { + "$ref": "#/definitions/shopify.ProductItem" + }, + "type": "array" }, - "fetchedAt": { + "source_url": { + "example": "https://www.allbirds.com", "type": "string" }, - "operationName": { + "store_url": { + "example": "https://www.allbirds.com", "type": "string" - }, - "trackCount": { - "type": "integer" } }, "type": "object" }, - "spotify.AlbumResponse": { + "shopify.CollectionsResponse": { "properties": { - "albumType": { - "type": "string" - }, - "artists": { + "collections": { "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "$ref": "#/definitions/shopify.CollectionItem" }, "type": "array" }, - "copyrights": { - "items": { - "type": "string" - }, - "type": "array" + "limit": { + "example": 50, + "type": "integer" }, - "durationMs": { + "page": { + "example": 1, "type": "integer" }, - "externalUrl": { + "source_url": { + "example": "https://www.allbirds.com", "type": "string" }, - "id": { + "store_url": { + "example": "https://www.allbirds.com", "type": "string" - }, - "imageUrl": { + } + }, + "type": "object" + }, + "shopify.ImageItem": { + "properties": { + "alt": { + "example": "Product image", "type": "string" }, - "images": { - "items": { - "$ref": "#/definitions/spotify.ImageAsset" - }, - "type": "array" - }, - "isExplicit": { - "type": "boolean" - }, - "isPlayable": { - "type": "boolean" + "created_at": { + "type": "string" }, - "limit": { + "height": { + "example": 1600, "type": "integer" }, - "meta": { - "$ref": "#/definitions/spotify.AlbumMeta" - }, - "name": { + "id": { + "example": "36411373027408", "type": "string" }, - "offset": { + "position": { + "example": 1, "type": "integer" }, - "releaseDate": { + "updated_at": { "type": "string" }, - "shareUrl": { + "url": { + "example": "https://cdn.shopify.com/s/files/1/example.jpg", "type": "string" }, - "totalTracks": { - "type": "integer" - }, - "tracks": { + "variant_ids": { "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "type": "string" }, "type": "array" }, - "type": { - "type": "string" - }, - "uri": { - "type": "string" + "width": { + "example": 1600, + "type": "integer" } }, "type": "object" }, - "spotify.ArtistAlbumsMeta": { + "shopify.OptionItem": { "properties": { - "appVersion": { + "name": { + "example": "Size", "type": "string" }, - "count": { + "position": { + "example": 1, "type": "integer" }, - "fetchedAt": { - "type": "string" - }, - "operationName": { - "type": "string" + "values": { + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "spotify.ArtistAlbumsResponse": { + "shopify.PageItem": { "properties": { - "id": { + "content": { "type": "string" }, - "items": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" - }, - "limit": { - "type": "integer" + "created_at": { + "type": "string" }, - "meta": { - "$ref": "#/definitions/spotify.ArtistAlbumsMeta" + "handle": { + "example": "accessibility", + "type": "string" }, - "offset": { - "type": "integer" + "id": { + "example": "54831906896", + "type": "string" }, - "order": { + "published_at": { "type": "string" }, - "total": { - "type": "integer" + "title": { + "example": "Accessibility", + "type": "string" }, - "type": { + "updated_at": { "type": "string" }, - "uri": { + "url": { + "example": "https://www.allbirds.com/pages/accessibility", "type": "string" } }, "type": "object" }, - "spotify.ArtistCollectionMeta": { + "shopify.PageResponse": { "properties": { - "appVersion": { - "type": "string" - }, - "count": { - "type": "integer" + "page": { + "$ref": "#/definitions/shopify.PageItem" }, - "fetchedAt": { + "source_url": { + "example": "https://www.allbirds.com", "type": "string" }, - "operationName": { + "store_url": { + "example": "https://www.allbirds.com", "type": "string" } }, "type": "object" }, - "spotify.ArtistCollectionResponse": { + "shopify.PagesResponse": { "properties": { - "id": { - "type": "string" + "limit": { + "example": 50, + "type": "integer" }, - "items": { + "page": { + "example": 1, + "type": "integer" + }, + "pages": { "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "$ref": "#/definitions/shopify.PageItem" }, "type": "array" }, - "meta": { - "$ref": "#/definitions/spotify.ArtistCollectionMeta" + "source_url": { + "example": "https://www.allbirds.com", + "type": "string" }, - "uri": { + "store_url": { + "example": "https://www.allbirds.com", "type": "string" } }, "type": "object" }, - "spotify.ArtistMeta": { + "shopify.ProductItem": { "properties": { - "appVersion": { - "type": "string" + "available": { + "type": "boolean" }, - "discographyCount": { - "type": "integer" + "compare_at_price": { + "example": 120, + "type": "number" }, - "fetchedAt": { + "created_at": { "type": "string" }, - "operationName": { + "description": { "type": "string" }, - "playlistCount": { - "type": "integer" + "featured_image": { + "type": "string" }, - "relatedCount": { - "type": "integer" + "handle": { + "example": "mens-wool-runners", + "type": "string" }, - "topTrackCount": { - "type": "integer" - } - }, - "type": "object" - }, - "spotify.ArtistResponse": { - "properties": { - "biography": { + "id": { + "example": "6616124981328", "type": "string" }, - "discography": { + "images": { "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "$ref": "#/definitions/shopify.ImageItem" }, "type": "array" }, - "externalUrl": { - "type": "string" + "options": { + "items": { + "$ref": "#/definitions/shopify.OptionItem" + }, + "type": "array" }, - "followers": { - "type": "integer" + "price": { + "example": 98, + "type": "number" }, - "id": { + "product_type": { + "example": "Shoes", "type": "string" }, - "imageUrl": { + "published_at": { "type": "string" }, - "images": { + "tags": { "items": { - "$ref": "#/definitions/spotify.ImageAsset" + "type": "string" }, "type": "array" }, - "meta": { - "$ref": "#/definitions/spotify.ArtistMeta" + "title": { + "example": "Men's Wool Runners", + "type": "string" }, - "monthlyUsers": { - "type": "integer" + "updated_at": { + "type": "string" }, - "name": { + "url": { + "example": "https://www.allbirds.com/products/mens-wool-runners", "type": "string" }, - "playlists": { + "variants": { "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "$ref": "#/definitions/shopify.VariantItem" }, "type": "array" }, - "related": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" + "vendor": { + "example": "Allbirds", + "type": "string" + } + }, + "type": "object" + }, + "shopify.ProductRecommendationsResponse": { + "properties": { + "handle": { + "example": "mens-wool-runners", + "type": "string" }, - "shareUrl": { + "intent": { + "example": "related", "type": "string" }, - "topTracks": { + "limit": { + "example": 10, + "type": "integer" + }, + "product_id": { + "example": "6616124981328", + "type": "string" + }, + "products": { "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "$ref": "#/definitions/shopify.ProductItem" }, "type": "array" }, - "type": { + "source_url": { + "example": "https://www.allbirds.com", "type": "string" }, - "uri": { + "store_url": { + "example": "https://www.allbirds.com", "type": "string" - }, - "verified": { - "type": "boolean" } }, "type": "object" }, - "spotify.AudiobookChaptersMeta": { + "shopify.ProductResponse": { "properties": { - "appVersion": { - "type": "string" - }, - "count": { - "type": "integer" + "product": { + "$ref": "#/definitions/shopify.ProductItem" }, - "fetchedAt": { + "source_url": { + "example": "https://www.allbirds.com", "type": "string" }, - "operationName": { + "store_url": { + "example": "https://www.allbirds.com", "type": "string" } }, "type": "object" }, - "spotify.AudiobookChaptersResponse": { + "shopify.ProductsResponse": { "properties": { - "chapters": { - "items": { - "$ref": "#/definitions/spotify.PodcastEpisodeSummary" - }, - "type": "array" - }, - "id": { - "type": "string" - }, "limit": { + "example": 50, "type": "integer" }, - "meta": { - "$ref": "#/definitions/spotify.AudiobookChaptersMeta" - }, - "offset": { + "page": { + "example": 1, "type": "integer" }, - "total": { - "type": "integer" + "products": { + "items": { + "$ref": "#/definitions/shopify.ProductItem" + }, + "type": "array" }, - "uri": { + "source_url": { + "example": "https://www.allbirds.com", + "type": "string" + }, + "store_url": { + "example": "https://www.allbirds.com", "type": "string" } }, "type": "object" }, - "spotify.AudiobookMeta": { + "shopify.SearchQueryItem": { "properties": { - "appVersion": { - "type": "string" - }, - "fetchedAt": { + "text": { + "example": "wool", "type": "string" }, - "operationName": { + "url": { + "example": "https://www.allbirds.com/search?q=wool", "type": "string" } }, "type": "object" }, - "spotify.AudiobookResponse": { + "shopify.SearchSuggestResponse": { "properties": { - "authors": { + "collections": { "items": { - "type": "string" + "$ref": "#/definitions/shopify.CollectionItem" }, "type": "array" }, - "description": { - "type": "string" - }, - "externalUrl": { - "type": "string" - }, - "id": { - "type": "string" - }, - "imageUrl": { - "type": "string" + "limit": { + "example": 10, + "type": "integer" }, - "images": { + "products": { "items": { - "$ref": "#/definitions/spotify.ImageAsset" + "$ref": "#/definitions/shopify.ProductItem" }, "type": "array" }, - "isExplicit": { - "type": "boolean" + "queries": { + "items": { + "$ref": "#/definitions/shopify.SearchQueryItem" + }, + "type": "array" }, - "mediaType": { + "query": { + "example": "wool", "type": "string" }, - "meta": { - "$ref": "#/definitions/spotify.AudiobookMeta" + "source_url": { + "example": "https://www.allbirds.com", + "type": "string" }, - "name": { + "store_url": { + "example": "https://www.allbirds.com", "type": "string" }, - "narrators": { + "types": { + "example": [ + "product", + "collection", + "query" + ], "items": { "type": "string" }, "type": "array" - }, - "publisher": { - "type": "string" - }, - "totalChapters": { - "type": "integer" - }, - "type": { - "type": "string" - }, - "uri": { - "type": "string" } }, "type": "object" }, - "spotify.BrowsePageItem": { + "shopify.SitemapImage": { "properties": { - "description": { - "example": "The official podcast of comedian Joe Rogan.", + "caption": { "type": "string" }, - "externalUrl": { - "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", + "title": { + "example": "Men's Wool Runner", "type": "string" }, - "imageUrl": { - "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", + "url": { + "example": "https://cdn.shopify.com/example.png", "type": "string" - }, - "images": { + } + }, + "type": "object" + }, + "shopify.SitemapIndexResponse": { + "properties": { + "sitemaps": { "items": { - "$ref": "#/definitions/spotify.ImageAsset" + "$ref": "#/definitions/shopify.SitemapItem" }, "type": "array" }, - "publisher": { - "example": "Joe Rogan", - "type": "string" - }, - "subtitle": { - "example": "Joe Rogan", - "type": "string" - }, - "title": { - "example": "The Joe Rogan Experience", - "type": "string" - }, - "type": { - "example": "Podcast", + "source_url": { + "example": "https://www.allbirds.com", "type": "string" }, - "uri": { - "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", + "store_url": { + "example": "https://www.allbirds.com", "type": "string" } }, "type": "object" }, - "spotify.BrowsePageMeta": { + "shopify.SitemapItem": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", - "type": "string" - }, - "fetchedAt": { - "example": "2026-05-13T20:41:12Z", + "loc": { + "example": "https://www.allbirds.com/sitemap_products_1.xml", "type": "string" }, - "operationName": { - "example": "browsePage", + "type": { + "example": "products", "type": "string" - }, - "sectionCount": { - "example": 8, - "type": "integer" } }, "type": "object" }, - "spotify.BrowsePageResponse": { + "shopify.SitemapURLItem": { "properties": { - "meta": { - "$ref": "#/definitions/spotify.BrowsePageMeta" + "changefreq": { + "example": "weekly", + "type": "string" }, - "sections": { + "handle": { + "example": "mens-wool-runners", + "type": "string" + }, + "images": { "items": { - "$ref": "#/definitions/spotify.BrowsePageSection" + "$ref": "#/definitions/shopify.SitemapImage" }, "type": "array" }, - "subtitle": { - "example": "New shows and episodes", + "lastmod": { + "example": "2026-03-19T11:41:39-07:00", "type": "string" }, - "title": { - "example": "Podcasts", + "loc": { + "example": "https://www.allbirds.com/products/mens-wool-runners", "type": "string" }, "type": { - "example": "BrowseSectionContainer", - "type": "string" - }, - "uri": { - "example": "spotify:genre:podcasts-web", + "example": "products", "type": "string" } }, "type": "object" }, - "spotify.BrowsePageSection": { + "shopify.SitemapURLsResponse": { "properties": { - "items": { - "items": { - "$ref": "#/definitions/spotify.BrowsePageItem" - }, - "type": "array" + "limit": { + "example": 50, + "type": "integer" }, - "subtitle": { - "example": "Recommended shows", + "source_url": { + "example": "https://www.allbirds.com", "type": "string" }, - "title": { - "example": "Popular podcasts", + "store_url": { + "example": "https://www.allbirds.com", "type": "string" }, - "totalCount": { - "example": 20, - "type": "integer" - }, "type": { - "example": "BrowseGenericSectionData", + "example": "products", "type": "string" }, - "uri": { - "example": "spotify:section:0JQ5IMCbQBLqNPkcmYxQPQ", - "type": "string" + "urls": { + "items": { + "$ref": "#/definitions/shopify.SitemapURLItem" + }, + "type": "array" } }, "type": "object" }, - "spotify.BrowseSectionMeta": { + "shopify.StoreResponse": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", + "city": { + "example": "San Francisco", "type": "string" }, - "count": { - "example": 20, - "type": "integer" - }, - "fetchedAt": { - "example": "2026-05-13T20:41:12Z", + "country": { + "example": "US", "type": "string" }, - "operationName": { - "example": "browseSection", + "currency": { + "example": "USD", "type": "string" - } - }, - "type": "object" - }, - "spotify.BrowseSectionResponse": { - "properties": { - "items": { - "items": { - "$ref": "#/definitions/spotify.BrowsePageItem" - }, - "type": "array" }, - "limit": { - "example": 20, - "type": "integer" + "description": { + "type": "string" }, - "meta": { - "$ref": "#/definitions/spotify.BrowseSectionMeta" + "domain": { + "example": "www.gymshark.com", + "type": "string" }, - "offset": { - "example": 0, - "type": "integer" + "myshopify_domain": { + "example": "gymsharkusa.myshopify.com", + "type": "string" }, - "subtitle": { - "example": "Recommended shows", + "name": { + "example": "Allbirds", "type": "string" }, - "title": { - "example": "Popular podcasts", + "province": { + "example": "CA", "type": "string" }, - "totalCount": { - "example": 50, + "published_collections_count": { + "example": 42, "type": "integer" }, - "type": { - "example": "BrowseGenericSectionData", + "published_products_count": { + "example": 638, + "type": "integer" + }, + "requested_url": { + "example": "https://www.gymshark.com", "type": "string" }, - "uri": { - "example": "spotify:section:0JQ5IMCbQBLqNPkcmYxQPQ", + "source_domain": { + "example": "gymsharkusa.myshopify.com", + "type": "string" + }, + "source_url": { + "example": "https://gymsharkusa.myshopify.com", "type": "string" } }, "type": "object" }, - "spotify.ChartItem": { + "shopify.VariantItem": { "properties": { - "description": { - "example": "The official podcast of comedian Joe Rogan.", - "type": "string" + "available": { + "type": "boolean" }, - "episodeDescription": { - "example": "A representative chart episode.", + "barcode": { "type": "string" }, - "episodeExternalUrl": { - "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", - "type": "string" + "compare_at_price": { + "example": 120, + "type": "number" }, - "episodeImageUrl": { - "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", + "created_at": { "type": "string" }, - "episodeName": { - "example": "Example episode", + "featured_image": { "type": "string" }, - "episodeUri": { - "example": "spotify:episode:2C2Y5kNq7qCVOVhbA0G3os", - "type": "string" + "grams": { + "example": 400, + "type": "integer" }, - "externalUrl": { - "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", + "id": { + "example": "34761278160941", "type": "string" }, - "imageUrl": { - "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", + "option1": { "type": "string" }, - "name": { - "example": "The Joe Rogan Experience", + "option2": { "type": "string" }, - "publisher": { - "example": "Joe Rogan", + "option3": { "type": "string" }, - "rank": { + "position": { "example": 1, "type": "integer" }, - "rankMove": { - "example": "UNCHANGED", - "type": "string" - }, - "showDescription": { - "example": "The official podcast of comedian Joe Rogan.", - "type": "string" + "price": { + "example": 98, + "type": "number" }, - "showExternalUrl": { - "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", + "product_id": { + "example": "6616124981328", "type": "string" }, - "showImageUrl": { - "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", - "type": "string" + "requires_shipping": { + "type": "boolean" }, - "showName": { - "example": "The Joe Rogan Experience", + "sku": { + "example": "A123", "type": "string" }, - "showPublisher": { - "example": "Joe Rogan", - "type": "string" + "taxable": { + "type": "boolean" }, - "showUri": { - "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", + "title": { + "example": "Natural Black / 10", "type": "string" }, - "uri": { - "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", + "updated_at": { "type": "string" } }, "type": "object" }, - "spotify.ChartMeta": { + "shopify.collectionProductsResponseDoc": { "properties": { - "count": { - "example": 100, + "code": { + "example": 200, "type": "integer" }, - "fetchedAt": { - "example": "2026-05-13T20:41:13Z", - "type": "string" + "data": { + "$ref": "#/definitions/shopify.CollectionProductsResponse" }, - "sourceUrl": { - "example": "https://podcastcharts.byspotify.com/api/charts/top-podcasts?region=us", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "spotify.ChartResponse": { + "shopify.collectionsResponseDoc": { "properties": { - "chart": { - "example": "top-podcasts", - "type": "string" - }, - "chartName": { - "example": "Top Podcasts", - "type": "string" - }, - "chartType": { - "example": "chart", - "type": "string" - }, - "items": { - "items": { - "$ref": "#/definitions/spotify.ChartItem" - }, - "type": "array" - }, - "limit": { - "example": 100, + "code": { + "example": 200, "type": "integer" }, - "meta": { - "$ref": "#/definitions/spotify.ChartMeta" - }, - "region": { - "example": "us", - "type": "string" + "data": { + "$ref": "#/definitions/shopify.CollectionsResponse" }, - "regionName": { - "example": "United States", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "spotify.CountryHubContentID": { + "shopify.pageResponseDoc": { "properties": { - "id": { - "example": "CHARTS", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "title": { - "example": "Featured Charts", + "data": { + "$ref": "#/definitions/shopify.PageResponse" + }, + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "spotify.CountryHubContentMeta": { + "shopify.pagesResponseDoc": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", - "type": "string" - }, - "fetchedAt": { - "example": "2026-05-13T20:41:13Z", - "type": "string" - }, - "itemCount": { - "example": 20, + "code": { + "example": 200, "type": "integer" }, - "operationName": { - "example": "countryHubContent", - "type": "string" + "data": { + "$ref": "#/definitions/shopify.PagesResponse" }, - "partialErrors": { - "description": "PartialErrors counts upstream GraphQL field errors tolerated alongside\nusable items. Zero on a fully clean response.", - "example": 1, - "type": "integer" + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "spotify.CountryHubContentResponse": { + "shopify.productRecommendationsResponseDoc": { "properties": { - "contentId": { - "example": "CHARTS", - "type": "string" - }, - "countryCode": { - "example": "US", - "type": "string" - }, - "countryName": { - "example": "United States", - "type": "string" - }, - "hexColor": { - "example": "#1DB954", - "type": "string" - }, - "items": { - "items": { - "$ref": "#/definitions/spotify.CountryHubItem" - }, - "type": "array" - }, - "meta": { - "$ref": "#/definitions/spotify.CountryHubContentMeta" - }, - "supportedContentIds": { - "items": { - "$ref": "#/definitions/spotify.CountryHubContentID" - }, - "type": "array" + "code": { + "example": 200, + "type": "integer" }, - "supportedCountries": { - "items": { - "$ref": "#/definitions/spotify.PopularCountry" - }, - "type": "array" + "data": { + "$ref": "#/definitions/shopify.ProductRecommendationsResponse" }, - "title": { - "example": "Featured Charts", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "spotify.CountryHubItem": { + "shopify.productResponseDoc": { "properties": { - "album": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "artists": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" - }, - "attributes": { - "additionalProperties": { - "type": "string" - }, - "example": { - "{\"chart\"": "\"top-50\"}" - }, - "type": "object" - }, - "description": { - "example": "Your daily update of the most played tracks right now.", - "type": "string" - }, - "externalUrl": { - "example": "https://open.spotify.com/playlist/37i9dQZEVXbLRQDuF5jeBpM", - "type": "string" - }, - "imageUrl": { - "example": "https://charts-images.scdn.co/assets/locale_en/regional/daily/region_us_default.jpg", - "type": "string" - }, - "images": { - "items": { - "$ref": "#/definitions/spotify.ImageAsset" - }, - "type": "array" - }, - "owner": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "subtitle": { - "example": "Spotify", - "type": "string" - }, - "title": { - "example": "Top 50 - USA", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "type": { - "example": "Playlist", - "type": "string" + "data": { + "$ref": "#/definitions/shopify.ProductResponse" }, - "uri": { - "example": "spotify:playlist:37i9dQZEVXbLRQDuF5jeBpM", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "spotify.CountryHubMeta": { + "shopify.productsResponseDoc": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", - "type": "string" - }, - "fetchedAt": { - "example": "2026-05-13T20:41:13Z", - "type": "string" - }, - "itemCount": { - "example": 20, + "code": { + "example": 200, "type": "integer" }, - "operationName": { - "example": "countryHubsPage", - "type": "string" - }, - "partialErrors": { - "description": "PartialErrors counts upstream GraphQL field errors that were tolerated\nbecause usable shelves were still returned (e.g. one broken shelf among\nseveral). Zero on a fully clean response.", - "example": 1, - "type": "integer" + "data": { + "$ref": "#/definitions/shopify.ProductsResponse" }, - "sectionCount": { - "example": 5, - "type": "integer" + "msg": { + "example": "OK", + "type": "string" } }, "type": "object" }, - "spotify.CountryHubResponse": { + "shopify.searchSuggestResponseDoc": { "properties": { - "countryCode": { - "example": "US", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "countryName": { - "example": "United States", - "type": "string" + "data": { + "$ref": "#/definitions/shopify.SearchSuggestResponse" }, - "hexColor": { - "example": "#1DB954", + "msg": { + "example": "OK", "type": "string" - }, - "meta": { - "$ref": "#/definitions/spotify.CountryHubMeta" - }, - "sections": { - "items": { - "$ref": "#/definitions/spotify.CountryHubSection" - }, - "type": "array" - }, - "supportedCountries": { - "items": { - "$ref": "#/definitions/spotify.PopularCountry" - }, - "type": "array" } }, "type": "object" }, - "spotify.CountryHubSection": { + "shopify.sitemapIndexResponseDoc": { "properties": { - "contentId": { - "example": "CHARTS", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "items": { - "items": { - "$ref": "#/definitions/spotify.CountryHubItem" - }, - "type": "array" + "data": { + "$ref": "#/definitions/shopify.SitemapIndexResponse" }, - "title": { - "example": "Featured Charts", + "msg": { + "example": "OK", "type": "string" - }, - "totalCount": { - "example": 20, - "type": "integer" } }, "type": "object" }, - "spotify.HomeMeta": { + "shopify.sitemapURLsResponseDoc": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", - "type": "string" + "code": { + "example": 200, + "type": "integer" }, - "fetchedAt": { - "example": "2026-05-13T20:41:12Z", - "type": "string" + "data": { + "$ref": "#/definitions/shopify.SitemapURLsResponse" }, - "operationName": { - "example": "home", + "msg": { + "example": "OK", "type": "string" - }, - "sectionCount": { - "example": 8, - "type": "integer" } }, "type": "object" }, - "spotify.HomeResponse": { + "shopify.storeResponseDoc": { "properties": { - "facet": { - "example": "music", - "type": "string" - }, - "greeting": { - "example": "Good afternoon", - "type": "string" - }, - "meta": { - "$ref": "#/definitions/spotify.HomeMeta" + "code": { + "example": 200, + "type": "integer" }, - "sections": { - "items": { - "$ref": "#/definitions/spotify.BrowsePageSection" - }, - "type": "array" + "data": { + "$ref": "#/definitions/shopify.StoreResponse" }, - "timeZone": { - "example": "UTC", + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "spotify.ImageAsset": { + "similarweb.SearchResp": { "properties": { - "height": { - "example": 640, - "type": "integer" + "apps": { + "properties": { + "appStore": { + "items": { + "properties": { + "appKey": { + "example": "1_1484366079", + "type": "string" + }, + "id": { + "example": "1484366079", + "type": "string" + }, + "image": { + "example": "https://site-images.similarcdn.com/url?url=https%3A%2F%2Fis1-ssl.mzstatic.com%2Fimage%2Fthumb%2FPurple211%2Fv4%2F1c%2F1c%2Fe3%2F1c1ce399-1181-5be1-56d8-ee74e9f0cef4%2FAppIcon-0-0-1x_U007emarketing-0-0-0-7-0-0-85-220.png%2F175x175bb.png", + "type": "string" + }, + "name": { + "example": "TwitterIt for Twitter X", + "type": "string" + }, + "publisher": { + "example": "BEST SOCIAL APPS DEVELOPMENT LTD", + "type": "string" + }, + "ratings": { + "example": 38197, + "type": "integer" + }, + "store": { + "example": "apple", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "googlePlay": { + "items": { + "properties": { + "appKey": { + "example": "0_twittervideodownloader.twitter.videoindir.savegif.twdown", + "type": "string" + }, + "id": { + "example": "twittervideodownloader.twitter.videoindir.savegif.twdown", + "type": "string" + }, + "image": { + "example": "https://site-images.similarcdn.com/url?url=https%3A%2F%2Fplay-lh.googleusercontent.com%2FFi9-CFodjxpqvc3dC0XHDXHkFD3wkw9VccX_iL68U_3kmu2iIuHvIp5AZUoXGZ3mlQ%3Ds180", + "type": "string" + }, + "name": { + "example": "X Saver:Download Twitter Video", + "type": "string" + }, + "publisher": { + "example": "Shotcut Video Workshop", + "type": "string" + }, + "ratings": { + "example": 159344, + "type": "integer" + }, + "store": { + "example": "google", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" }, - "url": { - "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", - "type": "string" + "companies": { + "items": { + "properties": { + "domain": { + "example": "twitter.com", + "type": "string" + }, + "logoUrl": { + "example": "https://sw-df-production-internal-data.s3.amazonaws.com/si/company_data/merged_v2/firmographics_logos/30e41d95dd013b4ec1b8d9e614ec546807cb2152b1f54fa3031d7e6488f93ce4.jpg", + "type": "string" + }, + "name": { + "example": "Twitter", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" }, - "width": { - "example": 640, - "type": "integer" + "websites": { + "items": { + "properties": { + "image": { + "example": "https://site-images.similarcdn.com/image?url=twitter.com&t=2&s=1&h=05438debe431144d9c727828570d1754a25bd9286bc14f3aa65a4f05b9057e25", + "type": "string" + }, + "isVirtual": { + "example": false, + "type": "boolean" + }, + "name": { + "example": "twitter.com", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" } }, "type": "object" }, - "spotify.PlaylistMeta": { + "similarweb.SimilarWebResp": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", - "type": "string" - }, - "episodeCount": { - "example": 0, - "type": "integer" - }, - "fetchedAt": { - "example": "2026-05-13T20:41:12Z", - "type": "string" - }, - "itemCount": { - "example": 20, - "type": "integer" - }, - "operationName": { - "example": "fetchPlaylist", + "Category": { "type": "string" }, - "trackCount": { - "example": 20, - "type": "integer" - } - }, - "type": "object" - }, - "spotify.PlaylistResponse": { - "properties": { - "collaborative": { - "example": false, - "type": "boolean" + "CategoryRank": { + "properties": { + "Category": { + "type": "string" + }, + "Rank": { + "type": "string" + } + }, + "type": "object" }, - "description": { - "example": "Your daily update of the most played tracks right now.", - "type": "string" + "Competitors": { + "properties": { + "TopSimilarityCompetitors": { + "items": {}, + "type": "array" + } + }, + "type": "object" }, - "episodes": { + "Countries": { "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "properties": { + "Code": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "UrlCode": { + "type": "string" + } + }, + "type": "object" }, "type": "array" }, - "externalUrl": { - "example": "https://open.spotify.com/playlist/37i9dQZEVXbLwpL8TjsxOG", - "type": "string" - }, - "followers": { - "example": 17500000, - "type": "integer" + "CountryRank": { + "properties": { + "Country": { + "type": "integer" + }, + "CountryCode": { + "type": "string" + }, + "Rank": { + "type": "integer" + } + }, + "type": "object" }, - "id": { - "example": "37i9dQZEVXbLwpL8TjsxOG", + "Description": { "type": "string" }, - "imageUrl": { - "example": "https://charts-images.scdn.co/assets/locale_en/regional/daily/region_global_default.jpg", - "type": "string" + "Engagments": { + "properties": { + "BounceRate": { + "type": "string" + }, + "Month": { + "type": "string" + }, + "PagePerVisit": { + "type": "string" + }, + "TimeOnSite": { + "type": "string" + }, + "Visits": { + "type": "string" + }, + "Year": { + "type": "string" + } + }, + "type": "object" }, - "images": { - "items": { - "$ref": "#/definitions/spotify.ImageAsset" + "EstimatedMonthlyVisits": { + "properties": { + "2024-09-01": { + "type": "integer" + }, + "2024-10-01": { + "type": "integer" + }, + "2024-11-01": { + "type": "integer" + } }, - "type": "array" + "type": "object" }, - "items": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "GlobalCategoryRank": {}, + "GlobalRank": { + "properties": { + "Rank": { + "type": "integer" + } }, - "type": "array" + "type": "object" }, - "limit": { - "example": 20, - "type": "integer" + "IsDataFromGa": { + "type": "boolean" }, - "meta": { - "$ref": "#/definitions/spotify.PlaylistMeta" + "IsSmall": { + "type": "boolean" }, - "name": { - "example": "Top 50 - Global", + "LargeScreenshot": { "type": "string" }, - "offset": { - "example": 0, + "Notification": { + "properties": { + "Content": {} + }, + "type": "object" + }, + "Policy": { "type": "integer" }, - "owner": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "SiteName": { + "type": "string" }, - "shareUrl": { - "example": "https://open.spotify.com/playlist/37i9dQZEVXbLwpL8TjsxOG", + "SnapshotDate": { "type": "string" }, - "total": { - "example": 50, - "type": "integer" + "Title": { + "type": "string" }, - "tracks": { + "TopCountryShares": { "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "properties": { + "Country": { + "type": "integer" + }, + "CountryCode": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "type": "object" }, "type": "array" }, - "type": { - "example": "Playlist", + "TopKeywords": { + "items": { + "properties": { + "Cpc": { + "type": "number" + }, + "EstimatedValue": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Volume": { + "type": "number" + } + }, + "type": "object" + }, + "type": "array" + }, + "TrafficSources": { + "properties": { + "Direct": { + "type": "number" + }, + "Mail": { + "type": "number" + }, + "Paid Referrals": { + "type": "number" + }, + "Referrals": { + "type": "number" + }, + "Search": { + "type": "number" + }, + "Social": { + "type": "number" + } + }, + "type": "object" + }, + "Version": { + "type": "integer" + } + }, + "type": "object" + }, + "similarweb.searchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/similarweb.SearchResp" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "similarweb.webResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "uri": { - "example": "spotify:playlist:37i9dQZEVXbLwpL8TjsxOG", + "data": { + "$ref": "#/definitions/similarweb.SimilarWebResp" + }, + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "spotify.PodcastEpisodeMeta": { + "spotify.AlbumMeta": { "properties": { "appVersion": { - "example": "1.2.90.403.gf901f20f", "type": "string" }, "fetchedAt": { - "example": "2026-05-13T20:41:13Z", "type": "string" }, "operationName": { - "example": "getEpisodeOrChapter", "type": "string" }, - "sourceUrl": { - "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", - "type": "string" + "trackCount": { + "type": "integer" } }, "type": "object" }, - "spotify.PodcastEpisodeResponse": { + "spotify.AlbumResponse": { "properties": { - "description": { - "example": "A new adventure from the Stinky Dragon crew.", + "albumType": { "type": "string" }, + "artists": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "copyrights": { + "items": { + "type": "string" + }, + "type": "array" + }, "durationMs": { - "example": 3600000, "type": "integer" }, "externalUrl": { - "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", - "type": "string" - }, - "htmlDescription": { - "example": "A new adventure from the Stinky Dragon crew.", "type": "string" }, "id": { - "example": "2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, "imageUrl": { - "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" }, "images": { @@ -31192,175 +31888,183 @@ "type": "array" }, "isExplicit": { - "example": false, - "type": "boolean" - }, - "isPaywallContent": { - "example": false, "type": "boolean" }, "isPlayable": { - "example": true, "type": "boolean" }, - "mediaTypes": { - "example": [ - "AUDIO" - ], - "items": { - "type": "string" - }, - "type": "array" + "limit": { + "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.PodcastEpisodeMeta" + "$ref": "#/definitions/spotify.AlbumMeta" }, "name": { - "example": "Tales from the Stinky Dragon", "type": "string" }, - "playabilityReason": { - "example": "PLAYABLE", + "offset": { + "type": "integer" + }, + "releaseDate": { "type": "string" }, - "previewAudioUrl": { - "example": "https://p.scdn.co/mp3-preview/example", + "shareUrl": { "type": "string" }, - "previewAudioUrls": { - "example": [ - "https://p.scdn.co/mp3-preview/example" - ], + "totalTracks": { + "type": "integer" + }, + "tracks": { "items": { - "type": "string" + "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, - "previewVideoUrl": { - "example": "https://p.scdn.co/video-preview/example", - "type": "string" - }, - "releaseDate": { - "example": "2026-05-13", + "type": { "type": "string" }, - "releaseDatePrecision": { - "example": "DAY", + "uri": { "type": "string" - }, - "shareUrl": { - "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", + } + }, + "type": "object" + }, + "spotify.ArtistAlbumsMeta": { + "properties": { + "appVersion": { "type": "string" }, - "show": { - "$ref": "#/definitions/spotify.PodcastEpisodeShowSummary" - }, - "transcriptCount": { - "example": 1, + "count": { "type": "integer" }, - "type": { - "example": "Episode", + "fetchedAt": { "type": "string" }, - "unplayabilityReasons": { - "example": [ - "not_available_in_region" - ], + "operationName": { + "type": "string" + } + }, + "type": "object" + }, + "spotify.ArtistAlbumsResponse": { + "properties": { + "id": { + "type": "string" + }, + "items": { "items": { - "type": "string" + "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, - "uri": { - "example": "spotify:episode:2C2Y5kNq7qCVOVhbA0G3os", + "limit": { + "type": "integer" + }, + "meta": { + "$ref": "#/definitions/spotify.ArtistAlbumsMeta" + }, + "offset": { + "type": "integer" + }, + "order": { "type": "string" }, - "videoThumbnailUrl": { - "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", + "total": { + "type": "integer" + }, + "type": { "type": "string" }, - "videoThumbnails": { - "items": { - "$ref": "#/definitions/spotify.ImageAsset" - }, - "type": "array" + "uri": { + "type": "string" } }, "type": "object" }, - "spotify.PodcastEpisodeShowSummary": { + "spotify.ArtistCollectionMeta": { "properties": { - "description": { - "example": "Tales from the Stinky Dragon is an actual-play comedy podcast.", + "appVersion": { "type": "string" }, - "externalUrl": { - "example": "https://open.spotify.com/show/1QQJ7FElLE0K6CIfZNCxU4", - "type": "string" + "count": { + "type": "integer" }, - "id": { - "example": "1QQJ7FElLE0K6CIfZNCxU4", + "fetchedAt": { "type": "string" }, - "imageUrl": { - "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", + "operationName": { + "type": "string" + } + }, + "type": "object" + }, + "spotify.ArtistCollectionResponse": { + "properties": { + "id": { "type": "string" }, - "images": { + "items": { "items": { - "$ref": "#/definitions/spotify.ImageAsset" + "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, - "mediaType": { - "example": "MIXED", - "type": "string" + "meta": { + "$ref": "#/definitions/spotify.ArtistCollectionMeta" }, - "name": { - "example": "Tales from the Stinky Dragon", + "uri": { "type": "string" - }, - "publisher": { - "example": "Stinky Dragon", + } + }, + "type": "object" + }, + "spotify.ArtistMeta": { + "properties": { + "appVersion": { "type": "string" }, - "showTypes": { - "example": [ - "PODCAST" - ], - "items": { - "type": "string" - }, - "type": "array" + "discographyCount": { + "type": "integer" }, - "type": { - "example": "Podcast", + "fetchedAt": { "type": "string" }, - "uri": { - "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", + "operationName": { "type": "string" + }, + "playlistCount": { + "type": "integer" + }, + "relatedCount": { + "type": "integer" + }, + "topTrackCount": { + "type": "integer" } }, "type": "object" }, - "spotify.PodcastEpisodeSummary": { + "spotify.ArtistResponse": { "properties": { - "description": { - "example": "A new adventure from the Stinky Dragon crew.", + "biography": { "type": "string" }, - "durationMs": { - "example": 3600000, - "type": "integer" + "discography": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" }, "externalUrl": { - "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", + "type": "string" + }, + "followers": { + "type": "integer" + }, + "id": { "type": "string" }, "imageUrl": { - "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" }, "images": { @@ -31369,105 +32073,179 @@ }, "type": "array" }, - "isExplicit": { - "example": false, - "type": "boolean" + "meta": { + "$ref": "#/definitions/spotify.ArtistMeta" }, - "isPlayable": { - "example": true, - "type": "boolean" + "monthlyUsers": { + "type": "integer" }, "name": { - "example": "Tales from the Stinky Dragon", "type": "string" }, - "releaseDate": { - "example": "2026-05-13", + "playlists": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "related": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "shareUrl": { "type": "string" }, + "topTracks": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, "type": { - "example": "Episode", "type": "string" }, "uri": { - "example": "spotify:episode:2C2Y5kNq7qCVOVhbA0G3os", "type": "string" + }, + "verified": { + "type": "boolean" } }, "type": "object" }, - "spotify.PodcastEpisodesMeta": { + "spotify.AudiobookChaptersMeta": { "properties": { "appVersion": { - "example": "1.2.90.403.gf901f20f", "type": "string" }, + "count": { + "type": "integer" + }, "fetchedAt": { - "example": "2026-05-13T20:41:13Z", "type": "string" }, "operationName": { - "example": "queryPodcastEpisodes", "type": "string" } }, "type": "object" }, - "spotify.PodcastEpisodesResponse": { + "spotify.AudiobookChaptersResponse": { "properties": { - "episodes": { + "chapters": { "items": { "$ref": "#/definitions/spotify.PodcastEpisodeSummary" }, "type": "array" }, + "id": { + "type": "string" + }, "limit": { - "example": 20, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.PodcastEpisodesMeta" + "$ref": "#/definitions/spotify.AudiobookChaptersMeta" }, "offset": { - "example": 0, "type": "integer" }, "total": { - "example": 202, "type": "integer" }, "uri": { - "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", "type": "string" } }, "type": "object" }, - "spotify.PopularCountry": { + "spotify.AudiobookMeta": { "properties": { - "code": { - "example": "us", + "appVersion": { "type": "string" }, - "name": { - "example": "United States", + "fetchedAt": { + "type": "string" + }, + "operationName": { "type": "string" } }, "type": "object" }, - "spotify.RecommendationSummary": { + "spotify.AudiobookResponse": { "properties": { + "authors": { + "items": { + "type": "string" + }, + "type": "array" + }, "description": { - "example": "The official podcast of comedian Joe Rogan.", "type": "string" }, "externalUrl": { - "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", "type": "string" }, - "imageUrl": { - "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "images": { + "items": { + "$ref": "#/definitions/spotify.ImageAsset" + }, + "type": "array" + }, + "isExplicit": { + "type": "boolean" + }, + "mediaType": { + "type": "string" + }, + "meta": { + "$ref": "#/definitions/spotify.AudiobookMeta" + }, + "name": { + "type": "string" + }, + "narrators": { + "items": { + "type": "string" + }, + "type": "array" + }, + "publisher": { + "type": "string" + }, + "totalChapters": { + "type": "integer" + }, + "type": { + "type": "string" + }, + "uri": { + "type": "string" + } + }, + "type": "object" + }, + "spotify.BrowsePageItem": { + "properties": { + "description": { + "example": "The official podcast of comedian Joe Rogan.", + "type": "string" + }, + "externalUrl": { + "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", + "type": "string" + }, + "imageUrl": { + "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", "type": "string" }, "images": { @@ -31499,153 +32277,114 @@ }, "type": "object" }, - "spotify.SearchMeta": { + "spotify.BrowsePageMeta": { "properties": { - "albumCount": { - "example": 3, - "type": "integer" - }, "appVersion": { "example": "1.2.90.403.gf901f20f", "type": "string" }, - "artistCount": { - "example": 5, - "type": "integer" - }, - "audiobookCount": { - "example": 2, - "type": "integer" - }, - "episodeCount": { - "example": 2, - "type": "integer" - }, "fetchedAt": { "example": "2026-05-13T20:41:12Z", "type": "string" }, "operationName": { - "example": "searchDesktop", + "example": "browsePage", "type": "string" }, - "playlistCount": { - "example": 2, - "type": "integer" - }, - "resultCount": { - "example": 22, - "type": "integer" - }, - "showCount": { - "example": 4, - "type": "integer" - }, - "topCount": { - "example": 3, - "type": "integer" - }, - "trackCount": { - "example": 2, - "type": "integer" - }, - "userCount": { - "example": 2, + "sectionCount": { + "example": 8, "type": "integer" } }, "type": "object" }, - "spotify.SearchPodcastsMeta": { + "spotify.BrowsePageResponse": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", - "type": "string" + "meta": { + "$ref": "#/definitions/spotify.BrowsePageMeta" }, - "episodeCount": { - "example": 2, - "type": "integer" + "sections": { + "items": { + "$ref": "#/definitions/spotify.BrowsePageSection" + }, + "type": "array" }, - "fetchedAt": { - "example": "2026-05-13T20:41:12Z", + "subtitle": { + "example": "New shows and episodes", "type": "string" }, - "operationName": { - "example": "searchPodcasts", + "title": { + "example": "Podcasts", "type": "string" }, - "showCount": { - "example": 4, - "type": "integer" + "type": { + "example": "BrowseSectionContainer", + "type": "string" }, - "topCount": { - "example": 3, - "type": "integer" + "uri": { + "example": "spotify:genre:podcasts-web", + "type": "string" } }, "type": "object" }, - "spotify.SearchPodcastsResponse": { + "spotify.BrowsePageSection": { "properties": { - "episodes": { + "items": { "items": { - "$ref": "#/definitions/spotify.PodcastEpisodeSummary" + "$ref": "#/definitions/spotify.BrowsePageItem" }, "type": "array" }, - "limit": { - "example": 20, - "type": "integer" + "subtitle": { + "example": "Recommended shows", + "type": "string" }, - "meta": { - "$ref": "#/definitions/spotify.SearchPodcastsMeta" + "title": { + "example": "Popular podcasts", + "type": "string" }, - "offset": { - "example": 0, + "totalCount": { + "example": 20, "type": "integer" }, - "searchTerm": { - "example": "hello", + "type": { + "example": "BrowseGenericSectionData", "type": "string" }, - "shows": { - "items": { - "$ref": "#/definitions/spotify.RecommendationSummary" - }, - "type": "array" - }, - "topResults": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" + "uri": { + "example": "spotify:section:0JQ5IMCbQBLqNPkcmYxQPQ", + "type": "string" } }, "type": "object" }, - "spotify.SearchResponse": { + "spotify.BrowseSectionMeta": { "properties": { - "albums": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" + "appVersion": { + "example": "1.2.90.403.gf901f20f", + "type": "string" }, - "artists": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" + "count": { + "example": 20, + "type": "integer" }, - "audiobooks": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" + "fetchedAt": { + "example": "2026-05-13T20:41:12Z", + "type": "string" }, - "episodes": { + "operationName": { + "example": "browseSection", + "type": "string" + } + }, + "type": "object" + }, + "spotify.BrowseSectionResponse": { + "properties": { + "items": { "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "$ref": "#/definitions/spotify.BrowsePageItem" }, "type": "array" }, @@ -31654,61 +32393,61 @@ "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.SearchMeta" + "$ref": "#/definitions/spotify.BrowseSectionMeta" }, "offset": { "example": 0, "type": "integer" }, - "playlists": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" - }, - "results": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" - }, - "searchTerm": { - "example": "hello", + "subtitle": { + "example": "Recommended shows", "type": "string" }, - "shows": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" + "title": { + "example": "Popular podcasts", + "type": "string" }, - "topResults": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" + "totalCount": { + "example": 50, + "type": "integer" }, - "tracks": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" + "type": { + "example": "BrowseGenericSectionData", + "type": "string" }, - "users": { - "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" - }, - "type": "array" + "uri": { + "example": "spotify:section:0JQ5IMCbQBLqNPkcmYxQPQ", + "type": "string" } }, "type": "object" }, - "spotify.SearchResultSummary": { + "spotify.ChartItem": { "properties": { "description": { "example": "The official podcast of comedian Joe Rogan.", "type": "string" }, + "episodeDescription": { + "example": "A representative chart episode.", + "type": "string" + }, + "episodeExternalUrl": { + "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", + "type": "string" + }, + "episodeImageUrl": { + "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", + "type": "string" + }, + "episodeName": { + "example": "Example episode", + "type": "string" + }, + "episodeUri": { + "example": "spotify:episode:2C2Y5kNq7qCVOVhbA0G3os", + "type": "string" + }, "externalUrl": { "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", "type": "string" @@ -31717,26 +32456,44 @@ "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", "type": "string" }, - "images": { - "items": { - "$ref": "#/definitions/spotify.ImageAsset" - }, - "type": "array" + "name": { + "example": "The Joe Rogan Experience", + "type": "string" }, "publisher": { "example": "Joe Rogan", "type": "string" }, - "subtitle": { - "example": "Joe Rogan", + "rank": { + "example": 1, + "type": "integer" + }, + "rankMove": { + "example": "UNCHANGED", "type": "string" }, - "title": { + "showDescription": { + "example": "The official podcast of comedian Joe Rogan.", + "type": "string" + }, + "showExternalUrl": { + "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", + "type": "string" + }, + "showImageUrl": { + "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", + "type": "string" + }, + "showName": { "example": "The Joe Rogan Experience", "type": "string" }, - "type": { - "example": "Podcast", + "showPublisher": { + "example": "Joe Rogan", + "type": "string" + }, + "showUri": { + "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", "type": "string" }, "uri": { @@ -31746,177 +32503,147 @@ }, "type": "object" }, - "spotify.ShowMetadataMeta": { + "spotify.ChartMeta": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", - "type": "string" + "count": { + "example": 100, + "type": "integer" }, "fetchedAt": { "example": "2026-05-13T20:41:13Z", "type": "string" }, - "operationName": { - "example": "queryShowMetadataV2", + "sourceUrl": { + "example": "https://podcastcharts.byspotify.com/api/charts/top-podcasts?region=us", "type": "string" } }, "type": "object" }, - "spotify.ShowMetadataResponse": { + "spotify.ChartResponse": { "properties": { - "description": { - "example": "Tales from the Stinky Dragon is an actual-play comedy podcast.", + "chart": { + "example": "top-podcasts", "type": "string" }, - "externalUrl": { - "example": "https://open.spotify.com/show/1QQJ7FElLE0K6CIfZNCxU4", + "chartName": { + "example": "Top Podcasts", "type": "string" }, - "imageUrl": { - "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", + "chartType": { + "example": "chart", "type": "string" }, - "images": { + "items": { "items": { - "$ref": "#/definitions/spotify.ImageAsset" + "$ref": "#/definitions/spotify.ChartItem" }, "type": "array" }, - "isExplicit": { - "example": false, - "type": "boolean" - }, - "mediaType": { - "example": "MIXED", - "type": "string" + "limit": { + "example": 100, + "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.ShowMetadataMeta" - }, - "name": { - "example": "Tales from the Stinky Dragon", - "type": "string" - }, - "publisher": { - "example": "Stinky Dragon", - "type": "string" - }, - "totalEpisodes": { - "example": 202, - "type": "integer" + "$ref": "#/definitions/spotify.ChartMeta" }, - "type": { - "example": "Podcast", + "region": { + "example": "us", "type": "string" }, - "uri": { - "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", + "regionName": { + "example": "United States", "type": "string" } }, "type": "object" }, - "spotify.ShowRecommendationsMeta": { + "spotify.CountryHubContentID": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", - "type": "string" - }, - "count": { - "example": 10, - "type": "integer" - }, - "fetchedAt": { - "example": "2026-05-13T20:41:13Z", - "type": "string" - }, - "operationName": { - "example": "internalLinkRecommenderShow", + "id": { + "example": "CHARTS", "type": "string" - } - }, - "type": "object" - }, - "spotify.ShowRecommendationsResponse": { - "properties": { - "meta": { - "$ref": "#/definitions/spotify.ShowRecommendationsMeta" - }, - "recommendations": { - "items": { - "$ref": "#/definitions/spotify.RecommendationSummary" - }, - "type": "array" }, - "uri": { - "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", + "title": { + "example": "Featured Charts", "type": "string" } }, "type": "object" }, - "spotify.TrackMeta": { + "spotify.CountryHubContentMeta": { "properties": { "appVersion": { "example": "1.2.90.403.gf901f20f", "type": "string" }, "fetchedAt": { - "example": "2026-05-13T20:41:10Z", + "example": "2026-05-13T20:41:13Z", "type": "string" }, + "itemCount": { + "example": 20, + "type": "integer" + }, "operationName": { - "example": "getTrack", + "example": "countryHubContent", "type": "string" + }, + "partialErrors": { + "description": "PartialErrors counts upstream GraphQL field errors tolerated alongside\nusable items. Zero on a fully clean response.", + "example": 1, + "type": "integer" } }, "type": "object" }, - "spotify.TrackRecommendedMeta": { + "spotify.CountryHubContentResponse": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", + "contentId": { + "example": "CHARTS", "type": "string" }, - "count": { - "example": 10, - "type": "integer" + "countryCode": { + "example": "US", + "type": "string" }, - "fetchedAt": { - "example": "2026-05-13T20:41:12Z", + "countryName": { + "example": "United States", "type": "string" }, - "operationName": { - "example": "internalLinkRecommenderTrack", + "hexColor": { + "example": "#1DB954", "type": "string" - } - }, - "type": "object" - }, - "spotify.TrackRecommendedResponse": { - "properties": { - "limit": { - "example": 10, - "type": "integer" + }, + "items": { + "items": { + "$ref": "#/definitions/spotify.CountryHubItem" + }, + "type": "array" }, "meta": { - "$ref": "#/definitions/spotify.TrackRecommendedMeta" + "$ref": "#/definitions/spotify.CountryHubContentMeta" }, - "recommendations": { + "supportedContentIds": { "items": { - "$ref": "#/definitions/spotify.RecommendationSummary" + "$ref": "#/definitions/spotify.CountryHubContentID" }, "type": "array" }, - "uri": { - "example": "spotify:track:4vGg44GdCw3X8i8r01XJH0", + "supportedCountries": { + "items": { + "$ref": "#/definitions/spotify.PopularCountry" + }, + "type": "array" + }, + "title": { + "example": "Featured Charts", "type": "string" } }, "type": "object" }, - "spotify.TrackResponse": { + "spotify.CountryHubItem": { "properties": { "album": { "$ref": "#/definitions/spotify.SearchResultSummary" @@ -31927,24 +32654,25 @@ }, "type": "array" }, - "discNumber": { - "example": 1, - "type": "integer" + "attributes": { + "additionalProperties": { + "type": "string" + }, + "example": { + "{\"chart\"": "\"top-50\"}" + }, + "type": "object" }, - "durationMs": { - "example": 234083, - "type": "integer" + "description": { + "example": "Your daily update of the most played tracks right now.", + "type": "string" }, "externalUrl": { - "example": "https://open.spotify.com/track/4vGg44GdCw3X8i8r01XJH0", - "type": "string" - }, - "id": { - "example": "4vGg44GdCw3X8i8r01XJH0", + "example": "https://open.spotify.com/playlist/37i9dQZEVXbLRQDuF5jeBpM", "type": "string" }, "imageUrl": { - "example": "https://i.scdn.co/image/ab67616d0000b273f377730d2a9c2e432139ac79", + "example": "https://charts-images.scdn.co/assets/locale_en/regional/daily/region_us_default.jpg", "type": "string" }, "images": { @@ -31953,158 +32681,184 @@ }, "type": "array" }, - "isExplicit": { - "example": false, - "type": "boolean" - }, - "isPlayable": { - "example": true, - "type": "boolean" - }, - "meta": { - "$ref": "#/definitions/spotify.TrackMeta" + "owner": { + "$ref": "#/definitions/spotify.SearchResultSummary" }, - "name": { - "example": "Example Track", + "subtitle": { + "example": "Spotify", "type": "string" }, - "playabilityReason": { - "example": "PLAYABLE", + "title": { + "example": "Top 50 - USA", "type": "string" }, - "playcount": { - "example": "13129249", + "type": { + "example": "Playlist", "type": "string" }, - "previewAudioUrl": { - "example": "https://p.scdn.co/mp3-preview/example", + "uri": { + "example": "spotify:playlist:37i9dQZEVXbLRQDuF5jeBpM", + "type": "string" + } + }, + "type": "object" + }, + "spotify.CountryHubMeta": { + "properties": { + "appVersion": { + "example": "1.2.90.403.gf901f20f", "type": "string" }, - "previewAudioUrls": { - "example": [ - "https://p.scdn.co/mp3-preview/example" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "shareUrl": { - "example": "https://open.spotify.com/track/4vGg44GdCw3X8i8r01XJH0", + "fetchedAt": { + "example": "2026-05-13T20:41:13Z", "type": "string" }, - "trackNumber": { - "example": 7, + "itemCount": { + "example": 20, "type": "integer" }, - "type": { - "example": "Track", + "operationName": { + "example": "countryHubsPage", "type": "string" }, - "unplayabilityReasons": { - "example": [ - "not_available_in_region" - ], - "items": { - "type": "string" - }, - "type": "array" + "partialErrors": { + "description": "PartialErrors counts upstream GraphQL field errors that were tolerated\nbecause usable shelves were still returned (e.g. one broken shelf among\nseveral). Zero on a fully clean response.", + "example": 1, + "type": "integer" }, - "uri": { - "example": "spotify:track:4vGg44GdCw3X8i8r01XJH0", - "type": "string" + "sectionCount": { + "example": 5, + "type": "integer" } }, "type": "object" }, - "spotify.TrackSimilarAlbumsMeta": { + "spotify.CountryHubResponse": { "properties": { - "appVersion": { - "example": "1.2.90.403.gf901f20f", + "countryCode": { + "example": "US", "type": "string" }, - "count": { - "example": 10, - "type": "integer" - }, - "fetchedAt": { - "example": "2026-05-13T20:41:12Z", + "countryName": { + "example": "United States", "type": "string" }, - "operationName": { - "example": "similarAlbumsBasedOnThisTrack", + "hexColor": { + "example": "#1DB954", "type": "string" + }, + "meta": { + "$ref": "#/definitions/spotify.CountryHubMeta" + }, + "sections": { + "items": { + "$ref": "#/definitions/spotify.CountryHubSection" + }, + "type": "array" + }, + "supportedCountries": { + "items": { + "$ref": "#/definitions/spotify.PopularCountry" + }, + "type": "array" } }, "type": "object" }, - "spotify.TrackSimilarAlbumsResponse": { + "spotify.CountryHubSection": { "properties": { - "albums": { + "contentId": { + "example": "CHARTS", + "type": "string" + }, + "items": { "items": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "$ref": "#/definitions/spotify.CountryHubItem" }, "type": "array" }, - "albumsOnly": { - "example": true, - "type": "boolean" + "title": { + "example": "Featured Charts", + "type": "string" }, - "limit": { - "example": 10, + "totalCount": { + "example": 20, "type": "integer" + } + }, + "type": "object" + }, + "spotify.HomeMeta": { + "properties": { + "appVersion": { + "example": "1.2.90.403.gf901f20f", + "type": "string" }, - "meta": { - "$ref": "#/definitions/spotify.TrackSimilarAlbumsMeta" + "fetchedAt": { + "example": "2026-05-13T20:41:12Z", + "type": "string" }, - "uri": { - "example": "spotify:track:4vGg44GdCw3X8i8r01XJH0", + "operationName": { + "example": "home", "type": "string" + }, + "sectionCount": { + "example": 8, + "type": "integer" } }, "type": "object" }, - "spotify.UserProfileFollowersResponse": { + "spotify.HomeResponse": { "properties": { - "limit": { - "example": 50, - "type": "integer" + "facet": { + "example": "music", + "type": "string" }, - "meta": { - "$ref": "#/definitions/spotify.UserProfileMeta" + "greeting": { + "example": "Good afternoon", + "type": "string" }, - "offset": { - "example": 0, - "type": "integer" + "meta": { + "$ref": "#/definitions/spotify.HomeMeta" }, - "profiles": { + "sections": { "items": { - "$ref": "#/definitions/spotify.UserProfileSummary" + "$ref": "#/definitions/spotify.BrowsePageSection" }, "type": "array" }, - "total": { - "example": 998, + "timeZone": { + "example": "UTC", + "type": "string" + } + }, + "type": "object" + }, + "spotify.ImageAsset": { + "properties": { + "height": { + "example": 640, "type": "integer" }, - "uri": { - "example": "spotify:user:spotify", + "url": { + "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" }, - "username": { - "example": "spotify", - "type": "string" + "width": { + "example": 640, + "type": "integer" } }, "type": "object" }, - "spotify.UserProfileMeta": { + "spotify.PlaylistMeta": { "properties": { "appVersion": { "example": "1.2.90.403.gf901f20f", "type": "string" }, - "artistCount": { + "episodeCount": { "example": 0, "type": "integer" }, @@ -32112,2147 +32866,2612 @@ "example": "2026-05-13T20:41:12Z", "type": "string" }, + "itemCount": { + "example": 20, + "type": "integer" + }, "operationName": { - "example": "userProfileView", + "example": "fetchPlaylist", "type": "string" }, - "playlistCount": { - "example": 10, - "type": "integer" - }, - "profileCount": { - "example": 50, + "trackCount": { + "example": 20, "type": "integer" } }, "type": "object" }, - "spotify.UserProfilePlaylist": { + "spotify.PlaylistResponse": { "properties": { + "collaborative": { + "example": false, + "type": "boolean" + }, + "description": { + "example": "Your daily update of the most played tracks right now.", + "type": "string" + }, + "episodes": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, "externalUrl": { - "example": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M", + "example": "https://open.spotify.com/playlist/37i9dQZEVXbLwpL8TjsxOG", "type": "string" }, - "followersCount": { - "example": 34324513, + "followers": { + "example": 17500000, "type": "integer" }, "id": { - "example": "37i9dQZF1DXcBWIGoYBM5M", + "example": "37i9dQZEVXbLwpL8TjsxOG", "type": "string" }, "imageUrl": { - "example": "https://i.scdn.co/image/ab67706f0000000273f7bb6e77ec5e23d7840ae5", + "example": "https://charts-images.scdn.co/assets/locale_en/regional/daily/region_global_default.jpg", "type": "string" }, - "isFollowing": { - "example": false, - "type": "boolean" + "images": { + "items": { + "$ref": "#/definitions/spotify.ImageAsset" + }, + "type": "array" + }, + "items": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "limit": { + "example": 20, + "type": "integer" + }, + "meta": { + "$ref": "#/definitions/spotify.PlaylistMeta" }, "name": { - "example": "Today’s Top Hits", + "example": "Top 50 - Global", "type": "string" }, - "ownerName": { - "example": "Spotify", - "type": "string" + "offset": { + "example": 0, + "type": "integer" }, - "ownerUri": { - "example": "spotify:user:spotify", - "type": "string" + "owner": { + "$ref": "#/definitions/spotify.SearchResultSummary" }, - "ownerUrl": { - "example": "https://open.spotify.com/user/spotify", + "shareUrl": { + "example": "https://open.spotify.com/playlist/37i9dQZEVXbLwpL8TjsxOG", "type": "string" }, - "ownerUsername": { - "example": "spotify", + "total": { + "example": 50, + "type": "integer" + }, + "tracks": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "type": { + "example": "Playlist", "type": "string" }, "uri": { - "example": "spotify:playlist:37i9dQZF1DXcBWIGoYBM5M", + "example": "spotify:playlist:37i9dQZEVXbLwpL8TjsxOG", "type": "string" } }, "type": "object" }, - "spotify.UserProfilePlaylistsResponse": { + "spotify.PodcastEpisodeMeta": { "properties": { - "limit": { - "example": 20, - "type": "integer" - }, - "meta": { - "$ref": "#/definitions/spotify.UserProfileMeta" - }, - "offset": { - "example": 0, - "type": "integer" - }, - "publicPlaylists": { - "items": { - "$ref": "#/definitions/spotify.UserProfilePlaylist" - }, - "type": "array" + "appVersion": { + "example": "1.2.90.403.gf901f20f", + "type": "string" }, - "totalPublicPlaylistsCount": { - "example": 1519, - "type": "integer" + "fetchedAt": { + "example": "2026-05-13T20:41:13Z", + "type": "string" }, - "uri": { - "example": "spotify:user:spotify", + "operationName": { + "example": "getEpisodeOrChapter", "type": "string" }, - "username": { - "example": "spotify", + "sourceUrl": { + "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", "type": "string" } }, "type": "object" }, - "spotify.UserProfileResponse": { + "spotify.PodcastEpisodeResponse": { "properties": { - "allowFollows": { - "example": true, - "type": "boolean" + "description": { + "example": "A new adventure from the Stinky Dragon crew.", + "type": "string" }, - "color": { - "example": 16085920, + "durationMs": { + "example": 3600000, "type": "integer" }, "externalUrl": { - "example": "https://open.spotify.com/user/spotify", + "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, - "followersCount": { - "example": 12162371, - "type": "integer" - }, - "followingCount": { - "example": 327, - "type": "integer" - }, - "hasSpotifyImage": { - "example": true, - "type": "boolean" + "htmlDescription": { + "example": "A new adventure from the Stinky Dragon crew.", + "type": "string" }, - "hasSpotifyName": { - "example": true, - "type": "boolean" + "id": { + "example": "2C2Y5kNq7qCVOVhbA0G3os", + "type": "string" }, "imageUrl": { - "example": "https://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5", + "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" }, - "isCurrentUser": { + "images": { + "items": { + "$ref": "#/definitions/spotify.ImageAsset" + }, + "type": "array" + }, + "isExplicit": { "example": false, "type": "boolean" }, - "isVerified": { + "isPaywallContent": { + "example": false, + "type": "boolean" + }, + "isPlayable": { "example": true, "type": "boolean" }, + "mediaTypes": { + "example": [ + "AUDIO" + ], + "items": { + "type": "string" + }, + "type": "array" + }, "meta": { - "$ref": "#/definitions/spotify.UserProfileMeta" + "$ref": "#/definitions/spotify.PodcastEpisodeMeta" }, "name": { - "example": "Spotify", + "example": "Tales from the Stinky Dragon", "type": "string" }, - "publicPlaylists": { - "items": { - "$ref": "#/definitions/spotify.UserProfilePlaylist" - }, - "type": "array" + "playabilityReason": { + "example": "PLAYABLE", + "type": "string" }, - "recentlyPlayedArtists": { + "previewAudioUrl": { + "example": "https://p.scdn.co/mp3-preview/example", + "type": "string" + }, + "previewAudioUrls": { + "example": [ + "https://p.scdn.co/mp3-preview/example" + ], "items": { - "$ref": "#/definitions/spotify.UserProfileSummary" + "type": "string" }, "type": "array" }, - "showFollows": { - "example": true, - "type": "boolean" - }, - "topArtists": { - "$ref": "#/definitions/spotify.UserProfileTopArtists" - }, - "totalPublicPlaylistsCount": { - "example": 1519, - "type": "integer" + "previewVideoUrl": { + "example": "https://p.scdn.co/video-preview/example", + "type": "string" }, - "uri": { - "example": "spotify:user:spotify", + "releaseDate": { + "example": "2026-05-13", "type": "string" }, - "username": { - "example": "spotify", + "releaseDatePrecision": { + "example": "DAY", "type": "string" - } - }, - "type": "object" - }, - "spotify.UserProfileSummary": { - "properties": { - "color": { - "example": 16085920, - "type": "integer" }, - "externalUrl": { - "example": "https://open.spotify.com/user/example", + "shareUrl": { + "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, - "followersCount": { - "example": 1000, + "show": { + "$ref": "#/definitions/spotify.PodcastEpisodeShowSummary" + }, + "transcriptCount": { + "example": 1, "type": "integer" }, - "imageUrl": { - "example": "https://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5", + "type": { + "example": "Episode", "type": "string" }, - "isFollowing": { - "example": false, - "type": "boolean" - }, - "name": { - "example": "Example", - "type": "string" + "unplayabilityReasons": { + "example": [ + "not_available_in_region" + ], + "items": { + "type": "string" + }, + "type": "array" }, "uri": { - "example": "spotify:user:example", + "example": "spotify:episode:2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, - "username": { - "example": "example", + "videoThumbnailUrl": { + "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" + }, + "videoThumbnails": { + "items": { + "$ref": "#/definitions/spotify.ImageAsset" + }, + "type": "array" } }, "type": "object" }, - "spotify.UserProfileTopArtists": { + "spotify.PodcastEpisodeShowSummary": { "properties": { - "imageUrl": { - "example": "https://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5", + "description": { + "example": "Tales from the Stinky Dragon is an actual-play comedy podcast.", "type": "string" }, - "subtitle": { - "example": "Only visible to the user", + "externalUrl": { + "example": "https://open.spotify.com/show/1QQJ7FElLE0K6CIfZNCxU4", "type": "string" }, - "title": { - "example": "Top artists this month", + "id": { + "example": "1QQJ7FElLE0K6CIfZNCxU4", "type": "string" }, - "topArtistsPageUri": { - "example": "spotify:user:spotify:top:artists", + "imageUrl": { + "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" - } - }, - "type": "object" - }, - "spotify.albumResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.AlbumResponse" + "images": { + "items": { + "$ref": "#/definitions/spotify.ImageAsset" + }, + "type": "array" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.artistAlbumsResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "mediaType": { + "example": "MIXED", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.ArtistAlbumsResponse" + "name": { + "example": "Tales from the Stinky Dragon", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.artistCollectionResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "publisher": { + "example": "Stinky Dragon", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.ArtistCollectionResponse" + "showTypes": { + "example": [ + "PODCAST" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + "type": { + "example": "Podcast", + "type": "string" + }, + "uri": { + "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", + "type": "string" } }, "type": "object" }, - "spotify.artistResponseDoc": { + "spotify.PodcastEpisodeSummary": { "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "description": { + "example": "A new adventure from the Stinky Dragon crew.", + "type": "string" + }, + "durationMs": { + "example": 3600000, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.ArtistResponse" + "externalUrl": { + "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.audiobookChaptersResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "imageUrl": { + "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.AudiobookChaptersResponse" + "images": { + "items": { + "$ref": "#/definitions/spotify.ImageAsset" + }, + "type": "array" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.audiobookResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "isExplicit": { + "example": false, + "type": "boolean" }, - "data": { - "$ref": "#/definitions/spotify.AudiobookResponse" + "isPlayable": { + "example": true, + "type": "boolean" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.browsePageResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "name": { + "example": "Tales from the Stinky Dragon", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.BrowsePageResponse" + "releaseDate": { + "example": "2026-05-13", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + "type": { + "example": "Episode", + "type": "string" + }, + "uri": { + "example": "spotify:episode:2C2Y5kNq7qCVOVhbA0G3os", + "type": "string" } }, "type": "object" }, - "spotify.browseSectionResponseDoc": { + "spotify.PodcastEpisodesMeta": { "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "appVersion": { + "example": "1.2.90.403.gf901f20f", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.BrowseSectionResponse" + "fetchedAt": { + "example": "2026-05-13T20:41:13Z", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + "operationName": { + "example": "queryPodcastEpisodes", + "type": "string" } }, "type": "object" }, - "spotify.chartsResponseDoc": { + "spotify.PodcastEpisodesResponse": { "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "episodes": { + "items": { + "$ref": "#/definitions/spotify.PodcastEpisodeSummary" + }, + "type": "array" + }, + "limit": { + "example": 20, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.ChartResponse" + "meta": { + "$ref": "#/definitions/spotify.PodcastEpisodesMeta" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.countryHubContentResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "offset": { + "example": 0, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.CountryHubContentResponse" + "total": { + "example": 202, + "type": "integer" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + "uri": { + "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", + "type": "string" } }, "type": "object" }, - "spotify.countryHubResponseDoc": { + "spotify.PopularCountry": { "properties": { "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" - }, - "data": { - "$ref": "#/definitions/spotify.CountryHubResponse" + "example": "us", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + "name": { + "example": "United States", + "type": "string" } }, "type": "object" }, - "spotify.episodeResponseDoc": { + "spotify.RecommendationSummary": { "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "description": { + "example": "The official podcast of comedian Joe Rogan.", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.PodcastEpisodeResponse" + "externalUrl": { + "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.homeResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "imageUrl": { + "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.HomeResponse" + "images": { + "items": { + "$ref": "#/definitions/spotify.ImageAsset" + }, + "type": "array" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.playlistResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "publisher": { + "example": "Joe Rogan", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.PlaylistResponse" + "subtitle": { + "example": "Joe Rogan", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.searchCatalogResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "title": { + "example": "The Joe Rogan Experience", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.SearchResponse" + "type": { + "example": "Podcast", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + "uri": { + "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", + "type": "string" } }, "type": "object" }, - "spotify.searchResponseDoc": { + "spotify.SearchMeta": { "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "albumCount": { + "example": 3, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.SearchPodcastsResponse" + "appVersion": { + "example": "1.2.90.403.gf901f20f", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.showEpisodesResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "artistCount": { + "example": 5, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.PodcastEpisodesResponse" + "audiobookCount": { + "example": 2, + "type": "integer" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.showRecommendationsResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "episodeCount": { + "example": 2, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.ShowRecommendationsResponse" + "fetchedAt": { + "example": "2026-05-13T20:41:12Z", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.showResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "operationName": { + "example": "searchDesktop", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.ShowMetadataResponse" + "playlistCount": { + "example": 2, + "type": "integer" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.trackRecommendedResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "resultCount": { + "example": 22, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.TrackRecommendedResponse" + "showCount": { + "example": 4, + "type": "integer" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.trackResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "topCount": { + "example": 3, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.TrackResponse" + "trackCount": { + "example": 2, + "type": "integer" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + "userCount": { + "example": 2, + "type": "integer" } }, "type": "object" }, - "spotify.trackSimilarAlbumsResponseDoc": { + "spotify.SearchPodcastsMeta": { "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "appVersion": { + "example": "1.2.90.403.gf901f20f", + "type": "string" + }, + "episodeCount": { + "example": 2, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.TrackSimilarAlbumsResponse" + "fetchedAt": { + "example": "2026-05-13T20:41:12Z", + "type": "string" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.userProfileFollowersResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", - "type": "integer" + "operationName": { + "example": "searchPodcasts", + "type": "string" }, - "data": { - "$ref": "#/definitions/spotify.UserProfileFollowersResponse" + "showCount": { + "example": 4, + "type": "integer" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + "topCount": { + "example": 3, + "type": "integer" } }, "type": "object" }, - "spotify.userProfilePlaylistsResponseDoc": { + "spotify.SearchPodcastsResponse": { "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "episodes": { + "items": { + "$ref": "#/definitions/spotify.PodcastEpisodeSummary" + }, + "type": "array" + }, + "limit": { + "example": 20, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.UserProfilePlaylistsResponse" + "meta": { + "$ref": "#/definitions/spotify.SearchPodcastsMeta" }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "spotify.userProfileResponseDoc": { - "properties": { - "code": { - "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "offset": { + "example": 0, "type": "integer" }, - "data": { - "$ref": "#/definitions/spotify.UserProfileResponse" - }, - "msg": { - "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" - } - }, - "type": "object" - }, - "tiktok.Category": { - "properties": { - "name": { + "searchTerm": { + "example": "hello", "type": "string" }, - "type": { - "type": "string" + "shows": { + "items": { + "$ref": "#/definitions/spotify.RecommendationSummary" + }, + "type": "array" + }, + "topResults": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" } }, "type": "object" }, - "tiktok.ChallengeDetailResp": { + "spotify.SearchResponse": { "properties": { - "challengeInfo": {}, - "extra": { - "properties": { - "fatal_item_ids": { - "items": {}, - "type": "array" - }, - "logid": { - "type": "string" - }, - "now": { - "type": "integer" - } + "albums": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" }, - "type": "object" + "type": "array" }, - "log_pb": { - "properties": { - "impr_id": { - "type": "string" - } + "artists": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" }, - "type": "object" + "type": "array" }, - "shareMeta": { - "properties": { - "desc": { - "type": "string" - }, - "title": { - "type": "string" - } + "audiobooks": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" }, - "type": "object" + "type": "array" }, - "statusCode": { + "episodes": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "limit": { + "example": 20, "type": "integer" }, - "status_code": { + "meta": { + "$ref": "#/definitions/spotify.SearchMeta" + }, + "offset": { + "example": 0, "type": "integer" }, - "status_msg": { + "playlists": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "results": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "searchTerm": { + "example": "hello", "type": "string" + }, + "shows": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "topResults": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "tracks": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" + }, + "users": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "type": "array" } }, "type": "object" }, - "tiktok.ChallengeListResp": { + "spotify.SearchResultSummary": { "properties": { - "cursor": { + "description": { + "example": "The official podcast of comedian Joe Rogan.", "type": "string" }, - "extra": { - "properties": { - "fatal_item_ids": { - "items": {}, - "type": "array" - }, - "logid": { - "type": "string" - }, - "now": { - "type": "integer" - } - }, - "type": "object" + "externalUrl": { + "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", + "type": "string" }, - "hasMore": { - "type": "boolean" + "imageUrl": { + "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", + "type": "string" }, - "itemList": { - "items": {}, + "images": { + "items": { + "$ref": "#/definitions/spotify.ImageAsset" + }, "type": "array" }, - "log_pb": { - "properties": { - "impr_id": { - "type": "string" - } - }, - "type": "object" + "publisher": { + "example": "Joe Rogan", + "type": "string" }, - "statusCode": { - "type": "integer" + "subtitle": { + "example": "Joe Rogan", + "type": "string" }, - "status_code": { - "type": "integer" + "title": { + "example": "The Joe Rogan Experience", + "type": "string" }, - "status_msg": { + "type": { + "example": "Podcast", + "type": "string" + }, + "uri": { + "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", "type": "string" } }, "type": "object" }, - "tiktok.CommentResp": { + "spotify.ShowMetadataMeta": { "properties": { - "alias_comment_deleted": { - "type": "boolean" + "appVersion": { + "example": "1.2.90.403.gf901f20f", + "type": "string" }, - "comments": { - "items": {}, - "type": "array" + "fetchedAt": { + "example": "2026-05-13T20:41:13Z", + "type": "string" }, - "cursor": { - "type": "integer" + "operationName": { + "example": "queryShowMetadataV2", + "type": "string" + } + }, + "type": "object" + }, + "spotify.ShowMetadataResponse": { + "properties": { + "description": { + "example": "Tales from the Stinky Dragon is an actual-play comedy podcast.", + "type": "string" }, - "extra": { - "properties": { - "api_debug_info": {}, - "fatal_item_ids": {}, - "now": { - "type": "integer" - } + "externalUrl": { + "example": "https://open.spotify.com/show/1QQJ7FElLE0K6CIfZNCxU4", + "type": "string" + }, + "imageUrl": { + "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", + "type": "string" + }, + "images": { + "items": { + "$ref": "#/definitions/spotify.ImageAsset" }, - "type": "object" + "type": "array" }, - "has_filtered_comments": { - "type": "integer" + "isExplicit": { + "example": false, + "type": "boolean" }, - "has_more": { - "type": "integer" + "mediaType": { + "example": "MIXED", + "type": "string" }, - "log_pb": { - "properties": { - "impr_id": { - "type": "string" - } - }, - "type": "object" + "meta": { + "$ref": "#/definitions/spotify.ShowMetadataMeta" }, - "reply_style": { - "type": "integer" + "name": { + "example": "Tales from the Stinky Dragon", + "type": "string" }, - "status_code": { + "publisher": { + "example": "Stinky Dragon", + "type": "string" + }, + "totalEpisodes": { + "example": 202, "type": "integer" }, - "status_msg": { + "type": { + "example": "Podcast", "type": "string" }, - "top_gifts": {}, - "total": { - "type": "integer" + "uri": { + "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", + "type": "string" } }, "type": "object" }, - "tiktok.ExploreResp": { + "spotify.ShowRecommendationsMeta": { "properties": { - "cursor": { + "appVersion": { + "example": "1.2.90.403.gf901f20f", "type": "string" }, - "extra": { - "properties": { - "fatal_item_ids": { - "items": {}, - "type": "array" - }, - "logid": { - "type": "string" - }, - "now": { - "type": "integer" - } - }, - "type": "object" + "count": { + "example": 10, + "type": "integer" }, - "hasMore": { - "type": "boolean" + "fetchedAt": { + "example": "2026-05-13T20:41:13Z", + "type": "string" }, - "itemList": { - "items": {}, - "type": "array" + "operationName": { + "example": "internalLinkRecommenderShow", + "type": "string" + } + }, + "type": "object" + }, + "spotify.ShowRecommendationsResponse": { + "properties": { + "meta": { + "$ref": "#/definitions/spotify.ShowRecommendationsMeta" }, - "log_pb": { - "properties": { - "impr_id": { - "type": "string" - } + "recommendations": { + "items": { + "$ref": "#/definitions/spotify.RecommendationSummary" }, - "type": "object" - }, - "statusCode": { - "type": "integer" - }, - "status_code": { - "type": "integer" + "type": "array" }, - "status_msg": { + "uri": { + "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", "type": "string" } }, "type": "object" }, - "tiktok.Profile": { + "spotify.TrackMeta": { "properties": { - "stats": { - "$ref": "#/definitions/tiktok.ProfileStats" + "appVersion": { + "example": "1.2.90.403.gf901f20f", + "type": "string" }, - "user": { - "$ref": "#/definitions/tiktok.User" + "fetchedAt": { + "example": "2026-05-13T20:41:10Z", + "type": "string" + }, + "operationName": { + "example": "getTrack", + "type": "string" } }, "type": "object" }, - "tiktok.ProfileStats": { + "spotify.TrackRecommendedMeta": { "properties": { - "diggCount": { - "example": 0, - "type": "integer" + "appVersion": { + "example": "1.2.90.403.gf901f20f", + "type": "string" }, - "followerCount": { - "example": 458800, + "count": { + "example": 10, "type": "integer" }, - "followingCount": { - "example": 1, - "type": "integer" + "fetchedAt": { + "example": "2026-05-13T20:41:12Z", + "type": "string" }, - "friendCount": { - "example": 1, + "operationName": { + "example": "internalLinkRecommenderTrack", + "type": "string" + } + }, + "type": "object" + }, + "spotify.TrackRecommendedResponse": { + "properties": { + "limit": { + "example": 10, "type": "integer" }, - "heart": { - "example": 800300, - "type": "integer" + "meta": { + "$ref": "#/definitions/spotify.TrackRecommendedMeta" }, - "heartCount": { - "example": 800300, - "type": "integer" + "recommendations": { + "items": { + "$ref": "#/definitions/spotify.RecommendationSummary" + }, + "type": "array" }, - "videoCount": { - "example": 59, - "type": "integer" + "uri": { + "example": "spotify:track:4vGg44GdCw3X8i8r01XJH0", + "type": "string" } }, "type": "object" }, - "tiktok.SearchHashtagResp": { + "spotify.TrackResponse": { "properties": { - "challenge_list": { - "items": {}, + "album": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, + "artists": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" + }, "type": "array" }, - "cursor": { + "discNumber": { + "example": 1, "type": "integer" }, - "extra": {}, - "has_more": { + "durationMs": { + "example": 234083, "type": "integer" }, - "input_keyword": { + "externalUrl": { + "example": "https://open.spotify.com/track/4vGg44GdCw3X8i8r01XJH0", "type": "string" }, - "log_pb": { - "properties": { - "impr_id": { - "type": "string" - } - }, - "type": "object" - }, - "music_list": {}, - "qc": { + "id": { + "example": "4vGg44GdCw3X8i8r01XJH0", "type": "string" }, - "rid": { + "imageUrl": { + "example": "https://i.scdn.co/image/ab67616d0000b273f377730d2a9c2e432139ac79", "type": "string" }, - "status_code": { - "type": "integer" - }, - "status_msg": { - "type": "string" + "images": { + "items": { + "$ref": "#/definitions/spotify.ImageAsset" + }, + "type": "array" }, - "type": { - "type": "integer" + "isExplicit": { + "example": false, + "type": "boolean" }, - "user_list": {} - }, - "type": "object" - }, - "tiktok.SearchResp": { - "properties": { - "cursor": { - "type": "integer" + "isPlayable": { + "example": true, + "type": "boolean" }, - "data": { - "items": {}, - "type": "array" + "meta": { + "$ref": "#/definitions/spotify.TrackMeta" }, - "extra": {}, - "feedback_type": { + "name": { + "example": "Example Track", "type": "string" }, - "has_more": { - "type": "integer" + "playabilityReason": { + "example": "PLAYABLE", + "type": "string" }, - "input_keyword": { + "playcount": { + "example": "13129249", "type": "string" }, - "itemList": { - "items": {}, - "type": "array" + "previewAudioUrl": { + "example": "https://p.scdn.co/mp3-preview/example", + "type": "string" }, - "log_pb": { - "properties": { - "impr_id": { - "type": "string" - } + "previewAudioUrls": { + "example": [ + "https://p.scdn.co/mp3-preview/example" + ], + "items": { + "type": "string" }, - "type": "object" - }, - "qc": { - "type": "string" + "type": "array" }, - "rid": { + "shareUrl": { + "example": "https://open.spotify.com/track/4vGg44GdCw3X8i8r01XJH0", "type": "string" }, - "status_code": { + "trackNumber": { + "example": 7, "type": "integer" }, - "status_msg": { + "type": { + "example": "Track", "type": "string" }, - "type": { - "type": "integer" + "unplayabilityReasons": { + "example": [ + "not_available_in_region" + ], + "items": { + "type": "string" + }, + "type": "array" + }, + "uri": { + "example": "spotify:track:4vGg44GdCw3X8i8r01XJH0", + "type": "string" } }, "type": "object" }, - "tiktok.SearchUserResp": { + "spotify.TrackSimilarAlbumsMeta": { "properties": { - "challenge_list": {}, - "cursor": { - "type": "integer" - }, - "extra": {}, - "feedback_type": { + "appVersion": { + "example": "1.2.90.403.gf901f20f", "type": "string" }, - "global_doodle_config": {}, - "has_more": { + "count": { + "example": 10, "type": "integer" }, - "input_keyword": { + "fetchedAt": { + "example": "2026-05-13T20:41:12Z", "type": "string" }, - "log_pb": { - "properties": { - "impr_id": { - "type": "string" - } + "operationName": { + "example": "similarAlbumsBasedOnThisTrack", + "type": "string" + } + }, + "type": "object" + }, + "spotify.TrackSimilarAlbumsResponse": { + "properties": { + "albums": { + "items": { + "$ref": "#/definitions/spotify.SearchResultSummary" }, - "type": "object" + "type": "array" }, - "music_list": {}, - "qc": { - "type": "string" + "albumsOnly": { + "example": true, + "type": "boolean" }, - "rid": { - "type": "string" - }, - "status_code": { + "limit": { + "example": 10, "type": "integer" }, - "status_msg": { + "meta": { + "$ref": "#/definitions/spotify.TrackSimilarAlbumsMeta" + }, + "uri": { + "example": "spotify:track:4vGg44GdCw3X8i8r01XJH0", "type": "string" + } + }, + "type": "object" + }, + "spotify.UserProfileFollowersResponse": { + "properties": { + "limit": { + "example": 50, + "type": "integer" }, - "type": { + "meta": { + "$ref": "#/definitions/spotify.UserProfileMeta" + }, + "offset": { + "example": 0, "type": "integer" }, - "user_list": { - "items": {}, + "profiles": { + "items": { + "$ref": "#/definitions/spotify.UserProfileSummary" + }, "type": "array" + }, + "total": { + "example": 998, + "type": "integer" + }, + "uri": { + "example": "spotify:user:spotify", + "type": "string" + }, + "username": { + "example": "spotify", + "type": "string" } }, "type": "object" }, - "tiktok.TrendingResp": { + "spotify.UserProfileMeta": { "properties": { - "cursor": { + "appVersion": { + "example": "1.2.90.403.gf901f20f", "type": "string" }, - "extra": { - "properties": { - "fatal_item_ids": { - "items": {}, - "type": "array" - }, - "logid": { - "type": "string" - }, - "now": { - "type": "integer" - } - }, - "type": "object" - }, - "hasMore": { - "type": "boolean" + "artistCount": { + "example": 0, + "type": "integer" }, - "itemList": { - "items": {}, - "type": "array" + "fetchedAt": { + "example": "2026-05-13T20:41:12Z", + "type": "string" }, - "log_pb": { - "properties": { - "impr_id": { - "type": "string" - } - }, - "type": "object" + "operationName": { + "example": "userProfileView", + "type": "string" }, - "statusCode": { + "playlistCount": { + "example": 10, "type": "integer" }, - "statusMsg": { + "profileCount": { + "example": 50, + "type": "integer" + } + }, + "type": "object" + }, + "spotify.UserProfilePlaylist": { + "properties": { + "externalUrl": { + "example": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M", "type": "string" }, - "status_code": { + "followersCount": { + "example": 34324513, "type": "integer" }, - "status_msg": { + "id": { + "example": "37i9dQZF1DXcBWIGoYBM5M", "type": "string" }, - "trendingTopics": { - "items": {}, - "type": "array" + "imageUrl": { + "example": "https://i.scdn.co/image/ab67706f0000000273f7bb6e77ec5e23d7840ae5", + "type": "string" + }, + "isFollowing": { + "example": false, + "type": "boolean" + }, + "name": { + "example": "Today’s Top Hits", + "type": "string" + }, + "ownerName": { + "example": "Spotify", + "type": "string" + }, + "ownerUri": { + "example": "spotify:user:spotify", + "type": "string" + }, + "ownerUrl": { + "example": "https://open.spotify.com/user/spotify", + "type": "string" + }, + "ownerUsername": { + "example": "spotify", + "type": "string" + }, + "uri": { + "example": "spotify:playlist:37i9dQZF1DXcBWIGoYBM5M", + "type": "string" } }, "type": "object" }, - "tiktok.User": { + "spotify.UserProfilePlaylistsResponse": { "properties": { - "avatarLarger": { - "example": "https://p16-pu-sign-useast8.tiktokcdn-us.com/tos-useast5-avt-0068-tx/fb1ed871dc01261013179da3fafcc1cd~c5_1080x1080.jpeg?lk3s=a5d48078&nonce=62362&refresh_token=e3e8e01eff1ea0116ae406af630dc407&x-expires=1734098400&x-signature=MXMzwWT8Tl1nxFZfYNQxOZM%2F%2Byo%3D&shp=a5d48078&shcp=81f88b70", - "type": "string" + "limit": { + "example": 20, + "type": "integer" }, - "bioLink": { - "properties": { - "link": { - "example": "www.openai.com/chatgpt", - "type": "string" - } - }, - "type": "object" + "meta": { + "$ref": "#/definitions/spotify.UserProfileMeta" }, - "commerceUserInfo": { - "properties": { - "category": { - "example": "Software & Apps", - "type": "string" - }, - "commerceUser": { - "example": true, - "type": "boolean" - } + "offset": { + "example": 0, + "type": "integer" + }, + "publicPlaylists": { + "items": { + "$ref": "#/definitions/spotify.UserProfilePlaylist" }, - "type": "object" + "type": "array" }, - "createTime": { - "example": 1689461786, + "totalPublicPlaylistsCount": { + "example": 1519, "type": "integer" }, - "id": { - "example": "7256182609359995947", + "uri": { + "example": "spotify:user:spotify", "type": "string" }, - "isOrganization": { - "example": 1, + "username": { + "example": "spotify", + "type": "string" + } + }, + "type": "object" + }, + "spotify.UserProfileResponse": { + "properties": { + "allowFollows": { + "example": true, + "type": "boolean" + }, + "color": { + "example": 16085920, "type": "integer" }, - "language": { - "example": "en", + "externalUrl": { + "example": "https://open.spotify.com/user/spotify", "type": "string" }, - "nickname": { - "example": "chatgpt", - "type": "string" + "followersCount": { + "example": 12162371, + "type": "integer" }, - "privateAccount": { - "example": false, + "followingCount": { + "example": 327, + "type": "integer" + }, + "hasSpotifyImage": { + "example": true, "type": "boolean" }, - "region": { - "example": "US", - "type": "string" + "hasSpotifyName": { + "example": true, + "type": "boolean" }, - "secUid": { - "example": "MS4wLjABAAAAT4vq3vsh9X-Vb_WtV6tz4QWTbKjliTKCiK5DqnJNtQEA2RUveHb7UdnL7xgPK2HB", + "imageUrl": { + "example": "https://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5", "type": "string" }, - "secret": { + "isCurrentUser": { "example": false, "type": "boolean" }, - "signature": { - "example": "What can I help with?", - "type": "string" - }, - "ttSeller": { - "example": false, + "isVerified": { + "example": true, "type": "boolean" }, - "uniqueId": { - "example": "uniqueId", + "meta": { + "$ref": "#/definitions/spotify.UserProfileMeta" + }, + "name": { + "example": "Spotify", "type": "string" }, - "verified": { + "publicPlaylists": { + "items": { + "$ref": "#/definitions/spotify.UserProfilePlaylist" + }, + "type": "array" + }, + "recentlyPlayedArtists": { + "items": { + "$ref": "#/definitions/spotify.UserProfileSummary" + }, + "type": "array" + }, + "showFollows": { "example": true, "type": "boolean" + }, + "topArtists": { + "$ref": "#/definitions/spotify.UserProfileTopArtists" + }, + "totalPublicPlaylistsCount": { + "example": 1519, + "type": "integer" + }, + "uri": { + "example": "spotify:user:spotify", + "type": "string" + }, + "username": { + "example": "spotify", + "type": "string" } }, "type": "object" }, - "tiktok.UserPostLinkResp": { + "spotify.UserProfileSummary": { "properties": { - "cursor": { + "color": { + "example": 16085920, + "type": "integer" + }, + "externalUrl": { + "example": "https://open.spotify.com/user/example", "type": "string" }, - "extra": { - "properties": { - "fatal_item_ids": { - "items": {}, - "type": "array" - }, - "logid": { - "type": "string" - }, - "now": { - "type": "integer" - } - }, - "type": "object" + "followersCount": { + "example": 1000, + "type": "integer" }, - "hasMore": { - "type": "boolean" + "imageUrl": { + "example": "https://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5", + "type": "string" }, - "itemList": { - "items": {}, - "type": "array" + "isFollowing": { + "example": false, + "type": "boolean" }, - "log_pb": { - "properties": { - "impr_id": { - "type": "string" - } - }, - "type": "object" + "name": { + "example": "Example", + "type": "string" }, - "status_code": { - "type": "integer" + "uri": { + "example": "spotify:user:example", + "type": "string" }, - "status_msg": { + "username": { + "example": "example", "type": "string" } }, "type": "object" }, - "tiktok.VideoDetailResp": { + "spotify.UserProfileTopArtists": { "properties": { - "extra": { - "properties": { - "fatal_item_ids": { - "items": {}, - "type": "array" - }, - "logid": { - "type": "string" - }, - "now": { - "type": "integer" - } - }, - "type": "object" - }, - "itemInfo": {}, - "log_pb": { - "properties": { - "impr_id": { - "type": "string" - } - }, - "type": "object" + "imageUrl": { + "example": "https://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5", + "type": "string" }, - "shareMeta": { - "properties": { - "desc": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "type": "object" + "subtitle": { + "example": "Only visible to the user", + "type": "string" }, - "status_code": { - "type": "integer" + "title": { + "example": "Top artists this month", + "type": "string" }, - "status_msg": { + "topArtistsPageUri": { + "example": "spotify:user:spotify:top:artists", "type": "string" } }, "type": "object" }, - "tiktok.categoryResponseDoc": { + "spotify.albumResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "items": { - "$ref": "#/definitions/tiktok.Category" - }, - "type": "array" + "$ref": "#/definitions/spotify.AlbumResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.challengeListResponseDoc": { + "spotify.artistAlbumsResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.ChallengeListResp" + "$ref": "#/definitions/spotify.ArtistAlbumsResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.challengeResponseDoc": { + "spotify.artistCollectionResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.ChallengeDetailResp" + "$ref": "#/definitions/spotify.ArtistCollectionResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.commentsResponseDoc": { + "spotify.artistResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.CommentResp" + "$ref": "#/definitions/spotify.ArtistResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.exploreResponseDoc": { + "spotify.audiobookChaptersResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.ExploreResp" + "$ref": "#/definitions/spotify.AudiobookChaptersResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.postResponseDoc": { + "spotify.audiobookResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.VideoDetailResp" + "$ref": "#/definitions/spotify.AudiobookResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.profilePostResponseDoc": { + "spotify.browsePageResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.UserPostLinkResp" + "$ref": "#/definitions/spotify.BrowsePageResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.profileResponseDoc": { + "spotify.browseSectionResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.Profile" + "$ref": "#/definitions/spotify.BrowseSectionResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.searchHashtagResponseDoc": { + "spotify.chartsResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.SearchHashtagResp" + "$ref": "#/definitions/spotify.ChartResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.searchResponseDoc": { + "spotify.countryHubContentResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.SearchResp" + "$ref": "#/definitions/spotify.CountryHubContentResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.searchUserResponseDoc": { + "spotify.countryHubResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.SearchUserResp" + "$ref": "#/definitions/spotify.CountryHubResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "tiktok.trendingResponseDoc": { + "spotify.episodeResponseDoc": { "properties": { "code": { - "example": 200, + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, "data": { - "$ref": "#/definitions/tiktok.TrendingResp" + "$ref": "#/definitions/spotify.PodcastEpisodeResponse" }, "msg": { - "example": "OK", - "type": "string" + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "trends.ExploreQueriesResponse": { + "spotify.homeResponseDoc": { "properties": { - "category": { - "example": 0, + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, - "geo": { - "example": "US", - "type": "string" - }, - "hl": { - "example": "en-US", - "type": "string" - }, - "keywords": { - "items": { - "type": "string" - }, - "type": "array" + "data": { + "$ref": "#/definitions/spotify.HomeResponse" }, - "property": { - "type": "string" + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "spotify.playlistResponseDoc": { + "properties": { + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "type": "integer" }, - "queries": { - "items": { - "$ref": "#/definitions/trends.RelatedGroup" - }, - "type": "array" + "data": { + "$ref": "#/definitions/spotify.PlaylistResponse" }, - "query_type": { - "example": "top", - "type": "string" + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "spotify.searchCatalogResponseDoc": { + "properties": { + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "type": "integer" }, - "time_range": { - "example": "today 12-m", - "type": "string" + "data": { + "$ref": "#/definitions/spotify.SearchResponse" }, - "type": { - "example": "web", - "type": "string" + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "spotify.searchResponseDoc": { + "properties": { + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "type": "integer" }, - "tz": { - "example": 0, + "data": { + "$ref": "#/definitions/spotify.SearchPodcastsResponse" + }, + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "spotify.showEpisodesResponseDoc": { + "properties": { + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" + }, + "data": { + "$ref": "#/definitions/spotify.PodcastEpisodesResponse" + }, + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "trends.ExploreRequest": { + "spotify.showRecommendationsResponseDoc": { "properties": { - "category": { - "example": 0, + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, - "geo": { - "enum": [ - "WORLDWIDE", - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BA", - "BW", - "BV", - "BR", - "IO", - "VG", - "BN", - "BG", - "BF", - "BI", - "KH", - "CM", - "CA", - "CV", - "BQ", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "XK", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UM", - "VI", - "UG", - "UA", - "AE", - "GB", - "US", - "UY", - "UZ", - "VU", - "VA", - "VE", - "VN", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "example": "US", - "type": "string" + "data": { + "$ref": "#/definitions/spotify.ShowRecommendationsResponse" }, - "hl": { - "example": "en-US", - "type": "string" + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "spotify.showResponseDoc": { + "properties": { + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "type": "integer" }, - "keywords": { - "example": [ - "chatgpt", - "openai" - ], - "items": { - "type": "string" - }, - "type": "array" + "data": { + "$ref": "#/definitions/spotify.ShowMetadataResponse" }, - "property": { - "example": "", - "type": "string" + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "spotify.trackRecommendedResponseDoc": { + "properties": { + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "type": "integer" }, - "time_range": { - "enum": [ - "now 1-H", - "now 4-H", - "now 1-d", - "now 7-d", - "today 1-m", - "today 3-m", - "today 12-m", - "today 5-y", - "all" - ], - "example": "today 12-m", - "type": "string" + "data": { + "$ref": "#/definitions/spotify.TrackRecommendedResponse" }, - "type": { - "enum": [ - "web", - "image", - "news", - "youtube", - "shopping" - ], - "example": "web", - "type": "string" + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "spotify.trackResponseDoc": { + "properties": { + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "type": "integer" }, - "tz": { - "example": 0, + "data": { + "$ref": "#/definitions/spotify.TrackResponse" + }, + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "spotify.trackSimilarAlbumsResponseDoc": { + "properties": { + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" + }, + "data": { + "$ref": "#/definitions/spotify.TrackSimilarAlbumsResponse" + }, + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" } }, "type": "object" }, - "trends.ExploreResponse": { + "spotify.userProfileFollowersResponseDoc": { "properties": { - "category": { - "example": 0, + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", "type": "integer" }, - "geo": { - "example": "US", - "type": "string" + "data": { + "$ref": "#/definitions/spotify.UserProfileFollowersResponse" }, - "hl": { - "example": "en-US", - "type": "string" + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "spotify.userProfilePlaylistsResponseDoc": { + "properties": { + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "type": "integer" }, - "interest_by_region": { + "data": { + "$ref": "#/definitions/spotify.UserProfilePlaylistsResponse" + }, + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "spotify.userProfileResponseDoc": { + "properties": { + "code": { + "description": "Code is the HTTP status code or a custom code used to indicate the result of the request\n@example 200", + "type": "integer" + }, + "data": { + "$ref": "#/definitions/spotify.UserProfileResponse" + }, + "msg": { + "description": "Msg is the message that describes the result of the request\n@example \"Request successful\"" + } + }, + "type": "object" + }, + "techstack.Result": { + "properties": { + "categories": { "items": { - "$ref": "#/definitions/trends.RegionInterest" + "type": "string" }, "type": "array" }, - "interest_over_time": { + "count": { + "type": "integer" + }, + "detector_version": { + "type": "string" + }, + "final_url": { + "type": "string" + }, + "technologies": { "items": { - "$ref": "#/definitions/trends.InterestPoint" + "$ref": "#/definitions/techstack.Technology" }, "type": "array" }, - "keywords": { + "url": { + "type": "string" + } + }, + "type": "object" + }, + "techstack.Technology": { + "properties": { + "categories": { "items": { "type": "string" }, "type": "array" }, - "property": { + "confidence": { + "description": "high | medium | low", "type": "string" }, - "related_queries": { - "items": { - "$ref": "#/definitions/trends.RelatedGroup" - }, - "type": "array" - }, - "related_topics": { - "items": { - "$ref": "#/definitions/trends.RelatedGroup" - }, - "type": "array" - }, - "rising_queries": { - "items": { - "$ref": "#/definitions/trends.RelatedGroup" - }, - "type": "array" + "evidence": { + "description": "Evidence is a short, human-readable hint of what matched (e.g. a script\nhost or a value) — not the full markup.", + "type": "string" }, - "time_range": { - "example": "today 12-m", + "name": { "type": "string" }, - "top_queries": { - "items": { - "$ref": "#/definitions/trends.RelatedGroup" - }, - "type": "array" + "version": { + "type": "string" + } + }, + "type": "object" + }, + "tiktok.Category": { + "properties": { + "name": { + "type": "string" }, "type": { - "example": "web", "type": "string" - }, - "tz": { - "example": 0, - "type": "integer" } }, "type": "object" }, - "trends.InterestByRegionResponse": { + "tiktok.ChallengeDetailResp": { "properties": { - "category": { - "example": 0, + "challengeInfo": {}, + "extra": { + "properties": { + "fatal_item_ids": { + "items": {}, + "type": "array" + }, + "logid": { + "type": "string" + }, + "now": { + "type": "integer" + } + }, + "type": "object" + }, + "log_pb": { + "properties": { + "impr_id": { + "type": "string" + } + }, + "type": "object" + }, + "shareMeta": { + "properties": { + "desc": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "statusCode": { "type": "integer" }, - "geo": { - "example": "US", - "type": "string" + "status_code": { + "type": "integer" }, - "hl": { - "example": "en-US", + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktok.ChallengeListResp": { + "properties": { + "cursor": { "type": "string" }, - "interest_by_region": { - "items": { - "$ref": "#/definitions/trends.RegionInterest" + "extra": { + "properties": { + "fatal_item_ids": { + "items": {}, + "type": "array" + }, + "logid": { + "type": "string" + }, + "now": { + "type": "integer" + } }, + "type": "object" + }, + "hasMore": { + "type": "boolean" + }, + "itemList": { + "items": {}, "type": "array" }, - "keywords": { - "items": { - "type": "string" + "log_pb": { + "properties": { + "impr_id": { + "type": "string" + } }, - "type": "array" + "type": "object" }, - "property": { - "type": "string" + "statusCode": { + "type": "integer" }, - "time_range": { - "example": "today 12-m", - "type": "string" + "status_code": { + "type": "integer" }, - "type": { - "example": "web", + "status_msg": { "type": "string" - }, - "tz": { - "example": 0, - "type": "integer" } }, "type": "object" }, - "trends.InterestOverTimeResponse": { + "tiktok.CommentResp": { "properties": { - "category": { - "example": 0, - "type": "integer" + "alias_comment_deleted": { + "type": "boolean" }, - "geo": { - "example": "US", - "type": "string" + "comments": { + "items": {}, + "type": "array" }, - "hl": { - "example": "en-US", - "type": "string" + "cursor": { + "type": "integer" }, - "interest_over_time": { - "items": { - "$ref": "#/definitions/trends.InterestPoint" + "extra": { + "properties": { + "api_debug_info": {}, + "fatal_item_ids": {}, + "now": { + "type": "integer" + } }, - "type": "array" + "type": "object" }, - "keywords": { - "items": { - "type": "string" + "has_filtered_comments": { + "type": "integer" + }, + "has_more": { + "type": "integer" + }, + "log_pb": { + "properties": { + "impr_id": { + "type": "string" + } }, - "type": "array" + "type": "object" }, - "property": { - "type": "string" + "reply_style": { + "type": "integer" }, - "time_range": { - "example": "today 12-m", - "type": "string" + "status_code": { + "type": "integer" }, - "type": { - "example": "web", + "status_msg": { "type": "string" }, - "tz": { - "example": 0, + "top_gifts": {}, + "total": { "type": "integer" } }, "type": "object" }, - "trends.InterestPoint": { + "tiktok.ExploreResp": { "properties": { - "formatted_axis_time": { - "example": "Apr 2026", + "cursor": { "type": "string" }, - "formatted_time": { - "example": "Apr 2026", - "type": "string" + "extra": { + "properties": { + "fatal_item_ids": { + "items": {}, + "type": "array" + }, + "logid": { + "type": "string" + }, + "now": { + "type": "integer" + } + }, + "type": "object" }, - "time": { - "example": "1777075200", - "type": "string" + "hasMore": { + "type": "boolean" }, - "values": { - "items": { - "$ref": "#/definitions/trends.TrendValue" - }, + "itemList": { + "items": {}, "type": "array" + }, + "log_pb": { + "properties": { + "impr_id": { + "type": "string" + } + }, + "type": "object" + }, + "statusCode": { + "type": "integer" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" } }, "type": "object" }, - "trends.RegionInterest": { + "tiktok.Profile": { "properties": { - "geo_code": { - "example": "US-CA", - "type": "string" - }, - "geo_name": { - "example": "California", - "type": "string" + "stats": { + "$ref": "#/definitions/tiktok.ProfileStats" }, - "values": { - "items": { - "$ref": "#/definitions/trends.TrendValue" - }, - "type": "array" + "user": { + "$ref": "#/definitions/tiktok.User" } }, "type": "object" }, - "trends.RelatedGroup": { + "tiktok.ProfileStats": { "properties": { - "items": { - "items": { - "$ref": "#/definitions/trends.RelatedItem" - }, - "type": "array" + "diggCount": { + "example": 0, + "type": "integer" }, - "keyword": { - "example": "chatgpt", - "type": "string" + "followerCount": { + "example": 458800, + "type": "integer" + }, + "followingCount": { + "example": 1, + "type": "integer" + }, + "friendCount": { + "example": 1, + "type": "integer" + }, + "heart": { + "example": 800300, + "type": "integer" + }, + "heartCount": { + "example": 800300, + "type": "integer" + }, + "videoCount": { + "example": 59, + "type": "integer" } }, "type": "object" }, - "trends.RelatedItem": { + "tiktok.SearchHashtagResp": { "properties": { - "formatted_value": { - "example": "100", - "type": "string" + "challenge_list": { + "items": {}, + "type": "array" }, - "link": { - "example": "/trends/explore?q=chatgpt", - "type": "string" + "cursor": { + "type": "integer" }, - "query": { - "example": "chatgpt login", + "extra": {}, + "has_more": { + "type": "integer" + }, + "input_keyword": { "type": "string" }, - "topic_mid": { - "example": "/g/11khcfz0y2", + "log_pb": { + "properties": { + "impr_id": { + "type": "string" + } + }, + "type": "object" + }, + "music_list": {}, + "qc": { "type": "string" }, - "topic_title": { - "example": "ChatGPT", + "rid": { "type": "string" }, - "topic_type": { - "example": "Topic", + "status_code": { + "type": "integer" + }, + "status_msg": { "type": "string" }, - "value": { - "example": 100, + "type": { "type": "integer" - } + }, + "user_list": {} }, "type": "object" }, - "trends.RelatedTopicsResponse": { + "tiktok.SearchResp": { "properties": { - "category": { - "example": 0, + "cursor": { "type": "integer" }, - "geo": { - "example": "US", - "type": "string" + "data": { + "items": {}, + "type": "array" }, - "hl": { - "example": "en-US", + "extra": {}, + "feedback_type": { "type": "string" }, - "keywords": { - "items": { - "type": "string" - }, - "type": "array" + "has_more": { + "type": "integer" }, - "property": { + "input_keyword": { "type": "string" }, - "related_topics": { - "items": { - "$ref": "#/definitions/trends.RelatedGroup" - }, + "itemList": { + "items": {}, "type": "array" }, - "time_range": { - "example": "today 12-m", + "log_pb": { + "properties": { + "impr_id": { + "type": "string" + } + }, + "type": "object" + }, + "qc": { "type": "string" }, - "type": { - "example": "web", + "rid": { "type": "string" }, - "tz": { - "example": 0, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + }, + "type": { "type": "integer" } }, "type": "object" }, - "trends.TrendCategory": { + "tiktok.SearchUserResp": { "properties": { - "id": { - "example": 0, + "challenge_list": {}, + "cursor": { "type": "integer" }, - "name": { - "example": "All", + "extra": {}, + "feedback_type": { + "type": "string" + }, + "global_doodle_config": {}, + "has_more": { + "type": "integer" + }, + "input_keyword": { + "type": "string" + }, + "log_pb": { + "properties": { + "impr_id": { + "type": "string" + } + }, + "type": "object" + }, + "music_list": {}, + "qc": { + "type": "string" + }, + "rid": { + "type": "string" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { "type": "string" + }, + "type": { + "type": "integer" + }, + "user_list": { + "items": {}, + "type": "array" } }, "type": "object" }, - "trends.TrendValue": { + "tiktok.TrendingResp": { "properties": { - "formatted_value": { - "example": "87", + "cursor": { "type": "string" }, - "has_data": { - "example": true, + "extra": { + "properties": { + "fatal_item_ids": { + "items": {}, + "type": "array" + }, + "logid": { + "type": "string" + }, + "now": { + "type": "integer" + } + }, + "type": "object" + }, + "hasMore": { "type": "boolean" }, - "keyword": { - "example": "chatgpt", + "itemList": { + "items": {}, + "type": "array" + }, + "log_pb": { + "properties": { + "impr_id": { + "type": "string" + } + }, + "type": "object" + }, + "statusCode": { + "type": "integer" + }, + "statusMsg": { "type": "string" }, - "value": { - "example": 87, + "status_code": { "type": "integer" + }, + "status_msg": { + "type": "string" + }, + "trendingTopics": { + "items": {}, + "type": "array" } }, "type": "object" }, - "trends.TrendingArticle": { + "tiktok.User": { "properties": { - "source": { - "example": "Example News", + "avatarLarger": { + "example": "https://p16-pu-sign-useast8.tiktokcdn-us.com/tos-useast5-avt-0068-tx/fb1ed871dc01261013179da3fafcc1cd~c5_1080x1080.jpeg?lk3s=a5d48078&nonce=62362&refresh_token=e3e8e01eff1ea0116ae406af630dc407&x-expires=1734098400&x-signature=MXMzwWT8Tl1nxFZfYNQxOZM%2F%2Byo%3D&shp=a5d48078&shcp=81f88b70", "type": "string" }, - "time": { - "example": "2 hours ago", + "bioLink": { + "properties": { + "link": { + "example": "www.openai.com/chatgpt", + "type": "string" + } + }, + "type": "object" + }, + "commerceUserInfo": { + "properties": { + "category": { + "example": "Software & Apps", + "type": "string" + }, + "commerceUser": { + "example": true, + "type": "boolean" + } + }, + "type": "object" + }, + "createTime": { + "example": 1689461786, + "type": "integer" + }, + "id": { + "example": "7256182609359995947", "type": "string" }, - "title": { - "example": "Why chatgpt is trending", + "isOrganization": { + "example": 1, + "type": "integer" + }, + "language": { + "example": "en", "type": "string" }, - "url": { - "example": "https://example.com/news", + "nickname": { + "example": "chatgpt", + "type": "string" + }, + "privateAccount": { + "example": false, + "type": "boolean" + }, + "region": { + "example": "US", + "type": "string" + }, + "secUid": { + "example": "MS4wLjABAAAAT4vq3vsh9X-Vb_WtV6tz4QWTbKjliTKCiK5DqnJNtQEA2RUveHb7UdnL7xgPK2HB", + "type": "string" + }, + "secret": { + "example": false, + "type": "boolean" + }, + "signature": { + "example": "What can I help with?", + "type": "string" + }, + "ttSeller": { + "example": false, + "type": "boolean" + }, + "uniqueId": { + "example": "uniqueId", "type": "string" + }, + "verified": { + "example": true, + "type": "boolean" } }, "type": "object" }, - "trends.TrendingDetailRequest": { + "tiktok.UserPostLinkResp": { + "properties": { + "cursor": { + "type": "string" + }, + "extra": { + "properties": { + "fatal_item_ids": { + "items": {}, + "type": "array" + }, + "logid": { + "type": "string" + }, + "now": { + "type": "integer" + } + }, + "type": "object" + }, + "hasMore": { + "type": "boolean" + }, + "itemList": { + "items": {}, + "type": "array" + }, + "log_pb": { + "properties": { + "impr_id": { + "type": "string" + } + }, + "type": "object" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktok.VideoDetailResp": { + "properties": { + "extra": { + "properties": { + "fatal_item_ids": { + "items": {}, + "type": "array" + }, + "logid": { + "type": "string" + }, + "now": { + "type": "integer" + } + }, + "type": "object" + }, + "itemInfo": {}, + "log_pb": { + "properties": { + "impr_id": { + "type": "string" + } + }, + "type": "object" + }, + "shareMeta": { + "properties": { + "desc": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktok.categoryResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "items": { + "$ref": "#/definitions/tiktok.Category" + }, + "type": "array" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.challengeListResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.ChallengeListResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.challengeResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.ChallengeDetailResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.commentsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.CommentResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.exploreResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.ExploreResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.postResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.VideoDetailResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.profilePostResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.UserPostLinkResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.profileResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.Profile" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.searchHashtagResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.SearchHashtagResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.searchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.SearchResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.searchUserResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.SearchUserResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktok.trendingResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktok.TrendingResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "trends.ExploreQueriesResponse": { + "properties": { + "category": { + "example": 0, + "type": "integer" + }, + "geo": { + "example": "US", + "type": "string" + }, + "hl": { + "example": "en-US", + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "property": { + "type": "string" + }, + "queries": { + "items": { + "$ref": "#/definitions/trends.RelatedGroup" + }, + "type": "array" + }, + "query_type": { + "example": "top", + "type": "string" + }, + "time_range": { + "example": "today 12-m", + "type": "string" + }, + "type": { + "example": "web", + "type": "string" + }, + "tz": { + "example": 0, + "type": "integer" + } + }, + "type": "object" + }, + "trends.ExploreRequest": { "properties": { "category": { "example": 0, @@ -34300,8 +35519,8 @@ "BI", "KH", "CM", - "CV", "CA", + "CV", "BQ", "KY", "CF", @@ -34519,14 +35738,20 @@ "example": "en-US", "type": "string" }, + "keywords": { + "example": [ + "chatgpt", + "openai" + ], + "items": { + "type": "string" + }, + "type": "array" + }, "property": { "example": "", "type": "string" }, - "query": { - "example": "chatgpt", - "type": "string" - }, "time_range": { "enum": [ "now 1-H", @@ -34539,7 +35764,7 @@ "today 5-y", "all" ], - "example": "now 7-d", + "example": "today 12-m", "type": "string" }, "type": { @@ -34560,59 +35785,81 @@ }, "type": "object" }, - "trends.TrendingItem": { + "trends.ExploreResponse": { "properties": { - "articles": { - "items": { - "$ref": "#/definitions/trends.TrendingArticle" - }, - "type": "array" + "category": { + "example": 0, + "type": "integer" }, - "explore_url": { - "example": "https://trends.google.com/trends/explore?q=chatgpt&geo=US", + "geo": { + "example": "US", "type": "string" }, - "query": { - "example": "chatgpt", + "hl": { + "example": "en-US", "type": "string" }, - "rank": { - "example": 1, - "type": "integer" + "interest_by_region": { + "items": { + "$ref": "#/definitions/trends.RegionInterest" + }, + "type": "array" }, - "related_terms": { + "interest_over_time": { + "items": { + "$ref": "#/definitions/trends.InterestPoint" + }, + "type": "array" + }, + "keywords": { "items": { "type": "string" }, "type": "array" }, - "share_url": { + "property": { "type": "string" }, - "started_unix": { - "example": 1777075200, - "type": "integer" + "related_queries": { + "items": { + "$ref": "#/definitions/trends.RelatedGroup" + }, + "type": "array" }, - "status": { - "example": "active", - "type": "string" + "related_topics": { + "items": { + "$ref": "#/definitions/trends.RelatedGroup" + }, + "type": "array" }, - "title": { - "example": "chatgpt", + "rising_queries": { + "items": { + "$ref": "#/definitions/trends.RelatedGroup" + }, + "type": "array" + }, + "time_range": { + "example": "today 12-m", "type": "string" }, - "traffic": { - "example": "200K+", + "top_queries": { + "items": { + "$ref": "#/definitions/trends.RelatedGroup" + }, + "type": "array" + }, + "type": { + "example": "web", "type": "string" }, - "updated_unix": { - "example": 1777078800, + "tz": { + "example": 0, "type": "integer" } }, "type": "object" }, - "trends.TrendingResponse": { + "trends.InterestByRegionResponse": { "properties": { "category": { "example": 0, @@ -34626,846 +35873,1126 @@ "example": "en-US", "type": "string" }, - "items": { + "interest_by_region": { "items": { - "$ref": "#/definitions/trends.TrendingItem" + "$ref": "#/definitions/trends.RegionInterest" }, "type": "array" }, - "sort_by": { - "example": "relevance", - "type": "string" + "keywords": { + "items": { + "type": "string" + }, + "type": "array" }, - "status": { - "example": "all", + "property": { "type": "string" }, "time_range": { - "example": "24h", + "example": "today 12-m", + "type": "string" + }, + "type": { + "example": "web", "type": "string" }, "tz": { "example": 0, "type": "integer" - }, - "window": { - "example": "24h", - "type": "string" - } - }, - "type": "object" - }, - "trends.TrendsCategoriesResponse": { - "properties": { - "categories": { - "items": { - "$ref": "#/definitions/trends.TrendCategory" - }, - "type": "array" } }, "type": "object" }, - "trends.TrendsEnumsResponse": { + "trends.InterestOverTimeResponse": { "properties": { - "explore_time_ranges": { - "items": { - "type": "string" - }, - "type": "array" - }, - "locations": { - "items": { - "type": "string" - }, - "type": "array" - }, - "search_types": { - "items": { - "type": "string" - }, - "type": "array" + "category": { + "example": 0, + "type": "integer" }, - "trend_statuses": { - "items": { - "type": "string" - }, - "type": "array" + "geo": { + "example": "US", + "type": "string" }, - "trending_categories": { - "items": { - "$ref": "#/definitions/trends.TrendCategory" - }, - "type": "array" + "hl": { + "example": "en-US", + "type": "string" }, - "trending_sort_bys": { + "interest_over_time": { "items": { - "type": "string" + "$ref": "#/definitions/trends.InterestPoint" }, "type": "array" }, - "trending_time_ranges": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "trends.TrendsLocationsResponse": { - "properties": { - "locations": { + "keywords": { "items": { "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "trends.exploreQueriesResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/trends.ExploreQueriesResponse" }, - "msg": { - "example": "OK", + "property": { "type": "string" - } - }, - "type": "object" - }, - "trends.exploreResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/trends.ExploreResponse" - }, - "msg": { - "example": "OK", + "time_range": { + "example": "today 12-m", "type": "string" - } - }, - "type": "object" - }, - "trends.interestByRegionResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/trends.InterestByRegionResponse" - }, - "msg": { - "example": "OK", + "type": { + "example": "web", "type": "string" - } - }, - "type": "object" - }, - "trends.interestOverTimeResponseDoc": { - "properties": { - "code": { - "example": 200, - "type": "integer" }, - "data": { - "$ref": "#/definitions/trends.InterestOverTimeResponse" - }, - "msg": { - "example": "OK", - "type": "string" - } - }, - "type": "object" - }, - "trends.relatedTopicsResponseDoc": { - "properties": { - "code": { - "example": 200, + "tz": { + "example": 0, "type": "integer" - }, - "data": { - "$ref": "#/definitions/trends.RelatedTopicsResponse" - }, - "msg": { - "example": "OK", - "type": "string" } }, "type": "object" }, - "trends.trendingResponseDoc": { + "trends.InterestPoint": { "properties": { - "code": { - "example": 200, - "type": "integer" + "formatted_axis_time": { + "example": "Apr 2026", + "type": "string" }, - "data": { - "$ref": "#/definitions/trends.TrendingResponse" + "formatted_time": { + "example": "Apr 2026", + "type": "string" }, - "msg": { - "example": "OK", + "time": { + "example": "1777075200", "type": "string" + }, + "values": { + "items": { + "$ref": "#/definitions/trends.TrendValue" + }, + "type": "array" } }, "type": "object" }, - "trends.trendsCategoriesResponseDoc": { + "trends.RegionInterest": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/trends.TrendsCategoriesResponse" + "geo_code": { + "example": "US-CA", + "type": "string" }, - "msg": { - "example": "OK", + "geo_name": { + "example": "California", "type": "string" + }, + "values": { + "items": { + "$ref": "#/definitions/trends.TrendValue" + }, + "type": "array" } }, "type": "object" }, - "trends.trendsEnumsResponseDoc": { + "trends.RelatedGroup": { "properties": { - "code": { - "example": 200, - "type": "integer" - }, - "data": { - "$ref": "#/definitions/trends.TrendsEnumsResponse" + "items": { + "items": { + "$ref": "#/definitions/trends.RelatedItem" + }, + "type": "array" }, - "msg": { - "example": "OK", + "keyword": { + "example": "chatgpt", "type": "string" } }, "type": "object" }, - "trends.trendsLocationsResponseDoc": { + "trends.RelatedItem": { "properties": { - "code": { - "example": 200, - "type": "integer" + "formatted_value": { + "example": "100", + "type": "string" }, - "data": { - "$ref": "#/definitions/trends.TrendsLocationsResponse" + "link": { + "example": "/trends/explore?q=chatgpt", + "type": "string" }, - "msg": { - "example": "OK", + "query": { + "example": "chatgpt login", "type": "string" - } - }, - "type": "object" - }, - "tripadvisor.AutocompleteResponse": { - "properties": { - "locale": { - "example": "en-HK", + }, + "topic_mid": { + "example": "/g/11khcfz0y2", "type": "string" }, - "query": { - "example": "hong kong", + "topic_title": { + "example": "ChatGPT", "type": "string" }, - "results": { - "items": { - "$ref": "#/definitions/tripadvisor.SearchItem" - }, - "type": "array" + "topic_type": { + "example": "Topic", + "type": "string" }, - "scope_geo_id": { - "example": 60763, + "value": { + "example": 100, "type": "integer" } }, "type": "object" }, - "tripadvisor.EnumsResponse": { + "trends.RelatedTopicsResponse": { "properties": { - "attraction_categories": { - "example": [ - "attraction", - "tour", - "day_trip" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "attraction_category_ids": { - "additionalProperties": { - "type": "string" - }, - "example": { - "day_trip": "c63", - "tour": "c42" - }, - "type": "object" - }, - "currencies": { - "example": [ - "HKD", - "USD", - "EUR" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "filter_ids": { - "example": [ - "class", - "ufe" - ], - "items": { - "type": "string" - }, - "type": "array" - }, - "hotel_amenities": { - "example": [ - 9176, - 9179 - ], - "items": { - "type": "integer" - }, - "type": "array" - }, - "hotel_classes": { - "example": [ - 1, - 2, - 3, - 4, - 5 - ], - "items": { - "type": "integer" - }, - "type": "array" + "category": { + "example": 0, + "type": "integer" }, - "languages": { - "example": [ - "en", - "fr", - "zh-CN" - ], - "items": { - "type": "string" - }, - "type": "array" + "geo": { + "example": "US", + "type": "string" }, - "listing_types": { - "example": [ - "hotel", - "restaurant", - "attraction" - ], - "items": { - "type": "string" - }, - "type": "array" + "hl": { + "example": "en-US", + "type": "string" }, - "locales": { - "example": [ - "en-HK", - "en-US", - "en-GB" - ], + "keywords": { "items": { "type": "string" }, "type": "array" }, - "pricing_modes": { - "example": [ - "ALL_IN_RATE" - ], - "items": { - "type": "string" - }, - "type": "array" + "property": { + "type": "string" }, - "restaurant_options": { - "example": [ - 20693 - ], + "related_topics": { "items": { - "type": "integer" + "$ref": "#/definitions/trends.RelatedGroup" }, "type": "array" }, - "restaurant_types": { - "example": [ - 10591 - ], - "items": { - "type": "integer" - }, - "type": "array" + "time_range": { + "example": "today 12-m", + "type": "string" }, - "sorts": { - "example": [ - "BEST_VALUE", - "POPULARITY" - ], - "items": { - "type": "string" - }, - "type": "array" + "type": { + "example": "web", + "type": "string" }, - "unsupported_entity_types": { - "example": [ - "airline", - "airport" - ], - "items": { - "type": "string" - }, - "type": "array" + "tz": { + "example": 0, + "type": "integer" } }, "type": "object" }, - "tripadvisor.HotelItem": { + "trends.TrendCategory": { "properties": { - "address": { - "type": "string" - }, - "currency": { - "example": "HKD", - "type": "string" - }, "id": { - "example": "113311", - "type": "string" + "example": 0, + "type": "integer" }, - "image": { + "name": { + "example": "All", + "type": "string" + } + }, + "type": "object" + }, + "trends.TrendValue": { + "properties": { + "formatted_value": { + "example": "87", "type": "string" }, - "latitude": { - "example": 40.76174, - "type": "number" - }, - "longitude": { - "example": -73.975365, - "type": "number" + "has_data": { + "example": true, + "type": "boolean" }, - "parent": { - "example": "New York City", + "keyword": { + "example": "chatgpt", "type": "string" }, - "phone": { + "value": { + "example": 87, + "type": "integer" + } + }, + "type": "object" + }, + "trends.TrendingArticle": { + "properties": { + "source": { + "example": "Example News", "type": "string" }, - "price": { - "example": "HK$7,793", + "time": { + "example": "2 hours ago", "type": "string" }, - "provider": { - "example": "Agoda", + "title": { + "example": "Why chatgpt is trending", "type": "string" }, - "rank": { - "example": 146, - "type": "integer" - }, - "rank_label": { - "example": "#141 of 519 hotels in New York City", + "url": { + "example": "https://example.com/news", "type": "string" - }, - "rating": { - "example": 4.5, - "type": "number" - }, - "review_count": { - "example": 1517, + } + }, + "type": "object" + }, + "trends.TrendingDetailRequest": { + "properties": { + "category": { + "example": 0, "type": "integer" }, - "review_rating": { - "type": "number" - }, - "review_snippet": { - "type": "string" - }, - "review_title": { - "type": "string" + "geo": { + "enum": [ + "WORLDWIDE", + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BA", + "BW", + "BV", + "BR", + "IO", + "VG", + "BN", + "BG", + "BF", + "BI", + "KH", + "CM", + "CV", + "CA", + "BQ", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "XK", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UM", + "VI", + "UG", + "UA", + "AE", + "GB", + "US", + "UY", + "UZ", + "VU", + "VA", + "VE", + "VN", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "example": "US", + "type": "string" }, - "star_rating": { - "example": 5, - "type": "number" + "hl": { + "example": "en-US", + "type": "string" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" + "property": { + "example": "", + "type": "string" }, - "title": { - "example": "The Peninsula New York", + "query": { + "example": "chatgpt", "type": "string" }, - "type": { - "example": "hotel", + "time_range": { + "enum": [ + "now 1-H", + "now 4-H", + "now 1-d", + "now 7-d", + "today 1-m", + "today 3-m", + "today 12-m", + "today 5-y", + "all" + ], + "example": "now 7-d", "type": "string" }, - "url": { + "type": { + "enum": [ + "web", + "image", + "news", + "youtube", + "shopping" + ], + "example": "web", "type": "string" + }, + "tz": { + "example": 0, + "type": "integer" } }, "type": "object" }, - "tripadvisor.HotelListResponse": { + "trends.TrendingItem": { "properties": { - "currency": { - "example": "HKD", - "type": "string" - }, - "full_matches": { - "example": 519, - "type": "integer" + "articles": { + "items": { + "$ref": "#/definitions/trends.TrendingArticle" + }, + "type": "array" }, - "geo_id": { - "example": 294217, - "type": "integer" + "explore_url": { + "example": "https://trends.google.com/trends/explore?q=chatgpt&geo=US", + "type": "string" }, - "limit": { - "example": 30, - "type": "integer" + "query": { + "example": "chatgpt", + "type": "string" }, - "offset": { - "example": 0, + "rank": { + "example": 1, "type": "integer" }, - "results": { + "related_terms": { "items": { - "$ref": "#/definitions/tripadvisor.HotelItem" + "type": "string" }, "type": "array" }, - "sort": { - "example": "BEST_VALUE", + "share_url": { "type": "string" }, - "total": { - "example": 519, + "started_unix": { + "example": 1777075200, "type": "integer" - } - }, - "type": "object" - }, - "tripadvisor.NestedSearchItem": { - "properties": { - "query": { - "example": "hong kong hotels", + }, + "status": { + "example": "active", "type": "string" }, "title": { - "example": "Hotels", + "example": "chatgpt", "type": "string" }, - "type": { - "example": "hotel_search", + "traffic": { + "example": "200K+", "type": "string" }, - "url": { - "example": "https://en.tripadvisor.com.hk/Hotels-g294217-Hong_Kong-Hotels.html", - "type": "string" + "updated_unix": { + "example": 1777078800, + "type": "integer" } }, "type": "object" }, - "tripadvisor.PlaceAddressParts": { + "trends.TrendingResponse": { "properties": { - "country": { + "category": { + "example": 0, + "type": "integer" + }, + "geo": { + "example": "US", "type": "string" }, - "locality": { + "hl": { + "example": "en-US", "type": "string" }, - "postal_code": { + "items": { + "items": { + "$ref": "#/definitions/trends.TrendingItem" + }, + "type": "array" + }, + "sort_by": { + "example": "relevance", "type": "string" }, - "region": { + "status": { + "example": "all", "type": "string" }, - "street": { + "time_range": { + "example": "24h", + "type": "string" + }, + "tz": { + "example": 0, + "type": "integer" + }, + "window": { + "example": "24h", "type": "string" } }, "type": "object" }, - "tripadvisor.PlaceImage": { + "trends.TrendsCategoriesResponse": { "properties": { - "caption": { - "type": "string" - }, - "height": { - "example": 768, - "type": "integer" - }, - "url": { - "type": "string" - }, - "width": { - "example": 1024, - "type": "integer" + "categories": { + "items": { + "$ref": "#/definitions/trends.TrendCategory" + }, + "type": "array" } }, "type": "object" }, - "tripadvisor.PlaceItem": { + "trends.TrendsEnumsResponse": { "properties": { - "address": { - "type": "string" - }, - "booking_url": { - "type": "string" + "explore_time_ranges": { + "items": { + "type": "string" + }, + "type": "array" }, - "categories": { + "locations": { "items": { "type": "string" }, "type": "array" }, - "cuisines": { + "search_types": { "items": { "type": "string" }, "type": "array" }, - "currency": { - "example": "HKD", - "type": "string" + "trend_statuses": { + "items": { + "type": "string" + }, + "type": "array" }, - "id": { - "example": "5493196", - "type": "string" + "trending_categories": { + "items": { + "$ref": "#/definitions/trends.TrendCategory" + }, + "type": "array" }, - "image": { - "type": "string" + "trending_sort_bys": { + "items": { + "type": "string" + }, + "type": "array" }, - "latitude": { - "example": 22.28331, - "type": "number" + "trending_time_ranges": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "trends.TrendsLocationsResponse": { + "properties": { + "locations": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "trends.exploreQueriesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "longitude": { - "example": 114.15874, - "type": "number" + "data": { + "$ref": "#/definitions/trends.ExploreQueriesResponse" }, - "parent": { - "example": "Hong Kong", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "trends.exploreResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "phone": { - "type": "string" + "data": { + "$ref": "#/definitions/trends.ExploreResponse" }, - "price": { - "example": "HK$7,793", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "trends.interestByRegionResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "price_level": { - "example": "$$ - $$$", - "type": "string" + "data": { + "$ref": "#/definitions/trends.InterestByRegionResponse" }, - "provider": { - "example": "Agoda", + "msg": { + "example": "OK", "type": "string" - }, - "rank": { - "example": 12, + } + }, + "type": "object" + }, + "trends.interestOverTimeResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "rank_label": { - "example": "#12 of 12000 restaurants in Hong Kong", + "data": { + "$ref": "#/definitions/trends.InterestOverTimeResponse" + }, + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "trends.relatedTopicsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "rating": { - "example": 4.5, - "type": "number" + "data": { + "$ref": "#/definitions/trends.RelatedTopicsResponse" }, - "review_count": { - "example": 1217, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "trends.trendingResponseDoc": { + "properties": { + "code": { + "example": 200, "type": "integer" }, - "review_rating": { - "type": "number" + "data": { + "$ref": "#/definitions/trends.TrendingResponse" }, - "review_snippet": { + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "trends.trendsCategoriesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "review_title": { - "type": "string" + "data": { + "$ref": "#/definitions/trends.TrendsCategoriesResponse" }, - "star_rating": { - "example": 5, - "type": "number" + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "trends.trendsEnumsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" + "data": { + "$ref": "#/definitions/trends.TrendsEnumsResponse" }, - "title": { - "example": "Hong Kong Asian Cuisine", + "msg": { + "example": "OK", "type": "string" + } + }, + "type": "object" + }, + "trends.trendsLocationsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" }, - "type": { - "example": "restaurant", - "type": "string" + "data": { + "$ref": "#/definitions/trends.TrendsLocationsResponse" }, - "url": { + "msg": { + "example": "OK", "type": "string" } }, "type": "object" }, - "tripadvisor.PlaceLink": { + "tripadvisor.AutocompleteResponse": { "properties": { - "label": { - "example": "Official website", + "locale": { + "example": "en-HK", "type": "string" }, - "type": { - "example": "website", + "query": { + "example": "hong kong", "type": "string" }, - "url": { - "type": "string" + "results": { + "items": { + "$ref": "#/definitions/tripadvisor.SearchItem" + }, + "type": "array" + }, + "scope_geo_id": { + "example": 60763, + "type": "integer" } }, "type": "object" }, - "tripadvisor.PlaceResponse": { + "tripadvisor.EnumsResponse": { "properties": { - "address": { - "type": "string" + "attraction_categories": { + "example": [ + "attraction", + "tour", + "day_trip" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "address_parts": { - "$ref": "#/definitions/tripadvisor.PlaceAddressParts" + "attraction_category_ids": { + "additionalProperties": { + "type": "string" + }, + "example": { + "day_trip": "c63", + "tour": "c42" + }, + "type": "object" }, - "amenities": { + "currencies": { + "example": [ + "HKD", + "USD", + "EUR" + ], "items": { "type": "string" }, "type": "array" }, - "awards": { + "filter_ids": { + "example": [ + "class", + "ufe" + ], "items": { "type": "string" }, "type": "array" }, - "breadcrumbs": { + "hotel_amenities": { + "example": [ + 9176, + 9179 + ], + "items": { + "type": "integer" + }, + "type": "array" + }, + "hotel_classes": { + "example": [ + 1, + 2, + 3, + 4, + 5 + ], + "items": { + "type": "integer" + }, + "type": "array" + }, + "languages": { + "example": [ + "en", + "fr", + "zh-CN" + ], "items": { "type": "string" }, "type": "array" }, - "canonical_url": { - "type": "string" + "listing_types": { + "example": [ + "hotel", + "restaurant", + "attraction" + ], + "items": { + "type": "string" + }, + "type": "array" }, - "categories": { + "locales": { + "example": [ + "en-HK", + "en-US", + "en-GB" + ], "items": { "type": "string" }, "type": "array" }, - "cuisines": { + "pricing_modes": { + "example": [ + "ALL_IN_RATE" + ], "items": { "type": "string" }, "type": "array" }, - "description": { - "type": "string" + "restaurant_options": { + "example": [ + 20693 + ], + "items": { + "type": "integer" + }, + "type": "array" }, - "features": { + "restaurant_types": { + "example": [ + 10591 + ], + "items": { + "type": "integer" + }, + "type": "array" + }, + "sorts": { + "example": [ + "BEST_VALUE", + "POPULARITY" + ], "items": { "type": "string" }, "type": "array" }, - "geo_id": { - "example": "60763", + "unsupported_entity_types": { + "example": [ + "airline", + "airport" + ], + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "tripadvisor.HotelItem": { + "properties": { + "address": { + "type": "string" + }, + "currency": { + "example": "HKD", "type": "string" }, "id": { - "example": "5493196", + "example": "113311", "type": "string" }, "image": { "type": "string" }, - "images": { - "items": { - "$ref": "#/definitions/tripadvisor.PlaceImage" - }, - "type": "array" - }, "latitude": { - "example": 22.28331, + "example": 40.76174, "type": "number" }, - "links": { - "items": { - "$ref": "#/definitions/tripadvisor.PlaceLink" - }, - "type": "array" - }, "longitude": { - "example": 114.15874, + "example": -73.975365, "type": "number" }, - "opening_hours": { - "items": { - "type": "string" - }, - "type": "array" + "parent": { + "example": "New York City", + "type": "string" }, "phone": { "type": "string" }, - "price_level": { - "example": "$$ - $$$", + "price": { + "example": "HK$7,793", "type": "string" }, - "price_range": { - "example": "$$ - $$$", + "provider": { + "example": "Agoda", "type": "string" }, "rank": { - "example": 1, + "example": 146, "type": "integer" }, "rank_label": { - "example": "#1 of 1,531 things to do in Hong Kong", + "example": "#141 of 519 hotels in New York City", "type": "string" }, "rating": { + "example": 4.5, "type": "number" }, - "reviews": { + "review_count": { + "example": 1517, "type": "integer" }, - "summary": { + "review_rating": { + "type": "number" + }, + "review_snippet": { "type": "string" }, + "review_title": { + "type": "string" + }, + "star_rating": { + "example": 5, + "type": "number" + }, "tags": { "items": { "type": "string" @@ -35473,124 +37000,144 @@ "type": "array" }, "title": { + "example": "The Peninsula New York", "type": "string" }, "type": { + "example": "hotel", "type": "string" }, "url": { "type": "string" - }, - "website_url": { - "type": "string" } }, "type": "object" }, - "tripadvisor.ReviewItem": { + "tripadvisor.HotelListResponse": { "properties": { - "author": { - "type": "string" - }, - "author_avatar": { - "type": "string" - }, - "author_hometown": { - "type": "string" - }, - "author_id": { - "type": "string" - }, - "author_url": { - "type": "string" - }, - "created_date": { - "type": "string" - }, - "date": { + "currency": { + "example": "HKD", "type": "string" }, - "helpful": { + "full_matches": { + "example": 519, "type": "integer" }, - "id": { - "type": "string" + "geo_id": { + "example": 294217, + "type": "integer" }, - "language": { - "type": "string" + "limit": { + "example": 30, + "type": "integer" }, - "original_language": { - "type": "string" + "offset": { + "example": 0, + "type": "integer" }, - "photos": { + "results": { "items": { - "type": "string" + "$ref": "#/definitions/tripadvisor.HotelItem" }, "type": "array" }, - "rating": { - "type": "number" - }, - "stay_date": { + "sort": { + "example": "BEST_VALUE", "type": "string" }, - "text": { + "total": { + "example": 519, + "type": "integer" + } + }, + "type": "object" + }, + "tripadvisor.NestedSearchItem": { + "properties": { + "query": { + "example": "hong kong hotels", "type": "string" }, "title": { + "example": "Hotels", "type": "string" }, - "trip_type": { + "type": { + "example": "hotel_search", "type": "string" }, "url": { + "example": "https://en.tripadvisor.com.hk/Hotels-g294217-Hong_Kong-Hotels.html", "type": "string" } }, "type": "object" }, - "tripadvisor.ReviewsResponse": { + "tripadvisor.PlaceAddressParts": { "properties": { - "id": { - "example": "5493196", + "country": { "type": "string" }, - "language": { - "example": "en", + "locality": { "type": "string" }, - "limit": { - "example": 20, - "type": "integer" + "postal_code": { + "type": "string" }, - "page": { - "example": 1, - "type": "integer" + "region": { + "type": "string" }, - "reviews": { - "items": { - "$ref": "#/definitions/tripadvisor.ReviewItem" - }, - "type": "array" + "street": { + "type": "string" + } + }, + "type": "object" + }, + "tripadvisor.PlaceImage": { + "properties": { + "caption": { + "type": "string" }, - "total": { - "example": 25770, + "height": { + "example": 768, "type": "integer" }, "url": { "type": "string" + }, + "width": { + "example": 1024, + "type": "integer" } }, "type": "object" }, - "tripadvisor.SearchItem": { + "tripadvisor.PlaceItem": { "properties": { - "document_id": { - "example": "loc;294217;g294217", + "address": { + "type": "string" + }, + "booking_url": { + "type": "string" + }, + "categories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "cuisines": { + "items": { + "type": "string" + }, + "type": "array" + }, + "currency": { + "example": "HKD", "type": "string" }, "id": { - "example": "294217", + "example": "5493196", "type": "string" }, "image": { @@ -35604,38 +37151,375 @@ "example": 114.15874, "type": "number" }, - "nested_results": { - "items": { - "$ref": "#/definitions/tripadvisor.NestedSearchItem" - }, - "type": "array" - }, "parent": { - "example": "China, Asia", - "type": "string" - }, - "title": { "example": "Hong Kong", "type": "string" }, - "type": { - "example": "geo", + "phone": { "type": "string" }, - "url": { - "example": "https://en.tripadvisor.com.hk/Tourism-g294217-Hong_Kong-Vacations.html", + "price": { + "example": "HK$7,793", "type": "string" - } - }, - "type": "object" - }, - "tripadvisor.SearchResponse": { - "properties": { - "currency": { - "example": "HKD", + }, + "price_level": { + "example": "$$ - $$$", "type": "string" }, - "geo_id": { + "provider": { + "example": "Agoda", + "type": "string" + }, + "rank": { + "example": 12, + "type": "integer" + }, + "rank_label": { + "example": "#12 of 12000 restaurants in Hong Kong", + "type": "string" + }, + "rating": { + "example": 4.5, + "type": "number" + }, + "review_count": { + "example": 1217, + "type": "integer" + }, + "review_rating": { + "type": "number" + }, + "review_snippet": { + "type": "string" + }, + "review_title": { + "type": "string" + }, + "star_rating": { + "example": 5, + "type": "number" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "example": "Hong Kong Asian Cuisine", + "type": "string" + }, + "type": { + "example": "restaurant", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "tripadvisor.PlaceLink": { + "properties": { + "label": { + "example": "Official website", + "type": "string" + }, + "type": { + "example": "website", + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "tripadvisor.PlaceResponse": { + "properties": { + "address": { + "type": "string" + }, + "address_parts": { + "$ref": "#/definitions/tripadvisor.PlaceAddressParts" + }, + "amenities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "awards": { + "items": { + "type": "string" + }, + "type": "array" + }, + "breadcrumbs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "canonical_url": { + "type": "string" + }, + "categories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "cuisines": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "features": { + "items": { + "type": "string" + }, + "type": "array" + }, + "geo_id": { + "example": "60763", + "type": "string" + }, + "id": { + "example": "5493196", + "type": "string" + }, + "image": { + "type": "string" + }, + "images": { + "items": { + "$ref": "#/definitions/tripadvisor.PlaceImage" + }, + "type": "array" + }, + "latitude": { + "example": 22.28331, + "type": "number" + }, + "links": { + "items": { + "$ref": "#/definitions/tripadvisor.PlaceLink" + }, + "type": "array" + }, + "longitude": { + "example": 114.15874, + "type": "number" + }, + "opening_hours": { + "items": { + "type": "string" + }, + "type": "array" + }, + "phone": { + "type": "string" + }, + "price_level": { + "example": "$$ - $$$", + "type": "string" + }, + "price_range": { + "example": "$$ - $$$", + "type": "string" + }, + "rank": { + "example": 1, + "type": "integer" + }, + "rank_label": { + "example": "#1 of 1,531 things to do in Hong Kong", + "type": "string" + }, + "rating": { + "type": "number" + }, + "reviews": { + "type": "integer" + }, + "summary": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string" + }, + "website_url": { + "type": "string" + } + }, + "type": "object" + }, + "tripadvisor.ReviewItem": { + "properties": { + "author": { + "type": "string" + }, + "author_avatar": { + "type": "string" + }, + "author_hometown": { + "type": "string" + }, + "author_id": { + "type": "string" + }, + "author_url": { + "type": "string" + }, + "created_date": { + "type": "string" + }, + "date": { + "type": "string" + }, + "helpful": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "language": { + "type": "string" + }, + "original_language": { + "type": "string" + }, + "photos": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rating": { + "type": "number" + }, + "stay_date": { + "type": "string" + }, + "text": { + "type": "string" + }, + "title": { + "type": "string" + }, + "trip_type": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "tripadvisor.ReviewsResponse": { + "properties": { + "id": { + "example": "5493196", + "type": "string" + }, + "language": { + "example": "en", + "type": "string" + }, + "limit": { + "example": 20, + "type": "integer" + }, + "page": { + "example": 1, + "type": "integer" + }, + "reviews": { + "items": { + "$ref": "#/definitions/tripadvisor.ReviewItem" + }, + "type": "array" + }, + "total": { + "example": 25770, + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "tripadvisor.SearchItem": { + "properties": { + "document_id": { + "example": "loc;294217;g294217", + "type": "string" + }, + "id": { + "example": "294217", + "type": "string" + }, + "image": { + "type": "string" + }, + "latitude": { + "example": 22.28331, + "type": "number" + }, + "longitude": { + "example": 114.15874, + "type": "number" + }, + "nested_results": { + "items": { + "$ref": "#/definitions/tripadvisor.NestedSearchItem" + }, + "type": "array" + }, + "parent": { + "example": "China, Asia", + "type": "string" + }, + "title": { + "example": "Hong Kong", + "type": "string" + }, + "type": { + "example": "geo", + "type": "string" + }, + "url": { + "example": "https://en.tripadvisor.com.hk/Tourism-g294217-Hong_Kong-Vacations.html", + "type": "string" + } + }, + "type": "object" + }, + "tripadvisor.SearchResponse": { + "properties": { + "currency": { + "example": "HKD", + "type": "string" + }, + "geo_id": { "example": 294217, "type": "integer" }, @@ -37738,6 +39622,27 @@ }, "type": "object" }, + "web.TechStackOption": { + "properties": { + "render": { + "enum": [ + "browser", + "auto", + "http" + ], + "example": "browser", + "type": "string" + }, + "url": { + "example": "https://www.example.com", + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" + }, "web.scrapeResponseDoc": { "properties": { "code": { @@ -37754,6 +39659,22 @@ }, "type": "object" }, + "web.techStackResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/techstack.Result" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "x.Metrics": { "properties": { "bookmarks": { @@ -40853,38 +42774,1131 @@ "items": { "$ref": "#/definitions/zillow.PropertyItem" }, - "type": "array" - } - }, - "type": "object" - } - }, - "host": "api.crawlora.net", - "info": { - "contact": { - "email": "support@crawlora.net", - "name": "API Support", - "url": "http://crawlora.net" + "type": "array" + } + }, + "type": "object" + } + }, + "host": "api.crawlora.net", + "info": { + "contact": { + "email": "support@crawlora.net", + "name": "API Support", + "url": "http://crawlora.net" + }, + "description": "API doc for Crawlora. Please respect the rate limit of one request per second for all beta users. Exceeding this limit may result in a ban.", + "title": "Crawlora API", + "version": "1.2" + }, + "paths": { + "/airbnb/host/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns a normalized Airbnb public host profile — display name, Superhost and identity-verification status, location, bio, hosting tenure, total guest-review count, and total listing count.", + "operationId": "airbnb-host", + "parameters": [ + { + "description": "Host id (numeric)", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/airbnb.HostResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Airbnb host profile", + "tags": [ + "Airbnb" + ] + } + }, + "/airbnb/host/{id}/listings": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the listings an Airbnb host manages, paginated. Page 1 comes from the host profile; deeper pages page through the host's full portfolio.", + "operationId": "airbnb-host-listings", + "parameters": [ + { + "description": "Host id (numeric)", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "description": "1-based page", + "in": "query", + "name": "page", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/airbnb.HostListingsResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Airbnb host listings", + "tags": [ + "Airbnb" + ] + } + }, + "/airbnb/host/{id}/reviews": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns reviews guests left for an Airbnb host, paginated, including the reviewer name and location.", + "operationId": "airbnb-host-reviews", + "parameters": [ + { + "description": "Host id (numeric)", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "description": "1-based page", + "in": "query", + "name": "page", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/airbnb.HostReviewsResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Airbnb host reviews", + "tags": [ + "Airbnb" + ] + } + }, + "/airbnb/room/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized Airbnb public room details.", + "operationId": "airbnb-room", + "parameters": [ + { + "description": "Room id", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/airbnb.RoomResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Airbnb room", + "tags": [ + "Airbnb" + ] + } + }, + "/airbnb/room/{id}/calendar": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns public calendar month hints parsed from Airbnb room bootstrap data.", + "operationId": "airbnb-room-calendar", + "parameters": [ + { + "description": "Room id", + "in": "path", + "name": "id", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/airbnb.CalendarResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Airbnb room calendar", + "tags": [ + "Airbnb" + ] + } + }, + "/airbnb/room/{id}/reviews": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized Airbnb public review snippets.", + "operationId": "airbnb-room-reviews", + "parameters": [ + { + "description": "Room id", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "description": "1-based page", + "in": "query", + "name": "page", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/airbnb.ReviewsResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get Airbnb room reviews", + "tags": [ + "Airbnb" + ] + } + }, + "/airbnb/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized Airbnb public web search results.", + "operationId": "airbnb-search", + "parameters": [ + { + "description": "Location", + "in": "query", + "name": "location", + "required": true, + "type": "string" + }, + { + "description": "Check-in date", + "in": "query", + "name": "check_in", + "type": "string" + }, + { + "description": "Check-out date", + "in": "query", + "name": "check_out", + "type": "string" + }, + { + "description": "Adult guests", + "in": "query", + "name": "adults", + "type": "integer" + }, + { + "description": "1-based page", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Currency for bounded map search", + "in": "query", + "name": "currency", + "type": "string" + }, + { + "description": "Northeast latitude for bounded map search", + "in": "query", + "name": "ne_lat", + "type": "number" + }, + { + "description": "Northeast longitude for bounded map search", + "in": "query", + "name": "ne_lng", + "type": "number" + }, + { + "description": "Southwest latitude for bounded map search", + "in": "query", + "name": "sw_lat", + "type": "number" + }, + { + "description": "Southwest longitude for bounded map search", + "in": "query", + "name": "sw_lng", + "type": "number" + }, + { + "description": "Map zoom for bounded map search", + "in": "query", + "name": "zoom", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/airbnb.SearchResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search Airbnb stays", + "tags": [ + "Airbnb" + ] + } + }, + "/amazon/product/{asin}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized product details for an Amazon ASIN on `amazon.com`, including pricing, availability, overview data, inline review samples, and descriptive content.", + "operationId": "amazon-product", + "parameters": [ + { + "description": "Amazon ASIN", + "example": "B0DGJ736JM", + "in": "path", + "name": "asin", + "required": true, + "type": "string" + }, + { + "default": "en_US", + "description": "Amazon language", + "enum": [ + "en_US" + ], + "in": "query", + "name": "language", + "type": "string" + }, + { + "default": "USD", + "description": "Amazon currency", + "enum": [ + "USD" + ], + "in": "query", + "name": "currency", + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/amazon.productResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve Amazon product details", + "tags": [ + "Amazon" + ] + } + }, + "/amazon/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized Amazon search result cards for `amazon.com`.", + "operationId": "amazon-search", + "parameters": [ + { + "description": "Search keyword", + "example": "apple watch", + "in": "query", + "name": "k", + "required": true, + "type": "string" + }, + { + "description": "Sort order", + "example": "review-rank", + "in": "query", + "name": "s", + "type": "string" + }, + { + "description": "1-based page number", + "example": 1, + "in": "query", + "name": "page", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/amazon.searchResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search Amazon products", + "tags": [ + "Amazon" + ] + } + }, + "/amazon/suggest/{keyword}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns typeahead keyword suggestions from Amazon's public suggestion API for `amazon.com`.", + "operationId": "amazon-suggest", + "parameters": [ + { + "description": "Suggestion prefix", + "example": "apple", + "in": "path", + "name": "keyword", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/amazon.suggestResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve Amazon search suggestions", + "tags": [ + "Amazon" + ] + } + }, + "/apple-podcasts/charts": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Apple Podcasts show chart rankings from public iTunes RSS JSON feeds. Supported collections are `toppodcasts` and `topaudiopodcasts`.", + "operationId": "apple-podcasts-charts", + "parameters": [ + { + "description": "Chart collection", + "example": "toppodcasts", + "in": "query", + "name": "collection", + "type": "string" + }, + { + "description": "Numeric Apple podcast genre ID", + "example": 1303, + "in": "query", + "name": "category", + "type": "integer" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Number of chart items to return", + "example": 50, + "in": "query", + "name": "limit", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/applepodcasts.chartsResponseDoc" + } + }, + "400": { + "description": "Missing or invalid parameters", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve Apple Podcasts chart rankings", + "tags": [ + "ApplePodcasts" + ] + } + }, + "/apple-podcasts/episodes/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized Apple Podcasts episodes from Apple's public iTunes Search API.", + "operationId": "apple-podcasts-episodes-search", + "parameters": [ + { + "description": "Search term", + "example": "hardcore history", + "in": "query", + "name": "term", + "required": true, + "type": "string" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" + }, + { + "description": "Number of episodes per page", + "example": 50, + "in": "query", + "name": "limit", + "type": "integer" + }, + { + "description": "Search page number (1-based)", + "example": 1, + "in": "query", + "name": "page", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/applepodcasts.episodeSearchResponseDoc" + } + }, + "400": { + "description": "Missing or invalid parameters", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search Apple Podcasts episodes", + "tags": [ + "ApplePodcasts" + ] + } + }, + "/apple-podcasts/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized Apple Podcasts shows from Apple's public iTunes Search API.", + "operationId": "apple-podcasts-search", + "parameters": [ + { + "description": "Search term", + "example": "hardcore history", + "in": "query", + "name": "term", + "required": true, + "type": "string" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" + }, + { + "description": "Number of shows per page", + "example": 50, + "in": "query", + "name": "limit", + "type": "integer" + }, + { + "description": "Search page number (1-based)", + "example": 1, + "in": "query", + "name": "page", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/applepodcasts.searchResponseDoc" + } + }, + "400": { + "description": "Missing or invalid parameters", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search Apple Podcasts shows", + "tags": [ + "ApplePodcasts" + ] + } + }, + "/apple-podcasts/show/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized show metadata from Apple's public iTunes Lookup API.", + "operationId": "apple-podcasts-show", + "parameters": [ + { + "description": "Apple Podcasts show ID", + "example": "173001861", + "in": "path", + "name": "id", + "required": true, + "type": "string" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/applepodcasts.showResponseDoc" + } + }, + "400": { + "description": "Missing or invalid parameters", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Show not found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve Apple Podcasts show details", + "tags": [ + "ApplePodcasts" + ] + } }, - "description": "API doc for Crawlora. Please respect the rate limit of one request per second for all beta users. Exceeding this limit may result in a ban.", - "title": "Crawlora API", - "version": "1.2" - }, - "paths": { - "/airbnb/host/{id}": { + "/apple-podcasts/show/{id}/episodes": { "get": { "consumes": [ "application/json" ], - "description": "Returns a normalized Airbnb public host profile — display name, Superhost and identity-verification status, location, bio, hosting tenure, total guest-review count, and total listing count.", - "operationId": "airbnb-host", + "description": "Returns a show and its public Apple Podcasts episodes from Apple's iTunes Lookup API.", + "operationId": "apple-podcasts-show-episodes", "parameters": [ { - "description": "Host id (numeric)", + "description": "Apple Podcasts show ID", + "example": "173001861", "in": "path", "name": "id", "required": true, "type": "string" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" + }, + { + "description": "Number of episodes to return", + "example": 50, + "in": "query", + "name": "limit", + "type": "integer" } ], "produces": [ @@ -40894,29 +43908,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/airbnb.HostResponse" + "$ref": "#/definitions/applepodcasts.showEpisodesResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Not Found", + "description": "Show not found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -40927,32 +43941,54 @@ "ApiKeyAuth": [] } ], - "summary": "Get Airbnb host profile", + "summary": "Retrieve Apple Podcasts show episodes", "tags": [ - "Airbnb" + "ApplePodcasts" ] } }, - "/airbnb/host/{id}/listings": { + "/appstore/app": { "get": { "consumes": [ "application/json" ], - "description": "Returns the listings an Airbnb host manages, paginated. Page 1 comes from the host profile; deeper pages page through the host's full portfolio.", - "operationId": "airbnb-host-listings", + "description": "Returns normalized app metadata from the App Store lookup API. Provide either `id` or `app_id`.", + "operationId": "appstore-app", "parameters": [ { - "description": "Host id (numeric)", - "in": "path", + "description": "App Store track ID", + "example": "553834731", + "in": "query", "name": "id", - "required": true, "type": "string" }, { - "description": "1-based page", + "description": "App Store bundle ID", + "example": "com.midasplayer.apps.candycrushsaga", "in": "query", - "name": "page", - "type": "integer" + "name": "app_id", + "type": "string" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" + }, + { + "default": false, + "description": "Include ratings histogram", + "in": "query", + "name": "ratings", + "type": "boolean" } ], "produces": [ @@ -40962,29 +43998,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/airbnb.HostListingsResponse" + "$ref": "#/definitions/appstore.appDetailsResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Not Found", + "description": "App not found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -40995,32 +44031,41 @@ "ApiKeyAuth": [] } ], - "summary": "Get Airbnb host listings", + "summary": "Retrieve full App Store app details", "tags": [ - "Airbnb" + "AppStore" ] } }, - "/airbnb/host/{id}/reviews": { + "/appstore/developer/{dev_id}": { "get": { "consumes": [ "application/json" ], - "description": "Returns reviews guests left for an Airbnb host, paginated, including the reviewer name and location.", - "operationId": "airbnb-host-reviews", + "description": "Returns App Store apps associated with a specific developer artist ID.", + "operationId": "appstore-developer", "parameters": [ { - "description": "Host id (numeric)", + "description": "Developer artist ID", + "example": "284882218", "in": "path", - "name": "id", + "name": "dev_id", "required": true, "type": "string" }, { - "description": "1-based page", + "description": "Two-letter storefront country code", + "example": "us", "in": "query", - "name": "page", - "type": "integer" + "name": "country", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" } ], "produces": [ @@ -41030,29 +44075,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/airbnb.HostReviewsResponse" + "$ref": "#/definitions/appstore.developerResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Not Found", + "description": "Developer not found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -41063,26 +44108,132 @@ "ApiKeyAuth": [] } ], - "summary": "Get Airbnb host reviews", + "summary": "Retrieve apps by developer ID", "tags": [ - "Airbnb" + "AppStore" ] } }, - "/airbnb/room/{id}": { + "/appstore/list": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Airbnb public room details.", - "operationId": "airbnb-room", + "description": "Returns ranked App Store apps from an iTunes RSS collection, optionally expanded to full lookup details.", + "operationId": "appstore-list", "parameters": [ { - "description": "Room id", + "description": "Collection slug", + "example": "topfreeapplications", + "in": "query", + "name": "collection", + "type": "string" + }, + { + "description": "Numeric App Store category ID", + "example": 6014, + "in": "query", + "name": "category", + "type": "integer" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" + }, + { + "description": "Number of apps to return", + "example": 50, + "in": "query", + "name": "num", + "type": "integer" + }, + { + "default": false, + "description": "Expand each app via lookup API", + "in": "query", + "name": "full_detail", + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/appstore.listResultsResponseDoc" + } + }, + "400": { + "description": "Missing or invalid parameters", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve App Store collection rankings", + "tags": [ + "AppStore" + ] + } + }, + "/appstore/privacy/{id}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the app privacy cards shown on the App Store page, including data categories and purposes.", + "operationId": "appstore-privacy", + "parameters": [ + { + "description": "App Store track ID", + "example": "324684580", "in": "path", "name": "id", "required": true, "type": "string" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" } ], "produces": [ @@ -41092,29 +44243,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/airbnb.RoomResponse" + "$ref": "#/definitions/appstore.privacyResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Not Found", + "description": "App not found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -41125,25 +44276,46 @@ "ApiKeyAuth": [] } ], - "summary": "Get Airbnb room", + "summary": "Retrieve App Store privacy disclosures", "tags": [ - "Airbnb" + "AppStore" ] } }, - "/airbnb/room/{id}/calendar": { + "/appstore/ratings": { "get": { "consumes": [ "application/json" ], - "description": "Returns public calendar month hints parsed from Airbnb room bootstrap data.", - "operationId": "airbnb-room-calendar", + "description": "Returns total ratings count and the 1-5 star histogram shown on the App Store product page.", + "operationId": "appstore-ratings", "parameters": [ { - "description": "Room id", - "in": "path", + "description": "App Store track ID", + "example": "553834731", + "in": "query", "name": "id", - "required": true, + "type": "string" + }, + { + "description": "App Store bundle ID", + "example": "com.midasplayer.apps.candycrushsaga", + "in": "query", + "name": "app_id", + "type": "string" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", "type": "string" } ], @@ -41154,29 +44326,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/airbnb.CalendarResponse" + "$ref": "#/definitions/appstore.ratingsResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Not Found", + "description": "App not found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -41187,32 +44359,163 @@ "ApiKeyAuth": [] } ], - "summary": "Get Airbnb room calendar", + "summary": "Retrieve App Store ratings histogram", "tags": [ - "Airbnb" + "AppStore" ] } }, - "/airbnb/room/{id}/reviews": { + "/appstore/reviews": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Airbnb public review snippets.", - "operationId": "airbnb-room-reviews", + "description": "Returns one page of customer reviews for an app. Provide either `id` or `app_id`.", + "operationId": "appstore-reviews", "parameters": [ { - "description": "Room id", - "in": "path", + "description": "App Store track ID", + "example": "553834731", + "in": "query", "name": "id", + "type": "string" + }, + { + "description": "App Store bundle ID", + "example": "com.midasplayer.apps.candycrushsaga", + "in": "query", + "name": "app_id", + "type": "string" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Review page number (1-10)", + "example": 1, + "in": "query", + "name": "page", + "type": "integer" + }, + { + "default": "mostRecent", + "description": "Sort order", + "enum": [ + "mostRecent", + "mostHelpful" + ], + "in": "query", + "name": "sort", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/appstore.reviewsResponseDoc" + } + }, + "400": { + "description": "Missing or invalid parameters", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "App not found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve App Store reviews", + "tags": [ + "AppStore" + ] + } + }, + "/appstore/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns App Store search results for a term. Set `ids_only=true` to return only app IDs.", + "operationId": "appstore-search", + "parameters": [ + { + "description": "Search term", + "example": "panda", + "in": "query", + "name": "term", "required": true, "type": "string" }, { - "description": "1-based page", + "description": "Number of apps per page", + "example": 50, + "in": "query", + "name": "num", + "type": "integer" + }, + { + "description": "Search page number (1-based)", + "example": 1, + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Result language tag", + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" + }, + { + "default": false, + "description": "Return only app IDs", "in": "query", - "name": "page", - "type": "integer" + "name": "ids_only", + "type": "boolean" } ], "produces": [ @@ -41222,29 +44525,23 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/airbnb.ReviewsResponse" + "$ref": "#/definitions/appstore.searchResultsResponseDoc" } }, "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "404": { - "description": "Not Found", + "description": "Missing or invalid parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -41255,86 +44552,47 @@ "ApiKeyAuth": [] } ], - "summary": "Get Airbnb room reviews", + "summary": "Search the App Store", "tags": [ - "Airbnb" + "AppStore" ] } }, - "/airbnb/search": { + "/appstore/similar": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Airbnb public web search results.", - "operationId": "airbnb-search", + "description": "Returns the related apps shown on the App Store product page. Provide either `id` or `app_id`.", + "operationId": "appstore-similar", "parameters": [ { - "description": "Location", + "description": "App Store track ID", + "example": "553834731", "in": "query", - "name": "location", - "required": true, + "name": "id", "type": "string" }, { - "description": "Check-in date", + "description": "App Store bundle ID", + "example": "com.midasplayer.apps.candycrushsaga", "in": "query", - "name": "check_in", + "name": "app_id", "type": "string" }, { - "description": "Check-out date", + "description": "Two-letter storefront country code", + "example": "us", "in": "query", - "name": "check_out", + "name": "country", "type": "string" }, { - "description": "Adult guests", - "in": "query", - "name": "adults", - "type": "integer" - }, - { - "description": "1-based page", - "in": "query", - "name": "page", - "type": "integer" - }, - { - "description": "Currency for bounded map search", + "description": "Result language tag", + "example": "en-us", "in": "query", - "name": "currency", + "name": "lang", "type": "string" - }, - { - "description": "Northeast latitude for bounded map search", - "in": "query", - "name": "ne_lat", - "type": "number" - }, - { - "description": "Northeast longitude for bounded map search", - "in": "query", - "name": "ne_lng", - "type": "number" - }, - { - "description": "Southwest latitude for bounded map search", - "in": "query", - "name": "sw_lat", - "type": "number" - }, - { - "description": "Southwest longitude for bounded map search", - "in": "query", - "name": "sw_lng", - "type": "number" - }, - { - "description": "Map zoom for bounded map search", - "in": "query", - "name": "zoom", - "type": "integer" } ], "produces": [ @@ -41344,23 +44602,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/airbnb.SearchResponse" + "$ref": "#/definitions/appstore.similarResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid parameters", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "App not found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -41371,46 +44635,33 @@ "ApiKeyAuth": [] } ], - "summary": "Search Airbnb stays", + "summary": "Retrieve \"You Might Also Like\" apps", "tags": [ - "Airbnb" + "AppStore" ] } }, - "/amazon/product/{asin}": { + "/appstore/suggest/{term}": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized product details for an Amazon ASIN on `amazon.com`, including pricing, availability, overview data, inline review samples, and descriptive content.", - "operationId": "amazon-product", + "description": "Returns suggested search terms for the given partial keyword.", + "operationId": "appstore-suggest", "parameters": [ { - "description": "Amazon ASIN", - "example": "B0DGJ736JM", + "description": "Partial search term", + "example": "panda", "in": "path", - "name": "asin", + "name": "term", "required": true, "type": "string" }, { - "default": "en_US", - "description": "Amazon language", - "enum": [ - "en_US" - ], - "in": "query", - "name": "language", - "type": "string" - }, - { - "default": "USD", - "description": "Amazon currency", - "enum": [ - "USD" - ], + "description": "Two-letter storefront country code", + "example": "us", "in": "query", - "name": "currency", + "name": "country", "type": "string" } ], @@ -41421,35 +44672,23 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/amazon.productResponseDoc" + "$ref": "#/definitions/appstore.suggestResponseDoc" } }, "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "404": { - "description": "Not Found", + "description": "Missing or invalid parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "503": { - "description": "Service Unavailable", + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -41460,41 +44699,41 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve Amazon product details", + "summary": "Retrieve App Store search suggestions", "tags": [ - "Amazon" + "AppStore" ] } }, - "/amazon/search": { + "/appstore/version-history/{id}": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Amazon search result cards for `amazon.com`.", - "operationId": "amazon-search", + "description": "Returns the version history entries shown in the App Store \"What's New\" section.", + "operationId": "appstore-version-history", "parameters": [ { - "description": "Search keyword", - "example": "apple watch", - "in": "query", - "name": "k", + "description": "App Store track ID", + "example": "553834731", + "in": "path", + "name": "id", "required": true, "type": "string" }, { - "description": "Sort order", - "example": "review-rank", + "description": "Two-letter storefront country code", + "example": "us", "in": "query", - "name": "s", + "name": "country", "type": "string" }, { - "description": "1-based page number", - "example": 1, + "description": "Result language tag", + "example": "en-us", "in": "query", - "name": "page", - "type": "integer" + "name": "lang", + "type": "string" } ], "produces": [ @@ -41504,35 +44743,70 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/amazon.searchResponseDoc" + "$ref": "#/definitions/appstore.versionHistoryResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Not Found", + "description": "App not found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal Server Error", + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve App Store version history", + "tags": [ + "AppStore" + ] + } + }, + "/billing/me": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the authenticated user's current billing plan, period, included credits, used credits, remaining credits, and overage status.", + "operationId": "billing-me", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Current billing state", + "schema": { + "$ref": "#/definitions/billing.billingStateResponseDoc" + } + }, + "401": { + "description": "Authentication required", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -41543,27 +44817,28 @@ "ApiKeyAuth": [] } ], - "summary": "Search Amazon products", + "summary": "Get current billing state", "tags": [ - "Amazon" + "Billing" ] } }, - "/amazon/suggest/{keyword}": { - "get": { + "/billing/me/checkout": { + "post": { "consumes": [ "application/json" ], - "description": "Returns typeahead keyword suggestions from Amazon's public suggestion API for `amazon.com`.", - "operationId": "amazon-suggest", + "description": "Creates a Stripe Checkout session for the authenticated user's selected paid billing plan. The created subscription is tagged with the local user id and plan so Stripe webhooks can link the customer and activate the plan after payment.", + "operationId": "billing-me-checkout", "parameters": [ { - "description": "Suggestion prefix", - "example": "apple", - "in": "path", - "name": "keyword", + "description": "Checkout request", + "in": "body", + "name": "request", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/billing.stripeCheckoutRequestDoc" + } } ], "produces": [ @@ -41571,37 +44846,25 @@ ], "responses": { "200": { - "description": "OK", + "description": "Stripe checkout session", "schema": { - "$ref": "#/definitions/amazon.suggestResponseDoc" + "$ref": "#/definitions/billing.stripeSessionResponseDoc" } }, "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "404": { - "description": "Not Found", + "description": "Invalid request or plan", "schema": { "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Too Many Requests", + "401": { + "description": "Authentication required", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "503": { - "description": "Service Unavailable", + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -41612,47 +44875,73 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve Amazon search suggestions", + "summary": "Create Stripe checkout session", "tags": [ - "Amazon" + "Billing" ] } }, - "/apple-podcasts/charts": { + "/billing/me/events": { "get": { "consumes": [ "application/json" ], - "description": "Returns Apple Podcasts show chart rankings from public iTunes RSS JSON feeds. Supported collections are `toppodcasts` and `topaudiopodcasts`.", - "operationId": "apple-podcasts-charts", + "description": "Returns recent billing audit events for the authenticated user, with optional filters for time range, endpoint, request id, event status, and billable flag. Invalid event_status values and reversed time ranges return invalid params.", + "operationId": "billing-me-events", "parameters": [ { - "description": "Chart collection", - "example": "toppodcasts", + "description": "Maximum records to return. Defaults to 50 and clamps to 100.", "in": "query", - "name": "collection", + "maximum": 100, + "minimum": 1, + "name": "limit", + "type": "integer" + }, + { + "description": "Created-at lower bound in RFC3339 format", + "example": "2026-04-01T00:00:00Z", + "in": "query", + "name": "from", "type": "string" }, { - "description": "Numeric Apple podcast genre ID", - "example": 1303, + "description": "Created-at upper bound in RFC3339 format", + "example": "2026-04-16T00:00:00Z", "in": "query", - "name": "category", - "type": "integer" + "name": "to", + "type": "string" }, { - "description": "Two-letter storefront country code", - "example": "us", + "description": "Normalized endpoint or API path", + "example": "google/search", "in": "query", - "name": "country", + "name": "endpoint", "type": "string" }, { - "description": "Number of chart items to return", - "example": 50, + "description": "Request id to inspect", + "example": "req-1", "in": "query", - "name": "limit", - "type": "integer" + "name": "request_id", + "type": "string" + }, + { + "description": "Billing event status", + "enum": [ + "reserved", + "charged", + "non_billable", + "failed" + ], + "in": "query", + "name": "event_status", + "type": "string" + }, + { + "description": "Filter billable or non-billable events", + "in": "query", + "name": "billable", + "type": "boolean" } ], "produces": [ @@ -41660,19 +44949,19 @@ ], "responses": { "200": { - "description": "OK", + "description": "Billing events", "schema": { - "$ref": "#/definitions/applepodcasts.chartsResponseDoc" + "$ref": "#/definitions/billing.billingEventsResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Invalid query parameters", "schema": { "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Rate limit exceeded", + "401": { + "description": "Authentication required", "schema": { "$ref": "#/definitions/app.Response" } @@ -41689,55 +44978,78 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve Apple Podcasts chart rankings", + "summary": "List current user's billing events", "tags": [ - "ApplePodcasts" + "Billing" ] } }, - "/apple-podcasts/episodes/search": { + "/billing/me/periods": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Apple Podcasts episodes from Apple's public iTunes Search API.", - "operationId": "apple-podcasts-episodes-search", + "description": "Returns recent local billing period ledgers for the authenticated user. Period ledgers are local reconciliation records built from billing events and are not charged credits.", + "operationId": "billing-me-periods", "parameters": [ { - "description": "Search term", - "example": "hardcore history", - "in": "query", - "name": "term", - "required": true, - "type": "string" - }, - { - "description": "Two-letter storefront country code", - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Result language tag", - "example": "en-us", - "in": "query", - "name": "lang", - "type": "string" - }, - { - "description": "Number of episodes per page", - "example": 50, + "description": "Maximum periods to return. Defaults to 12 and clamps to 24.", "in": "query", + "maximum": 24, + "minimum": 1, "name": "limit", "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Billing period ledgers", + "schema": { + "$ref": "#/definitions/billing.billingPeriodLedgersResponseDoc" + } + }, + "401": { + "description": "Authentication required", + "schema": { + "$ref": "#/definitions/app.Response" + } }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ { - "description": "Search page number (1-based)", - "example": 1, - "in": "query", - "name": "page", - "type": "integer" + "ApiKeyAuth": [] + } + ], + "summary": "List current user's billing period ledgers", + "tags": [ + "Billing" + ] + } + }, + "/billing/me/periods/{period_key}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns one billing period ledger for the authenticated user. If the ledger has not been materialized yet, it is rebuilt from billing events and stored locally. The period key must use YYYY-MM format.", + "operationId": "billing-me-period", + "parameters": [ + { + "description": "Billing period key in YYYY-MM format", + "example": "2026-04", + "in": "path", + "name": "period_key", + "required": true, + "type": "string" } ], "produces": [ @@ -41745,19 +45057,19 @@ ], "responses": { "200": { - "description": "OK", + "description": "Billing period ledger", "schema": { - "$ref": "#/definitions/applepodcasts.episodeSearchResponseDoc" + "$ref": "#/definitions/billing.billingPeriodLedgerResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Invalid period key", "schema": { "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Rate limit exceeded", + "401": { + "description": "Authentication required", "schema": { "$ref": "#/definitions/app.Response" } @@ -41774,54 +45086,40 @@ "ApiKeyAuth": [] } ], - "summary": "Search Apple Podcasts episodes", + "summary": "Get current user's billing period ledger", "tags": [ - "ApplePodcasts" + "Billing" ] } }, - "/apple-podcasts/search": { + "/billing/me/periods/{period_key}/statement": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Apple Podcasts shows from Apple's public iTunes Search API.", - "operationId": "apple-podcasts-search", + "description": "Returns a customer-safe JSON statement for one billing period, combining the local ledger, endpoint breakdown, optional billing events, and Stripe invoice evidence. Closed periods normally return a pre-frozen snapshot created during period close; historical closed periods without a snapshot are lazily frozen on read. Internal repair errors and raw webhook audit details are not exposed.", + "operationId": "billing-me-period-statement", "parameters": [ { - "description": "Search term", - "example": "hardcore history", - "in": "query", - "name": "term", + "description": "Billing period key in YYYY-MM format", + "example": "2026-04", + "in": "path", + "name": "period_key", "required": true, "type": "string" }, { - "description": "Two-letter storefront country code", - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Result language tag", - "example": "en-us", - "in": "query", - "name": "lang", - "type": "string" - }, - { - "description": "Number of shows per page", - "example": 50, + "description": "Include recent billing events. Defaults to true.", "in": "query", - "name": "limit", - "type": "integer" + "name": "include_events", + "type": "boolean" }, { - "description": "Search page number (1-based)", - "example": 1, + "description": "Maximum billing events to include. Defaults to 100 and clamps to 500.", "in": "query", - "name": "page", + "maximum": 500, + "minimum": 1, + "name": "event_limit", "type": "integer" } ], @@ -41830,19 +45128,19 @@ ], "responses": { "200": { - "description": "OK", + "description": "Billing period statement", "schema": { - "$ref": "#/definitions/applepodcasts.searchResponseDoc" + "$ref": "#/definitions/billing.billingPeriodStatementResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Invalid period key or query parameters", "schema": { "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Rate limit exceeded", + "401": { + "description": "Authentication required", "schema": { "$ref": "#/definitions/app.Response" } @@ -41859,41 +45157,27 @@ "ApiKeyAuth": [] } ], - "summary": "Search Apple Podcasts shows", + "summary": "Get current user's billing period statement", "tags": [ - "ApplePodcasts" + "Billing" ] } }, - "/apple-podcasts/show/{id}": { + "/billing/me/periods/{period_key}/statement/download": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized show metadata from Apple's public iTunes Lookup API.", - "operationId": "apple-podcasts-show", + "description": "Returns the exact customer-safe canonical JSON for a closed billing period statement snapshot. Closed periods are normally frozen during period close; if a historical closed period is missing a snapshot, the snapshot is lazily created before download. The raw response body is JSON, not the standard app envelope.", + "operationId": "billing-me-period-statement-download", "parameters": [ { - "description": "Apple Podcasts show ID", - "example": "173001861", + "description": "Billing period key in YYYY-MM format", + "example": "2026-04", "in": "path", - "name": "id", + "name": "period_key", "required": true, "type": "string" - }, - { - "description": "Two-letter storefront country code", - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Result language tag", - "example": "en-us", - "in": "query", - "name": "lang", - "type": "string" } ], "produces": [ @@ -41901,25 +45185,19 @@ ], "responses": { "200": { - "description": "OK", + "description": "Raw frozen customer statement JSON", "schema": { - "$ref": "#/definitions/applepodcasts.showResponseDoc" + "type": "string" } }, "400": { - "description": "Missing or invalid parameters", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "404": { - "description": "Show not found", + "description": "Invalid period key or open billing period", "schema": { "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Rate limit exceeded", + "401": { + "description": "Authentication required", "schema": { "$ref": "#/definitions/app.Response" } @@ -41936,48 +45214,28 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve Apple Podcasts show details", + "summary": "Download current user's frozen billing period statement", "tags": [ - "ApplePodcasts" + "Billing" ] } }, - "/apple-podcasts/show/{id}/episodes": { - "get": { + "/billing/me/portal": { + "post": { "consumes": [ "application/json" ], - "description": "Returns a show and its public Apple Podcasts episodes from Apple's iTunes Lookup API.", - "operationId": "apple-podcasts-show-episodes", + "description": "Creates a Stripe customer portal session for the authenticated user's linked Stripe customer so they can manage payment method, invoices, and subscription state.", + "operationId": "billing-me-portal", "parameters": [ { - "description": "Apple Podcasts show ID", - "example": "173001861", - "in": "path", - "name": "id", + "description": "Portal request", + "in": "body", + "name": "request", "required": true, - "type": "string" - }, - { - "description": "Two-letter storefront country code", - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Result language tag", - "example": "en-us", - "in": "query", - "name": "lang", - "type": "string" - }, - { - "description": "Number of episodes to return", - "example": 50, - "in": "query", - "name": "limit", - "type": "integer" + "schema": { + "$ref": "#/definitions/billing.stripePortalRequestDoc" + } } ], "produces": [ @@ -41985,25 +45243,19 @@ ], "responses": { "200": { - "description": "OK", + "description": "Stripe portal session", "schema": { - "$ref": "#/definitions/applepodcasts.showEpisodesResponseDoc" + "$ref": "#/definitions/billing.stripeSessionResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "404": { - "description": "Show not found", + "description": "Invalid request", "schema": { "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Rate limit exceeded", + "401": { + "description": "Authentication required", "schema": { "$ref": "#/definitions/app.Response" } @@ -42020,54 +45272,58 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve Apple Podcasts show episodes", + "summary": "Create Stripe billing portal session", "tags": [ - "ApplePodcasts" + "Billing" ] } }, - "/appstore/app": { + "/bing/images": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized app metadata from the App Store lookup API. Provide either `id` or `app_id`.", - "operationId": "appstore-app", + "description": "Returns normalized Bing image search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Bing image HTML/async pages and return 503 when Bing serves a challenge page or unusable HTML.", + "operationId": "bing-images", "parameters": [ { - "description": "App Store track ID", - "example": "553834731", + "description": "Search query", + "example": "openai", "in": "query", - "name": "id", + "name": "q", + "required": true, "type": "string" }, { - "description": "App Store bundle ID", - "example": "com.midasplayer.apps.candycrushsaga", + "description": "1-based page number; defaults to 1", + "example": 1, "in": "query", - "name": "app_id", - "type": "string" + "minimum": 1, + "name": "page", + "type": "integer" }, { - "description": "Two-letter storefront country code", + "description": "Results per page; defaults to 10, clamped to 1..50", + "example": 10, + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "count", + "type": "integer" + }, + { + "description": "Two-letter country code; defaults to us", "example": "us", "in": "query", "name": "country", "type": "string" }, { - "description": "Result language tag", + "description": "Bing UI language; defaults to en-us", "example": "en-us", "in": "query", "name": "lang", "type": "string" - }, - { - "default": false, - "description": "Include ratings histogram", - "in": "query", - "name": "ratings", - "type": "boolean" } ], "produces": [ @@ -42077,17 +45333,17 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/appstore.appDetailsResponseDoc" + "$ref": "#/definitions/bing.imagesResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Missing or invalid query parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "App not found", + "description": "No results found", "schema": { "$ref": "#/definitions/app.Response" } @@ -42103,6 +45359,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Bing upstream request failed", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -42110,37 +45372,54 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve full App Store app details", + "summary": "Search Bing image results", "tags": [ - "AppStore" + "Bing" ] } }, - "/appstore/developer/{dev_id}": { + "/bing/news": { "get": { "consumes": [ "application/json" ], - "description": "Returns App Store apps associated with a specific developer artist ID.", - "operationId": "appstore-developer", + "description": "Returns normalized Bing news search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Bing news HTML/async pages and return 503 when Bing serves a challenge page or unusable HTML.", + "operationId": "bing-news", "parameters": [ { - "description": "Developer artist ID", - "example": "284882218", - "in": "path", - "name": "dev_id", + "description": "Search query", + "example": "openai", + "in": "query", + "name": "q", "required": true, "type": "string" }, { - "description": "Two-letter storefront country code", + "description": "1-based page number; defaults to 1", + "example": 1, + "in": "query", + "minimum": 1, + "name": "page", + "type": "integer" + }, + { + "description": "Results per page; defaults to 10, clamped to 1..50", + "example": 10, + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "count", + "type": "integer" + }, + { + "description": "Two-letter country code; defaults to us", "example": "us", "in": "query", "name": "country", "type": "string" }, { - "description": "Result language tag", + "description": "Bing UI language; defaults to en-us", "example": "en-us", "in": "query", "name": "lang", @@ -42154,17 +45433,17 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/appstore.developerResponseDoc" + "$ref": "#/definitions/bing.newsResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Missing or invalid query parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Developer not found", + "description": "No results found", "schema": { "$ref": "#/definitions/app.Response" } @@ -42180,6 +45459,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Bing upstream request failed", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -42187,61 +45472,58 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve apps by developer ID", + "summary": "Search Bing news results", "tags": [ - "AppStore" + "Bing" ] } }, - "/appstore/list": { + "/bing/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns ranked App Store apps from an iTunes RSS collection, optionally expanded to full lookup details.", - "operationId": "appstore-list", + "description": "Returns normalized Bing web search results for a query string, including organic results, optional context panel data, related queries, people-also-ask questions, news modules, video modules, and page-based pagination. Empty optional blocks are omitted from the JSON response. Locale defaults to country=us and lang=en-us. Results are fetched with a Chrome-impersonated request client and return 503 when Bing serves a challenge page or unusable HTML. Queries that use the site: operator (for example site:gov.hu) are not supported: Bing serves a bot-verification challenge for them, so they are rejected with 400 before any request is made. Use the Google search endpoint (/api/v1/google/search) for domain-restricted searches.", + "operationId": "bing-search", "parameters": [ { - "description": "Collection slug", - "example": "topfreeapplications", + "description": "Search query", + "example": "openai", "in": "query", - "name": "collection", + "name": "q", + "required": true, "type": "string" }, { - "description": "Numeric App Store category ID", - "example": 6014, + "description": "1-based page number; defaults to 1", + "example": 1, "in": "query", - "name": "category", + "minimum": 1, + "name": "page", "type": "integer" }, { - "description": "Two-letter storefront country code", + "description": "Results per page; defaults to 10, clamped to 1..50", + "example": 10, + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "count", + "type": "integer" + }, + { + "description": "Two-letter country code; defaults to us", "example": "us", "in": "query", "name": "country", "type": "string" }, { - "description": "Result language tag", + "description": "Bing UI language; defaults to en-us", "example": "en-us", "in": "query", "name": "lang", "type": "string" - }, - { - "description": "Number of apps to return", - "example": 50, - "in": "query", - "name": "num", - "type": "integer" - }, - { - "default": false, - "description": "Expand each app via lookup API", - "in": "query", - "name": "full_detail", - "type": "boolean" } ], "produces": [ @@ -42251,11 +45533,17 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/appstore.listResultsResponseDoc" + "$ref": "#/definitions/bing.searchResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Missing or invalid query parameters", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "No results found", "schema": { "$ref": "#/definitions/app.Response" } @@ -42271,6 +45559,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Bing upstream request failed", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -42278,37 +45572,46 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve App Store collection rankings", + "summary": "Search Bing web results", "tags": [ - "AppStore" + "Bing" ] } }, - "/appstore/privacy/{id}": { + "/bing/suggest": { "get": { "consumes": [ "application/json" ], - "description": "Returns the app privacy cards shown on the App Store page, including data categories and purposes.", - "operationId": "appstore-privacy", + "description": "Returns Bing autosuggest query completions for a query prefix. Locale defaults to country=us and lang=en-us. Suggestions are fetched from public Bing suggest endpoints and trimmed to the requested count.", + "operationId": "bing-suggest", "parameters": [ { - "description": "App Store track ID", - "example": "324684580", - "in": "path", - "name": "id", + "description": "Search query prefix", + "example": "openai", + "in": "query", + "name": "q", "required": true, "type": "string" }, { - "description": "Two-letter storefront country code", + "description": "Suggestions to return; defaults to 10, clamped to 1..12", + "example": 10, + "in": "query", + "maximum": 12, + "minimum": 1, + "name": "count", + "type": "integer" + }, + { + "description": "Two-letter country code; defaults to us", "example": "us", "in": "query", "name": "country", "type": "string" }, { - "description": "Result language tag", + "description": "Bing UI language; defaults to en-us", "example": "en-us", "in": "query", "name": "lang", @@ -42322,17 +45625,11 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/appstore.privacyResponseDoc" + "$ref": "#/definitions/bing.suggestResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "404": { - "description": "App not found", + "description": "Missing or invalid query parameters", "schema": { "$ref": "#/definitions/app.Response" } @@ -42348,6 +45645,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Bing upstream request failed", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -42355,43 +45658,54 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve App Store privacy disclosures", + "summary": "Suggest Bing search queries", "tags": [ - "AppStore" + "Bing" ] } }, - "/appstore/ratings": { + "/bing/videos": { "get": { "consumes": [ "application/json" ], - "description": "Returns total ratings count and the 1-5 star histogram shown on the App Store product page.", - "operationId": "appstore-ratings", + "description": "Returns normalized Bing video search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Bing video HTML/async pages and return 503 when Bing serves a challenge page or unusable HTML.", + "operationId": "bing-videos", "parameters": [ { - "description": "App Store track ID", - "example": "553834731", + "description": "Search query", + "example": "openai", "in": "query", - "name": "id", + "name": "q", + "required": true, "type": "string" }, { - "description": "App Store bundle ID", - "example": "com.midasplayer.apps.candycrushsaga", + "description": "1-based page number; defaults to 1", + "example": 1, "in": "query", - "name": "app_id", - "type": "string" + "minimum": 1, + "name": "page", + "type": "integer" }, { - "description": "Two-letter storefront country code", + "description": "Results per page; defaults to 10, clamped to 1..50", + "example": 10, + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "count", + "type": "integer" + }, + { + "description": "Two-letter country code; defaults to us", "example": "us", "in": "query", "name": "country", "type": "string" }, { - "description": "Result language tag", + "description": "Bing UI language; defaults to en-us", "example": "en-us", "in": "query", "name": "lang", @@ -42405,17 +45719,17 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/appstore.ratingsResponseDoc" + "$ref": "#/definitions/bing.videosResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Missing or invalid query parameters", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "App not found", + "description": "No results found", "schema": { "$ref": "#/definitions/app.Response" } @@ -42431,6 +45745,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Bing upstream request failed", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -42438,64 +45758,39 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve App Store ratings histogram", + "summary": "Search Bing video results", "tags": [ - "AppStore" + "Bing" ] } }, - "/appstore/reviews": { + "/boxofficemojo/brand": { "get": { "consumes": [ "application/json" ], - "description": "Returns one page of customer reviews for an app. Provide either `id` or `app_id`.", - "operationId": "appstore-reviews", + "description": "Returns normalized release rows from a public Box Office Mojo brand page. Pass exactly one of `id`, `path`, or `url`.", + "operationId": "boxofficemojo-brand", "parameters": [ { - "description": "App Store track ID", - "example": "553834731", + "description": "Box Office Mojo brand id", + "example": "bn3732077058", "in": "query", "name": "id", "type": "string" }, { - "description": "App Store bundle ID", - "example": "com.midasplayer.apps.candycrushsaga", - "in": "query", - "name": "app_id", - "type": "string" - }, - { - "description": "Two-letter storefront country code", - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Review page number (1-10)", - "example": 1, - "in": "query", - "name": "page", - "type": "integer" - }, - { - "default": "mostRecent", - "description": "Sort order", - "enum": [ - "mostRecent", - "mostHelpful" - ], + "description": "Box Office Mojo brand path", + "example": "/brand/bn3732077058/", "in": "query", - "name": "sort", + "name": "path", "type": "string" }, { - "description": "Result language tag", - "example": "en-us", + "description": "Absolute https://www.boxofficemojo.com brand URL", + "example": "https://www.boxofficemojo.com/brand/bn3732077058/", "in": "query", - "name": "lang", + "name": "url", "type": "string" } ], @@ -42506,29 +45801,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/appstore.reviewsResponseDoc" + "$ref": "#/definitions/boxofficemojo.taxonomyDetailResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "App not found", + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Rate limit exceeded", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -42539,64 +45840,19 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve App Store reviews", + "summary": "Box Office Mojo brand detail", "tags": [ - "AppStore" + "Box Office Mojo" ] } }, - "/appstore/search": { + "/boxofficemojo/brands": { "get": { "consumes": [ - "application/json" - ], - "description": "Returns App Store search results for a term. Set `ids_only=true` to return only app IDs.", - "operationId": "appstore-search", - "parameters": [ - { - "description": "Search term", - "example": "panda", - "in": "query", - "name": "term", - "required": true, - "type": "string" - }, - { - "description": "Number of apps per page", - "example": 50, - "in": "query", - "name": "num", - "type": "integer" - }, - { - "description": "Search page number (1-based)", - "example": 1, - "in": "query", - "name": "page", - "type": "integer" - }, - { - "description": "Two-letter storefront country code", - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Result language tag", - "example": "en-us", - "in": "query", - "name": "lang", - "type": "string" - }, - { - "default": false, - "description": "Return only app IDs", - "in": "query", - "name": "ids_only", - "type": "boolean" - } + "application/json" ], + "description": "Returns normalized rows from Box Office Mojo's public brand chart.", + "operationId": "boxofficemojo-brands", "produces": [ "application/json" ], @@ -42604,23 +45860,23 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/appstore.searchResultsResponseDoc" + "$ref": "#/definitions/boxofficemojo.taxonomyListResponseDoc" } }, - "400": { - "description": "Missing or invalid parameters", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Rate limit exceeded", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal server error", + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -42631,47 +45887,35 @@ "ApiKeyAuth": [] } ], - "summary": "Search the App Store", + "summary": "Box Office Mojo brand chart", "tags": [ - "AppStore" + "Box Office Mojo" ] } }, - "/appstore/similar": { + "/boxofficemojo/calendar": { "get": { "consumes": [ "application/json" ], - "description": "Returns the related apps shown on the App Store product page. Provide either `id` or `app_id`.", - "operationId": "appstore-similar", + "description": "Returns normalized grouped rows from Box Office Mojo's public domestic release schedule. Provide `year` and `month`.", + "operationId": "boxofficemojo-calendar", "parameters": [ { - "description": "App Store track ID", - "example": "553834731", - "in": "query", - "name": "id", - "type": "string" - }, - { - "description": "App Store bundle ID", - "example": "com.midasplayer.apps.candycrushsaga", - "in": "query", - "name": "app_id", - "type": "string" - }, - { - "description": "Two-letter storefront country code", - "example": "us", + "description": "Calendar year, from 1921 through 2100", + "example": 2026, "in": "query", - "name": "country", - "type": "string" + "name": "year", + "required": true, + "type": "integer" }, { - "description": "Result language tag", - "example": "en-us", + "description": "Calendar month, 1 through 12", + "example": 9, "in": "query", - "name": "lang", - "type": "string" + "name": "month", + "required": true, + "type": "integer" } ], "produces": [ @@ -42681,29 +45925,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/appstore.similarResponseDoc" + "$ref": "#/definitions/boxofficemojo.calendarResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "App not found", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Rate limit exceeded", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal server error", + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -42714,34 +45958,26 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve \"You Might Also Like\" apps", + "summary": "Box Office Mojo domestic release schedule", "tags": [ - "AppStore" + "Box Office Mojo" ] } }, - "/appstore/suggest/{term}": { + "/boxofficemojo/calendar/changes": { "get": { "consumes": [ "application/json" ], - "description": "Returns suggested search terms for the given partial keyword.", - "operationId": "appstore-suggest", + "description": "Returns normalized grouped rows from Box Office Mojo's public domestic release-schedule changes page.", + "operationId": "boxofficemojo-calendar-changes", "parameters": [ { - "description": "Partial search term", - "example": "panda", - "in": "path", - "name": "term", - "required": true, - "type": "string" - }, - { - "description": "Two-letter storefront country code", - "example": "us", + "description": "Changes page offset. Allowed values: 0, 30, 60, ... 780", + "example": 0, "in": "query", - "name": "country", - "type": "string" + "name": "offset", + "type": "integer" } ], "produces": [ @@ -42751,23 +45987,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/appstore.suggestResponseDoc" + "$ref": "#/definitions/boxofficemojo.calendarChangesResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Rate limit exceeded", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -42778,40 +46020,26 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve App Store search suggestions", + "summary": "Box Office Mojo domestic release schedule changes", "tags": [ - "AppStore" + "Box Office Mojo" ] } }, - "/appstore/version-history/{id}": { + "/boxofficemojo/calendar/date": { "get": { "consumes": [ "application/json" ], - "description": "Returns the version history entries shown in the App Store \"What's New\" section.", - "operationId": "appstore-version-history", + "description": "Returns normalized release rows for one public Box Office Mojo domestic release-schedule date.", + "operationId": "boxofficemojo-calendar-date", "parameters": [ { - "description": "App Store track ID", - "example": "553834731", - "in": "path", - "name": "id", - "required": true, - "type": "string" - }, - { - "description": "Two-letter storefront country code", - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Result language tag", - "example": "en-us", + "description": "Calendar date in YYYY-MM-DD format", + "example": "2026-09-04", "in": "query", - "name": "lang", + "name": "date", + "required": true, "type": "string" } ], @@ -42822,70 +46050,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/appstore.versionHistoryResponseDoc" + "$ref": "#/definitions/boxofficemojo.calendarDateResponseDoc" } }, "400": { - "description": "Missing or invalid parameters", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "App not found", + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Rate limit exceeded", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", - "schema": { - "$ref": "#/definitions/app.Response" - } - } - }, - "security": [ - { - "ApiKeyAuth": [] - } - ], - "summary": "Retrieve App Store version history", - "tags": [ - "AppStore" - ] - } - }, - "/billing/me": { - "get": { - "consumes": [ - "application/json" - ], - "description": "Returns the authenticated user's current billing plan, period, included credits, used credits, remaining credits, and overage status.", - "operationId": "billing-me", - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "Current billing state", - "schema": { - "$ref": "#/definitions/billing.billingStateResponseDoc" - } - }, - "401": { - "description": "Authentication required", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal server error", + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -42896,28 +46089,27 @@ "ApiKeyAuth": [] } ], - "summary": "Get current billing state", + "summary": "Box Office Mojo domestic release schedule date", "tags": [ - "Billing" + "Box Office Mojo" ] } }, - "/billing/me/checkout": { - "post": { + "/boxofficemojo/date/domestic": { + "get": { "consumes": [ "application/json" ], - "description": "Creates a Stripe Checkout session for the authenticated user's selected paid billing plan. The created subscription is tagged with the local user id and plan so Stripe webhooks can link the customer and activate the plan after payment.", - "operationId": "billing-me-checkout", + "description": "Returns normalized rows from Box Office Mojo's public domestic daily chart. Empty upstream daily pages return a typed not-found error rather than an empty success.", + "operationId": "boxofficemojo-date-domestic", "parameters": [ { - "description": "Checkout request", - "in": "body", - "name": "request", + "description": "Domestic box office date in YYYY-MM-DD format", + "example": "2025-12-25", + "in": "query", + "name": "date", "required": true, - "schema": { - "$ref": "#/definitions/billing.stripeCheckoutRequestDoc" - } + "type": "string" } ], "produces": [ @@ -42925,25 +46117,37 @@ ], "responses": { "200": { - "description": "Stripe checkout session", + "description": "OK", "schema": { - "$ref": "#/definitions/billing.stripeSessionResponseDoc" + "$ref": "#/definitions/boxofficemojo.domesticDateResponseDoc" } }, "400": { - "description": "Invalid request or plan", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, - "401": { - "description": "Authentication required", + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -42954,73 +46158,40 @@ "ApiKeyAuth": [] } ], - "summary": "Create Stripe checkout session", + "summary": "Box Office Mojo domestic daily box office", "tags": [ - "Billing" + "Box Office Mojo" ] } }, - "/billing/me/events": { + "/boxofficemojo/franchise": { "get": { "consumes": [ "application/json" ], - "description": "Returns recent billing audit events for the authenticated user, with optional filters for time range, endpoint, request id, event status, and billable flag. Invalid event_status values and reversed time ranges return invalid params.", - "operationId": "billing-me-events", + "description": "Returns normalized release rows from a public Box Office Mojo franchise page. Pass exactly one of `id`, `path`, or `url`.", + "operationId": "boxofficemojo-franchise", "parameters": [ { - "description": "Maximum records to return. Defaults to 50 and clamps to 100.", - "in": "query", - "maximum": 100, - "minimum": 1, - "name": "limit", - "type": "integer" - }, - { - "description": "Created-at lower bound in RFC3339 format", - "example": "2026-04-01T00:00:00Z", - "in": "query", - "name": "from", - "type": "string" - }, - { - "description": "Created-at upper bound in RFC3339 format", - "example": "2026-04-16T00:00:00Z", - "in": "query", - "name": "to", - "type": "string" - }, - { - "description": "Normalized endpoint or API path", - "example": "google/search", + "description": "Box Office Mojo franchise id", + "example": "fr541495045", "in": "query", - "name": "endpoint", + "name": "id", "type": "string" }, { - "description": "Request id to inspect", - "example": "req-1", + "description": "Box Office Mojo franchise path", + "example": "/franchise/fr541495045/", "in": "query", - "name": "request_id", + "name": "path", "type": "string" }, { - "description": "Billing event status", - "enum": [ - "reserved", - "charged", - "non_billable", - "failed" - ], + "description": "Absolute https://www.boxofficemojo.com franchise URL", + "example": "https://www.boxofficemojo.com/franchise/fr541495045/", "in": "query", - "name": "event_status", + "name": "url", "type": "string" - }, - { - "description": "Filter billable or non-billable events", - "in": "query", - "name": "billable", - "type": "boolean" } ], "produces": [ @@ -43028,25 +46199,37 @@ ], "responses": { "200": { - "description": "Billing events", + "description": "OK", "schema": { - "$ref": "#/definitions/billing.billingEventsResponseDoc" + "$ref": "#/definitions/boxofficemojo.taxonomyDetailResponseDoc" } }, "400": { - "description": "Invalid query parameters", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, - "401": { - "description": "Authentication required", + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43057,47 +46240,43 @@ "ApiKeyAuth": [] } ], - "summary": "List current user's billing events", + "summary": "Box Office Mojo franchise detail", "tags": [ - "Billing" + "Box Office Mojo" ] } }, - "/billing/me/periods": { + "/boxofficemojo/franchises": { "get": { "consumes": [ "application/json" ], - "description": "Returns recent local billing period ledgers for the authenticated user. Period ledgers are local reconciliation records built from billing events and are not charged credits.", - "operationId": "billing-me-periods", - "parameters": [ - { - "description": "Maximum periods to return. Defaults to 12 and clamps to 24.", - "in": "query", - "maximum": 24, - "minimum": 1, - "name": "limit", - "type": "integer" - } - ], + "description": "Returns normalized rows from Box Office Mojo's public franchise chart.", + "operationId": "boxofficemojo-franchises", "produces": [ "application/json" ], "responses": { "200": { - "description": "Billing period ledgers", + "description": "OK", "schema": { - "$ref": "#/definitions/billing.billingPeriodLedgersResponseDoc" + "$ref": "#/definitions/boxofficemojo.taxonomyListResponseDoc" } }, - "401": { - "description": "Authentication required", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43108,26 +46287,39 @@ "ApiKeyAuth": [] } ], - "summary": "List current user's billing period ledgers", + "summary": "Box Office Mojo franchise chart", "tags": [ - "Billing" + "Box Office Mojo" ] } }, - "/billing/me/periods/{period_key}": { + "/boxofficemojo/genre": { "get": { "consumes": [ "application/json" ], - "description": "Returns one billing period ledger for the authenticated user. If the ledger has not been materialized yet, it is rebuilt from billing events and stored locally. The period key must use YYYY-MM format.", - "operationId": "billing-me-period", + "description": "Returns normalized release rows from a public Box Office Mojo genre page. Pass exactly one of `id`, `path`, or `url`.", + "operationId": "boxofficemojo-genre", "parameters": [ { - "description": "Billing period key in YYYY-MM format", - "example": "2026-04", - "in": "path", - "name": "period_key", - "required": true, + "description": "Box Office Mojo genre id", + "example": "sg3621777665", + "in": "query", + "name": "id", + "type": "string" + }, + { + "description": "Box Office Mojo genre path", + "example": "/genre/sg3621777665/", + "in": "query", + "name": "path", + "type": "string" + }, + { + "description": "Absolute https://www.boxofficemojo.com genre URL", + "example": "https://www.boxofficemojo.com/genre/sg3621777665/", + "in": "query", + "name": "url", "type": "string" } ], @@ -43136,25 +46328,37 @@ ], "responses": { "200": { - "description": "Billing period ledger", + "description": "OK", "schema": { - "$ref": "#/definitions/billing.billingPeriodLedgerResponseDoc" + "$ref": "#/definitions/boxofficemojo.taxonomyDetailResponseDoc" } }, "400": { - "description": "Invalid period key", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, - "401": { - "description": "Authentication required", + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43165,67 +46369,43 @@ "ApiKeyAuth": [] } ], - "summary": "Get current user's billing period ledger", + "summary": "Box Office Mojo genre detail", "tags": [ - "Billing" + "Box Office Mojo" ] } }, - "/billing/me/periods/{period_key}/statement": { + "/boxofficemojo/genres": { "get": { "consumes": [ "application/json" ], - "description": "Returns a customer-safe JSON statement for one billing period, combining the local ledger, endpoint breakdown, optional billing events, and Stripe invoice evidence. Closed periods normally return a pre-frozen snapshot created during period close; historical closed periods without a snapshot are lazily frozen on read. Internal repair errors and raw webhook audit details are not exposed.", - "operationId": "billing-me-period-statement", - "parameters": [ - { - "description": "Billing period key in YYYY-MM format", - "example": "2026-04", - "in": "path", - "name": "period_key", - "required": true, - "type": "string" - }, - { - "description": "Include recent billing events. Defaults to true.", - "in": "query", - "name": "include_events", - "type": "boolean" - }, - { - "description": "Maximum billing events to include. Defaults to 100 and clamps to 500.", - "in": "query", - "maximum": 500, - "minimum": 1, - "name": "event_limit", - "type": "integer" - } - ], + "description": "Returns normalized rows from Box Office Mojo's public genre chart.", + "operationId": "boxofficemojo-genres", "produces": [ "application/json" ], "responses": { "200": { - "description": "Billing period statement", + "description": "OK", "schema": { - "$ref": "#/definitions/billing.billingPeriodStatementResponseDoc" + "$ref": "#/definitions/boxofficemojo.taxonomyListResponseDoc" } }, - "400": { - "description": "Invalid period key or query parameters", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "401": { - "description": "Authentication required", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal server error", + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43236,27 +46416,37 @@ "ApiKeyAuth": [] } ], - "summary": "Get current user's billing period statement", + "summary": "Box Office Mojo genre chart", "tags": [ - "Billing" + "Box Office Mojo" ] } }, - "/billing/me/periods/{period_key}/statement/download": { + "/boxofficemojo/lifetime-grosses": { "get": { "consumes": [ "application/json" ], - "description": "Returns the exact customer-safe canonical JSON for a closed billing period statement snapshot. Closed periods are normally frozen during period close; if a historical closed period is missing a snapshot, the snapshot is lazily created before download. The raw response body is JSON, not the standard app envelope.", - "operationId": "billing-me-period-statement-download", + "description": "Returns normalized rows from Box Office Mojo's credential-free lifetime gross chart. `area` values: `worldwide`, `domestic`.", + "operationId": "boxofficemojo-lifetime-grosses", "parameters": [ { - "description": "Billing period key in YYYY-MM format", - "example": "2026-04", - "in": "path", - "name": "period_key", - "required": true, + "description": "Chart area. Allowed values: worldwide, domestic", + "enum": [ + "worldwide", + "domestic" + ], + "example": "worldwide", + "in": "query", + "name": "area", "type": "string" + }, + { + "description": "Chart page offset. Allowed values: 0, 200, 400, 600, 800", + "example": 0, + "in": "query", + "name": "offset", + "type": "integer" } ], "produces": [ @@ -43264,25 +46454,31 @@ ], "responses": { "200": { - "description": "Raw frozen customer statement JSON", + "description": "OK", "schema": { - "type": "string" + "$ref": "#/definitions/boxofficemojo.lifetimeGrossesResponseDoc" } }, "400": { - "description": "Invalid period key or open billing period", + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "401": { - "description": "Authentication required", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal server error", + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43293,28 +46489,40 @@ "ApiKeyAuth": [] } ], - "summary": "Download current user's frozen billing period statement", + "summary": "Box Office Mojo lifetime gross chart", "tags": [ - "Billing" + "Box Office Mojo" ] } }, - "/billing/me/portal": { - "post": { + "/boxofficemojo/release": { + "get": { "consumes": [ "application/json" ], - "description": "Creates a Stripe customer portal session for the authenticated user's linked Stripe customer so they can manage payment method, invoices, and subscription state.", - "operationId": "billing-me-portal", + "description": "Returns normalized Box Office Mojo release summary fields and domestic daily rows from a public release page. Pass exactly one of `id`, `path`, or `url`.", + "operationId": "boxofficemojo-release", "parameters": [ { - "description": "Portal request", - "in": "body", - "name": "request", - "required": true, - "schema": { - "$ref": "#/definitions/billing.stripePortalRequestDoc" - } + "description": "Box Office Mojo release id", + "example": "rl3389031937", + "in": "query", + "name": "id", + "type": "string" + }, + { + "description": "Box Office Mojo release path", + "example": "/release/rl3389031937/", + "in": "query", + "name": "path", + "type": "string" + }, + { + "description": "Absolute https://www.boxofficemojo.com release URL", + "example": "https://www.boxofficemojo.com/release/rl3389031937/", + "in": "query", + "name": "url", + "type": "string" } ], "produces": [ @@ -43322,25 +46530,37 @@ ], "responses": { "200": { - "description": "Stripe portal session", + "description": "OK", "schema": { - "$ref": "#/definitions/billing.stripeSessionResponseDoc" + "$ref": "#/definitions/boxofficemojo.releaseResponseDoc" } }, "400": { - "description": "Invalid request", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, - "401": { - "description": "Authentication required", + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43351,57 +46571,39 @@ "ApiKeyAuth": [] } ], - "summary": "Create Stripe billing portal session", + "summary": "Box Office Mojo release detail", "tags": [ - "Billing" + "Box Office Mojo" ] } }, - "/bing/images": { + "/boxofficemojo/release-group": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Bing image search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Bing image HTML/async pages and return 503 when Bing serves a challenge page or unusable HTML.", - "operationId": "bing-images", + "description": "Returns normalized market release rows grouped by region from a public Box Office Mojo release-group page. Pass exactly one of `id`, `path`, or `url`.", + "operationId": "boxofficemojo-release-group", "parameters": [ { - "description": "Search query", - "example": "openai", + "description": "Box Office Mojo release-group id", + "example": "gr3486798341", "in": "query", - "name": "q", - "required": true, + "name": "id", "type": "string" }, { - "description": "1-based page number; defaults to 1", - "example": 1, - "in": "query", - "minimum": 1, - "name": "page", - "type": "integer" - }, - { - "description": "Results per page; defaults to 10, clamped to 1..50", - "example": 10, - "in": "query", - "maximum": 50, - "minimum": 1, - "name": "count", - "type": "integer" - }, - { - "description": "Two-letter country code; defaults to us", - "example": "us", + "description": "Box Office Mojo release-group path", + "example": "/releasegroup/gr3486798341/", "in": "query", - "name": "country", + "name": "path", "type": "string" }, { - "description": "Bing UI language; defaults to en-us", - "example": "en-us", + "description": "Absolute https://www.boxofficemojo.com release-group URL", + "example": "https://www.boxofficemojo.com/releasegroup/gr3486798341/", "in": "query", - "name": "lang", + "name": "url", "type": "string" } ], @@ -43412,35 +46614,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/bing.imagesResponseDoc" + "$ref": "#/definitions/boxofficemojo.releaseGroupResponseDoc" } }, "400": { - "description": "Missing or invalid query parameters", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "No results found", + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Rate limit exceeded", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Bing upstream request failed", + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43451,57 +46653,39 @@ "ApiKeyAuth": [] } ], - "summary": "Search Bing image results", + "summary": "Box Office Mojo release group detail", "tags": [ - "Bing" + "Box Office Mojo" ] } }, - "/bing/news": { + "/boxofficemojo/showdown": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Bing news search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Bing news HTML/async pages and return 503 when Bing serves a challenge page or unusable HTML.", - "operationId": "bing-news", + "description": "Returns normalized release comparison metrics from a public Box Office Mojo showdown page. Pass exactly one of `id`, `path`, or `url`.", + "operationId": "boxofficemojo-showdown", "parameters": [ { - "description": "Search query", - "example": "openai", + "description": "Box Office Mojo showdown id", + "example": "sd943519236", "in": "query", - "name": "q", - "required": true, + "name": "id", "type": "string" }, { - "description": "1-based page number; defaults to 1", - "example": 1, - "in": "query", - "minimum": 1, - "name": "page", - "type": "integer" - }, - { - "description": "Results per page; defaults to 10, clamped to 1..50", - "example": 10, - "in": "query", - "maximum": 50, - "minimum": 1, - "name": "count", - "type": "integer" - }, - { - "description": "Two-letter country code; defaults to us", - "example": "us", + "description": "Box Office Mojo showdown path", + "example": "/showdown/sd943519236/", "in": "query", - "name": "country", + "name": "path", "type": "string" }, { - "description": "Bing UI language; defaults to en-us", - "example": "en-us", + "description": "Absolute https://www.boxofficemojo.com showdown URL", + "example": "https://www.boxofficemojo.com/showdown/sd943519236/", "in": "query", - "name": "lang", + "name": "url", "type": "string" } ], @@ -43512,35 +46696,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/bing.newsResponseDoc" + "$ref": "#/definitions/boxofficemojo.showdownResponseDoc" } }, "400": { - "description": "Missing or invalid query parameters", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "No results found", + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Rate limit exceeded", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Bing upstream request failed", + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43551,57 +46735,86 @@ "ApiKeyAuth": [] } ], - "summary": "Search Bing news results", + "summary": "Box Office Mojo showdown detail", "tags": [ - "Bing" + "Box Office Mojo" ] } }, - "/bing/search": { + "/boxofficemojo/showdowns": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Bing web search results for a query string, including organic results, optional context panel data, related queries, people-also-ask questions, news modules, video modules, and page-based pagination. Empty optional blocks are omitted from the JSON response. Locale defaults to country=us and lang=en-us. Results are fetched with the repo's Chrome-impersonated request client and return 503 when Bing serves a challenge page or unusable HTML.", - "operationId": "bing-search", - "parameters": [ - { - "description": "Search query", - "example": "openai", - "in": "query", - "name": "q", - "required": true, - "type": "string" + "description": "Returns normalized comparison rows from Box Office Mojo's public showdowns page.", + "operationId": "boxofficemojo-showdowns", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/boxofficemojo.showdownsResponseDoc" + } }, - { - "description": "1-based page number; defaults to 1", - "example": 1, - "in": "query", - "minimum": 1, - "name": "page", - "type": "integer" + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ { - "description": "Results per page; defaults to 10, clamped to 1..50", - "example": 10, + "ApiKeyAuth": [] + } + ], + "summary": "Box Office Mojo showdowns", + "tags": [ + "Box Office Mojo" + ] + } + }, + "/boxofficemojo/title": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized Box Office Mojo title release-group and market-gross tables from a public title page. Pass exactly one of `id`, `path`, or `url`.", + "operationId": "boxofficemojo-title", + "parameters": [ + { + "description": "Box Office Mojo title id", + "example": "tt0499549", "in": "query", - "maximum": 50, - "minimum": 1, - "name": "count", - "type": "integer" + "name": "id", + "type": "string" }, { - "description": "Two-letter country code; defaults to us", - "example": "us", + "description": "Box Office Mojo title path", + "example": "/title/tt0499549/", "in": "query", - "name": "country", + "name": "path", "type": "string" }, { - "description": "Bing UI language; defaults to en-us", - "example": "en-us", + "description": "Absolute https://www.boxofficemojo.com title URL", + "example": "https://www.boxofficemojo.com/title/tt0499549/", "in": "query", - "name": "lang", + "name": "url", "type": "string" } ], @@ -43612,35 +46825,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/bing.searchResponseDoc" + "$ref": "#/definitions/boxofficemojo.titleResponseDoc" } }, "400": { - "description": "Missing or invalid query parameters", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "No results found", + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Rate limit exceeded", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Bing upstream request failed", + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43651,50 +46864,35 @@ "ApiKeyAuth": [] } ], - "summary": "Search Bing web results", + "summary": "Box Office Mojo title detail", "tags": [ - "Bing" + "Box Office Mojo" ] } }, - "/bing/suggest": { + "/boxofficemojo/weekend/domestic": { "get": { "consumes": [ "application/json" ], - "description": "Returns Bing autosuggest query completions for a query prefix. Locale defaults to country=us and lang=en-us. Suggestions are fetched from public Bing suggest endpoints and trimmed to the requested count.", - "operationId": "bing-suggest", + "description": "Returns normalized rows from Box Office Mojo's public domestic weekend chart. Empty upstream weekend pages return a typed not-found error rather than an empty success.", + "operationId": "boxofficemojo-weekend-domestic", "parameters": [ { - "description": "Search query prefix", - "example": "openai", + "description": "Domestic weekend year, from 1982 through 2100", + "example": 2025, "in": "query", - "name": "q", + "name": "year", "required": true, - "type": "string" - }, - { - "description": "Suggestions to return; defaults to 10, clamped to 1..12", - "example": 10, - "in": "query", - "maximum": 12, - "minimum": 1, - "name": "count", "type": "integer" }, { - "description": "Two-letter country code; defaults to us", - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Bing UI language; defaults to en-us", - "example": "en-us", + "description": "Weekend number, 1 through 53", + "example": 52, "in": "query", - "name": "lang", - "type": "string" + "name": "week", + "required": true, + "type": "integer" } ], "produces": [ @@ -43704,29 +46902,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/bing.suggestResponseDoc" + "$ref": "#/definitions/boxofficemojo.domesticWeekendResponseDoc" } }, "400": { - "description": "Missing or invalid query parameters", + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Rate limit exceeded", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Bing upstream request failed", + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43737,58 +46941,35 @@ "ApiKeyAuth": [] } ], - "summary": "Suggest Bing search queries", + "summary": "Box Office Mojo domestic weekend box office", "tags": [ - "Bing" + "Box Office Mojo" ] } }, - "/bing/videos": { + "/boxofficemojo/weekend/domestic/by-distributor": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Bing video search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Bing video HTML/async pages and return 503 when Bing serves a challenge page or unusable HTML.", - "operationId": "bing-videos", + "description": "Returns normalized distributor rows from Box Office Mojo's public domestic weekend by-distributor chart. Empty upstream weekend pages return a typed not-found error rather than an empty success.", + "operationId": "boxofficemojo-weekend-domestic-by-distributor", "parameters": [ { - "description": "Search query", - "example": "openai", + "description": "Domestic weekend year, from 1982 through 2100", + "example": 2025, "in": "query", - "name": "q", + "name": "year", "required": true, - "type": "string" - }, - { - "description": "1-based page number; defaults to 1", - "example": 1, - "in": "query", - "minimum": 1, - "name": "page", "type": "integer" }, { - "description": "Results per page; defaults to 10, clamped to 1..50", - "example": 10, + "description": "Weekend number, 1 through 53", + "example": 52, "in": "query", - "maximum": 50, - "minimum": 1, - "name": "count", + "name": "week", + "required": true, "type": "integer" - }, - { - "description": "Two-letter country code; defaults to us", - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Bing UI language; defaults to en-us", - "example": "en-us", - "in": "query", - "name": "lang", - "type": "string" } ], "produces": [ @@ -43798,35 +46979,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/bing.videosResponseDoc" + "$ref": "#/definitions/boxofficemojo.weekendDistributorResponseDoc" } }, "400": { - "description": "Missing or invalid query parameters", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "No results found", + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Rate limit exceeded", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Bing upstream request failed", + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -43837,40 +47018,35 @@ "ApiKeyAuth": [] } ], - "summary": "Search Bing video results", + "summary": "Box Office Mojo domestic weekend by distributor", "tags": [ - "Bing" + "Box Office Mojo" ] } }, - "/boxofficemojo/brand": { + "/boxofficemojo/weekend/domestic/estimates": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized release rows from a public Box Office Mojo brand page. Pass exactly one of `id`, `path`, or `url`.", - "operationId": "boxofficemojo-brand", + "description": "Returns normalized estimate-vs-actual rows from Box Office Mojo's public domestic weekend estimates chart. Empty upstream weekend pages return a typed not-found error rather than an empty success.", + "operationId": "boxofficemojo-weekend-domestic-estimates", "parameters": [ { - "description": "Box Office Mojo brand id", - "example": "bn3732077058", - "in": "query", - "name": "id", - "type": "string" - }, - { - "description": "Box Office Mojo brand path", - "example": "/brand/bn3732077058/", + "description": "Domestic weekend year, from 1982 through 2100", + "example": 2025, "in": "query", - "name": "path", - "type": "string" + "name": "year", + "required": true, + "type": "integer" }, { - "description": "Absolute https://www.boxofficemojo.com brand URL", - "example": "https://www.boxofficemojo.com/brand/bn3732077058/", + "description": "Weekend number, 1 through 53", + "example": 52, "in": "query", - "name": "url", - "type": "string" + "name": "week", + "required": true, + "type": "integer" } ], "produces": [ @@ -43880,7 +47056,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.taxonomyDetailResponseDoc" + "$ref": "#/definitions/boxofficemojo.weekendEstimatesResponseDoc" } }, "400": { @@ -43919,19 +47095,29 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo brand detail", + "summary": "Box Office Mojo domestic weekend estimates", "tags": [ "Box Office Mojo" ] } }, - "/boxofficemojo/brands": { + "/boxofficemojo/year/domestic": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized rows from Box Office Mojo's public brand chart.", - "operationId": "boxofficemojo-brands", + "description": "Returns normalized release rows from Box Office Mojo's public domestic yearly calendar-grosses chart.", + "operationId": "boxofficemojo-year-domestic", + "parameters": [ + { + "description": "Domestic box office year, from 1977 through 2100", + "example": 2025, + "in": "query", + "name": "year", + "required": true, + "type": "integer" + } + ], "produces": [ "application/json" ], @@ -43939,7 +47125,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.taxonomyListResponseDoc" + "$ref": "#/definitions/boxofficemojo.domesticYearResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" } }, "429": { @@ -43966,35 +47158,27 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo brand chart", + "summary": "Box Office Mojo domestic yearly box office", "tags": [ "Box Office Mojo" ] } }, - "/boxofficemojo/calendar": { + "/boxofficemojo/year/worldwide": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized grouped rows from Box Office Mojo's public domestic release schedule. Provide `year` and `month`.", - "operationId": "boxofficemojo-calendar", + "description": "Returns normalized release-group rows from Box Office Mojo's public worldwide yearly chart.", + "operationId": "boxofficemojo-year-worldwide", "parameters": [ { - "description": "Calendar year, from 1921 through 2100", - "example": 2026, + "description": "Box office year, from 1977 through 2100", + "example": 2025, "in": "query", "name": "year", "required": true, "type": "integer" - }, - { - "description": "Calendar month, 1 through 12", - "example": 9, - "in": "query", - "name": "month", - "required": true, - "type": "integer" } ], "produces": [ @@ -44004,7 +47188,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.calendarResponseDoc" + "$ref": "#/definitions/boxofficemojo.worldwideYearResponseDoc" } }, "400": { @@ -44037,25 +47221,49 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo domestic release schedule", + "summary": "Box Office Mojo worldwide yearly box office", "tags": [ "Box Office Mojo" ] } }, - "/boxofficemojo/calendar/changes": { + "/brand/retrieve": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized grouped rows from Box Office Mojo's public domestic release-schedule changes page.", - "operationId": "boxofficemojo-calendar-changes", + "description": "Fetches a domain's homepage and Web App Manifest and extracts a normalized brand profile (title, description, brand colors normalized to hex, logos and icons ranked best-first, backdrops, socials, links, and any schema.org organization data). Enrichment-only fields that are not present in the page markup are returned as null.", + "operationId": "brand-retrieve", "parameters": [ { - "description": "Changes page offset. Allowed values: 0, 30, 60, ... 780", - "example": 0, + "description": "Domain to retrieve brand data for, e.g. context.dev", + "in": "query", + "name": "domain", + "required": true, + "type": "string" + }, + { + "description": "Accepted for compatibility; not applied in HTML-only mode", + "in": "query", + "name": "force_language", + "type": "string" + }, + { + "description": "Optimize for speed by skipping schema.org and footer-link extraction", "in": "query", - "name": "offset", + "name": "maxSpeed", + "type": "boolean" + }, + { + "description": "Cache freshness window in milliseconds, clamps to 1 day..1 year", + "in": "query", + "name": "maxAgeMs", + "type": "integer" + }, + { + "description": "Upstream fetch timeout in milliseconds, clamps to 1000..300000", + "in": "query", + "name": "timeoutMS", "type": "integer" } ], @@ -44066,7 +47274,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.calendarChangesResponseDoc" + "$ref": "#/definitions/brand.retrieveResponseDoc" } }, "400": { @@ -44075,14 +47283,20 @@ "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Too Many Requests", + "404": { + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "408": { + "description": "Request Timeout", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -44099,27 +47313,114 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo domestic release schedule changes", + "summary": "Retrieve brand data by domain", "tags": [ - "Box Office Mojo" + "Brand" ] } }, - "/boxofficemojo/calendar/date": { + "/brave/images": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized release rows for one public Box Office Mojo domestic release-schedule date.", - "operationId": "boxofficemojo-calendar-date", + "description": "Returns normalized Brave image search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Brave Search image HTML and return 503 when Brave serves a challenge page or unusable HTML.", + "operationId": "brave-images", "parameters": [ { - "description": "Calendar date in YYYY-MM-DD format", - "example": "2026-09-04", + "description": "Search query", + "example": "openai", "in": "query", - "name": "date", + "name": "q", "required": true, "type": "string" + }, + { + "description": "Zero-based Brave result page; defaults to 0", + "example": 0, + "in": "query", + "minimum": 0, + "name": "offset", + "type": "integer" + }, + { + "description": "Results to return; defaults to 10, clamped to 1..50", + "example": 10, + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "count", + "type": "integer" + }, + { + "description": "Brave result country; defaults to us", + "enum": [ + "all", + "ar", + "at", + "au", + "be", + "br", + "ca", + "ch", + "cl", + "cn", + "de", + "dk", + "es", + "fi", + "fr", + "gb", + "gr", + "hk", + "id", + "in", + "it", + "jp", + "kr", + "mx", + "my", + "nl", + "no", + "nz", + "ph", + "pl", + "pt", + "ru", + "sa", + "se", + "sg", + "tr", + "tw", + "us", + "za" + ], + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Brave UI language; defaults to en-us", + "enum": [ + "de-de", + "en-ca", + "en-gb", + "en-in", + "en-us", + "fi-fi", + "fr-ca", + "fr-fr", + "ja-jp", + "pt-br", + "sq-al", + "sw-ke", + "zh-tw" + ], + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" } ], "produces": [ @@ -44129,35 +47430,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.calendarDateResponseDoc" + "$ref": "#/definitions/brave.imagesResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid query", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Not Found", + "description": "No results found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal Server Error", + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Service Unavailable", + "description": "Brave upstream request failed", "schema": { "$ref": "#/definitions/app.Response" } @@ -44168,27 +47469,142 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo domestic release schedule date", + "summary": "Search Brave image results", "tags": [ - "Box Office Mojo" + "Brave" ] } }, - "/boxofficemojo/date/domestic": { + "/brave/news": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized rows from Box Office Mojo's public domestic daily chart. Empty upstream daily pages return a typed not-found error rather than an empty success.", - "operationId": "boxofficemojo-date-domestic", + "description": "Returns normalized Brave news search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Brave Search news HTML and return 503 when Brave serves a challenge page or unusable HTML.", + "operationId": "brave-news", "parameters": [ { - "description": "Domestic box office date in YYYY-MM-DD format", - "example": "2025-12-25", + "description": "Search query", + "example": "openai", "in": "query", - "name": "date", + "name": "q", "required": true, "type": "string" + }, + { + "description": "Zero-based Brave result page; defaults to 0", + "example": 0, + "in": "query", + "minimum": 0, + "name": "offset", + "type": "integer" + }, + { + "description": "Results to return; defaults to 10, clamped to 1..50", + "example": 10, + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "count", + "type": "integer" + }, + { + "description": "Brave result country; defaults to us", + "enum": [ + "all", + "ar", + "at", + "au", + "be", + "br", + "ca", + "ch", + "cl", + "cn", + "de", + "dk", + "es", + "fi", + "fr", + "gb", + "gr", + "hk", + "id", + "in", + "it", + "jp", + "kr", + "mx", + "my", + "nl", + "no", + "nz", + "ph", + "pl", + "pt", + "ru", + "sa", + "se", + "sg", + "tr", + "tw", + "us", + "za" + ], + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Brave UI language; defaults to en-us", + "enum": [ + "de-de", + "en-ca", + "en-gb", + "en-in", + "en-us", + "fi-fi", + "fr-ca", + "fr-fr", + "ja-jp", + "pt-br", + "sq-al", + "sw-ke", + "zh-tw" + ], + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" + }, + { + "description": "Preset time filter: any, day, week, month, year, or custom", + "enum": [ + "any", + "day", + "week", + "month", + "year", + "custom" + ], + "in": "query", + "name": "time_range", + "type": "string" + }, + { + "description": "Custom start date in YYYY-MM-DD; requires date_to", + "example": "2026-03-01", + "in": "query", + "name": "date_from", + "type": "string" + }, + { + "description": "Custom end date in YYYY-MM-DD; requires date_from", + "example": "2026-03-30", + "in": "query", + "name": "date_to", + "type": "string" } ], "produces": [ @@ -44198,35 +47614,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.domesticDateResponseDoc" + "$ref": "#/definitions/brave.newsResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid query", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Not Found", + "description": "No results found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal Server Error", + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Service Unavailable", + "description": "Brave upstream request failed", "schema": { "$ref": "#/definitions/app.Response" } @@ -44237,39 +47653,132 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo domestic daily box office", + "summary": "Search Brave news results", "tags": [ - "Box Office Mojo" + "Brave" ] } }, - "/boxofficemojo/franchise": { + "/brave/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized release rows from a public Box Office Mojo franchise page. Pass exactly one of `id`, `path`, or `url`.", - "operationId": "boxofficemojo-franchise", + "description": "Returns normalized web search results from Brave Search for a query string, along with offset-based pagination, related queries, discussions, videos, and the right-side knowledge card when Brave includes one. Use time_range for preset ranges or date_from/date_to for a custom YYYY-MM-DD range. Locale defaults to country=us and lang=en-us.", + "operationId": "brave-search", "parameters": [ { - "description": "Box Office Mojo franchise id", - "example": "fr541495045", + "description": "Search query", + "example": "openai", "in": "query", - "name": "id", + "name": "q", + "required": true, "type": "string" }, { - "description": "Box Office Mojo franchise path", - "example": "/franchise/fr541495045/", + "description": "Zero-based Brave result page", + "example": 1, "in": "query", - "name": "path", + "minimum": 0, + "name": "offset", + "type": "integer" + }, + { + "description": "Brave result country; defaults to us", + "enum": [ + "all", + "ar", + "at", + "au", + "be", + "br", + "ca", + "ch", + "cl", + "cn", + "de", + "dk", + "es", + "fi", + "fr", + "gb", + "gr", + "hk", + "id", + "in", + "it", + "jp", + "kr", + "mx", + "my", + "nl", + "no", + "nz", + "ph", + "pl", + "pt", + "ru", + "sa", + "se", + "sg", + "tr", + "tw", + "us", + "za" + ], + "example": "us", + "in": "query", + "name": "country", "type": "string" }, { - "description": "Absolute https://www.boxofficemojo.com franchise URL", - "example": "https://www.boxofficemojo.com/franchise/fr541495045/", + "description": "Brave UI language; defaults to en-us", + "enum": [ + "de-de", + "en-ca", + "en-gb", + "en-in", + "en-us", + "fi-fi", + "fr-ca", + "fr-fr", + "ja-jp", + "pt-br", + "sq-al", + "sw-ke", + "zh-tw" + ], + "example": "en-us", "in": "query", - "name": "url", + "name": "lang", + "type": "string" + }, + { + "description": "Preset time filter: any, day, week, month, year, or custom", + "enum": [ + "any", + "day", + "week", + "month", + "year", + "custom" + ], + "in": "query", + "name": "time_range", + "type": "string" + }, + { + "description": "Custom start date in YYYY-MM-DD; requires date_to", + "example": "2026-03-01", + "in": "query", + "name": "date_from", + "type": "string" + }, + { + "description": "Custom end date in YYYY-MM-DD; requires date_from", + "example": "2026-03-30", + "in": "query", + "name": "date_to", "type": "string" } ], @@ -44280,35 +47789,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.taxonomyDetailResponseDoc" + "$ref": "#/definitions/brave.searchResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid query", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Not Found", + "description": "No results found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "503": { - "description": "Service Unavailable", + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } @@ -44319,19 +47822,108 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo franchise detail", - "tags": [ - "Box Office Mojo" - ] - } - }, - "/boxofficemojo/franchises": { - "get": { - "consumes": [ - "application/json" - ], - "description": "Returns normalized rows from Box Office Mojo's public franchise chart.", - "operationId": "boxofficemojo-franchises", + "summary": "Search Brave", + "tags": [ + "Brave" + ] + } + }, + "/brave/suggest": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Brave autosuggest query completions for a query prefix. Locale defaults to country=us and lang=en-us. Suggestions are fetched from public Brave Search suggest JSON and trimmed to the requested count.", + "operationId": "brave-suggest", + "parameters": [ + { + "description": "Search query prefix", + "example": "openai", + "in": "query", + "name": "q", + "required": true, + "type": "string" + }, + { + "description": "Suggestions to return; defaults to 10, clamped to 1..12", + "example": 10, + "in": "query", + "maximum": 12, + "minimum": 1, + "name": "count", + "type": "integer" + }, + { + "description": "Brave result country; defaults to us", + "enum": [ + "all", + "ar", + "at", + "au", + "be", + "br", + "ca", + "ch", + "cl", + "cn", + "de", + "dk", + "es", + "fi", + "fr", + "gb", + "gr", + "hk", + "id", + "in", + "it", + "jp", + "kr", + "mx", + "my", + "nl", + "no", + "nz", + "ph", + "pl", + "pt", + "ru", + "sa", + "se", + "sg", + "tr", + "tw", + "us", + "za" + ], + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Brave UI language; defaults to en-us", + "enum": [ + "de-de", + "en-ca", + "en-gb", + "en-in", + "en-us", + "fi-fi", + "fr-ca", + "fr-fr", + "ja-jp", + "pt-br", + "sq-al", + "sw-ke", + "zh-tw" + ], + "example": "en-us", + "in": "query", + "name": "lang", + "type": "string" + } + ], "produces": [ "application/json" ], @@ -44339,23 +47931,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.taxonomyListResponseDoc" + "$ref": "#/definitions/brave.suggestResponseDoc" + } + }, + "400": { + "description": "Missing or invalid query", + "schema": { + "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal Server Error", + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Service Unavailable", + "description": "Brave upstream request failed", "schema": { "$ref": "#/definitions/app.Response" } @@ -44366,39 +47964,141 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo franchise chart", + "summary": "Suggest Brave search queries", "tags": [ - "Box Office Mojo" + "Brave" ] } }, - "/boxofficemojo/genre": { + "/brave/videos": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized release rows from a public Box Office Mojo genre page. Pass exactly one of `id`, `path`, or `url`.", - "operationId": "boxofficemojo-genre", + "description": "Returns normalized Brave video search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Brave Search video HTML and return 503 when Brave serves a challenge page or unusable HTML.", + "operationId": "brave-videos", "parameters": [ { - "description": "Box Office Mojo genre id", - "example": "sg3621777665", + "description": "Search query", + "example": "openai", "in": "query", - "name": "id", + "name": "q", + "required": true, "type": "string" }, { - "description": "Box Office Mojo genre path", - "example": "/genre/sg3621777665/", + "description": "Zero-based Brave result page; defaults to 0", + "example": 0, "in": "query", - "name": "path", + "minimum": 0, + "name": "offset", + "type": "integer" + }, + { + "description": "Results to return; defaults to 10, clamped to 1..50", + "example": 10, + "in": "query", + "maximum": 50, + "minimum": 1, + "name": "count", + "type": "integer" + }, + { + "description": "Brave result country; defaults to us", + "enum": [ + "all", + "ar", + "at", + "au", + "be", + "br", + "ca", + "ch", + "cl", + "cn", + "de", + "dk", + "es", + "fi", + "fr", + "gb", + "gr", + "hk", + "id", + "in", + "it", + "jp", + "kr", + "mx", + "my", + "nl", + "no", + "nz", + "ph", + "pl", + "pt", + "ru", + "sa", + "se", + "sg", + "tr", + "tw", + "us", + "za" + ], + "example": "us", + "in": "query", + "name": "country", "type": "string" }, { - "description": "Absolute https://www.boxofficemojo.com genre URL", - "example": "https://www.boxofficemojo.com/genre/sg3621777665/", + "description": "Brave UI language; defaults to en-us", + "enum": [ + "de-de", + "en-ca", + "en-gb", + "en-in", + "en-us", + "fi-fi", + "fr-ca", + "fr-fr", + "ja-jp", + "pt-br", + "sq-al", + "sw-ke", + "zh-tw" + ], + "example": "en-us", "in": "query", - "name": "url", + "name": "lang", + "type": "string" + }, + { + "description": "Preset time filter: any, day, week, month, year, or custom", + "enum": [ + "any", + "day", + "week", + "month", + "year", + "custom" + ], + "in": "query", + "name": "time_range", + "type": "string" + }, + { + "description": "Custom start date in YYYY-MM-DD; requires date_to", + "example": "2026-03-01", + "in": "query", + "name": "date_from", + "type": "string" + }, + { + "description": "Custom end date in YYYY-MM-DD; requires date_from", + "example": "2026-03-30", + "in": "query", + "name": "date_to", "type": "string" } ], @@ -44409,35 +48109,35 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.taxonomyDetailResponseDoc" + "$ref": "#/definitions/brave.videosResponseDoc" } }, "400": { - "description": "Bad Request", + "description": "Missing or invalid query", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "Not Found", + "description": "No results found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Too Many Requests", + "description": "Rate limit exceeded", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal Server Error", + "description": "Internal server error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Service Unavailable", + "description": "Brave upstream request failed", "schema": { "$ref": "#/definitions/app.Response" } @@ -44448,19 +48148,19 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo genre detail", + "summary": "Search Brave video results", "tags": [ - "Box Office Mojo" + "Brave" ] } }, - "/boxofficemojo/genres": { + "/chromewebstore/categories": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized rows from Box Office Mojo's public genre chart.", - "operationId": "boxofficemojo-genres", + "description": "Returns the reference taxonomy for the list endpoints: extension category groups and their subcategory slugs, the top-chart identifiers, and known curated collection slugs.", + "operationId": "chromewebstore-categories", "produces": [ "application/json" ], @@ -44468,13 +48168,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.taxonomyListResponseDoc" - } - }, - "429": { - "description": "Too Many Requests", - "schema": { - "$ref": "#/definitions/app.Response" + "$ref": "#/definitions/chromewebstore.categoriesResponseDoc" } }, "500": { @@ -44482,12 +48176,6 @@ "schema": { "$ref": "#/definitions/app.Response" } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } } }, "security": [ @@ -44495,112 +48183,47 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo genre chart", + "summary": "List Chrome Web Store categories and collections", "tags": [ - "Box Office Mojo" + "ChromeWebStore" ] } }, - "/boxofficemojo/lifetime-grosses": { + "/chromewebstore/category": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized rows from Box Office Mojo's credential-free lifetime gross chart. `area` values: `worldwide`, `domestic`.", - "operationId": "boxofficemojo-lifetime-grosses", + "description": "Returns the item cards listed under an extensions category slug (e.g. `productivity/tools`, `lifestyle/shopping`, `make_chrome_yours/privacy`). Use /chromewebstore/categories for the reference taxonomy. Defaults: `num=50`, `country=us`, `lang=en`.", + "operationId": "chromewebstore-category", "parameters": [ { - "description": "Chart area. Allowed values: worldwide, domestic", - "enum": [ - "worldwide", - "domestic" - ], - "example": "worldwide", + "description": "Category slug under extensions", + "example": "productivity/tools", "in": "query", - "name": "area", + "name": "category", + "required": true, "type": "string" }, { - "description": "Chart page offset. Allowed values: 0, 200, 400, 600, 800", - "example": 0, + "description": "Maximum number of items", + "example": 50, "in": "query", - "name": "offset", + "name": "num", "type": "integer" - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/boxofficemojo.lifetimeGrossesResponseDoc" - } - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "429": { - "description": "Too Many Requests", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } - } - }, - "security": [ - { - "ApiKeyAuth": [] - } - ], - "summary": "Box Office Mojo lifetime gross chart", - "tags": [ - "Box Office Mojo" - ] - } - }, - "/boxofficemojo/release": { - "get": { - "consumes": [ - "application/json" - ], - "description": "Returns normalized Box Office Mojo release summary fields and domestic daily rows from a public release page. Pass exactly one of `id`, `path`, or `url`.", - "operationId": "boxofficemojo-release", - "parameters": [ - { - "description": "Box Office Mojo release id", - "example": "rl3389031937", - "in": "query", - "name": "id", - "type": "string" }, { - "description": "Box Office Mojo release path", - "example": "/release/rl3389031937/", + "description": "Two-letter storefront country code", + "example": "us", "in": "query", - "name": "path", + "name": "country", "type": "string" }, { - "description": "Absolute https://www.boxofficemojo.com release URL", - "example": "https://www.boxofficemojo.com/release/rl3389031937/", + "description": "Two-letter language code", + "example": "en", "in": "query", - "name": "url", + "name": "lang", "type": "string" } ], @@ -44611,7 +48234,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.releaseResponseDoc" + "$ref": "#/definitions/chromewebstore.listResponseDoc" } }, "400": { @@ -44620,12 +48243,6 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "429": { "description": "Too Many Requests", "schema": { @@ -44637,12 +48254,6 @@ "schema": { "$ref": "#/definitions/app.Response" } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } } }, "security": [ @@ -44650,39 +48261,51 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo release detail", + "summary": "List items in a Chrome Web Store category", "tags": [ - "Box Office Mojo" + "ChromeWebStore" ] } }, - "/boxofficemojo/release-group": { + "/chromewebstore/charts": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized market release rows grouped by region from a public Box Office Mojo release-group page. Pass exactly one of `id`, `path`, or `url`.", - "operationId": "boxofficemojo-release-group", + "description": "Returns the item cards in a store top chart. `chart` accepts `trending`, `popular`, or `notable`. Defaults: `chart=popular`, `num=50`, `country=us`, `lang=en`.", + "operationId": "chromewebstore-charts", "parameters": [ { - "description": "Box Office Mojo release-group id", - "example": "gr3486798341", + "default": "popular", + "description": "Top chart to list", + "enum": [ + "trending", + "popular", + "notable" + ], "in": "query", - "name": "id", + "name": "chart", "type": "string" }, { - "description": "Box Office Mojo release-group path", - "example": "/releasegroup/gr3486798341/", + "description": "Maximum number of items", + "example": 50, "in": "query", - "name": "path", + "name": "num", + "type": "integer" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", "type": "string" }, { - "description": "Absolute https://www.boxofficemojo.com release-group URL", - "example": "https://www.boxofficemojo.com/releasegroup/gr3486798341/", + "description": "Two-letter language code", + "example": "en", "in": "query", - "name": "url", + "name": "lang", "type": "string" } ], @@ -44693,7 +48316,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.releaseGroupResponseDoc" + "$ref": "#/definitions/chromewebstore.listResponseDoc" } }, "400": { @@ -44702,12 +48325,6 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "429": { "description": "Too Many Requests", "schema": { @@ -44719,12 +48336,6 @@ "schema": { "$ref": "#/definitions/app.Response" } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } } }, "security": [ @@ -44732,39 +48343,47 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo release group detail", + "summary": "List a Chrome Web Store top chart", "tags": [ - "Box Office Mojo" + "ChromeWebStore" ] } }, - "/boxofficemojo/showdown": { + "/chromewebstore/collection": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized release comparison metrics from a public Box Office Mojo showdown page. Pass exactly one of `id`, `path`, or `url`.", - "operationId": "boxofficemojo-showdown", + "description": "Returns the item cards in a curated store collection slug (e.g. `editors_picks_extensions`, `dark_mode`, `ai_productivity`). Use /chromewebstore/categories for known collection slugs. Defaults: `num=50`, `country=us`, `lang=en`.", + "operationId": "chromewebstore-collection", "parameters": [ { - "description": "Box Office Mojo showdown id", - "example": "sd943519236", + "description": "Curated collection slug", + "example": "editors_picks_extensions", "in": "query", - "name": "id", + "name": "collection", + "required": true, "type": "string" }, { - "description": "Box Office Mojo showdown path", - "example": "/showdown/sd943519236/", + "description": "Maximum number of items", + "example": 50, "in": "query", - "name": "path", + "name": "num", + "type": "integer" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", "type": "string" }, { - "description": "Absolute https://www.boxofficemojo.com showdown URL", - "example": "https://www.boxofficemojo.com/showdown/sd943519236/", + "description": "Two-letter language code", + "example": "en", "in": "query", - "name": "url", + "name": "lang", "type": "string" } ], @@ -44775,7 +48394,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.showdownResponseDoc" + "$ref": "#/definitions/chromewebstore.listResponseDoc" } }, "400": { @@ -44784,59 +48403,6 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "429": { - "description": "Too Many Requests", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } - } - }, - "security": [ - { - "ApiKeyAuth": [] - } - ], - "summary": "Box Office Mojo showdown detail", - "tags": [ - "Box Office Mojo" - ] - } - }, - "/boxofficemojo/showdowns": { - "get": { - "consumes": [ - "application/json" - ], - "description": "Returns normalized comparison rows from Box Office Mojo's public showdowns page.", - "operationId": "boxofficemojo-showdowns", - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/boxofficemojo.showdownsResponseDoc" - } - }, "429": { "description": "Too Many Requests", "schema": { @@ -44848,12 +48414,6 @@ "schema": { "$ref": "#/definitions/app.Response" } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } } }, "security": [ @@ -44861,39 +48421,40 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo showdowns", + "summary": "List items in a curated Chrome Web Store collection", "tags": [ - "Box Office Mojo" + "ChromeWebStore" ] } }, - "/boxofficemojo/title": { + "/chromewebstore/item": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Box Office Mojo title release-group and market-gross tables from a public title page. Pass exactly one of `id`, `path`, or `url`.", - "operationId": "boxofficemojo-title", + "description": "Returns normalized detail for a Chrome Web Store extension or theme, including name, rating, rating count, user count, version, last-updated date, size, supported languages, developer, category, screenshots, and privacy links. Defaults: `country=us`, `lang=en`.", + "operationId": "chromewebstore-item", "parameters": [ { - "description": "Box Office Mojo title id", - "example": "tt0499549", + "description": "Chrome Web Store item id (32-character extension/theme id)", + "example": "cjpalhdlnbpafiamejdnhcphjbkeiagm", "in": "query", "name": "id", + "required": true, "type": "string" }, { - "description": "Box Office Mojo title path", - "example": "/title/tt0499549/", + "description": "Two-letter storefront country code", + "example": "us", "in": "query", - "name": "path", + "name": "country", "type": "string" }, { - "description": "Absolute https://www.boxofficemojo.com title URL", - "example": "https://www.boxofficemojo.com/title/tt0499549/", + "description": "Two-letter language code", + "example": "en", "in": "query", - "name": "url", + "name": "lang", "type": "string" } ], @@ -44904,7 +48465,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.titleResponseDoc" + "$ref": "#/definitions/chromewebstore.itemResponseDoc" } }, "400": { @@ -44930,12 +48491,6 @@ "schema": { "$ref": "#/definitions/app.Response" } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } } }, "security": [ @@ -44943,35 +48498,48 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo title detail", + "summary": "Retrieve Chrome Web Store item details", "tags": [ - "Box Office Mojo" + "ChromeWebStore" ] } }, - "/boxofficemojo/weekend/domestic": { + "/chromewebstore/reviews": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized rows from Box Office Mojo's public domestic weekend chart. Empty upstream weekend pages return a typed not-found error rather than an empty success.", - "operationId": "boxofficemojo-weekend-domestic", + "description": "Returns the reviews the store renders on an item's reviews page, each with author, star rating, text, posted/edited dates and reviewed version. Defaults: `num=20`, `country=us`, `lang=en`.", + "operationId": "chromewebstore-reviews", "parameters": [ { - "description": "Domestic weekend year, from 1982 through 2100", - "example": 2025, + "description": "Chrome Web Store item id (32-character extension/theme id)", + "example": "cjpalhdlnbpafiamejdnhcphjbkeiagm", "in": "query", - "name": "year", + "name": "id", "required": true, - "type": "integer" + "type": "string" }, { - "description": "Weekend number, 1 through 53", - "example": 52, + "description": "Maximum number of reviews", + "example": 20, "in": "query", - "name": "week", - "required": true, + "name": "num", "type": "integer" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Two-letter language code", + "example": "en", + "in": "query", + "name": "lang", + "type": "string" } ], "produces": [ @@ -44981,7 +48549,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.domesticWeekendResponseDoc" + "$ref": "#/definitions/chromewebstore.reviewsResponseDoc" } }, "400": { @@ -44997,19 +48565,13 @@ } }, "429": { - "description": "Too Many Requests", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "500": { - "description": "Internal Server Error", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -45020,35 +48582,48 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo domestic weekend box office", + "summary": "Retrieve Chrome Web Store item reviews", "tags": [ - "Box Office Mojo" + "ChromeWebStore" ] } }, - "/boxofficemojo/weekend/domestic/by-distributor": { + "/chromewebstore/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized distributor rows from Box Office Mojo's public domestic weekend by-distributor chart. Empty upstream weekend pages return a typed not-found error rather than an empty success.", - "operationId": "boxofficemojo-weekend-domestic-by-distributor", + "description": "Returns Chrome Web Store search result cards for a keyword, each with id, name, rating, user count, publisher and detail URL. Defaults: `num=30`, `country=us`, `lang=en`.", + "operationId": "chromewebstore-search", "parameters": [ { - "description": "Domestic weekend year, from 1982 through 2100", - "example": 2025, + "description": "Search keyword", + "example": "vpn", "in": "query", - "name": "year", + "name": "term", "required": true, - "type": "integer" + "type": "string" }, { - "description": "Weekend number, 1 through 53", - "example": 52, + "description": "Maximum number of results", + "example": 30, "in": "query", - "name": "week", - "required": true, + "name": "num", "type": "integer" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Two-letter language code", + "example": "en", + "in": "query", + "name": "lang", + "type": "string" } ], "produces": [ @@ -45058,7 +48633,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.weekendDistributorResponseDoc" + "$ref": "#/definitions/chromewebstore.searchResponseDoc" } }, "400": { @@ -45067,12 +48642,6 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "429": { "description": "Too Many Requests", "schema": { @@ -45084,12 +48653,6 @@ "schema": { "$ref": "#/definitions/app.Response" } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } } }, "security": [ @@ -45097,35 +48660,41 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo domestic weekend by distributor", + "summary": "Search Chrome Web Store items", "tags": [ - "Box Office Mojo" + "ChromeWebStore" ] } }, - "/boxofficemojo/weekend/domestic/estimates": { + "/chromewebstore/similar": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized estimate-vs-actual rows from Box Office Mojo's public domestic weekend estimates chart. Empty upstream weekend pages return a typed not-found error rather than an empty success.", - "operationId": "boxofficemojo-weekend-domestic-estimates", + "description": "Returns the related-items shelf the store renders on an item's detail page. Defaults: `country=us`, `lang=en`.", + "operationId": "chromewebstore-similar", "parameters": [ { - "description": "Domestic weekend year, from 1982 through 2100", - "example": 2025, + "description": "Chrome Web Store item id (32-character extension/theme id)", + "example": "cjpalhdlnbpafiamejdnhcphjbkeiagm", "in": "query", - "name": "year", + "name": "id", "required": true, - "type": "integer" + "type": "string" }, { - "description": "Weekend number, 1 through 53", - "example": 52, + "description": "Two-letter storefront country code", + "example": "us", "in": "query", - "name": "week", - "required": true, - "type": "integer" + "name": "country", + "type": "string" + }, + { + "description": "Two-letter language code", + "example": "en", + "in": "query", + "name": "lang", + "type": "string" } ], "produces": [ @@ -45135,7 +48704,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.weekendEstimatesResponseDoc" + "$ref": "#/definitions/chromewebstore.similarResponseDoc" } }, "400": { @@ -45161,12 +48730,6 @@ "schema": { "$ref": "#/definitions/app.Response" } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } } }, "security": [ @@ -45174,27 +48737,48 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo domestic weekend estimates", + "summary": "Retrieve related Chrome Web Store items", "tags": [ - "Box Office Mojo" + "ChromeWebStore" ] } }, - "/boxofficemojo/year/domestic": { + "/chromewebstore/suggest": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized release rows from Box Office Mojo's public domestic yearly calendar-grosses chart.", - "operationId": "boxofficemojo-year-domestic", + "description": "Returns item-name suggestions for a search prefix, drawn from the top store-search results. Defaults: `num=8`, `country=us`, `lang=en`.", + "operationId": "chromewebstore-suggest", "parameters": [ { - "description": "Domestic box office year, from 1977 through 2100", - "example": 2025, + "description": "Search prefix to autocomplete", + "example": "ad blo", "in": "query", - "name": "year", + "name": "term", "required": true, + "type": "string" + }, + { + "description": "Maximum number of suggestions", + "example": 8, + "in": "query", + "name": "num", "type": "integer" + }, + { + "description": "Two-letter storefront country code", + "example": "us", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Two-letter language code", + "example": "en", + "in": "query", + "name": "lang", + "type": "string" } ], "produces": [ @@ -45204,7 +48788,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.domesticYearResponseDoc" + "$ref": "#/definitions/chromewebstore.suggestResponseDoc" } }, "400": { @@ -45224,12 +48808,6 @@ "schema": { "$ref": "#/definitions/app.Response" } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } } }, "security": [ @@ -45237,27 +48815,96 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo domestic yearly box office", + "summary": "Suggest Chrome Web Store search terms", "tags": [ - "Box Office Mojo" + "ChromeWebStore" ] } }, - "/boxofficemojo/year/worldwide": { + "/coingecko/categories": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized release-group rows from Box Office Mojo's public worldwide yearly chart.", - "operationId": "boxofficemojo-year-worldwide", + "description": "Returns normalized CoinGecko category rows from the public categories page. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-categories", "parameters": [ { - "description": "Box office year, from 1977 through 2100", - "example": 2025, + "description": "Rows to return, default 100, max 100", "in": "query", - "name": "year", - "required": true, + "name": "limit", "type": "integer" + }, + { + "description": "Quote currency", + "enum": [ + "btc", + "eth", + "ltc", + "bch", + "bnb", + "eos", + "xrp", + "xlm", + "link", + "dot", + "yfi", + "sol", + "usd", + "aed", + "ars", + "aud", + "bdt", + "bhd", + "bmd", + "brl", + "cad", + "chf", + "clp", + "cny", + "czk", + "dkk", + "eur", + "gbp", + "gel", + "hkd", + "huf", + "idr", + "ils", + "inr", + "jpy", + "krw", + "kwd", + "lkr", + "mmk", + "mxn", + "myr", + "ngn", + "nok", + "nzd", + "php", + "pkr", + "pln", + "rub", + "sar", + "sek", + "sgd", + "thb", + "try", + "twd", + "uah", + "vef", + "vnd", + "zar", + "xdr", + "xag", + "xau", + "bits", + "sats" + ], + "in": "query", + "name": "vs_currency", + "type": "string" } ], "produces": [ @@ -45267,7 +48914,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/boxofficemojo.worldwideYearResponseDoc" + "$ref": "#/definitions/coingecko.categoriesResponseDoc" } }, "400": { @@ -45276,12 +48923,6 @@ "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Too Many Requests", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "500": { "description": "Internal Server Error", "schema": { @@ -45300,50 +48941,109 @@ "ApiKeyAuth": [] } ], - "summary": "Box Office Mojo worldwide yearly box office", + "summary": "CoinGecko categories", "tags": [ - "Box Office Mojo" + "CoinGecko" ] } }, - "/brand/retrieve": { + "/coingecko/category/{slug}/coins": { "get": { "consumes": [ "application/json" ], - "description": "Fetches a domain's homepage and Web App Manifest and extracts a normalized brand profile (title, description, brand colors normalized to hex, logos and icons ranked best-first, backdrops, socials, links, and any schema.org organization data). Enrichment-only fields that are not present in the page markup are returned as null.", - "operationId": "brand-retrieve", + "description": "Returns normalized coin rows from a CoinGecko public category page. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-category-coins", "parameters": [ { - "description": "Domain to retrieve brand data for, e.g. context.dev", - "in": "query", - "name": "domain", + "description": "CoinGecko category slug such as stablecoins", + "in": "path", + "name": "slug", "required": true, "type": "string" }, { - "description": "Accepted for compatibility; not applied in HTML-only mode", - "in": "query", - "name": "force_language", - "type": "string" - }, - { - "description": "Optimize for speed by skipping schema.org and footer-link extraction", + "description": "Page number, default 1", "in": "query", - "name": "maxSpeed", - "type": "boolean" + "name": "page", + "type": "integer" }, { - "description": "Cache freshness window in milliseconds, clamps to 1 day..1 year", + "description": "Rows to return, default 100, max 100", "in": "query", - "name": "maxAgeMs", + "name": "limit", "type": "integer" }, { - "description": "Upstream fetch timeout in milliseconds, clamps to 1000..300000", + "description": "Quote currency", + "enum": [ + "btc", + "eth", + "ltc", + "bch", + "bnb", + "eos", + "xrp", + "xlm", + "link", + "dot", + "yfi", + "sol", + "usd", + "aed", + "ars", + "aud", + "bdt", + "bhd", + "bmd", + "brl", + "cad", + "chf", + "clp", + "cny", + "czk", + "dkk", + "eur", + "gbp", + "gel", + "hkd", + "huf", + "idr", + "ils", + "inr", + "jpy", + "krw", + "kwd", + "lkr", + "mmk", + "mxn", + "myr", + "ngn", + "nok", + "nzd", + "php", + "pkr", + "pln", + "rub", + "sar", + "sek", + "sgd", + "thb", + "try", + "twd", + "uah", + "vef", + "vnd", + "zar", + "xdr", + "xag", + "xau", + "bits", + "sats" + ], "in": "query", - "name": "timeoutMS", - "type": "integer" + "name": "vs_currency", + "type": "string" } ], "produces": [ @@ -45353,7 +49053,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/brand.retrieveResponseDoc" + "$ref": "#/definitions/coingecko.categoryCoinsResponseDoc" } }, "400": { @@ -45368,14 +49068,8 @@ "$ref": "#/definitions/app.Response" } }, - "408": { - "description": "Request Timeout", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "429": { - "description": "Too Many Requests", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -45392,113 +49086,95 @@ "ApiKeyAuth": [] } ], - "summary": "Retrieve brand data by domain", + "summary": "CoinGecko category coins", "tags": [ - "Brand" + "CoinGecko" ] } }, - "/brave/images": { + "/coingecko/chains": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Brave image search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Brave Search image HTML and return 503 when Brave serves a challenge page or unusable HTML.", - "operationId": "brave-images", + "description": "Returns normalized chain rows from the CoinGecko public website chains table. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-chains", "parameters": [ { - "description": "Search query", - "example": "openai", - "in": "query", - "name": "q", - "required": true, - "type": "string" - }, - { - "description": "Zero-based Brave result page; defaults to 0", - "example": 0, - "in": "query", - "minimum": 0, - "name": "offset", - "type": "integer" - }, - { - "description": "Results to return; defaults to 10, clamped to 1..50", - "example": 10, + "description": "Rows to return, default 100, max 100", "in": "query", - "maximum": 50, - "minimum": 1, - "name": "count", + "name": "limit", "type": "integer" }, { - "description": "Brave result country; defaults to us", - "enum": [ - "all", - "ar", - "at", - "au", - "be", - "br", - "ca", - "ch", - "cl", - "cn", - "de", - "dk", - "es", - "fi", - "fr", - "gb", - "gr", - "hk", - "id", - "in", - "it", - "jp", - "kr", - "mx", - "my", - "nl", - "no", - "nz", - "ph", - "pl", - "pt", - "ru", - "sa", - "se", - "sg", - "tr", - "tw", - "us", - "za" - ], - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Brave UI language; defaults to en-us", + "description": "Quote currency", "enum": [ - "de-de", - "en-ca", - "en-gb", - "en-in", - "en-us", - "fi-fi", - "fr-ca", - "fr-fr", - "ja-jp", - "pt-br", - "sq-al", - "sw-ke", - "zh-tw" + "btc", + "eth", + "ltc", + "bch", + "bnb", + "eos", + "xrp", + "xlm", + "link", + "dot", + "yfi", + "sol", + "usd", + "aed", + "ars", + "aud", + "bdt", + "bhd", + "bmd", + "brl", + "cad", + "chf", + "clp", + "cny", + "czk", + "dkk", + "eur", + "gbp", + "gel", + "hkd", + "huf", + "idr", + "ils", + "inr", + "jpy", + "krw", + "kwd", + "lkr", + "mmk", + "mxn", + "myr", + "ngn", + "nok", + "nzd", + "php", + "pkr", + "pln", + "rub", + "sar", + "sek", + "sgd", + "thb", + "try", + "twd", + "uah", + "vef", + "vnd", + "zar", + "xdr", + "xag", + "xau", + "bits", + "sats" ], - "example": "en-us", "in": "query", - "name": "lang", + "name": "vs_currency", "type": "string" } ], @@ -45509,35 +49185,23 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/brave.imagesResponseDoc" + "$ref": "#/definitions/coingecko.chainsResponseDoc" } }, "400": { - "description": "Missing or invalid query", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "404": { - "description": "No results found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "429": { - "description": "Rate limit exceeded", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Brave upstream request failed", + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -45548,141 +49212,102 @@ "ApiKeyAuth": [] } ], - "summary": "Search Brave image results", + "summary": "CoinGecko chains", "tags": [ - "Brave" + "CoinGecko" ] } }, - "/brave/news": { + "/coingecko/chains/{id}": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Brave news search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Brave Search news HTML and return 503 when Brave serves a challenge page or unusable HTML.", - "operationId": "brave-news", + "description": "Returns normalized sections from a CoinGecko public chain detail page. Sections are omitted when not present. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-chain", "parameters": [ { - "description": "Search query", - "example": "openai", - "in": "query", - "name": "q", + "description": "CoinGecko chain id such as ethereum", + "in": "path", + "name": "id", "required": true, "type": "string" }, { - "description": "Zero-based Brave result page; defaults to 0", - "example": 0, - "in": "query", - "minimum": 0, - "name": "offset", - "type": "integer" - }, - { - "description": "Results to return; defaults to 10, clamped to 1..50", - "example": 10, + "description": "Rows per section to return, default 20, max 100", "in": "query", - "maximum": 50, - "minimum": 1, - "name": "count", + "name": "limit", "type": "integer" }, { - "description": "Brave result country; defaults to us", - "enum": [ - "all", - "ar", - "at", - "au", - "be", - "br", - "ca", - "ch", - "cl", - "cn", - "de", - "dk", - "es", - "fi", - "fr", - "gb", - "gr", - "hk", - "id", - "in", - "it", - "jp", - "kr", - "mx", - "my", - "nl", - "no", - "nz", - "ph", - "pl", - "pt", - "ru", - "sa", - "se", - "sg", - "tr", - "tw", - "us", - "za" - ], - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Brave UI language; defaults to en-us", - "enum": [ - "de-de", - "en-ca", - "en-gb", - "en-in", - "en-us", - "fi-fi", - "fr-ca", - "fr-fr", - "ja-jp", - "pt-br", - "sq-al", - "sw-ke", - "zh-tw" - ], - "example": "en-us", - "in": "query", - "name": "lang", - "type": "string" - }, - { - "description": "Preset time filter: any, day, week, month, year, or custom", + "description": "Quote currency", "enum": [ - "any", - "day", - "week", - "month", - "year", - "custom" + "btc", + "eth", + "ltc", + "bch", + "bnb", + "eos", + "xrp", + "xlm", + "link", + "dot", + "yfi", + "sol", + "usd", + "aed", + "ars", + "aud", + "bdt", + "bhd", + "bmd", + "brl", + "cad", + "chf", + "clp", + "cny", + "czk", + "dkk", + "eur", + "gbp", + "gel", + "hkd", + "huf", + "idr", + "ils", + "inr", + "jpy", + "krw", + "kwd", + "lkr", + "mmk", + "mxn", + "myr", + "ngn", + "nok", + "nzd", + "php", + "pkr", + "pln", + "rub", + "sar", + "sek", + "sgd", + "thb", + "try", + "twd", + "uah", + "vef", + "vnd", + "zar", + "xdr", + "xag", + "xau", + "bits", + "sats" ], "in": "query", - "name": "time_range", - "type": "string" - }, - { - "description": "Custom start date in YYYY-MM-DD; requires date_to", - "example": "2026-03-01", - "in": "query", - "name": "date_from", - "type": "string" - }, - { - "description": "Custom end date in YYYY-MM-DD; requires date_from", - "example": "2026-03-30", - "in": "query", - "name": "date_to", + "name": "vs_currency", "type": "string" } ], @@ -45693,35 +49318,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/brave.newsResponseDoc" + "$ref": "#/definitions/coingecko.chainDetailResponseDoc" } }, "400": { - "description": "Missing or invalid query", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "No results found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "429": { - "description": "Rate limit exceeded", + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Brave upstream request failed", + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -45732,132 +49351,96 @@ "ApiKeyAuth": [] } ], - "summary": "Search Brave news results", + "summary": "CoinGecko chain detail", "tags": [ - "Brave" + "CoinGecko" ] } }, - "/brave/search": { + "/coingecko/coin/{id}": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized web search results from Brave Search for a query string, along with offset-based pagination, related queries, discussions, videos, and the right-side knowledge card when Brave includes one. Use time_range for preset ranges or date_from/date_to for a custom YYYY-MM-DD range. Locale defaults to country=us and lang=en-us.", - "operationId": "brave-search", + "description": "Returns normalized CoinGecko profile, market stats, links, and categories for one coin id. This endpoint supports the documented `vs_currency` enum and is not intended for real-time trading.", + "operationId": "coingecko-coin", "parameters": [ { - "description": "Search query", - "example": "openai", - "in": "query", - "name": "q", + "description": "CoinGecko coin id such as bitcoin", + "in": "path", + "name": "id", "required": true, "type": "string" }, { - "description": "Zero-based Brave result page", - "example": 1, - "in": "query", - "minimum": 0, - "name": "offset", - "type": "integer" - }, - { - "description": "Brave result country; defaults to us", - "enum": [ - "all", - "ar", - "at", - "au", - "be", - "br", - "ca", - "ch", - "cl", - "cn", - "de", - "dk", - "es", - "fi", - "fr", - "gb", - "gr", - "hk", - "id", - "in", - "it", - "jp", - "kr", - "mx", - "my", - "nl", - "no", - "nz", - "ph", - "pl", - "pt", - "ru", - "sa", - "se", - "sg", - "tr", - "tw", - "us", - "za" - ], - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Brave UI language; defaults to en-us", - "enum": [ - "de-de", - "en-ca", - "en-gb", - "en-in", - "en-us", - "fi-fi", - "fr-ca", - "fr-fr", - "ja-jp", - "pt-br", - "sq-al", - "sw-ke", - "zh-tw" - ], - "example": "en-us", - "in": "query", - "name": "lang", - "type": "string" - }, - { - "description": "Preset time filter: any, day, week, month, year, or custom", + "description": "Quote currency", "enum": [ - "any", - "day", - "week", - "month", - "year", - "custom" + "btc", + "eth", + "ltc", + "bch", + "bnb", + "eos", + "xrp", + "xlm", + "link", + "dot", + "yfi", + "sol", + "usd", + "aed", + "ars", + "aud", + "bdt", + "bhd", + "bmd", + "brl", + "cad", + "chf", + "clp", + "cny", + "czk", + "dkk", + "eur", + "gbp", + "gel", + "hkd", + "huf", + "idr", + "ils", + "inr", + "jpy", + "krw", + "kwd", + "lkr", + "mmk", + "mxn", + "myr", + "ngn", + "nok", + "nzd", + "php", + "pkr", + "pln", + "rub", + "sar", + "sek", + "sgd", + "thb", + "try", + "twd", + "uah", + "vef", + "vnd", + "zar", + "xdr", + "xag", + "xau", + "bits", + "sats" ], "in": "query", - "name": "time_range", - "type": "string" - }, - { - "description": "Custom start date in YYYY-MM-DD; requires date_to", - "example": "2026-03-01", - "in": "query", - "name": "date_from", - "type": "string" - }, - { - "description": "Custom end date in YYYY-MM-DD; requires date_from", - "example": "2026-03-30", - "in": "query", - "name": "date_to", + "name": "vs_currency", "type": "string" } ], @@ -45868,29 +49451,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/brave.searchResponseDoc" + "$ref": "#/definitions/coingecko.coinResponseDoc" } }, "400": { - "description": "Missing or invalid query", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "No results found", + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Rate limit exceeded", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal server error", + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -45901,106 +49484,113 @@ "ApiKeyAuth": [] } ], - "summary": "Search Brave", + "summary": "CoinGecko coin profile", "tags": [ - "Brave" + "CoinGecko" ] } }, - "/brave/suggest": { + "/coingecko/coin/{id}/analysis": { "get": { "consumes": [ "application/json" ], - "description": "Returns Brave autosuggest query completions for a query prefix. Locale defaults to country=us and lang=en-us. Suggestions are fetched from public Brave Search suggest JSON and trimmed to the requested count.", - "operationId": "brave-suggest", + "description": "Returns derived price-chart metrics from CoinGecko public chart JSON. This endpoint supports the documented `vs_currency` enum and is not investment advice or real-time trading data.", + "operationId": "coingecko-coin-analysis", "parameters": [ { - "description": "Search query prefix", - "example": "openai", - "in": "query", - "name": "q", + "description": "CoinGecko coin id such as bitcoin", + "in": "path", + "name": "id", "required": true, "type": "string" }, { - "description": "Suggestions to return; defaults to 10, clamped to 1..12", - "example": 10, - "in": "query", - "maximum": 12, - "minimum": 1, - "name": "count", - "type": "integer" - }, - { - "description": "Brave result country; defaults to us", + "description": "Quote currency", "enum": [ - "all", - "ar", - "at", - "au", - "be", - "br", - "ca", - "ch", - "cl", - "cn", - "de", - "dk", - "es", - "fi", - "fr", - "gb", - "gr", - "hk", - "id", - "in", - "it", - "jp", - "kr", - "mx", - "my", - "nl", - "no", - "nz", - "ph", - "pl", - "pt", - "ru", - "sa", - "se", - "sg", - "tr", - "tw", - "us", - "za" + "btc", + "eth", + "ltc", + "bch", + "bnb", + "eos", + "xrp", + "xlm", + "link", + "dot", + "yfi", + "sol", + "usd", + "aed", + "ars", + "aud", + "bdt", + "bhd", + "bmd", + "brl", + "cad", + "chf", + "clp", + "cny", + "czk", + "dkk", + "eur", + "gbp", + "gel", + "hkd", + "huf", + "idr", + "ils", + "inr", + "jpy", + "krw", + "kwd", + "lkr", + "mmk", + "mxn", + "myr", + "ngn", + "nok", + "nzd", + "php", + "pkr", + "pln", + "rub", + "sar", + "sek", + "sgd", + "thb", + "try", + "twd", + "uah", + "vef", + "vnd", + "zar", + "xdr", + "xag", + "xau", + "bits", + "sats" ], - "example": "us", "in": "query", - "name": "country", + "name": "vs_currency", "type": "string" }, { - "description": "Brave UI language; defaults to en-us", + "description": "Chart range", "enum": [ - "de-de", - "en-ca", - "en-gb", - "en-in", - "en-us", - "fi-fi", - "fr-ca", - "fr-fr", - "ja-jp", - "pt-br", - "sq-al", - "sw-ke", - "zh-tw" + "24h", + "max" ], - "example": "en-us", "in": "query", - "name": "lang", + "name": "range", "type": "string" + }, + { + "description": "Fetch optional CoinGecko chart annotations", + "in": "query", + "name": "include_annotations", + "type": "boolean" } ], "produces": [ @@ -46010,29 +49600,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/brave.suggestResponseDoc" + "$ref": "#/definitions/coingecko.analysisResponseDoc" } }, "400": { - "description": "Missing or invalid query", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Rate limit exceeded", + "404": { + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Brave upstream request failed", + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -46043,141 +49633,102 @@ "ApiKeyAuth": [] } ], - "summary": "Suggest Brave search queries", + "summary": "CoinGecko coin chart analysis", "tags": [ - "Brave" + "CoinGecko" ] } }, - "/brave/videos": { + "/coingecko/exchange/{id}": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized Brave video search results for a query string. Locale defaults to country=us and lang=en-us. Results are fetched from public Brave Search video HTML and return 503 when Brave serves a challenge page or unusable HTML.", - "operationId": "brave-videos", + "description": "Returns normalized profile stats and market rows from a CoinGecko public exchange page. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-exchange", "parameters": [ { - "description": "Search query", - "example": "openai", - "in": "query", - "name": "q", + "description": "CoinGecko exchange id such as binance", + "in": "path", + "name": "id", "required": true, "type": "string" }, { - "description": "Zero-based Brave result page; defaults to 0", - "example": 0, - "in": "query", - "minimum": 0, - "name": "offset", - "type": "integer" - }, - { - "description": "Results to return; defaults to 10, clamped to 1..50", - "example": 10, + "description": "Rows to return, default 100, max 100", "in": "query", - "maximum": 50, - "minimum": 1, - "name": "count", + "name": "limit", "type": "integer" }, { - "description": "Brave result country; defaults to us", - "enum": [ - "all", - "ar", - "at", - "au", - "be", - "br", - "ca", - "ch", - "cl", - "cn", - "de", - "dk", - "es", - "fi", - "fr", - "gb", - "gr", - "hk", - "id", - "in", - "it", - "jp", - "kr", - "mx", - "my", - "nl", - "no", - "nz", - "ph", - "pl", - "pt", - "ru", - "sa", - "se", - "sg", - "tr", - "tw", - "us", - "za" - ], - "example": "us", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Brave UI language; defaults to en-us", - "enum": [ - "de-de", - "en-ca", - "en-gb", - "en-in", - "en-us", - "fi-fi", - "fr-ca", - "fr-fr", - "ja-jp", - "pt-br", - "sq-al", - "sw-ke", - "zh-tw" - ], - "example": "en-us", - "in": "query", - "name": "lang", - "type": "string" - }, - { - "description": "Preset time filter: any, day, week, month, year, or custom", + "description": "Quote currency", "enum": [ - "any", - "day", - "week", - "month", - "year", - "custom" + "btc", + "eth", + "ltc", + "bch", + "bnb", + "eos", + "xrp", + "xlm", + "link", + "dot", + "yfi", + "sol", + "usd", + "aed", + "ars", + "aud", + "bdt", + "bhd", + "bmd", + "brl", + "cad", + "chf", + "clp", + "cny", + "czk", + "dkk", + "eur", + "gbp", + "gel", + "hkd", + "huf", + "idr", + "ils", + "inr", + "jpy", + "krw", + "kwd", + "lkr", + "mmk", + "mxn", + "myr", + "ngn", + "nok", + "nzd", + "php", + "pkr", + "pln", + "rub", + "sar", + "sek", + "sgd", + "thb", + "try", + "twd", + "uah", + "vef", + "vnd", + "zar", + "xdr", + "xag", + "xau", + "bits", + "sats" ], "in": "query", - "name": "time_range", - "type": "string" - }, - { - "description": "Custom start date in YYYY-MM-DD; requires date_to", - "example": "2026-03-01", - "in": "query", - "name": "date_from", - "type": "string" - }, - { - "description": "Custom end date in YYYY-MM-DD; requires date_from", - "example": "2026-03-30", - "in": "query", - "name": "date_to", + "name": "vs_currency", "type": "string" } ], @@ -46188,35 +49739,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/brave.videosResponseDoc" + "$ref": "#/definitions/coingecko.exchangeDetailResponseDoc" } }, "400": { - "description": "Missing or invalid query", + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } }, "404": { - "description": "No results found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, - "429": { - "description": "Rate limit exceeded", + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Brave upstream request failed", + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -46227,20 +49772,38 @@ "ApiKeyAuth": [] } ], - "summary": "Search Brave video results", + "summary": "CoinGecko exchange detail", "tags": [ - "Brave" + "CoinGecko" ] } }, - "/coingecko/categories": { + "/coingecko/exchanges": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized CoinGecko category rows from the public categories page. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-categories", + "description": "Returns normalized exchange rows from CoinGecko public website exchange tables. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-exchanges", "parameters": [ + { + "description": "Exchange table kind, default spot", + "enum": [ + "spot", + "dex", + "derivatives", + "perp_dex" + ], + "in": "query", + "name": "kind", + "type": "string" + }, + { + "description": "Page number, default 1", + "in": "query", + "name": "page", + "type": "integer" + }, { "description": "Rows to return, default 100, max 100", "in": "query", @@ -46326,7 +49889,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.categoriesResponseDoc" + "$ref": "#/definitions/coingecko.exchangesResponseDoc" } }, "400": { @@ -46353,35 +49916,22 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko categories", + "summary": "CoinGecko exchanges", "tags": [ "CoinGecko" ] } }, - "/coingecko/category/{slug}/coins": { + "/coingecko/gainers-losers": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized coin rows from a CoinGecko public category page. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-category-coins", + "description": "Returns normalized rows from CoinGecko's public crypto gainers and losers table. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-gainers-losers", "parameters": [ { - "description": "CoinGecko category slug such as stablecoins", - "in": "path", - "name": "slug", - "required": true, - "type": "string" - }, - { - "description": "Page number, default 1", - "in": "query", - "name": "page", - "type": "integer" - }, - { - "description": "Rows to return, default 100, max 100", + "description": "Rows per section to return, default 20, max 100", "in": "query", "name": "limit", "type": "integer" @@ -46465,7 +50015,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.categoryCoinsResponseDoc" + "$ref": "#/definitions/coingecko.gainersLosersResponseDoc" } }, "400": { @@ -46474,8 +50024,202 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "CoinGecko crypto gainers and losers", + "tags": [ + "CoinGecko" + ] + } + }, + "/coingecko/global": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized global market metrics from CoinGecko's public charts page.", + "operationId": "coingecko-global", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/coingecko.globalResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "CoinGecko global market snapshot", + "tags": [ + "CoinGecko" + ] + } + }, + "/coingecko/global/charts": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized global chart series from public CoinGecko website JSON endpoints.", + "operationId": "coingecko-global-charts", + "parameters": [ + { + "description": "Chart kind, default total_market_cap", + "enum": [ + "total_market_cap", + "bitcoin_dominance", + "altcoin_market_cap", + "defi_market_cap" + ], + "in": "query", + "name": "kind", + "type": "string" + }, + { + "description": "Chart range, default 90d", + "enum": [ + "24h", + "7d", + "14d", + "30d", + "90d", + "1y", + "max" + ], + "in": "query", + "name": "range", + "type": "string" + }, + { + "description": "Rows per series to return, default 120, max 500", + "in": "query", + "name": "limit", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/coingecko.globalChartsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "CoinGecko global chart series", + "tags": [ + "CoinGecko" + ] + } + }, + "/coingecko/learn/articles": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized article cards from CoinGecko Learn public pages.", + "operationId": "coingecko-learn-articles", + "parameters": [ + { + "description": "Learn category, default all", + "enum": [ + "all", + "latest", + "airdrop-guides", + "coins-and-tokens", + "guides", + "wallets-and-bridges", + "api", + "reviews" + ], + "in": "query", + "name": "category", + "type": "string" + }, + { + "description": "Rows to return, default 20, max 50", + "in": "query", + "name": "limit", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/coingecko.learnArticlesResponseDoc" + } + }, + "400": { + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } @@ -46498,20 +50242,26 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko category coins", + "summary": "CoinGecko Learn articles", "tags": [ "CoinGecko" ] } }, - "/coingecko/chains": { + "/coingecko/markets": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized chain rows from the CoinGecko public website chains table. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-chains", + "description": "Returns normalized cryptocurrency market rows from CoinGecko public pages. This endpoint supports the documented `vs_currency` enum and is not intended for real-time trading.", + "operationId": "coingecko-markets", "parameters": [ + { + "description": "Page number, default 1", + "in": "query", + "name": "page", + "type": "integer" + }, { "description": "Rows to return, default 100, max 100", "in": "query", @@ -46597,7 +50347,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.chainsResponseDoc" + "$ref": "#/definitions/coingecko.marketsResponseDoc" } }, "400": { @@ -46606,6 +50356,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "500": { "description": "Internal Server Error", "schema": { @@ -46624,29 +50380,28 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko chains", + "summary": "CoinGecko markets", "tags": [ "CoinGecko" ] } }, - "/coingecko/chains/{id}": { + "/coingecko/new-coins": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized sections from a CoinGecko public chain detail page. Sections are omitted when not present. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-chain", + "description": "Returns normalized rows from CoinGecko's public new cryptocurrencies table. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-new-coins", "parameters": [ { - "description": "CoinGecko chain id such as ethereum", - "in": "path", - "name": "id", - "required": true, - "type": "string" + "description": "Page number, default 1", + "in": "query", + "name": "page", + "type": "integer" }, { - "description": "Rows per section to return, default 20, max 100", + "description": "Rows to return, default 100, max 100", "in": "query", "name": "limit", "type": "integer" @@ -46730,7 +50485,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.chainDetailResponseDoc" + "$ref": "#/definitions/coingecko.newCoinsResponseDoc" } }, "400": { @@ -46739,8 +50494,57 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "CoinGecko new cryptocurrencies", + "tags": [ + "CoinGecko" + ] + } + }, + "/coingecko/news": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized article cards from CoinGecko's public news page.", + "operationId": "coingecko-news", + "parameters": [ + { + "description": "Rows to return, default 20, max 50", + "in": "query", + "name": "limit", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/coingecko.newsResponseDoc" + } + }, + "400": { + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } @@ -46763,27 +50567,39 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko chain detail", + "summary": "CoinGecko news cards", "tags": [ "CoinGecko" ] } }, - "/coingecko/coin/{id}": { + "/coingecko/nft/category/{slug}": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized CoinGecko profile, market stats, links, and categories for one coin id. This endpoint supports the documented `vs_currency` enum and is not intended for real-time trading.", - "operationId": "coingecko-coin", + "description": "Returns normalized NFT collection rows from a CoinGecko public NFT category page. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-nft-category", "parameters": [ { - "description": "CoinGecko coin id such as bitcoin", + "description": "CoinGecko NFT category slug such as metaverse", "in": "path", - "name": "id", + "name": "slug", "required": true, "type": "string" }, + { + "description": "Page number, default 1", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Rows to return, default 100, max 100", + "in": "query", + "name": "limit", + "type": "integer" + }, { "description": "Quote currency", "enum": [ @@ -46863,7 +50679,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.coinResponseDoc" + "$ref": "#/definitions/coingecko.nftCategoryResponseDoc" } }, "400": { @@ -46896,26 +50712,31 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko coin profile", + "summary": "CoinGecko NFT category", "tags": [ "CoinGecko" ] } }, - "/coingecko/coin/{id}/analysis": { + "/coingecko/nfts": { "get": { "consumes": [ "application/json" ], - "description": "Returns derived price-chart metrics from CoinGecko public chart JSON. This endpoint supports the documented `vs_currency` enum and is not investment advice or real-time trading data.", - "operationId": "coingecko-coin-analysis", + "description": "Returns normalized NFT collection rows from the CoinGecko public website NFT table. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-nfts", "parameters": [ { - "description": "CoinGecko coin id such as bitcoin", - "in": "path", - "name": "id", - "required": true, - "type": "string" + "description": "Page number, default 1", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Rows to return, default 100, max 100", + "in": "query", + "name": "limit", + "type": "integer" }, { "description": "Quote currency", @@ -46987,22 +50808,68 @@ "in": "query", "name": "vs_currency", "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/coingecko.nftsResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ { - "description": "Chart range", - "enum": [ - "24h", - "max" - ], + "ApiKeyAuth": [] + } + ], + "summary": "CoinGecko NFT collections", + "tags": [ + "CoinGecko" + ] + } + }, + "/coingecko/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized CoinGecko search sections from the public website search JSON. Empty valid searches return empty arrays.", + "operationId": "coingecko-search", + "parameters": [ + { + "description": "Search query", "in": "query", - "name": "range", + "name": "q", + "required": true, "type": "string" }, { - "description": "Fetch optional CoinGecko chart annotations", + "description": "Rows per section to return, default 10, max 50", "in": "query", - "name": "include_annotations", - "type": "boolean" + "name": "limit", + "type": "integer" } ], "produces": [ @@ -47012,7 +50879,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.analysisResponseDoc" + "$ref": "#/definitions/coingecko.searchResponseDoc" } }, "400": { @@ -47021,8 +50888,57 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "CoinGecko discovery search", + "tags": [ + "CoinGecko" + ] + } + }, + "/coingecko/token-unlocks": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized rows from CoinGecko's public incoming token unlocks page.", + "operationId": "coingecko-token-unlocks", + "parameters": [ + { + "description": "Rows to return, default 100, max 100", + "in": "query", + "name": "limit", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/coingecko.tokenUnlocksResponseDoc" + } + }, + "400": { + "description": "Bad Request", "schema": { "$ref": "#/definitions/app.Response" } @@ -47045,25 +50961,44 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko coin chart analysis", + "summary": "CoinGecko incoming token unlocks", "tags": [ "CoinGecko" ] } }, - "/coingecko/exchange/{id}": { + "/coingecko/treasuries": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized profile stats and market rows from a CoinGecko public exchange page. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-exchange", + "description": "Returns normalized entity rows from CoinGecko's public crypto treasuries tables. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-treasuries", "parameters": [ { - "description": "CoinGecko exchange id such as binance", - "in": "path", - "name": "id", - "required": true, + "description": "Treasury asset filter, default all", + "enum": [ + "all", + "bitcoin", + "ethereum", + "solana", + "bnb", + "xrp", + "tron" + ], + "in": "query", + "name": "asset", + "type": "string" + }, + { + "description": "Treasury holder type filter, default all", + "enum": [ + "all", + "companies", + "governments" + ], + "in": "query", + "name": "holder_type", "type": "string" }, { @@ -47151,7 +51086,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.exchangeDetailResponseDoc" + "$ref": "#/definitions/coingecko.treasuriesResponseDoc" } }, "400": { @@ -47160,12 +51095,6 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "500": { "description": "Internal Server Error", "schema": { @@ -47184,40 +51113,22 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko exchange detail", + "summary": "CoinGecko crypto treasuries", "tags": [ "CoinGecko" ] } }, - "/coingecko/exchanges": { + "/coingecko/trending": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized exchange rows from CoinGecko public website exchange tables. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-exchanges", + "description": "Returns deduped trending coins and categories from the public CoinGecko highlights page. This endpoint supports the documented `vs_currency` enum.", + "operationId": "coingecko-trending", "parameters": [ { - "description": "Exchange table kind, default spot", - "enum": [ - "spot", - "dex", - "derivatives", - "perp_dex" - ], - "in": "query", - "name": "kind", - "type": "string" - }, - { - "description": "Page number, default 1", - "in": "query", - "name": "page", - "type": "integer" - }, - { - "description": "Rows to return, default 100, max 100", + "description": "Rows per section to return, default 20, max 50", "in": "query", "name": "limit", "type": "integer" @@ -47290,8 +51201,217 @@ "sats" ], "in": "query", - "name": "vs_currency", + "name": "vs_currency", + "type": "string" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/coingecko.trendingResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "CoinGecko trending highlights", + "tags": [ + "CoinGecko" + ] + } + }, + "/contact": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Crawls a public website URL (homepage plus contact/about/team/imprint pages) and returns its public business contact details: emails — each tagged with a verification `status` (`verified`, `risky`, `unverified`, `invalid`) and a `type` (`generic`, `role`, `personal`) — plus social-media profiles and phone numbers. Intended for authorized public-business data only.", + "operationId": "contact", + "parameters": [ + { + "description": "Website URL payload", + "in": "body", + "name": "option", + "required": true, + "schema": { + "$ref": "#/definitions/contact.ContactRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/contact.contactResponseDoc" + } + }, + "400": { + "description": "Invalid input or missing URL", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error during contact extraction", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Contact API — emails, socials and phones for a website", + "tags": [ + "Web" + ] + } + }, + "/datasets": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Lists available read-only scraped datasets. Initial dataset id enum: `google-map-businesses`.", + "operationId": "datasets-list", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/datasets.listResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List stored scraped datasets", + "tags": [ + "Datasets" + ] + } + }, + "/datasets/airbnb-markets/facets": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns suppressed distribution counts over the Airbnb markets dataset, honoring the same filters as search. Facet enum: `country`, `market`, `currency`, `superhost`, `guest_favorite`, `rating_band`, `review_band`, `admin1` (top subdivision), `locality` (settlement), `room_type` (`entire_place`/`private_room`/`hotel`/`shared_room`), `property_type` (Airbnb's canonical listing type from the detail page), `amenities` (each amenity with the count of listings offering it). The `admin1`, `locality`, `room_type`, `property_type` and `amenities` facets stay empty until their enrichment coverage is high enough to be reliable. group_by enum: `country`, `market`, `admin1`, `locality`, `room_type`, `property_type`.", + "operationId": "datasets-airbnb-markets-facets", + "parameters": [ + { + "description": "Facet enum: country, market, currency, superhost, guest_favorite, rating_band, review_band, admin1, locality, room_type, property_type, amenities", + "in": "query", + "name": "facet", + "required": true, + "type": "string" + }, + { + "description": "Aggregate cell dimension enum: country, market, admin1, locality, room_type, property_type. Defaults to country", + "in": "query", + "name": "group_by", + "type": "string" + }, + { + "description": "Exact ISO-3166-1 alpha-2 country filter, e.g. FR", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Exact metro-market filter, max 128 characters", + "in": "query", + "name": "market", + "type": "string" + }, + { + "description": "Count only Superhost listings", + "in": "query", + "name": "superhost", + "type": "boolean" + }, + { + "description": "Count only Guest Favorite listings (an observed lower bound; the badge under-counts)", + "in": "query", + "name": "guest_favorite", + "type": "boolean" + }, + { + "description": "Minimum listing rating, from 0 through 5", + "in": "query", + "name": "min_rating", + "type": "number" + }, + { + "description": "Minimum listing review count, 0 or greater", + "in": "query", + "name": "min_review_count", + "type": "integer" + }, + { + "description": "Freshness filter, an ISO-8601 date (YYYY-MM-DD)", + "in": "query", + "name": "active_since", "type": "string" + }, + { + "description": "Minimum listings per bucket; raises the small-cell suppression floor", + "in": "query", + "name": "min_listings", + "type": "integer" } ], "produces": [ @@ -47301,7 +51421,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.exchangesResponseDoc" + "$ref": "#/definitions/datasets.airbnbMarketsFacetResponseDoc" } }, "400": { @@ -47310,14 +51430,14 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -47328,95 +51448,25 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko exchanges", + "summary": "Facet the Airbnb markets dataset", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/gainers-losers": { + "/datasets/airbnb-markets/items/{country}": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized rows from CoinGecko's public crypto gainers and losers table. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-gainers-losers", + "description": "Returns one country's full aggregate Airbnb market profile from dataset id enum value `airbnb-markets` — headline supply, Superhost share, Guest Favorite share (`guest_favorite_pct`, an observed lower bound), `avg_person_capacity` (average guests a listing sleeps over the detail-page-enriched sample), ratings, its top metros, bounding box, per-currency nightly-price percentiles, and a USD-normalized `price_usd` percentile block (converted via an approximate dated FX snapshot) for cross-country comparison. Aggregate-only. Returns 404 for a country below the suppression floor.", + "operationId": "datasets-airbnb-markets-item", "parameters": [ { - "description": "Rows per section to return, default 20, max 100", - "in": "query", - "name": "limit", - "type": "integer" - }, - { - "description": "Quote currency", - "enum": [ - "btc", - "eth", - "ltc", - "bch", - "bnb", - "eos", - "xrp", - "xlm", - "link", - "dot", - "yfi", - "sol", - "usd", - "aed", - "ars", - "aud", - "bdt", - "bhd", - "bmd", - "brl", - "cad", - "chf", - "clp", - "cny", - "czk", - "dkk", - "eur", - "gbp", - "gel", - "hkd", - "huf", - "idr", - "ils", - "inr", - "jpy", - "krw", - "kwd", - "lkr", - "mmk", - "mxn", - "myr", - "ngn", - "nok", - "nzd", - "php", - "pkr", - "pln", - "rub", - "sar", - "sek", - "sgd", - "thb", - "try", - "twd", - "uah", - "vef", - "vnd", - "zar", - "xdr", - "xag", - "xau", - "bits", - "sats" - ], - "in": "query", - "name": "vs_currency", + "description": "ISO-3166-1 alpha-2 country code, e.g. FR", + "in": "path", + "name": "country", + "required": true, "type": "string" } ], @@ -47427,7 +51477,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.gainersLosersResponseDoc" + "$ref": "#/definitions/datasets.airbnbMarketResponseDoc" } }, "400": { @@ -47436,14 +51486,20 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "404": { + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -47454,19 +51510,78 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko crypto gainers and losers", + "summary": "Get an Airbnb market from the dataset", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/global": { + "/datasets/airbnb-markets/nearby": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized global market metrics from CoinGecko's public charts page.", - "operationId": "coingecko-global", + "description": "Returns an aggregate geohash-grid density map of Airbnb listings within a radius of a coordinate, from dataset id enum value `airbnb-markets`. Each cell reports a centroid, listing count and Superhost share; thin cells are suppressed. Aggregate-only.", + "operationId": "datasets-airbnb-markets-nearby", + "parameters": [ + { + "description": "Center latitude, from -90 through 90", + "in": "query", + "name": "lat", + "required": true, + "type": "number" + }, + { + "description": "Center longitude, from -180 through 180", + "in": "query", + "name": "lon", + "required": true, + "type": "number" + }, + { + "description": "Search radius in meters, from 1 through 50000", + "in": "query", + "name": "radius_m", + "required": true, + "type": "integer" + }, + { + "description": "Geohash precision, from 1 through 12; defaults to a value derived from the radius", + "in": "query", + "name": "precision", + "type": "integer" + }, + { + "description": "Minimum listings per cell; raises the small-cell suppression floor", + "in": "query", + "name": "min_listings", + "type": "integer" + }, + { + "description": "Exact ISO-3166-1 alpha-2 country filter, e.g. US", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Count only Superhost listings", + "in": "query", + "name": "superhost", + "type": "boolean" + }, + { + "description": "Minimum listing rating, from 0 through 5", + "in": "query", + "name": "min_rating", + "type": "number" + }, + { + "description": "Freshness filter, an ISO-8601 date (YYYY-MM-DD)", + "in": "query", + "name": "active_since", + "type": "string" + } + ], "produces": [ "application/json" ], @@ -47474,7 +51589,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.globalResponseDoc" + "$ref": "#/definitions/datasets.airbnbMarketsNearbyResponseDoc" } }, "400": { @@ -47483,14 +51598,14 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -47501,51 +51616,90 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko global market snapshot", + "summary": "Airbnb market density near a coordinate", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/global/charts": { + "/datasets/airbnb-markets/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized global chart series from public CoinGecko website JSON endpoints.", - "operationId": "coingecko-global-charts", + "description": "Returns aggregate Airbnb short-term-rental market rollups from the dataset id enum value `airbnb-markets`. Aggregate-only: each row is a market cell, never an individual listing. Thin cells are suppressed. group_by enum: `country`, `market`, `admin1` (top subdivision), `locality` (settlement), `room_type` (`entire_place`/`private_room`/`hotel`/`shared_room`), `property_type` (Airbnb's canonical listing type from the detail page). `admin1`, `locality`, `room_type` and `property_type` are enrichment-derived and stay empty until their coverage is high enough to be reliable. Each cell also carries `median_price_usd`, the median nightly price converted to USD via an approximate dated FX snapshot, for cross-country comparison (combine with `group_by=room_type` for median price by room type); `guest_favorite_pct`, the share of listings carrying the Guest Favorite badge (an observed lower bound, like `superhost_pct`); and `avg_person_capacity`, the average guests a listing sleeps over the detail-page-enriched sample. Sort enum: `listings_desc`, `superhost_pct_desc`, `rating_desc`, `key_asc`.", + "operationId": "datasets-airbnb-markets-search", "parameters": [ { - "description": "Chart kind, default total_market_cap", - "enum": [ - "total_market_cap", - "bitcoin_dominance", - "altcoin_market_cap", - "defi_market_cap" - ], + "description": "Aggregate cell dimension enum: country, market, admin1, locality, room_type, property_type. Defaults to country", "in": "query", - "name": "kind", + "name": "group_by", "type": "string" }, { - "description": "Chart range, default 90d", - "enum": [ - "24h", - "7d", - "14d", - "30d", - "90d", - "1y", - "max" - ], + "description": "Exact ISO-3166-1 alpha-2 country filter, e.g. FR", "in": "query", - "name": "range", + "name": "country", "type": "string" }, { - "description": "Rows per series to return, default 120, max 500", + "description": "Exact metro-market filter, e.g. Paris, max 128 characters", "in": "query", - "name": "limit", + "name": "market", + "type": "string" + }, + { + "description": "Count only Superhost listings", + "in": "query", + "name": "superhost", + "type": "boolean" + }, + { + "description": "Count only Guest Favorite listings (an observed lower bound; the badge under-counts)", + "in": "query", + "name": "guest_favorite", + "type": "boolean" + }, + { + "description": "Minimum listing rating, from 0 through 5", + "in": "query", + "name": "min_rating", + "type": "number" + }, + { + "description": "Minimum listing review count, 0 or greater", + "in": "query", + "name": "min_review_count", + "type": "integer" + }, + { + "description": "Freshness filter, an ISO-8601 date (YYYY-MM-DD); only listings last seen on or after it are counted", + "in": "query", + "name": "active_since", + "type": "string" + }, + { + "description": "Minimum listings per cell; raises the small-cell suppression floor (never lowered below the built-in minimum)", + "in": "query", + "name": "min_listings", + "type": "integer" + }, + { + "description": "Sort enum: listings_desc, superhost_pct_desc, rating_desc, key_asc", + "in": "query", + "name": "sort", + "type": "string" + }, + { + "description": "Page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "in": "query", + "name": "page_size", "type": "integer" } ], @@ -47556,7 +51710,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.globalChartsResponseDoc" + "$ref": "#/definitions/datasets.airbnbMarketsSearchResponseDoc" } }, "400": { @@ -47565,14 +51719,14 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -47583,40 +51737,84 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko global chart series", + "summary": "Search the Airbnb markets dataset", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/learn/articles": { + "/datasets/apps-charts/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized article cards from CoinGecko Learn public pages.", - "operationId": "coingecko-learn-articles", + "description": "Searches daily top-chart snapshots scraped from the iOS App Store and Google Play, stored in a search index (one document per chart × snapshot × rank). With no `date` the latest snapshot is returned (today's chart); pair `app_id` with `sort=date_desc` for an app's rank over time. Store enum: `ios`, `android`. Chart type enum: `top_free`, `top_paid`, `top_grossing`, `new`. Sort enum: `rank`, `rank_desc`, `date_desc`.", + "operationId": "datasets-apps-charts-search", "parameters": [ { - "description": "Learn category, default all", - "enum": [ - "all", - "latest", - "airdrop-guides", - "coins-and-tokens", - "guides", - "wallets-and-bridges", - "api", - "reviews" - ], + "description": "Full-text query over chart-entry title and developer, max 256 characters", + "in": "query", + "name": "q", + "type": "string" + }, + { + "description": "Store enum: ios, android", + "in": "query", + "name": "store", + "type": "string" + }, + { + "description": "Chart enum: top_free, top_paid, top_grossing, new", + "in": "query", + "name": "chart_type", + "type": "string" + }, + { + "description": "Raw store collection id filter (e.g. topgrossingapplications, GROSSING), max 128 characters", + "in": "query", + "name": "collection", + "type": "string" + }, + { + "description": "Store category/genre filter, max 128 characters; empty for the overall charts", "in": "query", "name": "category", "type": "string" }, { - "description": "Rows to return, default 20, max 50", + "description": "Exact storefront country filter, max 128 characters", "in": "query", - "name": "limit", + "name": "country", + "type": "string" + }, + { + "description": "Exact app filter — iOS numeric track id or Android package; pair with sort=date_desc for rank history", + "in": "query", + "name": "app_id", + "type": "string" + }, + { + "description": "Snapshot date filter yyyy-MM-dd; defaults to the latest snapshot", + "in": "query", + "name": "date", + "type": "string" + }, + { + "description": "Sort enum: rank, rank_desc, date_desc", + "in": "query", + "name": "sort", + "type": "string" + }, + { + "description": "Page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "in": "query", + "name": "page_size", "type": "integer" } ], @@ -47627,7 +51825,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.learnArticlesResponseDoc" + "$ref": "#/definitions/datasets.chartsSearchResponseDoc" } }, "400": { @@ -47636,120 +51834,85 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" - } - } - }, - "security": [ - { - "ApiKeyAuth": [] - } - ], - "summary": "CoinGecko Learn articles", - "tags": [ - "CoinGecko" - ] - } - }, - "/coingecko/markets": { - "get": { - "consumes": [ - "application/json" - ], - "description": "Returns normalized cryptocurrency market rows from CoinGecko public pages. This endpoint supports the documented `vs_currency` enum and is not intended for real-time trading.", - "operationId": "coingecko-markets", - "parameters": [ - { - "description": "Page number, default 1", - "in": "query", - "name": "page", - "type": "integer" - }, - { - "description": "Rows to return, default 100, max 100", - "in": "query", - "name": "limit", - "type": "integer" - }, - { - "description": "Quote currency", - "enum": [ - "btc", - "eth", - "ltc", - "bch", - "bnb", - "eos", - "xrp", - "xlm", - "link", - "dot", - "yfi", - "sol", - "usd", - "aed", - "ars", - "aud", - "bdt", - "bhd", - "bmd", - "brl", - "cad", - "chf", - "clp", - "cny", - "czk", - "dkk", - "eur", - "gbp", - "gel", - "hkd", - "huf", - "idr", - "ils", - "inr", - "jpy", - "krw", - "kwd", - "lkr", - "mmk", - "mxn", - "myr", - "ngn", - "nok", - "nzd", - "php", - "pkr", - "pln", - "rub", - "sar", - "sek", - "sgd", - "thb", - "try", - "twd", - "uah", - "vef", - "vnd", - "zar", - "xdr", - "xag", - "xau", - "bits", - "sats" - ], + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search the app-charts dataset", + "tags": [ + "Datasets" + ] + } + }, + "/datasets/apps-reviews/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Searches user reviews scraped from the iOS App Store and Google Play, stored in a search index (one document per review). Store enum: `ios`, `android`. Sort enum: `recent`, `score_desc`, `score_asc`, `helpful_desc`.", + "operationId": "datasets-apps-reviews-search", + "parameters": [ + { + "description": "Full-text query over review text, title and author, max 256 characters", "in": "query", - "name": "vs_currency", + "name": "q", + "type": "string" + }, + { + "description": "Store enum: ios, android", + "in": "query", + "name": "store", "type": "string" + }, + { + "description": "Exact app filter — iOS numeric track id or Android package, max 128 characters", + "in": "query", + "name": "app_id", + "type": "string" + }, + { + "description": "Exact storefront country filter, max 128 characters", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Minimum star rating, 1 through 5", + "in": "query", + "name": "min_score", + "type": "integer" + }, + { + "description": "Sort enum: recent, score_desc, score_asc, helpful_desc", + "in": "query", + "name": "sort", + "type": "string" + }, + { + "description": "Page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "in": "query", + "name": "page_size", + "type": "integer" } ], "produces": [ @@ -47759,7 +51922,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.marketsResponseDoc" + "$ref": "#/definitions/datasets.reviewsSearchResponseDoc" } }, "400": { @@ -47768,8 +51931,8 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -47779,12 +51942,6 @@ "schema": { "$ref": "#/definitions/app.Response" } - }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } } }, "security": [ @@ -47792,102 +51949,85 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko markets", + "summary": "Search the app-reviews dataset", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/new-coins": { + "/datasets/apps/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized rows from CoinGecko's public new cryptocurrencies table. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-new-coins", + "description": "Searches resolved iOS App Store and Google Play apps stored in a search index. Store enum: `ios`, `android`, `both`. Sort enum: `relevance`, `rating_desc`, `reviews_desc`, `installs_desc`, `updated_at_desc`.", + "operationId": "datasets-apps-search", "parameters": [ { - "description": "Page number, default 1", + "description": "Full-text query over title, developer and category, max 256 characters", "in": "query", - "name": "page", - "type": "integer" + "name": "q", + "type": "string" }, { - "description": "Rows to return, default 100, max 100", + "description": "Store enum: ios, android, both", "in": "query", - "name": "limit", + "name": "store", + "type": "string" + }, + { + "description": "Exact app-store category filter, max 128 characters", + "in": "query", + "name": "category", + "type": "string" + }, + { + "description": "Exact storefront country filter, max 128 characters", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Exact developer/publisher name filter, max 128 characters", + "in": "query", + "name": "developer", + "type": "string" + }, + { + "description": "Filter by price; true keeps only free apps, false only paid", + "in": "query", + "name": "free", + "type": "boolean" + }, + { + "description": "Minimum store rating, 0 through 5", + "in": "query", + "name": "min_rating", + "type": "number" + }, + { + "description": "Minimum ratings/review count", + "in": "query", + "name": "min_reviews", "type": "integer" }, { - "description": "Quote currency", - "enum": [ - "btc", - "eth", - "ltc", - "bch", - "bnb", - "eos", - "xrp", - "xlm", - "link", - "dot", - "yfi", - "sol", - "usd", - "aed", - "ars", - "aud", - "bdt", - "bhd", - "bmd", - "brl", - "cad", - "chf", - "clp", - "cny", - "czk", - "dkk", - "eur", - "gbp", - "gel", - "hkd", - "huf", - "idr", - "ils", - "inr", - "jpy", - "krw", - "kwd", - "lkr", - "mmk", - "mxn", - "myr", - "ngn", - "nok", - "nzd", - "php", - "pkr", - "pln", - "rub", - "sar", - "sek", - "sgd", - "thb", - "try", - "twd", - "uah", - "vef", - "vnd", - "zar", - "xdr", - "xag", - "xau", - "bits", - "sats" - ], + "description": "Sort enum: relevance, rating_desc, reviews_desc, installs_desc, updated_at_desc", "in": "query", - "name": "vs_currency", + "name": "sort", "type": "string" + }, + { + "description": "Page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "in": "query", + "name": "page_size", + "type": "integer" } ], "produces": [ @@ -47897,7 +52037,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.newCoinsResponseDoc" + "$ref": "#/definitions/datasets.appsSearchResponseDoc" } }, "400": { @@ -47906,14 +52046,14 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -47924,24 +52064,84 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko new cryptocurrencies", + "summary": "Search the apps-intelligence dataset", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/news": { + "/datasets/creators/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized article cards from CoinGecko's public news page.", - "operationId": "coingecko-news", + "description": "Searches TikTok creators stored in a search index (one document per creator), with follower counts, verified status, niche, and engagement. Deleted and private accounts are excluded by default; set `include_inactive=true` to include them for historical lookups. Sort enum: `followers_desc`, `engagement_desc`, `likes_desc`, `relevance`. Coverage note: `followers_desc`, `likes_desc`, and `relevance` are backed by profile fields present across the full dataset; the post-level engagement metrics (`engagement_rate`, `avg_views`, and the nested `post_stats` object) and the `engagement_desc` sort are currently populated for a growing subset of creators, prioritizing the highest-reach accounts. Creators without these metrics are still returned but sort last under `engagement_desc` and omit those fields.", + "operationId": "datasets-creators-search", "parameters": [ { - "description": "Rows to return, default 20, max 50", + "description": "Full-text query over handle, nickname and bio, max 256 characters", "in": "query", - "name": "limit", + "name": "q", + "type": "string" + }, + { + "description": "Exact handle lookup (case-insensitive), e.g. khaby.lame; returns the single creator with that exact @handle", + "in": "query", + "name": "handle", + "type": "string" + }, + { + "description": "Exact content-niche filter, max 128 characters", + "in": "query", + "name": "niche", + "type": "string" + }, + { + "description": "Exact creator country/region filter, max 128 characters", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Filter by verified badge; true keeps only verified creators", + "in": "query", + "name": "verified", + "type": "boolean" + }, + { + "description": "Minimum follower count", + "in": "query", + "name": "min_followers", + "type": "integer" + }, + { + "description": "Filter by contact-email presence; true keeps only creators with an email", + "in": "query", + "name": "has_email", + "type": "boolean" + }, + { + "description": "Include deleted/private accounts; defaults to false (only live accounts returned)", + "in": "query", + "name": "include_inactive", + "type": "boolean" + }, + { + "description": "Sort enum: followers_desc, engagement_desc, likes_desc, relevance. engagement_desc ranks by post-level engagement rate, currently populated for a subset of creators (highest-reach first); creators without it sort last", + "in": "query", + "name": "sort", + "type": "string" + }, + { + "description": "Page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "in": "query", + "name": "page_size", "type": "integer" } ], @@ -47952,7 +52152,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.newsResponseDoc" + "$ref": "#/definitions/datasets.creatorsSearchResponseDoc" } }, "400": { @@ -47961,14 +52161,14 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -47979,246 +52179,193 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko news cards", + "summary": "Search the TikTok creators dataset", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/nft/category/{slug}": { + "/datasets/github-users/facets": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized NFT collection rows from a CoinGecko public NFT category page. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-nft-category", + "description": "Returns terms aggregation counts for the GitHub users dataset. Facet enum: `influence_tier`, `type`, `country`, `country_code`, `state`, `city`, `domains`, `company`, `reachable`, `has_email`, `has_twitter`, `has_blog`, `active_90d`, `hireable`, `is_org`, `is_bot`, `is_suspected_automation`. influence_tier enum: `nano`, `micro`, `mid`, `macro`, `mega`. Suspected-automation records are excluded by default unless is_suspected_automation is set.", + "operationId": "datasets-github-users-facets", "parameters": [ { - "description": "CoinGecko NFT category slug such as metaverse", - "in": "path", - "name": "slug", + "description": "Facet enum: influence_tier, type, country, country_code, state, city, domains, company, reachable, has_email, has_twitter, has_blog, active_90d, hireable, is_org, is_bot, is_suspected_automation", + "in": "query", + "name": "facet", "required": true, "type": "string" }, { - "description": "Page number, default 1", + "description": "Full-text query over login, name, company, bio and location, max 256 characters", "in": "query", - "name": "page", - "type": "integer" + "name": "q", + "type": "string" }, { - "description": "Rows to return, default 100, max 100", + "description": "Exact login filter, max 128 characters", "in": "query", - "name": "limit", - "type": "integer" + "name": "login", + "type": "string" }, { - "description": "Quote currency", - "enum": [ - "btc", - "eth", - "ltc", - "bch", - "bnb", - "eos", - "xrp", - "xlm", - "link", - "dot", - "yfi", - "sol", - "usd", - "aed", - "ars", - "aud", - "bdt", - "bhd", - "bmd", - "brl", - "cad", - "chf", - "clp", - "cny", - "czk", - "dkk", - "eur", - "gbp", - "gel", - "hkd", - "huf", - "idr", - "ils", - "inr", - "jpy", - "krw", - "kwd", - "lkr", - "mmk", - "mxn", - "myr", - "ngn", - "nok", - "nzd", - "php", - "pkr", - "pln", - "rub", - "sar", - "sek", - "sgd", - "thb", - "try", - "twd", - "uah", - "vef", - "vnd", - "zar", - "xdr", - "xag", - "xau", - "bits", - "sats" - ], + "description": "Exact normalized-company filter, max 128 characters", "in": "query", - "name": "vs_currency", + "name": "company", "type": "string" - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/coingecko.nftCategoryResponseDoc" - } }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/app.Response" - } + { + "description": "Follower-tier enum: nano, micro, mid, macro, mega", + "in": "query", + "name": "influence_tier", + "type": "string" + }, + { + "description": "Exact geocoded country filter, max 128 characters", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Exact ISO country-code filter, max 128 characters", + "in": "query", + "name": "country_code", + "type": "string" + }, + { + "description": "Exact geocoded state filter, max 128 characters", + "in": "query", + "name": "state", + "type": "string" + }, + { + "description": "Exact geocoded city filter, max 128 characters", + "in": "query", + "name": "city", + "type": "string" + }, + { + "description": "Interest-domain tag filter, max 128 characters", + "in": "query", + "name": "domain", + "type": "string" + }, + { + "description": "Filter by public email presence", + "in": "query", + "name": "has_email", + "type": "boolean" + }, + { + "description": "Filter by public Twitter/X handle presence", + "in": "query", + "name": "has_twitter", + "type": "boolean" + }, + { + "description": "Filter by public blog/website presence", + "in": "query", + "name": "has_blog", + "type": "boolean" + }, + { + "description": "Filter by any public contact channel", + "in": "query", + "name": "reachable", + "type": "boolean" + }, + { + "description": "Filter by activity within the last 90 days", + "in": "query", + "name": "active_90d", + "type": "boolean" + }, + { + "description": "Filter by the GitHub available-for-hire flag", + "in": "query", + "name": "hireable", + "type": "boolean" + }, + { + "description": "Organization filter", + "in": "query", + "name": "is_org", + "type": "boolean" + }, + { + "description": "Bot filter", + "in": "query", + "name": "is_bot", + "type": "boolean" + }, + { + "description": "Suspected automation filter; omitted these are hidden by default", + "in": "query", + "name": "is_suspected_automation", + "type": "boolean" + }, + { + "description": "Minimum follower count", + "in": "query", + "name": "min_followers", + "type": "integer" + }, + { + "description": "Maximum follower count", + "in": "query", + "name": "max_followers", + "type": "integer" + }, + { + "description": "Minimum public repository count", + "in": "query", + "name": "min_repos", + "type": "integer" }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } + { + "description": "Minimum composite rank score", + "in": "query", + "name": "min_rank_score", + "type": "integer" }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } + { + "description": "Minimum account age in years", + "in": "query", + "name": "min_account_age_years", + "type": "number" }, - "503": { - "description": "Service Unavailable", - "schema": { - "$ref": "#/definitions/app.Response" - } - } - }, - "security": [ { - "ApiKeyAuth": [] - } - ], - "summary": "CoinGecko NFT category", - "tags": [ - "CoinGecko" - ] - } - }, - "/coingecko/nfts": { - "get": { - "consumes": [ - "application/json" - ], - "description": "Returns normalized NFT collection rows from the CoinGecko public website NFT table. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-nfts", - "parameters": [ + "description": "Maximum account age in years", + "in": "query", + "name": "max_account_age_years", + "type": "number" + }, { - "description": "Page number, default 1", + "description": "Latitude for radius filtering", "in": "query", - "name": "page", - "type": "integer" + "name": "lat", + "type": "number" }, { - "description": "Rows to return, default 100, max 100", + "description": "Longitude for radius filtering", "in": "query", - "name": "limit", + "name": "lon", + "type": "number" + }, + { + "description": "Radius in meters, 1 through 50000; requires lat and lon when supplied", + "in": "query", + "name": "radius_m", "type": "integer" }, { - "description": "Quote currency", - "enum": [ - "btc", - "eth", - "ltc", - "bch", - "bnb", - "eos", - "xrp", - "xlm", - "link", - "dot", - "yfi", - "sol", - "usd", - "aed", - "ars", - "aud", - "bdt", - "bhd", - "bmd", - "brl", - "cad", - "chf", - "clp", - "cny", - "czk", - "dkk", - "eur", - "gbp", - "gel", - "hkd", - "huf", - "idr", - "ils", - "inr", - "jpy", - "krw", - "kwd", - "lkr", - "mmk", - "mxn", - "myr", - "ngn", - "nok", - "nzd", - "php", - "pkr", - "pln", - "rub", - "sar", - "sek", - "sgd", - "thb", - "try", - "twd", - "uah", - "vef", - "vnd", - "zar", - "xdr", - "xag", - "xau", - "bits", - "sats" - ], + "description": "Sort enum: relevance, rank_score_desc, followers_desc, account_age_desc, account_age_asc, distance_asc", "in": "query", - "name": "vs_currency", + "name": "sort", "type": "string" } ], @@ -48229,7 +52376,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.nftsResponseDoc" + "$ref": "#/definitions/datasets.githubUsersFacetResponseDoc" } }, "400": { @@ -48238,14 +52385,14 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -48256,32 +52403,26 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko NFT collections", + "summary": "Facet the GitHub users dataset", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/search": { + "/datasets/github-users/items/{login}": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized CoinGecko search sections from the public website search JSON. Empty valid searches return empty arrays.", - "operationId": "coingecko-search", + "description": "Returns one enriched GitHub user record by login from dataset id enum value `github-users`.", + "operationId": "datasets-github-users-item", "parameters": [ { - "description": "Search query", - "in": "query", - "name": "q", + "description": "GitHub login, max 128 characters", + "in": "path", + "name": "login", "required": true, "type": "string" - }, - { - "description": "Rows per section to return, default 10, max 50", - "in": "query", - "name": "limit", - "type": "integer" } ], "produces": [ @@ -48291,7 +52432,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.searchResponseDoc" + "$ref": "#/definitions/datasets.githubUserResponseDoc" } }, "400": { @@ -48300,14 +52441,20 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "404": { + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -48318,24 +52465,69 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko discovery search", + "summary": "Get a GitHub user from the dataset", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/token-unlocks": { + "/datasets/github-users/nearby": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized rows from CoinGecko's public incoming token unlocks page.", - "operationId": "coingecko-token-unlocks", + "description": "Searches enriched GitHub users near a coordinate, sorted by distance, in dataset id enum value `github-users`. influence_tier enum: `nano`, `micro`, `mid`, `macro`, `mega`.", + "operationId": "datasets-github-users-nearby", "parameters": [ { - "description": "Rows to return, default 100, max 100", + "description": "Latitude", "in": "query", - "name": "limit", + "name": "lat", + "required": true, + "type": "number" + }, + { + "description": "Longitude", + "in": "query", + "name": "lon", + "required": true, + "type": "number" + }, + { + "description": "Radius in meters, max 50000", + "in": "query", + "name": "radius_m", + "required": true, + "type": "integer" + }, + { + "description": "Follower-tier enum: nano, micro, mid, macro, mega", + "in": "query", + "name": "influence_tier", + "type": "string" + }, + { + "description": "Filter by any public contact channel", + "in": "query", + "name": "reachable", + "type": "boolean" + }, + { + "description": "Minimum follower count", + "in": "query", + "name": "min_followers", + "type": "integer" + }, + { + "description": "Page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "in": "query", + "name": "page_size", "type": "integer" } ], @@ -48346,7 +52538,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.tokenUnlocksResponseDoc" + "$ref": "#/definitions/datasets.githubUsersSearchResponseDoc" } }, "400": { @@ -48355,14 +52547,14 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -48373,122 +52565,199 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko incoming token unlocks", + "summary": "Search nearby GitHub users", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/treasuries": { + "/datasets/github-users/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized entity rows from CoinGecko's public crypto treasuries tables. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-treasuries", + "description": "Searches enriched public GitHub user profiles stored in a search index. influence_tier enum: `nano`, `micro`, `mid`, `macro`, `mega`. Sort enum: `relevance`, `rank_score_desc`, `followers_desc`, `account_age_desc`, `account_age_asc`, `distance_asc`.", + "operationId": "datasets-github-users-search", "parameters": [ { - "description": "Treasury asset filter, default all", - "enum": [ - "all", - "bitcoin", - "ethereum", - "solana", - "bnb", - "xrp", - "tron" - ], + "description": "Full-text query over login, name, company, bio and location, max 256 characters", "in": "query", - "name": "asset", + "name": "q", "type": "string" }, { - "description": "Treasury holder type filter, default all", - "enum": [ - "all", - "companies", - "governments" - ], + "description": "Exact login filter, max 128 characters", "in": "query", - "name": "holder_type", + "name": "login", "type": "string" }, { - "description": "Rows to return, default 100, max 100", + "description": "Exact normalized-company filter, max 128 characters", "in": "query", - "name": "limit", + "name": "company", + "type": "string" + }, + { + "description": "Follower-tier enum: nano, micro, mid, macro, mega", + "in": "query", + "name": "influence_tier", + "type": "string" + }, + { + "description": "Exact geocoded country filter, max 128 characters", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Exact ISO country-code filter, max 128 characters", + "in": "query", + "name": "country_code", + "type": "string" + }, + { + "description": "Exact geocoded state filter, max 128 characters", + "in": "query", + "name": "state", + "type": "string" + }, + { + "description": "Exact geocoded city filter, max 128 characters", + "in": "query", + "name": "city", + "type": "string" + }, + { + "description": "Interest-domain tag filter (e.g. ml-ai, web, devops), max 128 characters", + "in": "query", + "name": "domain", + "type": "string" + }, + { + "description": "Filter by public email presence", + "in": "query", + "name": "has_email", + "type": "boolean" + }, + { + "description": "Filter by public Twitter/X handle presence", + "in": "query", + "name": "has_twitter", + "type": "boolean" + }, + { + "description": "Filter by public blog/website presence", + "in": "query", + "name": "has_blog", + "type": "boolean" + }, + { + "description": "Filter by any public contact channel", + "in": "query", + "name": "reachable", + "type": "boolean" + }, + { + "description": "Filter by activity within the last 90 days", + "in": "query", + "name": "active_90d", + "type": "boolean" + }, + { + "description": "Filter by the GitHub available-for-hire flag", + "in": "query", + "name": "hireable", + "type": "boolean" + }, + { + "description": "Organization filter (normally false; the crawl indexes individuals)", + "in": "query", + "name": "is_org", + "type": "boolean" + }, + { + "description": "Bot filter (normally false; the crawl skips bots)", + "in": "query", + "name": "is_bot", + "type": "boolean" + }, + { + "description": "Suspected automation (commit-farm/mass-repo bots); omitted these are hidden by default, pass true to isolate them", + "in": "query", + "name": "is_suspected_automation", + "type": "boolean" + }, + { + "description": "Minimum follower count", + "in": "query", + "name": "min_followers", "type": "integer" }, { - "description": "Quote currency", - "enum": [ - "btc", - "eth", - "ltc", - "bch", - "bnb", - "eos", - "xrp", - "xlm", - "link", - "dot", - "yfi", - "sol", - "usd", - "aed", - "ars", - "aud", - "bdt", - "bhd", - "bmd", - "brl", - "cad", - "chf", - "clp", - "cny", - "czk", - "dkk", - "eur", - "gbp", - "gel", - "hkd", - "huf", - "idr", - "ils", - "inr", - "jpy", - "krw", - "kwd", - "lkr", - "mmk", - "mxn", - "myr", - "ngn", - "nok", - "nzd", - "php", - "pkr", - "pln", - "rub", - "sar", - "sek", - "sgd", - "thb", - "try", - "twd", - "uah", - "vef", - "vnd", - "zar", - "xdr", - "xag", - "xau", - "bits", - "sats" - ], + "description": "Maximum follower count", + "in": "query", + "name": "max_followers", + "type": "integer" + }, + { + "description": "Minimum public repository count", + "in": "query", + "name": "min_repos", + "type": "integer" + }, + { + "description": "Minimum composite rank score", + "in": "query", + "name": "min_rank_score", + "type": "integer" + }, + { + "description": "Minimum account age in years", + "in": "query", + "name": "min_account_age_years", + "type": "number" + }, + { + "description": "Maximum account age in years", + "in": "query", + "name": "max_account_age_years", + "type": "number" + }, + { + "description": "Latitude for radius filtering or distance sort", + "in": "query", + "name": "lat", + "type": "number" + }, + { + "description": "Longitude for radius filtering or distance sort", + "in": "query", + "name": "lon", + "type": "number" + }, + { + "description": "Radius in meters, 1 through 50000; requires lat and lon when supplied", + "in": "query", + "name": "radius_m", + "type": "integer" + }, + { + "description": "Sort enum: relevance, rank_score_desc, followers_desc, account_age_desc, account_age_asc, distance_asc", "in": "query", - "name": "vs_currency", + "name": "sort", "type": "string" + }, + { + "description": "Page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "in": "query", + "name": "page_size", + "type": "integer" } ], "produces": [ @@ -48498,7 +52767,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.treasuriesResponseDoc" + "$ref": "#/definitions/datasets.githubUsersSearchResponseDoc" } }, "400": { @@ -48507,14 +52776,14 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -48525,95 +52794,121 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko crypto treasuries", + "summary": "Search the GitHub users dataset", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/coingecko/trending": { + "/datasets/google-map-businesses/facets": { "get": { "consumes": [ "application/json" ], - "description": "Returns deduped trending coins and categories from the public CoinGecko highlights page. This endpoint supports the documented `vs_currency` enum.", - "operationId": "coingecko-trending", + "description": "Returns terms aggregation counts for Google Maps businesses. Facet enum: `category`, `country`, `state`, `county`, `city`, `town`, `website_status`. `category` values (as a facet or filter) are Google Maps type tokens in lower-case snake_case (e.g. `dentist`, `bus_stop`, `atm`).", + "operationId": "datasets-google-map-businesses-facets", "parameters": [ { - "description": "Rows per section to return, default 20, max 50", + "description": "Facet enum: category, country, state, county, city, town, website_status", "in": "query", - "name": "limit", + "name": "facet", + "required": true, + "type": "string" + }, + { + "description": "Full-text business search query, max 256 characters", + "in": "query", + "name": "q", + "type": "string" + }, + { + "description": "Exact category filter: a Google Maps type token in lower-case snake_case (e.g. dentist, bus_stop), max 128 characters", + "in": "query", + "name": "category", + "type": "string" + }, + { + "description": "Exact country filter, max 128 characters", + "in": "query", + "name": "country", + "type": "string" + }, + { + "description": "Exact state filter, max 128 characters", + "in": "query", + "name": "state", + "type": "string" + }, + { + "description": "Exact county filter, max 128 characters", + "in": "query", + "name": "county", + "type": "string" + }, + { + "description": "Exact city filter, max 128 characters", + "in": "query", + "name": "city", + "type": "string" + }, + { + "description": "Exact town filter, max 128 characters", + "in": "query", + "name": "town", + "type": "string" + }, + { + "description": "Minimum rating, 0 through 5. Businesses with no aggregate Google rating are returned with rating null, so any min_rating above 0 excludes them.", + "in": "query", + "name": "min_rating", + "type": "number" + }, + { + "description": "Minimum review count", + "in": "query", + "name": "min_review_count", "type": "integer" }, { - "description": "Quote currency", - "enum": [ - "btc", - "eth", - "ltc", - "bch", - "bnb", - "eos", - "xrp", - "xlm", - "link", - "dot", - "yfi", - "sol", - "usd", - "aed", - "ars", - "aud", - "bdt", - "bhd", - "bmd", - "brl", - "cad", - "chf", - "clp", - "cny", - "czk", - "dkk", - "eur", - "gbp", - "gel", - "hkd", - "huf", - "idr", - "ils", - "inr", - "jpy", - "krw", - "kwd", - "lkr", - "mmk", - "mxn", - "myr", - "ngn", - "nok", - "nzd", - "php", - "pkr", - "pln", - "rub", - "sar", - "sek", - "sgd", - "thb", - "try", - "twd", - "uah", - "vef", - "vnd", - "zar", - "xdr", - "xag", - "xau", - "bits", - "sats" - ], + "description": "Filter by website presence", "in": "query", - "name": "vs_currency", + "name": "has_website", + "type": "boolean" + }, + { + "description": "Filter by phone presence", + "in": "query", + "name": "has_phone", + "type": "boolean" + }, + { + "description": "Filter by location presence: true keeps only mappable businesses with coordinates; false isolates locationless service-area businesses that have no map location", + "in": "query", + "name": "has_geo", + "type": "boolean" + }, + { + "description": "Latitude for radius filtering", + "in": "query", + "name": "lat", + "type": "number" + }, + { + "description": "Longitude for radius filtering", + "in": "query", + "name": "lon", + "type": "number" + }, + { + "description": "Radius in meters, 1 through 50000; requires lat and lon when supplied", + "in": "query", + "name": "radius_m", + "type": "integer" + }, + { + "description": "Sort enum: relevance, updated_at_desc, rating_desc, review_count_desc, distance_asc", + "in": "query", + "name": "sort", "type": "string" } ], @@ -48624,7 +52919,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/coingecko.trendingResponseDoc" + "$ref": "#/definitions/datasets.googleMapBusinessesFacetResponseDoc" } }, "400": { @@ -48633,14 +52928,14 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "503": { - "description": "Service Unavailable", + "500": { + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -48651,28 +52946,26 @@ "ApiKeyAuth": [] } ], - "summary": "CoinGecko trending highlights", + "summary": "Facet stored Google Maps businesses", "tags": [ - "CoinGecko" + "Datasets" ] } }, - "/contact": { - "post": { + "/datasets/google-map-businesses/items/{place_id}": { + "get": { "consumes": [ "application/json" ], - "description": "Crawls a public website URL (homepage plus contact/about/team/imprint pages) and returns its public business contact details: emails — each tagged with a verification `status` (`verified`, `risky`, `unverified`, `invalid`) and a `type` (`generic`, `role`, `personal`) — plus social-media profiles and phone numbers. Intended for authorized public-business data only.", - "operationId": "contact", + "description": "Returns one stored Google Maps business by Google place_id from dataset id enum value `google-map-businesses`. The `category` field is a Google Maps type token in lower-case snake_case (e.g. `dentist`, `bus_stop`, `atm`). A `rating` of `null` means no aggregate rating is available for that business; read it together with `review_count`. Locationless service-area businesses (online/mobile/home-based) have a `null` `geo`.", + "operationId": "datasets-google-map-businesses-item", "parameters": [ { - "description": "Website URL payload", - "in": "body", - "name": "option", + "description": "Google Place ID, max 256 characters", + "in": "path", + "name": "place_id", "required": true, - "schema": { - "$ref": "#/definitions/contact.ContactRequest" - } + "type": "string" } ], "produces": [ @@ -48682,23 +52975,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/contact.contactResponseDoc" + "$ref": "#/definitions/datasets.googleMapBusinessResponseDoc" } }, "400": { - "description": "Invalid input or missing URL", + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Rate limit exceeded", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "500": { - "description": "Internal server error during contact extraction", + "description": "Internal Server Error", "schema": { "$ref": "#/definitions/app.Response" } @@ -48709,19 +53008,72 @@ "ApiKeyAuth": [] } ], - "summary": "Contact API — emails, socials and phones for a website", + "summary": "Get a stored Google Maps business", "tags": [ - "Web" + "Datasets" ] } }, - "/datasets": { + "/datasets/google-map-businesses/nearby": { "get": { "consumes": [ "application/json" ], - "description": "Lists available read-only scraped datasets. Initial dataset id enum: `google-map-businesses`.", - "operationId": "datasets-list", + "description": "Searches stored Google Maps businesses near a coordinate in dataset id enum value `google-map-businesses`. `category` is a Google Maps type token in lower-case snake_case (e.g. `dentist`, `bus_stop`, `atm`), both as the `category` filter and in each result's `category` field. A `rating` of `0` means no aggregate rating is available for that business (not a literal zero-star score); read it together with `review_count`, and note that `min_rating` above 0 excludes unrated businesses.", + "operationId": "datasets-google-map-businesses-nearby", + "parameters": [ + { + "description": "Latitude", + "in": "query", + "name": "lat", + "required": true, + "type": "number" + }, + { + "description": "Longitude", + "in": "query", + "name": "lon", + "required": true, + "type": "number" + }, + { + "description": "Radius in meters, max 50000", + "in": "query", + "name": "radius_m", + "required": true, + "type": "integer" + }, + { + "description": "Exact category filter: a Google Maps type token in lower-case snake_case (e.g. dentist, bus_stop), max 128 characters", + "in": "query", + "name": "category", + "type": "string" + }, + { + "description": "Minimum rating, 0 through 5. Businesses with no aggregate Google rating are returned with rating null, so any min_rating above 0 excludes them.", + "in": "query", + "name": "min_rating", + "type": "number" + }, + { + "description": "Minimum review count", + "in": "query", + "name": "min_review_count", + "type": "integer" + }, + { + "description": "Page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer" + }, + { + "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "in": "query", + "name": "page_size", + "type": "integer" + } + ], "produces": [ "application/json" ], @@ -48729,7 +53081,13 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.listResponseDoc" + "$ref": "#/definitions/datasets.googleMapBusinessesSearchResponseDoc" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" } }, "429": { @@ -48750,73 +53108,126 @@ "ApiKeyAuth": [] } ], - "summary": "List stored scraped datasets", + "summary": "Search nearby stored Google Maps businesses", "tags": [ "Datasets" ] } }, - "/datasets/airbnb-markets/facets": { + "/datasets/google-map-businesses/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns suppressed distribution counts over the Airbnb markets dataset, honoring the same filters as search. Facet enum: `country`, `market`, `currency`, `superhost`, `rating_band`, `review_band`. group_by enum: `country`, `market`.", - "operationId": "datasets-airbnb-markets-facets", + "description": "Searches Google Maps business records stored in a search index. Sort enum: `relevance`, `updated_at_desc`, `rating_desc`, `review_count_desc`, `distance_asc`. `category` is a Google Maps type token in lower-case snake_case (e.g. `dentist`, `bus_stop`, `atm`), both as the `category` filter and in each result's `category` field. A `rating` of `null` means no aggregate rating is available for that business (too few reviews, or a place type Google does not rate) — it is never a literal zero-star score; read it together with `review_count`, and note that `rating_desc` sorts unrated businesses last and `min_rating` above 0 excludes them. Use `has_geo=false` to isolate locationless service-area businesses (which have a `null` `geo`).", + "operationId": "datasets-google-map-businesses-search", "parameters": [ { - "description": "Facet enum: country, market, currency, superhost, rating_band, review_band", + "description": "Full-text business search query, max 256 characters", "in": "query", - "name": "facet", - "required": true, + "name": "q", "type": "string" }, { - "description": "Aggregate cell dimension enum: country, market. Defaults to country", + "description": "Exact category filter: a Google Maps type token in lower-case snake_case (e.g. dentist, bus_stop), max 128 characters", "in": "query", - "name": "group_by", + "name": "category", "type": "string" }, { - "description": "Exact ISO-3166-1 alpha-2 country filter, e.g. FR", + "description": "Exact country filter, max 128 characters", "in": "query", "name": "country", "type": "string" }, { - "description": "Exact metro-market filter, max 128 characters", + "description": "Exact state filter, max 128 characters", "in": "query", - "name": "market", + "name": "state", "type": "string" }, { - "description": "Count only Superhost listings", + "description": "Exact county filter, max 128 characters", "in": "query", - "name": "superhost", - "type": "boolean" + "name": "county", + "type": "string" }, { - "description": "Minimum listing rating, from 0 through 5", + "description": "Exact city filter, max 128 characters", + "in": "query", + "name": "city", + "type": "string" + }, + { + "description": "Exact town filter, max 128 characters", + "in": "query", + "name": "town", + "type": "string" + }, + { + "description": "Minimum rating, 0 through 5. Businesses with no aggregate Google rating are returned with rating null, so any min_rating above 0 excludes them.", "in": "query", "name": "min_rating", "type": "number" }, { - "description": "Minimum listing review count, 0 or greater", + "description": "Minimum review count", "in": "query", "name": "min_review_count", "type": "integer" }, { - "description": "Freshness filter, an ISO-8601 date (YYYY-MM-DD)", + "description": "Filter by website presence", "in": "query", - "name": "active_since", + "name": "has_website", + "type": "boolean" + }, + { + "description": "Filter by phone presence", + "in": "query", + "name": "has_phone", + "type": "boolean" + }, + { + "description": "Filter by location presence: true keeps only mappable businesses with coordinates; false isolates locationless service-area businesses that have no map location", + "in": "query", + "name": "has_geo", + "type": "boolean" + }, + { + "description": "Latitude for radius filtering or distance sort", + "in": "query", + "name": "lat", + "type": "number" + }, + { + "description": "Longitude for radius filtering or distance sort", + "in": "query", + "name": "lon", + "type": "number" + }, + { + "description": "Radius in meters, 1 through 50000; requires lat and lon when supplied", + "in": "query", + "name": "radius_m", + "type": "integer" + }, + { + "description": "Sort enum: relevance, updated_at_desc, rating_desc, review_count_desc, distance_asc", + "in": "query", + "name": "sort", "type": "string" }, { - "description": "Minimum listings per bucket; raises the small-cell suppression floor", + "description": "Page number, defaults to 1", "in": "query", - "name": "min_listings", + "name": "page", + "type": "integer" + }, + { + "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "in": "query", + "name": "page_size", "type": "integer" } ], @@ -48827,7 +53238,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.airbnbMarketsFacetResponseDoc" + "$ref": "#/definitions/datasets.googleMapBusinessesSearchResponseDoc" } }, "400": { @@ -48854,26 +53265,50 @@ "ApiKeyAuth": [] } ], - "summary": "Facet the Airbnb markets dataset", + "summary": "Search stored Google Maps businesses", "tags": [ "Datasets" ] } }, - "/datasets/airbnb-markets/items/{country}": { + "/datasets/producthunt-makers/facets": { "get": { "consumes": [ "application/json" ], - "description": "Returns one country's full aggregate Airbnb market profile from dataset id enum value `airbnb-markets` — headline supply, Superhost share, ratings, its top metros, bounding box and per-currency nightly-price percentiles. Aggregate-only. Returns 404 for a country below the suppression floor.", - "operationId": "datasets-airbnb-markets-item", + "description": "Returns distribution counts over the Product Hunt makers dataset (dataset id enum value `producthunt-makers`), honoring the same filters as search. Facet enum: `topic`, `product_count_band`.", + "operationId": "datasets-producthunt-makers-facets", "parameters": [ { - "description": "ISO-3166-1 alpha-2 country code, e.g. FR", - "in": "path", - "name": "country", + "description": "Facet enum: topic, product_count_band", + "in": "query", + "name": "facet", "required": true, "type": "string" + }, + { + "description": "Full-text query over maker name and headline, max 256 characters", + "in": "query", + "name": "q", + "type": "string" + }, + { + "description": "Exact topic-slug the maker builds in, max 128 characters", + "in": "query", + "name": "topic", + "type": "string" + }, + { + "description": "Minimum number of products made, 0 or greater", + "in": "query", + "name": "min_products", + "type": "integer" + }, + { + "description": "Minimum total upvotes across the maker's products, 0 or greater", + "in": "query", + "name": "min_total_votes", + "type": "integer" } ], "produces": [ @@ -48883,7 +53318,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.airbnbMarketResponseDoc" + "$ref": "#/definitions/datasets.producthuntMakersFacetResponseDoc" } }, "400": { @@ -48892,12 +53327,6 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "429": { "description": "Too Many Requests", "schema": { @@ -48913,78 +53342,28 @@ }, "security": [ { - "ApiKeyAuth": [] - } - ], - "summary": "Get an Airbnb market from the dataset", - "tags": [ - "Datasets" - ] - } - }, - "/datasets/airbnb-markets/nearby": { - "get": { - "consumes": [ - "application/json" - ], - "description": "Returns an aggregate geohash-grid density map of Airbnb listings within a radius of a coordinate, from dataset id enum value `airbnb-markets`. Each cell reports a centroid, listing count and Superhost share; thin cells are suppressed. Aggregate-only.", - "operationId": "datasets-airbnb-markets-nearby", - "parameters": [ - { - "description": "Center latitude, from -90 through 90", - "in": "query", - "name": "lat", - "required": true, - "type": "number" - }, - { - "description": "Center longitude, from -180 through 180", - "in": "query", - "name": "lon", - "required": true, - "type": "number" - }, - { - "description": "Search radius in meters, from 1 through 50000", - "in": "query", - "name": "radius_m", - "required": true, - "type": "integer" - }, - { - "description": "Geohash precision, from 1 through 12; defaults to a value derived from the radius", - "in": "query", - "name": "precision", - "type": "integer" - }, - { - "description": "Minimum listings per cell; raises the small-cell suppression floor", - "in": "query", - "name": "min_listings", - "type": "integer" - }, - { - "description": "Exact ISO-3166-1 alpha-2 country filter, e.g. US", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Count only Superhost listings", - "in": "query", - "name": "superhost", - "type": "boolean" - }, - { - "description": "Minimum listing rating, from 0 through 5", - "in": "query", - "name": "min_rating", - "type": "number" - }, - { - "description": "Freshness filter, an ISO-8601 date (YYYY-MM-DD)", - "in": "query", - "name": "active_since", + "ApiKeyAuth": [] + } + ], + "summary": "Facet the Product Hunt makers dataset", + "tags": [ + "Datasets" + ] + } + }, + "/datasets/producthunt-makers/items/{username}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns one maker by Product Hunt username from dataset id enum value `producthunt-makers`, including the products they made and their aggregate footprint. Returns 404 when the username is not in the dataset.", + "operationId": "datasets-producthunt-makers-item", + "parameters": [ + { + "description": "Product Hunt maker username, e.g. rrhoover", + "in": "path", + "name": "username", + "required": true, "type": "string" } ], @@ -48995,7 +53374,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.airbnbMarketsNearbyResponseDoc" + "$ref": "#/definitions/datasets.producthuntMakerResponseDoc" } }, "400": { @@ -49004,6 +53383,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Too Many Requests", "schema": { @@ -49022,70 +53407,46 @@ "ApiKeyAuth": [] } ], - "summary": "Airbnb market density near a coordinate", + "summary": "Get a Product Hunt maker from the dataset", "tags": [ "Datasets" ] } }, - "/datasets/airbnb-markets/search": { + "/datasets/producthunt-makers/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns aggregate Airbnb short-term-rental market rollups from the dataset id enum value `airbnb-markets`. Aggregate-only: each row is a market cell (a country or a metro), never an individual listing. Thin cells are suppressed. group_by enum: `country`, `market`. Sort enum: `listings_desc`, `superhost_pct_desc`, `rating_desc`, `key_asc`.", - "operationId": "datasets-airbnb-markets-search", + "description": "Searches Product Hunt makers from the dataset id enum value `producthunt-makers` — public-profile records of the people who made products, with their footprint (products made, total upvotes, topics) for maker leaderboards. Public fields only. Sort enum: `total_votes_desc`, `product_count_desc`, `followers_desc`, `relevance`.", + "operationId": "datasets-producthunt-makers-search", "parameters": [ { - "description": "Aggregate cell dimension enum: country, market. Defaults to country", - "in": "query", - "name": "group_by", - "type": "string" - }, - { - "description": "Exact ISO-3166-1 alpha-2 country filter, e.g. FR", + "description": "Full-text query over maker name and headline, max 256 characters", "in": "query", - "name": "country", + "name": "q", "type": "string" }, { - "description": "Exact metro-market filter, e.g. Paris, max 128 characters", + "description": "Exact topic-slug the maker builds in, e.g. artificial-intelligence, max 128 characters", "in": "query", - "name": "market", + "name": "topic", "type": "string" }, { - "description": "Count only Superhost listings", - "in": "query", - "name": "superhost", - "type": "boolean" - }, - { - "description": "Minimum listing rating, from 0 through 5", - "in": "query", - "name": "min_rating", - "type": "number" - }, - { - "description": "Minimum listing review count, 0 or greater", + "description": "Minimum number of products made, 0 or greater", "in": "query", - "name": "min_review_count", + "name": "min_products", "type": "integer" }, { - "description": "Freshness filter, an ISO-8601 date (YYYY-MM-DD); only listings last seen on or after it are counted", - "in": "query", - "name": "active_since", - "type": "string" - }, - { - "description": "Minimum listings per cell; raises the small-cell suppression floor (never lowered below the built-in minimum)", + "description": "Minimum total upvotes across the maker's products, 0 or greater", "in": "query", - "name": "min_listings", + "name": "min_total_votes", "type": "integer" }, { - "description": "Sort enum: listings_desc, superhost_pct_desc, rating_desc, key_asc", + "description": "Sort enum: total_votes_desc, product_count_desc, followers_desc, relevance", "in": "query", "name": "sort", "type": "string" @@ -49110,7 +53471,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.airbnbMarketsSearchResponseDoc" + "$ref": "#/definitions/datasets.producthuntMakersSearchResponseDoc" } }, "400": { @@ -49137,85 +53498,86 @@ "ApiKeyAuth": [] } ], - "summary": "Search the Airbnb markets dataset", + "summary": "Search the Product Hunt makers dataset", "tags": [ "Datasets" ] } }, - "/datasets/apps-charts/search": { + "/datasets/producthunt-products/facets": { "get": { "consumes": [ "application/json" ], - "description": "Searches daily top-chart snapshots scraped from the iOS App Store and Google Play, stored in a search index (one document per chart × snapshot × rank). With no `date` the latest snapshot is returned (today's chart); pair `app_id` with `sort=date_desc` for an app's rank over time. Store enum: `ios`, `android`. Chart type enum: `top_free`, `top_paid`, `top_grossing`, `new`. Sort enum: `rank`, `rank_desc`, `date_desc`.", - "operationId": "datasets-apps-charts-search", + "description": "Returns distribution counts over the Product Hunt products dataset (dataset id enum value `producthunt-products`), honoring the same filters as search. Facet enum: `topic`, `launch_year`, `pricing_type`, `product_state`.", + "operationId": "datasets-producthunt-products-facets", "parameters": [ { - "description": "Full-text query over chart-entry title and developer, max 256 characters", + "description": "Facet enum: topic, launch_year, pricing_type, product_state", "in": "query", - "name": "q", + "name": "facet", + "required": true, "type": "string" }, { - "description": "Store enum: ios, android", + "description": "Full-text query over product name and tagline, max 256 characters", "in": "query", - "name": "store", + "name": "q", "type": "string" }, { - "description": "Chart enum: top_free, top_paid, top_grossing, new", + "description": "Exact topic-slug filter, e.g. artificial-intelligence, max 128 characters", "in": "query", - "name": "chart_type", + "name": "topic", "type": "string" }, { - "description": "Raw store collection id filter (e.g. topgrossingapplications, GROSSING), max 128 characters", + "description": "Exact maker-username filter (populated by hydration), max 128 characters", "in": "query", - "name": "collection", + "name": "maker", "type": "string" }, { - "description": "Store category/genre filter, max 128 characters; empty for the overall charts", + "description": "Lower bound on first-launch date, an ISO-8601 date (YYYY-MM-DD)", "in": "query", - "name": "category", + "name": "launched_after", "type": "string" }, { - "description": "Exact storefront country filter, max 128 characters", + "description": "Upper bound on first-launch date, an ISO-8601 date (YYYY-MM-DD)", "in": "query", - "name": "country", + "name": "launched_before", "type": "string" }, { - "description": "Exact app filter — iOS numeric track id or Android package; pair with sort=date_desc for rank history", + "description": "Minimum upvotes, 0 or greater", "in": "query", - "name": "app_id", - "type": "string" + "name": "min_votes", + "type": "integer" }, { - "description": "Snapshot date filter yyyy-MM-dd; defaults to the latest snapshot", + "description": "Minimum review rating, from 0 through 5", "in": "query", - "name": "date", - "type": "string" + "name": "min_rating", + "type": "number" }, { - "description": "Sort enum: rank, rank_desc, date_desc", + "description": "Exact pricing-type filter, e.g. free, paid, freemium", "in": "query", - "name": "sort", + "name": "pricing_type", "type": "string" }, { - "description": "Page number, defaults to 1", + "description": "Website presence filter", "in": "query", - "name": "page", - "type": "integer" + "name": "has_website", + "type": "boolean" }, { - "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "description": "true keeps only products still online, false only retired products", "in": "query", - "name": "page_size", - "type": "integer" + "name": "is_online", + "type": "boolean" } ], "produces": [ @@ -49225,7 +53587,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.chartsSearchResponseDoc" + "$ref": "#/definitions/datasets.producthuntProductsFacetResponseDoc" } }, "400": { @@ -49252,67 +53614,26 @@ "ApiKeyAuth": [] } ], - "summary": "Search the app-charts dataset", + "summary": "Facet the Product Hunt products dataset", "tags": [ "Datasets" ] } }, - "/datasets/apps-reviews/search": { + "/datasets/producthunt-products/items/{slug}": { "get": { "consumes": [ "application/json" ], - "description": "Searches user reviews scraped from the iOS App Store and Google Play, stored in a search index (one document per review). Store enum: `ios`, `android`. Sort enum: `recent`, `score_desc`, `score_asc`, `helpful_desc`.", - "operationId": "datasets-apps-reviews-search", + "description": "Returns one product by its Product Hunt slug from dataset id enum value `producthunt-products`, including its full launch history and (once hydrated) description, website, pricing and makers. Returns 404 when the slug is not in the archive.", + "operationId": "datasets-producthunt-products-item", "parameters": [ { - "description": "Full-text query over review text, title and author, max 256 characters", - "in": "query", - "name": "q", - "type": "string" - }, - { - "description": "Store enum: ios, android", - "in": "query", - "name": "store", - "type": "string" - }, - { - "description": "Exact app filter — iOS numeric track id or Android package, max 128 characters", - "in": "query", - "name": "app_id", - "type": "string" - }, - { - "description": "Exact storefront country filter, max 128 characters", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Minimum star rating, 1 through 5", - "in": "query", - "name": "min_score", - "type": "integer" - }, - { - "description": "Sort enum: recent, score_desc, score_asc, helpful_desc", - "in": "query", - "name": "sort", + "description": "Product Hunt product slug, e.g. chatgpt", + "in": "path", + "name": "slug", + "required": true, "type": "string" - }, - { - "description": "Page number, defaults to 1", - "in": "query", - "name": "page", - "type": "integer" - }, - { - "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", - "in": "query", - "name": "page_size", - "type": "integer" } ], "produces": [ @@ -49322,7 +53643,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.reviewsSearchResponseDoc" + "$ref": "#/definitions/datasets.producthuntProductResponseDoc" } }, "400": { @@ -49331,6 +53652,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Too Many Requests", "schema": { @@ -49349,70 +53676,82 @@ "ApiKeyAuth": [] } ], - "summary": "Search the app-reviews dataset", + "summary": "Get a Product Hunt product from the dataset", "tags": [ "Datasets" ] } }, - "/datasets/apps/search": { + "/datasets/producthunt-products/search": { "get": { "consumes": [ "application/json" ], - "description": "Searches resolved iOS App Store and Google Play apps stored in a search index. Store enum: `ios`, `android`, `both`. Sort enum: `relevance`, `rating_desc`, `reviews_desc`, `installs_desc`, `updated_at_desc`.", - "operationId": "datasets-apps-search", + "description": "Searches individual Product Hunt launches from the dataset id enum value `producthunt-products` — the searchable launch archive. Each result is one product with its topics, upvotes, ranks and launch history; description/website/pricing/makers are filled in as hydration runs. Sort enum: `relevance`, `votes_desc`, `launched_desc`, `launched_asc`, `rating_desc`, `best_rank_asc`.", + "operationId": "datasets-producthunt-products-search", "parameters": [ { - "description": "Full-text query over title, developer and category, max 256 characters", + "description": "Full-text query over product name and tagline, max 256 characters", "in": "query", "name": "q", "type": "string" }, { - "description": "Store enum: ios, android, both", + "description": "Exact topic-slug filter, e.g. artificial-intelligence, max 128 characters", "in": "query", - "name": "store", + "name": "topic", "type": "string" }, { - "description": "Exact app-store category filter, max 128 characters", + "description": "Exact maker-username filter (populated by hydration), max 128 characters", "in": "query", - "name": "category", + "name": "maker", "type": "string" }, { - "description": "Exact storefront country filter, max 128 characters", + "description": "Lower bound on first-launch date, an ISO-8601 date (YYYY-MM-DD)", "in": "query", - "name": "country", + "name": "launched_after", "type": "string" }, { - "description": "Exact developer/publisher name filter, max 128 characters", + "description": "Upper bound on first-launch date, an ISO-8601 date (YYYY-MM-DD)", "in": "query", - "name": "developer", + "name": "launched_before", "type": "string" }, { - "description": "Filter by price; true keeps only free apps, false only paid", + "description": "Minimum upvotes, 0 or greater", "in": "query", - "name": "free", - "type": "boolean" + "name": "min_votes", + "type": "integer" }, { - "description": "Minimum store rating, 0 through 5", + "description": "Minimum review rating, from 0 through 5 (populated by hydration)", "in": "query", "name": "min_rating", "type": "number" }, { - "description": "Minimum ratings/review count", + "description": "Exact pricing-type filter (populated by hydration), e.g. free, paid, freemium", "in": "query", - "name": "min_reviews", - "type": "integer" + "name": "pricing_type", + "type": "string" }, { - "description": "Sort enum: relevance, rating_desc, reviews_desc, installs_desc, updated_at_desc", + "description": "Website presence filter (populated by hydration)", + "in": "query", + "name": "has_website", + "type": "boolean" + }, + { + "description": "true keeps only products still online, false only retired products", + "in": "query", + "name": "is_online", + "type": "boolean" + }, + { + "description": "Sort enum: relevance, votes_desc, launched_desc, launched_asc, rating_desc, best_rank_asc", "in": "query", "name": "sort", "type": "string" @@ -49437,7 +53776,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.appsSearchResponseDoc" + "$ref": "#/definitions/datasets.producthuntProductsSearchResponseDoc" } }, "400": { @@ -49464,84 +53803,61 @@ "ApiKeyAuth": [] } ], - "summary": "Search the apps-intelligence dataset", + "summary": "Search the Product Hunt products dataset", "tags": [ "Datasets" ] } }, - "/datasets/creators/search": { + "/datasets/producthunt-trends/facets": { "get": { "consumes": [ "application/json" ], - "description": "Searches TikTok creators stored in a search index (one document per creator), with follower counts, verified status, niche, and engagement. Deleted and private accounts are excluded by default; set `include_inactive=true` to include them for historical lookups. Sort enum: `followers_desc`, `engagement_desc`, `likes_desc`, `relevance`. Coverage note: `followers_desc`, `likes_desc`, and `relevance` are backed by profile fields present across the full dataset; the post-level engagement metrics (`engagement_rate`, `avg_views`, and the nested `post_stats` object) and the `engagement_desc` sort are currently populated for a growing subset of creators, prioritizing the highest-reach accounts. Creators without these metrics are still returned but sort last under `engagement_desc` and omit those fields.", - "operationId": "datasets-creators-search", + "description": "Returns suppressed distribution counts over the Product Hunt trends dataset (dataset id enum value `producthunt-trends`), honoring the same filters as search. Facet enum: `topic`, `launch_year`.", + "operationId": "datasets-producthunt-trends-facets", "parameters": [ { - "description": "Full-text query over handle, nickname and bio, max 256 characters", + "description": "Facet enum: topic, launch_year", "in": "query", - "name": "q", + "name": "facet", + "required": true, "type": "string" }, { - "description": "Exact handle lookup (case-insensitive), e.g. khaby.lame; returns the single creator with that exact @handle", + "description": "Aggregate cell dimension enum: topic_month, topic_year, topic. Defaults to topic_month", "in": "query", - "name": "handle", + "name": "group_by", "type": "string" }, { - "description": "Exact content-niche filter, max 128 characters", + "description": "Exact topic-slug filter, e.g. artificial-intelligence, max 128 characters", "in": "query", - "name": "niche", + "name": "topic", "type": "string" }, { - "description": "Exact creator country/region filter, max 128 characters", + "description": "Lower bound on first-launch date, an ISO-8601 date (YYYY-MM-DD)", "in": "query", - "name": "country", + "name": "launched_after", "type": "string" }, { - "description": "Filter by verified badge; true keeps only verified creators", - "in": "query", - "name": "verified", - "type": "boolean" - }, - { - "description": "Minimum follower count", - "in": "query", - "name": "min_followers", - "type": "integer" - }, - { - "description": "Filter by contact-email presence; true keeps only creators with an email", - "in": "query", - "name": "has_email", - "type": "boolean" - }, - { - "description": "Include deleted/private accounts; defaults to false (only live accounts returned)", - "in": "query", - "name": "include_inactive", - "type": "boolean" - }, - { - "description": "Sort enum: followers_desc, engagement_desc, likes_desc, relevance. engagement_desc ranks by post-level engagement rate, currently populated for a subset of creators (highest-reach first); creators without it sort last", + "description": "Upper bound on first-launch date, an ISO-8601 date (YYYY-MM-DD)", "in": "query", - "name": "sort", + "name": "launched_before", "type": "string" }, { - "description": "Page number, defaults to 1", + "description": "Minimum product upvotes, 0 or greater", "in": "query", - "name": "page", + "name": "min_votes", "type": "integer" }, { - "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", + "description": "Minimum launches per bucket; raises the small-cell suppression floor", "in": "query", - "name": "page_size", + "name": "min_launches", "type": "integer" } ], @@ -49552,7 +53868,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.creatorsSearchResponseDoc" + "$ref": "#/definitions/datasets.producthuntTrendsFacetResponseDoc" } }, "400": { @@ -49579,187 +53895,186 @@ "ApiKeyAuth": [] } ], - "summary": "Search the TikTok creators dataset", + "summary": "Facet the Product Hunt trends dataset", "tags": [ "Datasets" ] } }, - "/datasets/github-users/facets": { + "/datasets/producthunt-trends/search": { "get": { "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the GitHub users dataset. Facet enum: `influence_tier`, `type`, `country`, `country_code`, `state`, `city`, `domains`, `company`, `reachable`, `has_email`, `has_twitter`, `has_blog`, `active_90d`, `is_org`, `is_bot`. influence_tier enum: `nano`, `micro`, `mid`, `macro`, `mega`.", - "operationId": "datasets-github-users-facets", + "description": "Returns aggregate Product Hunt launch trends from the dataset id enum value `producthunt-trends`. Aggregate-only: each row is a category-over-time cell (a topic, optionally within a calendar period), reporting launch count, total and average upvotes, average rating and the top product — never an individual product record. Thin cells are suppressed. group_by enum: `topic_month`, `topic_year`, `topic`. Sort enum: `period_desc`, `period_asc`, `launch_count_desc`, `sum_votes_desc`.", + "operationId": "datasets-producthunt-trends-search", "parameters": [ { - "description": "Facet enum: influence_tier, type, country, country_code, state, city, domains, company, reachable, has_email, has_twitter, has_blog, active_90d, is_org, is_bot", - "in": "query", - "name": "facet", - "required": true, - "type": "string" - }, - { - "description": "Full-text query over login, name, company, bio and location, max 256 characters", - "in": "query", - "name": "q", - "type": "string" - }, - { - "description": "Exact login filter, max 128 characters", - "in": "query", - "name": "login", - "type": "string" - }, - { - "description": "Exact normalized-company filter, max 128 characters", + "description": "Aggregate cell dimension enum: topic_month, topic_year, topic. Defaults to topic_month", "in": "query", - "name": "company", + "name": "group_by", "type": "string" }, { - "description": "Follower-tier enum: nano, micro, mid, macro, mega", + "description": "Exact topic-slug filter, e.g. artificial-intelligence, max 128 characters", "in": "query", - "name": "influence_tier", + "name": "topic", "type": "string" }, { - "description": "Exact geocoded country filter, max 128 characters", + "description": "Lower bound on first-launch date, an ISO-8601 date (YYYY-MM-DD)", "in": "query", - "name": "country", + "name": "launched_after", "type": "string" }, { - "description": "Exact ISO country-code filter, max 128 characters", + "description": "Upper bound on first-launch date, an ISO-8601 date (YYYY-MM-DD)", "in": "query", - "name": "country_code", + "name": "launched_before", "type": "string" }, { - "description": "Exact geocoded state filter, max 128 characters", + "description": "Minimum product upvotes, 0 or greater", "in": "query", - "name": "state", - "type": "string" + "name": "min_votes", + "type": "integer" }, { - "description": "Exact geocoded city filter, max 128 characters", + "description": "Minimum launches per cell; raises the small-cell suppression floor (never lowered below the built-in minimum)", "in": "query", - "name": "city", - "type": "string" + "name": "min_launches", + "type": "integer" }, { - "description": "Interest-domain tag filter, max 128 characters", + "description": "Sort enum: period_desc, period_asc, launch_count_desc, sum_votes_desc", "in": "query", - "name": "domain", + "name": "sort", "type": "string" }, { - "description": "Filter by public email presence", - "in": "query", - "name": "has_email", - "type": "boolean" - }, - { - "description": "Filter by public Twitter/X handle presence", - "in": "query", - "name": "has_twitter", - "type": "boolean" - }, - { - "description": "Filter by public blog/website presence", - "in": "query", - "name": "has_blog", - "type": "boolean" - }, - { - "description": "Filter by any public contact channel", - "in": "query", - "name": "reachable", - "type": "boolean" - }, - { - "description": "Filter by activity within the last 90 days", - "in": "query", - "name": "active_90d", - "type": "boolean" - }, - { - "description": "Filter by the GitHub available-for-hire flag", - "in": "query", - "name": "hireable", - "type": "boolean" - }, - { - "description": "Organization filter", - "in": "query", - "name": "is_org", - "type": "boolean" - }, - { - "description": "Bot filter", - "in": "query", - "name": "is_bot", - "type": "boolean" - }, - { - "description": "Minimum follower count", + "description": "Page number, defaults to 1", "in": "query", - "name": "min_followers", + "name": "page", "type": "integer" }, { - "description": "Maximum follower count", + "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", "in": "query", - "name": "max_followers", + "name": "page_size", "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/datasets.producthuntTrendsSearchResponseDoc" + } }, - { - "description": "Minimum public repository count", - "in": "query", - "name": "min_repos", - "type": "integer" + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } }, - { - "description": "Minimum composite rank score", - "in": "query", - "name": "min_rank_score", - "type": "integer" + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } }, + "500": { + "description": "Internal Server Error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ { - "description": "Minimum account age in years", - "in": "query", - "name": "min_account_age_years", - "type": "number" - }, + "ApiKeyAuth": [] + } + ], + "summary": "Search the Product Hunt trends dataset", + "tags": [ + "Datasets" + ] + } + }, + "/diagnostics/antibot-check": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Probes a URL across escalating transports (direct HTTP → browser-impersonation → headless/stealth browsers) and returns an empirical scraping-difficulty assessment for that exact URL: a 0–10 `difficulty_score` and `difficulty_band` (`easy`, `medium`, `hard`, `very_hard`, `blocked`, `unknown`), whether it is `scrapeable`, the detected anti-bot `protections` (Cloudflare, DataDome, Akamai, PerimeterX, Kasada, Imperva, AWS WAF and more — each with a `kind` and `confidence`), the lightest transport that worked, and a `recommended_profile`. Difficulty is per-URL, not per-site — a homepage may be open while deep pages are bot-managed. Intended for authorized public-data scraping planning.", + "operationId": "antibot-check", + "parameters": [ { - "description": "Maximum account age in years", - "in": "query", - "name": "max_account_age_years", - "type": "number" + "description": "Target URL (and optional fast flag)", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/diagnostics.AntibotCheckRequest" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/diagnostics.antibotCheckResponseDoc" + } }, - { - "description": "Latitude for radius filtering", - "in": "query", - "name": "lat", - "type": "number" + "400": { + "description": "Invalid or missing URL", + "schema": { + "$ref": "#/definitions/app.Response" + } }, - { - "description": "Longitude for radius filtering", - "in": "query", - "name": "lon", - "type": "number" + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } }, + "503": { + "description": "Probe failed (transport/browser error or blocked target)", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ { - "description": "Radius in meters, 1 through 50000; requires lat and lon when supplied", - "in": "query", - "name": "radius_m", - "type": "integer" - }, + "ApiKeyAuth": [] + } + ], + "summary": "Anti-bot check — website scraping difficulty", + "tags": [ + "Web" + ] + } + }, + "/ebay/item/{item_id}": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns normalized details for a public eBay item listing.", + "operationId": "ebay-item", + "parameters": [ { - "description": "Sort enum: relevance, rank_score_desc, followers_desc, account_age_desc, account_age_asc, distance_asc", - "in": "query", - "name": "sort", + "description": "eBay item ID", + "in": "path", + "name": "item_id", + "required": true, "type": "string" } ], @@ -49770,7 +54085,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.githubUsersFacetResponseDoc" + "$ref": "#/definitions/ebay.itemResponseDoc" } }, "400": { @@ -49779,6 +54094,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Too Many Requests", "schema": { @@ -49790,6 +54111,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -49797,26 +54124,28 @@ "ApiKeyAuth": [] } ], - "summary": "Facet the GitHub users dataset", + "summary": "Get eBay item details", "tags": [ - "Datasets" + "eBay" ] } }, - "/datasets/github-users/items/{login}": { - "get": { + "/ebay/search": { + "post": { "consumes": [ "application/json" ], - "description": "Returns one enriched GitHub user record by login from dataset id enum value `github-users`.", - "operationId": "datasets-github-users-item", + "description": "Returns normalized eBay search results.", + "operationId": "ebay-search", "parameters": [ - { - "description": "GitHub login, max 128 characters", - "in": "path", - "name": "login", + { + "description": "eBay search payload", + "in": "body", + "name": "option", "required": true, - "type": "string" + "schema": { + "$ref": "#/definitions/ebay.SearchOption" + } } ], "produces": [ @@ -49826,7 +54155,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.githubUserResponseDoc" + "$ref": "#/definitions/ebay.searchResponseDoc" } }, "400": { @@ -49835,12 +54164,6 @@ "$ref": "#/definitions/app.Response" } }, - "404": { - "description": "Not Found", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "429": { "description": "Too Many Requests", "schema": { @@ -49852,6 +54175,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -49859,70 +54188,26 @@ "ApiKeyAuth": [] } ], - "summary": "Get a GitHub user from the dataset", + "summary": "Search eBay listings", "tags": [ - "Datasets" + "eBay" ] } }, - "/datasets/github-users/nearby": { + "/ebay/seller/{seller}": { "get": { "consumes": [ "application/json" ], - "description": "Searches enriched GitHub users near a coordinate, sorted by distance, in dataset id enum value `github-users`. influence_tier enum: `nano`, `micro`, `mid`, `macro`, `mega`.", - "operationId": "datasets-github-users-nearby", + "description": "Returns normalized details for a public eBay seller profile.", + "operationId": "ebay-seller", "parameters": [ { - "description": "Latitude", - "in": "query", - "name": "lat", - "required": true, - "type": "number" - }, - { - "description": "Longitude", - "in": "query", - "name": "lon", - "required": true, - "type": "number" - }, - { - "description": "Radius in meters, max 50000", - "in": "query", - "name": "radius_m", + "description": "eBay seller username", + "in": "path", + "name": "seller", "required": true, - "type": "integer" - }, - { - "description": "Follower-tier enum: nano, micro, mid, macro, mega", - "in": "query", - "name": "influence_tier", "type": "string" - }, - { - "description": "Filter by any public contact channel", - "in": "query", - "name": "reachable", - "type": "boolean" - }, - { - "description": "Minimum follower count", - "in": "query", - "name": "min_followers", - "type": "integer" - }, - { - "description": "Page number, defaults to 1", - "in": "query", - "name": "page", - "type": "integer" - }, - { - "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", - "in": "query", - "name": "page_size", - "type": "integer" } ], "produces": [ @@ -49932,7 +54217,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.githubUsersSearchResponseDoc" + "$ref": "#/definitions/ebay.sellerResponseDoc" } }, "400": { @@ -49941,6 +54226,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Too Many Requests", "schema": { @@ -49952,6 +54243,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -49959,193 +54256,26 @@ "ApiKeyAuth": [] } ], - "summary": "Search nearby GitHub users", + "summary": "Get eBay seller profile", "tags": [ - "Datasets" + "eBay" ] } }, - "/datasets/github-users/search": { + "/ebay/seller/{seller}/about": { "get": { "consumes": [ "application/json" ], - "description": "Searches enriched public GitHub user profiles stored in a search index. influence_tier enum: `nano`, `micro`, `mid`, `macro`, `mega`. Sort enum: `relevance`, `rank_score_desc`, `followers_desc`, `account_age_desc`, `account_age_asc`, `distance_asc`.", - "operationId": "datasets-github-users-search", + "description": "Returns normalized seller about information from the public eBay store about tab, including seller stats, top-rated status, optional location/member-since fields, and cleaned store categories.", + "operationId": "ebay-seller-about", "parameters": [ { - "description": "Full-text query over login, name, company, bio and location, max 256 characters", - "in": "query", - "name": "q", - "type": "string" - }, - { - "description": "Exact login filter, max 128 characters", - "in": "query", - "name": "login", - "type": "string" - }, - { - "description": "Exact normalized-company filter, max 128 characters", - "in": "query", - "name": "company", - "type": "string" - }, - { - "description": "Follower-tier enum: nano, micro, mid, macro, mega", - "in": "query", - "name": "influence_tier", - "type": "string" - }, - { - "description": "Exact geocoded country filter, max 128 characters", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Exact ISO country-code filter, max 128 characters", - "in": "query", - "name": "country_code", - "type": "string" - }, - { - "description": "Exact geocoded state filter, max 128 characters", - "in": "query", - "name": "state", - "type": "string" - }, - { - "description": "Exact geocoded city filter, max 128 characters", - "in": "query", - "name": "city", - "type": "string" - }, - { - "description": "Interest-domain tag filter (e.g. ml-ai, web, devops), max 128 characters", - "in": "query", - "name": "domain", - "type": "string" - }, - { - "description": "Filter by public email presence", - "in": "query", - "name": "has_email", - "type": "boolean" - }, - { - "description": "Filter by public Twitter/X handle presence", - "in": "query", - "name": "has_twitter", - "type": "boolean" - }, - { - "description": "Filter by public blog/website presence", - "in": "query", - "name": "has_blog", - "type": "boolean" - }, - { - "description": "Filter by any public contact channel", - "in": "query", - "name": "reachable", - "type": "boolean" - }, - { - "description": "Filter by activity within the last 90 days", - "in": "query", - "name": "active_90d", - "type": "boolean" - }, - { - "description": "Filter by the GitHub available-for-hire flag", - "in": "query", - "name": "hireable", - "type": "boolean" - }, - { - "description": "Organization filter (normally false; the crawl indexes individuals)", - "in": "query", - "name": "is_org", - "type": "boolean" - }, - { - "description": "Bot filter (normally false; the crawl skips bots)", - "in": "query", - "name": "is_bot", - "type": "boolean" - }, - { - "description": "Minimum follower count", - "in": "query", - "name": "min_followers", - "type": "integer" - }, - { - "description": "Maximum follower count", - "in": "query", - "name": "max_followers", - "type": "integer" - }, - { - "description": "Minimum public repository count", - "in": "query", - "name": "min_repos", - "type": "integer" - }, - { - "description": "Minimum composite rank score", - "in": "query", - "name": "min_rank_score", - "type": "integer" - }, - { - "description": "Minimum account age in years", - "in": "query", - "name": "min_account_age_years", - "type": "number" - }, - { - "description": "Maximum account age in years", - "in": "query", - "name": "max_account_age_years", - "type": "number" - }, - { - "description": "Latitude for radius filtering or distance sort", - "in": "query", - "name": "lat", - "type": "number" - }, - { - "description": "Longitude for radius filtering or distance sort", - "in": "query", - "name": "lon", - "type": "number" - }, - { - "description": "Radius in meters, 1 through 50000; requires lat and lon when supplied", - "in": "query", - "name": "radius_m", - "type": "integer" - }, - { - "description": "Sort enum: relevance, rank_score_desc, followers_desc, account_age_desc, account_age_asc, distance_asc", - "in": "query", - "name": "sort", + "description": "eBay seller username", + "in": "path", + "name": "seller", + "required": true, "type": "string" - }, - { - "description": "Page number, defaults to 1", - "in": "query", - "name": "page", - "type": "integer" - }, - { - "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", - "in": "query", - "name": "page_size", - "type": "integer" } ], "produces": [ @@ -50155,7 +54285,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.githubUsersSearchResponseDoc" + "$ref": "#/definitions/ebay.sellerAboutResponseDoc" } }, "400": { @@ -50164,6 +54294,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Too Many Requests", "schema": { @@ -50175,6 +54311,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -50182,122 +54324,45 @@ "ApiKeyAuth": [] } ], - "summary": "Search the GitHub users dataset", + "summary": "Get eBay seller about details", "tags": [ - "Datasets" + "eBay" ] } }, - "/datasets/google-map-businesses/facets": { + "/ebay/seller/{seller}/feedback": { "get": { "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for Google Maps businesses. Facet enum: `category`, `country`, `state`, `county`, `city`, `town`, `website_status`. `category` values (as a facet or filter) are Google Maps type tokens in lower-case snake_case (e.g. `dentist`, `bus_stop`, `atm`).", - "operationId": "datasets-google-map-businesses-facets", + "description": "Returns normalized seller feedback summary, detailed ratings, and recent review cards from the public eBay seller feedback tab.", + "operationId": "ebay-seller-feedback", "parameters": [ { - "description": "Facet enum: category, country, state, county, city, town, website_status", - "in": "query", - "name": "facet", + "description": "eBay seller username", + "in": "path", + "name": "seller", "required": true, "type": "string" }, { - "description": "Full-text business search query, max 256 characters", - "in": "query", - "name": "q", - "type": "string" - }, - { - "description": "Exact category filter: a Google Maps type token in lower-case snake_case (e.g. dentist, bus_stop), max 128 characters", - "in": "query", - "name": "category", - "type": "string" - }, - { - "description": "Exact country filter, max 128 characters", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Exact state filter, max 128 characters", - "in": "query", - "name": "state", - "type": "string" - }, - { - "description": "Exact county filter, max 128 characters", - "in": "query", - "name": "county", - "type": "string" - }, - { - "description": "Exact city filter, max 128 characters", - "in": "query", - "name": "city", - "type": "string" - }, - { - "description": "Exact town filter, max 128 characters", - "in": "query", - "name": "town", - "type": "string" - }, - { - "description": "Minimum rating, 0 through 5. Businesses with no aggregate Google rating are returned with rating null, so any min_rating above 0 excludes them.", - "in": "query", - "name": "min_rating", - "type": "number" - }, - { - "description": "Minimum review count", + "default": 1, + "description": "Feedback page number", "in": "query", - "name": "min_review_count", + "name": "page", "type": "integer" }, { - "description": "Filter by website presence", - "in": "query", - "name": "has_website", - "type": "boolean" - }, - { - "description": "Filter by phone presence", - "in": "query", - "name": "has_phone", - "type": "boolean" - }, - { - "description": "Filter by location presence: true keeps only mappable businesses with coordinates; false isolates locationless service-area businesses that have no map location", - "in": "query", - "name": "has_geo", - "type": "boolean" - }, - { - "description": "Latitude for radius filtering", - "in": "query", - "name": "lat", - "type": "number" - }, - { - "description": "Longitude for radius filtering", - "in": "query", - "name": "lon", - "type": "number" - }, - { - "description": "Radius in meters, 1 through 50000; requires lat and lon when supplied", + "default": 48, + "description": "Reviews per page", + "enum": [ + 24, + 48, + 72 + ], "in": "query", - "name": "radius_m", + "name": "per_page", "type": "integer" - }, - { - "description": "Sort enum: relevance, updated_at_desc, rating_desc, review_count_desc, distance_asc", - "in": "query", - "name": "sort", - "type": "string" } ], "produces": [ @@ -50307,7 +54372,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.googleMapBusinessesFacetResponseDoc" + "$ref": "#/definitions/ebay.sellerFeedbackResponseDoc" } }, "400": { @@ -50316,6 +54381,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Too Many Requests", "schema": { @@ -50327,6 +54398,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -50334,26 +54411,33 @@ "ApiKeyAuth": [] } ], - "summary": "Facet stored Google Maps businesses", + "summary": "Get eBay seller feedback", "tags": [ - "Datasets" + "eBay" ] } }, - "/datasets/google-map-businesses/items/{place_id}": { + "/ebay/seller/{seller}/shop": { "get": { "consumes": [ "application/json" ], - "description": "Returns one stored Google Maps business by Google place_id from dataset id enum value `google-map-businesses`. The `category` field is a Google Maps type token in lower-case snake_case (e.g. `dentist`, `bus_stop`, `atm`). A `rating` of `null` means no aggregate rating is available for that business; read it together with `review_count`. Locationless service-area businesses (online/mobile/home-based) have a `null` `geo`.", - "operationId": "datasets-google-map-businesses-item", + "description": "Returns normalized listings from the public eBay seller shop tab, with pagination backed by the store odtRefresh response.", + "operationId": "ebay-seller-shop", "parameters": [ { - "description": "Google Place ID, max 256 characters", + "description": "eBay seller username", "in": "path", - "name": "place_id", + "name": "seller", "required": true, "type": "string" + }, + { + "default": 1, + "description": "Shop page number", + "in": "query", + "name": "page", + "type": "integer" } ], "produces": [ @@ -50363,7 +54447,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.googleMapBusinessResponseDoc" + "$ref": "#/definitions/ebay.sellerShopResponseDoc" } }, "400": { @@ -50389,6 +54473,12 @@ "schema": { "$ref": "#/definitions/app.Response" } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } } }, "security": [ @@ -50396,70 +54486,67 @@ "ApiKeyAuth": [] } ], - "summary": "Get a stored Google Maps business", + "summary": "Get eBay seller shop listings", "tags": [ - "Datasets" + "eBay" ] } }, - "/datasets/google-map-businesses/nearby": { + "/espn/athlete": { "get": { "consumes": [ "application/json" ], - "description": "Searches stored Google Maps businesses near a coordinate in dataset id enum value `google-map-businesses`. `category` is a Google Maps type token in lower-case snake_case (e.g. `dentist`, `bus_stop`, `atm`), both as the `category` filter and in each result's `category` field. A `rating` of `0` means no aggregate rating is available for that business (not a literal zero-star score); read it together with `review_count`, and note that `min_rating` above 0 excludes unrated businesses.", - "operationId": "datasets-google-map-businesses-nearby", + "description": "Returns one athlete's bio/overview (name, position, jersey, physicals, current team) from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport.", + "operationId": "espn-athlete", "parameters": [ { - "description": "Latitude", + "description": "Sport key", + "enum": [ + "football", + "basketball", + "baseball", + "hockey", + "soccer" + ], + "example": "football", "in": "query", - "name": "lat", + "name": "sport", "required": true, - "type": "number" + "type": "string" }, { - "description": "Longitude", + "description": "League key (must be valid for the sport)", + "enum": [ + "nfl", + "college-football", + "nba", + "wnba", + "mens-college-basketball", + "womens-college-basketball", + "mlb", + "nhl", + "eng.1", + "esp.1", + "ita.1", + "ger.1", + "fra.1", + "usa.1", + "uefa.champions" + ], + "example": "nfl", "in": "query", - "name": "lon", + "name": "league", "required": true, - "type": "number" + "type": "string" }, { - "description": "Radius in meters, max 50000", + "description": "Numeric ESPN athlete (player) id", + "example": "3139477", "in": "query", - "name": "radius_m", + "name": "athlete", "required": true, - "type": "integer" - }, - { - "description": "Exact category filter: a Google Maps type token in lower-case snake_case (e.g. dentist, bus_stop), max 128 characters", - "in": "query", - "name": "category", "type": "string" - }, - { - "description": "Minimum rating, 0 through 5. Businesses with no aggregate Google rating are returned with rating null, so any min_rating above 0 excludes them.", - "in": "query", - "name": "min_rating", - "type": "number" - }, - { - "description": "Minimum review count", - "in": "query", - "name": "min_review_count", - "type": "integer" - }, - { - "description": "Page number, defaults to 1", - "in": "query", - "name": "page", - "type": "integer" - }, - { - "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", - "in": "query", - "name": "page_size", - "type": "integer" } ], "produces": [ @@ -50469,7 +54556,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.googleMapBusinessesSearchResponseDoc" + "$ref": "#/definitions/espn.athleteResponseDoc" } }, "400": { @@ -50478,14 +54565,20 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -50496,127 +54589,67 @@ "ApiKeyAuth": [] } ], - "summary": "Search nearby stored Google Maps businesses", + "summary": "ESPN athlete", "tags": [ - "Datasets" + "ESPN" ] } }, - "/datasets/google-map-businesses/search": { + "/espn/game-summary": { "get": { "consumes": [ "application/json" ], - "description": "Searches Google Maps business records stored in a search index. Sort enum: `relevance`, `updated_at_desc`, `rating_desc`, `review_count_desc`, `distance_asc`. `category` is a Google Maps type token in lower-case snake_case (e.g. `dentist`, `bus_stop`, `atm`), both as the `category` filter and in each result's `category` field. A `rating` of `null` means no aggregate rating is available for that business (too few reviews, or a place type Google does not rate) — it is never a literal zero-star score; read it together with `review_count`, and note that `rating_desc` sorts unrated businesses last and `min_rating` above 0 excludes them. Use `has_geo=false` to isolate locationless service-area businesses (which have a `null` `geo`).", - "operationId": "datasets-google-map-businesses-search", + "description": "Returns one game's matchup, betting odds, and boxscore stat totals from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport. Get an `event` id from the scoreboard endpoint.", + "operationId": "espn-game-summary", "parameters": [ { - "description": "Full-text business search query, max 256 characters", - "in": "query", - "name": "q", - "type": "string" - }, - { - "description": "Exact category filter: a Google Maps type token in lower-case snake_case (e.g. dentist, bus_stop), max 128 characters", - "in": "query", - "name": "category", - "type": "string" - }, - { - "description": "Exact country filter, max 128 characters", - "in": "query", - "name": "country", - "type": "string" - }, - { - "description": "Exact state filter, max 128 characters", - "in": "query", - "name": "state", - "type": "string" - }, - { - "description": "Exact county filter, max 128 characters", - "in": "query", - "name": "county", - "type": "string" - }, - { - "description": "Exact city filter, max 128 characters", + "description": "Sport key", + "enum": [ + "football", + "basketball", + "baseball", + "hockey", + "soccer" + ], + "example": "baseball", "in": "query", - "name": "city", + "name": "sport", + "required": true, "type": "string" }, { - "description": "Exact town filter, max 128 characters", + "description": "League key (must be valid for the sport)", + "enum": [ + "nfl", + "college-football", + "nba", + "wnba", + "mens-college-basketball", + "womens-college-basketball", + "mlb", + "nhl", + "eng.1", + "esp.1", + "ita.1", + "ger.1", + "fra.1", + "usa.1", + "uefa.champions" + ], + "example": "mlb", "in": "query", - "name": "town", + "name": "league", + "required": true, "type": "string" }, { - "description": "Minimum rating, 0 through 5. Businesses with no aggregate Google rating are returned with rating null, so any min_rating above 0 excludes them.", - "in": "query", - "name": "min_rating", - "type": "number" - }, - { - "description": "Minimum review count", - "in": "query", - "name": "min_review_count", - "type": "integer" - }, - { - "description": "Filter by website presence", - "in": "query", - "name": "has_website", - "type": "boolean" - }, - { - "description": "Filter by phone presence", - "in": "query", - "name": "has_phone", - "type": "boolean" - }, - { - "description": "Filter by location presence: true keeps only mappable businesses with coordinates; false isolates locationless service-area businesses that have no map location", - "in": "query", - "name": "has_geo", - "type": "boolean" - }, - { - "description": "Latitude for radius filtering or distance sort", - "in": "query", - "name": "lat", - "type": "number" - }, - { - "description": "Longitude for radius filtering or distance sort", - "in": "query", - "name": "lon", - "type": "number" - }, - { - "description": "Radius in meters, 1 through 50000; requires lat and lon when supplied", - "in": "query", - "name": "radius_m", - "type": "integer" - }, - { - "description": "Sort enum: relevance, updated_at_desc, rating_desc, review_count_desc, distance_asc", + "description": "Numeric ESPN event (game) id", + "example": "401816033", "in": "query", - "name": "sort", + "name": "event", + "required": true, "type": "string" - }, - { - "description": "Page number, defaults to 1", - "in": "query", - "name": "page", - "type": "integer" - }, - { - "description": "Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000", - "in": "query", - "name": "page_size", - "type": "integer" } ], "produces": [ @@ -50626,7 +54659,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/datasets.googleMapBusinessesSearchResponseDoc" + "$ref": "#/definitions/espn.gameSummaryResponseDoc" } }, "400": { @@ -50635,14 +54668,20 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "503": { + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -50653,28 +54692,59 @@ "ApiKeyAuth": [] } ], - "summary": "Search stored Google Maps businesses", + "summary": "ESPN game summary", "tags": [ - "Datasets" + "ESPN" ] } }, - "/diagnostics/antibot-check": { - "post": { + "/espn/news": { + "get": { "consumes": [ "application/json" ], - "description": "Probes a URL across escalating transports (direct HTTP → browser-impersonation → headless/stealth browsers) and returns an empirical scraping-difficulty assessment for that exact URL: a 0–10 `difficulty_score` and `difficulty_band` (`easy`, `medium`, `hard`, `very_hard`, `blocked`, `unknown`), whether it is `scrapeable`, the detected anti-bot `protections` (Cloudflare, DataDome, Akamai, PerimeterX, Kasada, Imperva, AWS WAF and more — each with a `kind` and `confidence`), the lightest transport that worked, and a `recommended_profile`. Difficulty is per-URL, not per-site — a homepage may be open while deep pages are bot-managed. Intended for authorized public-data scraping planning.", - "operationId": "antibot-check", + "description": "Returns recent news articles (headline, description, link) for a league from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport.", + "operationId": "espn-news", "parameters": [ { - "description": "Target URL (and optional fast flag)", - "in": "body", - "name": "request", + "description": "Sport key", + "enum": [ + "football", + "basketball", + "baseball", + "hockey", + "soccer" + ], + "example": "basketball", + "in": "query", + "name": "sport", "required": true, - "schema": { - "$ref": "#/definitions/diagnostics.AntibotCheckRequest" - } + "type": "string" + }, + { + "description": "League key (must be valid for the sport)", + "enum": [ + "nfl", + "college-football", + "nba", + "wnba", + "mens-college-basketball", + "womens-college-basketball", + "mlb", + "nhl", + "eng.1", + "esp.1", + "ita.1", + "ger.1", + "fra.1", + "usa.1", + "uefa.champions" + ], + "example": "nba", + "in": "query", + "name": "league", + "required": true, + "type": "string" } ], "produces": [ @@ -50684,23 +54754,29 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/diagnostics.antibotCheckResponseDoc" + "$ref": "#/definitions/espn.newsResponseDoc" } }, "400": { - "description": "Invalid or missing URL", + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, "429": { - "description": "Rate limit exceeded", + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } }, "503": { - "description": "Probe failed (transport/browser error or blocked target)", + "description": "Service Unavailable", "schema": { "$ref": "#/definitions/app.Response" } @@ -50711,24 +54787,42 @@ "ApiKeyAuth": [] } ], - "summary": "Anti-bot check — website scraping difficulty", + "summary": "ESPN league news", "tags": [ - "Web" + "ESPN" ] } }, - "/ebay/item/{item_id}": { + "/espn/rankings": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized details for a public eBay item listing.", - "operationId": "ebay-item", + "description": "Returns poll rankings (e.g. AP Top 25) for a college league from ESPN's credential-free public JSON. Rankings are only published for college leagues: the `sport` enum accepts `football` and `basketball`, and the `league` enum accepts `college-football`, `mens-college-basketball`, and `womens-college-basketball`.", + "operationId": "espn-rankings", "parameters": [ { - "description": "eBay item ID", - "in": "path", - "name": "item_id", + "description": "Sport key", + "enum": [ + "football", + "basketball" + ], + "example": "football", + "in": "query", + "name": "sport", + "required": true, + "type": "string" + }, + { + "description": "College league key", + "enum": [ + "college-football", + "mens-college-basketball", + "womens-college-basketball" + ], + "example": "college-football", + "in": "query", + "name": "league", "required": true, "type": "string" } @@ -50740,7 +54834,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/ebay.itemResponseDoc" + "$ref": "#/definitions/espn.rankingsResponseDoc" } }, "400": { @@ -50761,12 +54855,6 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "503": { "description": "Service Unavailable", "schema": { @@ -50779,28 +54867,86 @@ "ApiKeyAuth": [] } ], - "summary": "Get eBay item details", + "summary": "ESPN poll rankings", "tags": [ - "eBay" + "ESPN" ] } }, - "/ebay/search": { - "post": { + "/espn/scoreboard": { + "get": { "consumes": [ "application/json" ], - "description": "Returns normalized eBay search results.", - "operationId": "ebay-search", + "description": "Returns games (scores, schedule, status, and odds when available) for a sport and league from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport. The `seasontype` enum accepts `1` (preseason), `2` (regular season), `3` (postseason), and `4` (offseason).", + "operationId": "espn-scoreboard", "parameters": [ { - "description": "eBay search payload", - "in": "body", - "name": "option", + "description": "Sport key", + "enum": [ + "football", + "basketball", + "baseball", + "hockey", + "soccer" + ], + "example": "football", + "in": "query", + "name": "sport", "required": true, - "schema": { - "$ref": "#/definitions/ebay.SearchOption" - } + "type": "string" + }, + { + "description": "League key (must be valid for the sport)", + "enum": [ + "nfl", + "college-football", + "nba", + "wnba", + "mens-college-basketball", + "womens-college-basketball", + "mlb", + "nhl", + "eng.1", + "esp.1", + "ita.1", + "ger.1", + "fra.1", + "usa.1", + "uefa.champions" + ], + "example": "nfl", + "in": "query", + "name": "league", + "required": true, + "type": "string" + }, + { + "description": "Date or range as YYYYMMDD, YYYYMMDD-YYYYMMDD, or YYYY; defaults to the current scoreboard", + "example": "20260910", + "in": "query", + "name": "dates", + "type": "string" + }, + { + "description": "Week number (football leagues)", + "example": 1, + "in": "query", + "name": "week", + "type": "integer" + }, + { + "description": "Season type", + "enum": [ + 1, + 2, + 3, + 4 + ], + "example": 2, + "in": "query", + "name": "seasontype", + "type": "integer" } ], "produces": [ @@ -50810,7 +54956,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/ebay.searchResponseDoc" + "$ref": "#/definitions/espn.scoreboardResponseDoc" } }, "400": { @@ -50819,14 +54965,14 @@ "$ref": "#/definitions/app.Response" } }, - "429": { - "description": "Too Many Requests", + "404": { + "description": "Not Found", "schema": { "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", + "429": { + "description": "Too Many Requests", "schema": { "$ref": "#/definitions/app.Response" } @@ -50843,26 +54989,78 @@ "ApiKeyAuth": [] } ], - "summary": "Search eBay listings", + "summary": "ESPN scoreboard", "tags": [ - "eBay" + "ESPN" ] } }, - "/ebay/seller/{seller}": { + "/espn/standings": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized details for a public eBay seller profile.", - "operationId": "ebay-seller", + "description": "Returns league standings grouped by conference/division from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport. The `seasontype` enum accepts `1` (preseason), `2` (regular season), and `3` (postseason).", + "operationId": "espn-standings", "parameters": [ { - "description": "eBay seller username", - "in": "path", - "name": "seller", + "description": "Sport key", + "enum": [ + "football", + "basketball", + "baseball", + "hockey", + "soccer" + ], + "example": "football", + "in": "query", + "name": "sport", + "required": true, + "type": "string" + }, + { + "description": "League key (must be valid for the sport)", + "enum": [ + "nfl", + "college-football", + "nba", + "wnba", + "mens-college-basketball", + "womens-college-basketball", + "mlb", + "nhl", + "eng.1", + "esp.1", + "ita.1", + "ger.1", + "fra.1", + "usa.1", + "uefa.champions" + ], + "example": "nfl", + "in": "query", + "name": "league", "required": true, "type": "string" + }, + { + "description": "Four-digit season year; defaults to the current season", + "example": 2024, + "in": "query", + "name": "season", + "type": "integer" + }, + { + "description": "Season type", + "enum": [ + 1, + 2, + 3 + ], + "example": 2, + "in": "query", + "name": "seasontype", + "type": "integer" } ], "produces": [ @@ -50872,7 +55070,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/ebay.sellerResponseDoc" + "$ref": "#/definitions/espn.standingsResponseDoc" } }, "400": { @@ -50893,12 +55091,6 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "503": { "description": "Service Unavailable", "schema": { @@ -50911,24 +55103,65 @@ "ApiKeyAuth": [] } ], - "summary": "Get eBay seller profile", + "summary": "ESPN standings", "tags": [ - "eBay" + "ESPN" ] } }, - "/ebay/seller/{seller}/about": { + "/espn/team": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized seller about information from the public eBay store about tab, including seller stats, top-rated status, optional location/member-since fields, and cleaned store categories.", - "operationId": "ebay-seller-about", + "description": "Returns one team's detail (identity, colors, record, standing summary) from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport.", + "operationId": "espn-team", "parameters": [ { - "description": "eBay seller username", - "in": "path", - "name": "seller", + "description": "Sport key", + "enum": [ + "football", + "basketball", + "baseball", + "hockey", + "soccer" + ], + "example": "football", + "in": "query", + "name": "sport", + "required": true, + "type": "string" + }, + { + "description": "League key (must be valid for the sport)", + "enum": [ + "nfl", + "college-football", + "nba", + "wnba", + "mens-college-basketball", + "womens-college-basketball", + "mlb", + "nhl", + "eng.1", + "esp.1", + "ita.1", + "ger.1", + "fra.1", + "usa.1", + "uefa.champions" + ], + "example": "nfl", + "in": "query", + "name": "league", + "required": true, + "type": "string" + }, + { + "description": "Team id (numeric) or abbreviation", + "example": "KC", + "in": "query", + "name": "team", "required": true, "type": "string" } @@ -50940,7 +55173,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/ebay.sellerAboutResponseDoc" + "$ref": "#/definitions/espn.teamResponseDoc" } }, "400": { @@ -50961,12 +55194,6 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "503": { "description": "Service Unavailable", "schema": { @@ -50979,45 +55206,67 @@ "ApiKeyAuth": [] } ], - "summary": "Get eBay seller about details", + "summary": "ESPN team detail", "tags": [ - "eBay" + "ESPN" ] } }, - "/ebay/seller/{seller}/feedback": { + "/espn/team-roster": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized seller feedback summary, detailed ratings, and recent review cards from the public eBay seller feedback tab.", - "operationId": "ebay-seller-feedback", + "description": "Returns a team's roster (players with position, jersey, age, and experience) plus head coach from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport.", + "operationId": "espn-team-roster", "parameters": [ { - "description": "eBay seller username", - "in": "path", - "name": "seller", + "description": "Sport key", + "enum": [ + "football", + "basketball", + "baseball", + "hockey", + "soccer" + ], + "example": "football", + "in": "query", + "name": "sport", "required": true, "type": "string" }, { - "default": 1, - "description": "Feedback page number", + "description": "League key (must be valid for the sport)", + "enum": [ + "nfl", + "college-football", + "nba", + "wnba", + "mens-college-basketball", + "womens-college-basketball", + "mlb", + "nhl", + "eng.1", + "esp.1", + "ita.1", + "ger.1", + "fra.1", + "usa.1", + "uefa.champions" + ], + "example": "nfl", "in": "query", - "name": "page", - "type": "integer" + "name": "league", + "required": true, + "type": "string" }, { - "default": 48, - "description": "Reviews per page", - "enum": [ - 24, - 48, - 72 - ], + "description": "Team id (numeric) or abbreviation", + "example": "KC", "in": "query", - "name": "per_page", - "type": "integer" + "name": "team", + "required": true, + "type": "string" } ], "produces": [ @@ -51027,7 +55276,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/ebay.sellerFeedbackResponseDoc" + "$ref": "#/definitions/espn.rosterResponseDoc" } }, "400": { @@ -51048,12 +55297,6 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "503": { "description": "Service Unavailable", "schema": { @@ -51066,33 +55309,59 @@ "ApiKeyAuth": [] } ], - "summary": "Get eBay seller feedback", + "summary": "ESPN team roster", "tags": [ - "eBay" + "ESPN" ] } }, - "/ebay/seller/{seller}/shop": { + "/espn/teams": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized listings from the public eBay seller shop tab, with pagination backed by the store odtRefresh response.", - "operationId": "ebay-seller-shop", + "description": "Returns the full team list for a sport and league from ESPN's credential-free public JSON. The `sport` enum accepts `football`, `basketball`, `baseball`, `hockey`, and `soccer`. The `league` enum accepts `nfl`, `college-football`, `nba`, `wnba`, `mens-college-basketball`, `womens-college-basketball`, `mlb`, `nhl`, `eng.1`, `esp.1`, `ita.1`, `ger.1`, `fra.1`, `usa.1`, and `uefa.champions`; it must be valid for the chosen sport.", + "operationId": "espn-teams", "parameters": [ { - "description": "eBay seller username", - "in": "path", - "name": "seller", + "description": "Sport key", + "enum": [ + "football", + "basketball", + "baseball", + "hockey", + "soccer" + ], + "example": "basketball", + "in": "query", + "name": "sport", "required": true, "type": "string" }, { - "default": 1, - "description": "Shop page number", + "description": "League key (must be valid for the sport)", + "enum": [ + "nfl", + "college-football", + "nba", + "wnba", + "mens-college-basketball", + "womens-college-basketball", + "mlb", + "nhl", + "eng.1", + "esp.1", + "ita.1", + "ger.1", + "fra.1", + "usa.1", + "uefa.champions" + ], + "example": "nba", "in": "query", - "name": "page", - "type": "integer" + "name": "league", + "required": true, + "type": "string" } ], "produces": [ @@ -51102,7 +55371,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/ebay.sellerShopResponseDoc" + "$ref": "#/definitions/espn.teamsResponseDoc" } }, "400": { @@ -51123,12 +55392,6 @@ "$ref": "#/definitions/app.Response" } }, - "500": { - "description": "Internal Server Error", - "schema": { - "$ref": "#/definitions/app.Response" - } - }, "503": { "description": "Service Unavailable", "schema": { @@ -51141,9 +55404,9 @@ "ApiKeyAuth": [] } ], - "summary": "Get eBay seller shop listings", + "summary": "ESPN team list", "tags": [ - "eBay" + "ESPN" ] } }, @@ -67132,47 +71395,53 @@ "consumes": [ "application/json" ], - "description": "Returns the paginated category listing payload for a Product Hunt category slug.", + "description": "Returns the products in a Product Hunt category (now backed by Product Hunt topics), cursor-paginated. Pass the `cursor` from a previous response's `end_cursor` to page; `page_size` controls the batch size. `page`, `featured_only`, `order` and `tags` are accepted for compatibility but no longer affect the result.", "operationId": "producthunt-category-products", "parameters": [ { "description": "Product Hunt category slug", - "example": "\"vibe-coding\"", + "example": "\"developer-tools\"", "in": "path", "name": "slug", "required": true, "type": "string" }, + { + "description": "Pagination cursor from a previous response's end_cursor", + "in": "query", + "name": "cursor", + "type": "string" + }, + { + "default": 15, + "description": "Page size (number of products)", + "in": "query", + "name": "page_size", + "type": "integer" + }, { "default": true, - "description": "Featured products only", + "description": "Accepted for compatibility; no longer affects results", "in": "query", "name": "featured_only", "type": "boolean" }, { "default": "highest_rated", - "description": "Sort order", + "description": "Accepted for compatibility; no longer affects results", "in": "query", "name": "order", "type": "string" }, { "default": 1, - "description": "Page number (1-based)", + "description": "Accepted for compatibility; use cursor to paginate", "in": "query", "name": "page", "type": "integer" }, { - "default": 15, - "description": "Page size", - "in": "query", - "name": "page_size", - "type": "integer" - }, - { - "description": "Comma-separated category tags", + "description": "Accepted for compatibility; no longer affects results", "in": "query", "name": "tags", "type": "string" @@ -67991,7 +72260,7 @@ "consumes": [ "application/json" ], - "description": "Returns flat public comment entries from a Reddit post.", + "description": "Returns a Reddit post with its public comments. A post that exists but has no comments yet returns a 200 response with an empty comments list; a post that does not exist returns 404, and a temporary block or upstream failure returns 503 (retryable) rather than 404.", "operationId": "reddit-comments", "parameters": [ { @@ -68028,12 +72297,6 @@ "in": "query", "name": "depth", "type": "integer" - }, - { - "description": "When true, source comment scores and nested replies from old.reddit HTML rather than the default (slower)", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -68135,12 +72398,6 @@ "in": "query", "name": "after", "type": "string" - }, - { - "description": "When true, source score and comment_count from old.reddit HTML rather than the default (slower)", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -68203,12 +72460,6 @@ "name": "id", "required": true, "type": "string" - }, - { - "description": "When true, source score, upvote_ratio, and comment_count from old.reddit HTML rather than the default (slower)", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -68317,12 +72568,6 @@ "in": "query", "name": "after", "type": "string" - }, - { - "description": "When true, source score and comment_count from old.reddit HTML rather than the default (slower)", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -68391,12 +72636,6 @@ "in": "query", "name": "limit", "type": "integer" - }, - { - "description": "When true, source the sample posts (with score and comment_count) from old.reddit HTML rather than the default (slower); subscriber counts remain unavailable", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -68471,12 +72710,6 @@ "in": "query", "name": "after", "type": "string" - }, - { - "description": "When true, source comment scores from old.reddit HTML rather than the default (slower)", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -68578,12 +72811,6 @@ "in": "query", "name": "after", "type": "string" - }, - { - "description": "When true, source score and comment_count from old.reddit HTML rather than the default (slower)", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -68685,12 +72912,6 @@ "in": "query", "name": "after", "type": "string" - }, - { - "description": "When true, source score and comment_count from old.reddit HTML rather than the default (slower)", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -68785,12 +73006,6 @@ "in": "query", "name": "after", "type": "string" - }, - { - "description": "When true, source score and comment_count from old.reddit HTML rather than the default (slower)", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -68865,12 +73080,6 @@ "in": "query", "name": "after", "type": "string" - }, - { - "description": "When true, source comment scores from old.reddit HTML rather than the default (slower)", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -68945,12 +73154,6 @@ "in": "query", "name": "after", "type": "string" - }, - { - "description": "When true, source score and comment_count from old.reddit HTML rather than the default (slower)", - "in": "query", - "name": "with_scores", - "type": "boolean" } ], "produces": [ @@ -78802,6 +83005,70 @@ ] } }, + "/web/techstack": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Fetches a public URL and fingerprints the web technologies it is built with — a BuiltWith / Wappalyzer-style detector. Returns a list of detected `technologies`, each with its `categories`, a `confidence` (`high`, `medium`, `low`), an optional `version`, and the `evidence` that matched. Covers JavaScript frameworks and libraries (React, Vue.js, Angular, Svelte, jQuery), web frameworks / static site generators (Next.js, Nuxt.js, Gatsby, Remix, SvelteKit, Astro, Hugo), CMS and website builders (WordPress, Drupal, Joomla, Ghost, Wix, Squarespace, Webflow), e-commerce (Shopify, WooCommerce, Magento, BigCommerce), analytics, ad pixels, and tag managers (Google Analytics, Google Tag Manager, Meta Pixel, LinkedIn, Bing, TikTok/Pinterest/Reddit pixels, Segment, Hotjar, Microsoft Clarity), CDNs, UI frameworks and fonts, payments (Stripe, PayPal, Klarna), live chat, marketing automation, A/B testing, consent management, CAPTCHAs (reCAPTCHA, hCaptcha, Turnstile), video, and search. It also inspects response headers (from a plain HTTP fetch) to identify the web server (nginx, Apache, IIS), the CDN / hosting provider (Cloudflare, CloudFront, Fastly, Vercel, Netlify), and the server-side language / framework (PHP, ASP.NET, Ruby on Rails, Django, Laravel, Express). Results are directional, not exhaustive. The `render` fetch strategy is one of `browser` (headless browser that executes JavaScript — the default, so client-injected scripts like analytics, tag managers and pixels are detected), `auto` (Chrome-impersonated HTTP, escalating to a real browser only when blocked or JS-rendered), or `http` (HTTP only, no JavaScript — fastest, but sees only the server HTML); defaults to `browser`. Only public pages are supported; respect each site's terms of use and robots directives.", + "operationId": "web-techstack", + "parameters": [ + { + "description": "Target URL (and optional render strategy)", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/web.TechStackOption" + } + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/web.techStackResponseDoc" + } + }, + "400": { + "description": "Invalid or missing URL / render value", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "502": { + "description": "Upstream fetch failed", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Target blocked the fetch or could not be retrieved", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Tech stack — detect what a website is built with", + "tags": [ + "Web" + ] + } + }, "/x/post/{id}": { "get": { "consumes": [ diff --git a/pyproject.toml b/pyproject.toml index 829f962..894fe1f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "crawlora" -version = "1.11.0.dev1" +version = "1.13.0.dev1" description = "Official Python SDK for the Crawlora web-scraping API: typed grouped and dynamic operation calls for every public endpoint, with retries, pagination, hooks, and an async client." readme = "README.md" requires-python = ">=3.10" diff --git a/tests/test_client.py b/tests/test_client.py index 115bca0..bf87f70 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -267,7 +267,7 @@ def transport(_request, _timeout): self.assertIs(raised.exception.__cause__, cause) def test_operation_metadata_count(self): - self.assertEqual(OPERATION_COUNT, 532) + self.assertEqual(OPERATION_COUNT, 559) def test_deprecated_endpoints_are_not_generated(self): self.assertFalse(hasattr(CrawloraClient(api_key="api_test", base_url=self.base_url).google, "lens")) @@ -296,7 +296,7 @@ def test_docs_cover_operations_and_recipes(self): recipes_doc = root.joinpath("docs", "recipes.md").read_text() for expected in [ - "Total operations: `532`", + "Total operations: `559`", "`bing-search`", "`GET /bing/search`", "`bing.search`",