diff --git a/CHANGELOG.md b/CHANGELOG.md index af5c463..70a2f61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## v1.48.0-sdk.1 + +- Regenerated from the public API contract (3737 operations). + ## v1.47.1-sdk.1 - Regenerated Go, TypeScript, Python, Ruby, Java, and PHP clients from the public API contract (3,695 operations; operation set unchanged). diff --git a/crawlora/client.py b/crawlora/client.py index c9cf2f5..ebd927d 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.47.1-sdk.1" +VERSION = "1.48.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 91c680c..24e3039 100644 --- a/crawlora/client.pyi +++ b/crawlora/client.pyi @@ -289,6 +289,7 @@ ModelAccountdeletionAccountDeletionRequestBodyDoc = TypedDict('ModelAccountdelet }, total=False) ModelAccountdeletionAccountDeletionRequestDoc = TypedDict('ModelAccountdeletionAccountDeletionRequestDoc', { + 'account_locked_at': NotRequired[str], 'archive_id': NotRequired[str], 'completed_at': NotRequired[str], 'email': NotRequired[str], @@ -301,7 +302,9 @@ ModelAccountdeletionAccountDeletionRequestDoc = TypedDict('ModelAccountdeletionA 'reviewed_by': NotRequired[str], 'scheduled_purge_at': NotRequired[str], 'status': NotRequired[Literal['pending', 'approved', 'rejected', 'cancelled', 'completed']], + 'stripe_subscription_cancellation_scheduled': NotRequired[bool], 'stripe_subscription_cancelled': NotRequired[bool], + 'subscription_period_end': NotRequired[str], 'updated_at': NotRequired[str], 'user_id': NotRequired[str], 'username': NotRequired[str], @@ -4735,6 +4738,7 @@ ModelBbbBusinessResponse = TypedDict('ModelBbbBusinessResponse', { 'business_incorporated': NotRequired[str], 'business_management': NotRequired[str], 'business_started': NotRequired[str], + 'canonical_url': NotRequired[str], 'categories': NotRequired[list[str]], 'category': NotRequired[str], 'complaints_closed_last_12_months': NotRequired[int], @@ -4974,6 +4978,8 @@ ModelBbbdirectoryLocalBbbresponse = TypedDict('ModelBbbdirectoryLocalBbbresponse 'news_url': NotRequired[str], 'offices': NotRequired[list[ModelBbbdirectoryOffice]], 'open_to_public': NotRequired[bool], + 'published_news_title': NotRequired[str], + 'published_news_url': NotRequired[str], 'service_territory': NotRequired[list[str]], 'tagline': NotRequired[str], 'url': NotRequired[str], @@ -5049,6 +5055,7 @@ ModelBbbnewsArticleResponse = TypedDict('ModelBbbnewsArticleResponse', { 'links': NotRequired[list[ModelBbbnewsLink]], 'modified_at': NotRequired[str], 'published_at': NotRequired[str], + 'requested_url': NotRequired[str], 'source_url': NotRequired[str], 'summary': NotRequired[str], 'title': NotRequired[str], @@ -5088,6 +5095,7 @@ ModelBbbnewsNewsItem = TypedDict('ModelBbbnewsNewsItem', { ModelBbbnewsNewsResponse = TypedDict('ModelBbbnewsNewsResponse', { 'city': NotRequired[str], 'country': NotRequired[Literal['us', 'ca']], + 'has_more': NotRequired[bool], 'items': NotRequired[list[ModelBbbnewsNewsItem]], 'local_bbb_id': NotRequired[str], 'local_bbb_name': NotRequired[str], @@ -5097,6 +5105,30 @@ ModelBbbnewsNewsResponse = TypedDict('ModelBbbnewsNewsResponse', { 'state': NotRequired[str], 'topic': NotRequired[str], 'total': NotRequired[int], + 'total_pages': NotRequired[int], +}, total=False) + +ModelBbbnewsPageResponse = TypedDict('ModelBbbnewsPageResponse', { + 'article_id': NotRequired[str], + 'body': NotRequired[str], + 'canonical_url': NotRequired[str], + 'description': NotRequired[str], + 'final_url': NotRequired[str], + 'image': NotRequired[ModelBbbnewsImage], + 'links': NotRequired[list[ModelBbbnewsLink]], + 'modified_at': NotRequired[str], + 'page_type': NotRequired[str], + 'published_at': NotRequired[str | None], + 'redirects': NotRequired[list[ModelBbbnewsRedirectHop]], + 'requested_url': NotRequired[str], + 'summary': NotRequired[str], + 'title': NotRequired[str], +}, total=False) + +ModelBbbnewsRedirectHop = TypedDict('ModelBbbnewsRedirectHop', { + 'location': NotRequired[str], + 'status': NotRequired[int], + 'url': NotRequired[str], }, total=False) ModelBbbnewsTopic = TypedDict('ModelBbbnewsTopic', { @@ -5150,6 +5182,7 @@ ModelBbbscamtrackerScamTypeShare = TypedDict('ModelBbbscamtrackerScamTypeShare', ModelBbbscamtrackerSearchResponse = TypedDict('ModelBbbscamtrackerSearchResponse', { 'date_from': NotRequired[str], 'date_to': NotRequired[str], + 'has_more': NotRequired[bool], 'max_dollars_lost': NotRequired[int], 'min_dollars_lost': NotRequired[int], 'page': NotRequired[int], @@ -5159,6 +5192,7 @@ ModelBbbscamtrackerSearchResponse = TypedDict('ModelBbbscamtrackerSearchResponse 'scammer_state': NotRequired[str], 'source_url': NotRequired[str], 'state': NotRequired[str], + 'total_pages': NotRequired[int], 'total_results': NotRequired[int], 'total_results_lower_bound': NotRequired[bool], }, total=False) @@ -12048,6 +12082,26 @@ ModelCrawlretrievalCrawlWarningDoc = TypedDict('ModelCrawlretrievalCrawlWarningD 'source_id': NotRequired[str], }, total=False) +ModelCreativecenterContentTagOption = TypedDict('ModelCreativecenterContentTagOption', { + 'id': NotRequired[str], + 'name': NotRequired[str], +}, total=False) + +ModelCreativecenterCountryOption = TypedDict('ModelCreativecenterCountryOption', { + 'code': NotRequired[str], + 'name': NotRequired[str], +}, total=False) + +ModelCreativecenterCreativeCenterFiltersResp = TypedDict('ModelCreativecenterCreativeCenterFiltersResp', { + 'hashtag_countries': NotRequired[list[ModelCreativecenterCountryOption]], + 'hashtag_periods': NotRequired[list[int]], + 'industries': NotRequired[list[ModelCreativecenterIndustryOption]], + 'video_content_tags': NotRequired[list[ModelCreativecenterContentTagOption]], + 'video_countries': NotRequired[list[ModelCreativecenterCountryOption]], + 'video_periods': NotRequired[list[int]], + 'video_sort_by': NotRequired[list[ModelCreativecenterSortOption]], +}, total=False) + ModelCreativecenterHashtagTopCreator = TypedDict('ModelCreativecenterHashtagTopCreator', { 'avatar_url': NotRequired[str], 'country_code': NotRequired[str], @@ -12064,6 +12118,74 @@ ModelCreativecenterHashtagTrendPoint = TypedDict('ModelCreativecenterHashtagTren 'value': NotRequired[float], }, total=False) +ModelCreativecenterIndustryOption = TypedDict('ModelCreativecenterIndustryOption', { + 'id': NotRequired[str], + 'name': NotRequired[str], +}, total=False) + +ModelCreativecenterSortOption = TypedDict('ModelCreativecenterSortOption', { + 'label': NotRequired[str], + 'value': NotRequired[str], +}, total=False) + +ModelCreativecenterTopContentAuthor = TypedDict('ModelCreativecenterTopContentAuthor', { + 'avatar_url': NotRequired[str], + 'bio': NotRequired[str], + 'creator_type': NotRequired[int], + 'follower_count': NotRequired[int], + 'handle': NotRequired[str], + 'nickname': NotRequired[str], + 'store_region': NotRequired[str], +}, total=False) + +ModelCreativecenterTopContentComment = TypedDict('ModelCreativecenterTopContentComment', { + 'comment_id': NotRequired[str], + 'create_time': NotRequired[int], + 'like_count': NotRequired[int], + 'text': NotRequired[str], + 'user_avatar_url': NotRequired[str], + 'user_id': NotRequired[str], + 'user_name': NotRequired[str], +}, total=False) + +ModelCreativecenterTopContentCommentKeyword = TypedDict('ModelCreativecenterTopContentCommentKeyword', { + 'keyword': NotRequired[str], + 'mention_count': NotRequired[int], +}, total=False) + +ModelCreativecenterTopContentItem = TypedDict('ModelCreativecenterTopContentItem', { + 'author_id': NotRequired[str], + 'content_type': NotRequired[int], + 'cover_url': NotRequired[str], + 'cover_urls': NotRequired[list[ModelCreativecenterTrendingVideoCover]], + 'create_time': NotRequired[int], + 'creator_id': NotRequired[str], + 'item_id': NotRequired[str], + 'title': NotRequired[str], + 'video_url': NotRequired[str], +}, total=False) + +ModelCreativecenterTopContentMetrics = TypedDict('ModelCreativecenterTopContentMetrics', { + 'engagement_rate': NotRequired[float], + 'six_seconds_vtr': NotRequired[float], + 'video_views': NotRequired[int], +}, total=False) + +ModelCreativecenterTopContentObject = TypedDict('ModelCreativecenterTopContentObject', { + 'author': NotRequired[ModelCreativecenterTopContentAuthor], + 'comment_keywords': NotRequired[list[ModelCreativecenterTopContentCommentKeyword]], + 'comments': NotRequired[list[ModelCreativecenterTopContentComment]], + 'item': NotRequired[ModelCreativecenterTopContentItem], + 'last_update_time': NotRequired[int], + 'metrics': NotRequired[ModelCreativecenterTopContentMetrics], + 'name': NotRequired[str], +}, total=False) + +ModelCreativecenterTopContentResp = TypedDict('ModelCreativecenterTopContentResp', { + 'last_update_time': NotRequired[int], + 'objects': NotRequired[list[ModelCreativecenterTopContentObject]], +}, total=False) + ModelCreativecenterTrendingHashtag = TypedDict('ModelCreativecenterTrendingHashtag', { 'hashtag_id': NotRequired[str], 'hashtag_name': NotRequired[str], @@ -12090,7 +12212,9 @@ ModelCreativecenterTrendingVideo = TypedDict('ModelCreativecenterTrendingVideo', 'content_tags': NotRequired[list[ModelCreativecenterTrendingVideoContentTag]], 'content_type': NotRequired[int], 'cover_url': NotRequired[str], + 'cover_urls': NotRequired[list[ModelCreativecenterTrendingVideoCover]], 'create_time': NotRequired[int], + 'creator_id': NotRequired[str], 'engagement_rate': NotRequired[float], 'engagement_rate_lifetime': NotRequired[float], 'item_id': NotRequired[str], @@ -12109,12 +12233,29 @@ ModelCreativecenterTrendingVideoContentTag = TypedDict('ModelCreativecenterTrend 'name': NotRequired[str], }, total=False) +ModelCreativecenterTrendingVideoCover = TypedDict('ModelCreativecenterTrendingVideoCover', { + 'format': NotRequired[str], + 'url': NotRequired[str], +}, total=False) + ModelCreativecenterTrendingVideosResp = TypedDict('ModelCreativecenterTrendingVideosResp', { 'page_count': NotRequired[int], 'total_count': NotRequired[int], 'videos': NotRequired[list[ModelCreativecenterTrendingVideo]], }, total=False) +ModelCreativecenterFiltersResponseDoc = TypedDict('ModelCreativecenterFiltersResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelCreativecenterCreativeCenterFiltersResp], + 'msg': NotRequired[str], +}, total=False) + +ModelCreativecenterTopContentResponseDoc = TypedDict('ModelCreativecenterTopContentResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelCreativecenterTopContentResp], + 'msg': NotRequired[str], +}, total=False) + ModelCreativecenterTrendingHashtagsResponseDoc = TypedDict('ModelCreativecenterTrendingHashtagsResponseDoc', { 'code': NotRequired[int], 'data': NotRequired[ModelCreativecenterTrendingHashtagsResp], @@ -13304,6 +13445,7 @@ ModelDailywireAuthorResponse = TypedDict('ModelDailywireAuthorResponse', { }, total=False) ModelDatasetsAirbnbMarketFacetResponse = TypedDict('ModelDatasetsAirbnbMarketFacetResponse', { + 'coverage': NotRequired[ModelEsAirbnbDimensionCoverage], 'dataset': NotRequired[str], 'facet': NotRequired[str], 'items': NotRequired[list[ModelEsAirbnbMarketFacetItem]], @@ -13320,6 +13462,7 @@ ModelDatasetsAirbnbMarketNearbyResponse = TypedDict('ModelDatasetsAirbnbMarketNe }, total=False) ModelDatasetsAirbnbMarketSearchResponse = TypedDict('ModelDatasetsAirbnbMarketSearchResponse', { + 'coverage': NotRequired[ModelEsAirbnbDimensionCoverage], 'dataset': NotRequired[str], 'group_by': NotRequired[str], 'items': NotRequired[list[ModelEsAirbnbMarketCell]], @@ -17137,6 +17280,15 @@ ModelEsAirbnbDensityCell = TypedDict('ModelEsAirbnbDensityCell', { 'superhost_pct': NotRequired[float], }, total=False) +ModelEsAirbnbDimensionCoverage = TypedDict('ModelEsAirbnbDimensionCoverage', { + 'coverage_pct': NotRequired[float], + 'covered_listings': NotRequired[int], + 'dimension': NotRequired[str], + 'meets_threshold': NotRequired[bool], + 'minimum_coverage_pct': NotRequired[float], + 'total_listings': NotRequired[int], +}, total=False) + ModelEsAirbnbGeoBounds = TypedDict('ModelEsAirbnbGeoBounds', { 'bottom_right': NotRequired[ModelEsGeoPoint], 'top_left': NotRequired[ModelEsGeoPoint], @@ -17315,6 +17467,7 @@ ModelEsBbbbusinessRecord = TypedDict('ModelEsBbbbusinessRecord', { 'additional_phone_numbers': NotRequired[list[str]], 'additional_websites': NotRequired[list[str]], 'address': NotRequired[str], + 'address_country': NotRequired[Literal['us', 'ca']], 'alert_titles': NotRequired[list[str]], 'alerts': NotRequired[list[ModelEsBbbbusinessAlert]], 'alternate_names': NotRequired[list[str]], @@ -34019,6 +34172,7 @@ ModelLinkedinLinkedinCompanyResponse = TypedDict('ModelLinkedinLinkedinCompanyRe 'logo': NotRequired[str], 'name': NotRequired[str], 'num_of_employees_on_linkedin': NotRequired[int], + 'products': NotRequired[list[ModelLinkedinProduct]], 'similar_pages': NotRequired[list[ModelLinkedinPage]], 'specialties': NotRequired[str], 'type': NotRequired[str], @@ -48723,6 +48877,280 @@ ModelReutersSectionsResponseDoc = TypedDict('ModelReutersSectionsResponseDoc', { 'msg': NotRequired[str], }, total=False) +ModelReverbCategoriesResponse = TypedDict('ModelReverbCategoriesResponse', { + 'categories': NotRequired[list[ModelReverbCategoryItem]], + 'fetched_at': NotRequired[str], + 'product_types': NotRequired[list[ModelReverbProductType]], +}, total=False) + +ModelReverbCategoryItem = TypedDict('ModelReverbCategoryItem', { + 'full_name': NotRequired[str], + 'id': NotRequired[int], + 'name': NotRequired[str], + 'product_type': NotRequired[str], + 'slug': NotRequired[str], + 'uuid': NotRequired[str], +}, total=False) + +ModelReverbListing = TypedDict('ModelReverbListing', { + 'auction': NotRequired[bool], + 'category_uuids': NotRequired[list[str]], + 'condition': NotRequired[str], + 'condition_slug': NotRequired[str], + 'cover_photo_url': NotRequired[str], + 'created_at': NotRequired[str], + 'currency': NotRequired[str], + 'finish': NotRequired[str], + 'has_inventory': NotRequired[bool], + 'id': NotRequired[int], + 'inventory': NotRequired[int], + 'make': NotRequired[str], + 'model': NotRequired[str], + 'offers_enabled': NotRequired[bool], + 'photo_count': NotRequired[int], + 'price': NotRequired[float], + 'published_at': NotRequired[str], + 'shop_name': NotRequired[str], + 'title': NotRequired[str], + 'url': NotRequired[str], + 'year': NotRequired[str], +}, total=False) + +ModelReverbListingPhoto = TypedDict('ModelReverbListingPhoto', { + 'full_url': NotRequired[str], + 'thumbnail_url': NotRequired[str], +}, total=False) + +ModelReverbListingResponse = TypedDict('ModelReverbListingResponse', { + 'accepted_payment_methods': NotRequired[list[str]], + 'auction': NotRequired[bool], + 'category_uuids': NotRequired[list[str]], + 'condition': NotRequired[str], + 'condition_slug': NotRequired[str], + 'created_at': NotRequired[str], + 'currency': NotRequired[str], + 'description': NotRequired[str], + 'fetched_at': NotRequired[str], + 'finish': NotRequired[str], + 'has_inventory': NotRequired[bool], + 'id': NotRequired[int], + 'inventory': NotRequired[int], + 'local_pickup_only': NotRequired[bool], + 'location': NotRequired[str], + 'make': NotRequired[str], + 'model': NotRequired[str], + 'offers_enabled': NotRequired[bool], + 'payment_policy': NotRequired[str], + 'photos': NotRequired[list[ModelReverbListingPhoto]], + 'price': NotRequired[float], + 'product_type': NotRequired[str], + 'published_at': NotRequired[str], + 'return_policy': NotRequired[str], + 'shipping_policy': NotRequired[str], + 'shop_feedback_count': NotRequired[int], + 'shop_name': NotRequired[str], + 'shop_preferred_seller': NotRequired[bool], + 'shop_rating_percentage': NotRequired[float], + 'shop_url': NotRequired[str], + 'sku': NotRequired[str], + 'source_url': NotRequired[str], + 'state_description': NotRequired[str], + 'state_slug': NotRequired[str], + 'title': NotRequired[str], + 'url': NotRequired[str], + 'views': NotRequired[int], + 'watches': NotRequired[int], + 'year': NotRequired[str], +}, total=False) + +ModelReverbMakesResponse = TypedDict('ModelReverbMakesResponse', { + 'fetched_at': NotRequired[str], + 'makes': NotRequired[list[str]], +}, total=False) + +ModelReverbPriceGuideCsp = TypedDict('ModelReverbPriceGuideCsp', { + 'average_rating': NotRequired[float], + 'brand': NotRequired[str], + 'currency': NotRequired[str], + 'finishes': NotRequired[list[str]], + 'image_url': NotRequired[str], + 'new_listings': NotRequired[int], + 'new_low_price': NotRequired[float], + 'reviews_count': NotRequired[int], + 'slug': NotRequired[str], + 'title': NotRequired[str], + 'url': NotRequired[str], + 'used_listings': NotRequired[int], + 'used_low_price': NotRequired[float], +}, total=False) + +ModelReverbPriceGuideMonthlyPrice = TypedDict('ModelReverbPriceGuideMonthlyPrice', { + 'average_price': NotRequired[float], + 'currency': NotRequired[str], + 'month': NotRequired[str], + 'sample_size': NotRequired[int], +}, total=False) + +ModelReverbPriceGuideResponse = TypedDict('ModelReverbPriceGuideResponse', { + 'brand': NotRequired[str], + 'canonical_product_id': NotRequired[str], + 'canonical_products': NotRequired[list[ModelReverbPriceGuideVariant]], + 'condition': NotRequired[str], + 'fetched_at': NotRequired[str], + 'image_url': NotRequired[str], + 'monthly_prices': NotRequired[list[ModelReverbPriceGuideMonthlyPrice]], + 'range': NotRequired[str], + 'recent_sales': NotRequired[list[ModelReverbPriceGuideSale]], + 'sales_count': NotRequired[int], + 'sales_limit': NotRequired[int], + 'sales_total': NotRequired[int], + 'slug': NotRequired[str], + 'source_url': NotRequired[str], + 'title': NotRequired[str], + 'url': NotRequired[str], +}, total=False) + +ModelReverbPriceGuideSale = TypedDict('ModelReverbPriceGuideSale', { + 'condition': NotRequired[str], + 'listing_id': NotRequired[str], + 'price': NotRequired[str], + 'sold_at': NotRequired[str], +}, total=False) + +ModelReverbPriceGuideSearchResponse = TypedDict('ModelReverbPriceGuideSearchResponse', { + 'count': NotRequired[int], + 'fetched_at': NotRequired[str], + 'models': NotRequired[list[ModelReverbPriceGuideCsp]], + 'query': NotRequired[str], + 'source_url': NotRequired[str], +}, total=False) + +ModelReverbPriceGuideVariant = TypedDict('ModelReverbPriceGuideVariant', { + 'finish': NotRequired[str], + 'id': NotRequired[str], + 'model': NotRequired[str], + 'name': NotRequired[str], + 'year': NotRequired[str], +}, total=False) + +ModelReverbProductType = TypedDict('ModelReverbProductType', { + 'name': NotRequired[str], + 'slug': NotRequired[str], +}, total=False) + +ModelReverbSearchResponse = TypedDict('ModelReverbSearchResponse', { + 'category': NotRequired[str], + 'count': NotRequired[int], + 'fetched_at': NotRequired[str], + 'limit': NotRequired[int], + 'listings': NotRequired[list[ModelReverbListing]], + 'make': NotRequired[str], + 'max_price': NotRequired[float], + 'min_price': NotRequired[float], + 'page': NotRequired[int], + 'product_type': NotRequired[str], + 'query': NotRequired[str], + 'source_url': NotRequired[str], + 'total_pages': NotRequired[int], + 'total_results': NotRequired[int], +}, total=False) + +ModelReverbShopFeedback = TypedDict('ModelReverbShopFeedback', { + 'author_name': NotRequired[str], + 'created_at': NotRequired[str], + 'listing_url': NotRequired[str], + 'message': NotRequired[str], + 'order_title': NotRequired[str], + 'rating': NotRequired[int], +}, total=False) + +ModelReverbShopFeedbackResponse = TypedDict('ModelReverbShopFeedbackResponse', { + 'count': NotRequired[int], + 'feedback': NotRequired[list[ModelReverbShopFeedback]], + 'fetched_at': NotRequired[str], + 'page': NotRequired[int], + 'slug': NotRequired[str], + 'source_url': NotRequired[str], + 'total': NotRequired[int], + 'total_pages': NotRequired[int], +}, total=False) + +ModelReverbShopResponse = TypedDict('ModelReverbShopResponse', { + 'avatar_url': NotRequired[str], + 'banner_url': NotRequired[str], + 'description': NotRequired[str], + 'feedback_count': NotRequired[int], + 'fetched_at': NotRequired[str], + 'listings': NotRequired[list[ModelReverbListing]], + 'listings_count': NotRequired[int], + 'listings_limit': NotRequired[int], + 'listings_page': NotRequired[int], + 'listings_total': NotRequired[int], + 'location': NotRequired[str], + 'name': NotRequired[str], + 'on_vacation': NotRequired[bool], + 'payment_policy': NotRequired[str], + 'preferred_seller': NotRequired[bool], + 'quick_responder': NotRequired[bool], + 'quick_shipper': NotRequired[bool], + 'rating_percentage': NotRequired[float], + 'return_policy': NotRequired[str], + 'shipping_policy': NotRequired[str], + 'shop_type': NotRequired[str], + 'slug': NotRequired[str], + 'source_url': NotRequired[str], + 'url': NotRequired[str], + 'website': NotRequired[str], +}, total=False) + +ModelReverbCategoriesResponseDoc = TypedDict('ModelReverbCategoriesResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelReverbCategoriesResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelReverbListingResponseDoc = TypedDict('ModelReverbListingResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelReverbListingResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelReverbMakesResponseDoc = TypedDict('ModelReverbMakesResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelReverbMakesResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelReverbPriceGuideResponseDoc = TypedDict('ModelReverbPriceGuideResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelReverbPriceGuideResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelReverbPriceGuideSearchResponseDoc = TypedDict('ModelReverbPriceGuideSearchResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelReverbPriceGuideSearchResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelReverbSearchResponseDoc = TypedDict('ModelReverbSearchResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelReverbSearchResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelReverbShopFeedbackResponseDoc = TypedDict('ModelReverbShopFeedbackResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelReverbShopFeedbackResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelReverbShopResponseDoc = TypedDict('ModelReverbShopResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelReverbShopResponse], + 'msg': NotRequired[str], +}, total=False) + ModelRightmoveAgentAffiliation = TypedDict('ModelRightmoveAgentAffiliation', { 'id': NotRequired[int], 'image_url': NotRequired[str], @@ -60198,6 +60626,37 @@ ModelStreeteasyRentalSearch = TypedDict('ModelStreeteasyRentalSearch', { 'totalCount': NotRequired[int], }, total=False) +ModelStreeteasySaleEdge = TypedDict('ModelStreeteasySaleEdge', { + 'node': NotRequired[ModelStreeteasySaleListing], + 'type': NotRequired[str], +}, total=False) + +ModelStreeteasySaleListing = TypedDict('ModelStreeteasySaleListing', { + 'advertisedOnSe': NotRequired[bool], + 'areaName': NotRequired[str], + 'bedroomCount': NotRequired[int], + 'buildingType': NotRequired[str], + 'fullBathroomCount': NotRequired[int], + 'furnished': NotRequired[bool], + 'geoPoint': NotRequired[ModelStreeteasyGeoPoint], + 'id': NotRequired[str], + 'isPremiumHdpEnabled': NotRequired[bool], + 'leadMedia': NotRequired[ModelStreeteasyLeadMedia], + 'offMarketAt': NotRequired[str], + 'price': NotRequired[float], + 'saleType': NotRequired[str], + 'sourceGroupLabel': NotRequired[str], + 'street': NotRequired[str], + 'unit': NotRequired[str], + 'urlPath': NotRequired[str], +}, total=False) + +ModelStreeteasySaleSearch = TypedDict('ModelStreeteasySaleSearch', { + 'edges': NotRequired[list[ModelStreeteasySaleEdge]], + 'search': NotRequired[dict[str, Any]], + 'totalCount': NotRequired[int], +}, total=False) + ModelStreeteasySchoolDetails = TypedDict('ModelStreeteasySchoolDetails', { 'address': NotRequired[str], 'district': NotRequired[int], @@ -62798,10 +63257,37 @@ ModelThreadsProfile = TypedDict('ModelThreadsProfile', { 'username': NotRequired[str], }, total=False) +ModelThreadsProfileMediaResult = TypedDict('ModelThreadsProfileMediaResult', { + 'has_more': NotRequired[bool], + 'items': NotRequired[list[ModelThreadsThread]], + 'pagination_limited': NotRequired[bool], + 'username': NotRequired[str], +}, total=False) + ModelThreadsProfilePostsResult = TypedDict('ModelThreadsProfilePostsResult', { 'has_more': NotRequired[bool], 'items': NotRequired[list[ModelThreadsThread]], 'next_cursor': NotRequired[str], + 'pagination_limited': NotRequired[bool], + 'username': NotRequired[str], +}, total=False) + +ModelThreadsProfileRepliesResult = TypedDict('ModelThreadsProfileRepliesResult', { + 'has_more': NotRequired[bool], + 'items': NotRequired[list[ModelThreadsThread]], + 'pagination_limited': NotRequired[bool], + 'username': NotRequired[str], +}, total=False) + +ModelThreadsProfileRepostsResult = TypedDict('ModelThreadsProfileRepostsResult', { + 'has_more': NotRequired[bool], + 'items': NotRequired[list[ModelThreadsThread]], + 'pagination_limited': NotRequired[bool], + 'username': NotRequired[str], +}, total=False) + +ModelThreadsProfileTopicsResult = TypedDict('ModelThreadsProfileTopicsResult', { + 'items': NotRequired[list[ModelThreadsTopic]], 'username': NotRequired[str], }, total=False) @@ -62818,7 +63304,9 @@ ModelThreadsSearchResult = TypedDict('ModelThreadsSearchResult', { 'has_more': NotRequired[bool], 'items': NotRequired[list[ModelThreadsThread]], 'next_cursor': NotRequired[str], + 'pagination_limited': NotRequired[bool], 'query': NotRequired[str], + 'sort': NotRequired[str], }, total=False) ModelThreadsThread = TypedDict('ModelThreadsThread', { @@ -62834,28 +63322,72 @@ ModelThreadsThread = TypedDict('ModelThreadsThread', { 'reply_to': NotRequired[str], 'repost_count': NotRequired[int], 'text': NotRequired[str], + 'topic': NotRequired[ModelThreadsTopic], 'url': NotRequired[str], 'video_urls': NotRequired[list[str]], }, total=False) +ModelThreadsTopic = TypedDict('ModelThreadsTopic', { + 'community_emoji': NotRequired[str], + 'community_favicon_url': NotRequired[str], + 'display_name': NotRequired[str], + 'id': NotRequired[str], + 'is_community': NotRequired[bool], + 'name': NotRequired[str], + 'search_query': NotRequired[str], + 'tag_cluster_name': NotRequired[str], +}, total=False) + +ModelThreadsTopicSearchResult = TypedDict('ModelThreadsTopicSearchResult', { + 'has_more': NotRequired[bool], + 'items': NotRequired[list[ModelThreadsThread]], + 'pagination_limited': NotRequired[bool], + 'query': NotRequired[str], + 'topic_id': NotRequired[str], +}, total=False) + ModelThreadsPostResponseDoc = TypedDict('ModelThreadsPostResponseDoc', { 'code': NotRequired[int], 'data': NotRequired[ModelThreadsPost], 'msg': NotRequired[str], }, total=False) +ModelThreadsProfileMediaResponseDoc = TypedDict('ModelThreadsProfileMediaResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelThreadsProfileMediaResult], + 'msg': NotRequired[str], +}, total=False) + ModelThreadsProfilePostsResponseDoc = TypedDict('ModelThreadsProfilePostsResponseDoc', { 'code': NotRequired[int], 'data': NotRequired[ModelThreadsProfilePostsResult], 'msg': NotRequired[str], }, total=False) +ModelThreadsProfileRepliesResponseDoc = TypedDict('ModelThreadsProfileRepliesResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelThreadsProfileRepliesResult], + 'msg': NotRequired[str], +}, total=False) + +ModelThreadsProfileRepostsResponseDoc = TypedDict('ModelThreadsProfileRepostsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelThreadsProfileRepostsResult], + 'msg': NotRequired[str], +}, total=False) + ModelThreadsProfileResponseDoc = TypedDict('ModelThreadsProfileResponseDoc', { 'code': NotRequired[int], 'data': NotRequired[ModelThreadsProfile], 'msg': NotRequired[str], }, total=False) +ModelThreadsProfileTopicsResponseDoc = TypedDict('ModelThreadsProfileTopicsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelThreadsProfileTopicsResult], + 'msg': NotRequired[str], +}, total=False) + ModelThreadsRepliesResponseDoc = TypedDict('ModelThreadsRepliesResponseDoc', { 'code': NotRequired[int], 'data': NotRequired[ModelThreadsRepliesResult], @@ -62868,6 +63400,12 @@ ModelThreadsSearchResponseDoc = TypedDict('ModelThreadsSearchResponseDoc', { 'msg': NotRequired[str], }, total=False) +ModelThreadsTopicSearchResponseDoc = TypedDict('ModelThreadsTopicSearchResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelThreadsTopicSearchResult], + 'msg': NotRequired[str], +}, total=False) + ModelTicketmasterAttraction = TypedDict('ModelTicketmasterAttraction', { 'classification': NotRequired[ModelTicketmasterClassification], 'discovery_id': NotRequired[str], @@ -63871,6 +64409,412 @@ ModelTiktokTrendingResponseDoc = TypedDict('ModelTiktokTrendingResponseDoc', { 'msg': NotRequired[str], }, total=False) +ModelTiktokmobileCategoryListResponse = TypedDict('ModelTiktokmobileCategoryListResponse', { + 'category_list': NotRequired[list[Any]], + 'cursor': NotRequired[int], + 'device_type': NotRequired[int], + 'extra': NotRequired[Any], + 'has_more': NotRequired[bool], + 'log_pb': NotRequired[Any], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileCommentRepliesResponse = TypedDict('ModelTiktokmobileCommentRepliesResponse', { + 'comments': NotRequired[list[Any]], + 'cursor': NotRequired[int], + 'has_more': NotRequired[bool], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], + 'total': NotRequired[int], +}, total=False) + +ModelTiktokmobileCommentsResponse = TypedDict('ModelTiktokmobileCommentsResponse', { + 'comments': NotRequired[list[Any]], + 'cursor': NotRequired[int], + 'has_more': NotRequired[bool], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], + 'total': NotRequired[int], +}, total=False) + +ModelTiktokmobileFeedItem = TypedDict('ModelTiktokmobileFeedItem', { + 'author_id': NotRequired[int], + 'aweme_id': NotRequired[str], + 'create_time': NotRequired[int], + 'share_url': NotRequired[str], + 'statistics': NotRequired[ModelTiktokmobileFeedStatistics], +}, total=False) + +ModelTiktokmobileFeedResponse = TypedDict('ModelTiktokmobileFeedResponse', { + 'count': NotRequired[int], + 'fetched_at': NotRequired[str], + 'host': NotRequired[str], + 'items': NotRequired[list[ModelTiktokmobileFeedItem]], +}, total=False) + +ModelTiktokmobileFeedStatistics = TypedDict('ModelTiktokmobileFeedStatistics', { + 'aweme_id': NotRequired[str], + 'collect_count': NotRequired[int], + 'comment_count': NotRequired[int], + 'digg_count': NotRequired[int], + 'download_count': NotRequired[int], + 'forward_count': NotRequired[int], + 'lose_comment_count': NotRequired[int], + 'lose_count': NotRequired[int], + 'play_count': NotRequired[int], + 'repost_count': NotRequired[int], + 'share_count': NotRequired[int], + 'whatsapp_share_count': NotRequired[int], +}, total=False) + +ModelTiktokmobileHashtagInfoResponse = TypedDict('ModelTiktokmobileHashtagInfoResponse', { + 'ch_info': NotRequired[Any], + 'hashtag_name': NotRequired[str], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileHashtagPostsResponse = TypedDict('ModelTiktokmobileHashtagPostsResponse', { + 'aweme_list': NotRequired[list[Any]], + 'cursor': NotRequired[int], + 'has_more': NotRequired[bool], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileHashtagSearchResponse = TypedDict('ModelTiktokmobileHashtagSearchResponse', { + 'challenge_list': NotRequired[list[Any]], + 'cursor': NotRequired[int], + 'has_more': NotRequired[bool], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileHotMusicResponse = TypedDict('ModelTiktokmobileHotMusicResponse', { + 'cursor': NotRequired[int], + 'extra': NotRequired[Any], + 'has_more': NotRequired[bool], + 'log_pb': NotRequired[Any], + 'msg': NotRequired[str], + 'music_list': NotRequired[list[Any]], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileLiveSearchResponse = TypedDict('ModelTiktokmobileLiveSearchResponse', { + 'cursor': NotRequired[int], + 'data': NotRequired[list[Any]], + 'extra': NotRequired[Any], + 'extra_data': NotRequired[Any], + 'feedback_type': NotRequired[str], + 'global_doodle_config': NotRequired[Any], + 'guide_search_words': NotRequired[Any], + 'has_more': NotRequired[bool], + 'log_pb': NotRequired[Any], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileMusicBeatsSongsResponse = TypedDict('ModelTiktokmobileMusicBeatsSongsResponse', { + 'extra': NotRequired[Any], + 'log_pb': NotRequired[Any], + 'music_list': NotRequired[list[Any]], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileMusicCollectionFeedResponse = TypedDict('ModelTiktokmobileMusicCollectionFeedResponse', { + 'cursor': NotRequired[int], + 'extra': NotRequired[Any], + 'has_more': NotRequired[bool], + 'log_pb': NotRequired[Any], + 'mcf_list': NotRequired[list[Any]], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileMusicFreshAwemeResponse = TypedDict('ModelTiktokmobileMusicFreshAwemeResponse', { + 'aweme_list': NotRequired[list[Any]], + 'cursor': NotRequired[int], + 'extra': NotRequired[Any], + 'has_more': NotRequired[bool], + 'log_pb': NotRequired[Any], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileMusicPickResponse = TypedDict('ModelTiktokmobileMusicPickResponse', { + 'cursor': NotRequired[int], + 'has_more': NotRequired[bool], + 'mc_list': NotRequired[list[Any]], + 'music_list': NotRequired[list[Any]], + 'radio_cursor': NotRequired[int], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileMusicRelatedResponse = TypedDict('ModelTiktokmobileMusicRelatedResponse', { + 'cursor': NotRequired[int], + 'has_more': NotRequired[bool], + 'music_list': NotRequired[list[Any]], + 'music_type': NotRequired[int], + 'recall_info_list': NotRequired[list[Any]], + 'similar_song_ids': NotRequired[list[Any]], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobilePlacePoicontainer = TypedDict('ModelTiktokmobilePlacePoicontainer', { + 'poi_info': NotRequired[list[Any]], +}, total=False) + +ModelTiktokmobileSearchGeneralResponse = TypedDict('ModelTiktokmobileSearchGeneralResponse', { + 'cursor': NotRequired[int], + 'data': NotRequired[list[Any]], + 'has_more': NotRequired[bool], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileSearchMusicResponse = TypedDict('ModelTiktokmobileSearchMusicResponse', { + 'cursor': NotRequired[int], + 'has_more': NotRequired[bool], + 'music': NotRequired[list[Any]], + 'music_info_list': NotRequired[list[Any]], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], + 'total': NotRequired[int], +}, total=False) + +ModelTiktokmobileSearchPlaceResponse = TypedDict('ModelTiktokmobileSearchPlaceResponse', { + 'cursor': NotRequired[int], + 'extra': NotRequired[Any], + 'feedback_type': NotRequired[str], + 'has_more': NotRequired[bool], + 'log_pb': NotRequired[Any], + 'poi_info': NotRequired[ModelTiktokmobilePlacePoicontainer], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileSearchSuggestion = TypedDict('ModelTiktokmobileSearchSuggestion', { + 'content': NotRequired[str], + 'extra_info': NotRequired[Any], + 'highlight_pos': NotRequired[Any], + 'pos': NotRequired[Any], + 'rich_sug_sec_pos': NotRequired[Any], + 'sug_type': NotRequired[str], + 'word_record': NotRequired[Any], +}, total=False) + +ModelTiktokmobileSearchSuggestionResponse = TypedDict('ModelTiktokmobileSearchSuggestionResponse', { + 'extra': NotRequired[Any], + 'has_more': NotRequired[bool], + 'log_pb': NotRequired[Any], + 'rid': NotRequired[str], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], + 'sug_list': NotRequired[list[ModelTiktokmobileSearchSuggestion]], +}, total=False) + +ModelTiktokmobileSearchUsersResponse = TypedDict('ModelTiktokmobileSearchUsersResponse', { + 'cursor': NotRequired[int], + 'has_more': NotRequired[bool], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], + 'user_list': NotRequired[list[Any]], +}, total=False) + +ModelTiktokmobileStickerDiscoverResponse = TypedDict('ModelTiktokmobileStickerDiscoverResponse', { + 'aweme_list': NotRequired[list[Any]], + 'cursor': NotRequired[int], + 'extra': NotRequired[Any], + 'feed_session_id': NotRequired[str], + 'has_more': NotRequired[bool], + 'log_pb': NotRequired[Any], + 'status_code': NotRequired[int], + 'status_msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileWebcastEffectsData = TypedDict('ModelTiktokmobileWebcastEffectsData', { + 'assets': NotRequired[list[Any]], +}, total=False) + +ModelTiktokmobileWebcastEffectsResponse = TypedDict('ModelTiktokmobileWebcastEffectsResponse', { + 'data': NotRequired[ModelTiktokmobileWebcastEffectsData], + 'extra': NotRequired[Any], + 'status_code': NotRequired[int], +}, total=False) + +ModelTiktokmobileWebcastGiftListResponse = TypedDict('ModelTiktokmobileWebcastGiftListResponse', { + 'data': NotRequired[Any], + 'extra': NotRequired[Any], + 'status_code': NotRequired[int], +}, total=False) + +ModelTiktokmobileAnchorListResponseDoc = TypedDict('ModelTiktokmobileAnchorListResponseDoc', { + 'anchors': NotRequired[list[Any]], + 'count': NotRequired[int], + 'fetched_at': NotRequired[str], + 'host': NotRequired[str], +}, total=False) + +ModelTiktokmobileCategoryListResponseDoc = TypedDict('ModelTiktokmobileCategoryListResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileCategoryListResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileCommentRepliesResponseDoc = TypedDict('ModelTiktokmobileCommentRepliesResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileCommentRepliesResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileCommentsResponseDoc = TypedDict('ModelTiktokmobileCommentsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileCommentsResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileFeedPostResponseDoc = TypedDict('ModelTiktokmobileFeedPostResponseDoc', { + 'fetched_at': NotRequired[str], + 'host': NotRequired[str], + 'items': NotRequired[dict[str, Any]], + 'note': NotRequired[str], + 'strings': NotRequired[list[str]], +}, total=False) + +ModelTiktokmobileFeedResponseDoc = TypedDict('ModelTiktokmobileFeedResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileFeedResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileHashtagInfoResponseDoc = TypedDict('ModelTiktokmobileHashtagInfoResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileHashtagInfoResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileHashtagPostsResponseDoc = TypedDict('ModelTiktokmobileHashtagPostsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileHashtagPostsResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileHashtagSearchResponseDoc = TypedDict('ModelTiktokmobileHashtagSearchResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileHashtagSearchResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileHotMusicResponseDoc = TypedDict('ModelTiktokmobileHotMusicResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileHotMusicResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileLiveEffectsResponseDoc = TypedDict('ModelTiktokmobileLiveEffectsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileWebcastEffectsResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileLiveGiftsResponseDoc = TypedDict('ModelTiktokmobileLiveGiftsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileWebcastGiftListResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileLiveSearchResponseDoc = TypedDict('ModelTiktokmobileLiveSearchResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileLiveSearchResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileMusicBeatsSongsResponseDoc = TypedDict('ModelTiktokmobileMusicBeatsSongsResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileMusicBeatsSongsResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileMusicCollectionFeedResponseDoc = TypedDict('ModelTiktokmobileMusicCollectionFeedResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileMusicCollectionFeedResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileMusicFreshAwemeResponseDoc = TypedDict('ModelTiktokmobileMusicFreshAwemeResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileMusicFreshAwemeResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileMusicPickResponseDoc = TypedDict('ModelTiktokmobileMusicPickResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileMusicPickResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileMusicRelatedResponseDoc = TypedDict('ModelTiktokmobileMusicRelatedResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileMusicRelatedResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileSearchGeneralResponseDoc = TypedDict('ModelTiktokmobileSearchGeneralResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileSearchGeneralResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileSearchMusicResponseDoc = TypedDict('ModelTiktokmobileSearchMusicResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileSearchMusicResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileSearchPlaceResponseDoc = TypedDict('ModelTiktokmobileSearchPlaceResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileSearchPlaceResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileSearchPreInfoResponseDoc = TypedDict('ModelTiktokmobileSearchPreInfoResponseDoc', { + 'fetched_at': NotRequired[str], + 'host': NotRequired[str], + 'pre_info_id': NotRequired[str], + 'ttl': NotRequired[int], +}, total=False) + +ModelTiktokmobileSearchSuggestionResponseDoc = TypedDict('ModelTiktokmobileSearchSuggestionResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileSearchSuggestionResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileSearchTabsResponseDoc = TypedDict('ModelTiktokmobileSearchTabsResponseDoc', { + 'fetched_at': NotRequired[str], + 'host': NotRequired[str], + 'is_failed': NotRequired[int], + 'keyword': NotRequired[str], + 'tabs': NotRequired[list[str]], +}, total=False) + +ModelTiktokmobileSearchUsersResponseDoc = TypedDict('ModelTiktokmobileSearchUsersResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileSearchUsersResponse], + 'msg': NotRequired[str], +}, total=False) + +ModelTiktokmobileStickerDiscoverResponseDoc = TypedDict('ModelTiktokmobileStickerDiscoverResponseDoc', { + 'code': NotRequired[int], + 'data': NotRequired[ModelTiktokmobileStickerDiscoverResponse], + 'msg': NotRequired[str], +}, total=False) + ModelTimeAuthorArticle = TypedDict('ModelTimeAuthorArticle', { 'excerpt': NotRequired[str], 'published_at': NotRequired[str], @@ -75328,6 +76272,14 @@ BbbNewsTopicsParams = TypedDict('BbbNewsTopicsParams', { 'url': Required[str], }, total=False) +BbbPageResponse = Any +BbbPageParams = TypedDict('BbbPageParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'url': Required[str], +}, total=False) + BbbRegionsResponse = ModelBbbdirectoryRegionsResponseDoc BbbRegionsParams = TypedDict('BbbRegionsParams', { '_response_type': NotRequired[ResponseType], @@ -79140,12 +80092,13 @@ DatasetsBbbBusinessesFacetsParams = TypedDict('DatasetsBbbBusinessesFacetsParams '_response_type': NotRequired[ResponseType], '_timeout': NotRequired[float], '_headers': NotRequired[Mapping[str, str]], - 'facet': Required[Literal['country', 'category', 'state', 'city', 'rating', 'accredited', 'entity_type', 'run_id', 'alert_title', 'has_alerts']], + 'facet': Required[Literal['country', 'address_country', 'category', 'state', 'city', 'rating', 'accredited', 'entity_type', 'run_id', 'alert_title', 'has_alerts']], 'limit': NotRequired[int], 'offset': NotRequired[int], 'q': NotRequired[str], 'category': NotRequired[str], 'country': NotRequired[Literal['us', 'ca']], + 'address_country': NotRequired[Literal['us', 'ca']], 'state': NotRequired[str], 'city': NotRequired[str], 'rating': NotRequired[Literal['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-', 'F']], @@ -79174,6 +80127,7 @@ DatasetsBbbBusinessesSearchParams = TypedDict('DatasetsBbbBusinessesSearchParams 'q': NotRequired[str], 'category': NotRequired[str], 'country': NotRequired[Literal['us', 'ca']], + 'address_country': NotRequired[Literal['us', 'ca']], 'state': NotRequired[str], 'city': NotRequired[str], 'rating': NotRequired[Literal['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-', 'F']], @@ -97556,6 +98510,84 @@ ReutersSectionsParams = TypedDict('ReutersSectionsParams', { '_headers': NotRequired[Mapping[str, str]], }, total=False) +ReverbCategoriesResponse = ModelReverbCategoriesResponseDoc +ReverbCategoriesParams = TypedDict('ReverbCategoriesParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], +}, total=False) + +ReverbListingResponse = ModelReverbListingResponseDoc +ReverbListingParams = TypedDict('ReverbListingParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'id': Required[int], +}, total=False) + +ReverbMakesResponse = ModelReverbMakesResponseDoc +ReverbMakesParams = TypedDict('ReverbMakesParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], +}, total=False) + +ReverbPriceGuideResponse = ModelReverbPriceGuideResponseDoc +ReverbPriceGuideParams = TypedDict('ReverbPriceGuideParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'slug': Required[str], + 'canonical_product_id': NotRequired[str], + 'condition': NotRequired[Literal['mint', 'excellent', 'very-good', 'good', 'fair', 'poor']], + 'range': NotRequired[Literal['months_6', 'years_1', 'years_2']], + 'limit': NotRequired[int], +}, total=False) + +ReverbPriceGuideSearchResponse = ModelReverbPriceGuideSearchResponseDoc +ReverbPriceGuideSearchParams = TypedDict('ReverbPriceGuideSearchParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'query': Required[str], + 'limit': NotRequired[int], +}, total=False) + +ReverbSearchResponse = ModelReverbSearchResponseDoc +ReverbSearchParams = TypedDict('ReverbSearchParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'query': NotRequired[str], + 'category': NotRequired[str], + 'product_type': NotRequired[Literal['accessories', 'acoustic-guitars', 'amps', 'band-and-orchestra', 'bass-guitars', 'dj-and-lighting-gear', 'drums-and-percussion', 'effects-and-pedals', 'electric-guitars', 'folk-instruments', 'home-audio', 'keyboards-and-synths', 'parts', 'pro-audio']], + 'make': NotRequired[str], + 'min_price': NotRequired[float], + 'max_price': NotRequired[float], + 'page': NotRequired[int], + 'limit': NotRequired[int], +}, total=False) + +ReverbShopResponse = ModelReverbShopResponseDoc +ReverbShopParams = TypedDict('ReverbShopParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'slug': Required[str], + 'query': NotRequired[str], + 'page': NotRequired[int], + 'limit': NotRequired[int], +}, total=False) + +ReverbShopFeedbackResponse = ModelReverbShopFeedbackResponseDoc +ReverbShopFeedbackParams = TypedDict('ReverbShopFeedbackParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'slug': Required[str], + 'page': NotRequired[int], +}, total=False) + RightmoveAgentsResponse = Any RightmoveAgentsParams = TypedDict('RightmoveAgentsParams', { '_response_type': NotRequired[ResponseType], @@ -102321,7 +103353,7 @@ StreetEasyStreeteasyRentalsSearchParams = TypedDict('StreetEasyStreeteasyRentals 'transit_line': NotRequired[list[Literal['1', '2', '3', '4', '5', '6', '7', 'A', 'C', 'E', 'B', 'D', 'F', 'M', 'G', 'N', 'Q', 'R', 'W', 'J', 'Z', 'L', 'S', 'HBLR', 'PATH']]], }, total=False) -StreetEasyStreeteasySalesSearchResponse = ModelStreeteasyRentalSearch +StreetEasyStreeteasySalesSearchResponse = ModelStreeteasySaleSearch StreetEasyStreeteasySalesSearchParams = TypedDict('StreetEasyStreeteasySalesSearchParams', { '_response_type': NotRequired[ResponseType], '_timeout': NotRequired[float], @@ -103853,6 +104885,14 @@ ThreadsProfileParams = TypedDict('ThreadsProfileParams', { 'username': Required[str], }, total=False) +ThreadsProfileMediaResponse = ModelThreadsProfileMediaResponseDoc +ThreadsProfileMediaParams = TypedDict('ThreadsProfileMediaParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'username': Required[str], +}, total=False) + ThreadsProfilePostsResponse = ModelThreadsProfilePostsResponseDoc ThreadsProfilePostsParams = TypedDict('ThreadsProfilePostsParams', { '_response_type': NotRequired[ResponseType], @@ -103862,12 +104902,46 @@ ThreadsProfilePostsParams = TypedDict('ThreadsProfilePostsParams', { 'cursor': NotRequired[str], }, total=False) +ThreadsProfileRepliesResponse = ModelThreadsProfileRepliesResponseDoc +ThreadsProfileRepliesParams = TypedDict('ThreadsProfileRepliesParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'username': Required[str], +}, total=False) + +ThreadsProfileRepostsResponse = ModelThreadsProfileRepostsResponseDoc +ThreadsProfileRepostsParams = TypedDict('ThreadsProfileRepostsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'username': Required[str], +}, total=False) + +ThreadsProfileTopicsResponse = ModelThreadsProfileTopicsResponseDoc +ThreadsProfileTopicsParams = TypedDict('ThreadsProfileTopicsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'username': Required[str], +}, total=False) + ThreadsSearchResponse = ModelThreadsSearchResponseDoc ThreadsSearchParams = TypedDict('ThreadsSearchParams', { '_response_type': NotRequired[ResponseType], '_timeout': NotRequired[float], '_headers': NotRequired[Mapping[str, str]], 'q': Required[str], + 'sort': NotRequired[Literal['top', 'recent']], +}, total=False) + +ThreadsTopicSearchResponse = ModelThreadsTopicSearchResponseDoc +ThreadsTopicSearchParams = TypedDict('ThreadsTopicSearchParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'q': Required[str], + 'tag_id': Required[str], }, total=False) TicketmasterAttractionResponse = ModelTicketmasterAttractionResponseDoc @@ -104131,13 +105205,29 @@ TiktokVideoCommentsParams = TypedDict('TiktokVideoCommentsParams', { 'cursor': NotRequired[int], }, total=False) +TiktokCreativeCenterFiltersResponse = ModelCreativecenterFiltersResponseDoc +TiktokCreativeCenterFiltersParams = TypedDict('TiktokCreativeCenterFiltersParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], +}, total=False) + TiktokCreativeCenterHashtagsResponse = ModelCreativecenterTrendingHashtagsResponseDoc TiktokCreativeCenterHashtagsParams = TypedDict('TiktokCreativeCenterHashtagsParams', { '_response_type': NotRequired[ResponseType], '_timeout': NotRequired[float], '_headers': NotRequired[Mapping[str, str]], 'country_code': Required[str], - 'period': NotRequired[Literal['7', '30']], + 'period': NotRequired[Literal['7', '30', '90']], + 'industry_id': NotRequired[Literal['10000000000', '11000000000', '12000000000', '13000000000', '14000000000', '15000000000', '17000000000', '18000000000', '19000000000', '21000000000', '22000000000', '23000000000', '24000000000', '25000000000', '26000000000', '27000000000', '28000000000', '29000000000']], +}, total=False) + +TiktokCreativeCenterTopContentResponse = ModelCreativecenterTopContentResponseDoc +TiktokCreativeCenterTopContentParams = TypedDict('TiktokCreativeCenterTopContentParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'include_comments': NotRequired[bool], }, total=False) TiktokCreativeCenterVideosResponse = ModelCreativecenterTrendingVideosResponseDoc @@ -104149,6 +105239,7 @@ TiktokCreativeCenterVideosParams = TypedDict('TiktokCreativeCenterVideosParams', 'period': NotRequired[Literal['7', '30']], 'sort_by': NotRequired[Literal['views', 'engagement', 'six_second_views']], 'content_label_id': NotRequired[str], + 'content_label_ids': NotRequired[list[Literal['11002', '11003', '11010', '11013', '11015']]], 'organic_only': NotRequired[bool], }, total=False) @@ -104177,6 +105268,240 @@ TiktokChallengeListParams = TypedDict('TiktokChallengeListParams', { 'cursor': NotRequired[int], }, total=False) +TiktokMobileAnchorListResponse = ModelTiktokmobileAnchorListResponseDoc +TiktokMobileAnchorListParams = TypedDict('TiktokMobileAnchorListParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], +}, total=False) + +TiktokMobileCommentRepliesResponse = ModelTiktokmobileCommentRepliesResponseDoc +TiktokMobileCommentRepliesParams = TypedDict('TiktokMobileCommentRepliesParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'aweme_id': Required[str], + 'comment_id': Required[str], + 'cursor': NotRequired[int], + 'count': NotRequired[int], +}, total=False) + +TiktokMobileCommentsResponse = ModelTiktokmobileCommentsResponseDoc +TiktokMobileCommentsParams = TypedDict('TiktokMobileCommentsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'aweme_id': Required[str], + 'cursor': NotRequired[int], + 'count': NotRequired[int], +}, total=False) + +TiktokMobileFeedResponse = ModelTiktokmobileFeedResponseDoc +TiktokMobileFeedParams = TypedDict('TiktokMobileFeedParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + +TiktokMobileFeedPostResponse = ModelTiktokmobileFeedPostResponseDoc +TiktokMobileFeedPostParams = TypedDict('TiktokMobileFeedPostParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], +}, total=False) + +TiktokMobileHashtagResponse = ModelTiktokmobileHashtagInfoResponseDoc +TiktokMobileHashtagParams = TypedDict('TiktokMobileHashtagParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'name': Required[str], +}, total=False) + +TiktokMobileHashtagPostsResponse = ModelTiktokmobileHashtagPostsResponseDoc +TiktokMobileHashtagPostsParams = TypedDict('TiktokMobileHashtagPostsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'name': Required[str], + 'sort': NotRequired[Literal['fresh', 'popular']], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + +TiktokMobileHashtagsResponse = ModelTiktokmobileHashtagSearchResponseDoc +TiktokMobileHashtagsParams = TypedDict('TiktokMobileHashtagsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'keyword': Required[str], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + +TiktokMobileLiveEffectsResponse = ModelTiktokmobileLiveEffectsResponseDoc +TiktokMobileLiveEffectsParams = TypedDict('TiktokMobileLiveEffectsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], +}, total=False) + +TiktokMobileLiveGiftsResponse = ModelTiktokmobileLiveGiftsResponseDoc +TiktokMobileLiveGiftsParams = TypedDict('TiktokMobileLiveGiftsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], +}, total=False) + +TiktokMobileLiveSearchResponse = ModelTiktokmobileLiveSearchResponseDoc +TiktokMobileLiveSearchParams = TypedDict('TiktokMobileLiveSearchParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'keyword': Required[str], + 'count': NotRequired[int], +}, total=False) + +TiktokMobileMusicBeatsResponse = ModelTiktokmobileMusicBeatsSongsResponseDoc +TiktokMobileMusicBeatsParams = TypedDict('TiktokMobileMusicBeatsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'count': NotRequired[int], +}, total=False) + +TiktokMobileMusicCollectionsResponse = ModelTiktokmobileMusicCollectionFeedResponseDoc +TiktokMobileMusicCollectionsParams = TypedDict('TiktokMobileMusicCollectionsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + +TiktokMobileMusicPickResponse = ModelTiktokmobileMusicPickResponseDoc +TiktokMobileMusicPickParams = TypedDict('TiktokMobileMusicPickParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + +TiktokMobileMusicPostsResponse = ModelTiktokmobileMusicFreshAwemeResponseDoc +TiktokMobileMusicPostsParams = TypedDict('TiktokMobileMusicPostsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'music_id': Required[str], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + +TiktokMobileMusicRelatedResponse = ModelTiktokmobileMusicRelatedResponseDoc +TiktokMobileMusicRelatedParams = TypedDict('TiktokMobileMusicRelatedParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'aweme_id': Required[str], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + +TiktokMobileMusicTrendingResponse = ModelTiktokmobileHotMusicResponseDoc +TiktokMobileMusicTrendingParams = TypedDict('TiktokMobileMusicTrendingParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + +TiktokMobileSearchResponse = ModelTiktokmobileSearchGeneralResponseDoc +TiktokMobileSearchParams = TypedDict('TiktokMobileSearchParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'keyword': Required[str], + 'count': NotRequired[int], + 'offset': NotRequired[int], +}, total=False) + +TiktokMobileSearchMusicResponse = ModelTiktokmobileSearchMusicResponseDoc +TiktokMobileSearchMusicParams = TypedDict('TiktokMobileSearchMusicParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'keyword': Required[str], + 'count': NotRequired[int], + 'offset': NotRequired[int], +}, total=False) + +TiktokMobileSearchPlaceResponse = ModelTiktokmobileSearchPlaceResponseDoc +TiktokMobileSearchPlaceParams = TypedDict('TiktokMobileSearchPlaceParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'keyword': Required[str], + 'count': NotRequired[int], +}, total=False) + +TiktokMobileSearchPreInfoResponse = ModelTiktokmobileSearchPreInfoResponseDoc +TiktokMobileSearchPreInfoParams = TypedDict('TiktokMobileSearchPreInfoParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'keyword': NotRequired[str], + 'count': NotRequired[int], +}, total=False) + +TiktokMobileSearchSugResponse = ModelTiktokmobileSearchSuggestionResponseDoc +TiktokMobileSearchSugParams = TypedDict('TiktokMobileSearchSugParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'keyword': Required[str], + 'count': NotRequired[int], +}, total=False) + +TiktokMobileSearchTabsResponse = ModelTiktokmobileSearchTabsResponseDoc +TiktokMobileSearchTabsParams = TypedDict('TiktokMobileSearchTabsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'keyword': Required[str], +}, total=False) + +TiktokMobileSearchUserResponse = ModelTiktokmobileSearchUsersResponseDoc +TiktokMobileSearchUserParams = TypedDict('TiktokMobileSearchUserParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'keyword': Required[str], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + +TiktokMobileTrendingCategoriesResponse = ModelTiktokmobileCategoryListResponseDoc +TiktokMobileTrendingCategoriesParams = TypedDict('TiktokMobileTrendingCategoriesParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + +TiktokMobileTrendingEffectsResponse = ModelTiktokmobileStickerDiscoverResponseDoc +TiktokMobileTrendingEffectsParams = TypedDict('TiktokMobileTrendingEffectsParams', { + '_response_type': NotRequired[ResponseType], + '_timeout': NotRequired[float], + '_headers': NotRequired[Mapping[str, str]], + 'count': NotRequired[int], + 'cursor': NotRequired[int], +}, total=False) + TiktokPopularTrendCountryIndustryMetaResponse = ModelPopulartrendCountryIndustryMetaResponseDoc TiktokPopularTrendCountryIndustryMetaParams = TypedDict('TiktokPopularTrendCountryIndustryMetaParams', { '_response_type': NotRequired[ResponseType], @@ -108373,6 +109698,7 @@ class BbbGroup: def local_bbbs(self, **params: Unpack[BbbLocalBbbsParams]) -> BbbLocalBbbsResponse: ... def news(self, **params: Unpack[BbbNewsParams]) -> BbbNewsResponse: ... def news_topics(self, **params: Unpack[BbbNewsTopicsParams]) -> BbbNewsTopicsResponse: ... + def page(self, **params: Unpack[BbbPageParams]) -> BbbPageResponse: ... def regions(self, **params: Unpack[BbbRegionsParams]) -> BbbRegionsResponse: ... def scamtracker_search(self, **params: Unpack[BbbScamtrackerSearchParams]) -> BbbScamtrackerSearchResponse: ... def scamtracker_state_stats(self, **params: Unpack[BbbScamtrackerStateStatsParams]) -> BbbScamtrackerStateStatsResponse: ... @@ -111255,6 +112581,16 @@ class ReutersGroup: def section(self, **params: Unpack[ReutersSectionParams]) -> ReutersSectionResponse: ... def sections(self, **params: Unpack[ReutersSectionsParams]) -> ReutersSectionsResponse: ... +class ReverbGroup: + def categories(self, **params: Unpack[ReverbCategoriesParams]) -> ReverbCategoriesResponse: ... + def listing(self, **params: Unpack[ReverbListingParams]) -> ReverbListingResponse: ... + def makes(self, **params: Unpack[ReverbMakesParams]) -> ReverbMakesResponse: ... + def price_guide(self, **params: Unpack[ReverbPriceGuideParams]) -> ReverbPriceGuideResponse: ... + def price_guide_search(self, **params: Unpack[ReverbPriceGuideSearchParams]) -> ReverbPriceGuideSearchResponse: ... + def search(self, **params: Unpack[ReverbSearchParams]) -> ReverbSearchResponse: ... + def shop(self, **params: Unpack[ReverbShopParams]) -> ReverbShopResponse: ... + def shop_feedback(self, **params: Unpack[ReverbShopFeedbackParams]) -> ReverbShopFeedbackResponse: ... + class RightmoveGroup: def agents(self, **params: Unpack[RightmoveAgentsParams]) -> RightmoveAgentsResponse: ... def agent_branch(self, **params: Unpack[RightmoveAgentBranchParams]) -> RightmoveAgentBranchResponse: ... @@ -112098,8 +113434,13 @@ class ThreadsGroup: def post(self, **params: Unpack[ThreadsPostParams]) -> ThreadsPostResponse: ... def post_replies(self, **params: Unpack[ThreadsPostRepliesParams]) -> ThreadsPostRepliesResponse: ... def profile(self, **params: Unpack[ThreadsProfileParams]) -> ThreadsProfileResponse: ... + def profile_media(self, **params: Unpack[ThreadsProfileMediaParams]) -> ThreadsProfileMediaResponse: ... def profile_posts(self, **params: Unpack[ThreadsProfilePostsParams]) -> ThreadsProfilePostsResponse: ... + def profile_replies(self, **params: Unpack[ThreadsProfileRepliesParams]) -> ThreadsProfileRepliesResponse: ... + def profile_reposts(self, **params: Unpack[ThreadsProfileRepostsParams]) -> ThreadsProfileRepostsResponse: ... + def profile_topics(self, **params: Unpack[ThreadsProfileTopicsParams]) -> ThreadsProfileTopicsResponse: ... def search(self, **params: Unpack[ThreadsSearchParams]) -> ThreadsSearchResponse: ... + def topic_search(self, **params: Unpack[ThreadsTopicSearchParams]) -> ThreadsTopicSearchResponse: ... class TicketmasterGroup: def attraction(self, **params: Unpack[TicketmasterAttractionParams]) -> TicketmasterAttractionResponse: ... @@ -112136,11 +113477,39 @@ class TiffanyCoGroup: class TiktokGroup: def category(self, **params: Unpack[TiktokCategoryParams]) -> TiktokCategoryResponse: ... def video_comments(self, **params: Unpack[TiktokVideoCommentsParams]) -> TiktokVideoCommentsResponse: ... + def creative_center_filters(self, **params: Unpack[TiktokCreativeCenterFiltersParams]) -> TiktokCreativeCenterFiltersResponse: ... def creative_center_hashtags(self, **params: Unpack[TiktokCreativeCenterHashtagsParams]) -> TiktokCreativeCenterHashtagsResponse: ... + def creative_center_top_content(self, **params: Unpack[TiktokCreativeCenterTopContentParams]) -> TiktokCreativeCenterTopContentResponse: ... def creative_center_videos(self, **params: Unpack[TiktokCreativeCenterVideosParams]) -> TiktokCreativeCenterVideosResponse: ... def explore(self, **params: Unpack[TiktokExploreParams]) -> TiktokExploreResponse: ... def challenge(self, **params: Unpack[TiktokChallengeParams]) -> TiktokChallengeResponse: ... def challenge_list(self, **params: Unpack[TiktokChallengeListParams]) -> TiktokChallengeListResponse: ... + def mobile_anchor_list(self, **params: Unpack[TiktokMobileAnchorListParams]) -> TiktokMobileAnchorListResponse: ... + def mobile_comment_replies(self, **params: Unpack[TiktokMobileCommentRepliesParams]) -> TiktokMobileCommentRepliesResponse: ... + def mobile_comments(self, **params: Unpack[TiktokMobileCommentsParams]) -> TiktokMobileCommentsResponse: ... + def mobile_feed(self, **params: Unpack[TiktokMobileFeedParams]) -> TiktokMobileFeedResponse: ... + def mobile_feed_post(self, **params: Unpack[TiktokMobileFeedPostParams]) -> TiktokMobileFeedPostResponse: ... + def mobile_hashtag(self, **params: Unpack[TiktokMobileHashtagParams]) -> TiktokMobileHashtagResponse: ... + def mobile_hashtag_posts(self, **params: Unpack[TiktokMobileHashtagPostsParams]) -> TiktokMobileHashtagPostsResponse: ... + def mobile_hashtags(self, **params: Unpack[TiktokMobileHashtagsParams]) -> TiktokMobileHashtagsResponse: ... + def mobile_live_effects(self, **params: Unpack[TiktokMobileLiveEffectsParams]) -> TiktokMobileLiveEffectsResponse: ... + def mobile_live_gifts(self, **params: Unpack[TiktokMobileLiveGiftsParams]) -> TiktokMobileLiveGiftsResponse: ... + def mobile_live_search(self, **params: Unpack[TiktokMobileLiveSearchParams]) -> TiktokMobileLiveSearchResponse: ... + def mobile_music_beats(self, **params: Unpack[TiktokMobileMusicBeatsParams]) -> TiktokMobileMusicBeatsResponse: ... + def mobile_music_collections(self, **params: Unpack[TiktokMobileMusicCollectionsParams]) -> TiktokMobileMusicCollectionsResponse: ... + def mobile_music_pick(self, **params: Unpack[TiktokMobileMusicPickParams]) -> TiktokMobileMusicPickResponse: ... + def mobile_music_posts(self, **params: Unpack[TiktokMobileMusicPostsParams]) -> TiktokMobileMusicPostsResponse: ... + def mobile_music_related(self, **params: Unpack[TiktokMobileMusicRelatedParams]) -> TiktokMobileMusicRelatedResponse: ... + def mobile_music_trending(self, **params: Unpack[TiktokMobileMusicTrendingParams]) -> TiktokMobileMusicTrendingResponse: ... + def mobile_search(self, **params: Unpack[TiktokMobileSearchParams]) -> TiktokMobileSearchResponse: ... + def mobile_search_music(self, **params: Unpack[TiktokMobileSearchMusicParams]) -> TiktokMobileSearchMusicResponse: ... + def mobile_search_place(self, **params: Unpack[TiktokMobileSearchPlaceParams]) -> TiktokMobileSearchPlaceResponse: ... + def mobile_search_pre_info(self, **params: Unpack[TiktokMobileSearchPreInfoParams]) -> TiktokMobileSearchPreInfoResponse: ... + def mobile_search_sug(self, **params: Unpack[TiktokMobileSearchSugParams]) -> TiktokMobileSearchSugResponse: ... + def mobile_search_tabs(self, **params: Unpack[TiktokMobileSearchTabsParams]) -> TiktokMobileSearchTabsResponse: ... + def mobile_search_user(self, **params: Unpack[TiktokMobileSearchUserParams]) -> TiktokMobileSearchUserResponse: ... + def mobile_trending_categories(self, **params: Unpack[TiktokMobileTrendingCategoriesParams]) -> TiktokMobileTrendingCategoriesResponse: ... + def mobile_trending_effects(self, **params: Unpack[TiktokMobileTrendingEffectsParams]) -> TiktokMobileTrendingEffectsResponse: ... def popular_trend_country_industry_meta(self, **params: Unpack[TiktokPopularTrendCountryIndustryMetaParams]) -> TiktokPopularTrendCountryIndustryMetaResponse: ... def post(self, **params: Unpack[TiktokPostParams]) -> TiktokPostResponse: ... def profile_post(self, **params: Unpack[TiktokProfilePostParams]) -> TiktokProfilePostResponse: ... @@ -112954,6 +114323,7 @@ OperationId = Literal[ 'bbb-local-bbbs', 'bbb-news', 'bbb-news-topics', + 'bbb-page', 'bbb-regions', 'bbb-scamtracker-search', 'bbb-scamtracker-state-stats', @@ -115250,6 +116620,14 @@ OperationId = Literal[ 'reuters-news', 'reuters-section', 'reuters-sections', + 'reverb-categories', + 'reverb-listing', + 'reverb-makes', + 'reverb-price-guide', + 'reverb-price-guide-search', + 'reverb-search', + 'reverb-shop', + 'reverb-shop-feedback', 'rightmove-agents', 'rightmove-agent-branch', 'rightmove-autocomplete', @@ -115938,8 +117316,13 @@ OperationId = Literal[ 'threads-post', 'threads-post-replies', 'threads-profile', + 'threads-profile-media', 'threads-profile-posts', + 'threads-profile-replies', + 'threads-profile-reposts', + 'threads-profile-topics', 'threads-search', + 'threads-topic-search', 'ticketmaster-attraction', 'ticketmaster-attraction-events', 'ticketmaster-attraction-related', @@ -115968,11 +117351,39 @@ OperationId = Literal[ 'tiffany-suggest', 'tiktok-category', 'tiktok-video-comments', + 'tiktok-creative-center-filters', 'tiktok-creative-center-hashtags', + 'tiktok-creative-center-top-content', 'tiktok-creative-center-videos', 'tiktok-explore', 'tiktok-challenge', 'tiktok-challenge-list', + 'tiktok-mobile-anchor-list', + 'tiktok-mobile-comment-replies', + 'tiktok-mobile-comments', + 'tiktok-mobile-feed', + 'tiktok-mobile-feed-post', + 'tiktok-mobile-hashtag', + 'tiktok-mobile-hashtag-posts', + 'tiktok-mobile-hashtags', + 'tiktok-mobile-live-effects', + 'tiktok-mobile-live-gifts', + 'tiktok-mobile-live-search', + 'tiktok-mobile-music-beats', + 'tiktok-mobile-music-collections', + 'tiktok-mobile-music-pick', + 'tiktok-mobile-music-posts', + 'tiktok-mobile-music-related', + 'tiktok-mobile-music-trending', + 'tiktok-mobile-search', + 'tiktok-mobile-search-music', + 'tiktok-mobile-search-place', + 'tiktok-mobile-search-pre-info', + 'tiktok-mobile-search-sug', + 'tiktok-mobile-search-tabs', + 'tiktok-mobile-search-user', + 'tiktok-mobile-trending-categories', + 'tiktok-mobile-trending-effects', 'tiktok-popular-trend-country-industry-meta', 'tiktok-post', 'tiktok-profile-post', @@ -116741,6 +118152,7 @@ class CrawloraClient: resy: ResyGroup retail_me_not: RetailMeNotGroup reuters: ReutersGroup + reverb: ReverbGroup rightmove: RightmoveGroup rnz: RnzGroup roblox: RobloxGroup @@ -119772,6 +121184,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> BbbNewsTopicsResponse: ... @overload + def operation( + self, + operation_id: Literal['bbb-page'], + params: BbbPageParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> BbbPageResponse: ... + @overload def operation( self, operation_id: Literal['bbb-regions'], @@ -147324,6 +148748,102 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> ReutersSectionsResponse: ... @overload + def operation( + self, + operation_id: Literal['reverb-categories'], + params: ReverbCategoriesParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbCategoriesResponse: ... + @overload + def operation( + self, + operation_id: Literal['reverb-listing'], + params: ReverbListingParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbListingResponse: ... + @overload + def operation( + self, + operation_id: Literal['reverb-makes'], + params: ReverbMakesParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbMakesResponse: ... + @overload + def operation( + self, + operation_id: Literal['reverb-price-guide'], + params: ReverbPriceGuideParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbPriceGuideResponse: ... + @overload + def operation( + self, + operation_id: Literal['reverb-price-guide-search'], + params: ReverbPriceGuideSearchParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbPriceGuideSearchResponse: ... + @overload + def operation( + self, + operation_id: Literal['reverb-search'], + params: ReverbSearchParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbSearchResponse: ... + @overload + def operation( + self, + operation_id: Literal['reverb-shop'], + params: ReverbShopParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbShopResponse: ... + @overload + def operation( + self, + operation_id: Literal['reverb-shop-feedback'], + params: ReverbShopFeedbackParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbShopFeedbackResponse: ... + @overload def operation( self, operation_id: Literal['rightmove-agents'], @@ -155580,6 +157100,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> ThreadsProfileResponse: ... @overload + def operation( + self, + operation_id: Literal['threads-profile-media'], + params: ThreadsProfileMediaParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ThreadsProfileMediaResponse: ... + @overload def operation( self, operation_id: Literal['threads-profile-posts'], @@ -155592,6 +157124,42 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> ThreadsProfilePostsResponse: ... @overload + def operation( + self, + operation_id: Literal['threads-profile-replies'], + params: ThreadsProfileRepliesParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ThreadsProfileRepliesResponse: ... + @overload + def operation( + self, + operation_id: Literal['threads-profile-reposts'], + params: ThreadsProfileRepostsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ThreadsProfileRepostsResponse: ... + @overload + def operation( + self, + operation_id: Literal['threads-profile-topics'], + params: ThreadsProfileTopicsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ThreadsProfileTopicsResponse: ... + @overload def operation( self, operation_id: Literal['threads-search'], @@ -155604,6 +157172,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> ThreadsSearchResponse: ... @overload + def operation( + self, + operation_id: Literal['threads-topic-search'], + params: ThreadsTopicSearchParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ThreadsTopicSearchResponse: ... + @overload def operation( self, operation_id: Literal['ticketmaster-attraction'], @@ -155940,6 +157520,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> TiktokVideoCommentsResponse: ... @overload + def operation( + self, + operation_id: Literal['tiktok-creative-center-filters'], + params: TiktokCreativeCenterFiltersParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokCreativeCenterFiltersResponse: ... + @overload def operation( self, operation_id: Literal['tiktok-creative-center-hashtags'], @@ -155952,6 +157544,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> TiktokCreativeCenterHashtagsResponse: ... @overload + def operation( + self, + operation_id: Literal['tiktok-creative-center-top-content'], + params: TiktokCreativeCenterTopContentParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokCreativeCenterTopContentResponse: ... + @overload def operation( self, operation_id: Literal['tiktok-creative-center-videos'], @@ -156000,6 +157604,318 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> TiktokChallengeListResponse: ... @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-anchor-list'], + params: TiktokMobileAnchorListParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileAnchorListResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-comment-replies'], + params: TiktokMobileCommentRepliesParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileCommentRepliesResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-comments'], + params: TiktokMobileCommentsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileCommentsResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-feed'], + params: TiktokMobileFeedParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileFeedResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-feed-post'], + params: TiktokMobileFeedPostParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileFeedPostResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-hashtag'], + params: TiktokMobileHashtagParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileHashtagResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-hashtag-posts'], + params: TiktokMobileHashtagPostsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileHashtagPostsResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-hashtags'], + params: TiktokMobileHashtagsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileHashtagsResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-live-effects'], + params: TiktokMobileLiveEffectsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileLiveEffectsResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-live-gifts'], + params: TiktokMobileLiveGiftsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileLiveGiftsResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-live-search'], + params: TiktokMobileLiveSearchParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileLiveSearchResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-music-beats'], + params: TiktokMobileMusicBeatsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicBeatsResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-music-collections'], + params: TiktokMobileMusicCollectionsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicCollectionsResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-music-pick'], + params: TiktokMobileMusicPickParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicPickResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-music-posts'], + params: TiktokMobileMusicPostsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicPostsResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-music-related'], + params: TiktokMobileMusicRelatedParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicRelatedResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-music-trending'], + params: TiktokMobileMusicTrendingParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicTrendingResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-search'], + params: TiktokMobileSearchParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-search-music'], + params: TiktokMobileSearchMusicParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchMusicResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-search-place'], + params: TiktokMobileSearchPlaceParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchPlaceResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-search-pre-info'], + params: TiktokMobileSearchPreInfoParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchPreInfoResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-search-sug'], + params: TiktokMobileSearchSugParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchSugResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-search-tabs'], + params: TiktokMobileSearchTabsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchTabsResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-search-user'], + params: TiktokMobileSearchUserParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchUserResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-trending-categories'], + params: TiktokMobileTrendingCategoriesParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileTrendingCategoriesResponse: ... + @overload + def operation( + self, + operation_id: Literal['tiktok-mobile-trending-effects'], + params: TiktokMobileTrendingEffectsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileTrendingEffectsResponse: ... + @overload def operation( self, operation_id: Literal['tiktok-popular-trend-country-industry-meta'], @@ -164124,6 +166040,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> BbbNewsTopicsResponse: ... @overload + def request( + self, + operation_id: Literal['bbb-page'], + params: BbbPageParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> BbbPageResponse: ... + @overload def request( self, operation_id: Literal['bbb-regions'], @@ -191676,6 +193604,102 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> ReutersSectionsResponse: ... @overload + def request( + self, + operation_id: Literal['reverb-categories'], + params: ReverbCategoriesParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbCategoriesResponse: ... + @overload + def request( + self, + operation_id: Literal['reverb-listing'], + params: ReverbListingParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbListingResponse: ... + @overload + def request( + self, + operation_id: Literal['reverb-makes'], + params: ReverbMakesParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbMakesResponse: ... + @overload + def request( + self, + operation_id: Literal['reverb-price-guide'], + params: ReverbPriceGuideParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbPriceGuideResponse: ... + @overload + def request( + self, + operation_id: Literal['reverb-price-guide-search'], + params: ReverbPriceGuideSearchParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbPriceGuideSearchResponse: ... + @overload + def request( + self, + operation_id: Literal['reverb-search'], + params: ReverbSearchParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbSearchResponse: ... + @overload + def request( + self, + operation_id: Literal['reverb-shop'], + params: ReverbShopParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbShopResponse: ... + @overload + def request( + self, + operation_id: Literal['reverb-shop-feedback'], + params: ReverbShopFeedbackParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ReverbShopFeedbackResponse: ... + @overload def request( self, operation_id: Literal['rightmove-agents'], @@ -199932,6 +201956,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> ThreadsProfileResponse: ... @overload + def request( + self, + operation_id: Literal['threads-profile-media'], + params: ThreadsProfileMediaParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ThreadsProfileMediaResponse: ... + @overload def request( self, operation_id: Literal['threads-profile-posts'], @@ -199944,6 +201980,42 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> ThreadsProfilePostsResponse: ... @overload + def request( + self, + operation_id: Literal['threads-profile-replies'], + params: ThreadsProfileRepliesParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ThreadsProfileRepliesResponse: ... + @overload + def request( + self, + operation_id: Literal['threads-profile-reposts'], + params: ThreadsProfileRepostsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ThreadsProfileRepostsResponse: ... + @overload + def request( + self, + operation_id: Literal['threads-profile-topics'], + params: ThreadsProfileTopicsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ThreadsProfileTopicsResponse: ... + @overload def request( self, operation_id: Literal['threads-search'], @@ -199956,6 +202028,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> ThreadsSearchResponse: ... @overload + def request( + self, + operation_id: Literal['threads-topic-search'], + params: ThreadsTopicSearchParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> ThreadsTopicSearchResponse: ... + @overload def request( self, operation_id: Literal['ticketmaster-attraction'], @@ -200292,6 +202376,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> TiktokVideoCommentsResponse: ... @overload + def request( + self, + operation_id: Literal['tiktok-creative-center-filters'], + params: TiktokCreativeCenterFiltersParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokCreativeCenterFiltersResponse: ... + @overload def request( self, operation_id: Literal['tiktok-creative-center-hashtags'], @@ -200304,6 +202400,18 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> TiktokCreativeCenterHashtagsResponse: ... @overload + def request( + self, + operation_id: Literal['tiktok-creative-center-top-content'], + params: TiktokCreativeCenterTopContentParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokCreativeCenterTopContentResponse: ... + @overload def request( self, operation_id: Literal['tiktok-creative-center-videos'], @@ -200352,6 +202460,318 @@ class CrawloraClient: retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., ) -> TiktokChallengeListResponse: ... @overload + def request( + self, + operation_id: Literal['tiktok-mobile-anchor-list'], + params: TiktokMobileAnchorListParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileAnchorListResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-comment-replies'], + params: TiktokMobileCommentRepliesParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileCommentRepliesResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-comments'], + params: TiktokMobileCommentsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileCommentsResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-feed'], + params: TiktokMobileFeedParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileFeedResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-feed-post'], + params: TiktokMobileFeedPostParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileFeedPostResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-hashtag'], + params: TiktokMobileHashtagParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileHashtagResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-hashtag-posts'], + params: TiktokMobileHashtagPostsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileHashtagPostsResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-hashtags'], + params: TiktokMobileHashtagsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileHashtagsResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-live-effects'], + params: TiktokMobileLiveEffectsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileLiveEffectsResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-live-gifts'], + params: TiktokMobileLiveGiftsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileLiveGiftsResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-live-search'], + params: TiktokMobileLiveSearchParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileLiveSearchResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-music-beats'], + params: TiktokMobileMusicBeatsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicBeatsResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-music-collections'], + params: TiktokMobileMusicCollectionsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicCollectionsResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-music-pick'], + params: TiktokMobileMusicPickParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicPickResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-music-posts'], + params: TiktokMobileMusicPostsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicPostsResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-music-related'], + params: TiktokMobileMusicRelatedParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicRelatedResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-music-trending'], + params: TiktokMobileMusicTrendingParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileMusicTrendingResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-search'], + params: TiktokMobileSearchParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-search-music'], + params: TiktokMobileSearchMusicParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchMusicResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-search-place'], + params: TiktokMobileSearchPlaceParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchPlaceResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-search-pre-info'], + params: TiktokMobileSearchPreInfoParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchPreInfoResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-search-sug'], + params: TiktokMobileSearchSugParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchSugResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-search-tabs'], + params: TiktokMobileSearchTabsParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchTabsResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-search-user'], + params: TiktokMobileSearchUserParams, + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileSearchUserResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-trending-categories'], + params: TiktokMobileTrendingCategoriesParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileTrendingCategoriesResponse: ... + @overload + def request( + self, + operation_id: Literal['tiktok-mobile-trending-effects'], + params: TiktokMobileTrendingEffectsParams = ..., + *, + response_type: ResponseType = ..., + timeout: float | None = ..., + headers: Mapping[str, str] | None = ..., + retries: int | None = ..., + retry_predicate: Callable[[int, BaseException | None], bool] | None = ..., + ) -> TiktokMobileTrendingEffectsResponse: ... + @overload def request( self, operation_id: Literal['tiktok-popular-trend-country-industry-meta'], diff --git a/crawlora/operations.py b/crawlora/operations.py index 5a621f8..b1f7ce8 100644 --- a/crawlora/operations.py +++ b/crawlora/operations.py @@ -3617,6 +3617,17 @@ 'produces': ['application/json'], 'queryParams': [{'in': 'query', 'name': 'url', 'required': True, 'type': 'string'}], 'security': ['ApiKeyAuth']}, + 'bbb-page': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': [], + 'formParams': [], + 'id': 'bbb-page', + 'method': 'GET', + 'path': '/bbb/page', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'url', 'required': True, 'type': 'string'}], + 'security': ['ApiKeyAuth']}, 'bbb-regions': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], @@ -11785,6 +11796,7 @@ 'pathParams': [], 'produces': ['application/json'], 'queryParams': [{'enum': ['country', + 'address_country', 'category', 'state', 'city', @@ -11806,6 +11818,10 @@ 'in': 'query', 'name': 'country', 'type': 'string'}, + {'enum': ['us', 'ca'], + 'in': 'query', + 'name': 'address_country', + 'type': 'string'}, {'in': 'query', 'name': 'state', 'type': 'string'}, {'in': 'query', 'name': 'city', 'type': 'string'}, {'enum': ['A+', @@ -11859,6 +11875,10 @@ 'in': 'query', 'name': 'country', 'type': 'string'}, + {'enum': ['us', 'ca'], + 'in': 'query', + 'name': 'address_country', + 'type': 'string'}, {'in': 'query', 'name': 'state', 'type': 'string'}, {'in': 'query', 'name': 'city', 'type': 'string'}, {'enum': ['A+', @@ -50322,6 +50342,135 @@ 'produces': ['application/json'], 'queryParams': [], 'security': ['ApiKeyAuth']}, + 'reverb-categories': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'reverb-categories', + 'method': 'GET', + 'path': '/reverb/categories', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'reverb-listing': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'reverb-listing', + 'method': 'GET', + 'path': '/reverb/listing', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'id', 'required': True, 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'reverb-makes': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'reverb-makes', + 'method': 'GET', + 'path': '/reverb/makes', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'reverb-price-guide': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'reverb-price-guide', + 'method': 'GET', + 'path': '/reverb/price-guide', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'slug', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'canonical_product_id', 'type': 'string'}, + {'enum': ['mint', 'excellent', 'very-good', 'good', 'fair', 'poor'], + 'in': 'query', + 'name': 'condition', + 'type': 'string'}, + {'enum': ['months_6', 'years_1', 'years_2'], + 'in': 'query', + 'name': 'range', + 'type': 'string'}, + {'in': 'query', 'name': 'limit', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'reverb-price-guide-search': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'reverb-price-guide-search', + 'method': 'GET', + 'path': '/reverb/price-guide-search', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'query', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'limit', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'reverb-search': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'reverb-search', + 'method': 'GET', + 'paginatable': True, + 'path': '/reverb/search', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'query', 'type': 'string'}, + {'in': 'query', 'name': 'category', 'type': 'string'}, + {'enum': ['accessories', + 'acoustic-guitars', + 'amps', + 'band-and-orchestra', + 'bass-guitars', + 'dj-and-lighting-gear', + 'drums-and-percussion', + 'effects-and-pedals', + 'electric-guitars', + 'folk-instruments', + 'home-audio', + 'keyboards-and-synths', + 'parts', + 'pro-audio'], + 'in': 'query', + 'name': 'product_type', + 'type': 'string'}, + {'in': 'query', 'name': 'make', 'type': 'string'}, + {'in': 'query', 'name': 'min_price', 'type': 'number'}, + {'in': 'query', 'name': 'max_price', 'type': 'number'}, + {'in': 'query', 'name': 'page', 'type': 'integer'}, + {'in': 'query', 'name': 'limit', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'reverb-shop': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'reverb-shop', + 'method': 'GET', + 'paginatable': True, + 'path': '/reverb/shop', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'slug', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'query', 'type': 'string'}, + {'in': 'query', 'name': 'page', 'type': 'integer'}, + {'in': 'query', 'name': 'limit', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'reverb-shop-feedback': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'reverb-shop-feedback', + 'method': 'GET', + 'paginatable': True, + 'path': '/reverb/shop-feedback', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'slug', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'page', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, 'rightmove-agent-branch': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], @@ -62380,6 +62529,17 @@ 'produces': ['application/json'], 'queryParams': [], 'security': ['ApiKeyAuth']}, + 'threads-profile-media': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': [], + 'formParams': [], + 'id': 'threads-profile-media', + 'method': 'GET', + 'path': '/threads/profile/{username}/media', + 'pathParams': ['username'], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, 'threads-profile-posts': {'bodyParam': None, 'bodyRequired': False, 'consumes': [], @@ -62393,6 +62553,39 @@ 'produces': ['application/json'], 'queryParams': [{'in': 'query', 'name': 'cursor', 'type': 'string'}], 'security': ['ApiKeyAuth']}, + 'threads-profile-replies': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': [], + 'formParams': [], + 'id': 'threads-profile-replies', + 'method': 'GET', + 'path': '/threads/profile/{username}/replies', + 'pathParams': ['username'], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'threads-profile-reposts': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': [], + 'formParams': [], + 'id': 'threads-profile-reposts', + 'method': 'GET', + 'path': '/threads/profile/{username}/reposts', + 'pathParams': ['username'], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'threads-profile-topics': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': [], + 'formParams': [], + 'id': 'threads-profile-topics', + 'method': 'GET', + 'path': '/threads/profile/{username}/topics', + 'pathParams': ['username'], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, 'threads-search': {'bodyParam': None, 'bodyRequired': False, 'consumes': [], @@ -62402,8 +62595,21 @@ 'path': '/threads/search', 'pathParams': [], 'produces': ['application/json'], - 'queryParams': [{'in': 'query', 'name': 'q', 'required': True, 'type': 'string'}], + 'queryParams': [{'in': 'query', 'name': 'q', 'required': True, 'type': 'string'}, + {'enum': ['top', 'recent'], 'in': 'query', 'name': 'sort', 'type': 'string'}], 'security': ['ApiKeyAuth']}, + 'threads-topic-search': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': [], + 'formParams': [], + 'id': 'threads-topic-search', + 'method': 'GET', + 'path': '/threads/search/topics', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'q', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'tag_id', 'required': True, 'type': 'string'}], + 'security': ['ApiKeyAuth']}, 'ticketmaster-attraction': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], @@ -62806,6 +63012,17 @@ 'queryParams': [{'in': 'query', 'name': 'id', 'required': True, 'type': 'string'}, {'in': 'query', 'name': 'cursor', 'type': 'integer'}], 'security': ['ApiKeyAuth']}, + 'tiktok-creative-center-filters': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-creative-center-filters', + 'method': 'GET', + 'path': '/tiktok/creative-center/filters', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, 'tiktok-creative-center-hashtags': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], @@ -62819,11 +63036,43 @@ 'name': 'country_code', 'required': True, 'type': 'string'}, - {'enum': ['7', '30'], + {'enum': ['7', '30', '90'], 'in': 'query', 'name': 'period', - 'type': 'integer'}], + 'type': 'integer'}, + {'enum': ['10000000000', + '11000000000', + '12000000000', + '13000000000', + '14000000000', + '15000000000', + '17000000000', + '18000000000', + '19000000000', + '21000000000', + '22000000000', + '23000000000', + '24000000000', + '25000000000', + '26000000000', + '27000000000', + '28000000000', + '29000000000'], + 'in': 'query', + 'name': 'industry_id', + 'type': 'string'}], 'security': ['ApiKeyAuth']}, + 'tiktok-creative-center-top-content': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-creative-center-top-content', + 'method': 'GET', + 'path': '/tiktok/creative-center/top-content', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'include_comments', 'type': 'boolean'}], + 'security': ['ApiKeyAuth']}, 'tiktok-creative-center-videos': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], @@ -62846,6 +63095,11 @@ 'name': 'sort_by', 'type': 'string'}, {'in': 'query', 'name': 'content_label_id', 'type': 'string'}, + {'collectionFormat': 'multi', + 'enum': ['11002', '11003', '11010', '11013', '11015'], + 'in': 'query', + 'name': 'content_label_ids', + 'type': 'array'}, {'in': 'query', 'name': 'organic_only', 'type': 'boolean'}], 'security': ['ApiKeyAuth']}, 'tiktok-explore': {'bodyParam': None, @@ -62859,6 +63113,362 @@ 'produces': ['application/json'], 'queryParams': [], 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-anchor-list': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-anchor-list', + 'method': 'GET', + 'path': '/tiktok/mobile/anchor/list', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-comment-replies': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-comment-replies', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/comment/replies', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', + 'name': 'aweme_id', + 'required': True, + 'type': 'string'}, + {'in': 'query', + 'name': 'comment_id', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-comments': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-comments', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/comments', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'aweme_id', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-feed': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-feed', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/feed', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-feed-post': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-feed-post', + 'method': 'GET', + 'path': '/tiktok/mobile/feed/post', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-hashtag': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-hashtag', + 'method': 'GET', + 'path': '/tiktok/mobile/hashtag', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'name', 'required': True, 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-hashtag-posts': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-hashtag-posts', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/hashtag/posts', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'name', 'required': True, 'type': 'string'}, + {'enum': ['fresh', 'popular'], + 'in': 'query', + 'name': 'sort', + 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-hashtags': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-hashtags', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/hashtags', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'keyword', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-live-effects': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-live-effects', + 'method': 'GET', + 'path': '/tiktok/mobile/live/effects', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-live-gifts': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-live-gifts', + 'method': 'GET', + 'path': '/tiktok/mobile/live/gifts', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-live-search': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-live-search', + 'method': 'GET', + 'path': '/tiktok/mobile/live/search', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'keyword', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-music-beats': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-music-beats', + 'method': 'GET', + 'path': '/tiktok/mobile/music/beats', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'count', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-music-collections': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-music-collections', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/music/collections', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-music-pick': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-music-pick', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/music/pick', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-music-posts': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-music-posts', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/music/posts', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'music_id', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-music-related': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-music-related', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/music/related', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', + 'name': 'aweme_id', + 'required': True, + 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-music-trending': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-music-trending', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/music/trending', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-search': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-search', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/search', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'keyword', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'offset', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-search-music': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-search-music', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/search/music', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'keyword', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'offset', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-search-place': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-search-place', + 'method': 'GET', + 'path': '/tiktok/mobile/search/place', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'keyword', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-search-pre-info': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-search-pre-info', + 'method': 'GET', + 'path': '/tiktok/mobile/search/pre-info', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'keyword', 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-search-sug': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-search-sug', + 'method': 'GET', + 'path': '/tiktok/mobile/search/sug', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'keyword', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-search-tabs': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'formParams': [], + 'id': 'tiktok-mobile-search-tabs', + 'method': 'GET', + 'path': '/tiktok/mobile/search/tabs', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'keyword', 'required': True, 'type': 'string'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-search-user': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-search-user', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/search/user', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'keyword', 'required': True, 'type': 'string'}, + {'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-trending-categories': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-trending-categories', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/trending/categories', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, + 'tiktok-mobile-trending-effects': {'bodyParam': None, + 'bodyRequired': False, + 'consumes': ['application/json'], + 'cursorParams': ['cursor'], + 'formParams': [], + 'id': 'tiktok-mobile-trending-effects', + 'method': 'GET', + 'paginatable': True, + 'path': '/tiktok/mobile/trending/effects', + 'pathParams': [], + 'produces': ['application/json'], + 'queryParams': [{'in': 'query', 'name': 'count', 'type': 'integer'}, + {'in': 'query', 'name': 'cursor', 'type': 'integer'}], + 'security': ['ApiKeyAuth']}, 'tiktok-popular-trend-country-industry-meta': {'bodyParam': None, 'bodyRequired': False, 'consumes': ['application/json'], @@ -70090,6 +70700,7 @@ 'local_bbbs': 'bbb-local-bbbs', 'news': 'bbb-news', 'news_topics': 'bbb-news-topics', + 'page': 'bbb-page', 'regions': 'bbb-regions', 'scamtracker_detail': 'bbb-scamtracker-detail', 'scamtracker_search': 'bbb-scamtracker-search', @@ -72330,6 +72941,14 @@ 'news': 'reuters-news', 'section': 'reuters-section', 'sections': 'reuters-sections'}, + 'reverb': {'categories': 'reverb-categories', + 'listing': 'reverb-listing', + 'makes': 'reverb-makes', + 'price_guide': 'reverb-price-guide', + 'price_guide_search': 'reverb-price-guide-search', + 'search': 'reverb-search', + 'shop': 'reverb-shop', + 'shop_feedback': 'reverb-shop-feedback'}, 'rightmove': {'agent_branch': 'rightmove-agent-branch', 'agents': 'rightmove-agents', 'autocomplete': 'rightmove-autocomplete', @@ -73058,8 +73677,13 @@ 'threads': {'post': 'threads-post', 'post_replies': 'threads-post-replies', 'profile': 'threads-profile', + 'profile_media': 'threads-profile-media', 'profile_posts': 'threads-profile-posts', - 'search': 'threads-search'}, + 'profile_replies': 'threads-profile-replies', + 'profile_reposts': 'threads-profile-reposts', + 'profile_topics': 'threads-profile-topics', + 'search': 'threads-search', + 'topic_search': 'threads-topic-search'}, 'ticket_web': {'ticketweb_event': 'ticketweb-event', 'ticketweb_search': 'ticketweb-search', 'ticketweb_venue': 'ticketweb-venue'}, @@ -73089,9 +73713,37 @@ 'tiktok': {'category': 'tiktok-category', 'challenge': 'tiktok-challenge', 'challenge_list': 'tiktok-challenge-list', + 'creative_center_filters': 'tiktok-creative-center-filters', 'creative_center_hashtags': 'tiktok-creative-center-hashtags', + 'creative_center_top_content': 'tiktok-creative-center-top-content', 'creative_center_videos': 'tiktok-creative-center-videos', 'explore': 'tiktok-explore', + 'mobile_anchor_list': 'tiktok-mobile-anchor-list', + 'mobile_comment_replies': 'tiktok-mobile-comment-replies', + 'mobile_comments': 'tiktok-mobile-comments', + 'mobile_feed': 'tiktok-mobile-feed', + 'mobile_feed_post': 'tiktok-mobile-feed-post', + 'mobile_hashtag': 'tiktok-mobile-hashtag', + 'mobile_hashtag_posts': 'tiktok-mobile-hashtag-posts', + 'mobile_hashtags': 'tiktok-mobile-hashtags', + 'mobile_live_effects': 'tiktok-mobile-live-effects', + 'mobile_live_gifts': 'tiktok-mobile-live-gifts', + 'mobile_live_search': 'tiktok-mobile-live-search', + 'mobile_music_beats': 'tiktok-mobile-music-beats', + 'mobile_music_collections': 'tiktok-mobile-music-collections', + 'mobile_music_pick': 'tiktok-mobile-music-pick', + 'mobile_music_posts': 'tiktok-mobile-music-posts', + 'mobile_music_related': 'tiktok-mobile-music-related', + 'mobile_music_trending': 'tiktok-mobile-music-trending', + 'mobile_search': 'tiktok-mobile-search', + 'mobile_search_music': 'tiktok-mobile-search-music', + 'mobile_search_place': 'tiktok-mobile-search-place', + 'mobile_search_pre_info': 'tiktok-mobile-search-pre-info', + 'mobile_search_sug': 'tiktok-mobile-search-sug', + 'mobile_search_tabs': 'tiktok-mobile-search-tabs', + 'mobile_search_user': 'tiktok-mobile-search-user', + 'mobile_trending_categories': 'tiktok-mobile-trending-categories', + 'mobile_trending_effects': 'tiktok-mobile-trending-effects', 'popular_trend_country_industry_meta': 'tiktok-popular-trend-country-industry-meta', 'post': 'tiktok-post', 'profile': 'tiktok-profile', @@ -73507,7 +74159,7 @@ 'restaurant_menu': 'zomato-restaurant-menu', 'search': 'zomato-search'}} -OPERATION_COUNT = 3695 +OPERATION_COUNT = 3737 class OperationId: ABC_NEWS_ABCNEWS_ARTICLE = 'abcnews-article' @@ -73729,6 +74381,7 @@ class OperationId: BBB_LOCAL_BBBS = 'bbb-local-bbbs' BBB_NEWS = 'bbb-news' BBB_NEWS_TOPICS = 'bbb-news-topics' + BBB_PAGE = 'bbb-page' BBB_REGIONS = 'bbb-regions' BBB_SCAMTRACKER_DETAIL = 'bbb-scamtracker-detail' BBB_SCAMTRACKER_SEARCH = 'bbb-scamtracker-search' @@ -75998,6 +76651,14 @@ class OperationId: REUTERS_NEWS = 'reuters-news' REUTERS_SECTION = 'reuters-section' REUTERS_SECTIONS = 'reuters-sections' + REVERB_CATEGORIES = 'reverb-categories' + REVERB_LISTING = 'reverb-listing' + REVERB_MAKES = 'reverb-makes' + REVERB_PRICE_GUIDE = 'reverb-price-guide' + REVERB_PRICE_GUIDE_SEARCH = 'reverb-price-guide-search' + REVERB_SEARCH = 'reverb-search' + REVERB_SHOP = 'reverb-shop' + REVERB_SHOP_FEEDBACK = 'reverb-shop-feedback' RIGHTMOVE_AGENT_BRANCH = 'rightmove-agent-branch' RIGHTMOVE_AGENTS = 'rightmove-agents' RIGHTMOVE_AUTOCOMPLETE = 'rightmove-autocomplete' @@ -76733,8 +77394,13 @@ class OperationId: THREADS_POST = 'threads-post' THREADS_POST_REPLIES = 'threads-post-replies' THREADS_PROFILE = 'threads-profile' + THREADS_PROFILE_MEDIA = 'threads-profile-media' THREADS_PROFILE_POSTS = 'threads-profile-posts' + THREADS_PROFILE_REPLIES = 'threads-profile-replies' + THREADS_PROFILE_REPOSTS = 'threads-profile-reposts' + THREADS_PROFILE_TOPICS = 'threads-profile-topics' THREADS_SEARCH = 'threads-search' + THREADS_TOPIC_SEARCH = 'threads-topic-search' TICKET_WEB_TICKETWEB_EVENT = 'ticketweb-event' TICKET_WEB_TICKETWEB_SEARCH = 'ticketweb-search' TICKET_WEB_TICKETWEB_VENUE = 'ticketweb-venue' @@ -76764,9 +77430,37 @@ class OperationId: TIKTOK_CATEGORY = 'tiktok-category' TIKTOK_CHALLENGE = 'tiktok-challenge' TIKTOK_CHALLENGE_LIST = 'tiktok-challenge-list' + TIKTOK_CREATIVE_CENTER_FILTERS = 'tiktok-creative-center-filters' TIKTOK_CREATIVE_CENTER_HASHTAGS = 'tiktok-creative-center-hashtags' + TIKTOK_CREATIVE_CENTER_TOP_CONTENT = 'tiktok-creative-center-top-content' TIKTOK_CREATIVE_CENTER_VIDEOS = 'tiktok-creative-center-videos' TIKTOK_EXPLORE = 'tiktok-explore' + TIKTOK_MOBILE_ANCHOR_LIST = 'tiktok-mobile-anchor-list' + TIKTOK_MOBILE_COMMENT_REPLIES = 'tiktok-mobile-comment-replies' + TIKTOK_MOBILE_COMMENTS = 'tiktok-mobile-comments' + TIKTOK_MOBILE_FEED = 'tiktok-mobile-feed' + TIKTOK_MOBILE_FEED_POST = 'tiktok-mobile-feed-post' + TIKTOK_MOBILE_HASHTAG = 'tiktok-mobile-hashtag' + TIKTOK_MOBILE_HASHTAG_POSTS = 'tiktok-mobile-hashtag-posts' + TIKTOK_MOBILE_HASHTAGS = 'tiktok-mobile-hashtags' + TIKTOK_MOBILE_LIVE_EFFECTS = 'tiktok-mobile-live-effects' + TIKTOK_MOBILE_LIVE_GIFTS = 'tiktok-mobile-live-gifts' + TIKTOK_MOBILE_LIVE_SEARCH = 'tiktok-mobile-live-search' + TIKTOK_MOBILE_MUSIC_BEATS = 'tiktok-mobile-music-beats' + TIKTOK_MOBILE_MUSIC_COLLECTIONS = 'tiktok-mobile-music-collections' + TIKTOK_MOBILE_MUSIC_PICK = 'tiktok-mobile-music-pick' + TIKTOK_MOBILE_MUSIC_POSTS = 'tiktok-mobile-music-posts' + TIKTOK_MOBILE_MUSIC_RELATED = 'tiktok-mobile-music-related' + TIKTOK_MOBILE_MUSIC_TRENDING = 'tiktok-mobile-music-trending' + TIKTOK_MOBILE_SEARCH = 'tiktok-mobile-search' + TIKTOK_MOBILE_SEARCH_MUSIC = 'tiktok-mobile-search-music' + TIKTOK_MOBILE_SEARCH_PLACE = 'tiktok-mobile-search-place' + TIKTOK_MOBILE_SEARCH_PRE_INFO = 'tiktok-mobile-search-pre-info' + TIKTOK_MOBILE_SEARCH_SUG = 'tiktok-mobile-search-sug' + TIKTOK_MOBILE_SEARCH_TABS = 'tiktok-mobile-search-tabs' + TIKTOK_MOBILE_SEARCH_USER = 'tiktok-mobile-search-user' + TIKTOK_MOBILE_TRENDING_CATEGORIES = 'tiktok-mobile-trending-categories' + TIKTOK_MOBILE_TRENDING_EFFECTS = 'tiktok-mobile-trending-effects' TIKTOK_POPULAR_TREND_COUNTRY_INDUSTRY_META = 'tiktok-popular-trend-country-industry-meta' TIKTOK_POST = 'tiktok-post' TIKTOK_PROFILE = 'tiktok-profile' diff --git a/docs/operations.md b/docs/operations.md index eaa8ca3..c71d54f 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: `3695` +Total operations: `3737` | Group | SDK method | Operation ID | HTTP | Params | Auth | Response | Notes | | --- | --- | --- | --- | --- | --- | --- | --- | @@ -239,6 +239,7 @@ Total operations: `3695` | bbb | `bbb.local_bbbs` | `bbb-local-bbbs` | `GET /bbb/local-bbbs` | `country` (query Literal['us', 'ca'] required)
`region` (query str required) | `ApiKeyAuth` | `BbbLocalBbbsResponse` | | | bbb | `bbb.news` | `bbb-news` | `GET /bbb/news` | `url` (query str required) | `ApiKeyAuth` | `BbbNewsResponse` | | | bbb | `bbb.news_topics` | `bbb-news-topics` | `GET /bbb/news/topics` | `url` (query str required) | `ApiKeyAuth` | `BbbNewsTopicsResponse` | | +| bbb | `bbb.page` | `bbb-page` | `GET /bbb/page` | `url` (query str required) | `ApiKeyAuth` | `BbbPageResponse` | | | bbb | `bbb.regions` | `bbb-regions` | `GET /bbb/regions` | none | `ApiKeyAuth` | `BbbRegionsResponse` | | | bbb | `bbb.scamtracker_search` | `bbb-scamtracker-search` | `GET /bbb/scamtracker/search` | `query` (query str)
`scam_type` (query Literal['Advance Fee Loan', 'Bank/Credit Card Company Imposter', 'Business Email Compromise', 'Charity', 'Counterfeit Product', 'COVID-19', 'Credit Cards', 'Credit Repair/Debt Relief', 'CryptoCurrency', 'Debt Collections', 'Employment', 'Fake Check/Money Order', 'Fake Invoice/Supplier Bill', 'Family/Friend Emergency', 'Foreign Money Exchange', 'Government Agency Imposter', 'Government Grant', 'Healthcare/Medicaid/Medicare', 'Home Improvement', 'Identity Theft', 'Investment', 'Moving', 'Online Purchase', 'Other', 'Phishing', 'Rental', 'Retail Business', 'Romance', 'Scholarship', 'Sweepstakes/Lottery/Prizes', 'Tax Collection', 'Tech Support', 'Travel/Vacation/Timeshare', 'Utility', 'Vanity Award', 'Worthless Problem-solving Service', 'Yellow Pages/Directories'])
`state` (query str)
`scammer_state` (query str)
`date_from` (query str)
`date_to` (query str)
`min_dollars_lost` (query int)
`max_dollars_lost` (query int)
`page` (query int) | `ApiKeyAuth` | `BbbScamtrackerSearchResponse` | | | bbb | `bbb.scamtracker_state_stats` | `bbb-scamtracker-state-stats` | `GET /bbb/scamtracker/state-stats` | `period` (query Literal['30', '90', '365', 'all']) | `ApiKeyAuth` | `BbbScamtrackerStateStatsResponse` | | @@ -663,9 +664,9 @@ Total operations: `3695` | datasets | `datasets.apps_charts_search` | `datasets-apps-charts-search` | `GET /datasets/apps-charts/search` | `q` (query str)
`store` (query Literal['ios', 'android'])
`chart_type` (query Literal['top_free', 'top_paid', 'top_grossing', 'new'])
`platform` (query str)
`collection` (query str)
`category` (query str)
`country` (query str)
`app_id` (query str)
`date` (query str)
`sort` (query Literal['rank', 'rank_desc', 'date_desc'])
`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 Literal['ios', 'android'])
`app_id` (query str)
`country` (query str)
`min_score` (query int)
`sort` (query Literal['recent', 'score_desc', 'score_asc', 'helpful_desc'])
`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 Literal['ios', 'android', 'both'])
`platforms` (query list[str])
`category` (query str)
`country` (query str)
`developer` (query str)
`free` (query bool)
`min_rating` (query float)
`min_reviews` (query int)
`sort` (query Literal['relevance', 'rating_desc', 'reviews_desc', 'installs_desc', 'updated_at_desc', 'popularity_desc'])
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsAppsSearchResponse` | | -| datasets | `datasets.bbb_businesses_facets` | `datasets-bbb-businesses-facets` | `GET /datasets/bbb-businesses/facets` | `facet` (query Literal['country', 'category', 'state', 'city', 'rating', 'accredited', 'entity_type', 'run_id', 'alert_title', 'has_alerts'] required)
`limit` (query int)
`offset` (query int)
`q` (query str)
`category` (query str)
`country` (query Literal['us', 'ca'])
`state` (query str)
`city` (query str)
`rating` (query Literal['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-', 'F'])
`min_rating_rank` (query int)
`accredited` (query bool)
`has_alerts` (query bool)
`alert_title` (query str)
`min_complaints` (query int)
`entity_type` (query str)
`run_id` (query str) | `ApiKeyAuth` | `DatasetsBbbBusinessesFacetsResponse` | | +| datasets | `datasets.bbb_businesses_facets` | `datasets-bbb-businesses-facets` | `GET /datasets/bbb-businesses/facets` | `facet` (query Literal['country', 'address_country', 'category', 'state', 'city', 'rating', 'accredited', 'entity_type', 'run_id', 'alert_title', 'has_alerts'] required)
`limit` (query int)
`offset` (query int)
`q` (query str)
`category` (query str)
`country` (query Literal['us', 'ca'])
`address_country` (query Literal['us', 'ca'])
`state` (query str)
`city` (query str)
`rating` (query Literal['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-', 'F'])
`min_rating_rank` (query int)
`accredited` (query bool)
`has_alerts` (query bool)
`alert_title` (query str)
`min_complaints` (query int)
`entity_type` (query str)
`run_id` (query str) | `ApiKeyAuth` | `DatasetsBbbBusinessesFacetsResponse` | | | datasets | `datasets.bbb_businesses_item` | `datasets-bbb-businesses-item` | `GET /datasets/bbb-businesses/items/{id}` | `id` (path str required) | `ApiKeyAuth` | `DatasetsBbbBusinessesItemResponse` | | -| datasets | `datasets.bbb_businesses_search` | `datasets-bbb-businesses-search` | `GET /datasets/bbb-businesses/search` | `q` (query str)
`category` (query str)
`country` (query Literal['us', 'ca'])
`state` (query str)
`city` (query str)
`rating` (query Literal['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-', 'F'])
`min_rating_rank` (query int)
`accredited` (query bool)
`has_alerts` (query bool)
`alert_title` (query str)
`min_complaints` (query int)
`entity_type` (query str)
`run_id` (query str)
`sort` (query Literal['relevance', 'rating_desc', 'rating_asc', 'accredited_first', 'name_asc', 'years_in_business_desc', 'complaints_desc'])
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsBbbBusinessesSearchResponse` | | +| datasets | `datasets.bbb_businesses_search` | `datasets-bbb-businesses-search` | `GET /datasets/bbb-businesses/search` | `q` (query str)
`category` (query str)
`country` (query Literal['us', 'ca'])
`address_country` (query Literal['us', 'ca'])
`state` (query str)
`city` (query str)
`rating` (query Literal['A+', 'A', 'A-', 'B+', 'B', 'B-', 'C+', 'C', 'C-', 'D+', 'D', 'D-', 'F'])
`min_rating_rank` (query int)
`accredited` (query bool)
`has_alerts` (query bool)
`alert_title` (query str)
`min_complaints` (query int)
`entity_type` (query str)
`run_id` (query str)
`sort` (query Literal['relevance', 'rating_desc', 'rating_asc', 'accredited_first', 'name_asc', 'years_in_business_desc', 'complaints_desc'])
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsBbbBusinessesSearchResponse` | | | datasets | `datasets.bbb_scamtracker_reports_facets` | `datasets-bbb-scamtracker-reports-facets` | `GET /datasets/bbb-scamtracker-reports/facets` | `facet` (query Literal['scam_type', 'state', 'country'] required)
`q` (query str)
`scam_type` (query str)
`state` (query str)
`country` (query Literal['USA', 'CAN'])
`date_from` (query str)
`date_to` (query str)
`min_loss` (query float)
`max_loss` (query float) | `ApiKeyAuth` | `DatasetsBbbScamtrackerReportsFacetsResponse` | | | datasets | `datasets.bbb_scamtracker_reports_item` | `datasets-bbb-scamtracker-reports-item` | `GET /datasets/bbb-scamtracker-reports/items/{id}` | `id` (path str required) | `ApiKeyAuth` | `DatasetsBbbScamtrackerReportsItemResponse` | | | datasets | `datasets.bbb_scamtracker_reports_search` | `datasets-bbb-scamtracker-reports-search` | `GET /datasets/bbb-scamtracker-reports/search` | `q` (query str)
`scam_type` (query str)
`state` (query str)
`country` (query Literal['USA', 'CAN'])
`date_from` (query str)
`date_to` (query str)
`min_loss` (query float)
`max_loss` (query float)
`sort` (query Literal['relevance', 'reported_desc', 'reported_asc', 'loss_desc'])
`page` (query int)
`page_size` (query int) | `ApiKeyAuth` | `DatasetsBbbScamtrackerReportsSearchResponse` | | @@ -2544,6 +2545,14 @@ Total operations: `3695` | reuters | `reuters.news` | `reuters-news` | `GET /reuters/news` | `page` (query int) | `ApiKeyAuth` | `ReutersNewsResponse` | | | reuters | `reuters.section` | `reuters-section` | `GET /reuters/section` | `section` (query Literal['world', 'business', 'markets', 'technology', 'sports', 'legal', 'sustainability', 'commentary', 'lifestyle', 'science', 'live', 'podcasts', 'media-center', 'investigations', 'fact-check', 'wider-image', 'city-memo', 'data', 'video'] required)
`page` (query int) | `ApiKeyAuth` | `ReutersSectionResponse` | | | reuters | `reuters.sections` | `reuters-sections` | `GET /reuters/sections` | none | `ApiKeyAuth` | `ReutersSectionsResponse` | | +| reverb | `reverb.categories` | `reverb-categories` | `GET /reverb/categories` | none | `ApiKeyAuth` | `ReverbCategoriesResponse` | | +| reverb | `reverb.listing` | `reverb-listing` | `GET /reverb/listing` | `id` (query int required) | `ApiKeyAuth` | `ReverbListingResponse` | | +| reverb | `reverb.makes` | `reverb-makes` | `GET /reverb/makes` | none | `ApiKeyAuth` | `ReverbMakesResponse` | | +| reverb | `reverb.price_guide` | `reverb-price-guide` | `GET /reverb/price-guide` | `slug` (query str required)
`canonical_product_id` (query str)
`condition` (query Literal['mint', 'excellent', 'very-good', 'good', 'fair', 'poor'])
`range` (query Literal['months_6', 'years_1', 'years_2'])
`limit` (query int) | `ApiKeyAuth` | `ReverbPriceGuideResponse` | | +| reverb | `reverb.price_guide_search` | `reverb-price-guide-search` | `GET /reverb/price-guide-search` | `query` (query str required)
`limit` (query int) | `ApiKeyAuth` | `ReverbPriceGuideSearchResponse` | | +| reverb | `reverb.search` | `reverb-search` | `GET /reverb/search` | `query` (query str)
`category` (query str)
`product_type` (query Literal['accessories', 'acoustic-guitars', 'amps', 'band-and-orchestra', 'bass-guitars', 'dj-and-lighting-gear', 'drums-and-percussion', 'effects-and-pedals', 'electric-guitars', 'folk-instruments', 'home-audio', 'keyboards-and-synths', 'parts', 'pro-audio'])
`make` (query str)
`min_price` (query float)
`max_price` (query float)
`page` (query int)
`limit` (query int) | `ApiKeyAuth` | `ReverbSearchResponse` | | +| reverb | `reverb.shop` | `reverb-shop` | `GET /reverb/shop` | `slug` (query str required)
`query` (query str)
`page` (query int)
`limit` (query int) | `ApiKeyAuth` | `ReverbShopResponse` | | +| reverb | `reverb.shop_feedback` | `reverb-shop-feedback` | `GET /reverb/shop-feedback` | `slug` (query str required)
`page` (query int) | `ApiKeyAuth` | `ReverbShopFeedbackResponse` | | | rightmove | `rightmove.agents` | `rightmove-agents` | `GET /rightmove/agents` | `location` (query str required)
`page` (query int) | `ApiKeyAuth` | `RightmoveAgentsResponse` | | | rightmove | `rightmove.agent_branch` | `rightmove-agent-branch` | `GET /rightmove/agents/{id}` | `id` (path str required) | `ApiKeyAuth` | `RightmoveAgentBranchResponse` | | | rightmove | `rightmove.autocomplete` | `rightmove-autocomplete` | `GET /rightmove/autocomplete` | `query` (query str required)
`limit` (query int) | `ApiKeyAuth` | `RightmoveAutocompleteResponse` | | @@ -3232,8 +3241,13 @@ Total operations: `3695` | threads | `threads.post` | `threads-post` | `GET /threads/post/{username}/{code}` | `username` (path str required)
`code` (path str required) | `ApiKeyAuth` | `ThreadsPostResponse` | | | threads | `threads.post_replies` | `threads-post-replies` | `GET /threads/post/{username}/{code}/replies` | `username` (path str required)
`code` (path str required) | `ApiKeyAuth` | `ThreadsPostRepliesResponse` | | | threads | `threads.profile` | `threads-profile` | `GET /threads/profile/{username}` | `username` (path str required) | `ApiKeyAuth` | `ThreadsProfileResponse` | | +| threads | `threads.profile_media` | `threads-profile-media` | `GET /threads/profile/{username}/media` | `username` (path str required) | `ApiKeyAuth` | `ThreadsProfileMediaResponse` | | | threads | `threads.profile_posts` | `threads-profile-posts` | `GET /threads/profile/{username}/posts` | `username` (path str required)
`cursor` (query str) | `ApiKeyAuth` | `ThreadsProfilePostsResponse` | | -| threads | `threads.search` | `threads-search` | `GET /threads/search` | `q` (query str required) | `ApiKeyAuth` | `ThreadsSearchResponse` | | +| threads | `threads.profile_replies` | `threads-profile-replies` | `GET /threads/profile/{username}/replies` | `username` (path str required) | `ApiKeyAuth` | `ThreadsProfileRepliesResponse` | | +| threads | `threads.profile_reposts` | `threads-profile-reposts` | `GET /threads/profile/{username}/reposts` | `username` (path str required) | `ApiKeyAuth` | `ThreadsProfileRepostsResponse` | | +| threads | `threads.profile_topics` | `threads-profile-topics` | `GET /threads/profile/{username}/topics` | `username` (path str required) | `ApiKeyAuth` | `ThreadsProfileTopicsResponse` | | +| threads | `threads.search` | `threads-search` | `GET /threads/search` | `q` (query str required)
`sort` (query Literal['top', 'recent']) | `ApiKeyAuth` | `ThreadsSearchResponse` | | +| threads | `threads.topic_search` | `threads-topic-search` | `GET /threads/search/topics` | `q` (query str required)
`tag_id` (query str required) | `ApiKeyAuth` | `ThreadsTopicSearchResponse` | | | ticketmaster | `ticketmaster.attraction` | `ticketmaster-attraction` | `GET /ticketmaster/attraction` | `id` (query str required) | `ApiKeyAuth` | `TicketmasterAttractionResponse` | | | ticketmaster | `ticketmaster.attraction_events` | `ticketmaster-attraction-events` | `GET /ticketmaster/attraction-events` | `id` (query str required)
`page` (query int)
`sort` (query Literal['relevance', 'date']) | `ApiKeyAuth` | `TicketmasterAttractionEventsResponse` | | | ticketmaster | `ticketmaster.attraction_related` | `ticketmaster-attraction-related` | `GET /ticketmaster/attraction-related` | `id` (query str required) | `ApiKeyAuth` | `TicketmasterAttractionRelatedResponse` | | @@ -3262,11 +3276,39 @@ Total operations: `3695` | tiffany_co | `tiffany_co.tiffany_suggest` | `tiffany-suggest` | `GET /tiffany/suggest` | `query` (query str required) | `ApiKeyAuth` | `TiffanyCoTiffanySuggestResponse` | | | tiktok | `tiktok.category` | `tiktok-category` | `GET /tiktok/category` | none | `ApiKeyAuth` | `TiktokCategoryResponse` | | | tiktok | `tiktok.video_comments` | `tiktok-video-comments` | `GET /tiktok/comments` | `aweme_id` (query str required)
`cursor` (query int) | `ApiKeyAuth` | `TiktokVideoCommentsResponse` | | -| tiktok | `tiktok.creative_center_hashtags` | `tiktok-creative-center-hashtags` | `GET /tiktok/creative-center/hashtags` | `country_code` (query str required)
`period` (query Literal['7', '30']) | `ApiKeyAuth` | `TiktokCreativeCenterHashtagsResponse` | | -| tiktok | `tiktok.creative_center_videos` | `tiktok-creative-center-videos` | `GET /tiktok/creative-center/videos` | `country_code` (query str required)
`period` (query Literal['7', '30'])
`sort_by` (query Literal['views', 'engagement', 'six_second_views'])
`content_label_id` (query str)
`organic_only` (query bool) | `ApiKeyAuth` | `TiktokCreativeCenterVideosResponse` | | +| tiktok | `tiktok.creative_center_filters` | `tiktok-creative-center-filters` | `GET /tiktok/creative-center/filters` | none | `ApiKeyAuth` | `TiktokCreativeCenterFiltersResponse` | | +| tiktok | `tiktok.creative_center_hashtags` | `tiktok-creative-center-hashtags` | `GET /tiktok/creative-center/hashtags` | `country_code` (query str required)
`period` (query Literal['7', '30', '90'])
`industry_id` (query Literal['10000000000', '11000000000', '12000000000', '13000000000', '14000000000', '15000000000', '17000000000', '18000000000', '19000000000', '21000000000', '22000000000', '23000000000', '24000000000', '25000000000', '26000000000', '27000000000', '28000000000', '29000000000']) | `ApiKeyAuth` | `TiktokCreativeCenterHashtagsResponse` | | +| tiktok | `tiktok.creative_center_top_content` | `tiktok-creative-center-top-content` | `GET /tiktok/creative-center/top-content` | `include_comments` (query bool) | `ApiKeyAuth` | `TiktokCreativeCenterTopContentResponse` | | +| tiktok | `tiktok.creative_center_videos` | `tiktok-creative-center-videos` | `GET /tiktok/creative-center/videos` | `country_code` (query str required)
`period` (query Literal['7', '30'])
`sort_by` (query Literal['views', 'engagement', 'six_second_views'])
`content_label_id` (query str)
`content_label_ids` (query list[Literal['11002', '11003', '11010', '11013', '11015']])
`organic_only` (query bool) | `ApiKeyAuth` | `TiktokCreativeCenterVideosResponse` | | | tiktok | `tiktok.explore` | `tiktok-explore` | `GET /tiktok/explore/{id}` | `id` (path int required) | `ApiKeyAuth` | `TiktokExploreResponse` | | | tiktok | `tiktok.challenge` | `tiktok-challenge` | `GET /tiktok/hashtag/{name}` | `name` (path str required) | `ApiKeyAuth` | `TiktokChallengeResponse` | | | tiktok | `tiktok.challenge_list` | `tiktok-challenge-list` | `GET /tiktok/hashtags` | `id` (query str required)
`cursor` (query int) | `ApiKeyAuth` | `TiktokChallengeListResponse` | | +| tiktok | `tiktok.mobile_anchor_list` | `tiktok-mobile-anchor-list` | `GET /tiktok/mobile/anchor/list` | none | `ApiKeyAuth` | `TiktokMobileAnchorListResponse` | | +| tiktok | `tiktok.mobile_comment_replies` | `tiktok-mobile-comment-replies` | `GET /tiktok/mobile/comment/replies` | `aweme_id` (query str required)
`comment_id` (query str required)
`cursor` (query int)
`count` (query int) | `ApiKeyAuth` | `TiktokMobileCommentRepliesResponse` | | +| tiktok | `tiktok.mobile_comments` | `tiktok-mobile-comments` | `GET /tiktok/mobile/comments` | `aweme_id` (query str required)
`cursor` (query int)
`count` (query int) | `ApiKeyAuth` | `TiktokMobileCommentsResponse` | | +| tiktok | `tiktok.mobile_feed` | `tiktok-mobile-feed` | `GET /tiktok/mobile/feed` | `count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileFeedResponse` | | +| tiktok | `tiktok.mobile_feed_post` | `tiktok-mobile-feed-post` | `GET /tiktok/mobile/feed/post` | none | `ApiKeyAuth` | `TiktokMobileFeedPostResponse` | | +| tiktok | `tiktok.mobile_hashtag` | `tiktok-mobile-hashtag` | `GET /tiktok/mobile/hashtag` | `name` (query str required) | `ApiKeyAuth` | `TiktokMobileHashtagResponse` | | +| tiktok | `tiktok.mobile_hashtag_posts` | `tiktok-mobile-hashtag-posts` | `GET /tiktok/mobile/hashtag/posts` | `name` (query str required)
`sort` (query Literal['fresh', 'popular'])
`count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileHashtagPostsResponse` | | +| tiktok | `tiktok.mobile_hashtags` | `tiktok-mobile-hashtags` | `GET /tiktok/mobile/hashtags` | `keyword` (query str required)
`count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileHashtagsResponse` | | +| tiktok | `tiktok.mobile_live_effects` | `tiktok-mobile-live-effects` | `GET /tiktok/mobile/live/effects` | none | `ApiKeyAuth` | `TiktokMobileLiveEffectsResponse` | | +| tiktok | `tiktok.mobile_live_gifts` | `tiktok-mobile-live-gifts` | `GET /tiktok/mobile/live/gifts` | none | `ApiKeyAuth` | `TiktokMobileLiveGiftsResponse` | | +| tiktok | `tiktok.mobile_live_search` | `tiktok-mobile-live-search` | `GET /tiktok/mobile/live/search` | `keyword` (query str required)
`count` (query int) | `ApiKeyAuth` | `TiktokMobileLiveSearchResponse` | | +| tiktok | `tiktok.mobile_music_beats` | `tiktok-mobile-music-beats` | `GET /tiktok/mobile/music/beats` | `count` (query int) | `ApiKeyAuth` | `TiktokMobileMusicBeatsResponse` | | +| tiktok | `tiktok.mobile_music_collections` | `tiktok-mobile-music-collections` | `GET /tiktok/mobile/music/collections` | `count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileMusicCollectionsResponse` | | +| tiktok | `tiktok.mobile_music_pick` | `tiktok-mobile-music-pick` | `GET /tiktok/mobile/music/pick` | `count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileMusicPickResponse` | | +| tiktok | `tiktok.mobile_music_posts` | `tiktok-mobile-music-posts` | `GET /tiktok/mobile/music/posts` | `music_id` (query str required)
`count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileMusicPostsResponse` | | +| tiktok | `tiktok.mobile_music_related` | `tiktok-mobile-music-related` | `GET /tiktok/mobile/music/related` | `aweme_id` (query str required)
`count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileMusicRelatedResponse` | | +| tiktok | `tiktok.mobile_music_trending` | `tiktok-mobile-music-trending` | `GET /tiktok/mobile/music/trending` | `count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileMusicTrendingResponse` | | +| tiktok | `tiktok.mobile_search` | `tiktok-mobile-search` | `GET /tiktok/mobile/search` | `keyword` (query str required)
`count` (query int)
`offset` (query int) | `ApiKeyAuth` | `TiktokMobileSearchResponse` | | +| tiktok | `tiktok.mobile_search_music` | `tiktok-mobile-search-music` | `GET /tiktok/mobile/search/music` | `keyword` (query str required)
`count` (query int)
`offset` (query int) | `ApiKeyAuth` | `TiktokMobileSearchMusicResponse` | | +| tiktok | `tiktok.mobile_search_place` | `tiktok-mobile-search-place` | `GET /tiktok/mobile/search/place` | `keyword` (query str required)
`count` (query int) | `ApiKeyAuth` | `TiktokMobileSearchPlaceResponse` | | +| tiktok | `tiktok.mobile_search_pre_info` | `tiktok-mobile-search-pre-info` | `GET /tiktok/mobile/search/pre-info` | `keyword` (query str)
`count` (query int) | `ApiKeyAuth` | `TiktokMobileSearchPreInfoResponse` | | +| tiktok | `tiktok.mobile_search_sug` | `tiktok-mobile-search-sug` | `GET /tiktok/mobile/search/sug` | `keyword` (query str required)
`count` (query int) | `ApiKeyAuth` | `TiktokMobileSearchSugResponse` | | +| tiktok | `tiktok.mobile_search_tabs` | `tiktok-mobile-search-tabs` | `GET /tiktok/mobile/search/tabs` | `keyword` (query str required) | `ApiKeyAuth` | `TiktokMobileSearchTabsResponse` | | +| tiktok | `tiktok.mobile_search_user` | `tiktok-mobile-search-user` | `GET /tiktok/mobile/search/user` | `keyword` (query str required)
`count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileSearchUserResponse` | | +| tiktok | `tiktok.mobile_trending_categories` | `tiktok-mobile-trending-categories` | `GET /tiktok/mobile/trending/categories` | `count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileTrendingCategoriesResponse` | | +| tiktok | `tiktok.mobile_trending_effects` | `tiktok-mobile-trending-effects` | `GET /tiktok/mobile/trending/effects` | `count` (query int)
`cursor` (query int) | `ApiKeyAuth` | `TiktokMobileTrendingEffectsResponse` | | | tiktok | `tiktok.popular_trend_country_industry_meta` | `tiktok-popular-trend-country-industry-meta` | `GET /tiktok/popular-trend/country-industry-meta` | none | `ApiKeyAuth` | `TiktokPopularTrendCountryIndustryMetaResponse` | | | tiktok | `tiktok.post` | `tiktok-post` | `GET /tiktok/post/{id}` | `id` (path str required) | `ApiKeyAuth` | `TiktokPostResponse` | | | tiktok | `tiktok.profile_post` | `tiktok-profile-post` | `GET /tiktok/posts` | `secUid` (query str required)
`cursor` (query int)
`sort_type` (query Literal['0', '1', '2']) | `ApiKeyAuth` | `TiktokProfilePostResponse` | | diff --git a/openapi/public.json b/openapi/public.json index 5c5e0e5..ce27a07 100644 --- a/openapi/public.json +++ b/openapi/public.json @@ -714,6 +714,10 @@ }, "accountdeletion.accountDeletionRequestDoc": { "properties": { + "account_locked_at": { + "example": "2026-09-10T00:01:00Z", + "type": "string" + }, "archive_id": { "example": "acct-del-archive-1", "type": "string" @@ -769,10 +773,18 @@ "example": "pending", "type": "string" }, + "stripe_subscription_cancellation_scheduled": { + "example": true, + "type": "boolean" + }, "stripe_subscription_cancelled": { "example": true, "type": "boolean" }, + "subscription_period_end": { + "example": "2026-09-10T00:00:00Z", + "type": "string" + }, "updated_at": { "example": "2026-08-11T00:00:00Z", "type": "string" @@ -2528,25 +2540,32 @@ "airbnb.CalendarDay": { "properties": { "available": { + "description": "True when the night is free.", "type": "boolean" }, "available_for_checkin": { + "description": "True when a stay can start on this day.", "type": "boolean" }, "available_for_checkout": { + "description": "True when a stay can end on this day.", "type": "boolean" }, "bookable": { + "description": "True when the day can be booked.", "type": "boolean" }, "date": { + "description": "Calendar date (YYYY-MM-DD).", "example": "2026-07-01", "type": "string" }, "max_nights": { + "description": "Maximum stay, in nights, for a booking that starts on this day.", "type": "integer" }, "min_nights": { + "description": "Minimum stay, in nights, for a booking that starts on this day.", "type": "integer" } }, @@ -2555,15 +2574,18 @@ "airbnb.CalendarMonth": { "properties": { "days": { + "description": "One entry per day of the month.", "items": { "$ref": "#/definitions/airbnb.CalendarDay" }, "type": "array" }, "month": { + "description": "Month, as a number from 1 to 12 or a month name.", "type": "string" }, "year": { + "description": "Four-digit year.", "type": "integer" } }, @@ -2572,10 +2594,12 @@ "airbnb.CalendarResponse": { "properties": { "id": { + "description": "Airbnb room id the calendar belongs to.", "example": "12345678", "type": "string" }, "months": { + "description": "Availability by month.", "items": { "$ref": "#/definitions/airbnb.CalendarMonth" }, @@ -2587,49 +2611,64 @@ "airbnb.HostListing": { "properties": { "bathrooms": { + "description": "Number of bathrooms.", "type": "number" }, "bedrooms": { + "description": "Number of bedrooms.", "type": "integer" }, "beds": { + "description": "Number of beds.", "type": "integer" }, "id": { + "description": "Airbnb listing (room) id. Use it with the room endpoints.", "example": "44740639", "type": "string" }, "image": { + "description": "URL of the listing's main photo.", "type": "string" }, "instant_book": { + "description": "True when guests can book the listing instantly without host approval.", "type": "boolean" }, "is_luxury": { + "description": "True when Airbnb marks the listing as a luxury listing.", "type": "boolean" }, "is_new_listing": { + "description": "True when Airbnb marks the listing as new.", "type": "boolean" }, "is_superhost": { + "description": "True when the host carries the Superhost badge.", "type": "boolean" }, "name": { + "description": "Listing title as shown on the host's profile.", "type": "string" }, "property_type": { + "description": "Property type as Airbnb labels it, for example `Apartment`.", "type": "string" }, "rating": { + "description": "Average guest rating.", "type": "number" }, "review_count": { + "description": "Number of guest reviews.", "type": "integer" }, "room_category": { + "description": "Airbnb room category of the listing, for example `entire_home`.", "type": "string" }, "room_type": { + "description": "Room type as Airbnb labels it, for example `Serviced apartment`.", "type": "string" } }, @@ -2638,19 +2677,23 @@ "airbnb.HostListingsResponse": { "properties": { "has_more": { + "description": "True when further pages of listings are available.", "type": "boolean" }, "id": { + "description": "Airbnb host id the listings belong to.", "example": "65056940", "type": "string" }, "listings": { + "description": "Listings the host manages, one item per listing.", "items": { "$ref": "#/definitions/airbnb.HostListing" }, "type": "array" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" } @@ -2660,23 +2703,29 @@ "airbnb.HostResponse": { "properties": { "about": { + "description": "Bio text from the host's profile.", "type": "string" }, "hosting_years": { + "description": "Number of years the host has been hosting on Airbnb.", "example": 6, "type": "integer" }, "id": { + "description": "Airbnb host (user) id.", "example": "65056940", "type": "string" }, "identity_verified": { + "description": "True when the host's identity is verified on Airbnb.", "type": "boolean" }, "image": { + "description": "URL of the host's profile photo.", "type": "string" }, "interests": { + "description": "Interests the host lists on the profile.", "example": [ "Architecture", "Wine", @@ -2688,33 +2737,42 @@ "type": "array" }, "is_home_host": { + "description": "True when Airbnb marks the host as a home host.", "type": "boolean" }, "is_superhost": { + "description": "True when the host carries the Superhost badge.", "type": "boolean" }, "listing_count": { + "description": "Total number of listings the host has.", "example": 3, "type": "integer" }, "location": { + "description": "Location the host gives on the profile.", "type": "string" }, "member_years": { + "description": "Number of years the host has had an Airbnb account.", "example": 10, "type": "integer" }, "name": { + "description": "Display name of the host.", "type": "string" }, "review_count": { + "description": "Total number of guest reviews the host has received.", "example": 888, "type": "integer" }, "url": { + "description": "Link to the host's public profile on Airbnb.", "type": "string" }, "verifications": { + "description": "Verifications shown on the profile, for example `Identity` or `Email address`.", "example": [ "Identity", "Email address", @@ -2731,21 +2789,27 @@ "airbnb.HostReview": { "properties": { "comments": { + "description": "Text of the review.", "type": "string" }, "created_at": { + "description": "Time the review was posted, as Airbnb returns it (ISO 8601).", "type": "string" }, "id": { + "description": "Airbnb review id.", "type": "string" }, "rating": { + "description": "Rating the guest gave, out of 5.", "type": "number" }, "reviewer": { + "description": "Name of the guest who wrote the review.", "type": "string" }, "reviewer_location": { + "description": "Location the reviewer gives on their profile.", "type": "string" } }, @@ -2754,17 +2818,21 @@ "airbnb.HostReviewsResponse": { "properties": { "has_more": { + "description": "True when further pages of reviews are available.", "type": "boolean" }, "id": { + "description": "Airbnb host id the reviews are for.", "example": "65056940", "type": "string" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "reviews": { + "description": "Reviews guests left for the host, one item per review.", "items": { "$ref": "#/definitions/airbnb.HostReview" }, @@ -2776,17 +2844,21 @@ "airbnb.ListingItem": { "properties": { "host": { + "description": "Host name, when the search card shows it.", "type": "string" }, "host_id": { + "description": "Airbnb id of the host. Use it with the host endpoint.", "example": "65056940", "type": "string" }, "id": { + "description": "Airbnb listing (room) id. Use it with the room endpoints.", "example": "12345678", "type": "string" }, "image": { + "description": "URL of the listing's main photo.", "type": "string" }, "is_guest_favorite": { @@ -2794,18 +2866,23 @@ "type": "boolean" }, "is_superhost": { + "description": "True when the listing carries the Superhost badge.", "type": "boolean" }, "latitude": { + "description": "Latitude of the listing.", "type": "number" }, "location": { + "description": "Location text shown for the listing.", "type": "string" }, "longitude": { + "description": "Longitude of the listing.", "type": "number" }, "price": { + "description": "Price shown on the search card. With check-in and check-out dates it is the total for the stay; without dates it is Airbnb's display figure, not a nightly rate.", "type": "number" }, "price_per_night": { @@ -2814,15 +2891,19 @@ "type": "number" }, "rating": { + "description": "Average guest rating.", "type": "number" }, "review_count": { + "description": "Number of guest reviews.", "type": "integer" }, "title": { + "description": "Listing title as shown on the search card.", "type": "string" }, "url": { + "description": "Link to the listing on Airbnb.", "type": "string" } }, @@ -2831,15 +2912,19 @@ "airbnb.ReviewItem": { "properties": { "author": { + "description": "Name of the guest who wrote the review.", "type": "string" }, "date": { + "description": "Date of the review as Airbnb shows it.", "type": "string" }, "rating": { + "description": "Rating the guest gave, out of 5. Omitted when the review shows none.", "type": "number" }, "text": { + "description": "Text of the review.", "type": "string" } }, @@ -2848,14 +2933,17 @@ "airbnb.ReviewsResponse": { "properties": { "id": { + "description": "Airbnb listing (room) id the reviews are for.", "example": "12345678", "type": "string" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "reviews": { + "description": "Review snippets for the listing on this page.", "items": { "$ref": "#/definitions/airbnb.ReviewItem" }, @@ -2867,26 +2955,32 @@ "airbnb.RoomResponse": { "properties": { "amenities": { + "description": "Names of the amenities the listing offers.", "items": { "type": "string" }, "type": "array" }, "description": { + "description": "Listing description text.", "type": "string" }, "host": { + "description": "Host name, when the search card shows it.", "type": "string" }, "host_id": { + "description": "Airbnb id of the host. Use it with the host endpoint.", "example": "65056940", "type": "string" }, "id": { + "description": "Airbnb listing (room) id. Use it with the room endpoints.", "example": "12345678", "type": "string" }, "image": { + "description": "URL of the listing's main photo.", "type": "string" }, "is_guest_favorite": { @@ -2894,15 +2988,19 @@ "type": "boolean" }, "is_superhost": { + "description": "True when the listing carries the Superhost badge.", "type": "boolean" }, "latitude": { + "description": "Latitude of the listing.", "type": "number" }, "location": { + "description": "Location text shown for the listing.", "type": "string" }, "longitude": { + "description": "Longitude of the listing.", "type": "number" }, "person_capacity": { @@ -2910,6 +3008,7 @@ "type": "integer" }, "price": { + "description": "Price shown on the search card. With check-in and check-out dates it is the total for the stay; without dates it is Airbnb's display figure, not a nightly rate.", "type": "number" }, "price_per_night": { @@ -2918,18 +3017,23 @@ "type": "number" }, "property_type": { + "description": "Airbnb's listing type, for example `Entire guest suite` or `Private room in rental unit`.", "type": "string" }, "rating": { + "description": "Average guest rating.", "type": "number" }, "review_count": { + "description": "Number of guest reviews.", "type": "integer" }, "title": { + "description": "Listing title as shown on the search card.", "type": "string" }, "url": { + "description": "Link to the listing on Airbnb.", "type": "string" } }, @@ -2938,14 +3042,17 @@ "airbnb.SearchResponse": { "properties": { "location": { + "description": "Location that was searched.", "example": "New York, NY", "type": "string" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "results": { + "description": "Listings on this page.", "items": { "$ref": "#/definitions/airbnb.ListingItem" }, @@ -4483,45 +4590,56 @@ "amazon.Product": { "properties": { "about": { + "description": "Text of the product's feature bullet points (\"About this item\").", "type": "string" }, "asin": { + "description": "Amazon Standard Identification Number (ASIN) of the product.", "example": "B0DGJ736JM", "type": "string" }, "availability": { + "description": "True when the product page shows the item as in stock.", "example": true, "type": "boolean" }, "brand_link": { + "description": "URL of the brand's store page on Amazon. Omitted when the page shows none.", "example": "https://www.amazon.com/stores/Apple/page/77D9E1F7-0337-4282-9DB6-B6B8FB2DC98D", "type": "string" }, "brand_name": { + "description": "Brand name shown on the product page. Omitted when the page shows none.", "example": "Apple Store", "type": "string" }, "customers_say": { + "description": "Summary of what customers say about the product, from the \"Customers say\" section.", "type": "string" }, "description": { + "description": "Product description text, converted to Markdown.", "type": "string" }, "images": { + "description": "URLs of the product's gallery images.", "items": { "type": "string" }, "type": "array" }, "is_free_delivery": { + "description": "True when the product page offers free delivery.", "example": true, "type": "boolean" }, "is_free_return": { + "description": "True when the product page offers free returns.", "example": true, "type": "boolean" }, "link": { + "description": "URL of the product page on Amazon.", "example": "https://www.amazon.com/dp/B0DGJ736JM/", "type": "string" }, @@ -4531,6 +4649,7 @@ "type": "boolean" }, "number_of_bought_in_last_month": { + "description": "Number of units bought in the past month, as shown on the page (for example 1000 for \"1K+ bought\"). Zero when the page shows none.", "example": 1000, "type": "integer" }, @@ -4538,13 +4657,16 @@ "additionalProperties": { "type": "string" }, + "description": "Key product facts from the overview table, as pairs of label and value.", "type": "object" }, "price": { + "description": "Current price of the product, in US dollars.", "example": 189, "type": "number" }, "rating": { + "description": "Average customer rating, out of 5.", "example": 4.4, "type": "number" }, @@ -4553,39 +4675,47 @@ "format": "float64", "type": "number" }, + "description": "Share of ratings for each star level, keyed by stars from `1` to `5`, with values from 0 to 1.", "type": "object" }, "review_count": { + "description": "Total number of customer ratings shown on the page.", "example": 1055, "type": "integer" }, "review_images": { + "description": "Customer-uploaded photos from the reviews section.", "items": { "$ref": "#/definitions/amazon.ReviewImage" }, "type": "array" }, "review_insights": { + "description": "Topics customers mention most often in reviews, each with a sentiment.", "items": { "$ref": "#/definitions/amazon.ReviewInsight" }, "type": "array" }, "reviews": { + "description": "Customer review samples shown on the product page.", "items": { "$ref": "#/definitions/amazon.Review" }, "type": "array" }, "seller_link": { + "description": "URL of the seller's page on Amazon.", "example": "https://www.amazon.com/b?node=10158976011", "type": "string" }, "seller_name": { + "description": "Name of the seller offering the product.", "example": "Amazon Resale", "type": "string" }, "title": { + "description": "Product title as shown on the Amazon product page.", "example": "Apple Watch SE (2nd Gen) [GPS 40mm] Smartwatch with Midnight Aluminium Case with Midnight Sport Band S/M. Fitness and Sleep Trackers, Crash Detection, Heart Rate Monitor, Retina Display", "type": "string" } @@ -4595,36 +4725,46 @@ "amazon.Review": { "properties": { "content": { + "description": "Text of the review.", "type": "string" }, "country": { + "description": "Country the review was written in, as shown in \"Reviewed in ...\".", "example": "United States", "type": "string" }, "helpful_count": { + "description": "Number of people who found the review helpful. Omitted when none are shown.", "example": 4, "type": "integer" }, "link": { + "description": "URL of the review on Amazon.", "type": "string" }, "rating": { + "description": "Star rating the reviewer gave, out of 5.", "example": 4, "type": "number" }, "review_date": { + "description": "Date the review was posted, in RFC 3339 format.", "type": "string" }, "title": { + "description": "Headline of the review.", "type": "string" }, "user_link": { + "description": "URL of the reviewer's profile on Amazon.", "type": "string" }, "user_name": { + "description": "Display name of the reviewer.", "type": "string" }, "verified_purchase": { + "description": "True when the review carries the Verified Purchase badge.", "example": true, "type": "boolean" } @@ -4634,14 +4774,17 @@ "amazon.ReviewImage": { "properties": { "review_id": { + "description": "Id of the review the photo belongs to. Omitted when not shown.", "example": "R31YRHYX7G6DNK", "type": "string" }, "thumbnail": { + "description": "URL of a smaller version of the photo. Omitted when not shown.", "example": "https://m.media-amazon.com/images/I/example._SY250_.jpg", "type": "string" }, "url": { + "description": "URL of the full-size photo.", "example": "https://m.media-amazon.com/images/I/example.jpg", "type": "string" } @@ -4651,22 +4794,27 @@ "amazon.ReviewInsight": { "properties": { "label": { + "description": "Topic customers mention, for example `quality`.", "example": "quality", "type": "string" }, "mention_percent": { + "description": "Whole-number percentage Amazon reports alongside the topic's mention count.", "example": 98, "type": "integer" }, "mentions": { + "description": "Number of reviews that mention the topic.", "example": 41, "type": "integer" }, "sentiment": { + "description": "Overall sentiment of the mentions, for example `positive`.", "example": "positive", "type": "string" }, "summary": { + "description": "Short summary of what customers say about the topic.", "example": "Customers like the build quality.", "type": "string" } @@ -4676,50 +4824,62 @@ "amazon.SearchResponseItem": { "properties": { "asin": { + "description": "Amazon Standard Identification Number of the product.", "example": "B0DGJ736JM", "type": "string" }, "image": { + "description": "URL of the product image.", "example": "https://m.media-amazon.com/images/I/61eE8SSyPWL._AC_UY545_FMwebp_QL65_.jpg", "type": "string" }, "is_free_delivery": { + "description": "True when the card advertises free delivery.", "example": true, "type": "boolean" }, "is_sponsored": { + "description": "True for a sponsored placement.", "example": true, "type": "boolean" }, "link": { + "description": "Link to the product page on amazon.com.", "example": "https://www.amazon.com/Apple-Smartwatch-Midnight-Aluminium-Detection/dp/B0DGJ736JM/", "type": "string" }, "list_price": { + "description": "List price before any discount, when the card shows one.", "example": 249, "type": "number" }, "more_choice": { + "description": "Link to more buying choices for the product, when the card has one.", "example": "https://www.amazon.com/gp/offer-listing/B08KYJPTB6/", "type": "string" }, "number_of_bought_in_last_month": { + "description": "Amazon's \"bought in past month\" figure. 0 when the card does not show one.", "example": 1000, "type": "integer" }, "price": { + "description": "Current price shown on the card.", "example": 189, "type": "number" }, "rating": { + "description": "Average star rating, out of 5.", "example": 4.4, "type": "number" }, "review_count": { + "description": "Number of ratings.", "example": 1055, "type": "integer" }, "title": { + "description": "Product title as shown on the result card.", "example": "Watch SE (2nd Gen) [GPS 40mm] Smartwatch with Midnight Aluminium Case with Midnight Sport Band S/M. Fitness and Sleep Trackers, Crash Detection, Heart Rate Monitor, Retina Display", "type": "string" } @@ -5252,14 +5412,17 @@ "anime.FuzzyDate": { "properties": { "day": { + "description": "Day of the month. Omitted when AniList does not know it.", "example": 29, "type": "integer" }, "month": { + "description": "Month of the date, 1 to 12. Omitted when AniList does not know it.", "example": 9, "type": "integer" }, "year": { + "description": "Year of the date. Omitted when AniList does not know it.", "example": 2023, "type": "integer" } @@ -5269,18 +5432,22 @@ "anime.MALScore": { "properties": { "max": { + "description": "Highest possible score on MyAnimeList.", "example": 10, "type": "integer" }, "score": { + "description": "MyAnimeList community score, on a 0 to 10 scale.", "example": 9.26, "type": "number" }, "scored_by": { + "description": "Number of MyAnimeList users who scored the title.", "example": 911901, "type": "integer" }, "url": { + "description": "Link to the title's page on MyAnimeList.", "type": "string" } }, @@ -5332,45 +5499,61 @@ "anime.Media": { "properties": { "average_score": { + "description": "Average user score on AniList, from 0 to 100.", "example": 91, "type": "integer" }, "banner_image": { + "description": "URL of the banner image.", "type": "string" }, "chapters": { + "description": "Number of chapters, for manga.", "type": "integer" }, "country_of_origin": { + "description": "Two-letter code of the country the title comes from, for example `JP`.", "example": "JP", "type": "string" }, "cover_image": { + "description": "URL of the cover image.", "type": "string" }, "description": { + "description": "Synopsis of the title.", "type": "string" }, "duration": { + "description": "Length of one episode in minutes.", "example": 24, "type": "integer" }, "end_date": { - "$ref": "#/definitions/anime.FuzzyDate" + "allOf": [ + { + "$ref": "#/definitions/anime.FuzzyDate" + } + ], + "description": "Date the title finished airing or publishing." }, "episodes": { + "description": "Number of episodes.", "example": 28, "type": "integer" }, "favourites": { + "description": "Number of AniList users who marked the title as a favourite.", "example": 54038, "type": "integer" }, "format": { + "description": "Release format, for example `TV`, `MOVIE` or `OVA`.", "example": "TV", "type": "string" }, "genres": { + "description": "Genres of the title.", "example": [ "Adventure", "Drama", @@ -5382,50 +5565,75 @@ "type": "array" }, "id": { + "description": "AniList id of the title.", "example": 154587, "type": "integer" }, "id_mal": { + "description": "MyAnimeList id of the same title.", "example": 52991, "type": "integer" }, "is_adult": { + "description": "True when AniList marks the title as adult content.", "type": "boolean" }, "mal": { - "$ref": "#/definitions/anime.MALScore" + "allOf": [ + { + "$ref": "#/definitions/anime.MALScore" + } + ], + "description": "MyAnimeList community score. Present only when requested and the title has a MyAnimeList entry." }, "mean_score": { + "description": "Mean user score on AniList, from 0 to 100.", "example": 91, "type": "integer" }, "next_airing_episode": { - "$ref": "#/definitions/anime.NextAiringEpisode" + "allOf": [ + { + "$ref": "#/definitions/anime.NextAiringEpisode" + } + ], + "description": "Countdown to the next episode. Present only while the title is releasing." }, "popularity": { + "description": "Number of AniList users who have the title in their lists.", "example": 456965, "type": "integer" }, "season": { + "description": "Season the title aired in: `WINTER`, `SPRING`, `SUMMER` or `FALL`.", "example": "FALL", "type": "string" }, "season_year": { + "description": "Year of the season the title aired in.", "example": 2023, "type": "integer" }, "site_url": { + "description": "Link to the title's page on AniList.", "example": "https://anilist.co/anime/154587", "type": "string" }, "start_date": { - "$ref": "#/definitions/anime.FuzzyDate" + "allOf": [ + { + "$ref": "#/definitions/anime.FuzzyDate" + } + ], + "description": "Date the title started airing or publishing." }, "status": { + "description": "Release status, for example `FINISHED` or `RELEASING`.", "example": "FINISHED", "type": "string" }, "studios": { + "description": "Names of the animation studios.", "example": [ "MADHOUSE" ], @@ -5435,23 +5643,32 @@ "type": "array" }, "tags": { + "description": "Community tags of the title, each with a relevance rank.", "items": { "$ref": "#/definitions/anime.MediaTag" }, "type": "array" }, "title": { - "$ref": "#/definitions/anime.MediaTitle" + "allOf": [ + { + "$ref": "#/definitions/anime.MediaTitle" + } + ], + "description": "Title in romaji, English and native script." }, "trending": { + "description": "AniList trending score of the title.", "example": 120, "type": "integer" }, "type": { + "description": "Kind of title: `ANIME` or `MANGA`.", "example": "ANIME", "type": "string" }, "volumes": { + "description": "Number of volumes, for manga.", "type": "integer" } }, @@ -5460,17 +5677,21 @@ "anime.MediaTag": { "properties": { "category": { + "description": "Group the tag belongs to, for example `Cast-Main Cast`.", "example": "Cast-Main Cast", "type": "string" }, "is_spoiler": { + "description": "True when the tag is a spoiler.", "type": "boolean" }, "name": { + "description": "Tag name, for example `Elf`.", "example": "Elf", "type": "string" }, "rank": { + "description": "How strongly the tag applies to the title, from 0 to 100.", "example": 91, "type": "integer" } @@ -5480,14 +5701,17 @@ "anime.MediaTitle": { "properties": { "english": { + "description": "Official English title.", "example": "Frieren: Beyond Journey's End", "type": "string" }, "native": { + "description": "Title in its original language and script.", "example": "葬送のフリーレン", "type": "string" }, "romaji": { + "description": "Title in Latin script (romaji).", "example": "Sousou no Frieren", "type": "string" } @@ -5497,14 +5721,17 @@ "anime.NextAiringEpisode": { "properties": { "airing_at": { + "description": "Time the next episode airs, in Unix seconds.", "example": 1704900600, "type": "integer" }, "episode": { + "description": "Episode number that airs next.", "example": 13, "type": "integer" }, "time_until_airing": { + "description": "Seconds until the next episode airs.", "example": 259200, "type": "integer" } @@ -5608,28 +5835,34 @@ "anime.SearchResponse": { "properties": { "has_next_page": { + "description": "True when more pages of results are available.", "example": false, "type": "boolean" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "per_page": { + "description": "Number of results per page.", "example": 10, "type": "integer" }, "query": { + "description": "Search text that was run.", "example": "Frieren", "type": "string" }, "results": { + "description": "Matching titles on this page.", "items": { "$ref": "#/definitions/anime.Media" }, "type": "array" }, "total": { + "description": "Total number of matching titles.", "example": 1, "type": "integer" } @@ -7250,60 +7483,78 @@ "applebooks.Audiobook": { "properties": { "artist_id": { + "description": "Apple Books id of the author.", "type": "integer" }, "artist_name": { + "description": "Name of the author as Apple Books lists it.", "type": "string" }, "artist_url": { + "description": "Apple Books page URL of the author.", "type": "string" }, "artwork_url": { + "description": "URL of the audiobook cover artwork.", "type": "string" }, "book_id": { + "description": "Apple Books id of the matching ebook edition, when one exists.", "type": "integer" }, "currency": { + "description": "Currency code of `price`, such as `USD`.", "type": "string" }, "description": { + "description": "Audiobook description as shown on Apple Books.", "type": "string" }, "duration_seconds": { + "description": "Length of the audiobook, in seconds.", "type": "integer" }, "free": { + "description": "Whether the audiobook is free, meaning its price is 0.", "type": "boolean" }, "genres": { + "description": "Genres Apple Books files the audiobook under.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "Apple Books audiobook id.", "type": "integer" }, "name": { + "description": "Title of the audiobook as Apple Books shows it.", "type": "string" }, "narrator": { + "description": "Name of the narrator.", "type": "string" }, "preview_url": { + "description": "URL of an audio preview sample.", "type": "string" }, "price": { + "description": "Audiobook price in the currency given by `currency`.", "type": "number" }, "provider": { + "description": "Publisher or provider Apple Books credits for the audiobook.", "type": "string" }, "rating": { + "description": "Average customer rating of the audiobook.", "type": "number" }, "rating_count": { + "description": "Number of customer ratings the audiobook has received.", "type": "integer" }, "rating_histogram": { @@ -7311,18 +7562,23 @@ "format": "int64", "type": "integer" }, + "description": "Number of ratings for each star value, keyed `1` to `5`.", "type": "object" }, "release_date": { + "description": "Release date of the audiobook, in ISO 8601 format.", "type": "string" }, "series_id": { + "description": "Apple Books id of the series the audiobook belongs to.", "type": "integer" }, "series_name": { + "description": "Name of the series the audiobook belongs to.", "type": "string" }, "url": { + "description": "Apple Books page URL of the audiobook.", "type": "string" } }, @@ -7502,21 +7758,27 @@ "applebooks.Review": { "properties": { "date": { + "description": "Date and time the review was posted, in ISO 8601 format.", "type": "string" }, "id": { + "description": "Apple Books review id.", "type": "string" }, "rating": { + "description": "Star rating the reviewer gave, from 1 to 5.", "type": "integer" }, "text": { + "description": "Full text of the review.", "type": "string" }, "title": { + "description": "Review headline written by the reviewer.", "type": "string" }, "user_name": { + "description": "Display name of the reviewer.", "type": "string" } }, @@ -9694,18 +9956,22 @@ "applepodcasts.ChartRankingItem": { "properties": { "artist_name": { + "description": "Name of the show's publisher or creator. Empty for channels.", "type": "string" }, "artwork_url": { + "description": "Artwork URL template. Replace `{w}`, `{h}` and `{f}` with the width, height and image format you want.", "type": "string" }, "genres": { + "description": "Genre names the entry is filed under. Empty for channels.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "Apple Podcasts id of the show, episode or channel.", "type": "integer" }, "kind": { @@ -9713,21 +9979,27 @@ "type": "string" }, "name": { + "description": "Name of the show, episode or channel.", "type": "string" }, "rank": { + "description": "Position of the entry in the chart, starting at 1.", "type": "integer" }, "release_date": { + "description": "Release time of the entry, in ISO 8601 (UTC).", "type": "string" }, "show_id": { + "description": "Apple Podcasts id of the show an episode belongs to. Set only for episode charts.", "type": "integer" }, "show_name": { + "description": "Name of the show an episode belongs to. Set only for episode charts.", "type": "string" }, "url": { + "description": "Apple Podcasts page URL of the entry.", "type": "string" } }, @@ -9736,18 +10008,22 @@ "applepodcasts.ChartRankingsResult": { "properties": { "chart": { + "description": "Chart algorithm that was returned: `top`, `top-subscriber` or `top-series`.", "type": "string" }, "display_name": { + "description": "Chart title as Apple Podcasts shows it, for example `Top Shows`.", "type": "string" }, "items": { + "description": "Chart entries in rank order.", "items": { "$ref": "#/definitions/applepodcasts.ChartRankingItem" }, "type": "array" }, "type": { + "description": "Kind of entry in the chart: `podcasts`, `podcast-episodes` or `podcast-channels`.", "type": "string" } }, @@ -9756,18 +10032,22 @@ "applepodcasts.EditorialItem": { "properties": { "artist_name": { + "description": "Name of the show's publisher or creator.", "type": "string" }, "artwork_url": { + "description": "Artwork URL template. Replace `{w}`, `{h}` and `{f}` with the width, height and image format you want.", "type": "string" }, "genres": { + "description": "Genre names the item is filed under.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "Apple Podcasts id of the show, episode or channel.", "type": "integer" }, "kind": { @@ -9775,18 +10055,23 @@ "type": "string" }, "name": { + "description": "Name of the show, episode or channel.", "type": "string" }, "release_date": { + "description": "Release time of the item, in ISO 8601 (UTC).", "type": "string" }, "show_id": { + "description": "Apple Podcasts id of the show an episode belongs to.", "type": "integer" }, "show_name": { + "description": "Name of the show an episode belongs to.", "type": "string" }, "url": { + "description": "Apple Podcasts page URL of the item.", "type": "string" } }, @@ -9795,12 +10080,14 @@ "applepodcasts.EditorialShelf": { "properties": { "items": { + "description": "Shows or episodes featured on the shelf, in display order.", "items": { "$ref": "#/definitions/applepodcasts.EditorialItem" }, "type": "array" }, "title": { + "description": "Shelf title as shown on the Apple Podcasts New page, for example `New Shows`.", "type": "string" } }, @@ -9809,9 +10096,11 @@ "applepodcasts.Genre": { "properties": { "id": { + "description": "Apple genre id.", "type": "string" }, "name": { + "description": "Genre name as Apple Podcasts shows it.", "type": "string" } }, @@ -9820,6 +10109,7 @@ "applepodcasts.NewShelvesResult": { "properties": { "shelves": { + "description": "Editorial shelves from the Apple Podcasts New page, in display order.", "items": { "$ref": "#/definitions/applepodcasts.EditorialShelf" }, @@ -9831,42 +10121,55 @@ "applepodcasts.PodcastChartItem": { "properties": { "artist_name": { + "description": "Name of the show's publisher or creator.", "type": "string" }, "artist_url": { + "description": "Apple Podcasts page URL of the publisher or creator.", "type": "string" }, "artwork_url": { + "description": "URL of the show artwork image.", "type": "string" }, "currency": { + "description": "Currency code of `price`.", "type": "string" }, "description": { + "description": "Show description as shown in the chart.", "type": "string" }, "free": { + "description": "Whether the show is free, meaning `price` is 0.", "type": "boolean" }, "genre": { + "description": "Name of the genre the chart entry is filed under.", "type": "string" }, "genre_id": { + "description": "Apple genre id of the chart entry. Use it as the chart genre filter.", "type": "integer" }, "id": { + "description": "Apple Podcasts id of the show.", "type": "integer" }, "name": { + "description": "Show name as listed in the chart.", "type": "string" }, "price": { + "description": "Price of the show in the currency given by `currency`.", "type": "number" }, "release_date": { + "description": "Release date and time of the show, in ISO 8601 with a UTC offset.", "type": "string" }, "url": { + "description": "Apple Podcasts page URL of the show.", "type": "string" } }, @@ -9875,75 +10178,98 @@ "applepodcasts.PodcastEpisode": { "properties": { "artwork_url_160": { + "description": "URL of the episode artwork image, 160 pixels wide.", "type": "string" }, "artwork_url_60": { + "description": "URL of the episode artwork image, 60 pixels wide.", "type": "string" }, "artwork_url_600": { + "description": "URL of the episode artwork image, 600 pixels wide.", "type": "string" }, "closed_captioning": { + "description": "Closed captioning flag Apple reports for the episode.", "type": "string" }, "content_advisory_rating": { + "description": "Content advisory rating Apple gives the episode.", "type": "string" }, "country": { + "description": "Storefront country code of the episode.", "type": "string" }, "description": { + "description": "Full episode description.", "type": "string" }, "duration_millis": { + "description": "Episode length in milliseconds.", "type": "integer" }, "episode_content_type": { + "description": "Media type of the episode file.", "type": "string" }, "episode_file_extension": { + "description": "File extension of the episode media file.", "type": "string" }, "episode_guid": { + "description": "Episode GUID from the show's feed.", "type": "string" }, "episode_url": { + "description": "URL of the episode media file.", "type": "string" }, "feed_url": { + "description": "URL of the show's RSS feed.", "type": "string" }, "genres": { + "description": "Genres the episode is filed under.", "items": { "$ref": "#/definitions/applepodcasts.Genre" }, "type": "array" }, "id": { + "description": "Apple Podcasts id of the episode.", "type": "integer" }, "preview_url": { + "description": "URL of the episode audio or video preview.", "type": "string" }, "release_date": { + "description": "Date and time the episode was released, as Apple returns it.", "type": "string" }, "short_description": { + "description": "Short episode description.", "type": "string" }, "show_id": { + "description": "Apple Podcasts id of the show the episode belongs to.", "type": "integer" }, "show_name": { + "description": "Name of the show the episode belongs to.", "type": "string" }, "show_url": { + "description": "Apple Podcasts page URL of the show.", "type": "string" }, "title": { + "description": "Episode title as shown on Apple Podcasts.", "type": "string" }, "url": { + "description": "Apple Podcasts page URL of the episode.", "type": "string" } }, @@ -9952,75 +10278,97 @@ "applepodcasts.PodcastShow": { "properties": { "artist_id": { + "description": "Apple id of the show's publisher or creator.", "type": "integer" }, "artist_name": { + "description": "Name of the show's publisher or creator.", "type": "string" }, "artist_url": { + "description": "Apple Podcasts page URL of the publisher or creator.", "type": "string" }, "artwork_url_100": { + "description": "URL of the show artwork image, 100 pixels wide.", "type": "string" }, "artwork_url_30": { + "description": "URL of the show artwork image, 30 pixels wide.", "type": "string" }, "artwork_url_60": { + "description": "URL of the show artwork image, 60 pixels wide.", "type": "string" }, "artwork_url_600": { + "description": "URL of the show artwork image, 600 pixels wide.", "type": "string" }, "collection_explicitness": { + "description": "Explicitness label Apple gives the show collection.", "type": "string" }, "collection_name": { + "description": "Show name as listed in the collection.", "type": "string" }, "content_advisory_rating": { + "description": "Content advisory rating Apple gives the show.", "type": "string" }, "country": { + "description": "Storefront country code of the show.", "type": "string" }, "currency": { + "description": "Currency code Apple lists for the show.", "type": "string" }, "feed_url": { + "description": "URL of the show's RSS feed.", "type": "string" }, "genre_ids": { + "description": "Apple genre ids the show is filed under.", "items": { "type": "string" }, "type": "array" }, "genres": { + "description": "Names of the genres the show is filed under.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "Apple Podcasts id of the show.", "type": "integer" }, "primary_genre_name": { + "description": "Name of the show's main genre.", "type": "string" }, "release_date": { + "description": "Release date and time Apple lists for the show, as Apple returns it.", "type": "string" }, "track_count": { + "description": "Number of episodes Apple reports for the show.", "type": "integer" }, "track_explicitness": { + "description": "Explicitness label Apple gives the show's track entry.", "type": "string" }, "track_name": { + "description": "Show name as listed on the track entry.", "type": "string" }, "url": { + "description": "Apple Podcasts page URL of the show.", "type": "string" } }, @@ -10029,24 +10377,30 @@ "applepodcasts.RelatedShow": { "properties": { "artist_name": { + "description": "Name of the related show's publisher or creator.", "type": "string" }, "artwork_url": { + "description": "Artwork URL template. Replace `{w}`, `{h}` and `{f}` with the width, height and image format you want.", "type": "string" }, "genres": { + "description": "Genre names the related show is filed under.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "Apple Podcasts id of the related show.", "type": "integer" }, "name": { + "description": "Name of the related show.", "type": "string" }, "url": { + "description": "Apple Podcasts page URL of the related show.", "type": "string" } }, @@ -10055,9 +10409,11 @@ "applepodcasts.RelatedShowsResult": { "properties": { "show_id": { + "description": "Apple Podcasts id of the show the recommendations are for.", "type": "integer" }, "shows": { + "description": "Shows listed under You Might Also Like for the requested show.", "items": { "$ref": "#/definitions/applepodcasts.RelatedShow" }, @@ -10069,13 +10425,19 @@ "applepodcasts.ShowEpisodesResult": { "properties": { "episodes": { + "description": "Episodes of the show.", "items": { "$ref": "#/definitions/applepodcasts.PodcastEpisode" }, "type": "array" }, "show": { - "$ref": "#/definitions/applepodcasts.PodcastShow" + "allOf": [ + { + "$ref": "#/definitions/applepodcasts.PodcastShow" + } + ], + "description": "Show the episodes belong to." } }, "type": "object" @@ -10220,51 +10582,65 @@ "appstore.App": { "properties": { "app_id": { + "description": "Bundle ID of the app, for example `com.openai.chat`.", "type": "string" }, "appletv_screenshots": { + "description": "URLs of the app's Apple TV screenshots.", "items": { "type": "string" }, "type": "array" }, "content_rating": { + "description": "Age rating of the app, for example `4+`.", "type": "string" }, "currency": { + "description": "Currency code of `price`.", "type": "string" }, "current_version_reviews": { + "description": "Number of user ratings for the current version.", "type": "integer" }, "current_version_score": { + "description": "Average user rating of the current version.", "type": "number" }, "description": { + "description": "Full description of the app from its App Store page.", "type": "string" }, "developer": { + "description": "Name of the app's developer.", "type": "string" }, "developer_id": { + "description": "App Store ID of the developer.", "type": "integer" }, "developer_url": { + "description": "App Store page URL of the developer.", "type": "string" }, "developer_website": { + "description": "Website URL the developer lists for the app.", "type": "string" }, "free": { + "description": "`true` when `price` is 0.", "type": "boolean" }, "genre_ids": { + "description": "IDs of all genres the app is listed under.", "items": { "type": "string" }, "type": "array" }, "genres": { + "description": "Names of all genres the app is listed under.", "items": { "type": "string" }, @@ -10275,21 +10651,26 @@ "format": "int64", "type": "integer" }, + "description": "Number of ratings for each star value, keyed by star value. Present only when `ratings=true` was requested.", "type": "object" }, "icon": { + "description": "URL of the app icon.", "type": "string" }, "id": { + "description": "App Store numeric track ID of the app.", "type": "integer" }, "ipad_screenshots": { + "description": "URLs of the app's iPad screenshots.", "items": { "type": "string" }, "type": "array" }, "languages": { + "description": "Languages the app supports, as two-letter ISO codes.", "items": { "type": "string" }, @@ -10303,57 +10684,73 @@ "type": "array" }, "price": { + "description": "Price of the app in `currency`. It is 0 for free apps.", "type": "number" }, "primary_genre": { + "description": "Name of the app's primary genre.", "type": "string" }, "primary_genre_id": { + "description": "App Store ID of the app's primary genre.", "type": "integer" }, "ratings": { + "description": "Total number of user ratings. Present only when `ratings=true` was requested.", "type": "integer" }, "release_notes": { + "description": "Release notes of the current version.", "type": "string" }, "released": { + "description": "Date and time the app was first released, in ISO 8601.", "type": "string" }, "required_os_version": { + "description": "Minimum operating system version the app needs.", "type": "string" }, "reviews": { + "description": "Number of user ratings the app has across all versions.", "type": "integer" }, "score": { + "description": "Average user rating of the app across all versions.", "type": "number" }, "screenshots": { + "description": "URLs of the app's screenshots.", "items": { "type": "string" }, "type": "array" }, "size": { + "description": "File size of the app in bytes, given as a string.", "type": "string" }, "supported_devices": { + "description": "Device model identifiers the app supports.", "items": { "type": "string" }, "type": "array" }, "title": { + "description": "Name of the app.", "type": "string" }, "updated": { + "description": "Date and time the current version was released, in ISO 8601.", "type": "string" }, "url": { + "description": "App Store page URL of the app.", "type": "string" }, "version": { + "description": "Current version number of the app.", "type": "string" } }, @@ -10461,9 +10858,11 @@ "appstore.EditorialItem": { "properties": { "age_rating": { + "description": "Age rating shown on the item, for example `4+`.", "type": "string" }, "bundle_id": { + "description": "Bundle ID of the app, when the item is a single app.", "type": "string" }, "destination_id": { @@ -10471,6 +10870,7 @@ "type": "string" }, "developer_name": { + "description": "Name of the developer shown on the item.", "type": "string" }, "icon_url": { @@ -10486,15 +10886,19 @@ "type": "string" }, "rating": { + "description": "Average rating shown on the item.", "type": "number" }, "rating_count": { + "description": "Number of ratings shown on the item.", "type": "integer" }, "subtitle": { + "description": "Subtitle shown on the item.", "type": "string" }, "title": { + "description": "Title shown on the item.", "type": "string" }, "url": { @@ -10507,9 +10911,11 @@ "appstore.EditorialPage": { "properties": { "device": { + "description": "Apple device catalog of the page: `iphone`, `ipad`, `mac`, `vision`, `watch` or `tv`.", "type": "string" }, "page_id": { + "description": "Apple's ID for the editorial page.", "type": "string" }, "section": { @@ -10517,15 +10923,18 @@ "type": "string" }, "seo_title": { + "description": "Page title used for search results and browser tabs.", "type": "string" }, "shelves": { + "description": "Content shelves on the page, in display order.", "items": { "$ref": "#/definitions/appstore.EditorialShelf" }, "type": "array" }, "title": { + "description": "Title of the editorial page.", "type": "string" } }, @@ -10534,12 +10943,15 @@ "appstore.EditorialShelf": { "properties": { "content_type": { + "description": "Layout style Apple uses to show the shelf, for example `smallLockup`.", "type": "string" }, "id": { + "description": "Apple's ID for the shelf.", "type": "string" }, "items": { + "description": "Items shown in the shelf.", "items": { "$ref": "#/definitions/appstore.EditorialItem" }, @@ -10555,15 +10967,18 @@ "appstore.PrivacyCategory": { "properties": { "data_category": { + "description": "Name of the data category the app handles.", "type": "string" }, "data_types": { + "description": "Types of data in this category.", "items": { "type": "string" }, "type": "array" }, "identifier": { + "description": "Apple's identifier for the data category.", "type": "string" } }, @@ -10572,12 +10987,15 @@ "appstore.PrivacyDetails": { "properties": { "manage_privacy_choices_url": { + "description": "URL where users can manage their privacy choices for the app.", "type": "string" }, "privacy_policy_url": { + "description": "URL of the app's privacy policy.", "type": "string" }, "privacy_types": { + "description": "Privacy types the app declares, each with the data it covers.", "items": { "$ref": "#/definitions/appstore.PrivacyType" }, @@ -10589,15 +11007,18 @@ "appstore.PrivacyPurpose": { "properties": { "data_categories": { + "description": "Data categories collected for this purpose.", "items": { "$ref": "#/definitions/appstore.PrivacyCategory" }, "type": "array" }, "identifier": { + "description": "Apple's identifier for the purpose.", "type": "string" }, "purpose": { + "description": "Name of the purpose the data is used for.", "type": "string" } }, @@ -10606,21 +11027,26 @@ "appstore.PrivacyType": { "properties": { "data_categories": { + "description": "Data categories collected under this privacy type.", "items": { "$ref": "#/definitions/appstore.PrivacyCategory" }, "type": "array" }, "description": { + "description": "Apple's description of the privacy type.", "type": "string" }, "identifier": { + "description": "Apple's identifier for the privacy type.", "type": "string" }, "privacy_type": { + "description": "Name of the privacy type.", "type": "string" }, "purposes": { + "description": "Purposes the data is used for under this privacy type.", "items": { "$ref": "#/definitions/appstore.PrivacyPurpose" }, @@ -10636,9 +11062,11 @@ "format": "int64", "type": "integer" }, + "description": "Number of ratings for each star value, keyed by star value.", "type": "object" }, "ratings": { + "description": "Total number of user ratings.", "type": "integer" } }, @@ -10647,30 +11075,39 @@ "appstore.Review": { "properties": { "id": { + "description": "App Store review ID.", "type": "string" }, "score": { + "description": "Rating the reviewer gave the app.", "type": "integer" }, "text": { + "description": "Text of the review.", "type": "string" }, "title": { + "description": "Headline of the review.", "type": "string" }, "updated": { + "description": "Date and time the review was last updated, in ISO 8601.", "type": "string" }, "url": { + "description": "URL of the review.", "type": "string" }, "user_name": { + "description": "Display name of the reviewer.", "type": "string" }, "user_url": { + "description": "URL of the reviewer's profile.", "type": "string" }, "version": { + "description": "App version the review was written for.", "type": "string" } }, @@ -10679,6 +11116,7 @@ "appstore.Suggestion": { "properties": { "term": { + "description": "Suggested search term.", "type": "string" } }, @@ -10687,15 +11125,19 @@ "appstore.VersionHistoryItem": { "properties": { "release_date": { + "description": "Release date of the version, as `YYYY-MM-DD`.", "type": "string" }, "release_notes": { + "description": "Release notes of the version.", "type": "string" }, "release_timestamp": { + "description": "Release time of the version, in RFC 3339.", "type": "string" }, "version_display": { + "description": "Version number as shown on the App Store.", "type": "string" } }, @@ -14260,6 +14702,11 @@ "business_started": { "type": "string" }, + "canonical_url": { + "description": "BBB's own address for the profile, from the page. It differs from url when BBB has since changed the address, for example after moving the business to another local BBB: the business number at the end stays the same and the four-digit local BBB number before it changes.", + "example": "https://www.bbb.org/us/tx/austin/profile/plumber/calixto-plumbing-0825-1000223803", + "type": "string" + }, "categories": { "items": { "type": "string" @@ -15059,6 +15506,15 @@ "example": true, "type": "boolean" }, + "published_news_title": { + "example": "News and Events", + "type": "string" + }, + "published_news_url": { + "description": "The first BBB-published program tile that links to a newsroom route.\nIt is absent when the chapter does not publish a matching tile.", + "example": "https://www.bbb.org/us/tx/amarillo/news", + "type": "string" + }, "service_territory": { "items": { "type": "string" @@ -15282,6 +15738,9 @@ "published_at": { "type": "string" }, + "requested_url": { + "type": "string" + }, "source_url": { "type": "string" }, @@ -15351,7 +15810,7 @@ "type": "string" }, "id": { - "description": "BBB's id of the story or event.", + "description": "BBB's id of the story, event, or related local-service card.", "example": "32431", "type": "string" }, @@ -15368,11 +15827,12 @@ "type": "string" }, "type": { - "description": "BBB's content type: Article for a story, or an event type for a record that carries event_start_date.", + "description": "BBB's content type: Article for a story, an event type for an event, or Near Me for a related local-service card.", "example": "Article", "type": "string" }, "url": { + "description": "Canonical BBB article URL, event URL, or related-service URL, according to Type.", "type": "string" } }, @@ -15394,8 +15854,13 @@ "example": "us", "type": "string" }, + "has_more": { + "description": "True while a later page exists; request page + 1 next and stop when it is false.", + "example": true, + "type": "boolean" + }, "items": { - "description": "The stories on this page, in BBB's order.", + "description": "BBB's newsroom cards on this page, in source order. Near Me cards are preserved with type \"Near Me\".", "items": { "$ref": "#/definitions/bbbnews.NewsItem" }, @@ -15436,9 +15901,107 @@ "type": "string" }, "total": { - "description": "Number of stories in the list across all pages.", + "description": "BBB's count of stories in the list. It can be slightly higher than the number of stories the pages hold.", "example": 279, "type": "integer" + }, + "total_pages": { + "description": "Number of pages BBB serves for the list, from its own pager; at least 1.", + "example": 28, + "type": "integer" + } + }, + "type": "object" + }, + "bbbnews.PageResponse": { + "properties": { + "article_id": { + "description": "The numeric ID in the requested URL when that was an article URL. The\nevergreen page does not carry it.", + "example": "14400", + "type": "string" + }, + "body": { + "description": "The page text in reading order: one paragraph, heading, list item or\ntable cell per block, separated by blank lines.", + "type": "string" + }, + "canonical_url": { + "description": "The address the page declares for itself.", + "example": "https://www.bbb.org/all/consumer/tip/what-to-know-before-purchasing-a-gift-card", + "type": "string" + }, + "description": { + "description": "The page's search description.", + "type": "string" + }, + "final_url": { + "description": "The evergreen page the content was read from.", + "example": "https://www.bbb.org/all/consumer/tip/what-to-know-before-purchasing-a-gift-card", + "type": "string" + }, + "image": { + "$ref": "#/definitions/bbbnews.Image" + }, + "links": { + "description": "The links in the introduction and body, each once.", + "items": { + "$ref": "#/definitions/bbbnews.Link" + }, + "type": "array" + }, + "modified_at": { + "description": "When BBB last edited the page, in UTC. Not the date of a story the\npage replaced.", + "example": "2025-09-16T17:40:48Z", + "type": "string" + }, + "page_type": { + "description": "BBB's own name for the page template, passed through unchanged.", + "example": "openmicrositepage", + "type": "string" + }, + "published_at": { + "description": "Always null: BBB publishes no date for these pages. A value appears\nonly if BBB starts writing one into the page.", + "type": "string", + "x-nullable": true + }, + "redirects": { + "description": "Every redirect between requested_url and final_url, in order. Empty\nwhen the requested URL is the evergreen page itself.", + "items": { + "$ref": "#/definitions/bbbnews.RedirectHop" + }, + "type": "array" + }, + "requested_url": { + "description": "The URL that was asked for, without any query string.", + "example": "https://www.bbb.org/article/news-releases/14400-dont-get-scammed-out-of-a-gift-card-this-season", + "type": "string" + }, + "summary": { + "description": "The introduction shown under the title, when the page has one.", + "type": "string" + }, + "title": { + "example": "What to know before purchasing a gift card", + "type": "string" + } + }, + "type": "object" + }, + "bbbnews.RedirectHop": { + "properties": { + "location": { + "description": "The address BBB redirected to.", + "example": "https://www.bbb.org/all/consumer/tip/what-to-know-before-purchasing-a-gift-card", + "type": "string" + }, + "status": { + "description": "The HTTP status BBB answered with.", + "example": 301, + "type": "integer" + }, + "url": { + "description": "The address that was requested.", + "example": "https://www.bbb.org/article/news-releases/14400-dont-get-scammed-out-of-a-gift-card-this-season", + "type": "string" } }, "type": "object" @@ -15619,6 +16182,10 @@ "example": "2026-01-31", "type": "string" }, + "has_more": { + "description": "Whether page+1 exists. When the page count is unknown, true while the\npage is full. Request the next page only while this is true.", + "type": "boolean" + }, "max_dollars_lost": { "example": 1000000, "type": "integer" @@ -15656,6 +16223,11 @@ "example": "TX", "type": "string" }, + "total_pages": { + "description": "The last page of this search, from BBB's result count. Omitted when\nthat count is a lower bound (total_results_lower_bound) or missing.", + "example": 74738, + "type": "integer" + }, "total_results": { "example": 747374, "type": "integer" @@ -16125,7 +16697,7 @@ "type": "array" }, "count": { - "example": 25, + "example": 21, "type": "integer" }, "fetched_at": { @@ -16140,7 +16712,7 @@ "bestbuy.Category": { "properties": { "id": { - "example": "pcmcat1690836748285", + "example": "abcat0100000", "type": "string" }, "name": { @@ -19520,10 +20092,12 @@ "bing.ContextAttribute": { "properties": { "label": { + "description": "Name of the fact, for example `Founded`.", "example": "Founded", "type": "string" }, "value": { + "description": "Value of the fact, for example `2015`.", "example": "2015", "type": "string" } @@ -19533,38 +20107,47 @@ "bing.ImageResult": { "properties": { "height": { + "description": "Image height as Bing reports it.", "example": 800, "type": "integer" }, "image_url": { + "description": "URL of the full-size image.", "example": "https://www.example.com/openai-logo.jpg", "type": "string" }, "position": { + "description": "Rank of the image across all result pages, starting at 1.", "example": 1, "type": "integer" }, "source": { + "description": "Site the image comes from, for example `example.com`.", "example": "example.com", "type": "string" }, "source_url": { + "description": "URL of the page that hosts the image.", "example": "https://www.example.com/openai-logo", "type": "string" }, "thumbnail": { + "description": "URL of the image thumbnail served by Bing.", "example": "https://th.bing.com/th/id/OIP.example", "type": "string" }, "title": { + "description": "Image title as shown on the Bing results page.", "example": "OpenAI logo", "type": "string" }, "url": { + "description": "URL Bing links the image result to.", "example": "https://www.example.com/openai-logo", "type": "string" }, "width": { + "description": "Image width as Bing reports it.", "example": 1200, "type": "integer" } @@ -19574,9 +20157,15 @@ "bing.ImagesResponse": { "properties": { "pagination": { - "$ref": "#/definitions/bing.SearchPagination" + "allOf": [ + { + "$ref": "#/definitions/bing.SearchPagination" + } + ], + "description": "Paging information for this response." }, "results": { + "description": "Image results in Bing's order.", "items": { "$ref": "#/definitions/bing.ImageResult" }, @@ -19588,9 +20177,15 @@ "bing.NewsResponse": { "properties": { "pagination": { - "$ref": "#/definitions/bing.SearchPagination" + "allOf": [ + { + "$ref": "#/definitions/bing.SearchPagination" + } + ], + "description": "Paging information for this response." }, "results": { + "description": "News results in Bing's order.", "items": { "$ref": "#/definitions/bing.NewsResult" }, @@ -19602,38 +20197,47 @@ "bing.NewsResult": { "properties": { "age": { + "description": "How long ago the article was published, as Bing shows it.", "example": "2 hours ago", "type": "string" }, "age_timestamp": { + "description": "Publication time of the article as Unix seconds in UTC. Omitted when it cannot be worked out from `age`.", "example": 1713513600, "type": "integer" }, "description": { + "description": "Article snippet as shown on the Bing results page.", "example": "OpenAI announced a new model release.", "type": "string" }, "position": { + "description": "Rank of the article in the news block, starting at 1.", "example": 1, "type": "integer" }, "related_count": { + "description": "Number of additional relevant news articles Bing groups with this story.", "example": 30, "type": "integer" }, "source": { + "description": "Name of the publication, for example `Reuters`.", "example": "Reuters", "type": "string" }, "thumbnail": { + "description": "URL of the article thumbnail.", "example": "https://example.com/openai-news.jpg", "type": "string" }, "title": { + "description": "Article headline as shown on the Bing results page.", "example": "OpenAI announces new model", "type": "string" }, "url": { + "description": "URL of the news article.", "example": "https://example.com/openai-news", "type": "string" } @@ -19643,28 +20247,34 @@ "bing.SearchContext": { "properties": { "attributes": { + "description": "Key facts Bing lists in the knowledge panel.", "items": { "$ref": "#/definitions/bing.ContextAttribute" }, "type": "array" }, "description": { + "description": "Description text shown in the knowledge panel.", "example": "OpenAI is an AI research and deployment company.", "type": "string" }, "image": { + "description": "URL of the knowledge panel image.", "example": "https://example.com/openai.jpg", "type": "string" }, "subtitle": { + "description": "Short descriptor shown under the knowledge panel title.", "example": "Artificial intelligence research organization", "type": "string" }, "title": { + "description": "Name of the entity in the knowledge panel.", "example": "OpenAI", "type": "string" }, "url": { + "description": "URL of the entity's main website or source page.", "example": "https://openai.com/", "type": "string" } @@ -19674,18 +20284,22 @@ "bing.SearchPagination": { "properties": { "count": { + "description": "Number of results requested per page.", "example": 10, "type": "integer" }, "next_page": { + "description": "Page number of the next page. Omitted when there is no next page.", "example": 2, "type": "integer" }, "page": { + "description": "Page number of this response, starting at 1.", "example": 1, "type": "integer" }, "previous_page": { + "description": "Page number of the previous page. Omitted on the first page.", "example": 1, "type": "integer" } @@ -19695,7 +20309,12 @@ "bing.SearchResponse": { "properties": { "context": { - "$ref": "#/definitions/bing.SearchContext" + "allOf": [ + { + "$ref": "#/definitions/bing.SearchContext" + } + ], + "description": "Knowledge panel Bing shows for the query. Omitted when there is none." }, "low_confidence": { "description": "LowConfidence is true when Bing returned a well-formed page whose\norganic results share no significant term with the query -- a known\nupstream anomaly where Bing serves an unrelated SERP for certain\nmulti-word queries instead of a challenge page or an error. The\nfields above are exactly what Bing\nreturned; nothing is fabricated, reordered, or filtered. Treat a true\nvalue as a hint to double-check relevance (or retry) before trusting\nthe results, not as a guarantee they are wrong -- some low-confidence\nresponses are still perfectly good, they just didn't literally repeat\na distinctive word from the query. Omitted (false) on every ordinary\nresponse.", @@ -19703,33 +20322,43 @@ "type": "boolean" }, "news": { + "description": "News results Bing shows for the query. Omitted when there are none.", "items": { "$ref": "#/definitions/bing.NewsResult" }, "type": "array" }, "pagination": { - "$ref": "#/definitions/bing.SearchPagination" + "allOf": [ + { + "$ref": "#/definitions/bing.SearchPagination" + } + ], + "description": "Paging information for this response." }, "people_also_ask": { + "description": "Questions from Bing's People also ask block.", "items": { "type": "string" }, "type": "array" }, "related_queries": { + "description": "Related searches Bing suggests for the query.", "items": { "type": "string" }, "type": "array" }, "results": { + "description": "Organic web results in Bing's order.", "items": { "$ref": "#/definitions/bing.SearchResult" }, "type": "array" }, "videos": { + "description": "Video results Bing shows for the query. Omitted when there are none.", "items": { "$ref": "#/definitions/bing.VideoResult" }, @@ -19741,38 +20370,47 @@ "bing.SearchResult": { "properties": { "age": { + "description": "Date or age shown on the result, as Bing shows it. Omitted when Bing shows none.", "example": "Apr 19, 2023", "type": "string" }, "age_timestamp": { + "description": "Time from `age` as Unix seconds in UTC. Omitted when it cannot be worked out.", "example": 1713484800, "type": "integer" }, "description": { + "description": "Result snippet as shown on the Bing results page.", "example": "OpenAI is an AI research and deployment company.", "type": "string" }, "display_url": { + "description": "URL as displayed under the result title on Bing.", "example": "https://www.reddit.com > OpenAI", "type": "string" }, "favicon": { + "description": "URL of the site's favicon as Bing serves it.", "example": "https://th.bing.com/th/id/ODLS.example?w=32&h=32", "type": "string" }, "hostname": { + "description": "Host name of the result URL.", "example": "www.reddit.com", "type": "string" }, "position": { + "description": "Rank of the result across all pages for the query, starting at 1.", "example": 1, "type": "integer" }, "title": { + "description": "Result title as shown on the Bing results page.", "example": "OpenAI - Reddit", "type": "string" }, "url": { + "description": "URL of the result page.", "example": "https://www.reddit.com/r/OpenAI/", "type": "string" } @@ -19782,10 +20420,12 @@ "bing.SuggestResponse": { "properties": { "query": { + "description": "Query prefix the suggestions were requested for.", "example": "openai", "type": "string" }, "suggestions": { + "description": "Search suggestions Bing returned, in order.", "items": { "$ref": "#/definitions/bing.SuggestionResult" }, @@ -19797,14 +20437,17 @@ "bing.SuggestionEntity": { "properties": { "description": { + "description": "Short description of the entity.", "example": "American AI company", "type": "string" }, "image_url": { + "description": "URL of the entity's image.", "example": "https://ts3.tc.mm.bing.net/th/id/OSK.example?w=120&h=120", "type": "string" }, "name": { + "description": "Name of the entity.", "example": "OpenAI", "type": "string" } @@ -19814,13 +20457,20 @@ "bing.SuggestionResult": { "properties": { "entity": { - "$ref": "#/definitions/bing.SuggestionEntity" + "allOf": [ + { + "$ref": "#/definitions/bing.SuggestionEntity" + } + ], + "description": "Entity Bing matched to the suggestion. Only set when the request used `rich=true` and Bing recognises an entity." }, "position": { + "description": "Rank of the suggestion in the list, starting at 1.", "example": 1, "type": "integer" }, "query": { + "description": "Suggested search query.", "example": "openai api key", "type": "string" } @@ -19830,42 +20480,52 @@ "bing.VideoResult": { "properties": { "age": { + "description": "When the video was published, as Bing shows it.", "example": "Nov 6, 2023", "type": "string" }, "age_timestamp": { + "description": "Time from `age` as Unix seconds in UTC. Omitted when it cannot be worked out.", "example": 1699228800, "type": "integer" }, "creator": { + "description": "Channel or creator that published the video.", "example": "OpenAI", "type": "string" }, "duration": { + "description": "Video length as Bing shows it, for example `45:12`.", "example": "45:12", "type": "string" }, "platform": { + "description": "Platform hosting the video, for example `YouTube`.", "example": "YouTube", "type": "string" }, "position": { + "description": "Rank of the video in the videos block, starting at 1.", "example": 1, "type": "integer" }, "thumbnail": { + "description": "URL of the video thumbnail.", "example": "https://example.com/openai-video.jpg", "type": "string" }, "title": { + "description": "Video title as shown on the Bing results page.", "example": "OpenAI DevDay keynote - YouTube", "type": "string" }, "url": { + "description": "URL of the video page.", "example": "https://www.youtube.com/watch?v=openai-devday", "type": "string" }, "views": { + "description": "View count as Bing shows it, for example `1.2M views`.", "example": "1.2M views", "type": "string" } @@ -19875,9 +20535,15 @@ "bing.VideosResponse": { "properties": { "pagination": { - "$ref": "#/definitions/bing.SearchPagination" + "allOf": [ + { + "$ref": "#/definitions/bing.SearchPagination" + } + ], + "description": "Paging information for this response." }, "results": { + "description": "Video results in Bing's order.", "items": { "$ref": "#/definitions/bing.VideoResult" }, @@ -22256,24 +22922,29 @@ "boxofficemojo.CalendarDateResponse": { "properties": { "date": { + "description": "Release date requested, in YYYY-MM-DD.", "example": "2026-09-04", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "results": { + "description": "Releases scheduled for that date, one item per release.", "items": { "$ref": "#/definitions/boxofficemojo.CalendarReleaseRow" }, "type": "array" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/calendar/2026-09-04/", "type": "string" } @@ -22283,10 +22954,12 @@ "boxofficemojo.CalendarDateRows": { "properties": { "date": { + "description": "Release date heading as shown on the calendar, for example `September 4, 2026`.", "example": "September 4, 2026", "type": "string" }, "releases": { + "description": "Releases scheduled for that date, one item per release.", "items": { "$ref": "#/definitions/boxofficemojo.CalendarReleaseRow" }, @@ -22298,6 +22971,7 @@ "boxofficemojo.CalendarReleaseRow": { "properties": { "cast": { + "description": "Names of the cast members listed for the release.", "example": [ "Mark Wahlberg" ], @@ -22307,10 +22981,12 @@ "type": "array" }, "distributor": { + "description": "Studio or distributor handling the release.", "example": "Sony Pictures Entertainment (SPE)", "type": "string" }, "genres": { + "description": "Genres listed for the release.", "example": [ "Action" ], @@ -22320,42 +22996,52 @@ "type": "array" }, "image_hi_res_url": { + "description": "URL of the larger poster image for the release.", "example": "https://m.media-amazon.com/images/M/...jpg", "type": "string" }, "image_url": { + "description": "URL of the poster image for the release.", "example": "https://m.media-amazon.com/images/M/...jpg", "type": "string" }, "release": { + "description": "Release name as shown on the calendar.", "example": "By Any Means", "type": "string" }, "release_id": { + "description": "Box Office Mojo release id, starting with `rl`. Use it with the release endpoint.", "example": "rl564363265", "type": "string" }, "release_path": { + "description": "Path of the release page on Box Office Mojo, for example `/release/rl564363265/`.", "example": "/release/rl564363265/", "type": "string" }, "release_url": { + "description": "Full URL of the release page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/release/rl564363265/", "type": "string" }, "scale": { + "description": "Release scale shown on the calendar, for example `Wide`.", "example": "Wide", "type": "string" }, "title_id": { + "description": "Title id of the film, starting with `tt`. Use it with the title endpoint.", "example": "tt0499549", "type": "string" }, "title_path": { + "description": "Path of the title page on Box Office Mojo, for example `/title/tt0499549/`.", "example": "/title/tt0499549/", "type": "string" }, "title_url": { + "description": "Full URL of the title page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/title/tt0499549/", "type": "string" } @@ -22365,28 +23051,34 @@ "boxofficemojo.CalendarResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "month": { + "description": "Calendar month requested, as a number.", "example": 9, "type": "integer" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "results": { + "description": "Release dates in the month, each with the releases scheduled for it.", "items": { "$ref": "#/definitions/boxofficemojo.CalendarDateRows" }, "type": "array" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/calendar/2026-09-01/", "type": "string" }, "year": { + "description": "Calendar year requested.", "example": 2026, "type": "integer" } @@ -22396,24 +23088,29 @@ "boxofficemojo.DomesticDateResponse": { "properties": { "date": { + "description": "Day requested, in YYYY-MM-DD.", "example": "2025-12-25", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "results": { + "description": "Rows of the domestic daily chart, one per release, in chart order.", "items": { "$ref": "#/definitions/boxofficemojo.DomesticDateRow" }, "type": "array" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/date/2025-12-25/", "type": "string" } @@ -22423,66 +23120,82 @@ "boxofficemojo.DomesticDateRow": { "properties": { "average": { + "description": "Average gross per theater for the day, in US dollars.", "example": 6482, "type": "integer" }, "average_raw": { + "description": "Average gross per theater, as Box Office Mojo displays it, for example `$6,482`.", "example": "$6,482", "type": "string" }, "daily_gross": { + "description": "Domestic gross for the day, in US dollars.", "example": 24631680, "type": "integer" }, "daily_gross_raw": { + "description": "Daily domestic gross, as Box Office Mojo displays it, for example `$24,631,680`.", "example": "$24,631,680", "type": "string" }, "day_change": { + "description": "Change in daily gross from the previous day, as a fraction (0.122 is +12.2%).", "example": 0.122, "type": "number" }, "days": { + "description": "Number of days the release has been in theaters, as shown in the Days column.", "example": 8, "type": "integer" }, "distributor": { + "description": "Studio or distributor handling the release.", "example": "20th Century Studios", "type": "string" }, "rank": { + "description": "Position on this day's chart.", "example": 1, "type": "integer" }, "release": { + "description": "Release name as shown on the daily chart.", "example": "Avatar: Fire and Ash", "type": "string" }, "release_path": { + "description": "Path of the release page on Box Office Mojo, for example `/release/rl3389031937/`.", "example": "/release/rl3389031937/", "type": "string" }, "release_url": { + "description": "Full URL of the release page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/release/rl3389031937/", "type": "string" }, "theaters": { + "description": "Number of theaters showing the release that day.", "example": 3800, "type": "integer" }, "total_gross": { + "description": "Domestic gross of the release to date, in US dollars.", "example": 153827123, "type": "integer" }, "total_gross_raw": { + "description": "Domestic gross to date, as Box Office Mojo displays it, for example `$153,827,123`.", "example": "$153,827,123", "type": "string" }, "week_change": { + "description": "Change in daily gross from the same day last week, as a fraction (-0.141 is -14.1%).", "example": -0.141, "type": "number" }, "yesterday_rank": { + "description": "Position on the previous day's chart.", "example": 1, "type": "integer" } @@ -22492,32 +23205,39 @@ "boxofficemojo.DomesticWeekendResponse": { "properties": { "date_range": { + "description": "Weekend dates, for example `December 26-28, 2025`.", "example": "December 26-28, 2025", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "results": { + "description": "Rows of the domestic weekend chart, one per release, in chart order.", "items": { "$ref": "#/definitions/boxofficemojo.DomesticWeekendRow" }, "type": "array" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/weekend/2025W52/", "type": "string" }, "week": { + "description": "Week number of the requested weekend within the year.", "example": 52, "type": "integer" }, "year": { + "description": "Year of the requested weekend.", "example": 2025, "type": "integer" } @@ -22527,46 +23247,57 @@ "boxofficemojo.DomesticWeekendRow": { "properties": { "average": { + "description": "Average weekend gross per theater, in US dollars.", "example": 16602, "type": "integer" }, "average_raw": { + "description": "Average weekend gross per theater, as Box Office Mojo displays it, for example `$16,602`.", "example": "$16,602", "type": "string" }, "change_percent": { + "description": "Change in weekend gross from the previous weekend, as a fraction (-0.292 is -29.2%).", "example": -0.292, "type": "number" }, "distributor": { + "description": "Studio or distributor handling the release.", "example": "20th Century Studios", "type": "string" }, "estimated": { + "description": "`true` when Box Office Mojo flags the weekend figures as estimates.", "example": false, "type": "boolean" }, "gross": { + "description": "Gross for the weekend, in US dollars.", "example": 63087667, "type": "integer" }, "gross_raw": { + "description": "Weekend gross, as Box Office Mojo displays it, for example `$63,087,667`.", "example": "$63,087,667", "type": "string" }, "last_week_rank": { + "description": "Position on the previous weekend's chart.", "example": 1, "type": "integer" }, "new_this_week": { + "description": "`true` when the release is new on the chart this weekend.", "example": false, "type": "boolean" }, "rank": { + "description": "Position on this weekend's chart.", "example": 1, "type": "integer" }, "release": { + "description": "Release name as shown on the weekend chart.", "example": "Avatar: Fire and Ash", "type": "string" }, @@ -22576,42 +23307,52 @@ "type": "string" }, "release_path": { + "description": "Path of the release page on Box Office Mojo, for example `/release/rl3389031937/`.", "example": "/release/rl3389031937/", "type": "string" }, "release_url": { + "description": "Full URL of the release page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/release/rl3389031937/", "type": "string" }, "theater_change": { + "description": "Change in theater count from the previous weekend.", "example": 0, "type": "integer" }, "theaters": { + "description": "Number of theaters showing the release that weekend.", "example": 3800, "type": "integer" }, "title_id": { + "description": "Title id of the film, starting with `tt`, when the chart links to a title page.", "example": "tt1757678", "type": "string" }, "title_path": { + "description": "Path of the title page on Box Office Mojo, when the chart links to one.", "example": "/title/tt1757678/", "type": "string" }, "title_url": { + "description": "Full URL of the title page on Box Office Mojo, when the chart links to one.", "example": "https://www.boxofficemojo.com/title/tt1757678/", "type": "string" }, "total_gross": { + "description": "Domestic gross of the release to date, in US dollars.", "example": 216914790, "type": "integer" }, "total_gross_raw": { + "description": "Domestic gross to date, as Box Office Mojo displays it, for example `$216,914,790`.", "example": "$216,914,790", "type": "string" }, "weeks": { + "description": "Number of weeks the release has been in theaters.", "example": 2, "type": "integer" } @@ -22621,28 +23362,34 @@ "boxofficemojo.DomesticYearResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "grosses_option": { + "description": "Grosses view of the yearly chart; always `calendar_grosses`, which counts gross earned within the calendar year.", "example": "calendar_grosses", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "results": { + "description": "Rows of the domestic yearly chart, one per release, in chart order.", "items": { "$ref": "#/definitions/boxofficemojo.DomesticYearRow" }, "type": "array" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/year/2025/?grossesOption=calendarGrosses", "type": "string" }, "year": { + "description": "Calendar year of the chart.", "example": 2025, "type": "integer" } @@ -22652,50 +23399,62 @@ "boxofficemojo.DomesticYearRow": { "properties": { "distributor": { + "description": "Studio or distributor handling the release.", "example": "Walt Disney Studios Motion Pictures", "type": "string" }, "gross": { + "description": "Domestic gross earned within the calendar year, in US dollars.", "example": 423778855, "type": "integer" }, "gross_raw": { + "description": "Domestic gross within the year, as Box Office Mojo displays it, for example `$423,778,855`.", "example": "$423,778,855", "type": "string" }, "new_this_year": { + "description": "`true` when Box Office Mojo flags the row's yearly figures as estimates.", "example": false, "type": "boolean" }, "rank": { + "description": "Position on the yearly chart.", "example": 1, "type": "integer" }, "release": { + "description": "Release name as shown on the yearly chart.", "example": "Lilo & Stitch", "type": "string" }, "release_date": { + "description": "Release date as shown on the chart, for example `May 23`.", "example": "May 23", "type": "string" }, "release_path": { + "description": "Path of the release page on Box Office Mojo, for example `/release/rl4045406209/`.", "example": "/release/rl4045406209/", "type": "string" }, "release_url": { + "description": "Full URL of the release page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/release/rl4045406209/", "type": "string" }, "theaters": { + "description": "Number of theaters showing the release.", "example": 4410, "type": "integer" }, "total_gross": { + "description": "Domestic gross of the release to date, in US dollars.", "example": 423778855, "type": "integer" }, "total_gross_raw": { + "description": "Domestic gross to date, as Box Office Mojo displays it, for example `$423,778,855`.", "example": "$423,778,855", "type": "string" } @@ -22705,34 +23464,42 @@ "boxofficemojo.LifetimeGrossRow": { "properties": { "lifetime_gross": { + "description": "Lifetime gross of the title, in US dollars.", "example": 2923710708, "type": "integer" }, "lifetime_gross_raw": { + "description": "Lifetime gross, as Box Office Mojo displays it, for example `$2,923,710,708`.", "example": "$2,923,710,708", "type": "string" }, "rank": { + "description": "Position on the lifetime gross chart.", "example": 1, "type": "integer" }, "title": { + "description": "Title name as shown on the chart.", "example": "Avatar", "type": "string" }, "title_id": { + "description": "Title id of the film, starting with `tt`. Use it with the title endpoint.", "example": "tt0499549", "type": "string" }, "title_path": { + "description": "Path of the title page on Box Office Mojo, for example `/title/tt0499549/`.", "example": "/title/tt0499549/", "type": "string" }, "title_url": { + "description": "Full URL of the title page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/title/tt0499549/", "type": "string" }, "year": { + "description": "Release year of the title.", "example": 2009, "type": "integer" } @@ -22742,32 +23509,39 @@ "boxofficemojo.LifetimeGrossesResponse": { "properties": { "area": { + "description": "Chart area that was returned: `worldwide` or `domestic`.", "example": "worldwide", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "offset": { + "description": "Number of rows skipped before this page, in steps of 200.", "example": 0, "type": "integer" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "range": { + "description": "Range of ranks shown and the chart size, for example `1-200 of 1,000`.", "example": "1-200 of 1,000", "type": "string" }, "results": { + "description": "Rows of the lifetime gross chart, one per title, in chart order.", "items": { "$ref": "#/definitions/boxofficemojo.LifetimeGrossRow" }, "type": "array" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/chart/top_lifetime_gross/?area=XWW", "type": "string" } @@ -22777,22 +23551,27 @@ "boxofficemojo.MarketGross": { "properties": { "gross_raw": { + "description": "Lifetime gross in the market, as Box Office Mojo displays it, for example `$181,757,632`.", "example": "$181,757,632", "type": "string" }, "lifetime_gross": { + "description": "Lifetime gross of the title in the market, in US dollars.", "example": 181757632, "type": "integer" }, "market": { + "description": "Market name, such as a country or territory.", "example": "France", "type": "string" }, "rank": { + "description": "Rank shown for the market in the Rank column.", "example": 2, "type": "integer" }, "release_count": { + "description": "Number of releases of the title in the market.", "example": 3, "type": "integer" } @@ -22802,12 +23581,14 @@ "boxofficemojo.MarketGrossTable": { "properties": { "markets": { + "description": "Gross figures for each market in the region.", "items": { "$ref": "#/definitions/boxofficemojo.MarketGross" }, "type": "array" }, "region": { + "description": "Region name as shown on the title page, for example `EMEA`.", "example": "EMEA", "type": "string" } @@ -22874,46 +23655,57 @@ "boxofficemojo.ReleaseGroup": { "properties": { "domestic": { + "description": "Domestic gross of the release group, in US dollars.", "example": 749766139, "type": "integer" }, "domestic_raw": { + "description": "Domestic gross, as Box Office Mojo displays it, for example `$749,766,139`.", "example": "$749,766,139", "type": "string" }, "international": { + "description": "International gross of the release group, in US dollars.", "example": 1993811448, "type": "integer" }, "international_raw": { + "description": "International gross, as Box Office Mojo displays it, for example `$1,993,811,448`.", "example": "$1,993,811,448", "type": "string" }, "markets": { + "description": "Number of markets the release group played in, for example `77 markets`.", "example": "77 markets", "type": "string" }, "name": { + "description": "Release group name, for example `Original Release`.", "example": "Original Release", "type": "string" }, "path": { + "description": "Path of the release group page on Box Office Mojo, for example `/releasegroup/gr3486798341/`.", "example": "/releasegroup/gr3486798341/", "type": "string" }, "rollout": { + "description": "Date range over which the release group rolled out, for example `December 16-January 15, 2010`.", "example": "December 16-January 15, 2010", "type": "string" }, "url": { + "description": "Full URL of the release group page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/releasegroup/gr3486798341/", "type": "string" }, "worldwide": { + "description": "Worldwide gross of the release group, in US dollars.", "example": 2743577587, "type": "integer" }, "worldwide_raw": { + "description": "Worldwide gross, as Box Office Mojo displays it, for example `$2,743,577,587`.", "example": "$2,743,577,587", "type": "string" } @@ -22923,34 +23715,42 @@ "boxofficemojo.ReleaseGroupMarketRow": { "properties": { "gross": { + "description": "Gross in the market, in US dollars.", "example": 174376309, "type": "integer" }, "gross_raw": { + "description": "Gross in the market, as Box Office Mojo displays it, for example `$174,376,309`.", "example": "$174,376,309", "type": "string" }, "market": { + "description": "Market name, such as a country or territory.", "example": "France", "type": "string" }, "opening": { + "description": "Opening gross in the market, in US dollars.", "example": 17436397, "type": "integer" }, "opening_raw": { + "description": "Opening gross in the market, as Box Office Mojo displays it, for example `$17,436,397`.", "example": "$17,436,397", "type": "string" }, "release_date": { + "description": "Release date in the market, for example `Dec 16, 2009`.", "example": "Dec 16, 2009", "type": "string" }, "release_path": { + "description": "Path of the market's release page on Box Office Mojo, for example `/release/rl1848870401/`.", "example": "/release/rl1848870401/", "type": "string" }, "release_url": { + "description": "Full URL of the market's release page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/release/rl1848870401/", "type": "string" } @@ -22960,12 +23760,14 @@ "boxofficemojo.ReleaseGroupRegionTable": { "properties": { "markets": { + "description": "Release figures for each market in the region.", "items": { "$ref": "#/definitions/boxofficemojo.ReleaseGroupMarketRow" }, "type": "array" }, "region": { + "description": "Region name as shown on the release group page, for example `Europe, Middle East, and Africa`.", "example": "Europe, Middle East, and Africa", "type": "string" } @@ -22975,48 +23777,59 @@ "boxofficemojo.ReleaseGroupResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "path": { + "description": "Path of the release group page on Box Office Mojo, for example `/releasegroup/gr3486798341/`.", "example": "/releasegroup/gr3486798341/", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "regions": { + "description": "Market tables grouped by region.", "items": { "$ref": "#/definitions/boxofficemojo.ReleaseGroupRegionTable" }, "type": "array" }, "release_group_id": { + "description": "Box Office Mojo release group id, starting with `gr`.", "example": "gr3486798341", "type": "string" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/releasegroup/gr3486798341/", "type": "string" }, "title": { + "description": "Title name the release group belongs to.", "example": "Avatar", "type": "string" }, "title_id": { + "description": "Title id of the film, starting with `tt`. Use it with the title endpoint.", "example": "tt0499549", "type": "string" }, "title_path": { + "description": "Path of the title page on Box Office Mojo, for example `/title/tt0499549/`.", "example": "/title/tt0499549/", "type": "string" }, "title_url": { + "description": "Full URL of the title page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/title/tt0499549/", "type": "string" }, "url": { + "description": "Full URL of the release group page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/releasegroup/gr3486798341/", "type": "string" } @@ -23133,110 +23946,137 @@ "boxofficemojo.ShowdownRelease": { "properties": { "close_date": { + "description": "Date the release left theaters, as shown on the showdown page.", "example": "Jan 7, 2016", "type": "string" }, "distributor": { + "description": "Studio or distributor handling the release.", "example": "Warner Bros.", "type": "string" }, "domestic_gross": { + "description": "Domestic gross of the release, in US dollars.", "example": 75764672, "type": "integer" }, "domestic_gross_raw": { + "description": "Domestic gross, as Box Office Mojo displays it, for example `$75,764,672`.", "example": "$75,764,672", "type": "string" }, "domestic_share": { + "description": "Domestic gross as a fraction of worldwide gross (0.389 is 38.9%).", "example": 0.389, "type": "number" }, "foreign_gross": { + "description": "Foreign gross of the release, in US dollars.", "example": 119000000, "type": "integer" }, "foreign_gross_raw": { + "description": "Foreign gross, as Box Office Mojo displays it, for example `$119,000,000`.", "example": "$119,000,000", "type": "string" }, "foreign_share": { + "description": "Foreign gross as a fraction of worldwide gross (0.611 is 61.1%).", "example": 0.611, "type": "number" }, "genre": { + "description": "Genre label shown for the release, for example `Comedy Drama`.", "example": "Comedy Drama", "type": "string" }, "gross_to_date": { + "description": "Gross of the release to date, in US dollars.", "example": 75764672, "type": "integer" }, "gross_to_date_raw": { + "description": "Gross to date, as Box Office Mojo displays it, for example `$75,764,672`.", "example": "$75,764,672", "type": "string" }, "mpa_rating": { + "description": "MPA rating of the release, for example `PG-13`.", "example": "PG-13", "type": "string" }, "opening_share": { + "description": "Opening weekend gross as a fraction of total gross (0.234 is 23.4%).", "example": 0.234, "type": "number" }, "opening_weekend": { + "description": "Opening weekend gross, in US dollars.", "example": 17728313, "type": "integer" }, "opening_weekend_raw": { + "description": "Opening weekend gross, as Box Office Mojo displays it, for example `$17,728,313`.", "example": "$17,728,313", "type": "string" }, "production_budget": { + "description": "Production budget of the release, in US dollars.", "example": 35000000, "type": "integer" }, "production_budget_raw": { + "description": "Production budget, as Box Office Mojo displays it, for example `$35,000,000`.", "example": "$35,000,000", "type": "string" }, "release": { + "description": "Release name as shown on the showdown page.", "example": "The Intern", "type": "string" }, "release_date": { + "description": "Release date as shown on the showdown page, for example `Sep 25, 2015`.", "example": "Sep 25, 2015", "type": "string" }, "release_path": { + "description": "Path of the release page on Box Office Mojo, for example `/release/rl861570561/`.", "example": "/release/rl861570561/", "type": "string" }, "release_url": { + "description": "Full URL of the release page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/release/rl861570561/", "type": "string" }, "running_time": { + "description": "Running time as shown, for example `2 hr 1 min`.", "example": "2 hr 1 min", "type": "string" }, "weekends_at_number_one": { + "description": "Number of weekends the release ranked first on the domestic weekend chart.", "example": 0, "type": "integer" }, "weekends_in_top_ten": { + "description": "Number of weekends the release ranked in the top ten of the domestic weekend chart.", "example": 6, "type": "integer" }, "widest_release": { + "description": "Largest number of theaters the release played in at once.", "example": 3320, "type": "integer" }, "worldwide_gross": { + "description": "Worldwide gross of the release, in US dollars.", "example": 194764672, "type": "integer" }, "worldwide_gross_raw": { + "description": "Worldwide gross, as Box Office Mojo displays it, for example `$194,764,672`.", "example": "$194,764,672", "type": "string" } @@ -23246,39 +24086,52 @@ "boxofficemojo.ShowdownResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "name": { + "description": "Showdown name, for example `12 Years of Nancy Meyers`.", "example": "12 Years of Nancy Meyers", "type": "string" }, "path": { + "description": "Path of the showdown page on Box Office Mojo, for example `/showdown/sd943519236/`.", "example": "/showdown/sd943519236/", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "releases": { + "description": "Releases compared in the showdown, one item per release.", "items": { "$ref": "#/definitions/boxofficemojo.ShowdownRelease" }, "type": "array" }, "showdown_id": { + "description": "Box Office Mojo showdown id, starting with `sd`.", "example": "sd943519236", "type": "string" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/showdown/sd943519236/", "type": "string" }, "summary": { - "$ref": "#/definitions/boxofficemojo.ShowdownSummary" + "allOf": [ + { + "$ref": "#/definitions/boxofficemojo.ShowdownSummary" + } + ], + "description": "Totals and leaders computed across the releases in the showdown." }, "url": { + "description": "Full URL of the showdown page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/showdown/sd943519236/", "type": "string" } @@ -23288,50 +24141,62 @@ "boxofficemojo.ShowdownRow": { "properties": { "name": { + "description": "Showdown name, for example `12 Years of Nancy Meyers`.", "example": "12 Years of Nancy Meyers", "type": "string" }, "num_releases": { + "description": "Number of releases compared in the showdown.", "example": 4, "type": "integer" }, "path": { + "description": "Path of the showdown page on Box Office Mojo, for example `/showdown/sd943519236/`.", "example": "/showdown/sd943519236/", "type": "string" }, "showdown_id": { + "description": "Box Office Mojo showdown id, starting with `sd`. Use it with the showdown endpoint.", "example": "sd943519236", "type": "string" }, "top_release": { + "description": "Release with the highest gross in the showdown.", "example": "Something's Gotta Give", "type": "string" }, "top_release_gross": { + "description": "Gross of the top release, in US dollars.", "example": 124728738, "type": "integer" }, "top_release_gross_raw": { + "description": "Gross of the top release, as Box Office Mojo displays it, for example `$124,728,738`.", "example": "$124,728,738", "type": "string" }, "top_release_path": { + "description": "Path of the top release's page on Box Office Mojo.", "example": "/release/rl1299219969/", "type": "string" }, "top_release_url": { + "description": "Full URL of the top release's page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/release/rl1299219969/", "type": "string" }, "total_gross": { + "description": "Combined gross of all releases in the showdown, in US dollars.", "example": 376453634, "type": "integer" }, "total_gross_raw": { + "description": "Combined gross of the showdown, as Box Office Mojo displays it, for example `$376,453,634`.", "example": "$376,453,634", "type": "string" }, "url": { + "description": "Full URL of the showdown page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/showdown/sd943519236/", "type": "string" } @@ -23341,38 +24206,47 @@ "boxofficemojo.ShowdownSummary": { "properties": { "highest_opening_release": { + "description": "Release with the highest opening weekend gross in the showdown.", "example": "It's Complicated", "type": "string" }, "highest_opening_weekend": { + "description": "Opening weekend gross of that release, in US dollars.", "example": 22100820, "type": "integer" }, "release_count": { + "description": "Number of releases in the showdown.", "example": 4, "type": "integer" }, "top_domestic_gross": { + "description": "Domestic gross of the top domestic release, in US dollars.", "example": 124728738, "type": "integer" }, "top_domestic_release": { + "description": "Release with the highest domestic gross in the showdown.", "example": "Something's Gotta Give", "type": "string" }, "top_worldwide_gross": { + "description": "Worldwide gross of the top worldwide release, in US dollars.", "example": 265328738, "type": "integer" }, "top_worldwide_release": { + "description": "Release with the highest worldwide gross in the showdown.", "example": "Something's Gotta Give", "type": "string" }, "total_domestic_gross": { + "description": "Combined domestic gross of the releases in the showdown, in US dollars.", "example": 376453634, "type": "integer" }, "total_worldwide_gross": { + "description": "Combined worldwide gross of the releases in the showdown, in US dollars.", "example": 884396662, "type": "integer" } @@ -23382,20 +24256,24 @@ "boxofficemojo.ShowdownsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "results": { + "description": "Showdowns listed on Box Office Mojo, one item per showdown.", "items": { "$ref": "#/definitions/boxofficemojo.ShowdownRow" }, "type": "array" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/showdown/", "type": "string" } @@ -23405,6 +24283,7 @@ "boxofficemojo.TaxonomyDetailResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, @@ -23414,51 +24293,67 @@ "type": "boolean" }, "id": { + "description": "Box Office Mojo id of the franchise, brand or genre.", "example": "fr541495045", "type": "string" }, "kind": { + "description": "Type of group: `franchise`, `brand` or `genre`.", "example": "franchise", "type": "string" }, "name": { + "description": "Name of the franchise, brand or genre.", "example": "Marvel Cinematic Universe", "type": "string" }, "offset": { + "description": "Number of rows skipped before this page.", "example": 0, "type": "integer" }, "path": { + "description": "Path of the group's page on Box Office Mojo, for example `/franchise/fr541495045/`.", "example": "/franchise/fr541495045/", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "results": { + "description": "Releases in the group on this page, one item per release.", "items": { "$ref": "#/definitions/boxofficemojo.TaxonomyMovieRow" }, "type": "array" }, "sort": { + "description": "Sort order applied: `grossToDate`, `maxNumTheaters`, `openingWeekendGross`, `openingNumTheaters` or `releaseDate`.", "example": "grossToDate", "type": "string" }, "sort_dir": { + "description": "Sort direction applied: `asc` or `desc`.", "example": "desc", "type": "string" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/franchise/fr541495045/", "type": "string" }, "summary": { - "$ref": "#/definitions/boxofficemojo.TaxonomySummary" + "allOf": [ + { + "$ref": "#/definitions/boxofficemojo.TaxonomySummary" + } + ], + "description": "Totals and leaders computed across the releases returned on this page." }, "url": { + "description": "Full URL of the group's page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/franchise/fr541495045/", "type": "string" } @@ -23468,32 +24363,39 @@ "boxofficemojo.TaxonomyListResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "kind": { + "description": "Type of group listed: `franchise`, `brand` or `genre`.", "example": "franchise", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "results": { + "description": "Groups on the chart, one item per franchise, brand or genre.", "items": { "$ref": "#/definitions/boxofficemojo.TaxonomyListRow" }, "type": "array" }, "sort": { + "description": "Sort order applied: `totalGross`, `numReleases`, `numTitles` or `grossToDate`.", "example": "grossToDate", "type": "string" }, "sort_dir": { + "description": "Sort direction applied: `asc` or `desc`.", "example": "desc", "type": "string" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/franchise/", "type": "string" } @@ -23503,34 +24405,42 @@ "boxofficemojo.TaxonomyListRow": { "properties": { "id": { + "description": "Box Office Mojo id of the franchise, brand or genre. Use it with the matching detail endpoint.", "example": "fr541495045", "type": "string" }, "lifetime_gross": { + "description": "Lifetime gross of all releases in the group, in US dollars.", "example": 12345678901, "type": "integer" }, "lifetime_gross_raw": { + "description": "Lifetime gross of the group, as Box Office Mojo displays it, for example `$12,345,678,901`.", "example": "$12,345,678,901", "type": "string" }, "name": { + "description": "Name of the franchise, brand or genre.", "example": "Marvel Cinematic Universe", "type": "string" }, "path": { + "description": "Path of the group's page on Box Office Mojo, for example `/franchise/fr541495045/`.", "example": "/franchise/fr541495045/", "type": "string" }, "rank": { + "description": "Position on the chart.", "example": 1, "type": "integer" }, "releases": { + "description": "Number of releases in the group (titles for genres).", "example": 37, "type": "integer" }, "url": { + "description": "Full URL of the group's page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/franchise/fr541495045/", "type": "string" } @@ -23540,42 +24450,52 @@ "boxofficemojo.TaxonomyMovieRow": { "properties": { "distributor": { + "description": "Studio or distributor handling the release.", "example": "Walt Disney Studios Motion Pictures", "type": "string" }, "lifetime_gross": { + "description": "Lifetime gross of the release, in US dollars.", "example": 623357910, "type": "integer" }, "lifetime_gross_raw": { + "description": "Lifetime gross, as Box Office Mojo displays it, for example `$623,357,910`.", "example": "$623,357,910", "type": "string" }, "max_theaters": { + "description": "Largest number of theaters the release played in.", "example": 4349, "type": "integer" }, "open_theaters": { + "description": "Number of theaters the release opened in.", "example": 4349, "type": "integer" }, "opening": { + "description": "Opening gross of the release, in US dollars.", "example": 207438708, "type": "integer" }, "opening_raw": { + "description": "Opening gross, as Box Office Mojo displays it, for example `$207,438,708`.", "example": "$207,438,708", "type": "string" }, "rank": { + "description": "Position within the group.", "example": 1, "type": "integer" }, "release": { + "description": "Release name as shown on the group page.", "example": "The Avengers", "type": "string" }, "release_date": { + "description": "Release date as shown, for example `May 4, 2012`.", "example": "May 4, 2012", "type": "string" }, @@ -23590,22 +24510,27 @@ "type": "string" }, "release_path": { + "description": "Path of the release page on Box Office Mojo, for example `/release/rl3059975681/`.", "example": "/release/rl3059975681/", "type": "string" }, "release_url": { + "description": "Full URL of the release page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/release/rl3059975681/", "type": "string" }, "title_id": { + "description": "Title id of the film, starting with `tt`, when the page links to a title.", "example": "tt0848228", "type": "string" }, "title_path": { + "description": "Path of the title page on Box Office Mojo, when the page links to one.", "example": "/title/tt0848228/", "type": "string" }, "title_url": { + "description": "Full URL of the title page on Box Office Mojo, when the page links to one.", "example": "https://www.boxofficemojo.com/title/tt0848228/", "type": "string" } @@ -23615,22 +24540,27 @@ "boxofficemojo.TaxonomySummary": { "properties": { "movie_count": { + "description": "Number of releases in `results` on this page.", "example": 37, "type": "integer" }, "top_distributor": { + "description": "Distributor with the most releases in `results`.", "example": "Walt Disney Studios Motion Pictures", "type": "string" }, "top_release": { + "description": "Release with the highest lifetime gross in `results`.", "example": "The Avengers", "type": "string" }, "top_release_gross": { + "description": "Lifetime gross of the top release, in US dollars.", "example": 623357910, "type": "integer" }, "total_gross": { + "description": "Combined lifetime gross of the releases in `results`, in US dollars.", "example": 12345678901, "type": "integer" } @@ -23640,42 +24570,51 @@ "boxofficemojo.TitleResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "market_grosses": { + "description": "Lifetime gross per market, grouped by region.", "items": { "$ref": "#/definitions/boxofficemojo.MarketGrossTable" }, "type": "array" }, "path": { + "description": "Path of the title page on Box Office Mojo, for example `/title/tt0499549/`.", "example": "/title/tt0499549/", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "release_groups": { + "description": "Release groups of the title, such as the original release and re-releases.", "items": { "$ref": "#/definitions/boxofficemojo.ReleaseGroup" }, "type": "array" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/title/tt0499549/", "type": "string" }, "title": { + "description": "Title name as shown on Box Office Mojo.", "example": "Avatar", "type": "string" }, "title_id": { + "description": "Title id of the film, starting with `tt`.", "example": "tt0499549", "type": "string" }, "url": { + "description": "Full URL of the title page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/title/tt0499549/", "type": "string" } @@ -23785,82 +24724,102 @@ "boxofficemojo.WeekendEstimateRow": { "properties": { "actual_gross": { + "description": "Actual weekend gross, in US dollars.", "example": 63087667, "type": "integer" }, "actual_gross_raw": { + "description": "Actual weekend gross, as Box Office Mojo displays it, for example `$63,087,667`.", "example": "$63,087,667", "type": "string" }, "actual_rank": { + "description": "Position on the chart once actual figures were reported.", "example": 1, "type": "integer" }, "actual_total": { + "description": "Actual domestic gross to date, in US dollars.", "example": 216914790, "type": "integer" }, "actual_total_raw": { + "description": "Actual domestic gross to date, as Box Office Mojo displays it, for example `$216,914,790`.", "example": "$216,914,790", "type": "string" }, "distributor": { + "description": "Studio or distributor handling the release.", "example": "20th Century Studios", "type": "string" }, "estimated_gross": { + "description": "Estimated weekend gross, in US dollars.", "example": 62000000, "type": "integer" }, "estimated_gross_raw": { + "description": "Estimated weekend gross, as Box Office Mojo displays it, for example `$62,000,000`.", "example": "$62,000,000", "type": "string" }, "estimated_rank": { + "description": "Position on the chart by estimated weekend gross.", "example": 1, "type": "integer" }, "estimated_total": { + "description": "Estimated domestic gross to date, in US dollars.", "example": 215000000, "type": "integer" }, "estimated_total_raw": { + "description": "Estimated domestic gross to date, as Box Office Mojo displays it, for example `$215,000,000`.", "example": "$215,000,000", "type": "string" }, "gross_diff": { + "description": "Actual weekend gross minus estimated weekend gross, in US dollars.", "example": 1087667, "type": "integer" }, "gross_diff_percent": { + "description": "Gross difference as a fraction (0.018 is 1.8%).", "example": 0.018, "type": "number" }, "gross_diff_raw": { + "description": "Gross difference, as Box Office Mojo displays it, for example `$1,087,667`.", "example": "$1,087,667", "type": "string" }, "rank_diff": { + "description": "Difference between the estimated rank and the actual rank.", "example": 0, "type": "integer" }, "release": { + "description": "Release name as shown on the estimates chart.", "example": "Avatar: Fire and Ash", "type": "string" }, "release_path": { + "description": "Path of the release page on Box Office Mojo, for example `/release/rl3389031937/`.", "example": "/release/rl3389031937/", "type": "string" }, "release_url": { + "description": "Full URL of the release page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/release/rl3389031937/", "type": "string" }, "theaters": { + "description": "Number of theaters showing the release that weekend.", "example": 3800, "type": "integer" }, "weekend_in_release": { + "description": "Weekend number of the release's run, as shown in the Weekend column.", "example": 2, "type": "integer" } @@ -23870,32 +24829,39 @@ "boxofficemojo.WeekendEstimatesResponse": { "properties": { "date_range": { + "description": "Weekend dates, for example `December 26-28, 2025`.", "example": "December 26-28, 2025", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "results": { + "description": "Rows comparing estimated and actual weekend figures, one per release.", "items": { "$ref": "#/definitions/boxofficemojo.WeekendEstimateRow" }, "type": "array" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/weekend/2025W52/estimates/", "type": "string" }, "week": { + "description": "Week number of the requested weekend within the year.", "example": 52, "type": "integer" }, "year": { + "description": "Year of the requested weekend.", "example": 2025, "type": "integer" } @@ -23905,24 +24871,29 @@ "boxofficemojo.WorldwideYearResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "public_page_derived": { + "description": "Always `true`; the values come from Box Office Mojo's public pages.", "example": true, "type": "boolean" }, "results": { + "description": "Rows of the worldwide yearly chart, one per release group, in chart order.", "items": { "$ref": "#/definitions/boxofficemojo.WorldwideYearRow" }, "type": "array" }, "source_url": { + "description": "URL of the Box Office Mojo page the data was read from.", "example": "https://www.boxofficemojo.com/year/world/2025/", "type": "string" }, "year": { + "description": "Year of the chart.", "example": 2025, "type": "integer" } @@ -23932,66 +24903,82 @@ "boxofficemojo.WorldwideYearRow": { "properties": { "domestic": { + "description": "Domestic gross of the release group, in US dollars.", "example": 23308176, "type": "integer" }, "domestic_raw": { + "description": "Domestic gross, as Box Office Mojo displays it, for example `$23,308,176`.", "example": "$23,308,176", "type": "string" }, "domestic_share": { + "description": "Domestic gross as a fraction of worldwide gross (0.01 is 1%).", "example": 0.01, "type": "number" }, "foreign": { + "description": "Foreign gross of the release group, in US dollars.", "example": 2244138194, "type": "integer" }, "foreign_raw": { + "description": "Foreign gross, as Box Office Mojo displays it, for example `$2,244,138,194`.", "example": "$2,244,138,194", "type": "string" }, "foreign_share": { + "description": "Foreign gross as a fraction of worldwide gross (0.99 is 99%).", "example": 0.99, "type": "number" }, "rank": { + "description": "Position on the worldwide yearly chart.", "example": 1, "type": "integer" }, "release_group": { + "description": "Release group name as shown on the chart.", "example": "Ne Zha 2", "type": "string" }, "release_group_id": { + "description": "Box Office Mojo release group id, starting with `gr`. Use it with the release group endpoint.", "example": "gr2474856965", "type": "string" }, "release_group_path": { + "description": "Path of the release group page on Box Office Mojo, for example `/releasegroup/gr2474856965/`.", "example": "/releasegroup/gr2474856965/", "type": "string" }, "release_group_url": { + "description": "Full URL of the release group page on Box Office Mojo.", "example": "https://www.boxofficemojo.com/releasegroup/gr2474856965/", "type": "string" }, "title_id": { + "description": "Title id of the film, starting with `tt`, when the chart links to a title.", "example": "tt34956443", "type": "string" }, "title_path": { + "description": "Path of the title page on Box Office Mojo, when the chart links to one.", "example": "/title/tt34956443/", "type": "string" }, "title_url": { + "description": "Full URL of the title page on Box Office Mojo, when the chart links to one.", "example": "https://www.boxofficemojo.com/title/tt34956443/", "type": "string" }, "worldwide": { + "description": "Worldwide gross of the release group, in US dollars.", "example": 2267446370, "type": "integer" }, "worldwide_raw": { + "description": "Worldwide gross, as Box Office Mojo displays it, for example `$2,267,446,370`.", "example": "$2,267,446,370", "type": "string" } @@ -24273,24 +25260,31 @@ "brand.Address": { "properties": { "city": { + "description": "City of the brand's office.", "type": "string" }, "country": { + "description": "Country of the brand's office.", "type": "string" }, "country_code": { + "description": "Country code of the brand's office.", "type": "string" }, "postal_code": { + "description": "Postal code of the brand's office.", "type": "string" }, "state_code": { + "description": "State or province code of the brand's office.", "type": "string" }, "state_province": { + "description": "State or province of the brand's office.", "type": "string" }, "street": { + "description": "Street address of the brand's office.", "type": "string" } }, @@ -24299,15 +25293,22 @@ "brand.Backdrop": { "properties": { "colors": { + "description": "Dominant colors of the backdrop image. Not currently returned.", "items": { "$ref": "#/definitions/brand.Color" }, "type": "array" }, "resolution": { - "$ref": "#/definitions/brand.Resolution" + "allOf": [ + { + "$ref": "#/definitions/brand.Resolution" + } + ], + "description": "Pixel size and aspect ratio of the backdrop image. Not currently returned." }, "url": { + "description": "URL of the backdrop image.", "type": "string" } }, @@ -24316,70 +25317,107 @@ "brand.BrandResponse": { "properties": { "address": { - "$ref": "#/definitions/brand.Address" + "allOf": [ + { + "$ref": "#/definitions/brand.Address" + } + ], + "description": "Postal address of the brand. Omitted when the site gives none." }, "backdrops": { + "description": "Large images that represent the brand, such as the social sharing image.", "items": { "$ref": "#/definitions/brand.Backdrop" }, "type": "array" }, "colors": { + "description": "Brand colors found on the site, each as a hex code.", "items": { "$ref": "#/definitions/brand.Color" }, "type": "array" }, "description": { + "description": "Short description of the brand, taken from the site.", "example": "Brand intelligence for the modern web.", "type": "string" }, "domain": { + "description": "Domain that was profiled, without `www.` or path.", "example": "context.dev", "type": "string" }, "email": { + "description": "Contact email the site lists. Omitted when none is found.", "type": "string" }, "industries": { - "$ref": "#/definitions/brand.Industries" + "allOf": [ + { + "$ref": "#/definitions/brand.Industries" + } + ], + "description": "Industry classification of the brand. Not currently returned." }, "is_nsfw": { + "description": "Always `false`; adult-content detection is not performed.", "example": false, "type": "boolean" }, "links": { - "$ref": "#/definitions/brand.Links" + "allOf": [ + { + "$ref": "#/definitions/brand.Links" + } + ], + "description": "Links to the site's careers, privacy, terms, contact, blog and pricing pages." }, "logos": { + "description": "Logos and icons of the brand, with the declared brand mark first.", "items": { "$ref": "#/definitions/brand.Logo" }, "type": "array" }, "phone": { + "description": "Contact phone number the site lists. Omitted when none is found.", "type": "string" }, "primary_language": { + "description": "Primary language of the site, as a language code such as `en`. Omitted when unknown.", "example": "en", "type": "string" }, "slogan": { + "description": "Tagline or slogan of the brand. Omitted when the site gives none.", "type": "string" }, "socials": { + "description": "Social media profiles the site links to.", "items": { "$ref": "#/definitions/brand.Social" }, "type": "array" }, "source": { - "$ref": "#/definitions/brand.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/brand.SourceDetail" + } + ], + "description": "Page the profile was built from." }, "stock": { - "$ref": "#/definitions/brand.Stock" + "allOf": [ + { + "$ref": "#/definitions/brand.Stock" + } + ], + "description": "Stock listing of the brand. Omitted when the site gives none." }, "title": { + "description": "Brand name, preferring the site name over the page title.", "example": "Context", "type": "string" } @@ -24389,10 +25427,12 @@ "brand.Color": { "properties": { "hex": { + "description": "Color as a lowercase hex code, for example `#0b0b0b`.", "example": "#0b0b0b", "type": "string" }, "name": { + "description": "Name of the color. Not currently returned.", "type": "string" } }, @@ -24401,9 +25441,11 @@ "brand.EIC": { "properties": { "industry": { + "description": "Industry the brand belongs to.", "type": "string" }, "subindustry": { + "description": "More specific sub-industry within that industry.", "type": "string" } }, @@ -24412,6 +25454,7 @@ "brand.Industries": { "properties": { "eic": { + "description": "Industry and sub-industry classifications of the brand.", "items": { "$ref": "#/definitions/brand.EIC" }, @@ -24423,21 +25466,27 @@ "brand.Links": { "properties": { "blog": { + "description": "URL of the brand's blog. `null` when no matching link is found.", "type": "string" }, "careers": { + "description": "URL of the brand's careers page. `null` when no matching link is found.", "type": "string" }, "contact": { + "description": "URL of the brand's contact page. `null` when no matching link is found.", "type": "string" }, "pricing": { + "description": "URL of the brand's pricing page. `null` when no matching link is found.", "type": "string" }, "privacy": { + "description": "URL of the brand's privacy policy. `null` when no matching link is found.", "type": "string" }, "terms": { + "description": "URL of the brand's terms page. `null` when no matching link is found.", "type": "string" } }, @@ -24446,26 +25495,35 @@ "brand.Logo": { "properties": { "colors": { + "description": "Dominant colors of the logo image. Not currently returned.", "items": { "$ref": "#/definitions/brand.Color" }, "type": "array" }, "mode": { + "description": "Display mode the logo variant is meant for. Not currently returned.", "type": "string" }, "resolution": { - "$ref": "#/definitions/brand.Resolution" + "allOf": [ + { + "$ref": "#/definitions/brand.Resolution" + } + ], + "description": "Pixel size and aspect ratio of the logo image. Omitted when not known." }, "theme": { "description": "Theme is the intended background for the candidate. It stays separate\nfrom the established Mode response field.", "type": "string" }, "type": { + "description": "Kind of image: `logo` for the declared brand mark or `icon` for a site icon.", "example": "icon", "type": "string" }, "url": { + "description": "URL of the logo or icon image.", "example": "https://context.dev/favicon.ico", "type": "string" } @@ -24475,14 +25533,17 @@ "brand.Resolution": { "properties": { "aspect_ratio": { + "description": "Width divided by height.", "example": 1, "type": "number" }, "height": { + "description": "Height of the image in pixels.", "example": 512, "type": "integer" }, "width": { + "description": "Width of the image in pixels.", "example": 512, "type": "integer" } @@ -24492,10 +25553,12 @@ "brand.Social": { "properties": { "type": { + "description": "Social network the profile is on, for example `x` or `linkedin`.", "example": "x", "type": "string" }, "url": { + "description": "URL of the social media profile.", "example": "https://x.com/context", "type": "string" } @@ -24505,10 +25568,12 @@ "brand.SourceDetail": { "properties": { "type": { + "description": "Kind of source the profile was built from, for example `html`.", "example": "html", "type": "string" }, "url": { + "description": "URL of the page the profile was built from, after any redirect.", "example": "https://context.dev", "type": "string" } @@ -24518,10 +25583,12 @@ "brand.Stock": { "properties": { "exchange": { + "description": "Stock exchange the brand is listed on, for example `NASDAQ`.", "example": "NASDAQ", "type": "string" }, "ticker": { + "description": "Stock ticker symbol of the brand, for example `NVDA`.", "example": "NVDA", "type": "string" } @@ -24547,50 +25614,62 @@ "brave.Discussion": { "properties": { "age": { + "description": "When the thread was posted, as Brave shows it.", "example": "October 24, 2024", "type": "string" }, "comment_count": { + "description": "Number of replies Brave shows for the thread. Omitted when Brave shows none.", "example": 30, "type": "integer" }, "description": { + "description": "Short excerpt of the thread as Brave shows it.", "example": "I have free time from highschool and want to get into coding, and tips on diving in and learning.", "type": "string" }, "favicon": { + "description": "URL of the site's favicon as Brave serves it.", "example": "https://imgs.search.brave.com/example-reddit.ico", "type": "string" }, "forum": { + "description": "Forum or subreddit the thread belongs to, for example `r/pythontips`.", "example": "r/pythontips", "type": "string" }, "hostname": { + "description": "Host name of the site hosting the thread.", "example": "www.reddit.com", "type": "string" }, "path": { + "description": "Breadcrumb-style path of the thread URL as Brave shows it.", "example": "r > pythontips > comments > 1gav6bm > how_to_learn_python", "type": "string" }, "position": { + "description": "Rank of the discussion in the discussions block, starting at 1.", "example": 1, "type": "integer" }, "score": { + "description": "Vote score of the thread. Omitted when Brave shows none.", "example": 25, "type": "integer" }, "title": { + "description": "Title of the forum thread or question.", "example": "How to learn python", "type": "string" }, "top_comment": { + "description": "Text of the top comment Brave shows for the thread.", "example": "r/learnpython", "type": "string" }, "url": { + "description": "URL of the discussion thread.", "example": "https://www.reddit.com/r/pythontips/comments/1gav6bm/how_to_learn_python/", "type": "string" } @@ -24600,38 +25679,47 @@ "brave.ImageResult": { "properties": { "age": { + "description": "Date or time associated with the image page, as Brave shows it.", "example": "2026-05-16T12:01:29Z", "type": "string" }, "height": { + "description": "Image height as Brave reports it.", "example": 1184, "type": "integer" }, "image_url": { + "description": "URL of the full-size image.", "example": "https://example.com/openai.jpg", "type": "string" }, "position": { + "description": "Rank of the image across all result pages, starting at 1.", "example": 1, "type": "integer" }, "source": { + "description": "Site the image comes from, for example `area17.com`.", "example": "area17.com", "type": "string" }, "thumbnail": { + "description": "URL of the image thumbnail served by Brave.", "example": "https://imgs.search.brave.com/example", "type": "string" }, "title": { + "description": "Image title as shown on the Brave results page.", "example": "OpenAI colors mobile 08", "type": "string" }, "url": { + "description": "URL of the page the image appears on.", "example": "https://area17.com/clients/openai", "type": "string" }, "width": { + "description": "Image width as Brave reports it.", "example": 1000, "type": "integer" } @@ -24641,9 +25729,15 @@ "brave.ImagesResponse": { "properties": { "pagination": { - "$ref": "#/definitions/brave.SearchPagination" + "allOf": [ + { + "$ref": "#/definitions/brave.SearchPagination" + } + ], + "description": "Paging information for this response." }, "results": { + "description": "Image results in Brave's order.", "items": { "$ref": "#/definitions/brave.ImageResult" }, @@ -24655,29 +25749,40 @@ "brave.KnowledgeCard": { "properties": { "category": { + "description": "Kind of entity the card describes, for example `computer program`.", "example": "computer program", "type": "string" }, "description": { + "description": "One-line description of the entity.", "example": "computer program that produces the message \"Hello, world!\", often used to illustrate the basic syntax of a programming language", "type": "string" }, "image": { + "description": "URL of the card's image.", "example": "https://imgs.search.brave.com/example-card.png", "type": "string" }, "long_description": { + "description": "Longer description of the entity.", "example": "A \"Hello, World!\" program is usually a simple computer program that displays on the screen a message similar to \"Hello, World!\".", "type": "string" }, "provider": { - "$ref": "#/definitions/brave.KnowledgeCardProvider" + "allOf": [ + { + "$ref": "#/definitions/brave.KnowledgeCardProvider" + } + ], + "description": "Source Brave credits for the card." }, "title": { + "description": "Name of the entity or topic the card is about.", "example": "\"Hello, World!\" program", "type": "string" }, "url": { + "description": "URL of the source page the card draws on.", "example": "https://en.wikipedia.org/wiki/%22Hello,_World!%22_program", "type": "string" } @@ -24687,14 +25792,17 @@ "brave.KnowledgeCardProvider": { "properties": { "icon": { + "description": "URL of the provider's icon.", "example": "https://imgs.search.brave.com/example-provider.ico", "type": "string" }, "name": { + "description": "Name of the provider, for example `Wikipedia`.", "example": "Wikipedia", "type": "string" }, "url": { + "description": "URL of the provider's page for the entity.", "example": "https://en.wikipedia.org/wiki/%22Hello,_World!%22_program", "type": "string" } @@ -24704,9 +25812,15 @@ "brave.NewsResponse": { "properties": { "pagination": { - "$ref": "#/definitions/brave.SearchPagination" + "allOf": [ + { + "$ref": "#/definitions/brave.SearchPagination" + } + ], + "description": "Paging information for this response." }, "results": { + "description": "News results in Brave's order.", "items": { "$ref": "#/definitions/brave.NewsResult" }, @@ -24718,42 +25832,52 @@ "brave.NewsResult": { "properties": { "age": { + "description": "How long ago the article was published, as Brave shows it.", "example": "2 hours ago", "type": "string" }, "description": { + "description": "Article snippet as shown on the Brave results page.", "example": "OpenAI announced an update.", "type": "string" }, "favicon": { + "description": "URL of the publisher's favicon as Brave serves it.", "example": "https://imgs.search.brave.com/example.ico", "type": "string" }, "hostname": { + "description": "Host name of the article URL.", "example": "www.example.com", "type": "string" }, "path": { + "description": "Breadcrumb-style path of the article URL as Brave shows it.", "example": "technology > ai", "type": "string" }, "position": { + "description": "Rank of the article across all result pages, starting at 1.", "example": 1, "type": "integer" }, "source": { + "description": "Name of the publication, for example `Reuters`.", "example": "Reuters", "type": "string" }, "thumbnail": { + "description": "URL of the article thumbnail.", "example": "https://imgs.search.brave.com/example-thumb.jpg", "type": "string" }, "title": { + "description": "Article headline as shown on the Brave results page.", "example": "OpenAI announces update", "type": "string" }, "url": { + "description": "URL of the news article.", "example": "https://example.com/openai-news", "type": "string" } @@ -24763,14 +25887,17 @@ "brave.SearchPagination": { "properties": { "next_offset": { + "description": "Offset to request the next page. Omitted when there is no next page.", "example": 1, "type": "integer" }, "offset": { + "description": "Zero-based page offset of this response.", "example": 0, "type": "integer" }, "previous_offset": { + "description": "Offset to request the previous page. Omitted on the first page.", "example": 0, "type": "integer" } @@ -24780,18 +25907,30 @@ "brave.SearchResponse": { "properties": { "discussions": { + "description": "Forum and Q&A discussions Brave shows for the query. Omitted when there are none.", "items": { "$ref": "#/definitions/brave.Discussion" }, "type": "array" }, "knowledge_card": { - "$ref": "#/definitions/brave.KnowledgeCard" + "allOf": [ + { + "$ref": "#/definitions/brave.KnowledgeCard" + } + ], + "description": "Knowledge card Brave shows for the query. Omitted when there is none." }, "pagination": { - "$ref": "#/definitions/brave.SearchPagination" + "allOf": [ + { + "$ref": "#/definitions/brave.SearchPagination" + } + ], + "description": "Paging information for this response." }, "related_queries": { + "description": "Related searches Brave suggests for the query.", "example": [ "hello world anime", "hello world code" @@ -24802,12 +25941,14 @@ "type": "array" }, "results": { + "description": "Organic web results in Brave's order.", "items": { "$ref": "#/definitions/brave.SearchResult" }, "type": "array" }, "videos": { + "description": "Video results Brave shows for the query. Omitted when there are none.", "items": { "$ref": "#/definitions/brave.VideoResult" }, @@ -24819,34 +25960,42 @@ "brave.SearchResult": { "properties": { "age": { + "description": "How old the page is, as Brave shows it. Omitted when Brave shows none.", "example": "1 day ago", "type": "string" }, "description": { + "description": "Result snippet as shown on the Brave results page.", "example": "OpenAI helps you build and deploy AI systems.", "type": "string" }, "favicon": { + "description": "URL of the site's favicon as Brave serves it.", "example": "https://imgs.search.brave.com/example.ico", "type": "string" }, "hostname": { + "description": "Host name of the result URL.", "example": "openai.com", "type": "string" }, "path": { + "description": "Breadcrumb-style path of the result URL as Brave shows it.", "example": "research > index", "type": "string" }, "position": { + "description": "Rank of the result on the page, starting at 1.", "example": 1, "type": "integer" }, "title": { + "description": "Result title as shown on the Brave results page.", "example": "OpenAI", "type": "string" }, "url": { + "description": "URL of the result page.", "example": "https://openai.com/", "type": "string" } @@ -24856,10 +26005,12 @@ "brave.SuggestResponse": { "properties": { "query": { + "description": "Query prefix the suggestions were requested for.", "example": "openai", "type": "string" }, "suggestions": { + "description": "Search suggestions Brave returned, in order.", "items": { "$ref": "#/definitions/brave.SuggestionResult" }, @@ -24871,22 +26022,27 @@ "brave.SuggestionEntity": { "properties": { "category": { + "description": "Kind of entity, for example `person`.", "example": "person", "type": "string" }, "description": { + "description": "Short description of the entity.", "example": "American singer-songwriter (born 1989)", "type": "string" }, "image_url": { + "description": "URL of the entity's image.", "example": "https://imgs.search.brave.com/example.jpg", "type": "string" }, "logo": { + "description": "Whether Brave marks the entity image as a logo.", "example": false, "type": "boolean" }, "name": { + "description": "Name of the entity.", "example": "Taylor Swift", "type": "string" } @@ -24896,13 +26052,20 @@ "brave.SuggestionResult": { "properties": { "entity": { - "$ref": "#/definitions/brave.SuggestionEntity" + "allOf": [ + { + "$ref": "#/definitions/brave.SuggestionEntity" + } + ], + "description": "Entity Brave matched to the suggestion. Only set when the request used `rich=true` and Brave recognises an entity." }, "position": { + "description": "Rank of the suggestion in the list, starting at 1.", "example": 1, "type": "integer" }, "query": { + "description": "Suggested search query.", "example": "openai api", "type": "string" } @@ -24912,54 +26075,67 @@ "brave.VideoResult": { "properties": { "age": { + "description": "When the video was published, as Brave shows it.", "example": "March 24, 2024", "type": "string" }, "creator": { + "description": "Channel or creator that published the video.", "example": "Train To Code", "type": "string" }, "description": { + "description": "Video description snippet as Brave shows it.", "example": "Introducing you to 15 of the most popular programming languages in the world, by writing hello world to the console.", "type": "string" }, "duration": { + "description": "Video length as Brave shows it, for example `08:47`.", "example": "08:47", "type": "string" }, "favicon": { + "description": "URL of the hosting site's favicon as Brave serves it.", "example": "https://imgs.search.brave.com/example-youtube.ico", "type": "string" }, "hostname": { + "description": "Host name of the video URL.", "example": "www.youtube.com", "type": "string" }, "path": { + "description": "Path of the video URL as Brave shows it.", "example": "watch", "type": "string" }, "platform": { + "description": "Platform hosting the video, for example `YouTube`.", "example": "YouTube", "type": "string" }, "position": { + "description": "Rank of the video among the results, starting at 1; continues across pages in video searches.", "example": 1, "type": "integer" }, "thumbnail": { + "description": "URL of the video thumbnail.", "example": "https://imgs.search.brave.com/example-thumb.jpg", "type": "string" }, "title": { + "description": "Video title as shown on the Brave results page.", "example": "Hello World in 15 Programming Languages - YouTube", "type": "string" }, "url": { + "description": "URL of the video page.", "example": "https://www.youtube.com/watch?v=tRUsXTbixIE", "type": "string" }, "views": { + "description": "View count as Brave shows it.", "example": "118", "type": "string" } @@ -24969,9 +26145,15 @@ "brave.VideosResponse": { "properties": { "pagination": { - "$ref": "#/definitions/brave.SearchPagination" + "allOf": [ + { + "$ref": "#/definitions/brave.SearchPagination" + } + ], + "description": "Paging information for this response." }, "results": { + "description": "Video results in Brave's order.", "items": { "$ref": "#/definitions/brave.VideoResult" }, @@ -31806,39 +32988,51 @@ "chromewebstore.Card": { "properties": { "category": { + "description": "Store category of the item, for example `productivity/tools`.", "type": "string" }, "category_id": { + "description": "Numeric id of the store category the item is listed in.", "type": "integer" }, "icon": { + "description": "URL of the item icon image.", "type": "string" }, "id": { + "description": "32-character Chrome Web Store item id. Use it with the item endpoint.", "type": "string" }, "name": { + "description": "Item name as shown on the store card.", "type": "string" }, "publisher": { + "description": "Publisher name or website domain shown on the card.", "type": "string" }, "rating": { + "description": "Average user rating out of 5.", "type": "number" }, "rating_count": { + "description": "Number of ratings the item has received.", "type": "integer" }, "summary": { + "description": "Short summary line shown on the store card.", "type": "string" }, "tile_image": { + "description": "URL of the item promotional tile image.", "type": "string" }, "url": { + "description": "Chrome Web Store detail page URL of the item.", "type": "string" }, "users": { + "description": "Number of users the store reports for the item.", "type": "integer" } }, @@ -31847,18 +33041,21 @@ "chromewebstore.CategoriesResult": { "properties": { "categories": { + "description": "Top-level category groups, each with its subcategory slugs.", "items": { "$ref": "#/definitions/chromewebstore.CategoryGroup" }, "type": "array" }, "charts": { + "description": "Chart names accepted by the charts endpoint.", "items": { "type": "string" }, "type": "array" }, "collections": { + "description": "Curated collection slugs accepted by the collection endpoint.", "items": { "type": "string" }, @@ -31870,9 +33067,11 @@ "chromewebstore.CategoryGroup": { "properties": { "group": { + "description": "Slug of the top-level category group.", "type": "string" }, "subcategories": { + "description": "Category slugs under the group, in the form `group/subcategory`. Use them with the category endpoint.", "items": { "type": "string" }, @@ -31884,42 +33083,54 @@ "chromewebstore.Developer": { "properties": { "address": { + "description": "Postal address the publisher disclosed as a trader, on one line.", "type": "string" }, "count": { + "description": "Number of items returned in `items`.", "type": "integer" }, "duns": { + "description": "D-U-N-S number the publisher disclosed as a trader.", "type": "string" }, "email": { + "description": "Contact email the publisher disclosed as a trader.", "type": "string" }, "id": { + "description": "Chrome Web Store publisher id, `u` followed by 32 hex characters.", "type": "string" }, "is_trader": { + "description": "Whether the publisher identifies as a trader under the EU trader disclosure rules.", "type": "boolean" }, "items": { + "description": "Items listed under this publisher, each in the same shape as a store card.", "items": { "$ref": "#/definitions/chromewebstore.Card" }, "type": "array" }, "legal_name": { + "description": "Legal name the publisher disclosed as a trader.", "type": "string" }, "name": { + "description": "Publisher name shown on the store.", "type": "string" }, "phone": { + "description": "Phone number the publisher disclosed as a trader.", "type": "string" }, "url": { + "description": "Chrome Web Store publisher page URL.", "type": "string" }, "website": { + "description": "Publisher website, taken from the domain shown on the publisher's items.", "type": "string" } }, @@ -31928,87 +33139,112 @@ "chromewebstore.Item": { "properties": { "category": { + "description": "Store category of the item, for example `make_chrome_yours/privacy`.", "type": "string" }, "category_id": { + "description": "Numeric id of the store category the item is listed in.", "type": "integer" }, "description": { + "description": "Full item description written by the publisher.", "type": "string" }, "developer": { + "description": "Developer name shown on the item page.", "type": "string" }, "developer_email": { + "description": "Contact email the developer lists for the item.", "type": "string" }, "header_image": { + "description": "URL of the large header image of the item.", "type": "string" }, "icon": { + "description": "URL of the item icon image.", "type": "string" }, "id": { + "description": "32-character Chrome Web Store item id.", "type": "string" }, "language_codes": { + "description": "Codes of the languages the item supports.", "items": { "type": "string" }, "type": "array" }, "languages": { + "description": "Languages the item supports.", "items": { "type": "string" }, "type": "array" }, "min_browser_version": { + "description": "Minimum Chrome version the item requires.", "type": "string" }, "name": { + "description": "Item name as shown on the store.", "type": "string" }, "privacy_policy": { + "description": "URL of the item's privacy policy.", "type": "string" }, "rating": { + "description": "Average user rating out of 5.", "type": "number" }, "rating_count": { + "description": "Number of ratings the item has received.", "type": "integer" }, "screenshots": { + "description": "URLs of the item screenshots, in store order.", "items": { "type": "string" }, "type": "array" }, "size": { + "description": "Download size of the item as the store shows it, for example `4.39MiB`.", "type": "string" }, "summary": { + "description": "Short summary line shown under the item name.", "type": "string" }, "support_url": { + "description": "URL of the developer's support page.", "type": "string" }, "tile_image": { + "description": "URL of the item promotional tile image.", "type": "string" }, "updated": { + "description": "Date the item was last updated, in YYYY-MM-DD (UTC).", "type": "string" }, "updated_unix": { + "description": "Time the item was last updated, in Unix seconds.", "type": "integer" }, "url": { + "description": "Chrome Web Store detail page URL of the item.", "type": "string" }, "users": { + "description": "Number of users the store reports for the item.", "type": "integer" }, "version": { + "description": "Current published version of the item.", "type": "string" } }, @@ -32017,18 +33253,22 @@ "chromewebstore.ListResult": { "properties": { "count": { + "description": "Number of items returned in `results`.", "type": "integer" }, "kind": { + "description": "Type of list returned: `category`, `collection` or `chart`.", "type": "string" }, "results": { + "description": "Items in the list, in store order.", "items": { "$ref": "#/definitions/chromewebstore.Card" }, "type": "array" }, "value": { + "description": "Category slug, collection slug or chart name that was listed.", "type": "string" } }, @@ -32037,45 +33277,55 @@ "chromewebstore.Permissions": { "properties": { "host_permissions": { + "description": "Site match patterns the item requests access to when installed.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "32-character Chrome Web Store item id.", "type": "string" }, "item_type": { + "description": "Kind of item: `extension`, `theme` or `app`, or `unknown` when the manifest is unavailable.", "type": "string" }, "manifest_version": { + "description": "Manifest version the item declares, `2` or `3`.", "type": "integer" }, "min_browser_version": { + "description": "Minimum Chrome version the manifest requires.", "type": "string" }, "name": { + "description": "Item name as shown on the store.", "type": "string" }, "optional_host_permissions": { + "description": "Site match patterns the item can request access to later.", "items": { "type": "string" }, "type": "array" }, "optional_permissions": { + "description": "Permissions the item can request later, after installation.", "items": { "type": "string" }, "type": "array" }, "permissions": { + "description": "Permissions the item requests when installed.", "items": { "type": "string" }, "type": "array" }, "url": { + "description": "Chrome Web Store detail page URL of the item.", "type": "string" } }, @@ -32084,33 +33334,41 @@ "chromewebstore.Privacy": { "properties": { "collects_data": { + "description": "Whether the item's privacy statement says it collects user data.", "type": "boolean" }, "data_collected": { + "description": "Data types the developer declares the item handles, such as `Location` or `Web history`.", "items": { "type": "string" }, "type": "array" }, "declarations": { + "description": "Standard data-handling declarations the developer made, for example statements that start with `Not being`.", "items": { "type": "string" }, "type": "array" }, "disclosure": { + "description": "Developer's data-use statement as shown on the item page.", "type": "string" }, "id": { + "description": "32-character Chrome Web Store item id.", "type": "string" }, "name": { + "description": "Item name as shown on the store.", "type": "string" }, "privacy_policy": { + "description": "URL of the item's privacy policy.", "type": "string" }, "url": { + "description": "Chrome Web Store detail page URL of the item.", "type": "string" } }, @@ -32119,36 +33377,47 @@ "chromewebstore.Review": { "properties": { "author": { + "description": "Display name of the reviewer.", "type": "string" }, "avatar": { + "description": "URL of the reviewer's profile picture.", "type": "string" }, "edited": { + "description": "Date the review was last edited, in YYYY-MM-DD (UTC). Omitted when it was not edited.", "type": "string" }, "helpful": { + "description": "Number of users who marked the review as helpful.", "type": "integer" }, "id": { + "description": "Unique id of the review on the Chrome Web Store.", "type": "string" }, "language": { + "description": "Language code of the review text.", "type": "string" }, "posted": { + "description": "Date the review was posted, in YYYY-MM-DD (UTC).", "type": "string" }, "posted_unix": { + "description": "Time the review was posted, in Unix seconds.", "type": "integer" }, "rating": { + "description": "Star rating the reviewer gave, from 1 to 5.", "type": "integer" }, "text": { + "description": "Review text written by the reviewer.", "type": "string" }, "version": { + "description": "Item version the reviewer used when writing the review.", "type": "string" } }, @@ -32157,18 +33426,22 @@ "chromewebstore.ReviewsResult": { "properties": { "count": { + "description": "Number of reviews returned in `reviews`.", "type": "integer" }, "id": { + "description": "32-character Chrome Web Store item id the reviews belong to.", "type": "string" }, "reviews": { + "description": "Reviews of the item, in the requested sort order.", "items": { "$ref": "#/definitions/chromewebstore.Review" }, "type": "array" }, "total": { + "description": "Total number of reviews the store reports for the item.", "type": "integer" } }, @@ -32177,12 +33450,15 @@ "chromewebstore.SearchResult": { "properties": { "count": { + "description": "Number of items returned in `results`.", "type": "integer" }, "query": { + "description": "Search keyword that was run.", "type": "string" }, "results": { + "description": "Items matching the search, in store order.", "items": { "$ref": "#/definitions/chromewebstore.Card" }, @@ -32194,12 +33470,15 @@ "chromewebstore.SimilarResult": { "properties": { "count": { + "description": "Number of items returned in `results`.", "type": "integer" }, "id": { + "description": "32-character Chrome Web Store item id the related items were requested for.", "type": "string" }, "results": { + "description": "Items the store recommends alongside the requested item.", "items": { "$ref": "#/definitions/chromewebstore.Card" }, @@ -32211,6 +33490,7 @@ "chromewebstore.Suggestion": { "properties": { "term": { + "description": "Suggested search term, an item name that matches the typed prefix.", "type": "string" } }, @@ -33629,24 +34909,29 @@ "coingecko.CategoriesResponse": { "properties": { "categories": { + "description": "Coin categories, one row per category.", "items": { "$ref": "#/definitions/coingecko.CategoryRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of categories returned.", "example": 100, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/categories", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -33656,62 +34941,77 @@ "coingecko.CategoryCoinRow": { "properties": { "change_1h_percent": { + "description": "Price change over the last hour, in percent.", "example": 0.01, "type": "number" }, "change_24h_percent": { + "description": "Price change over the last 24 hours, in percent.", "example": 0.03, "type": "number" }, "change_30d_percent": { + "description": "Price change over the last 30 days, in percent.", "example": 0.1, "type": "number" }, "change_7d_percent": { + "description": "Price change over the last 7 days, in percent.", "example": -0.02, "type": "number" }, "fully_diluted_valuation": { + "description": "Fully diluted valuation.", "example": 151000000000, "type": "number" }, "id": { + "description": "CoinGecko coin id.", "example": "tether", "type": "string" }, "image_url": { + "description": "URL of the coin logo.", "example": "https://assets.coingecko.com/coins/images/325/standard/Tether.png", "type": "string" }, "market_cap": { + "description": "Market capitalisation of the coin.", "example": 150000000000, "type": "number" }, "market_cap_fdv_ratio": { + "description": "Market capitalisation divided by fully diluted valuation.", "example": 0.99, "type": "number" }, "name": { + "description": "Name of the coin.", "example": "Tether", "type": "string" }, "price": { + "description": "Current price of the coin.", "example": 1, "type": "number" }, "rank": { + "description": "Market cap rank of the coin.", "example": 1, "type": "integer" }, "symbol": { + "description": "Ticker symbol of the coin.", "example": "USDT", "type": "string" }, "url": { + "description": "Link to the coin page on CoinGecko.", "example": "https://www.coingecko.com/en/coins/tether", "type": "string" }, "volume_24h": { + "description": "Trading volume over the last 24 hours.", "example": 100000000000, "type": "number" } @@ -33721,36 +35021,44 @@ "coingecko.CategoryCoinsResponse": { "properties": { "coins": { + "description": "Coins in the category on this page.", "items": { "$ref": "#/definitions/coingecko.CategoryCoinRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of coins returned.", "example": 100, "type": "integer" }, "name": { + "description": "Name of the category.", "example": "Stablecoins", "type": "string" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "slug": { + "description": "URL slug of the category.", "example": "stablecoins", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/categories/stablecoins?page=1", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -33760,46 +35068,57 @@ "coingecko.CategoryRow": { "properties": { "change_1h_percent": { + "description": "Change in the category market cap over the last hour, in percent.", "example": 0.2, "type": "number" }, "change_24h_percent": { + "description": "Change in the category market cap over the last 24 hours, in percent.", "example": 1.4, "type": "number" }, "change_7d_percent": { + "description": "Change in the category market cap over the last 7 days, in percent.", "example": -2.1, "type": "number" }, "coin_count": { + "description": "Number of coins in the category.", "example": 128, "type": "integer" }, "id": { + "description": "CoinGecko category id.", "example": "layer-1", "type": "string" }, "market_cap": { + "description": "Combined market capitalisation of the category.", "example": 2533816836729, "type": "number" }, "name": { + "description": "Name of the category.", "example": "Layer 1", "type": "string" }, "rank": { + "description": "Position of the category in the categories table.", "example": 1, "type": "integer" }, "slug": { + "description": "URL slug of the category. Use it with the category coins endpoint.", "example": "layer-1", "type": "string" }, "url": { + "description": "Link to the category page on CoinGecko.", "example": "https://www.coingecko.com/en/categories/layer-1", "type": "string" }, "volume_24h": { + "description": "Combined trading volume of the category over the last 24 hours.", "example": 813530873, "type": "number" } @@ -33809,44 +35128,53 @@ "coingecko.ChainDetailResponse": { "properties": { "coins": { + "description": "Coins on the chain.", "items": { "$ref": "#/definitions/coingecko.CategoryCoinRow" }, "type": "array" }, "collections": { + "description": "NFT collections on the chain.", "items": { "$ref": "#/definitions/coingecko.NFTCollectionRow" }, "type": "array" }, "exchanges": { + "description": "Decentralised exchanges on the chain.", "items": { "$ref": "#/definitions/coingecko.ChainExchangeRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "id": { + "description": "CoinGecko chain id.", "example": "ethereum", "type": "string" }, "limit": { + "description": "Maximum number of rows returned per list.", "example": 20, "type": "integer" }, "name": { + "description": "Name of the chain.", "example": "Ethereum", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/chains/ethereum", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -33856,34 +35184,42 @@ "coingecko.ChainExchangeRow": { "properties": { "id": { + "description": "CoinGecko exchange id.", "example": "uniswap-v3-ethereum", "type": "string" }, "image_url": { + "description": "URL of the exchange logo.", "example": "https://assets.coingecko.com/markets/images/665/small/uniswap-v3.png", "type": "string" }, "market_share_percent": { + "description": "Share of the chain's exchange volume held by this exchange, in percent.", "example": 8.5, "type": "number" }, "name": { + "description": "Name of the exchange.", "example": "Uniswap V3 (Ethereum)", "type": "string" }, "rank": { + "description": "Position of the exchange in the chain's exchange table.", "example": 1, "type": "integer" }, "url": { + "description": "Link to the exchange page on CoinGecko.", "example": "https://www.coingecko.com/en/exchanges/uniswap-v3-ethereum", "type": "string" }, "volume_24h": { + "description": "Trading volume on the chain over the last 24 hours.", "example": 1200000000, "type": "number" }, "volume_24h_text": { + "description": "24-hour trading volume as CoinGecko displays it, for example `$1,200,000,000`.", "example": "$1,200,000,000", "type": "string" } @@ -33893,42 +35229,52 @@ "coingecko.ChainRow": { "properties": { "change_24h_percent": { + "description": "Change over the last 24 hours, in percent.", "example": 1.2, "type": "number" }, "change_30d_percent": { + "description": "Change over the last 30 days, in percent.", "example": 8.9, "type": "number" }, "change_7d_percent": { + "description": "Change over the last 7 days, in percent.", "example": -3.4, "type": "number" }, "coin_count": { + "description": "Number of coins on the chain.", "example": 1284, "type": "integer" }, "dominance_percent": { + "description": "Dominance of the chain in percent, as shown in the chains table.", "example": 52.3, "type": "number" }, "id": { + "description": "CoinGecko chain id. Use it with the chain endpoint.", "example": "ethereum", "type": "string" }, "image_url": { + "description": "URL of the chain logo.", "example": "https://assets.coingecko.com/asset_platforms/images/279/small/ethereum.png", "type": "string" }, "name": { + "description": "Name of the chain.", "example": "Ethereum", "type": "string" }, "rank": { + "description": "Position of the chain in the chains table.", "example": 1, "type": "integer" }, "top_gainers": { + "description": "Names of the best-performing coins on the chain.", "example": [ "Uniswap", "Lido DAO" @@ -33939,14 +35285,17 @@ "type": "array" }, "tvl": { + "description": "Total value locked on the chain.", "example": 74500000000, "type": "number" }, "url": { + "description": "Link to the chain page on CoinGecko.", "example": "https://www.coingecko.com/en/chains/ethereum", "type": "string" }, "volume_24h": { + "description": "Trading volume on the chain over the last 24 hours.", "example": 18350000000, "type": "number" } @@ -33956,24 +35305,29 @@ "coingecko.ChainsResponse": { "properties": { "chains": { + "description": "Blockchains, one row per chain.", "items": { "$ref": "#/definitions/coingecko.ChainRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of chains returned.", "example": 100, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/chains", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -34000,36 +35354,44 @@ "coingecko.CoinResponse": { "properties": { "categories": { + "description": "Names of the CoinGecko categories the coin belongs to.", "items": { "type": "string" }, "type": "array" }, "change_1h_percent": { + "description": "Price change over the last hour, in percent.", "example": -0.1, "type": "number" }, "change_24h_percent": { + "description": "Price change over the last 24 hours, in percent.", "example": 1.5, "type": "number" }, "change_7d_percent": { + "description": "Price change over the last 7 days, in percent.", "example": -1.9, "type": "number" }, "circulating_supply": { + "description": "Number of coins currently in circulation.", "example": 20033818, "type": "number" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "fully_diluted_valuation": { + "description": "Fully diluted valuation.", "example": 1533816836729, "type": "number" }, "id": { + "description": "CoinGecko coin id.", "example": "bitcoin", "type": "string" }, @@ -34037,41 +35399,51 @@ "additionalProperties": { "type": "string" }, + "description": "Outbound links for the coin, keyed by kind: `website`, `whitepaper`, `github`, `twitter` or `reddit`. Only kinds CoinGecko lists are present.", "type": "object" }, "market_cap": { + "description": "Market capitalisation of the coin.", "example": 1533816836729, "type": "number" }, "max_supply": { + "description": "Maximum number of coins that can ever exist.", "example": 21000000, "type": "number" }, "name": { + "description": "Name of the coin.", "example": "Bitcoin", "type": "string" }, "price": { + "description": "Current price of the coin.", "example": 76535.94, "type": "number" }, "rank": { + "description": "Market cap rank of the coin.", "example": 1, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/coins/bitcoin", "type": "string" }, "symbol": { + "description": "Ticker symbol of the coin.", "example": "BTC", "type": "string" }, "total_supply": { + "description": "Total number of coins that exist now.", "example": 20033818, "type": "number" }, "volume_24h": { + "description": "Trading volume over the last 24 hours.", "example": 26813530873, "type": "number" } @@ -34081,48 +35453,59 @@ "coingecko.ExchangeDetailResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "id": { + "description": "CoinGecko exchange id.", "example": "binance", "type": "string" }, "kind": { + "description": "Exchange table kind. Currently always `spot`.", "example": "spot", "type": "string" }, "limit": { + "description": "Maximum number of markets returned.", "example": 100, "type": "integer" }, "markets": { + "description": "Trading pairs listed on the exchange, one row per pair.", "items": { "$ref": "#/definitions/coingecko.ExchangeMarketRow" }, "type": "array" }, "name": { + "description": "Name of the exchange.", "example": "Binance", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/exchanges/binance", "type": "string" }, "trust_score": { + "description": "CoinGecko trust score of the exchange, shown on a scale up to 10.", "example": 10, "type": "number" }, "volume_24h": { + "description": "Trading volume over the last 24 hours.", "example": 23789315893, "type": "number" }, "volume_24h_text": { + "description": "24-hour trading volume as CoinGecko displays it, for example `$23,789,315,893`.", "example": "$23,789,315,893", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -34132,54 +35515,67 @@ "coingecko.ExchangeMarketRow": { "properties": { "coin_id": { + "description": "CoinGecko id of the base coin.", "example": "bitcoin", "type": "string" }, "coin_name": { + "description": "Name of the base coin.", "example": "Bitcoin", "type": "string" }, "coin_symbol": { + "description": "Ticker symbol of the base coin.", "example": "BTC", "type": "string" }, "coin_url": { + "description": "Link to the base coin page on CoinGecko.", "example": "https://www.coingecko.com/en/coins/bitcoin", "type": "string" }, "depth_minus_2_percent": { + "description": "Order book depth within 2% below the price.", "example": 1100000, "type": "number" }, "depth_plus_2_percent": { + "description": "Order book depth within 2% above the price.", "example": 1200000, "type": "number" }, "last_updated": { + "description": "When the pair was last updated, as CoinGecko words it, for example `Recently`.", "example": "Recently", "type": "string" }, "pair": { + "description": "Trading pair, for example `BTC/USDT`.", "example": "BTC/USDT", "type": "string" }, "price": { + "description": "Last price of the pair.", "example": 76535.94, "type": "number" }, "rank": { + "description": "Position of the pair in the exchange's market table.", "example": 1, "type": "integer" }, "spread_percent": { + "description": "Bid-ask spread of the pair, in percent.", "example": 0.01, "type": "number" }, "volume_24h": { + "description": "Trading volume of the pair over the last 24 hours.", "example": 2100000000, "type": "number" }, "volume_percent": { + "description": "Share of the exchange's trading volume that this pair accounts for, in percent.", "example": 8.5, "type": "number" } @@ -34189,38 +35585,47 @@ "coingecko.ExchangeRow": { "properties": { "id": { + "description": "CoinGecko exchange id. Use it with the exchange endpoint.", "example": "binance", "type": "string" }, "image_url": { + "description": "URL of the exchange logo.", "example": "https://assets.coingecko.com/markets/images/52/small/binance.jpg", "type": "string" }, "kind": { + "description": "Exchange table the row belongs to, for example `spot`.", "example": "spot", "type": "string" }, "name": { + "description": "Name of the exchange.", "example": "Binance", "type": "string" }, "rank": { + "description": "Position of the exchange in the exchanges table.", "example": 1, "type": "integer" }, "trust_score": { + "description": "CoinGecko trust score of the exchange, shown on a scale up to 10.", "example": 10, "type": "number" }, "url": { + "description": "Link to the exchange page on CoinGecko.", "example": "https://www.coingecko.com/en/exchanges/binance", "type": "string" }, "volume_24h": { + "description": "Trading volume over the last 24 hours.", "example": 23789315893, "type": "number" }, "volume_24h_text": { + "description": "24-hour trading volume as CoinGecko displays it, for example `$23,789,315,893`.", "example": "$23,789,315,893", "type": "string" } @@ -34230,32 +35635,39 @@ "coingecko.ExchangesResponse": { "properties": { "exchanges": { + "description": "Exchanges on this page, one row per exchange.", "items": { "$ref": "#/definitions/coingecko.ExchangeRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "kind": { + "description": "Exchange table returned: `spot`, `dex`, `derivatives` or `perp_dex`.", "example": "spot", "type": "string" }, "limit": { + "description": "Maximum number of exchanges returned.", "example": 100, "type": "integer" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/exchanges", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -34265,38 +35677,47 @@ "coingecko.GainerLoserRow": { "properties": { "change_24h_percent": { + "description": "Price change over the last 24 hours, in percent.", "example": 52.3, "type": "number" }, "id": { + "description": "CoinGecko coin id.", "example": "seda", "type": "string" }, "image_url": { + "description": "URL of the coin logo.", "example": "https://assets.coingecko.com/coins/images/1/standard/token.png", "type": "string" }, "name": { + "description": "Name of the coin.", "example": "SEDA", "type": "string" }, "price": { + "description": "Current price of the coin.", "example": 0.06493, "type": "number" }, "rank": { + "description": "Market cap rank of the coin.", "example": 514, "type": "integer" }, "symbol": { + "description": "Ticker symbol of the coin.", "example": "SEDA", "type": "string" }, "url": { + "description": "Link to the coin page on CoinGecko.", "example": "https://www.coingecko.com/en/coins/seda", "type": "string" }, "volume_24h": { + "description": "Trading volume over the last 24 hours.", "example": 2262031, "type": "number" } @@ -34306,30 +35727,36 @@ "coingecko.GainersLosersResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "gainers": { + "description": "Coins with the largest 24-hour price gains.", "items": { "$ref": "#/definitions/coingecko.GainerLoserRow" }, "type": "array" }, "limit": { + "description": "Maximum number of rows returned per list.", "example": 20, "type": "integer" }, "losers": { + "description": "Coins with the largest 24-hour price losses.", "items": { "$ref": "#/definitions/coingecko.GainerLoserRow" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/crypto-gainers-losers", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -34339,14 +35766,17 @@ "coingecko.GlobalChartPoint": { "properties": { "datetime": { + "description": "Time of the point, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "timestamp": { + "description": "Time of the point, in Unix milliseconds.", "example": 1779556795943, "type": "integer" }, "value": { + "description": "Value of the series at that time.", "example": 2670000000000, "type": "number" } @@ -34356,10 +35786,12 @@ "coingecko.GlobalChartSeries": { "properties": { "name": { + "description": "Name of the data series.", "example": "market_cap", "type": "string" }, "points": { + "description": "Time-ordered points of the series.", "items": { "$ref": "#/definitions/coingecko.GlobalChartPoint" }, @@ -34371,28 +35803,34 @@ "coingecko.GlobalChartsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "kind": { + "description": "Chart returned: `total_market_cap`, `bitcoin_dominance`, `altcoin_market_cap` or `defi_market_cap`.", "example": "total_market_cap", "type": "string" }, "limit": { + "description": "Maximum number of points returned per series.", "example": 120, "type": "integer" }, "range": { + "description": "Time range covered: `24h`, `7d`, `14d`, `30d`, `90d`, `1y` or `max`.", "example": "90d", "type": "string" }, "series": { + "description": "Data series of the chart.", "items": { "$ref": "#/definitions/coingecko.GlobalChartSeries" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/etl2/global_charts/usd/total_market_cap?duration=90&locale=en", "type": "string" } @@ -34402,54 +35840,67 @@ "coingecko.GlobalResponse": { "properties": { "bitcoin_dominance_percent": { + "description": "Bitcoin share of the total crypto market capitalisation, in percent.", "example": 50.6, "type": "number" }, "bitcoin_market_cap_usd": { + "description": "Bitcoin market capitalisation, in US dollars.", "example": 1350000000000, "type": "number" }, "categories_tracked": { + "description": "Number of categories CoinGecko tracks.", "example": 308, "type": "integer" }, "coins_tracked": { + "description": "Number of coins CoinGecko tracks.", "example": 17677, "type": "integer" }, "ethereum_dominance_percent": { + "description": "Ethereum share of the total crypto market capitalisation, in percent.", "example": 17.2, "type": "number" }, "exchanges_tracked": { + "description": "Number of exchanges CoinGecko tracks.", "example": 1233, "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "market_cap_change_1y_percent": { + "description": "Change in total market capitalisation over the last year, in percent.", "example": 68.4, "type": "number" }, "market_cap_change_24h_percent": { + "description": "Change in total market capitalisation over the last 24 hours, in percent.", "example": 1.2, "type": "number" }, "market_cap_usd": { + "description": "Total crypto market capitalisation, in US dollars.", "example": 2670000000000, "type": "number" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/charts", "type": "string" }, "stablecoin_market_cap_usd": { + "description": "Combined stablecoin market capitalisation, in US dollars.", "example": 161000000000, "type": "number" }, "stablecoin_share_percent": { + "description": "Stablecoin share of the total crypto market capitalisation, in percent.", "example": 6.03, "type": "number" } @@ -34459,42 +35910,52 @@ "coingecko.LearnArticle": { "properties": { "author": { + "description": "Name of the article author.", "example": "CoinGecko", "type": "string" }, "category": { + "description": "Learn category of the article, for example `Guides`.", "example": "Guides", "type": "string" }, "excerpt": { + "description": "Short excerpt of the article.", "example": "A beginner guide to Bitcoin.", "type": "string" }, "image_url": { + "description": "URL of the article image.", "example": "https://assets.coingecko.com/learn/image.jpg", "type": "string" }, "published_date": { + "description": "Publication date as CoinGecko displays it, for example `May 25, 2026`.", "example": "May 25, 2026", "type": "string" }, "rating_score": { + "description": "Average reader rating.", "example": 4.8, "type": "number" }, "rating_text": { + "description": "Reader rating as CoinGecko displays it, for example `4.8 (120 votes)`.", "example": "4.8 (120 votes)", "type": "string" }, "rating_votes": { + "description": "Number of reader votes behind the rating.", "example": 120, "type": "integer" }, "title": { + "description": "Title of the article.", "example": "What Is Bitcoin?", "type": "string" }, "url": { + "description": "Link to the article.", "example": "https://www.coingecko.com/learn/what-is-bitcoin", "type": "string" } @@ -34504,24 +35965,29 @@ "coingecko.LearnArticlesResponse": { "properties": { "articles": { + "description": "Articles from CoinGecko Learn.", "items": { "$ref": "#/definitions/coingecko.LearnArticle" }, "type": "array" }, "category": { + "description": "Learn category returned.", "example": "latest", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of articles returned.", "example": 20, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/learn/latest?locale=en", "type": "string" } @@ -34531,50 +35997,62 @@ "coingecko.MarketCoin": { "properties": { "change_1h_percent": { + "description": "Price change over the last hour, in percent.", "example": -0.1, "type": "number" }, "change_24h_percent": { + "description": "Price change over the last 24 hours, in percent.", "example": 1.5, "type": "number" }, "change_7d_percent": { + "description": "Price change over the last 7 days, in percent.", "example": -1.9, "type": "number" }, "id": { + "description": "CoinGecko coin id. Use it with the coin endpoint.", "example": "bitcoin", "type": "string" }, "image_url": { + "description": "URL of the coin logo.", "example": "https://assets.coingecko.com/coins/images/1/standard/bitcoin.png", "type": "string" }, "market_cap": { + "description": "Market capitalisation of the coin.", "example": 1533816836729, "type": "number" }, "name": { + "description": "Name of the coin.", "example": "Bitcoin", "type": "string" }, "price": { + "description": "Current price of the coin.", "example": 76535.94, "type": "number" }, "rank": { + "description": "Market cap rank of the coin.", "example": 1, "type": "integer" }, "symbol": { + "description": "Ticker symbol of the coin.", "example": "BTC", "type": "string" }, "url": { + "description": "Link to the coin page on CoinGecko.", "example": "https://www.coingecko.com/en/coins/bitcoin", "type": "string" }, "volume_24h": { + "description": "Trading volume over the last 24 hours.", "example": 26813530873, "type": "number" } @@ -34584,28 +36062,34 @@ "coingecko.MarketsResponse": { "properties": { "coins": { + "description": "Coins on this page of the market table, ordered by market cap rank.", "items": { "$ref": "#/definitions/coingecko.MarketCoin" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of coins returned.", "example": 100, "type": "integer" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/?page=1", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -34615,36 +36099,44 @@ "coingecko.NFTCategoryResponse": { "properties": { "collections": { + "description": "NFT collections in the category on this page.", "items": { "$ref": "#/definitions/coingecko.NFTCollectionRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of collections returned.", "example": 100, "type": "integer" }, "name": { + "description": "NFT category name.", "example": "Metaverse", "type": "string" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "slug": { + "description": "URL slug of the NFT category.", "example": "metaverse", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/nft/categories/metaverse?page=1", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -34654,66 +36146,82 @@ "coingecko.NFTCollectionRow": { "properties": { "chain": { + "description": "Blockchain the collection lives on, for example `Ethereum`.", "example": "Ethereum", "type": "string" }, "change_24h_percent": { + "description": "Floor price change over the last 24 hours, in percent.", "example": 1.2, "type": "number" }, "change_30d_percent": { + "description": "Floor price change over the last 30 days, in percent.", "example": 8.9, "type": "number" }, "change_7d_percent": { + "description": "Floor price change over the last 7 days, in percent.", "example": -3.4, "type": "number" }, "floor_price_native": { + "description": "Floor price in the chain's native currency.", "example": 10.5, "type": "number" }, "floor_price_usd": { + "description": "Floor price in US dollars.", "example": 38850, "type": "number" }, "id": { + "description": "CoinGecko NFT collection id.", "example": "pudgy-penguins", "type": "string" }, "image_url": { + "description": "URL of the collection image.", "example": "https://assets.coingecko.com/nft_contracts/images/38/small/pudgy-penguins.png", "type": "string" }, "market_cap_native": { + "description": "Market capitalisation in the chain's native currency.", "example": 105000, "type": "number" }, "market_cap_usd": { + "description": "Market capitalisation in US dollars.", "example": 388500000, "type": "number" }, "name": { + "description": "Name of the NFT collection.", "example": "Pudgy Penguins", "type": "string" }, "rank": { + "description": "Position of the collection in the table.", "example": 1, "type": "integer" }, "sales_24h": { + "description": "Number of sales in the last 24 hours.", "example": 42, "type": "integer" }, "url": { + "description": "Link to the collection page on CoinGecko.", "example": "https://www.coingecko.com/en/nft/pudgy-penguins", "type": "string" }, "volume_24h_native": { + "description": "Trading volume over the last 24 hours, in the chain's native currency.", "example": 320.4, "type": "number" }, "volume_24h_usd": { + "description": "Trading volume over the last 24 hours, in US dollars.", "example": 1185480, "type": "number" } @@ -34723,28 +36231,34 @@ "coingecko.NFTsResponse": { "properties": { "collections": { + "description": "NFT collections on this page, one row per collection.", "items": { "$ref": "#/definitions/coingecko.NFTCollectionRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of collections returned.", "example": 100, "type": "integer" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/nft?page=1", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -34754,54 +36268,67 @@ "coingecko.NewCoinRow": { "properties": { "chain": { + "description": "Blockchain the coin runs on, for example `Solana`.", "example": "Solana", "type": "string" }, "change_1h_percent": { + "description": "Price change over the last hour, in percent.", "example": 5.4, "type": "number" }, "change_24h_percent": { + "description": "Price change over the last 24 hours, in percent.", "example": 107.9, "type": "number" }, "fully_diluted_valuation": { + "description": "Fully diluted valuation.", "example": 135506, "type": "number" }, "id": { + "description": "CoinGecko coin id. Use it with the coin endpoint.", "example": "purple-troll", "type": "string" }, "image_url": { + "description": "URL of the coin logo.", "example": "https://assets.coingecko.com/coins/images/1/standard/token.png", "type": "string" }, "last_added": { + "description": "How long ago the coin was listed, as CoinGecko words it, for example `about 14 hours`.", "example": "about 14 hours", "type": "string" }, "name": { + "description": "Name of the coin.", "example": "Purple Troll", "type": "string" }, "price": { + "description": "Current price of the coin.", "example": 0.0001351, "type": "number" }, "rank": { + "description": "Market cap rank of the coin.", "example": 5492, "type": "integer" }, "symbol": { + "description": "Ticker symbol of the coin.", "example": "PTROLL", "type": "string" }, "url": { + "description": "Link to the coin page on CoinGecko.", "example": "https://www.coingecko.com/en/coins/purple-troll", "type": "string" }, "volume_24h": { + "description": "Trading volume over the last 24 hours.", "example": 61089.52, "type": "number" } @@ -34811,28 +36338,34 @@ "coingecko.NewCoinsResponse": { "properties": { "coins": { + "description": "Recently listed coins on this page.", "items": { "$ref": "#/definitions/coingecko.NewCoinRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of coins returned.", "example": 100, "type": "integer" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/new-cryptocurrencies?page=1", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -34842,32 +36375,39 @@ "coingecko.NewsArticle": { "properties": { "coins": { + "description": "Coins the article is tagged with.", "items": { "$ref": "#/definitions/coingecko.NewsCoin" }, "type": "array" }, "image_url": { + "description": "URL of the article image.", "example": "https://assets.coingecko.com/news/image.jpg", "type": "string" }, "published_text": { + "description": "When the article was published, as CoinGecko words it, for example `2 hours ago`.", "example": "2 hours ago", "type": "string" }, "publisher": { + "description": "Name of the outlet that published the article.", "example": "CoinDesk", "type": "string" }, "summary": { + "description": "Short summary of the article.", "example": "A brief summary of the article.", "type": "string" }, "title": { + "description": "Headline of the article.", "example": "Bitcoin rises as crypto markets recover", "type": "string" }, "url": { + "description": "Link to the article.", "example": "https://example.com/news/story", "type": "string" } @@ -34877,22 +36417,27 @@ "coingecko.NewsCoin": { "properties": { "change_percent": { + "description": "Price change shown for the coin next to the article, in percent.", "example": 1.2, "type": "number" }, "id": { + "description": "CoinGecko coin id.", "example": "bitcoin", "type": "string" }, "name": { + "description": "Name of the coin.", "example": "Bitcoin", "type": "string" }, "symbol": { + "description": "Ticker symbol of the coin.", "example": "BTC", "type": "string" }, "url": { + "description": "Link to the coin page on CoinGecko.", "example": "https://www.coingecko.com/en/coins/bitcoin", "type": "string" } @@ -34902,20 +36447,24 @@ "coingecko.NewsResponse": { "properties": { "articles": { + "description": "News articles listed on CoinGecko.", "items": { "$ref": "#/definitions/coingecko.NewsArticle" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of articles returned.", "example": 20, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/news", "type": "string" } @@ -34925,14 +36474,17 @@ "coingecko.SearchAssetPlatform": { "properties": { "id": { + "description": "CoinGecko blockchain platform id.", "example": "ethereum", "type": "string" }, "name": { + "description": "Blockchain platform name.", "example": "Ethereum", "type": "string" }, "url": { + "description": "Link to the chain page on CoinGecko.", "example": "https://www.coingecko.com/en/chains/ethereum", "type": "string" } @@ -34942,18 +36494,22 @@ "coingecko.SearchCategory": { "properties": { "id": { + "description": "CoinGecko category id.", "example": "layer-1", "type": "string" }, "name": { + "description": "Name of the category.", "example": "Layer 1", "type": "string" }, "slug": { + "description": "URL slug of the category.", "example": "layer-1", "type": "string" }, "url": { + "description": "Link to the category page on CoinGecko.", "example": "https://www.coingecko.com/en/categories/layer-1", "type": "string" } @@ -34963,26 +36519,32 @@ "coingecko.SearchCoin": { "properties": { "id": { + "description": "CoinGecko coin id. Use it with the coin endpoint.", "example": "bitcoin", "type": "string" }, "image_url": { + "description": "URL of the coin logo.", "example": "https://assets.coingecko.com/coins/images/1/standard/bitcoin.png", "type": "string" }, "market_cap_rank": { + "description": "Market cap rank of the coin.", "example": 1, "type": "integer" }, "name": { + "description": "Name of the coin.", "example": "Bitcoin", "type": "string" }, "symbol": { + "description": "Ticker symbol of the coin.", "example": "BTC", "type": "string" }, "url": { + "description": "Link to the coin page on CoinGecko.", "example": "https://www.coingecko.com/en/coins/bitcoin", "type": "string" } @@ -34992,18 +36554,22 @@ "coingecko.SearchMarket": { "properties": { "id": { + "description": "CoinGecko exchange id.", "example": "binance", "type": "string" }, "name": { + "description": "Name of the exchange.", "example": "Binance", "type": "string" }, "type": { + "description": "Kind of market, for example `exchange`.", "example": "exchange", "type": "string" }, "url": { + "description": "Link to the exchange page on CoinGecko.", "example": "https://www.coingecko.com/en/exchanges/binance", "type": "string" } @@ -35013,26 +36579,32 @@ "coingecko.SearchNFTContract": { "properties": { "address": { + "description": "Contract address of the collection.", "example": "0xbd3531da5cf5857e7cfaa92426877b022e612cf8", "type": "string" }, "asset_platform_id": { + "description": "Id of the blockchain the contract is deployed on, for example `ethereum`.", "example": "ethereum", "type": "string" }, "id": { + "description": "CoinGecko NFT collection id.", "example": "pudgy-penguins", "type": "string" }, "name": { + "description": "Name of the NFT collection.", "example": "Pudgy Penguins", "type": "string" }, "symbol": { + "description": "Collection ticker symbol.", "example": "PPG", "type": "string" }, "url": { + "description": "Link to the collection page on CoinGecko.", "example": "https://www.coingecko.com/en/nft/pudgy-penguins", "type": "string" } @@ -35042,18 +36614,22 @@ "coingecko.SearchPost": { "properties": { "description": { + "description": "Short description of the article.", "example": "Latest Bitcoin market context.", "type": "string" }, "id": { + "description": "CoinGecko article id.", "example": "post-123", "type": "string" }, "title": { + "description": "Title of the article.", "example": "Bitcoin market update", "type": "string" }, "url": { + "description": "Link to the article.", "example": "https://www.coingecko.com/learn/bitcoin", "type": "string" } @@ -35063,54 +36639,64 @@ "coingecko.SearchResponse": { "properties": { "asset_platforms": { + "description": "Blockchain platforms matching the query.", "items": { "$ref": "#/definitions/coingecko.SearchAssetPlatform" }, "type": "array" }, "categories": { + "description": "Categories matching the query.", "items": { "$ref": "#/definitions/coingecko.SearchCategory" }, "type": "array" }, "coins": { + "description": "Coins matching the query.", "items": { "$ref": "#/definitions/coingecko.SearchCoin" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of results returned per result type.", "example": 10, "type": "integer" }, "markets": { + "description": "Exchanges and other markets matching the query.", "items": { "$ref": "#/definitions/coingecko.SearchMarket" }, "type": "array" }, "nft_contracts": { + "description": "NFT collections matching the query.", "items": { "$ref": "#/definitions/coingecko.SearchNFTContract" }, "type": "array" }, "posts": { + "description": "CoinGecko articles matching the query.", "items": { "$ref": "#/definitions/coingecko.SearchPost" }, "type": "array" }, "query": { + "description": "Search text that was run.", "example": "bitcoin", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/search_v2?query=bitcoin", "type": "string" } @@ -35120,70 +36706,87 @@ "coingecko.TokenUnlockRow": { "properties": { "change_1h_percent": { + "description": "Price change over the last hour, in percent.", "example": 0.2, "type": "number" }, "change_24h_percent": { + "description": "Price change over the last 24 hours, in percent.", "example": 1.4, "type": "number" }, "change_7d_percent": { + "description": "Price change over the last 7 days, in percent.", "example": -2.1, "type": "number" }, "id": { + "description": "CoinGecko coin id.", "example": "solv-protocol", "type": "string" }, "image_url": { + "description": "URL of the coin logo.", "example": "https://assets.coingecko.com/coins/images/standard/solv.png", "type": "string" }, "market_cap": { + "description": "Market capitalisation of the coin.", "example": 101000000, "type": "number" }, "name": { + "description": "Name of the coin.", "example": "Solv Protocol", "type": "string" }, "next_unlock_amount": { + "description": "Number of tokens in the next unlock.", "example": 4800000, "type": "number" }, "next_unlock_percent": { + "description": "Size of the next unlock, in percent.", "example": 0.28, "type": "number" }, "next_unlock_symbol": { + "description": "Ticker symbol of the token being unlocked.", "example": "SOLV", "type": "string" }, "next_unlock_time_left": { + "description": "Time left until the next unlock as CoinGecko displays it, for example `0 Days 09 Hrs 16 Min 49 Sec`.", "example": "0 Days 09 Hrs 16 Min 49 Sec", "type": "string" }, "next_unlock_value_usd": { + "description": "Value of the next unlock, in US dollars.", "example": 336730, "type": "number" }, "price": { + "description": "Current price of the coin.", "example": 0.071, "type": "number" }, "rank": { + "description": "Position of the coin in the token unlocks table.", "example": 1, "type": "integer" }, "released_percent": { + "description": "Share of the token supply already released, in percent.", "example": 45.2, "type": "number" }, "symbol": { + "description": "Ticker symbol of the coin.", "example": "SOLV", "type": "string" }, "url": { + "description": "Link to the coin page on CoinGecko.", "example": "https://www.coingecko.com/en/coins/solv-protocol", "type": "string" } @@ -35193,20 +36796,24 @@ "coingecko.TokenUnlocksResponse": { "properties": { "coins": { + "description": "Coins with upcoming token unlocks.", "items": { "$ref": "#/definitions/coingecko.TokenUnlockRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of coins returned.", "example": 100, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/highlights/incoming-token-unlocks", "type": "string" } @@ -35216,32 +36823,39 @@ "coingecko.TreasuriesResponse": { "properties": { "asset": { + "description": "Asset filter applied: `all`, `bitcoin`, `ethereum`, `solana`, `bnb`, `xrp` or `tron`.", "example": "all", "type": "string" }, "entities": { + "description": "Companies and governments that hold crypto, one row per entity.", "items": { "$ref": "#/definitions/coingecko.TreasuryEntityRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "holder_type": { + "description": "Holder filter applied: `all`, `companies` or `governments`.", "example": "all", "type": "string" }, "limit": { + "description": "Maximum number of entities returned.", "example": 100, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/treasuries", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -35251,50 +36865,62 @@ "coingecko.TreasuryEntityRow": { "properties": { "activity_30d": { + "description": "Change in holdings over the last 30 days as CoinGecko displays it, for example `+28,677 BTC`.", "example": "+28,677 BTC", "type": "string" }, "country": { + "description": "Country of the entity.", "example": "United States", "type": "string" }, "entity_type": { + "description": "Kind of holder, for example `Company`.", "example": "Company", "type": "string" }, "id": { + "description": "CoinGecko id of the entity.", "example": "strategy", "type": "string" }, "mnav": { + "description": "Market net asset value multiple (mNAV) as CoinGecko shows it.", "example": 1, "type": "number" }, "name": { + "description": "Name of the company or government.", "example": "Strategy", "type": "string" }, "rank": { + "description": "Position of the entity in the treasuries table.", "example": 1, "type": "integer" }, "ticker": { + "description": "Stock ticker of the entity, for example `MSTR.US`.", "example": "MSTR.US", "type": "string" }, "today_value_usd": { + "description": "Current value of the holdings, in US dollars.", "example": 65219021341.82, "type": "number" }, "top_holdings": { + "description": "Largest holding as CoinGecko displays it, for example `+28,677 BTC`.", "example": "+28,677 BTC", "type": "string" }, "total_cost_usd": { + "description": "Total amount paid for the holdings, in US dollars.", "example": 63870055699, "type": "number" }, "url": { + "description": "Link to the entity page on CoinGecko.", "example": "https://www.coingecko.com/en/treasuries/companies/strategy", "type": "string" } @@ -35304,30 +36930,37 @@ "coingecko.TrendingCategory": { "properties": { "change_1h_percent": { + "description": "Change over the last hour, in percent.", "example": 0.2, "type": "number" }, "change_24h_percent": { + "description": "Change over the last 24 hours, in percent.", "example": 1.4, "type": "number" }, "change_7d_percent": { + "description": "Change over the last 7 days, in percent.", "example": -2.1, "type": "number" }, "id": { + "description": "CoinGecko category id.", "example": "layer-1", "type": "string" }, "name": { + "description": "Name of the category.", "example": "Layer 1", "type": "string" }, "slug": { + "description": "URL slug of the category.", "example": "layer-1", "type": "string" }, "url": { + "description": "Link to the category page on CoinGecko.", "example": "https://www.coingecko.com/en/categories/layer-1", "type": "string" } @@ -35337,34 +36970,42 @@ "coingecko.TrendingCoin": { "properties": { "change_1h_percent": { + "description": "Price change over the last hour, in percent.", "example": 0.2, "type": "number" }, "change_24h_percent": { + "description": "Price change over the last 24 hours, in percent.", "example": 1.4, "type": "number" }, "change_7d_percent": { + "description": "Price change over the last 7 days, in percent.", "example": -2.1, "type": "number" }, "id": { + "description": "CoinGecko coin id.", "example": "bitcoin", "type": "string" }, "name": { + "description": "Name of the coin.", "example": "Bitcoin", "type": "string" }, "price": { + "description": "Current price of the coin.", "example": 76535.94, "type": "number" }, "symbol": { + "description": "Ticker symbol of the coin.", "example": "BTC", "type": "string" }, "url": { + "description": "Link to the coin page on CoinGecko.", "example": "https://www.coingecko.com/en/coins/bitcoin", "type": "string" } @@ -35374,30 +37015,36 @@ "coingecko.TrendingResponse": { "properties": { "categories": { + "description": "Categories currently trending on CoinGecko.", "items": { "$ref": "#/definitions/coingecko.TrendingCategory" }, "type": "array" }, "coins": { + "description": "Coins currently trending on CoinGecko.", "items": { "$ref": "#/definitions/coingecko.TrendingCoin" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-24T00:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of rows returned per list.", "example": 20, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.coingecko.com/en/highlights", "type": "string" }, "vs_currency": { + "description": "Currency code from the request's vs_currency parameter.", "example": "usd", "type": "string" } @@ -36262,6 +37909,7 @@ "contact.Contact": { "properties": { "emails": { + "description": "Email addresses found on the website.", "example": [ "[\"john.doe@example.com\"", "\"jane.doe@example.com\"]" @@ -36272,6 +37920,7 @@ "type": "array" }, "socials": { + "description": "Social media profile links found on the website, one per network: `facebook`, `instagram`, `youtube`, `tiktok`, `twitter` and `linkedin`.", "properties": { "facebook": { "example": "https://facebook.com/johndoe", @@ -36301,6 +37950,7 @@ "type": "object" }, "url": { + "description": "Website URL the contact details were found for.", "example": "https://example.com", "type": "string" } @@ -36590,36 +38240,47 @@ "costco.Product": { "properties": { "buyable": { + "description": "Whether Costco marks the product as eligible for purchase.", "type": "boolean" }, "description": { + "description": "Long-form product description from Costco, which for some products is mostly legal notices.", "type": "string" }, "id": { + "description": "Costco product id.", "type": "string" }, "image_url": { + "description": "URL of the main product image.", "type": "string" }, "list_price": { + "description": "List price of the product as listed by Costco.", "type": "number" }, "manufacturer": { + "description": "Name of the product's manufacturer.", "type": "string" }, "membership_required": { + "description": "Whether buying the product online requires a Costco membership.", "type": "boolean" }, "price": { + "description": "Current selling price of the product as listed by Costco.", "type": "number" }, "rating": { + "description": "Average customer rating of the product.", "type": "number" }, "rating_count": { + "description": "Number of customer ratings the product has received.", "type": "integer" }, "title": { + "description": "Product title as shown on Costco.", "type": "string" } }, @@ -36628,21 +38289,27 @@ "costco.ProductAvailability": { "properties": { "availability": { + "description": "Stock status for the delivery destination, such as `INSTOCK`.", "type": "string" }, "available_for_sale": { + "description": "Whether the product can be sold for delivery to the destination.", "type": "boolean" }, "estimated_delivery_date": { + "description": "Estimated delivery date, as local date and time in ISO 8601 without a timezone offset.", "type": "string" }, "fulfilled_by": { + "description": "Name of the party that fulfills the order, such as `LG`.", "type": "string" }, "product_id": { + "description": "Costco product id that was requested.", "type": "string" }, "supplier_available_date": { + "description": "Date the supplier has the product available, as local date and time in ISO 8601 without a timezone offset.", "type": "string" } }, @@ -36651,18 +38318,22 @@ "costco.ProductReviewsResponse": { "properties": { "average_rating": { + "description": "Average rating of the reviews returned in this response.", "type": "number" }, "product_id": { + "description": "Costco product id that was requested.", "type": "string" }, "reviews": { + "description": "Customer reviews of the product on this page.", "items": { "$ref": "#/definitions/costco.Review" }, "type": "array" }, "total_count": { + "description": "Total number of reviews available for the product.", "type": "integer" } }, @@ -36706,24 +38377,31 @@ "costco.Review": { "properties": { "author": { + "description": "Display name of the reviewer.", "type": "string" }, "id": { + "description": "Costco review id.", "type": "string" }, "rating": { + "description": "Star rating the reviewer gave.", "type": "integer" }, "recommended": { + "description": "Whether the reviewer recommends the product.", "type": "boolean" }, "submitted_at": { + "description": "Time the review was submitted, in ISO 8601 format.", "type": "string" }, "text": { + "description": "Full text of the review.", "type": "string" }, "title": { + "description": "Review headline written by the reviewer.", "type": "string" } }, @@ -37516,6 +39194,86 @@ }, "type": "object" }, + "creativecenter.ContentTagOption": { + "properties": { + "id": { + "description": "Numeric content tag id, for example `11003`.", + "type": "string" + }, + "name": { + "description": "Display name, for example `Fashion`.", + "type": "string" + } + }, + "type": "object" + }, + "creativecenter.CountryOption": { + "properties": { + "code": { + "description": "ISO-2 country code, for example `US`.", + "type": "string" + }, + "name": { + "description": "Display name, for example `United States`.", + "type": "string" + } + }, + "type": "object" + }, + "creativecenter.CreativeCenterFiltersResp": { + "properties": { + "hashtag_countries": { + "description": "Countries whose hashtag trends are reported.", + "items": { + "$ref": "#/definitions/creativecenter.CountryOption" + }, + "type": "array" + }, + "hashtag_periods": { + "description": "Lookback windows in days accepted by the hashtags endpoint's `period`.", + "items": { + "type": "integer" + }, + "type": "array" + }, + "industries": { + "description": "Industry ids accepted by the hashtags endpoint's `industry_id` parameter.", + "items": { + "$ref": "#/definitions/creativecenter.IndustryOption" + }, + "type": "array" + }, + "video_content_tags": { + "description": "Content tag ids accepted by the videos endpoint's `content_label_ids`\nparameter.", + "items": { + "$ref": "#/definitions/creativecenter.ContentTagOption" + }, + "type": "array" + }, + "video_countries": { + "description": "Countries whose video trends are reported.", + "items": { + "$ref": "#/definitions/creativecenter.CountryOption" + }, + "type": "array" + }, + "video_periods": { + "description": "Lookback windows in days accepted by the videos endpoint's `period`.", + "items": { + "type": "integer" + }, + "type": "array" + }, + "video_sort_by": { + "description": "Sort metrics accepted by the videos endpoint's `sort_by` parameter.", + "items": { + "$ref": "#/definitions/creativecenter.SortOption" + }, + "type": "array" + } + }, + "type": "object" + }, "creativecenter.HashtagTopCreator": { "properties": { "avatar_url": { @@ -37556,6 +39314,192 @@ }, "type": "object" }, + "creativecenter.IndustryOption": { + "properties": { + "id": { + "description": "Numeric industry id, for example `22000000000`.", + "type": "string" + }, + "name": { + "description": "Display name, for example `Apparel & Accessories`.", + "type": "string" + } + }, + "type": "object" + }, + "creativecenter.SortOption": { + "properties": { + "label": { + "description": "Display label from TikTok's own sort control.", + "type": "string" + }, + "value": { + "description": "Value accepted by the videos endpoint's `sort_by` parameter.", + "type": "string" + } + }, + "type": "object" + }, + "creativecenter.TopContentAuthor": { + "properties": { + "avatar_url": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "creator_type": { + "type": "integer" + }, + "follower_count": { + "type": "integer" + }, + "handle": { + "type": "string" + }, + "nickname": { + "type": "string" + }, + "store_region": { + "type": "string" + } + }, + "type": "object" + }, + "creativecenter.TopContentComment": { + "properties": { + "comment_id": { + "type": "string" + }, + "create_time": { + "type": "integer" + }, + "like_count": { + "type": "integer" + }, + "text": { + "type": "string" + }, + "user_avatar_url": { + "type": "string" + }, + "user_id": { + "type": "string" + }, + "user_name": { + "type": "string" + } + }, + "type": "object" + }, + "creativecenter.TopContentCommentKeyword": { + "properties": { + "keyword": { + "type": "string" + }, + "mention_count": { + "type": "integer" + } + }, + "type": "object" + }, + "creativecenter.TopContentItem": { + "properties": { + "author_id": { + "type": "string" + }, + "content_type": { + "type": "integer" + }, + "cover_url": { + "type": "string" + }, + "cover_urls": { + "items": { + "$ref": "#/definitions/creativecenter.TrendingVideoCover" + }, + "type": "array" + }, + "create_time": { + "type": "integer" + }, + "creator_id": { + "type": "string" + }, + "item_id": { + "type": "string" + }, + "title": { + "type": "string" + }, + "video_url": { + "type": "string" + } + }, + "type": "object" + }, + "creativecenter.TopContentMetrics": { + "properties": { + "engagement_rate": { + "type": "number" + }, + "six_seconds_vtr": { + "type": "number" + }, + "video_views": { + "type": "integer" + } + }, + "type": "object" + }, + "creativecenter.TopContentObject": { + "properties": { + "author": { + "$ref": "#/definitions/creativecenter.TopContentAuthor" + }, + "comment_keywords": { + "items": { + "$ref": "#/definitions/creativecenter.TopContentCommentKeyword" + }, + "type": "array" + }, + "comments": { + "items": { + "$ref": "#/definitions/creativecenter.TopContentComment" + }, + "type": "array" + }, + "item": { + "$ref": "#/definitions/creativecenter.TopContentItem" + }, + "last_update_time": { + "type": "integer" + }, + "metrics": { + "$ref": "#/definitions/creativecenter.TopContentMetrics" + }, + "name": { + "description": "Exact video title. This is the SEO page's URL key and rotates with the\ndaily snapshot; it is not a stable identifier across days.", + "type": "string" + } + }, + "type": "object" + }, + "creativecenter.TopContentResp": { + "properties": { + "last_update_time": { + "description": "UTC-midnight timestamp of the daily snapshot the names come from.", + "type": "integer" + }, + "objects": { + "items": { + "$ref": "#/definitions/creativecenter.TopContentObject" + }, + "type": "array" + } + }, + "type": "object" + }, "creativecenter.TrendingHashtag": { "properties": { "hashtag_id": { @@ -37640,9 +39584,18 @@ "cover_url": { "type": "string" }, + "cover_urls": { + "items": { + "$ref": "#/definitions/creativecenter.TrendingVideoCover" + }, + "type": "array" + }, "create_time": { "type": "integer" }, + "creator_id": { + "type": "string" + }, "engagement_rate": { "type": "number" }, @@ -37690,6 +39643,19 @@ }, "type": "object" }, + "creativecenter.TrendingVideoCover": { + "properties": { + "format": { + "description": "Image format, for example `jpeg` or `avif`.", + "type": "string" + }, + "url": { + "description": "Absolute image URL.", + "type": "string" + } + }, + "type": "object" + }, "creativecenter.TrendingVideosResp": { "properties": { "page_count": { @@ -37707,6 +39673,38 @@ }, "type": "object" }, + "creativecenter.filtersResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/creativecenter.CreativeCenterFiltersResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "creativecenter.topContentResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/creativecenter.TopContentResp" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "creativecenter.trendingHashtagsResponseDoc": { "properties": { "code": { @@ -41222,13 +43220,24 @@ }, "datasets.AirbnbMarketFacetResponse": { "properties": { + "coverage": { + "allOf": [ + { + "$ref": "#/definitions/es.AirbnbDimensionCoverage" + } + ], + "description": "Coverage over the filtered listing universe for enrichment-derived facets.\nOmitted for facets that do not depend on a partial field." + }, "dataset": { + "description": "Identifier of the dataset queried (`airbnb-markets`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.AirbnbMarketFacetItem" }, @@ -41240,27 +43249,34 @@ "datasets.AirbnbMarketNearbyResponse": { "properties": { "cells": { + "description": "Density cells within the radius, each with its geohash, centre and listing counts.", "items": { "$ref": "#/definitions/es.AirbnbDensityCell" }, "type": "array" }, "dataset": { + "description": "Identifier of the dataset queried (`airbnb-markets`).", "type": "string" }, "lat": { + "description": "Latitude of the search centre, in degrees.", "type": "number" }, "lon": { + "description": "Longitude of the search centre, in degrees.", "type": "number" }, "precision": { + "description": "Geohash precision of the cells returned.", "type": "integer" }, "radius_m": { + "description": "Search radius, in metres.", "type": "integer" }, "total": { + "description": "Number of cells returned.", "type": "integer" } }, @@ -41268,31 +43284,47 @@ }, "datasets.AirbnbMarketSearchResponse": { "properties": { + "coverage": { + "allOf": [ + { + "$ref": "#/definitions/es.AirbnbDimensionCoverage" + } + ], + "description": "Coverage over the filtered listing universe for enrichment-derived groupings.\nOmitted for country/market groupings that do not depend on a partial field." + }, "dataset": { + "description": "Identifier of the dataset queried (`airbnb-markets`).", "type": "string" }, "group_by": { + "description": "Dimension the cells are grouped by: `country`, `market`, `admin1`, `locality`, `room_type` or `property_type`.", "type": "string" }, "items": { + "description": "Aggregate market cells on this page, one per group.", "items": { "$ref": "#/definitions/es.AirbnbMarketCell" }, "type": "array" }, "min_listings": { + "description": "Minimum number of listings a cell needs to be included.", "type": "integer" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of cells.", "type": "integer" } }, @@ -41301,12 +43333,15 @@ "datasets.ApplePodcastsShowsFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`apple-podcasts-shows`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.ApplePodcastsShowsDatasetFacetItem" }, @@ -41495,27 +43530,34 @@ "datasets.ChartsSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`apps-charts`).", "type": "string" }, "items": { + "description": "App chart entries on this page.", "items": { "$ref": "#/definitions/es.ChartEntry" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "snapshot_date": { + "description": "Date of the chart snapshot returned, in YYYY-MM-DD.", "type": "string" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -41541,12 +43583,15 @@ "datasets.ChromeExtensionFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`chrome-extensions`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.ChromeExtensionFacetItem" }, @@ -41684,24 +43729,30 @@ "datasets.CreatorsSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`creators`).", "type": "string" }, "items": { + "description": "Matching creator records on this page.", "items": { "$ref": "#/definitions/es.CreatorRecord" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -41710,18 +43761,22 @@ "datasets.DatasetInfo": { "properties": { "capabilities": { + "description": "Operations the dataset supports, such as `search`, `detail`, `facets` or `nearby`.", "items": { "type": "string" }, "type": "array" }, "description": { + "description": "Short description of what the dataset contains.", "type": "string" }, "id": { + "description": "Dataset identifier, for example `google-map-businesses`.", "type": "string" }, "name": { + "description": "Display name of the dataset.", "type": "string" } }, @@ -41730,6 +43785,7 @@ "datasets.DatasetListResponse": { "properties": { "items": { + "description": "Datasets available through the datasets endpoints.", "items": { "$ref": "#/definitions/datasets.DatasetInfo" }, @@ -41839,12 +43895,15 @@ "datasets.GithubUserFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`github-users`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.GithubUserDatasetFacetItem" }, @@ -41856,24 +43915,30 @@ "datasets.GithubUserSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`github-users`).", "type": "string" }, "items": { + "description": "Matching GitHub user records on this page.", "items": { "$ref": "#/definitions/es.GithubUserDatasetItem" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -41899,24 +43964,30 @@ "datasets.GoodreadsAuthorSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`goodreads-authors`).", "type": "string" }, "items": { + "description": "Matching Goodreads author records on this page.", "items": { "$ref": "#/definitions/es.GoodreadsAuthorRecord" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -41942,24 +44013,30 @@ "datasets.GoodreadsSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`goodreads-books`).", "type": "string" }, "items": { + "description": "Matching Goodreads book records on this page.", "items": { "$ref": "#/definitions/es.GoodreadsBookRecord" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -41968,12 +44045,15 @@ "datasets.GoogleBusinessFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`google-map-businesses`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.GoogleBusinessDatasetFacetItem" }, @@ -41985,24 +44065,30 @@ "datasets.GoogleBusinessSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`google-map-businesses`).", "type": "string" }, "items": { + "description": "Matching Google Maps business records on this page.", "items": { "$ref": "#/definitions/es.GoogleBusinessDatasetItem" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -42054,12 +44140,15 @@ "datasets.InstagramUserFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`instagram-users`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.InstagramUserDatasetFacetItem" }, @@ -42118,7 +44207,12 @@ "datasets.JobsFacetResponse": { "properties": { "facets": { - "$ref": "#/definitions/es.JobPostingFacets" + "allOf": [ + { + "$ref": "#/definitions/es.JobPostingFacets" + } + ], + "description": "Counts of open job postings grouped by company, provider, department, location, employment type, skill and other attributes." } }, "type": "object" @@ -42126,6 +44220,7 @@ "datasets.JobsSearchResponse": { "properties": { "jobs": { + "description": "Matching job postings on this page.", "items": { "additionalProperties": {}, "type": "object" @@ -42133,12 +44228,15 @@ "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "total": { + "description": "Total number of postings matching the filters.", "type": "integer" } }, @@ -42298,12 +44396,15 @@ "datasets.NumbeoCityFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`numbeo-cities`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.NumbeoDatasetFacetItem" }, @@ -42496,12 +44597,15 @@ "datasets.PitchbookInvestorsFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`pitchbook-investors`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.PitchbookFacetItem" }, @@ -42642,24 +44746,30 @@ "datasets.ProductHuntMakersSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`producthunt-makers`).", "type": "string" }, "items": { + "description": "Matching Product Hunt maker records on this page.", "items": { "$ref": "#/definitions/es.ProductHuntMakerItem" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -42668,12 +44778,15 @@ "datasets.ProductHuntProductsFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`producthunt-products`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.ProductHuntProductsFacetItem" }, @@ -42685,24 +44798,30 @@ "datasets.ProductHuntProductsSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`producthunt-products`).", "type": "string" }, "items": { + "description": "Matching Product Hunt product records on this page.", "items": { "$ref": "#/definitions/es.ProductHuntProductItem" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -42711,12 +44830,15 @@ "datasets.ProductHuntTrendsFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`producthunt-trends`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.ProductHuntTrendsFacetItem" }, @@ -42728,30 +44850,38 @@ "datasets.ProductHuntTrendsSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`producthunt-trends`).", "type": "string" }, "group_by": { + "description": "Dimension the cells are grouped by: `topic_month`, `topic_year` or `topic`.", "type": "string" }, "items": { + "description": "Aggregate launch-trend cells on this page, one per group.", "items": { "$ref": "#/definitions/es.ProductHuntTrendCell" }, "type": "array" }, "min_launches": { + "description": "Minimum number of launches a cell needs to be included.", "type": "integer" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of cells.", "type": "integer" } }, @@ -42789,24 +44919,30 @@ "datasets.ReviewsSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`apps-reviews`).", "type": "string" }, "items": { + "description": "Matching app review records on this page.", "items": { "$ref": "#/definitions/es.AppReview" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -42875,15 +45011,19 @@ "datasets.SecCompanyFinancialsResponse": { "properties": { "cik": { + "description": "SEC Central Index Key (CIK) of the company, as a number.", "type": "integer" }, "count": { + "description": "Number of data points returned.", "type": "integer" }, "dataset": { + "description": "Identifier of the dataset queried (`sec-companies`).", "type": "string" }, "points": { + "description": "Financial statement history points for the company, newest fiscal year first.", "items": { "$ref": "#/definitions/es.SecFinancialsHistoryPoint" }, @@ -42915,24 +45055,30 @@ "datasets.SecCompanySearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`sec-companies`).", "type": "string" }, "items": { + "description": "Matching SEC-registered company records on this page.", "items": { "$ref": "#/definitions/es.SecCompanyRecord" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -42958,24 +45104,30 @@ "datasets.SecInstitutionalPositionsSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`sec-institutional-positions`).", "type": "string" }, "items": { + "description": "Matching institutional position records on this page.", "items": { "$ref": "#/definitions/es.SecInstitutionalPositionRecord" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -43229,12 +45381,15 @@ "datasets.TechstackFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`techstack`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.TechstackDatasetFacetItem" }, @@ -43246,24 +45401,30 @@ "datasets.TechstackSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`techstack`).", "type": "string" }, "items": { + "description": "Matching website technology records on this page.", "items": { "$ref": "#/definitions/es.TechstackRecord" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -43272,12 +45433,15 @@ "datasets.TrustmrrFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`trustmrr`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.TrustmrrDatasetFacetItem" }, @@ -43309,24 +45473,30 @@ "datasets.TrustmrrSearchResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`trustmrr`).", "type": "string" }, "items": { + "description": "Matching startup records on this page.", "items": { "$ref": "#/definitions/es.TrustmrrStartupRecord" }, "type": "array" }, "page": { + "description": "Page number returned.", "type": "integer" }, "page_size": { + "description": "Number of items per page.", "type": "integer" }, "sort": { + "description": "Sort order applied.", "type": "string" }, "total": { + "description": "Total number of records matching the filters.", "type": "integer" } }, @@ -43392,12 +45562,15 @@ "datasets.XUserFacetResponse": { "properties": { "dataset": { + "description": "Identifier of the dataset queried (`x-users`).", "type": "string" }, "facet": { + "description": "Facet that was aggregated.", "type": "string" }, "items": { + "description": "Facet values with the number of matching records for each.", "items": { "$ref": "#/definitions/es.XUserDatasetFacetItem" }, @@ -47277,59 +49450,72 @@ "discogs.ArtistResponse": { "properties": { "aliases": { + "description": "Other artist names this artist is known under, each with its Discogs id.", "items": { "$ref": "#/definitions/discogs.EntityRef" }, "type": "array" }, "data_quality": { + "description": "Discogs data quality rating of the profile, for example `Needs Vote`.", "type": "string" }, "groups": { + "description": "Groups or bands the artist belongs to or has belonged to.", "items": { "$ref": "#/definitions/discogs.EntityRef" }, "type": "array" }, "id": { + "description": "Discogs artist id.", "example": 1289, "type": "integer" }, "images": { + "description": "Photos of the artist.", "items": { "$ref": "#/definitions/discogs.Image" }, "type": "array" }, "members": { + "description": "Members of the artist, when the artist is a group or band.", "items": { "$ref": "#/definitions/discogs.EntityRef" }, "type": "array" }, "name": { + "description": "Artist name as Discogs lists it.", "example": "Daft Punk", "type": "string" }, "name_variations": { + "description": "Other spellings and variations of the artist name.", "items": { "type": "string" }, "type": "array" }, "profile": { + "description": "Biography text from the artist's Discogs profile.", "type": "string" }, "real_name": { + "description": "Real name of the artist, when Discogs lists one.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "uri": { + "description": "Link to the artist's page on Discogs.", "type": "string" }, "urls": { + "description": "External web links listed on the artist's profile.", "items": { "type": "string" }, @@ -47387,12 +49573,15 @@ "discogs.EntityRef": { "properties": { "active": { + "description": "True when Discogs marks the related artist as currently active. Omitted when inactive or when Discogs gives no status.", "type": "boolean" }, "id": { + "description": "Discogs artist id. Use it with the artist endpoint.", "type": "integer" }, "name": { + "description": "Name of the artist as Discogs lists it.", "type": "string" } }, @@ -47442,19 +49631,24 @@ "discogs.Image": { "properties": { "height": { + "description": "Height of the image in pixels.", "type": "integer" }, "type": { + "description": "Kind of image, for example `primary`.", "example": "primary", "type": "string" }, "uri": { + "description": "URL of the full-size image.", "type": "string" }, "uri150": { + "description": "URL of a 150 pixel version of the image.", "type": "string" }, "width": { + "description": "Width of the image in pixels.", "type": "integer" } }, @@ -47800,30 +49994,38 @@ "discogs.SearchResponse": { "properties": { "items": { + "description": "Total number of matching results across all pages.", "type": "integer" }, "page": { + "description": "Page number returned.", "type": "integer" }, "pages": { + "description": "Total number of pages.", "type": "integer" }, "per_page": { + "description": "Number of results per page.", "type": "integer" }, "query": { + "description": "Search text that was run.", "type": "string" }, "results": { + "description": "Matches on this page, one item per release, master, artist or label.", "items": { "$ref": "#/definitions/discogs.SearchResult" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "type": { + "description": "Result type the search was limited to: `release`, `master`, `artist` or `label`. Omitted when all types were searched.", "type": "string" } }, @@ -47832,65 +50034,80 @@ "discogs.SearchResult": { "properties": { "barcodes": { + "description": "Barcodes printed on the release. Present for release and master hits.", "items": { "type": "string" }, "type": "array" }, "catno": { + "description": "Catalogue number of the release. Present for release and master hits.", "type": "string" }, "country": { + "description": "Country the release was issued in. Present for release and master hits.", "type": "string" }, "cover_image": { + "description": "URL of the cover image.", "type": "string" }, "formats": { + "description": "Formats of the release, for example `Vinyl` or `LP`. Present for release and master hits.", "items": { "type": "string" }, "type": "array" }, "genres": { + "description": "Genres of the release. Present for release and master hits.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "Discogs id of the hit. Use it with the matching release, master, artist or label endpoint.", "type": "integer" }, "labels": { + "description": "Names of the labels that issued the release. Present for release and master hits.", "items": { "type": "string" }, "type": "array" }, "master_id": { + "description": "Discogs id of the master release this release belongs to, when there is one.", "type": "integer" }, "styles": { + "description": "Styles of the release, more specific than genres. Present for release and master hits.", "items": { "type": "string" }, "type": "array" }, "thumb": { + "description": "URL of a thumbnail image.", "type": "string" }, "title": { + "description": "Title of the hit, for example `Daft Punk - Discovery` for a release.", "type": "string" }, "type": { + "description": "Kind of hit: `release`, `master`, `artist` or `label`.", "example": "release", "type": "string" }, "uri": { + "description": "Link to the hit's page on Discogs.", "example": "https://www.discogs.com/release/2879-Daft-Punk-Discovery", "type": "string" }, "year": { + "description": "Year of release, as Discogs lists it.", "type": "string" } }, @@ -48800,18 +51017,23 @@ "doordash.Address": { "properties": { "city": { + "description": "City the store is in.", "type": "string" }, "country": { + "description": "Country the store is in.", "type": "string" }, "postalCode": { + "description": "Postal code of the store address.", "type": "string" }, "region": { + "description": "State or region the store is in.", "type": "string" }, "street": { + "description": "Street line of the store address.", "type": "string" } }, @@ -49216,42 +51438,58 @@ "doordash.StoreDetail": { "properties": { "address": { - "$ref": "#/definitions/doordash.Address" + "allOf": [ + { + "$ref": "#/definitions/doordash.Address" + } + ], + "description": "Address of the store." }, "averageRating": { + "description": "Average customer rating of the store.", "type": "number" }, "images": { + "description": "URLs of store images, such as its logo.", "items": { "type": "string" }, "type": "array" }, "latitude": { + "description": "Latitude of the store, in decimal degrees.", "type": "number" }, "longitude": { + "description": "Longitude of the store, in decimal degrees.", "type": "number" }, "menuItemCount": { + "description": "Total number of items across all menu sections.", "type": "integer" }, "menuSectionCount": { + "description": "Number of sections on the store menu.", "type": "integer" }, "name": { + "description": "Store name as shown on DoorDash.", "type": "string" }, "priceRange": { + "description": "Price range indicator DoorDash shows for the store.", "type": "string" }, "ratingCount": { + "description": "Number of ratings as DoorDash displays it. Not populated by this endpoint.", "type": "string" }, "storeId": { + "description": "DoorDash store id.", "type": "string" }, "url": { + "description": "URL of the store page on DoorDash.", "type": "string" } }, @@ -49295,36 +51533,47 @@ "doordash.StoreInfoResponse": { "properties": { "address": { + "description": "Full address of the store on one line.", "type": "string" }, "businessName": { + "description": "Business name shown on the store's info card.", "type": "string" }, "cityRegion": { + "description": "City and state or region line of the address, such as `San Francisco, CA`.", "type": "string" }, "hasPhone": { + "description": "Whether DoorDash lists a phone number for the store.", "type": "boolean" }, "hasWebsite": { + "description": "Whether DoorDash lists a website for the store.", "type": "boolean" }, "latitude": { + "description": "Latitude of the store, in decimal degrees.", "type": "number" }, "longitude": { + "description": "Longitude of the store, in decimal degrees.", "type": "number" }, "phone": { + "description": "Store phone number as DoorDash lists it, such as `4157518000`.", "type": "string" }, "storeId": { + "description": "DoorDash store id that was requested.", "type": "string" }, "street": { + "description": "Street line of the store address.", "type": "string" }, "url": { + "description": "URL of the store page on DoorDash.", "type": "string" } }, @@ -51496,27 +53745,33 @@ "ebay.Item": { "properties": { "availability": { + "description": "Stock status shown on the listing, such as `In Stock`.", "example": "In Stock", "type": "string" }, "condition": { + "description": "Item condition as listed, such as `Pre-Owned`.", "example": "Pre-Owned", "type": "string" }, "description": { + "description": "Seller's description of the item.", "type": "string" }, "images": { + "description": "URLs of the listing photos.", "items": { "type": "string" }, "type": "array" }, "item_feedback_count": { + "description": "Number of buyer feedback entries for this item.", "example": 80, "type": "integer" }, "item_id": { + "description": "eBay item ID of the listing. Use it with the item endpoint.", "example": "196435705622", "type": "string" }, @@ -51524,43 +53779,53 @@ "additionalProperties": { "type": "string" }, + "description": "Item specifics table of the listing, mapping each label to its value.", "type": "object" }, "link": { + "description": "URL of the listing on eBay.", "example": "https://www.ebay.com/itm/196435705622", "type": "string" }, "location": { + "description": "Item location shown on the listing, such as `Canada`.", "example": "Canada", "type": "string" }, "price": { + "description": "Item price as a number, in the listing's currency.", "example": 49.95, "type": "number" }, "price_text": { + "description": "Price as shown on the listing, such as `US $49.95`.", "example": "US $49.95", "type": "string" }, "rating": { + "description": "Average product star rating.", "example": 4.8, "type": "number" }, "rating_count": { + "description": "Number of product ratings.", "example": 12, "type": "integer" }, "sale_status": { + "description": "Approximate converted price or bid count shown on the listing, when present.", "example": "Available", "type": "string" }, "seller_categories": { + "description": "Names of the categories in the seller's store.", "items": { "type": "string" }, "type": "array" }, "seller_description": { + "description": "Seller's own description of their store.", "type": "string" }, "seller_detailed_ratings": { @@ -51568,53 +53833,66 @@ "format": "float64", "type": "number" }, + "description": "Seller's detailed ratings, mapping each criterion such as `Communication` to its average score.", "type": "object" }, "seller_feedback_score": { + "description": "Seller's feedback score.", "example": 2067, "type": "integer" }, "seller_followers": { + "description": "Number of eBay users following the seller.", "example": 13000, "type": "integer" }, "seller_items_sold": { + "description": "Number of items the seller has sold.", "example": 814000, "type": "integer" }, "seller_link": { + "description": "URL of the seller's eBay profile.", "example": "https://www.ebay.com/usr/soonerfan1949", "type": "string" }, "seller_logo_url": { + "description": "URL of the seller's store logo.", "example": "https://i.ebayimg.com/images/g/4yUAAOSwsV9ns4CY/s-l140.jpg", "type": "string" }, "seller_member_since": { + "description": "When the seller joined eBay, such as `Mar 1998`.", "example": "Mar 1998", "type": "string" }, "seller_name": { + "description": "eBay username of the seller.", "example": "soonerfan1949", "type": "string" }, "seller_positive_feedback": { + "description": "Share of the seller's feedback that is positive, as a percentage.", "example": 100, "type": "number" }, "seller_store_name": { + "description": "Name of the seller's eBay store.", "example": "POLOBLADE COLLECTIBLES", "type": "string" }, "seller_total_feedback_count": { + "description": "Total number of feedback entries the seller has received.", "example": 291075, "type": "integer" }, "shipping": { + "description": "Shipping cost as shown on the listing, such as `+$4.95 shipping`.", "example": "+$4.95 shipping", "type": "string" }, "title": { + "description": "Listing title as shown on the item page.", "example": "1983 TOPPS BASEBALL - 1952 TOPPS REPRINTS #311 MICKEY MANTLE", "type": "string" } @@ -51975,42 +54253,52 @@ "ebay.SearchItem": { "properties": { "bid_count": { + "description": "Number of bids on an auction listing.", "example": 9, "type": "integer" }, "caption": { + "description": "Caption line shown on the search card.", "example": "caption", "type": "string" }, "image": { + "description": "URL of the listing's thumbnail image.", "example": "https://i.ebayimg.com/images/g/b6wAAOSwLRdmZeHS/s-l500.jpg", "type": "string" }, "is_authenticity_guaranteed": { + "description": "Whether the listing carries eBay's Authenticity Guarantee.", "example": false, "type": "boolean" }, "item_id": { + "description": "eBay item ID of the listing. Use it with the item endpoint.", "example": "196435705622", "type": "string" }, "link": { + "description": "URL of the listing on eBay.", "example": "https://www.ebay.com/itm/196435705622", "type": "string" }, "location": { + "description": "Item location shown on the search card, such as `Canada`.", "example": "Canada", "type": "string" }, "logistic": { + "description": "Shipping information shown on the search card, such as `+$4.95 shipping`.", "example": "+$4.95 shipping", "type": "string" }, "offer_note": { + "description": "Purchase option label shown on the card, such as `Buy It Now`.", "example": "Buy It Now", "type": "string" }, "price": { + "description": "Listing price as a number. Set only when the card shows a single price, not a range.", "example": 49.95, "type": "number" }, @@ -52020,34 +54308,42 @@ "type": "number" }, "price_to": { + "description": "Upper end of the price when the card shows a price range.", "example": 20, "type": "number" }, "rating": { + "description": "Average product star rating.", "example": 5, "type": "number" }, "rating_num": { + "description": "Number of product ratings.", "example": 1, "type": "integer" }, "seller": { + "description": "Seller name with feedback count and positive percentage, as shown on the card, such as `soonerfan1949 (998) 100%`.", "example": "soonerfan1949 (998) 100%", "type": "string" }, "sold_count": { + "description": "Number of units sold, as shown on the card.", "example": 178, "type": "integer" }, "sub_title": { + "description": "Subtitle line shown on the card, such as `Pre-Owned`.", "example": "Pre-Owned", "type": "string" }, "title": { + "description": "Listing title as shown on the search card.", "example": "1983 TOPPS BASEBALL - 1952 TOPPS REPRINTS #311 MICKEY MANTLE", "type": "string" }, "watcher_count": { + "description": "Number of users watching the listing.", "example": 26, "type": "integer" } @@ -52096,20 +54392,24 @@ "ebay.SearchResp": { "properties": { "has_more": { + "description": "Whether more results are available on later pages.", "example": true, "type": "boolean" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "result": { + "description": "Listings on this page.", "items": { "$ref": "#/definitions/ebay.SearchItem" }, "type": "array" }, "total": { + "description": "Total number of results eBay reports for the search.", "example": 120, "type": "integer" } @@ -52119,6 +54419,7 @@ "ebay.Seller": { "properties": { "description": { + "description": "Seller's description of their store.", "example": "Vintage sports card seller", "type": "string" }, @@ -52127,13 +54428,16 @@ "format": "float64", "type": "number" }, + "description": "Seller's detailed ratings, mapping each criterion such as `Communication` to its average score.", "type": "object" }, "display_name": { + "description": "Seller's display name on eBay.", "example": "soonerfan1949", "type": "string" }, "feedback_count": { + "description": "Number of feedback entries the seller has received.", "example": 2067, "type": "integer" }, @@ -52142,41 +54446,51 @@ "format": "int64", "type": "integer" }, + "description": "Number of feedback entries by rating type, such as `positive`.", "type": "object" }, "followers": { + "description": "Number of eBay users following the seller.", "example": 52, "type": "integer" }, "items_sold": { + "description": "Number of items the seller has sold.", "example": 970, "type": "integer" }, "location": { + "description": "Seller's location as shown on their profile.", "example": "United States", "type": "string" }, "member_since": { + "description": "When the seller joined eBay, such as `Jan 09, 2000`.", "example": "Jan 09, 2000", "type": "string" }, "positive_feedback_percent": { + "description": "Share of the seller's feedback that is positive, as a percentage.", "example": 100, "type": "number" }, "profile_url": { + "description": "URL of the seller's eBay profile.", "example": "https://www.ebay.com/usr/soonerfan1949", "type": "string" }, "seller": { + "description": "eBay username of the seller.", "example": "soonerfan1949", "type": "string" }, "store_name": { + "description": "Name of the seller's eBay store.", "example": "Sooner Fan Cards", "type": "string" }, "store_url": { + "description": "URL of the seller's eBay store.", "example": "https://www.ebay.com/str/example", "type": "string" } @@ -52186,63 +54500,78 @@ "ebay.SellerAbout": { "properties": { "banner_url": { + "description": "URL of the seller's store banner image.", "example": "https://i.ebayimg.com/images/g/2lEAAOSwR4Bjr23U/s-l1600.png", "type": "string" }, "categories": { + "description": "Categories in the seller's store, each with its subcategories.", "items": { "$ref": "#/definitions/ebay.SellerAboutCategory" }, "type": "array" }, "contact_seller_url": { + "description": "URL of eBay's contact page for the seller.", "example": "https://contact.ebay.com/ws/eBayISAPI.dll?ShowSellerFAQ&iid=-1&requested=poloblade", "type": "string" }, "description": { + "description": "Seller's description of their store.", "type": "string" }, "followers": { + "description": "Number of eBay users following the seller.", "example": 13000, "type": "integer" }, "items_sold": { + "description": "Number of items the seller has sold.", "example": 814000, "type": "integer" }, "location": { + "description": "Seller's location as shown on the About page.", "example": "United States", "type": "string" }, "logo_url": { + "description": "URL of the seller's store logo.", "example": "https://i.ebayimg.com/images/g/4yUAAOSwsV9ns4CY/s-l140.jpg", "type": "string" }, "member_since": { + "description": "When the seller joined eBay, such as `Jan 09, 2000`.", "example": "Jan 09, 2000", "type": "string" }, "positive_feedback_percent": { + "description": "Share of the seller's feedback that is positive, as a percentage.", "example": 99.9, "type": "number" }, "seller": { + "description": "eBay username of the seller.", "example": "poloblade", "type": "string" }, "store_name": { + "description": "Name of the seller's eBay store.", "example": "POLOBLADE COLLECTIBLES", "type": "string" }, "store_url": { + "description": "URL of the seller's eBay store.", "example": "https://www.ebay.com/str/poloblade", "type": "string" }, "top_rated_seller": { + "description": "Whether the seller holds eBay's Top Rated Seller status.", "example": true, "type": "boolean" }, "top_rated_seller_summary": { + "description": "Text eBay shows to describe the seller's Top Rated status.", "type": "string" } }, @@ -52251,16 +54580,19 @@ "ebay.SellerAboutCategory": { "properties": { "name": { + "description": "Category name, such as `Coins & Paper Money`.", "example": "Coins & Paper Money", "type": "string" }, "subcategories": { + "description": "Subcategories listed under this category.", "items": { "$ref": "#/definitions/ebay.SellerAboutSubcategory" }, "type": "array" }, "url": { + "description": "URL of this category within the seller's store.", "example": "https://www.ebay.com/str/poloblade/Coins-Paper-Money/_i.html?_sacat=11116", "type": "string" } @@ -52270,10 +54602,12 @@ "ebay.SellerAboutSubcategory": { "properties": { "name": { + "description": "Subcategory name, such as `Coins: US`.", "example": "Coins: US", "type": "string" }, "url": { + "description": "URL of this subcategory within the seller's store.", "example": "https://www.ebay.com/str/poloblade/Coins-US/_i.html?_sacat=253", "type": "string" } @@ -52283,6 +54617,7 @@ "ebay.SellerFeedback": { "properties": { "description": { + "description": "Seller's description of their store.", "type": "string" }, "detailed_seller_ratings": { @@ -52290,21 +54625,26 @@ "format": "float64", "type": "number" }, + "description": "Seller's detailed ratings, mapping each criterion such as `Communication` to its average score.", "type": "object" }, "followers": { + "description": "Number of eBay users following the seller.", "example": 13000, "type": "integer" }, "has_more": { + "description": "Whether more feedback pages are available.", "example": true, "type": "boolean" }, "items_sold": { + "description": "Number of items the seller has sold.", "example": 814000, "type": "integer" }, "next_page": { + "description": "Page number to request next.", "example": 2, "type": "integer" }, @@ -52313,39 +54653,48 @@ "format": "int64", "type": "integer" }, + "description": "Number of feedback entries by rating type, such as `positive`.", "type": "object" }, "page": { + "description": "Feedback page number returned.", "example": 1, "type": "integer" }, "per_page": { + "description": "Number of reviews per page.", "example": 48, "type": "integer" }, "positive_feedback_percent": { + "description": "Share of the seller's feedback that is positive, as a percentage.", "example": 99.9, "type": "number" }, "reviews": { + "description": "Buyer feedback entries on this page.", "items": { "$ref": "#/definitions/ebay.SellerReview" }, "type": "array" }, "seller": { + "description": "eBay username of the seller.", "example": "poloblade", "type": "string" }, "store_name": { + "description": "Name of the seller's eBay store.", "example": "POLOBLADE COLLECTIBLES", "type": "string" }, "store_url": { + "description": "URL of the seller's eBay store.", "example": "https://www.ebay.com/str/poloblade", "type": "string" }, "total_feedback_count": { + "description": "Total number of feedback entries the seller has received.", "example": 291071, "type": "integer" } @@ -52355,25 +54704,31 @@ "ebay.SellerReview": { "properties": { "buyer": { + "description": "Buyer's username, partly masked, such as `w***n`.", "example": "w***n", "type": "string" }, "buyer_feedback": { + "description": "Feedback score of the buyer who left the review.", "example": 3426, "type": "integer" }, "comment": { + "description": "Feedback comment left by the buyer.", "type": "string" }, "period": { + "description": "When the feedback was left, as eBay words it, such as `Past 6 months`.", "example": "Past 6 months", "type": "string" }, "rating": { + "description": "Rating the buyer gave: `positive`, `neutral` or `negative`.", "example": "positive", "type": "string" }, "verified_purchase": { + "description": "Whether eBay marks the feedback as coming from a verified purchase.", "example": true, "type": "boolean" } @@ -52680,22 +55035,57 @@ "es.AirbnbDensityCell": { "properties": { "geohash": { + "description": "Geohash string that identifies the grid cell.", "type": "string" }, "lat": { + "description": "Latitude of the cell centre, in decimal degrees.", "type": "number" }, "listings": { + "description": "Number of listings in the cell.", "type": "integer" }, "lon": { + "description": "Longitude of the cell centre, in decimal degrees.", "type": "number" }, "superhost_listings": { + "description": "Number of listings in the cell seen with the Superhost badge.", "type": "integer" }, "superhost_pct": { + "description": "Share of listings in the cell seen with the Superhost badge, from 0 to 100.", + "type": "number" + } + }, + "type": "object" + }, + "es.AirbnbDimensionCoverage": { + "properties": { + "coverage_pct": { + "description": "Share of the filtered universe with the dimension, from 0 through 100.", "type": "number" + }, + "covered_listings": { + "description": "Number of filtered listings with the dimension field populated.", + "type": "integer" + }, + "dimension": { + "description": "Dimension whose field coverage was measured (for example room_type).", + "type": "string" + }, + "meets_threshold": { + "description": "Whether the existing presentation gate permits buckets for this result.", + "type": "boolean" + }, + "minimum_coverage_pct": { + "description": "Minimum coverage share required before buckets are returned.", + "type": "number" + }, + "total_listings": { + "description": "Number of listings in the filtered universe, including those without the dimension.", + "type": "integer" } }, "type": "object" @@ -52703,10 +55093,20 @@ "es.AirbnbGeoBounds": { "properties": { "bottom_right": { - "$ref": "#/definitions/es.GeoPoint" + "allOf": [ + { + "$ref": "#/definitions/es.GeoPoint" + } + ], + "description": "South-east corner of the box that encloses the market's listings." }, "top_left": { - "$ref": "#/definitions/es.GeoPoint" + "allOf": [ + { + "$ref": "#/definitions/es.GeoPoint" + } + ], + "description": "North-west corner of the box that encloses the market's listings." } }, "type": "object" @@ -52714,54 +55114,71 @@ "es.AirbnbMarketCell": { "properties": { "avg_person_capacity": { + "description": "Average number of guests a listing sleeps, over the sampled listings. Omitted until the sample is large enough.", "type": "number" }, "avg_rating": { + "description": "Average listing rating across rated listings. Omitted when the market has too few rated listings.", "type": "number" }, "avg_review_count": { + "description": "Average number of reviews per listing.", "type": "number" }, "distinct_hosts": { + "description": "Number of distinct hosts among the sampled listings. Omitted until the sample is large enough.", "type": "integer" }, "enriched_listings": { + "description": "Number of listings in the detail-page sample behind the reliable rates. Omitted when no listing has been sampled.", "type": "integer" }, "guest_favorite_listings": { + "description": "Number of listings seen with the Guest Favorite badge.", "type": "integer" }, "guest_favorite_pct": { + "description": "Share of listings seen with the Guest Favorite badge, from 0 to 100. A lower bound, because the badge does not always show.", "type": "number" }, "guest_favorite_pct_enriched": { + "description": "Share of sampled listings that are Guest Favorites, from 0 to 100, taken from listing detail pages. Omitted until the sample is large enough.", "type": "number" }, "key": { + "description": "Market this row covers: a country code, metro name or other value of the chosen `group_by` dimension.", "type": "string" }, "last_seen": { + "description": "Most recent time a listing in this market was seen, in UTC (RFC 3339).", "type": "string" }, "listings": { + "description": "Number of listings in the market.", "type": "integer" }, "listings_per_host": { + "description": "Sampled listings divided by distinct hosts, a sign of how concentrated hosting is. Omitted until the sample is large enough.", "type": "number" }, "median_price_usd": { + "description": "Median nightly price in US dollars, converted with an approximate dated exchange rate. Omitted when too few listings have a price.", "type": "number" }, "rated_listings": { + "description": "Number of listings that have a rating.", "type": "integer" }, "superhost_listings": { + "description": "Number of listings seen with the Superhost badge on the search card.", "type": "integer" }, "superhost_pct": { + "description": "Share of listings seen with the Superhost badge, from 0 to 100. A lower bound, because the badge does not always show.", "type": "number" }, "superhost_pct_enriched": { + "description": "Share of sampled listings that are Superhosts, from 0 to 100, taken from listing detail pages. Omitted until the sample is large enough.", "type": "number" } }, @@ -52770,51 +55187,70 @@ "es.AirbnbMarketDetail": { "properties": { "avg_person_capacity": { + "description": "Average number of guests a listing sleeps, over the sampled listings. Omitted until the sample is large enough.", "type": "number" }, "avg_rating": { + "description": "Average listing rating across rated listings. Omitted when the country has too few rated listings.", "type": "number" }, "avg_review_count": { + "description": "Average number of reviews per listing.", "type": "number" }, "bounds": { - "$ref": "#/definitions/es.AirbnbGeoBounds" + "allOf": [ + { + "$ref": "#/definitions/es.AirbnbGeoBounds" + } + ], + "description": "Box that encloses the country's listings." }, "country": { + "description": "ISO 3166-1 alpha-2 code of the country this profile covers.", "type": "string" }, "currencies": { + "description": "Nightly price percentiles for each currency that has enough priced listings.", "items": { "$ref": "#/definitions/es.AirbnbPriceStats" }, "type": "array" }, "distinct_hosts": { + "description": "Number of distinct hosts among the sampled listings. Omitted until the sample is large enough.", "type": "integer" }, "enriched_listings": { + "description": "Number of listings in the detail-page sample behind the reliable rates. Omitted when no listing has been sampled.", "type": "integer" }, "guest_favorite_listings": { + "description": "Number of listings seen with the Guest Favorite badge.", "type": "integer" }, "guest_favorite_pct": { + "description": "Share of listings seen with the Guest Favorite badge, from 0 to 100. A lower bound, because the badge does not always show.", "type": "number" }, "guest_favorite_pct_enriched": { + "description": "Share of sampled listings that are Guest Favorites, from 0 to 100, taken from listing detail pages. Omitted until the sample is large enough.", "type": "number" }, "last_seen": { + "description": "Most recent time a listing in the country was seen, in UTC (RFC 3339).", "type": "string" }, "listings": { + "description": "Number of listings in the country.", "type": "integer" }, "listings_per_host": { + "description": "Sampled listings divided by distinct hosts, a sign of how concentrated hosting is. Omitted until the sample is large enough.", "type": "number" }, "metros": { + "description": "Largest metro markets in the country, each with the same figures as a market row.", "items": { "$ref": "#/definitions/es.AirbnbMarketCell" }, @@ -52829,15 +55265,19 @@ "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": { + "description": "Number of listings that have a rating.", "type": "integer" }, "superhost_listings": { + "description": "Number of listings seen with the Superhost badge on the search card.", "type": "integer" }, "superhost_pct": { + "description": "Share of listings seen with the Superhost badge, from 0 to 100. A lower bound, because the badge does not always show.", "type": "number" }, "superhost_pct_enriched": { + "description": "Share of sampled listings that are Superhosts, from 0 to 100, taken from listing detail pages. Omitted until the sample is large enough.", "type": "number" } }, @@ -52846,9 +55286,11 @@ "es.AirbnbMarketFacetItem": { "properties": { "count": { + "description": "Number of listings with this value.", "type": "integer" }, "value": { + "description": "Facet value, for example a country code, market name, currency or room type.", "type": "string" } }, @@ -52857,18 +55299,23 @@ "es.AirbnbPriceStats": { "properties": { "currency": { + "description": "ISO currency code of the nightly prices.", "type": "string" }, "listings": { + "description": "Number of priced listings in this currency.", "type": "integer" }, "p25": { + "description": "25th percentile of the nightly price, in `currency`.", "type": "number" }, "p50": { + "description": "Median nightly price, in `currency`.", "type": "number" }, "p75": { + "description": "75th percentile of the nightly price, in `currency`.", "type": "number" } }, @@ -52877,15 +55324,19 @@ "es.AirbnbPriceUSDStats": { "properties": { "listings": { + "description": "Number of listings with a price converted to US dollars.", "type": "integer" }, "p25": { + "description": "25th percentile of the nightly price, in US dollars at an approximate dated exchange rate.", "type": "number" }, "p50": { + "description": "Median nightly price, in US dollars at an approximate dated exchange rate.", "type": "number" }, "p75": { + "description": "75th percentile of the nightly price, in US dollars at an approximate dated exchange rate.", "type": "number" } }, @@ -52992,51 +55443,67 @@ "es.AppReview": { "properties": { "app_id": { + "description": "App id in the store: the numeric App Store id or the Google Play package name.", "type": "string" }, "app_uid": { + "description": "Unique id of the reviewed app in the apps dataset.", "type": "string" }, "country": { + "description": "Storefront country code the review was posted in, for example `us`.", "type": "string" }, "last_crawled": { + "description": "Time the review was last fetched, in UTC (RFC 3339).", "type": "string" }, "reply_text": { + "description": "Developer's public reply to the review. Set for Google Play reviews.", "type": "string" }, "review_id": { + "description": "Review id assigned by the store.", "type": "string" }, "review_uid": { + "description": "Unique review id, combining the store, app id and review id.", "type": "string" }, "reviewed_at": { + "description": "Time the review was posted or last updated, as the store reports it.", "type": "string" }, "score": { + "description": "Star rating the reviewer gave, from 1 to 5.", "type": "integer" }, "store": { + "description": "Which store the review was posted on: `ios` or `android`.", "type": "string" }, "text": { + "description": "Full text of the review.", "type": "string" }, "thumbs_up": { + "description": "Number of helpful votes the review received. Set for Google Play reviews.", "type": "integer" }, "title": { + "description": "Headline the reviewer gave the review.", "type": "string" }, "url": { + "description": "Link to the review on the store.", "type": "string" }, "user_name": { + "description": "Display name of the reviewer.", "type": "string" }, "version": { + "description": "App version the review refers to.", "type": "string" } }, @@ -53143,9 +55610,11 @@ "es.ApplePodcastsShowsDatasetFacetItem": { "properties": { "count": { + "description": "Number of shows with this value.", "type": "integer" }, "value": { + "description": "Facet value being counted.", "type": "string" } }, @@ -53222,6 +55691,14 @@ "address": { "type": "string" }, + "address_country": { + "description": "AddressCountry is derived from the recognized US state/territory/military\nor Canadian province code at the end of Address. Empty when unrecognized.", + "enum": [ + "us", + "ca" + ], + "type": "string" + }, "alert_titles": { "items": { "type": "string" @@ -53635,30 +56112,39 @@ "es.ChartEntry": { "properties": { "app_id": { + "description": "App id in the store: the numeric App Store id or the Google Play package name.", "type": "string" }, "category": { + "description": "Store category or genre the chart covers. Empty for the overall chart.", "type": "string" }, "chart_type": { + "description": "Kind of chart: `top_free`, `top_paid`, `top_grossing` or `new`.", "type": "string" }, "chart_uid": { + "description": "Unique id of this chart entry, combining store, collection, category, country, snapshot date and rank.", "type": "string" }, "collection": { + "description": "Store's own id for the chart, for example `topgrossingapplications` or `GROSSING`.", "type": "string" }, "country": { + "description": "Storefront country code of the chart, for example `us`.", "type": "string" }, "crawled_at": { + "description": "Time the chart was fetched, in UTC (RFC 3339).", "type": "string" }, "developer": { + "description": "Name of the app's developer or publisher as shown on the chart.", "type": "string" }, "free": { + "description": "Whether the app is free to download.", "type": "boolean" }, "platform": { @@ -53666,21 +56152,27 @@ "type": "string" }, "rank": { + "description": "Position of the app in the chart, starting at 1.", "type": "integer" }, "score": { + "description": "Average user rating of the app. Set for Google Play charts.", "type": "number" }, "snapshot_date": { + "description": "Date the chart was captured, in UTC (YYYY-MM-DD).", "type": "string" }, "store": { + "description": "Which store the chart belongs to: `ios` or `android`.", "type": "string" }, "title": { + "description": "App name as shown on the chart.", "type": "string" }, "url": { + "description": "Store page of the app.", "type": "string" } }, @@ -53726,9 +56218,11 @@ "es.ChromeExtensionFacetItem": { "properties": { "count": { + "description": "Number of items with this value.", "type": "integer" }, "value": { + "description": "Facet value being counted.", "type": "string" } }, @@ -53878,6 +56372,7 @@ "es.ChromeExtensionRecord": { "properties": { "all_permissions": { + "description": "Every permission and site pattern from the four permission lists, without duplicates.", "items": { "type": "string" }, @@ -53888,24 +56383,30 @@ "type": "integer" }, "category": { + "description": "Store category of the item.", "type": "string" }, "collects_data": { + "description": "Whether the store listing says the item collects user data.", "type": "boolean" }, "data_collected": { + "description": "Categories of user data the developer says the item collects.", "items": { "type": "string" }, "type": "array" }, "description": { + "description": "Full description from the store listing.", "type": "string" }, "developer": { + "description": "Name of the item's developer as shown on the store listing.", "type": "string" }, "developer_email": { + "description": "Developer contact email disclosed on the store listing, in lowercase.", "type": "string" }, "discovery_sources": { @@ -53916,39 +56417,50 @@ "type": "array" }, "first_seen": { + "description": "Time the item was first recorded in the dataset, in UTC (RFC 3339).", "type": "string" }, "has_broad_host_access": { + "description": "Whether the extension can reach all sites, for example through ``.", "type": "boolean" }, "host_permissions": { + "description": "Site patterns the extension requests access to when installed.", "items": { "type": "string" }, "type": "array" }, "icon": { + "description": "URL of the item's icon.", "type": "string" }, "id": { + "description": "Chrome Web Store item id. Use it with the item endpoint.", "type": "string" }, "item_type": { + "description": "Kind of item: `extension`, `theme`, `app` or `unknown`.", "type": "string" }, "last_crawled_at": { + "description": "Time the item's data was last fetched, in UTC (RFC 3339).", "type": "string" }, "last_seen": { + "description": "Time the item was last seen on the store, in UTC (RFC 3339).", "type": "string" }, "manifest_version": { + "description": "Manifest version of the extension: `2` or `3`.", "type": "integer" }, "min_browser_version": { + "description": "Minimum browser version the item requires.", "type": "string" }, "name": { + "description": "Item name as shown on its store listing.", "type": "string" }, "not_found_streak": { @@ -53956,75 +56468,94 @@ "type": "integer" }, "optional_host_permissions": { + "description": "Site patterns the extension may ask for access to later.", "items": { "type": "string" }, "type": "array" }, "optional_permissions": { + "description": "Permissions the extension may ask for later.", "items": { "type": "string" }, "type": "array" }, "permissions": { + "description": "List of permissions the extension requests when installed.", "items": { "type": "string" }, "type": "array" }, "privacy_declarations": { + "description": "Privacy commitments the developer declares on the store listing.", "items": { "type": "string" }, "type": "array" }, "privacy_policy": { + "description": "Link to the developer's privacy policy.", "type": "string" }, "rating": { + "description": "Average user rating shown on the store listing.", "type": "number" }, "rating_count": { + "description": "Number of ratings behind the average rating.", "type": "integer" }, "rating_count_delta": { + "description": "Change in `rating_count` since the previous observation.", "type": "integer" }, "schema_version": { + "description": "Version of the record layout.", "type": "integer" }, "screenshots": { + "description": "URLs of the screenshots on the store listing.", "items": { "type": "string" }, "type": "array" }, "size": { + "description": "Package size of the item as the store shows it.", "type": "string" }, "status": { + "description": "Whether the item is still on the store: `active` or `removed`.", "type": "string" }, "summary": { + "description": "Short summary shown at the top of the store listing.", "type": "string" }, "trend_score": { + "description": "Score for ranking trending items, built from `users_delta` and `rating_count_delta`.", "type": "number" }, "updated": { + "description": "Date the item was last updated on the store (YYYY-MM-DD).", "type": "string" }, "url": { + "description": "Link to the item's store listing.", "type": "string" }, "users": { + "description": "Number of users shown on the store listing.", "type": "integer" }, "users_delta": { + "description": "Change in `users` since the previous observation.", "type": "integer" }, "version": { + "description": "Current version of the item.", "type": "string" } }, @@ -54033,6 +56564,7 @@ "es.CreatorRecord": { "properties": { "avatar_url": { + "description": "URL of the profile picture.", "type": "string" }, "avg_views": { @@ -54040,27 +56572,34 @@ "type": "integer" }, "bio": { + "description": "Profile biography text.", "type": "string" }, "bio_link": { + "description": "Link shown in the profile biography.", "type": "string" }, "brand_affiliations": { + "description": "Brands linked to the creator.", "items": { "type": "string" }, "type": "array" }, "country": { + "description": "Creator's country or region code in lowercase, for example `us`.", "type": "string" }, "creator_uid": { + "description": "Unique creator id, made of the platform and the handle, for example `tiktok:@bubble`.", "type": "string" }, "email": { + "description": "Business contact email found for the creator.", "type": "string" }, "email_status": { + "description": "Verification status of the contact email.", "type": "string" }, "engagement_rate": { @@ -54072,15 +56611,19 @@ "type": "string" }, "follower_count": { + "description": "Number of followers.", "type": "integer" }, "following_count": { + "description": "Number of accounts the creator follows.", "type": "integer" }, "language": { + "description": "Language code set on the creator's profile.", "type": "string" }, "last_crawled": { + "description": "Time the creator's profile was last fetched, in UTC (RFC 3339).", "type": "string" }, "last_post_at": { @@ -54096,18 +56639,27 @@ "type": "string" }, "nickname": { + "description": "Display name shown on the creator's profile.", "type": "string" }, "platform": { + "description": "Social platform the creator is on, for example `tiktok`.", "type": "string" }, "post_stats": { - "$ref": "#/definitions/es.PostStatsAgg" + "allOf": [ + { + "$ref": "#/definitions/es.PostStatsAgg" + } + ], + "description": "Averages and posting habits worked out from a sample of the creator's recent posts." }, "sec_uid": { + "description": "Stable account id the platform assigns to the creator.", "type": "string" }, "source": { + "description": "Label for where the creator entry came from.", "type": "string" }, "status": { @@ -54115,15 +56667,19 @@ "type": "string" }, "total_likes": { + "description": "Total likes received across the creator's videos.", "type": "integer" }, "unique_id": { + "description": "Creator's handle on the platform, without the `@`.", "type": "string" }, "verified": { + "description": "Whether the profile has the platform's verified badge.", "type": "boolean" }, "video_count": { + "description": "Number of videos posted.", "type": "integer" } }, @@ -54558,9 +57114,11 @@ "es.FacetItem": { "properties": { "count": { + "description": "Number of open job postings with this value.", "type": "integer" }, "key": { + "description": "Facet value, for example a company, department or location name.", "type": "string" } }, @@ -54569,9 +57127,11 @@ "es.GeoPoint": { "properties": { "lat": { + "description": "Latitude in decimal degrees.", "type": "number" }, "lon": { + "description": "Longitude in decimal degrees.", "type": "number" } }, @@ -54580,18 +57140,27 @@ "es.GithubGeo": { "properties": { "city": { + "description": "Name of the city resolved from the profile location.", "type": "string" }, "country": { + "description": "Name of the country resolved from the profile location.", "type": "string" }, "country_code": { + "description": "Country code resolved from the profile location, for example `DE`.", "type": "string" }, "location": { - "$ref": "#/definitions/es.GithubGeoPoint" + "allOf": [ + { + "$ref": "#/definitions/es.GithubGeoPoint" + } + ], + "description": "Coordinates of the resolved place." }, "state": { + "description": "Name of the state or region resolved from the profile location.", "type": "string" } }, @@ -54600,9 +57169,11 @@ "es.GithubGeoPoint": { "properties": { "lat": { + "description": "Latitude in decimal degrees.", "type": "number" }, "lon": { + "description": "Longitude in decimal degrees.", "type": "number" } }, @@ -54611,9 +57182,11 @@ "es.GithubSocialLink": { "properties": { "provider": { + "description": "Social network the link points to.", "type": "string" }, "url": { + "description": "Link to the account on that network.", "type": "string" } }, @@ -54622,9 +57195,11 @@ "es.GithubUserDatasetFacetItem": { "properties": { "count": { + "description": "Number of users with this value.", "type": "integer" }, "value": { + "description": "Facet value being counted.", "type": "string" } }, @@ -54633,135 +57208,181 @@ "es.GithubUserDatasetItem": { "properties": { "account_age_years": { + "description": "Age of the account in years, to one decimal, at the time of `crawled_at`.", "type": "number" }, "active_90d": { + "description": "Whether the user's latest activity was within 90 days of `crawled_at`.", "type": "boolean" }, "avatar_url": { + "description": "URL of the profile picture.", "type": "string" }, "bio": { + "description": "Profile biography text.", "type": "string" }, "blog": { + "description": "Website or blog address on the profile.", "type": "string" }, "company": { + "description": "Employer name as written on the profile.", "type": "string" }, "company_normalized": { + "description": "Company name cleaned for matching: lowercased, with any leading `@` removed.", "type": "string" }, "crawled_at": { + "description": "Time the profile was fetched, in UTC (RFC 3339).", "type": "string" }, "created_at": { + "description": "Time the GitHub account was created, in UTC (RFC 3339).", "type": "string" }, "distance_m": { + "description": "Distance from the query point in metres. Set when results are sorted by distance.", "type": "number" }, "domains": { + "description": "Interest areas inferred from the profile text, for example `ml-ai`, `frontend` or `devops`.", "items": { "type": "string" }, "type": "array" }, "email": { + "description": "Public email address on the profile.", "type": "string" }, "follower_following_ratio": { + "description": "Followers divided by accounts followed, to two decimals. Equals `followers` when the user follows nobody.", "type": "number" }, "followers": { + "description": "Number of followers.", "type": "integer" }, "following": { + "description": "Number of accounts the user follows.", "type": "integer" }, "geo": { - "$ref": "#/definitions/es.GithubGeo" + "allOf": [ + { + "$ref": "#/definitions/es.GithubGeo" + } + ], + "description": "Place resolved from the profile location." }, "has_blog": { + "description": "Whether the profile shows a website or blog.", "type": "boolean" }, "has_email": { + "description": "Whether the profile shows a public email address.", "type": "boolean" }, "has_twitter": { + "description": "Whether the profile shows a Twitter or X username.", "type": "boolean" }, "hireable": { + "description": "Whether the user has marked themselves as available for hire.", "type": "boolean" }, "html_url": { + "description": "Link to the user's GitHub profile page.", "type": "string" }, "id": { + "description": "Numeric GitHub user id.", "type": "integer" }, "influence_tier": { + "description": "Follower-based tier: `nano` (under 50), `micro` (50 to 499), `mid` (500 to 4,999), `macro` (5,000 to 49,999) or `mega` (50,000 or more).", "type": "string" }, "is_bot": { + "description": "Whether the account is a bot.", "type": "boolean" }, "is_org": { + "description": "Whether the account is an organization.", "type": "boolean" }, "is_suspected_automation": { + "description": "Whether the account looks like a commit farm or mass repository generator.", "type": "boolean" }, "last_active_at": { + "description": "Time of the user's latest recorded activity, in UTC (RFC 3339).", "type": "string" }, "location_raw": { + "description": "Free-text location as written on the profile.", "type": "string" }, "login": { + "description": "GitHub username of the account.", "type": "string" }, "name": { + "description": "Display name on the profile.", "type": "string" }, "prs_30d": { + "description": "Number of pull request events the user had in the last 30 days.", "type": "integer" }, "public_gists": { + "description": "Number of public gists.", "type": "integer" }, "public_repos": { + "description": "Number of public repositories.", "type": "integer" }, "pushes_30d": { + "description": "Number of pushes the user made in the last 30 days.", "type": "integer" }, "rank_score": { + "description": "Overall notability score. Followers count most and recent activity adds a smaller amount. It is 0 for suspected automation.", "type": "integer" }, "reachable": { + "description": "Whether the profile shows any public way to make contact: email, Twitter or X, a website or a linked social account.", "type": "boolean" }, "reviews_30d": { + "description": "Number of pull request review events, including review comments, the user made in the last 30 days.", "type": "integer" }, "schema_version": { + "description": "Version of the record layout.", "type": "integer" }, "social_accounts": { + "description": "Social accounts linked on the profile.", "items": { "$ref": "#/definitions/es.GithubSocialLink" }, "type": "array" }, "social_count": { + "description": "Number of social accounts linked on the profile.", "type": "integer" }, "twitter_username": { + "description": "Twitter or X username on the profile.", "type": "string" }, "type": { + "description": "Account type on GitHub, for example `User` or `Organization`.", "type": "string" } }, @@ -54770,132 +57391,177 @@ "es.GithubUserRecord": { "properties": { "account_age_years": { + "description": "Age of the account in years, to one decimal, at the time of `crawled_at`.", "type": "number" }, "active_90d": { + "description": "Whether the user's latest activity was within 90 days of `crawled_at`.", "type": "boolean" }, "avatar_url": { + "description": "URL of the profile picture.", "type": "string" }, "bio": { + "description": "Profile biography text.", "type": "string" }, "blog": { + "description": "Website or blog address on the profile.", "type": "string" }, "company": { + "description": "Employer name as written on the profile.", "type": "string" }, "company_normalized": { + "description": "Company name cleaned for matching: lowercased, with any leading `@` removed.", "type": "string" }, "crawled_at": { + "description": "Time the profile was fetched, in UTC (RFC 3339).", "type": "string" }, "created_at": { + "description": "Time the GitHub account was created, in UTC (RFC 3339).", "type": "string" }, "domains": { + "description": "Interest areas inferred from the profile text, for example `ml-ai`, `frontend` or `devops`.", "items": { "type": "string" }, "type": "array" }, "email": { + "description": "Public email address on the profile.", "type": "string" }, "follower_following_ratio": { + "description": "Followers divided by accounts followed, to two decimals. Equals `followers` when the user follows nobody.", "type": "number" }, "followers": { + "description": "Number of followers.", "type": "integer" }, "following": { + "description": "Number of accounts the user follows.", "type": "integer" }, "geo": { - "$ref": "#/definitions/es.GithubGeo" + "allOf": [ + { + "$ref": "#/definitions/es.GithubGeo" + } + ], + "description": "Place resolved from the profile location." }, "has_blog": { + "description": "Whether the profile shows a website or blog.", "type": "boolean" }, "has_email": { + "description": "Whether the profile shows a public email address.", "type": "boolean" }, "has_twitter": { + "description": "Whether the profile shows a Twitter or X username.", "type": "boolean" }, "hireable": { + "description": "Whether the user has marked themselves as available for hire.", "type": "boolean" }, "html_url": { + "description": "Link to the user's GitHub profile page.", "type": "string" }, "id": { + "description": "Numeric GitHub user id.", "type": "integer" }, "influence_tier": { + "description": "Follower-based tier: `nano` (under 50), `micro` (50 to 499), `mid` (500 to 4,999), `macro` (5,000 to 49,999) or `mega` (50,000 or more).", "type": "string" }, "is_bot": { + "description": "Whether the account is a bot.", "type": "boolean" }, "is_org": { + "description": "Whether the account is an organization.", "type": "boolean" }, "is_suspected_automation": { + "description": "Whether the account looks like a commit farm or mass repository generator.", "type": "boolean" }, "last_active_at": { + "description": "Time of the user's latest recorded activity, in UTC (RFC 3339).", "type": "string" }, "location_raw": { + "description": "Free-text location as written on the profile.", "type": "string" }, "login": { + "description": "GitHub username of the account.", "type": "string" }, "name": { + "description": "Display name on the profile.", "type": "string" }, "prs_30d": { + "description": "Number of pull request events the user had in the last 30 days.", "type": "integer" }, "public_gists": { + "description": "Number of public gists.", "type": "integer" }, "public_repos": { + "description": "Number of public repositories.", "type": "integer" }, "pushes_30d": { + "description": "Number of pushes the user made in the last 30 days.", "type": "integer" }, "rank_score": { + "description": "Overall notability score. Followers count most and recent activity adds a smaller amount. It is 0 for suspected automation.", "type": "integer" }, "reachable": { + "description": "Whether the profile shows any public way to make contact: email, Twitter or X, a website or a linked social account.", "type": "boolean" }, "reviews_30d": { + "description": "Number of pull request review events, including review comments, the user made in the last 30 days.", "type": "integer" }, "schema_version": { + "description": "Version of the record layout.", "type": "integer" }, "social_accounts": { + "description": "Social accounts linked on the profile.", "items": { "$ref": "#/definitions/es.GithubSocialLink" }, "type": "array" }, "social_count": { + "description": "Number of social accounts linked on the profile.", "type": "integer" }, "twitter_username": { + "description": "Twitter or X username on the profile.", "type": "string" }, "type": { + "description": "Account type on GitHub, for example `User` or `Organization`.", "type": "string" } }, @@ -54915,18 +57581,23 @@ "es.GoodreadsAuthorRecord": { "properties": { "about": { + "description": "Author biography from the Goodreads page.", "type": "string" }, "average_rating": { + "description": "Average rating across the author's books on Goodreads.", "type": "number" }, "birth_date": { + "description": "Birth date as Goodreads shows it, for example `August 11, 1962`.", "type": "string" }, "crawled_at": { + "description": "Time the author's data was fetched, in UTC (RFC 3339).", "type": "string" }, "death_date": { + "description": "Date of death as Goodreads shows it.", "type": "string" }, "discovery_source": { @@ -54934,30 +57605,38 @@ "type": "string" }, "genres": { + "description": "List of genres Goodreads shows for the author.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "Goodreads author id.", "type": "string" }, "image_url": { + "description": "URL of the author's photo.", "type": "string" }, "name": { + "description": "Full name of the author.", "type": "string" }, "ratings_count": { + "description": "Number of ratings the author's books have received.", "type": "integer" }, "reviews_count": { + "description": "Number of reviews the author's books have received.", "type": "integer" }, "run_id": { + "description": "Identifier of the collection run that produced this record. Accepted as a `run_id` filter.", "type": "string" }, "schema_version": { + "description": "Version of the record layout.", "type": "integer" }, "seed_rank": { @@ -54965,12 +57644,15 @@ "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "uri": { + "description": "Link to the author's Goodreads page.", "type": "string" }, "website": { + "description": "Author's website address.", "type": "string" } }, @@ -54990,6 +57672,7 @@ "es.GoodreadsBookRecord": { "properties": { "author_ids": { + "description": "Goodreads ids of the credited authors.", "items": { "type": "string" }, @@ -55003,9 +57686,11 @@ "type": "array" }, "crawled_at": { + "description": "Time the book's data was fetched, in UTC (RFC 3339).", "type": "string" }, "description": { + "description": "Book description from the Goodreads page.", "type": "string" }, "discovery_source": { @@ -55013,54 +57698,70 @@ "type": "string" }, "format": { + "description": "Book format, for example `Hardcover`.", "type": "string" }, "genres": { + "description": "List of genres Goodreads shows for the book.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "Goodreads book id.", "type": "string" }, "image_url": { + "description": "URL of the cover image.", "type": "string" }, "isbn": { + "description": "ISBN-10 of the edition.", "type": "string" }, "isbn13": { + "description": "ISBN-13 of the edition.", "type": "string" }, "language": { + "description": "Language the edition is written in, for example `English`.", "type": "string" }, "pages": { + "description": "Number of pages.", "type": "integer" }, "primary_author": { + "description": "Name of the first credited author.", "type": "string" }, "primary_author_id": { + "description": "Goodreads id of the first credited author.", "type": "string" }, "publication_date": { + "description": "Publication date as Goodreads shows it, for example `2008-10-14`.", "type": "string" }, "publication_year": { + "description": "Year of publication.", "type": "integer" }, "publisher": { + "description": "Name of the book's publisher.", "type": "string" }, "rating_average": { + "description": "Average Goodreads rating of the book.", "type": "number" }, "rating_five_star": { + "description": "Number of 5-star ratings.", "type": "integer" }, "rating_four_star": { + "description": "Number of 4-star ratings.", "type": "integer" }, "rating_one_star": { @@ -55068,21 +57769,27 @@ "type": "integer" }, "rating_three_star": { + "description": "Number of 3-star ratings.", "type": "integer" }, "rating_two_star": { + "description": "Number of 2-star ratings.", "type": "integer" }, "ratings_count": { + "description": "Number of ratings the book has received.", "type": "integer" }, "reviews_count": { + "description": "Number of reviews the book has received.", "type": "integer" }, "run_id": { + "description": "Identifier of the collection run that produced this record. Accepted as a `run_id` filter.", "type": "string" }, "schema_version": { + "description": "Version of the record layout.", "type": "integer" }, "seed_rank": { @@ -55094,15 +57801,19 @@ "type": "string" }, "series_name": { + "description": "Title of the series the book belongs to, without the book number.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "title": { + "description": "Title of the book.", "type": "string" }, "uri": { + "description": "Link to the book's Goodreads page.", "type": "string" } }, @@ -55111,10 +57822,12 @@ "es.GoogleBusiness": { "properties": { "address": { + "description": "Full street address as shown on Google Maps.", "example": "250 Beach St, San Francisco, CA 94133", "type": "string" }, "amenities": { + "description": "List of amenities Google Maps shows for the business, for example `Free Wi-Fi`.", "example": [ "['Free Wi-Fi'", " 'Air-conditioned'", @@ -55127,6 +57840,7 @@ "type": "array" }, "category": { + "description": "Categories Google Maps lists for the business. Labels can be in the local language.", "example": [ "[\"hotel\"]" ], @@ -55136,6 +57850,7 @@ "type": "array" }, "city": { + "description": "Name of the city the business is in.", "example": "San Francisco", "type": "string" }, @@ -55148,6 +57863,7 @@ "description": "🆕 Contact information" }, "contact_is_updated": { + "description": "Whether the business's contact details have been collected.", "type": "boolean" }, "country": { @@ -55156,10 +57872,12 @@ "type": "string" }, "county": { + "description": "Administrative area below state level, named as the country itself names it.", "example": "San Francisco County", "type": "string" }, "county_code": { + "description": "ISO 3166-2 code for the `county` value, for example `FR-59`.", "example": "FR-59", "type": "string" }, @@ -55168,24 +57886,34 @@ "type": "string" }, "description": { + "description": "Business description shown on Google Maps.", "example": "A 3-minute walk from Pier 41 in the Fisherman's Wharf district...", "type": "string" }, "geo": { - "$ref": "#/definitions/es.GeoPoint" + "allOf": [ + { + "$ref": "#/definitions/es.GeoPoint" + } + ], + "description": "Coordinates of the business. Omitted when no map location is available for it." }, "geo_is_updated": { + "description": "Whether the country, state, county, city and town fields have been filled in from the coordinates.", "type": "boolean" }, "id": { + "description": "Unique id of the business record in the dataset.", "example": "ChIJ99URUeOAhYAR0J5ZUxTesDQ", "type": "string" }, "image": { + "description": "URL of the business's main photo on Google Maps.", "example": "https://lh5.googleusercontent.com/p/AF1QipP_O55x7gOwR3AaM09CVmzEUude9wMHMPwc--yp", "type": "string" }, "locations": { + "description": "Place names Google Maps lists with the business, for example `San Francisco`.", "example": [ "['San Francisco'", " 'Los Angeles']" @@ -55196,6 +57924,7 @@ "type": "array" }, "name": { + "description": "Business name as shown on Google Maps.", "example": "Hotel Zephyr San Francisco", "type": "string" }, @@ -55206,10 +57935,12 @@ "x-nullable": true }, "phone": { + "description": "Business phone number as listed on Google Maps.", "example": "14156176565", "type": "string" }, "place_id": { + "description": "Google place id of the business.", "example": "ChIJ99URUeOAhYAR0J5ZUxTesDQ", "type": "string" }, @@ -55226,9 +57957,15 @@ "x-nullable": true }, "similarweb": { - "$ref": "#/definitions/similarweb.SimilarWebResp" + "allOf": [ + { + "$ref": "#/definitions/similarweb.SimilarWebResp" + } + ], + "description": "Website traffic profile of the business website from SimilarWeb." }, "state": { + "description": "State, region or province, named as the country itself names it.", "example": "California", "type": "string" }, @@ -55238,13 +57975,16 @@ "type": "string" }, "town": { + "description": "Name of the town or neighbourhood the business is in.", "example": "Fisherman's Wharf", "type": "string" }, "updated_at": { + "description": "Time the record was last updated, in UTC (RFC 3339).", "type": "string" }, "url": { + "description": "Google Maps link to the business.", "example": "https://www.google.com/maps/place/?q=place_id:ChIJ99URUeOAhYAR0J5ZUxTesDQ", "type": "string" }, @@ -55254,7 +57994,12 @@ "type": "string" }, "website_status": { - "$ref": "#/definitions/es.WebsiteStatus" + "allOf": [ + { + "$ref": "#/definitions/es.WebsiteStatus" + } + ], + "description": "Result of the last reachability check of the business website." } }, "type": "object" @@ -55262,9 +58007,11 @@ "es.GoogleBusinessDatasetFacetItem": { "properties": { "count": { + "description": "Number of businesses with this value.", "type": "integer" }, "value": { + "description": "Facet value being counted.", "type": "string" } }, @@ -55273,10 +58020,12 @@ "es.GoogleBusinessDatasetItem": { "properties": { "address": { + "description": "Full street address as shown on Google Maps.", "example": "250 Beach St, San Francisco, CA 94133", "type": "string" }, "amenities": { + "description": "List of amenities Google Maps shows for the business, for example `Free Wi-Fi`.", "example": [ "['Free Wi-Fi'", " 'Air-conditioned'", @@ -55289,6 +58038,7 @@ "type": "array" }, "category": { + "description": "Categories Google Maps lists for the business. Labels can be in the local language.", "example": [ "[\"hotel\"]" ], @@ -55298,6 +58048,7 @@ "type": "array" }, "city": { + "description": "Name of the city the business is in.", "example": "San Francisco", "type": "string" }, @@ -55310,6 +58061,7 @@ "description": "🆕 Contact information" }, "contact_is_updated": { + "description": "Whether the business's contact details have been collected.", "type": "boolean" }, "country": { @@ -55318,10 +58070,12 @@ "type": "string" }, "county": { + "description": "Administrative area below state level, named as the country itself names it.", "example": "San Francisco County", "type": "string" }, "county_code": { + "description": "ISO 3166-2 code for the `county` value, for example `FR-59`.", "example": "FR-59", "type": "string" }, @@ -55330,27 +58084,38 @@ "type": "string" }, "description": { + "description": "Business description shown on Google Maps.", "example": "A 3-minute walk from Pier 41 in the Fisherman's Wharf district...", "type": "string" }, "distance_m": { + "description": "Distance from the query point in metres. Set when results are sorted by distance.", "type": "number" }, "geo": { - "$ref": "#/definitions/es.GeoPoint" + "allOf": [ + { + "$ref": "#/definitions/es.GeoPoint" + } + ], + "description": "Coordinates of the business. Omitted when no map location is available for it." }, "geo_is_updated": { + "description": "Whether the country, state, county, city and town fields have been filled in from the coordinates.", "type": "boolean" }, "id": { + "description": "Unique id of the business record in the dataset.", "example": "ChIJ99URUeOAhYAR0J5ZUxTesDQ", "type": "string" }, "image": { + "description": "URL of the business's main photo on Google Maps.", "example": "https://lh5.googleusercontent.com/p/AF1QipP_O55x7gOwR3AaM09CVmzEUude9wMHMPwc--yp", "type": "string" }, "locations": { + "description": "Place names Google Maps lists with the business, for example `San Francisco`.", "example": [ "['San Francisco'", " 'Los Angeles']" @@ -55361,6 +58126,7 @@ "type": "array" }, "name": { + "description": "Business name as shown on Google Maps.", "example": "Hotel Zephyr San Francisco", "type": "string" }, @@ -55371,10 +58137,12 @@ "x-nullable": true }, "phone": { + "description": "Business phone number as listed on Google Maps.", "example": "14156176565", "type": "string" }, "place_id": { + "description": "Google place id of the business.", "example": "ChIJ99URUeOAhYAR0J5ZUxTesDQ", "type": "string" }, @@ -55391,9 +58159,15 @@ "x-nullable": true }, "similarweb": { - "$ref": "#/definitions/similarweb.SimilarWebResp" + "allOf": [ + { + "$ref": "#/definitions/similarweb.SimilarWebResp" + } + ], + "description": "Website traffic profile of the business website from SimilarWeb." }, "state": { + "description": "State, region or province, named as the country itself names it.", "example": "California", "type": "string" }, @@ -55403,13 +58177,16 @@ "type": "string" }, "town": { + "description": "Name of the town or neighbourhood the business is in.", "example": "Fisherman's Wharf", "type": "string" }, "updated_at": { + "description": "Time the record was last updated, in UTC (RFC 3339).", "type": "string" }, "url": { + "description": "Google Maps link to the business.", "example": "https://www.google.com/maps/place/?q=place_id:ChIJ99URUeOAhYAR0J5ZUxTesDQ", "type": "string" }, @@ -55419,7 +58196,12 @@ "type": "string" }, "website_status": { - "$ref": "#/definitions/es.WebsiteStatus" + "allOf": [ + { + "$ref": "#/definitions/es.WebsiteStatus" + } + ], + "description": "Result of the last reachability check of the business website." } }, "type": "object" @@ -55597,9 +58379,11 @@ "es.InstagramUserDatasetFacetItem": { "properties": { "count": { + "description": "Number of users with this value.", "type": "integer" }, "value": { + "description": "Facet value being counted.", "type": "string" } }, @@ -55746,18 +58530,21 @@ "type": "array" }, "by_department": { + "description": "Open posting counts by department.", "items": { "$ref": "#/definitions/es.FacetItem" }, "type": "array" }, "by_education_level": { + "description": "Open posting counts by education level mentioned in the posting.", "items": { "$ref": "#/definitions/es.FacetItem" }, "type": "array" }, "by_employment_type": { + "description": "Open posting counts by employment type, for example `Full-time`.", "items": { "$ref": "#/definitions/es.FacetItem" }, @@ -55771,18 +58558,21 @@ "type": "array" }, "by_location": { + "description": "Open posting counts by location.", "items": { "$ref": "#/definitions/es.FacetItem" }, "type": "array" }, "by_provider": { + "description": "Open posting counts by job source.", "items": { "$ref": "#/definitions/es.FacetItem" }, "type": "array" }, "by_security_clearance": { + "description": "Open posting counts by security clearance level mentioned in the posting.", "items": { "$ref": "#/definitions/es.FacetItem" }, @@ -55803,15 +58593,18 @@ "type": "array" }, "remote_open": { + "description": "Number of open postings marked remote.", "type": "integer" }, "top_companies": { + "description": "Companies with the most open postings, with the posting count for each.", "items": { "$ref": "#/definitions/es.FacetItem" }, "type": "array" }, "total_open": { + "description": "Total number of open postings.", "type": "integer" } }, @@ -56340,9 +59133,11 @@ "es.NumbeoDatasetFacetItem": { "properties": { "count": { + "description": "Number of records with this value.", "type": "integer" }, "value": { + "description": "Facet value being counted.", "type": "string" } }, @@ -56373,9 +59168,11 @@ "es.PitchbookFacetItem": { "properties": { "count": { + "description": "Number of records with this value.", "type": "integer" }, "value": { + "description": "Facet value being counted.", "type": "string" } }, @@ -56604,9 +59401,11 @@ "es.PlaystationGameRecord": { "properties": { "addon_count": { + "description": "Number of add-ons the game has on the PlayStation Store.", "type": "integer" }, "base_price_value": { + "description": "List price before any discount, in minor units of `currency` (for example cents).", "type": "integer" }, "classification": { @@ -56614,93 +59413,120 @@ "type": "string" }, "coming_soon": { + "description": "Whether the product is not yet purchasable and is listed as coming soon.", "type": "boolean" }, "concept_id": { + "description": "PlayStation Store id shared by all editions and add-ons of the same title.", "type": "string" }, "content_descriptors": { + "description": "Content notices shown with the rating, for example `Blood` or `In-Game Purchases`.", "items": { "type": "string" }, "type": "array" }, "content_rating_authority": { + "description": "Organization that issued the age rating, for example `ESRB`.", "type": "string" }, "content_rating_desc": { + "description": "Description text of the age rating.", "type": "string" }, "content_rating_name": { + "description": "Name of the age rating.", "type": "string" }, "crawled_at": { + "description": "Time the product's data was fetched, in UTC (RFC 3339).", "type": "string" }, "currency": { + "description": "ISO currency code that the prices are in.", "type": "string" }, "description": { + "description": "Product description from the PlayStation Store.", "type": "string" }, "discount_end_time": { + "description": "Time the current discount ends, as the PlayStation Store reports it.", "type": "string" }, "discount_pct": { + "description": "Discount off the list price, as a percentage from 0 to 100.", "type": "integer" }, "discount_text": { + "description": "Discount label shown on the PlayStation Store.", "type": "string" }, "discounted_value": { + "description": "Current price after any discount, in minor units of `currency` (for example cents).", "type": "integer" }, "edition_count": { + "description": "Number of editions the title has on the PlayStation Store.", "type": "integer" }, "genres": { + "description": "List of genres the PlayStation Store shows for the title.", "items": { "type": "string" }, "type": "array" }, "header_image": { + "description": "URL of the header image shown on the store page.", "type": "string" }, "is_addon": { + "description": "Whether the product is an add-on such as DLC or in-game currency, rather than a game or edition.", "type": "boolean" }, "is_free": { + "description": "Whether the product is free.", "type": "boolean" }, "is_tied_to_subscription": { + "description": "Whether the product is included with a subscription such as PlayStation Plus.", "type": "boolean" }, "name": { + "description": "Product name as shown on the PlayStation Store.", "type": "string" }, "np_title_id": { + "description": "PlayStation title id shared by all SKUs of the same title.", "type": "string" }, "platforms": { + "description": "Consoles the product runs on, for example `PS4` or `PS5`.", "items": { "type": "string" }, "type": "array" }, "price_tier": { + "description": "Price band of the current price: `free`, `under_5`, `5_to_10`, `10_to_20`, `20_to_40`, `40_to_60` or `60_plus`.", "type": "string" }, "product_id": { + "description": "PlayStation Store product id of this edition or add-on.", "type": "string" }, "publisher": { + "description": "Name of the book's publisher.", "type": "string" }, "quality_checked_at": { + "description": "Time the record was last repaired, in UTC (RFC 3339). Present only for repaired records.", "type": "string" }, "quality_reason": { + "description": "Outcome of the last completeness check on the record.", "type": "string" }, "quality_state": { @@ -56712,33 +59538,42 @@ "type": "string" }, "release_date": { + "description": "Release date as the PlayStation Store reports it.", "type": "string" }, "release_year": { + "description": "Year the title was released.", "type": "integer" }, "run_id": { + "description": "Identifier of the collection run that produced this record. Accepted as a `run_id` filter.", "type": "string" }, "schema_version": { + "description": "Version of the record layout.", "type": "integer" }, "seed_rank": { + "description": "Discovery priority of the title; lower values mean it was found earlier.", "type": "integer" }, "service_branding": { + "description": "Subscription service labels shown on the product.", "items": { "type": "string" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "star_rating_avg": { + "description": "Average user star rating of the title.", "type": "number" }, "star_rating_count": { + "description": "Number of user ratings behind the star rating.", "type": "integer" } }, @@ -56747,9 +59582,11 @@ "es.PostSound": { "properties": { "author": { + "description": "Name of the account or artist credited for the sound.", "type": "string" }, "music_id": { + "description": "TikTok identifier of the sound.", "type": "string" }, "original": { @@ -56757,9 +59594,11 @@ "type": "boolean" }, "title": { + "description": "Title of the sound as TikTok shows it.", "type": "string" }, "uses": { + "description": "Number of the creator's sampled recent posts that used this sound.", "type": "integer" } }, @@ -56768,30 +59607,39 @@ "es.PostStatsAgg": { "properties": { "analyzed_at": { + "description": "Time these post statistics were calculated, in UTC (RFC 3339).", "type": "string" }, "avg_comments": { + "description": "Average comment count per sampled post.", "type": "integer" }, "avg_likes": { + "description": "Average like count per sampled post.", "type": "integer" }, "avg_saves": { + "description": "Average save (bookmark) count per sampled post.", "type": "integer" }, "avg_shares": { + "description": "Average share count per sampled post.", "type": "integer" }, "avg_video_duration_sec": { + "description": "Average video length of sampled posts, in seconds.", "type": "number" }, "avg_views": { + "description": "Average view count per sampled post.", "type": "integer" }, "best_post_id": { + "description": "TikTok identifier of the most viewed sampled post.", "type": "string" }, "best_post_views": { + "description": "View count of the most viewed sampled post.", "type": "integer" }, "distinct_sounds": { @@ -56799,45 +59647,57 @@ "type": "integer" }, "engagement_rate_by_follower": { + "description": "Average over sampled posts of likes, comments and shares divided by the creator's follower count, as a fraction.", "type": "number" }, "engagement_rate_by_view": { + "description": "Likes, comments, shares and saves divided by views across sampled posts, as a fraction (0.05 means 5%).", "type": "number" }, "first_post_at": { + "description": "Time of the oldest sampled post, in UTC (RFC 3339).", "type": "string" }, "last_post_at": { + "description": "Time of the most recent sampled post, in UTC (RFC 3339).", "type": "string" }, "median_likes": { + "description": "Median like count across sampled posts.", "type": "integer" }, "median_views": { + "description": "Median view count across sampled posts.", "type": "integer" }, "original_sound_ratio": { + "description": "Share of sampled posts that use the creator's own original sound, as a fraction from 0 to 1.", "type": "number" }, "posts_per_week": { + "description": "Average number of posts per week between the oldest and newest sampled post.", "type": "number" }, "sampled_posts": { + "description": "Number of the creator's recent posts included in these figures.", "type": "integer" }, "top_hashtags": { + "description": "Most used hashtags across sampled posts, lowercase and without the leading `#`, most used first.", "items": { "type": "string" }, "type": "array" }, "top_sounds": { + "description": "Most used sounds across sampled posts, most used first.", "items": { "$ref": "#/definitions/es.PostSound" }, "type": "array" }, "views_to_follower_ratio": { + "description": "Average views per sampled post divided by the creator's follower count.", "type": "number" } }, @@ -56846,30 +59706,39 @@ "es.ProductHuntLaunch": { "properties": { "daily_rank": { + "description": "Rank on the Product Hunt daily leaderboard for the launch day.", "type": "integer" }, "date": { + "description": "Launch date, in YYYY-MM-DD format.", "type": "string" }, "launch_day_score": { + "description": "Score the launch had on its launch day.", "type": "integer" }, "launch_number": { + "description": "Sequence number of this launch among the product's Product Hunt launches.", "type": "integer" }, "monthly_rank": { + "description": "Rank on the Product Hunt monthly leaderboard.", "type": "integer" }, "post_id": { + "description": "Product Hunt identifier of the launch post.", "type": "string" }, "post_slug": { + "description": "URL slug of the launch post on Product Hunt.", "type": "string" }, "score": { + "description": "Upvote count of the launch post.", "type": "integer" }, "weekly_rank": { + "description": "Rank on the Product Hunt weekly leaderboard.", "type": "integer" } }, @@ -56878,18 +59747,23 @@ "es.ProductHuntMaker": { "properties": { "avatar_url": { + "description": "URL of the maker's profile picture.", "type": "string" }, "headline": { + "description": "Short headline from the maker's Product Hunt profile.", "type": "string" }, "maker_id": { + "description": "Product Hunt identifier of the maker.", "type": "string" }, "name": { + "description": "Maker's display name.", "type": "string" }, "username": { + "description": "Maker's Product Hunt username. Use it with the maker item endpoint.", "type": "string" } }, @@ -56898,48 +59772,65 @@ "es.ProductHuntMakerItem": { "properties": { "avatar_url": { + "description": "URL of the maker's profile picture.", "type": "string" }, "best_product": { - "$ref": "#/definitions/es.ProductHuntMakerProduct" + "allOf": [ + { + "$ref": "#/definitions/es.ProductHuntMakerProduct" + } + ], + "description": "The maker's product with the highest upvote count." }, "first_launch_date": { + "description": "Date of the maker's earliest product launch, in YYYY-MM-DD format.", "type": "string" }, "followers_count": { + "description": "Number of Product Hunt users following the maker.", "type": "integer" }, "headline": { + "description": "Short headline from the maker's Product Hunt profile.", "type": "string" }, "latest_launch_date": { + "description": "Date of the maker's most recent product launch, in YYYY-MM-DD format.", "type": "string" }, "made_products": { + "description": "Products the maker is credited with on Product Hunt.", "items": { "$ref": "#/definitions/es.ProductHuntMakerProduct" }, "type": "array" }, "maker_id": { + "description": "Product Hunt identifier of the maker.", "type": "string" }, "name": { + "description": "Maker's display name.", "type": "string" }, "product_count": { + "description": "Number of products the maker is credited with.", "type": "integer" }, "topics": { + "description": "Slugs of the topics the maker's products are filed under.", "items": { "type": "string" }, "type": "array" }, "total_votes": { + "description": "Total upvotes across the maker's products.", "type": "integer" }, "username": { + "description": "Maker's Product Hunt username. Use it with the maker item endpoint.", "type": "string" } }, @@ -56948,15 +59839,19 @@ "es.ProductHuntMakerProduct": { "properties": { "latest_score": { + "description": "Current upvote count of the product.", "type": "integer" }, "name": { + "description": "Product name as shown on Product Hunt.", "type": "string" }, "product_id": { + "description": "Product Hunt identifier of the product.", "type": "string" }, "slug": { + "description": "URL slug of the product on Product Hunt.", "type": "string" } }, @@ -56976,108 +59871,139 @@ "es.ProductHuntProductItem": { "properties": { "best_daily_rank": { + "description": "Best position the product reached on a Product Hunt daily leaderboard.", "type": "integer" }, "best_monthly_rank": { + "description": "Best position the product reached on a Product Hunt monthly leaderboard.", "type": "integer" }, "best_weekly_rank": { + "description": "Best position the product reached on a Product Hunt weekly leaderboard.", "type": "integer" }, "comments_count": { + "description": "Number of comments on the product's Product Hunt page.", "type": "integer" }, "description": { + "description": "Product description as the maker wrote it on Product Hunt.", "type": "string" }, "first_launch_date": { + "description": "Date of the product's earliest launch, in YYYY-MM-DD format.", "type": "string" }, "followers_count": { + "description": "Number of Product Hunt users following the product.", "type": "integer" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "is_top_product": { + "description": "Whether Product Hunt flags the product as a top product.", "type": "boolean" }, "latest_launch_date": { + "description": "Date of the product's most recent launch, in YYYY-MM-DD format.", "type": "string" }, "latest_score": { + "description": "Current upvote count of the product.", "type": "integer" }, "launch_count": { + "description": "Number of times the product has launched on Product Hunt.", "type": "integer" }, "launch_year": { + "description": "Year of the product's first launch.", "type": "integer" }, "launches": { + "description": "Each launch of the product on Product Hunt, with its date, ranks and score.", "items": { "$ref": "#/definitions/es.ProductHuntLaunch" }, "type": "array" }, "logo_uuid": { + "description": "Identifier of the product logo image on Product Hunt.", "type": "string" }, "makers": { + "description": "People credited as makers of the product.", "items": { "$ref": "#/definitions/es.ProductHuntMaker" }, "type": "array" }, "name": { + "description": "Product name as shown on Product Hunt.", "type": "string" }, "pricing_type": { + "description": "Pricing model of the product, such as `free`, `paid` or `freemium`.", "type": "string" }, "primary_topic": { + "description": "Slug of the product's main topic.", "type": "string" }, "product_id": { + "description": "Product Hunt identifier of the product.", "type": "string" }, "product_state": { + "description": "Lifecycle state of the product as Product Hunt reports it.", "type": "string" }, "reviews_count": { + "description": "Number of reviews the product has on Product Hunt.", "type": "integer" }, "reviews_rating": { + "description": "Average review rating out of 5.", "type": "number" }, "slug": { + "description": "URL slug of the product on Product Hunt. Use it with the product item endpoint.", "type": "string" }, "tagline": { + "description": "One-line tagline of the product.", "type": "string" }, "topic_slugs": { + "description": "Slugs of all topics the product is filed under.", "items": { "type": "string" }, "type": "array" }, "topics": { + "description": "Topics the product is filed under.", "items": { "$ref": "#/definitions/es.ProductHuntTopic" }, "type": "array" }, "twitter_url": { + "description": "URL of the product's X (Twitter) profile.", "type": "string" }, "url": { + "description": "URL of the product's page on Product Hunt.", "type": "string" }, "website": { + "description": "URL of the product's own website.", "type": "string" }, "won_daily": { + "description": "Whether the product ranked first on a Product Hunt daily leaderboard.", "type": "boolean" } }, @@ -57086,9 +60012,11 @@ "es.ProductHuntProductsFacetItem": { "properties": { "count": { + "description": "Number of products in this bucket.", "type": "integer" }, "value": { + "description": "Bucket value, such as a topic slug, a four-digit launch year, a pricing type or a product state.", "type": "string" } }, @@ -57097,12 +60025,15 @@ "es.ProductHuntTopic": { "properties": { "id": { + "description": "Product Hunt identifier of the topic.", "type": "string" }, "name": { + "description": "Topic name as Product Hunt shows it.", "type": "string" }, "slug": { + "description": "URL slug of the topic on Product Hunt.", "type": "string" } }, @@ -57111,12 +60042,15 @@ "es.ProductHuntTrendCell": { "properties": { "avg_rating": { + "description": "Average review rating out of 5 across the cell's launches. Omitted when too few launches have ratings.", "type": "number" }, "avg_votes": { + "description": "Average upvotes per launched product in the cell.", "type": "number" }, "launches": { + "description": "Number of product launches in the cell.", "type": "integer" }, "period": { @@ -57124,12 +60058,19 @@ "type": "string" }, "top_product": { - "$ref": "#/definitions/es.ProductHuntTrendTopProduct" + "allOf": [ + { + "$ref": "#/definitions/es.ProductHuntTrendTopProduct" + } + ], + "description": "Product with the most upvotes in the cell." }, "topic": { + "description": "Slug of the Product Hunt topic the cell covers.", "type": "string" }, "total_votes": { + "description": "Total upvotes across the launches in the cell.", "type": "integer" } }, @@ -57138,12 +60079,15 @@ "es.ProductHuntTrendTopProduct": { "properties": { "name": { + "description": "Product name as shown on Product Hunt.", "type": "string" }, "slug": { + "description": "URL slug of the product on Product Hunt.", "type": "string" }, "votes": { + "description": "Upvote count of the product.", "type": "integer" } }, @@ -57152,9 +60096,11 @@ "es.ProductHuntTrendsFacetItem": { "properties": { "count": { + "description": "Number of products in this bucket.", "type": "integer" }, "value": { + "description": "Bucket value, either a topic slug or a four-digit launch year.", "type": "string" } }, @@ -57288,90 +60234,116 @@ "es.SecCompanyRecord": { "properties": { "cik": { + "description": "SEC Central Index Key of the company. Use it with the company item endpoint.", "type": "integer" }, "cik_padded": { + "description": "CIK zero-padded to 10 digits, usually with a `CIK` prefix, such as `CIK0000320193`.", "type": "string" }, "crawled_at": { + "description": "Time the company record was last collected, in UTC (RFC 3339).", "type": "string" }, "entity_type": { + "description": "Entity type EDGAR reports for the filer, such as `operating`.", "type": "string" }, "exchange": { + "description": "Stock exchanges the company is listed on, as EDGAR reports them, such as `Nasdaq` or `NYSE`.", "items": { "type": "string" }, "type": "array" }, "filing_count": { + "description": "Number of filings the company has on EDGAR.", "type": "integer" }, "financials_synced_at": { + "description": "Time the financial figures were last updated, in UTC (RFC 3339).", "type": "string" }, "fiscal_year_end": { + "description": "Last day of the company's fiscal year as month and day (MMDD), for example `0928`.", "type": "string" }, "former_names": { + "description": "Names the company filed under previously.", "items": { "type": "string" }, "type": "array" }, "forms_filed": { + "description": "Distinct SEC form types the company has filed.", "items": { "type": "string" }, "type": "array" }, "insider_last_transaction_at": { + "description": "Date of the most recent insider transaction in the last 90 days.", "type": "string" }, "insider_net_shares_90d": { + "description": "Shares insiders acquired minus shares they disposed of over the last 90 days. Negative when more were sold.", "type": "number" }, "insider_txn_count_90d": { + "description": "Number of insider transactions reported over the last 90 days.", "type": "integer" }, "latest_annual_fiscal_year": { + "description": "Fiscal year of the latest annual financial figures.", "type": "integer" }, "latest_annual_net_income": { + "description": "Net income for the latest fiscal year, in the filer's reporting currency.", "type": "number" }, "latest_annual_net_income_usd": { + "description": "Net income for the latest fiscal year, converted to US dollars at a fixed reference rate.", "type": "number" }, "latest_annual_revenue": { + "description": "Revenue for the latest fiscal year, in the filer's reporting currency.", "type": "number" }, "latest_annual_revenue_usd": { + "description": "Revenue for the latest fiscal year, converted to US dollars at a fixed reference rate.", "type": "number" }, "latest_annual_total_assets": { + "description": "Total assets at the end of the latest fiscal year, in the filer's reporting currency.", "type": "number" }, "latest_annual_total_assets_usd": { + "description": "Total assets at the end of the latest fiscal year, converted to US dollars at a fixed reference rate.", "type": "number" }, "latest_filing_date": { + "description": "Date of the company's most recent filing, in YYYY-MM-DD format.", "type": "string" }, "latest_quarterly_fiscal_year": { + "description": "Fiscal year of the latest quarterly financial figures.", "type": "integer" }, "latest_quarterly_revenue": { + "description": "Revenue for the latest reported quarter, in the filer's reporting currency.", "type": "number" }, "name": { + "description": "Company name as registered with the SEC.", "type": "string" }, "primary_ticker": { + "description": "Main stock ticker symbol of the company.", "type": "string" }, "recent_filings": { + "description": "Most recent filings of the company, newest first.", "items": { "$ref": "#/definitions/es.SecFilingSummary" }, @@ -57382,27 +60354,35 @@ "type": "string" }, "revenue_band": { + "description": "Size band of the latest annual revenue in US dollars: `under_1m`, `1m_10m`, `10m_100m`, `100m_1b`, `1b_10b`, `over_10b` or `unknown`.", "type": "string" }, "schema_version": { + "description": "Version of the record format.", "type": "integer" }, "seed_source": { + "description": "Label of the SEC company list this record was first built from.", "type": "string" }, "sic": { + "description": "Standard Industrial Classification code of the company.", "type": "string" }, "sic_description": { + "description": "Plain-text description of the company's SIC code.", "type": "string" }, "state_of_incorporation": { + "description": "Code of the state or country where the company is incorporated.", "type": "string" }, "submissions_synced_at": { + "description": "Time the filing history was last updated, in UTC (RFC 3339).", "type": "string" }, "tickers": { + "description": "All stock ticker symbols of the company.", "items": { "type": "string" }, @@ -57414,15 +60394,19 @@ "es.SecFilingSummary": { "properties": { "accession_number": { + "description": "SEC accession number that uniquely identifies the filing.", "type": "string" }, "filing_date": { + "description": "Date the filing was submitted to the SEC, in YYYY-MM-DD format.", "type": "string" }, "form": { + "description": "SEC form type of the filing, such as `10-K`, `10-Q` or `8-K`.", "type": "string" }, "primary_doc_url": { + "description": "URL of the filing's main document on SEC.gov.", "type": "string" } }, @@ -57431,12 +60415,15 @@ "es.SecFinancialsHistoryPoint": { "properties": { "cik": { + "description": "SEC Central Index Key of the company.", "type": "integer" }, "currency": { + "description": "Currency the figures are reported in, such as `USD`.", "type": "string" }, "end_date": { + "description": "Last day of the reporting period, in YYYY-MM-DD format.", "type": "string" }, "fiscal_period": { @@ -57444,9 +60431,11 @@ "type": "string" }, "fiscal_year": { + "description": "Fiscal year the period belongs to.", "type": "integer" }, "form": { + "description": "SEC form the figures were reported in, such as `10-K`.", "type": "string" }, "lines": { @@ -57454,6 +60443,7 @@ "format": "float64", "type": "number" }, + "description": "Financial statement line items for the period, keyed by name such as `revenue` or `net_income`.", "type": "object" }, "period": { @@ -57465,6 +60455,7 @@ "format": "float64", "type": "number" }, + "description": "Ratios calculated from the line items, keyed by name such as `gross_margin` or `net_margin`.", "type": "object" }, "statement": { @@ -57472,6 +60463,7 @@ "type": "string" }, "synced_at": { + "description": "Time this period was last updated, in UTC (RFC 3339).", "type": "string" } }, @@ -57539,45 +60531,59 @@ "es.SecInstitutionalPositionRecord": { "properties": { "accession_number": { + "description": "SEC accession number of the 13F filing that reported the position.", "type": "string" }, "cusip": { + "description": "CUSIP identifier of the held security.", "type": "string" }, "filing_date": { + "description": "Date the 13F filing was submitted, in YYYY-MM-DD format.", "type": "string" }, "investment_discretion": { + "description": "Investment discretion the manager reports for the position, such as `SOLE`.", "type": "string" }, "issuer_name": { + "description": "Name of the company that issued the held security, as the manager reported it.", "type": "string" }, "manager_cik": { + "description": "SEC Central Index Key of the institutional manager that filed.", "type": "integer" }, "manager_name": { + "description": "Name of the institutional manager that filed.", "type": "string" }, "put_call": { + "description": "Whether the position is a `Put` or `Call` option. Empty for other positions.", "type": "string" }, "report_date": { + "description": "Quarter-end date the holdings are reported as of, in YYYY-MM-DD format.", "type": "string" }, "share_type": { + "description": "Unit of the `shares` figure as reported, such as `SH` for shares.", "type": "string" }, "shares": { + "description": "Quantity held, in the unit given by `share_type`.", "type": "number" }, "synced_at": { + "description": "Time this position was last updated, in UTC (RFC 3339).", "type": "string" }, "title_of_class": { + "description": "Class of the held security as reported, such as `COM`.", "type": "string" }, "value": { + "description": "Value of the position as the manager reported it in the 13F filing, in US dollars.", "type": "number" } }, @@ -57880,9 +60886,11 @@ "es.SteamGameRecord": { "properties": { "achievements_count": { + "description": "Number of achievements the game has on Steam.", "type": "integer" }, "appid": { + "description": "Steam application ID of the game.", "type": "integer" }, "available": { @@ -57890,54 +60898,68 @@ "type": "boolean" }, "average_2weeks_min": { + "description": "Average playtime per owner over the last two weeks, in minutes.", "type": "integer" }, "average_forever_min": { + "description": "Average total playtime per owner, in minutes.", "type": "integer" }, "background": { + "description": "URL of the background image on the game's store page.", "type": "string" }, "categories": { + "description": "Store categories the game is listed under, such as `Single-player`.", "items": { "type": "string" }, "type": "array" }, "ccu": { + "description": "Peak number of concurrent players on the previous day.", "type": "integer" }, "coming_soon": { + "description": "Whether the game is not yet released.", "type": "boolean" }, "content_descriptor_ids": { + "description": "Steam content descriptor IDs that flag mature content on the game.", "items": { "type": "integer" }, "type": "array" }, "controller_support": { + "description": "Level of controller support Steam lists for the game.", "type": "string" }, "crawled_at": { + "description": "Time the record was last collected, in UTC (RFC 3339).", "type": "string" }, "developer": { + "description": "Main developer of the game.", "type": "string" }, "developers": { + "description": "All developers credited on the store page.", "items": { "type": "string" }, "type": "array" }, "discount_pct": { + "description": "Current discount as a percentage, 0 when not on sale.", "type": "integer" }, "dlc_count": { + "description": "Number of DLC items listed for the game.", "type": "integer" }, "genres": { + "description": "Genres the game is listed under, such as `Action` or `Indie`.", "items": { "type": "string" }, @@ -57948,114 +60970,149 @@ "type": "boolean" }, "header_image": { + "description": "URL of the header image on the game's store page.", "type": "string" }, "initial_price_cents": { + "description": "Price before any discount, in cents.", "type": "integer" }, "is_free": { + "description": "Whether the game is free to play or has a price of 0.", "type": "boolean" }, "language_count": { + "description": "Number of languages the game supports.", "type": "integer" }, "languages": { + "description": "Languages the game supports.", "items": { "type": "string" }, "type": "array" }, "median_2weeks_min": { + "description": "Median playtime per owner over the last two weeks, in minutes.", "type": "integer" }, "median_forever_min": { + "description": "Median total playtime per owner, in minutes.", "type": "integer" }, "metacritic": { + "description": "Metacritic score of the game, from 0 to 100.", "type": "integer" }, "movie_count": { + "description": "Number of trailers and videos on the store page.", "type": "integer" }, "name": { + "description": "Game title as shown on Steam.", "type": "string" }, "negative": { + "description": "Number of negative user reviews.", "type": "integer" }, "owners_bucket": { + "description": "Estimated range of owners as a text label, such as `1,000,000 .. 2,000,000`.", "type": "string" }, "owners_max": { + "description": "Upper end of the estimated owner range.", "type": "integer" }, "owners_midpoint": { + "description": "Middle of the estimated owner range.", "type": "integer" }, "owners_min": { + "description": "Lower end of the estimated owner range.", "type": "integer" }, "package_count": { + "description": "Number of store packages the game is sold in.", "type": "integer" }, "platform_linux": { + "description": "Whether the game supports Linux.", "type": "boolean" }, "platform_mac": { + "description": "Whether the game supports macOS.", "type": "boolean" }, "platform_windows": { + "description": "Whether the game supports Windows.", "type": "boolean" }, "positive": { + "description": "Number of positive user reviews.", "type": "integer" }, "price_cents": { + "description": "Current price, in cents.", "type": "integer" }, "price_tier": { + "description": "Price band: `free`, `under5`, `5to15`, `15to30`, `30to60` or `over60`.", "type": "string" }, "primary_tag": { + "description": "Most heavily weighted community tag of the game.", "type": "string" }, "publisher": { + "description": "Main publisher of the game.", "type": "string" }, "publishers": { + "description": "All publishers credited on the store page.", "items": { "type": "string" }, "type": "array" }, "recommendations": { + "description": "Number of user recommendations Steam reports for the game.", "type": "integer" }, "release_date": { + "description": "Release date in YYYY-MM-DD format. Empty when Steam gives only a year or quarter.", "type": "string" }, "release_year": { + "description": "Year the game was or will be released.", "type": "integer" }, "required_age": { + "description": "Minimum age set on the store page.", "type": "integer" }, "review_score": { + "description": "Share of reviews that are positive, from 0 to 1.", "type": "number" }, "review_tier": { + "description": "Review band such as `very_positive`, `mixed` or `insufficient`, following Steam's rating labels.", "type": "string" }, "run_id": { + "description": "Identifier of the collection run that produced this record.", "type": "string" }, "schema_version": { + "description": "Version of the record format.", "type": "integer" }, "screenshot_count": { + "description": "Number of screenshots on the store page.", "type": "integer" }, "seed_rank": { + "description": "Popularity rank when the game was collected, where 0 is the most popular. Games outside the popularity list carry values of 1,000,000 or more.", "type": "integer" }, "short_description": { @@ -58063,12 +61120,14 @@ "type": "string" }, "tag_ids": { + "description": "Steam IDs of the community tags, in the same order as the tags.", "items": { "type": "integer" }, "type": "array" }, "tag_schema_version": { + "description": "Version of the community-tag data on this record.", "type": "integer" }, "tags": { @@ -58079,15 +61138,19 @@ "type": "array" }, "tags_enriched_at": { + "description": "Time the community tags were last added to this record.", "type": "string" }, "total_reviews": { + "description": "Total number of user reviews, positive plus negative.", "type": "integer" }, "type": { + "description": "Store item type, such as `game`, `dlc` or `demo`.", "type": "string" }, "website": { + "description": "URL of the game's own website.", "type": "string" } }, @@ -58269,9 +61332,11 @@ "es.TechstackDatasetFacetItem": { "properties": { "count": { + "description": "Number of sites in this bucket.", "type": "integer" }, "value": { + "description": "Bucket value, such as a technology name, category, top-level domain or rendering tier.", "type": "string" } }, @@ -58280,6 +61345,7 @@ "es.TechstackRecord": { "properties": { "analytics": { + "description": "Analytics, tag manager and tracking pixel technologies detected on the site.", "items": { "type": "string" }, @@ -58304,6 +61370,7 @@ "type": "string" }, "cdn": { + "description": "Main CDN, hosting or platform provider detected on the site.", "type": "string" }, "cms": { @@ -58311,6 +61378,7 @@ "type": "string" }, "detector_version": { + "description": "Version of the technology detection rules used for this record.", "type": "string" }, "domain": { @@ -58318,6 +61386,7 @@ "type": "string" }, "ecommerce": { + "description": "Ecommerce platform detected on the site.", "type": "string" }, "failure_reason": { @@ -58329,6 +61398,7 @@ "type": "string" }, "has_captcha": { + "description": "Whether a CAPTCHA technology was detected on the site.", "type": "boolean" }, "is_infrastructure": { @@ -58336,6 +61406,7 @@ "type": "boolean" }, "method_version": { + "description": "Version of the scan procedure used to collect this record.", "type": "string" }, "probe_error": { @@ -58351,6 +61422,7 @@ "type": "integer" }, "reachable": { + "description": "Whether the site answered the probe.", "type": "boolean" }, "render_tier": { @@ -58358,18 +61430,23 @@ "type": "string" }, "run_date": { + "description": "Time the scan run started, in UTC (RFC 3339).", "type": "string" }, "run_id": { + "description": "Identifier of the scan run that produced this record.", "type": "string" }, "scan_method": { + "description": "Method used to scan the site, for example `http_scan`.", "type": "string" }, "schema_version": { + "description": "Version of the record format.", "type": "integer" }, "scheme": { + "description": "URL scheme the site was reached with, `https` or `http`.", "type": "string" }, "secondary_only_technology_names": { @@ -58406,6 +61483,7 @@ "type": "string" }, "server_language": { + "description": "Server-side language or web framework detected on the site.", "type": "string" }, "source_url": { @@ -58413,9 +61491,11 @@ "type": "string" }, "status": { + "description": "HTTP status code of the last probe attempt.", "type": "integer" }, "tech_count": { + "description": "Number of distinct technologies detected on the site.", "type": "integer" }, "technologies": { @@ -58433,9 +61513,11 @@ "type": "array" }, "tld": { + "description": "Top-level domain of the site, such as `com`.", "type": "string" }, "web_server": { + "description": "Web server software detected on the site.", "type": "string" } }, @@ -58444,12 +61526,15 @@ "es.TechstackSecondaryPage": { "properties": { "category": { + "description": "Kind of page found on the homepage navigation: `careers`, `login`, `blog`, `status`, `signup`, `docs`, `contact`, `trust` or `cart`.", "type": "string" }, "fetched": { + "description": "Whether the page was loaded successfully. False when it was blocked or timed out.", "type": "boolean" }, "url": { + "description": "Address of the page found on the homepage navigation.", "type": "string" } }, @@ -58458,21 +61543,26 @@ "es.TechstackTechnology": { "properties": { "categories": { + "description": "Categories the technology belongs to, such as `CDN` or `Analytics`.", "items": { "type": "string" }, "type": "array" }, "confidence": { + "description": "How sure the detection is: `high`, `medium` or `low`.", "type": "string" }, "evidence": { + "description": "Signal the technology was recognised from, such as `header: cf-ray`.", "type": "string" }, "name": { + "description": "Technology name, such as `Shopify` or `Cloudflare`.", "type": "string" }, "version": { + "description": "Version of the technology, when the site exposes it.", "type": "string" } }, @@ -58481,9 +61571,11 @@ "es.TrustmrrDatasetFacetItem": { "properties": { "count": { + "description": "Number of startups in this bucket.", "type": "integer" }, "value": { + "description": "Bucket value for the requested facet, such as a category name, country or payment provider.", "type": "string" } }, @@ -58537,213 +61629,280 @@ "es.TrustmrrStartupRecord": { "properties": { "active_subscriptions": { + "description": "Number of active subscriptions the startup has.", "type": "integer" }, "ahrefs_domain_rating": { + "description": "Ahrefs Domain Rating of the startup's website.", "type": "integer" }, "asking_price": { + "description": "Price the seller is asking for the startup, in US dollars. Omitted when TrustMRR shows none.", "type": "number" }, "business_type": { + "description": "Business type of the startup, such as `B2C`.", "type": "string" }, "category": { + "description": "TrustMRR category of the startup, such as `Mobile App`.", "type": "string" }, "category_slug": { + "description": "URL slug of the TrustMRR category.", "type": "string" }, "channels": { + "description": "Slugs of the marketing channels detected for the startup, such as `meta-ads`.", "items": { "type": "string" }, "type": "array" }, "country": { + "description": "Country code of the startup, such as `PL`.", "type": "string" }, "customers": { + "description": "Number of customers the startup has.", "type": "integer" }, "deal_score": { + "description": "TrustMRR's recency-aware score for how attractive the startup is as an acquisition.", "type": "number" }, "description": { + "description": "Description of the startup as listed on TrustMRR.", "type": "string" }, "estimated_user_count": { + "description": "Estimated number of users of the startup's product.", "type": "integer" }, "first_listed_for_sale_at": { + "description": "Time the startup was first listed for sale (RFC 3339).", "type": "string" }, "first_seen": { + "description": "Time the startup first appeared in this dataset (RFC 3339).", "type": "string" }, "founded_date": { + "description": "Date the startup was founded.", "type": "string" }, "funding_status": { + "description": "Funding status of the startup.", "type": "string" }, "growth_30d": { + "description": "Revenue growth over the last 30 days, as a percentage.", "type": "number" }, "growth_mrr_30d": { + "description": "Growth in monthly recurring revenue over the last 30 days.", "type": "number" }, "has_dofollow_backlink": { + "description": "Whether the startup's site links back to TrustMRR with a dofollow link.", "type": "boolean" }, "has_google_analytics": { + "description": "Whether the startup has verified Google Analytics.", "type": "boolean" }, "has_insight_overrides": { + "description": "Whether the seller has replaced TrustMRR's AI-written business summary with their own.", "type": "boolean" }, "has_search_console": { + "description": "Whether the startup has verified Google Search Console.", "type": "boolean" }, "icon": { + "description": "URL of the startup's icon.", "type": "string" }, "is_merchant_of_record": { + "description": "Whether the startup acts as merchant of record for its payments.", "type": "boolean" }, "is_sponsored": { + "description": "Whether the startup is a sponsored listing on TrustMRR.", "type": "boolean" }, "last_crawled_at": { + "description": "Time the startup's data was last refreshed (RFC 3339).", "type": "string" }, "last_seen": { + "description": "Time the startup was last seen on TrustMRR (RFC 3339).", "type": "string" }, "listing_tier": { + "description": "Tier of the for-sale listing, such as `pro`.", "type": "string" }, "looking_for_cofounder": { + "description": "Whether the founder is looking for a cofounder.", "type": "boolean" }, "merchant_category_code": { + "description": "Merchant category code (MCC) of the startup's payment processor, such as `7372`.", "type": "string" }, "mrr": { + "description": "Verified monthly recurring revenue, in US dollars.", "type": "number" }, "mrr_last_synced_at": { + "description": "Time the monthly recurring revenue figure was last synced (RFC 3339).", "type": "string" }, "multiple": { + "description": "Asking price as a multiple of the startup's revenue.", "type": "number" }, "name": { + "description": "Startup name as listed on TrustMRR.", "type": "string" }, "offer_count": { + "description": "Number of offers the for-sale listing has received.", "type": "integer" }, "on_sale": { + "description": "Whether the startup is currently listed for sale.", "type": "boolean" }, "payment_provider": { + "description": "Payment provider the revenue is verified through, such as `revenuecat`.", "type": "string" }, "pricing_model": { + "description": "Pricing model of the startup's product, as summarised by TrustMRR.", "type": "string" }, "problem_solved": { + "description": "Problem the startup's product solves, as summarised by TrustMRR.", "type": "string" }, "profit_margin_30d": { + "description": "Profit margin over the last 30 days.", "type": "number" }, "revenue_30d": { + "description": "Verified revenue over the last 30 days, in US dollars.", "type": "number" }, "revenue_last_synced_at": { + "description": "Time the revenue figures were last synced (RFC 3339).", "type": "string" }, "revenue_per_visitor_30d": { + "description": "Revenue per site visitor over the last 30 days.", "type": "number" }, "schema_version": { + "description": "Version of the record format.", "type": "integer" }, "secondary_payment_provider": { + "description": "Second payment provider the revenue is verified through, when there is one.", "type": "string" }, "seller_message": { + "description": "Message the seller wrote on the for-sale listing.", "type": "string" }, "slug": { + "description": "URL slug of the startup on TrustMRR. Use it with the item endpoint.", "type": "string" }, "status": { + "description": "Listing status of the startup: `active` or `removed`.", "type": "string" }, "stealth_mode": { + "description": "Whether the startup is listed in stealth mode.", "type": "boolean" }, "tags": { + "description": "Tags describing the startup's business, as summarised by TrustMRR.", "items": { "type": "string" }, "type": "array" }, "target_audience": { + "description": "Audience the startup sells to, such as `B2C`.", "type": "string" }, "target_persona": { + "description": "Typical customer persona of the startup, as summarised by TrustMRR.", "type": "string" }, "tech": { + "description": "Slugs of the technologies detected in the startup's stack, such as `reactnative`.", "items": { "type": "string" }, "type": "array" }, "total_revenue": { + "description": "Verified all-time revenue, in US dollars.", "type": "number" }, "traffic_12mo": { + "description": "Website traffic over the last 12 months.", "type": "number" }, "traffic_24h": { + "description": "Website traffic over the last 24 hours.", "type": "number" }, "traffic_30d": { + "description": "Website traffic over the last 30 days, in visits.", "type": "number" }, "traffic_7d": { + "description": "Website traffic over the last 7 days.", "type": "number" }, "url": { + "description": "URL of the startup's page on TrustMRR.", "type": "string" }, "user_category": { + "description": "Category the seller chose for the startup, such as `Mobile Apps`.", "type": "string" }, "user_category_slug": { + "description": "URL slug of the seller-chosen category.", "type": "string" }, "value_proposition": { + "description": "What the startup offers customers, as summarised by TrustMRR.", "type": "string" }, "website": { + "description": "URL of the startup's own website.", "type": "string" }, "x_follower_count": { + "description": "Number of followers the founder has on X (Twitter).", "type": "integer" }, "x_founder_name": { + "description": "Founder's display name on X (Twitter).", "type": "string" }, "x_handle": { + "description": "Founder's X (Twitter) handle.", "type": "string" }, "x_profile_picture": { + "description": "URL of the founder's X (Twitter) profile picture.", "type": "string" } }, @@ -58900,21 +62059,27 @@ "es.WebsiteStatus": { "properties": { "checked_at": { + "description": "Time the website was checked, in UTC (RFC 3339).", "type": "string" }, "dns_resolvable": { + "description": "Whether the website's domain name resolved.", "type": "boolean" }, "error": { + "description": "Error message from the check. Omitted when the check raised no error.", "type": "string" }, "http_reachable": { + "description": "Whether the website answered an HTTP request.", "type": "boolean" }, "status_code": { + "description": "HTTP status code the website returned.", "type": "integer" }, "url": { + "description": "Website address that was checked.", "type": "string" } }, @@ -58923,9 +62088,11 @@ "es.XUserDatasetFacetItem": { "properties": { "count": { + "description": "Number of X users in this bucket.", "type": "integer" }, "value": { + "description": "Bucket value for the requested facet, such as `true` or `false` for yes/no facets.", "type": "string" } }, @@ -59330,16 +62497,23 @@ "espn.BoxscoreTeam": { "properties": { "home_away": { + "description": "Whether the team is the `home` or `away` side.", "type": "string" }, "stats": { "additionalProperties": { "type": "string" }, + "description": "Team stat totals keyed by stat label, with each value as ESPN displays it.", "type": "object" }, "team": { - "$ref": "#/definitions/espn.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/espn.TeamRef" + } + ], + "description": "Team these stat totals belong to." } }, "type": "object" @@ -59347,21 +62521,30 @@ "espn.Competitor": { "properties": { "home_away": { + "description": "Whether the team is the `home` or `away` side.", "example": "home", "type": "string" }, "record": { + "description": "Team's win-loss record, for example `10-2`.", "example": "10-2", "type": "string" }, "score": { + "description": "Team's score in the game, as a string.", "example": "27", "type": "string" }, "team": { - "$ref": "#/definitions/espn.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/espn.TeamRef" + } + ], + "description": "Team playing in this game." }, "winner": { + "description": "Whether this team won the game.", "type": "boolean" } }, @@ -59370,34 +62553,46 @@ "espn.Game": { "properties": { "competitors": { + "description": "Both sides of the game, each with team, home or away role and score.", "items": { "$ref": "#/definitions/espn.Competitor" }, "type": "array" }, "date": { + "description": "Scheduled start time of the game in ISO 8601, for example `2026-09-10T20:00Z`.", "type": "string" }, "id": { + "description": "ESPN event id of the game, for example `401816033`. Use it with the game summary endpoint.", "example": "401816033", "type": "string" }, "name": { + "description": "Full matchup title of the game, as ESPN shows it.", "type": "string" }, "odds": { + "description": "Betting lines for the game, one entry per odds provider.", "items": { "$ref": "#/definitions/espn.GameOdds" }, "type": "array" }, "short_name": { + "description": "Short matchup title of the game, as ESPN shows it.", "type": "string" }, "status": { - "$ref": "#/definitions/espn.GameStatus" + "allOf": [ + { + "$ref": "#/definitions/espn.GameStatus" + } + ], + "description": "Current state of the game, such as scheduled, in progress or final." }, "venue": { + "description": "Name of the stadium or arena where the game is played.", "type": "string" } }, @@ -59406,15 +62601,19 @@ "espn.GameOdds": { "properties": { "details": { + "description": "Betting line summary text as the provider shows it, for example `ATL -1.5`.", "type": "string" }, "over_under": { + "description": "Total points line for the game, as the provider lists it.", "type": "number" }, "provider": { + "description": "Name of the odds provider that published the line.", "type": "string" }, "spread": { + "description": "Point spread for the game, as the provider lists it.", "type": "number" } }, @@ -59423,24 +62622,30 @@ "espn.GameStatus": { "properties": { "clock": { + "description": "Game clock text as ESPN displays it. Omitted when ESPN gives none.", "type": "string" }, "completed": { + "description": "Whether the game has finished.", "example": true, "type": "boolean" }, "detail": { + "description": "Full status text ESPN shows for the game, for example `Final`.", "example": "Final", "type": "string" }, "period": { + "description": "Current period of the game, such as the quarter, inning or half. Omitted when ESPN gives none.", "type": "integer" }, "short_detail": { + "description": "Short status text ESPN shows for the game, for example `Final`.", "example": "Final", "type": "string" }, "state": { + "description": "Game state code as ESPN gives it, for example `pre` before the game or `post` after it.", "example": "post", "type": "string" } @@ -59450,33 +62655,45 @@ "espn.GameSummaryResponse": { "properties": { "boxscore_teams": { + "description": "Team stat totals for the game, one entry per team. Omitted when none are available.", "items": { "$ref": "#/definitions/espn.BoxscoreTeam" }, "type": "array" }, "event": { + "description": "ESPN event id that was requested.", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "game": { - "$ref": "#/definitions/espn.Game" + "allOf": [ + { + "$ref": "#/definitions/espn.Game" + } + ], + "description": "Matchup details for the game: teams, scores and status." }, "league": { + "description": "League key that was requested, for example `nfl`.", "type": "string" }, "odds": { + "description": "Betting lines for the game, one entry per odds provider. Omitted when none are available.", "items": { "$ref": "#/definitions/espn.GameOdds" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "sport": { + "description": "Sport key that was requested, for example `football`.", "type": "string" } }, @@ -59485,21 +62702,27 @@ "espn.NewsArticle": { "properties": { "byline": { + "description": "Name of the article's author.", "type": "string" }, "description": { + "description": "Short summary of the article.", "type": "string" }, "headline": { + "description": "Article headline as shown on ESPN.", "type": "string" }, "link": { + "description": "URL of the article on ESPN.", "type": "string" }, "published": { + "description": "Time the article was published, in ISO 8601.", "type": "string" }, "type": { + "description": "Article type as ESPN labels it.", "type": "string" } }, @@ -59508,24 +62731,30 @@ "espn.NewsResponse": { "properties": { "articles": { + "description": "Recent news articles for the league, one entry per article.", "items": { "$ref": "#/definitions/espn.NewsArticle" }, "type": "array" }, "count": { + "description": "Number of articles returned.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "league": { + "description": "League key that was requested, for example `nfl`.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "sport": { + "description": "Sport key that was requested, for example `football`.", "type": "string" } }, @@ -59534,21 +62763,31 @@ "espn.RankEntry": { "properties": { "current": { + "description": "Team's rank in this poll.", "type": "integer" }, "points": { + "description": "Total poll points the team received. Omitted when ESPN gives none.", "type": "number" }, "previous": { + "description": "Team's rank in the previous poll. Omitted when ESPN gives none.", "type": "integer" }, "record": { + "description": "Team's win-loss record, for example `16-0`.", "type": "string" }, "team": { - "$ref": "#/definitions/espn.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/espn.TeamRef" + } + ], + "description": "Team holding this rank." }, "trend": { + "description": "Change in rank since the previous poll, as ESPN shows it.", "type": "string" } }, @@ -59557,15 +62796,18 @@ "espn.RankingPoll": { "properties": { "name": { + "description": "Full poll name, for example `AP Top 25`.", "type": "string" }, "ranks": { + "description": "Ranked teams in the poll, one entry per rank.", "items": { "$ref": "#/definitions/espn.RankEntry" }, "type": "array" }, "short_name": { + "description": "Short poll name as ESPN shows it.", "type": "string" } }, @@ -59574,24 +62816,34 @@ "espn.RankingsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "league": { + "description": "League key that was requested, for example `college-football`.", "type": "string" }, "polls": { + "description": "Ranking polls published for the league, one entry per poll.", "items": { "$ref": "#/definitions/espn.RankingPoll" }, "type": "array" }, "season": { - "$ref": "#/definitions/espn.Season" + "allOf": [ + { + "$ref": "#/definitions/espn.Season" + } + ], + "description": "Season the rankings belong to." }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "sport": { + "description": "Sport key that was requested, for example `football`.", "type": "string" } }, @@ -59600,27 +62852,35 @@ "espn.RosterAthlete": { "properties": { "age": { + "description": "Player's age in years.", "type": "integer" }, "display_height": { + "description": "Player's height as ESPN displays it.", "type": "string" }, "display_weight": { + "description": "Player's weight as ESPN displays it.", "type": "string" }, "experience_years": { + "description": "Number of years of experience the player has.", "type": "integer" }, "full_name": { + "description": "Player's full name.", "type": "string" }, "id": { + "description": "ESPN athlete id of the player.", "type": "string" }, "jersey": { + "description": "Player's jersey number, as a string.", "type": "string" }, "position": { + "description": "Player's position on the team.", "type": "string" } }, @@ -59629,31 +62889,43 @@ "espn.RosterResponse": { "properties": { "athletes": { + "description": "Players on the team roster, one entry per player.", "items": { "$ref": "#/definitions/espn.RosterAthlete" }, "type": "array" }, "coach": { + "description": "Name of the team's head coach. Omitted when ESPN lists none.", "type": "string" }, "count": { + "description": "Number of athletes returned.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "league": { + "description": "League key that was requested, for example `nfl`.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "sport": { + "description": "Sport key that was requested, for example `football`.", "type": "string" }, "team": { - "$ref": "#/definitions/espn.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/espn.TeamRef" + } + ], + "description": "Team the roster belongs to." } }, "type": "object" @@ -59700,13 +62972,16 @@ "espn.Season": { "properties": { "name": { + "description": "Season type name as ESPN shows it.", "type": "string" }, "type": { + "description": "Season type code: 1 preseason, 2 regular season, 3 postseason, 4 offseason.", "example": 2, "type": "integer" }, "year": { + "description": "Season year, for example `2024`.", "example": 2024, "type": "integer" } @@ -59779,45 +63054,57 @@ "espn.TeamDetail": { "properties": { "abbreviation": { + "description": "Short team code, for example `KC`.", "example": "KC", "type": "string" }, "alternate_color": { + "description": "Team's secondary colour code, as ESPN gives it.", "type": "string" }, "color": { + "description": "Team's primary colour code, as ESPN gives it.", "type": "string" }, "display_name": { + "description": "Full team name, for example `Kansas City Chiefs`.", "example": "Kansas City Chiefs", "type": "string" }, "id": { + "description": "ESPN team id, for example `12`. Use it as the `team` parameter of the team and roster endpoints.", "example": "12", "type": "string" }, "location": { + "description": "Team's city or region, for example `Kansas City`.", "example": "Kansas City", "type": "string" }, "logo": { + "description": "URL of the team logo image.", "type": "string" }, "name": { + "description": "Team nickname without the location, for example `Chiefs`.", "example": "Chiefs", "type": "string" }, "record": { + "description": "Team's overall win-loss record, for example `10-2`.", "type": "string" }, "short_display_name": { + "description": "Shortened team name, for example `Chiefs`.", "example": "Chiefs", "type": "string" }, "standing_summary": { + "description": "Short text describing the team's place in its division or conference standings.", "type": "string" }, "uid": { + "description": "ESPN's unique identifier string for the team.", "type": "string" } }, @@ -59826,39 +63113,49 @@ "espn.TeamRef": { "properties": { "abbreviation": { + "description": "Short team code, for example `KC`.", "example": "KC", "type": "string" }, "alternate_color": { + "description": "Team's secondary colour code, as ESPN gives it.", "type": "string" }, "color": { + "description": "Team's primary colour code, as ESPN gives it.", "type": "string" }, "display_name": { + "description": "Full team name, for example `Kansas City Chiefs`.", "example": "Kansas City Chiefs", "type": "string" }, "id": { + "description": "ESPN team id, for example `12`. Use it as the `team` parameter of the team and roster endpoints.", "example": "12", "type": "string" }, "location": { + "description": "Team's city or region, for example `Kansas City`.", "example": "Kansas City", "type": "string" }, "logo": { + "description": "URL of the team logo image.", "type": "string" }, "name": { + "description": "Team nickname without the location, for example `Chiefs`.", "example": "Chiefs", "type": "string" }, "short_display_name": { + "description": "Shortened team name, for example `Chiefs`.", "example": "Chiefs", "type": "string" }, "uid": { + "description": "ESPN's unique identifier string for the team.", "type": "string" } }, @@ -59867,19 +63164,28 @@ "espn.TeamResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "league": { + "description": "League key that was requested, for example `nfl`.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "sport": { + "description": "Sport key that was requested, for example `football`.", "type": "string" }, "team": { - "$ref": "#/definitions/espn.TeamDetail" + "allOf": [ + { + "$ref": "#/definitions/espn.TeamDetail" + } + ], + "description": "Details for the requested team, including record and standing." } }, "type": "object" @@ -59887,22 +63193,28 @@ "espn.TeamsResponse": { "properties": { "count": { + "description": "Number of teams returned.", "example": 32, "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "league": { + "description": "League key that was requested, for example `nfl`.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "sport": { + "description": "Sport key that was requested, for example `football`.", "type": "string" }, "teams": { + "description": "Teams in the league, one entry per team.", "items": { "$ref": "#/definitions/espn.TeamRef" }, @@ -64144,16 +67456,19 @@ "finance.CategoryNewsResponse": { "properties": { "category": { + "description": "Google Finance category id that was requested.", "example": "18", "type": "string" }, "items": { + "description": "News articles listed for the category.", "items": { "$ref": "#/definitions/finance.FinanceArticle" }, "type": "array" }, "offset": { + "description": "Number of articles skipped before this page.", "example": 0, "type": "integer" } @@ -64163,16 +67478,19 @@ "finance.CategoryStocksResponse": { "properties": { "category": { + "description": "Google Finance category id that was requested.", "example": "18", "type": "string" }, "items": { + "description": "Instruments listed for the category.", "items": { "$ref": "#/definitions/finance.Instrument" }, "type": "array" }, "offset": { + "description": "Number of instruments skipped before this page.", "example": 0, "type": "integer" } @@ -64182,19 +67500,27 @@ "finance.ChartResponse": { "properties": { "instrument": { - "$ref": "#/definitions/finance.Instrument" + "allOf": [ + { + "$ref": "#/definitions/finance.Instrument" + } + ], + "description": "Instrument the chart is for." }, "points": { + "description": "Chart data points in time order, each with a time, a price and a volume.", "items": { "$ref": "#/definitions/finance.Ticker" }, "type": "array" }, "previous_close": { + "description": "Closing price of the previous trading day.", "example": 236.35, "type": "number" }, "window": { + "description": "Chart window that was returned: `1d`, `5d`, `1m`, `6m`, `ytd`, `1y`, `5y` or `max`.", "example": "1m", "type": "string" } @@ -64204,13 +67530,19 @@ "finance.ClassificationResponse": { "properties": { "categories": { + "description": "Sector or category labels Google Finance assigns to the instrument, for example `Technology`.", "items": { "type": "string" }, "type": "array" }, "instrument": { - "$ref": "#/definitions/finance.Instrument" + "allOf": [ + { + "$ref": "#/definitions/finance.Instrument" + } + ], + "description": "Instrument the labels belong to." } }, "type": "object" @@ -64218,53 +67550,66 @@ "finance.CompanyInfo": { "properties": { "ceo": { + "description": "Name of the company's chief executive.", "example": "Tim Cook", "type": "string" }, "description": { + "description": "Company description shown on Google Finance.", "type": "string" }, "employees": { + "description": "Number of employees.", "example": 166000, "type": "integer" }, "fifty_two_week_high": { + "description": "Highest price over the last 52 weeks.", "example": 288.61, "type": "number" }, "fifty_two_week_low": { + "description": "Lowest price over the last 52 weeks.", "example": 169.21, "type": "number" }, "headquarters": { + "description": "Location of the company's headquarters, for example `Cupertino, CA, US`.", "example": "Cupertino, CA, US", "type": "string" }, "high": { + "description": "Highest price of the trading day.", "example": 272.4, "type": "number" }, "low": { + "description": "Lowest price of the trading day.", "example": 269.1, "type": "number" }, "market_cap": { + "description": "Market capitalisation of the company, as a plain number.", "example": 4010000000000, "type": "number" }, "open": { + "description": "Opening price of the trading day.", "example": 270.9, "type": "number" }, "pe_ratio": { + "description": "Price-to-earnings ratio of the stock.", "example": 34.56, "type": "number" }, "sector": { + "description": "Sector the company belongs to, for example `Technology`.", "example": "Technology", "type": "string" }, "volume": { + "description": "Number of shares traded, as Google Finance shows it.", "example": 41339643, "type": "integer" } @@ -64289,6 +67634,7 @@ "finance.EarningsCalendarResponse": { "properties": { "items": { + "description": "Upcoming earnings events from the Google Finance earnings calendar.", "items": { "$ref": "#/definitions/finance.EarningsEvent" }, @@ -64300,25 +67646,36 @@ "finance.EarningsEvent": { "properties": { "company_name": { + "description": "Name of the company reporting earnings.", "type": "string" }, "conference_phone": { + "description": "Phone number for the earnings call.", "type": "string" }, "conference_url": { + "description": "URL of the earnings call.", "type": "string" }, "event_time": { + "description": "Time of the earnings event, in UTC (RFC 3339).", "type": "string" }, "event_unix": { + "description": "Time of the earnings event, in Unix seconds.", "type": "integer" }, "fiscal_period": { + "description": "Fiscal period the earnings report covers.", "type": "string" }, "instrument": { - "$ref": "#/definitions/finance.Instrument" + "allOf": [ + { + "$ref": "#/definitions/finance.Instrument" + } + ], + "description": "Instrument of the company reporting earnings." } }, "type": "object" @@ -64326,30 +67683,37 @@ "finance.FinanceArticle": { "properties": { "published_at": { + "description": "Time the article was published, in UTC (RFC 3339).", "type": "string" }, "published_unix": { + "description": "Time the article was published, in Unix seconds.", "example": 1777077000, "type": "integer" }, "related": { + "description": "Instruments mentioned in the article.", "items": { "$ref": "#/definitions/finance.Instrument" }, "type": "array" }, "source": { + "description": "Name of the publisher of the article.", "example": "Reuters", "type": "string" }, "thumbnail_url": { + "description": "URL of the article thumbnail image.", "type": "string" }, "title": { + "description": "Headline of the article.", "example": "Apple announces an update", "type": "string" }, "url": { + "description": "URL of the article on the publisher's site.", "example": "https://example.com/news", "type": "string" } @@ -64359,61 +67723,80 @@ "finance.FinancialPeriod": { "properties": { "capital_expenditure": { + "description": "Capital expenditure for the period.", "type": "number" }, "ebitda": { + "description": "Earnings before interest, taxes, depreciation and amortisation for the period.", "type": "number" }, "eps": { + "description": "Earnings per share for the period.", "type": "number" }, "eps_diluted": { + "description": "Diluted earnings per share for the period.", "type": "number" }, "free_cash_flow": { + "description": "Free cash flow for the period.", "type": "number" }, "net_income": { + "description": "Net income for the period, in the response currency.", "type": "number" }, "operating_cash_flow": { + "description": "Cash flow from operations for the period.", "type": "number" }, "operating_income": { + "description": "Operating income for the period.", "type": "number" }, "operating_margin": { + "description": "Operating margin for the period.", "type": "number" }, "pe_ratio": { + "description": "Price-to-earnings ratio for the period.", "type": "number" }, "period": { + "description": "Period label: `annual` when the period ends in December, otherwise `quarterly`.", "example": "annual", "type": "string" }, "period_end": { + "description": "End date of the reporting period, in UTC (RFC 3339).", "type": "string" }, "profit_margin": { + "description": "Profit margin for the period.", "type": "number" }, "revenue": { + "description": "Total revenue for the period, in the response currency.", "type": "number" }, "revenue_growth_yoy": { + "description": "Revenue growth compared with the same period a year earlier.", "type": "number" }, "shares_outstanding": { + "description": "Number of shares outstanding for the period.", "type": "number" }, "total_assets": { + "description": "Total assets at the end of the period.", "type": "number" }, "total_equity": { + "description": "Total shareholder equity at the end of the period.", "type": "number" }, "total_liabilities": { + "description": "Total liabilities at the end of the period.", "type": "number" } }, @@ -64422,16 +67805,19 @@ "finance.FinancialsResponse": { "properties": { "annual": { + "description": "Annual financial statement rows.", "items": { "$ref": "#/definitions/finance.FinancialPeriod" }, "type": "array" }, "currency": { + "description": "Currency code the amounts are reported in, for example `USD`.", "example": "USD", "type": "string" }, "quarterly": { + "description": "Quarterly financial statement rows.", "items": { "$ref": "#/definitions/finance.FinancialPeriod" }, @@ -64531,61 +67917,80 @@ "finance.Instrument": { "properties": { "after_hours": { - "$ref": "#/definitions/finance.PriceChange" + "allOf": [ + { + "$ref": "#/definitions/finance.PriceChange" + } + ], + "description": "Price and change in after-hours trading." }, "change": { + "description": "Price change shown by Google Finance, in the same unit as `price`.", "example": -3.37, "type": "number" }, "change_percent": { + "description": "Price change as a percentage, as Google Finance shows it.", "example": -1.3, "type": "number" }, "country": { + "description": "Country code of the instrument, for example `US`.", "example": "US", "type": "string" }, "currency": { + "description": "Currency code the instrument is priced in, for example `USD`.", "example": "USD", "type": "string" }, "exchange": { + "description": "Exchange the instrument trades on, for example `NASDAQ`.", "example": "NASDAQ", "type": "string" }, "google_id": { + "description": "Google's id for the instrument, for example `/m/07zmbvf`.", "example": "/m/07zmbvf", "type": "string" }, "identifier": { + "description": "Instrument identifier in `TICKER:EXCHANGE` form, for example `AAPL:NASDAQ`. Use it as the `quote` path parameter.", "example": "AAPL:NASDAQ", "type": "string" }, "last_update_unix": { + "description": "Time of the latest price update, in Unix seconds.", "example": 1777077000, "type": "integer" }, "name": { + "description": "Instrument name, for example `Apple Inc`.", "example": "Apple Inc", "type": "string" }, "previous_close": { + "description": "Closing price of the previous trading day.", "example": 236.35, "type": "number" }, "price": { + "description": "Latest price of the instrument.", "example": 255.65, "type": "number" }, "ticker": { + "description": "Ticker symbol of the instrument.", "example": "AAPL", "type": "string" }, "timezone": { + "description": "IANA time zone of the instrument's market, for example `America/New_York`.", "example": "America/New_York", "type": "string" }, "type": { + "description": "Kind of instrument: `stock`, `index`, `crypto`, `etf` or `other`.", "example": "stock", "type": "string" } @@ -64694,22 +68099,26 @@ "finance.MarketMoversResponse": { "properties": { "categories": { + "description": "Numeric category ids the movers were filtered by.", "items": { "type": "integer" }, "type": "array" }, "count": { + "description": "Number of instruments requested.", "example": 20, "type": "integer" }, "items": { + "description": "Market mover instruments.", "items": { "$ref": "#/definitions/finance.Instrument" }, "type": "array" }, "offset": { + "description": "Number of instruments skipped before this page.", "example": 0, "type": "integer" } @@ -64744,14 +68153,17 @@ "finance.PriceChange": { "properties": { "change": { + "description": "Price change, in the same unit as `price`.", "example": -3.37, "type": "number" }, "change_percent": { + "description": "Price change as a percentage.", "example": -1.3, "type": "number" }, "price": { + "description": "Price in after-hours trading.", "example": 255.65, "type": "number" } @@ -64824,9 +68236,15 @@ "finance.RelatedResponse": { "properties": { "instrument": { - "$ref": "#/definitions/finance.Instrument" + "allOf": [ + { + "$ref": "#/definitions/finance.Instrument" + } + ], + "description": "Instrument the related list is for." }, "items": { + "description": "Instruments Google Finance lists as related.", "items": { "$ref": "#/definitions/finance.Instrument" }, @@ -64898,16 +68316,19 @@ "finance.TopStocksResponse": { "properties": { "items": { + "description": "Top instruments for the selected metric.", "items": { "$ref": "#/definitions/finance.Instrument" }, "type": "array" }, "metric": { + "description": "Google Finance metric id that was applied.", "example": 6, "type": "integer" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" } @@ -66729,18 +70150,23 @@ "fiverr.GigPackage": { "properties": { "delivery_days": { + "description": "Delivery time of the package, in days.", "type": "integer" }, "description": { + "description": "What the package includes, as written by the seller.", "type": "string" }, "price": { + "description": "Package price in dollars.", "type": "number" }, "tier": { + "description": "Name of the pricing tier, usually Basic, Standard or Premium.", "type": "string" }, "title": { + "description": "Title of the package as Fiverr shows it.", "type": "string" } }, @@ -66749,54 +70175,72 @@ "fiverr.GigResponse": { "properties": { "category_name": { + "description": "Name of the Fiverr category the gig is listed in.", "type": "string" }, "description": { + "description": "Gig description written by the seller.", "type": "string" }, "id": { + "description": "Fiverr gig id.", "type": "string" }, "images": { + "description": "URLs of the images in the gig gallery.", "items": { "type": "string" }, "type": "array" }, "is_pro": { + "description": "Whether the gig is part of Fiverr Pro.", "type": "boolean" }, "orders_in_queue": { + "description": "Number of orders currently in the queue for the gig.", "type": "integer" }, "packages": { + "description": "Pricing packages the gig offers, one per tier.", "items": { "$ref": "#/definitions/fiverr.GigPackage" }, "type": "array" }, "rating": { + "description": "Average rating of the gig.", "type": "number" }, "review_count": { + "description": "Number of reviews the gig has received.", "type": "integer" }, "seller": { - "$ref": "#/definitions/fiverr.GigSeller" + "allOf": [ + { + "$ref": "#/definitions/fiverr.GigSeller" + } + ], + "description": "Seller who offers the gig." }, "sub_category_name": { + "description": "Name of the Fiverr subcategory the gig is listed in.", "type": "string" }, "tags": { + "description": "Search tags attached to the gig.", "items": { "type": "string" }, "type": "array" }, "title": { + "description": "Gig title as shown on the gig page.", "type": "string" }, "url": { + "description": "URL of the gig page on Fiverr.", "type": "string" } }, @@ -66805,21 +70249,26 @@ "fiverr.GigSeller": { "properties": { "country": { + "description": "Seller's country code, such as `BD`.", "type": "string" }, "description": { + "description": "Seller's profile description.", "type": "string" }, "display_name": { + "description": "Seller's display name.", "type": "string" }, "languages": { + "description": "Language codes the seller speaks, such as `en`.", "items": { "type": "string" }, "type": "array" }, "level": { + "description": "Seller level: `new_seller`, `level_one_seller`, `level_two_seller` or `top_rated_seller`.", "enum": [ "new_seller", "level_one_seller", @@ -66829,18 +70278,23 @@ "type": "string" }, "profile_image": { + "description": "URL of the seller's profile image.", "type": "string" }, "rating": { + "description": "Seller's average rating.", "type": "number" }, "response_time_hours": { + "description": "Typical time the seller takes to respond, in hours.", "type": "integer" }, "review_count": { + "description": "Number of reviews the seller has received.", "type": "integer" }, "username": { + "description": "Seller's Fiverr username.", "type": "string" } }, @@ -75688,63 +79142,79 @@ "geocoding.Address": { "properties": { "ISO3166-2-lvl4": { + "description": "ISO 3166-2 code for the state or region level, such as `US-NY`.", "example": "US-NY", "type": "string" }, "ISO3166-2-lvl6": { + "description": "ISO 3166-2 code for the level-6 administrative area, when one exists.", "type": "string" }, "city": { + "description": "City of the place.", "example": "New York", "type": "string" }, "country": { + "description": "Country name of the place.", "example": "United States", "type": "string" }, "country_code": { + "description": "Two-letter country code of the place in lowercase, such as `us`.", "example": "us", "type": "string" }, "county": { + "description": "County of the place.", "example": "New York County", "type": "string" }, "house_number": { + "description": "House number of the place.", "example": "350", "type": "string" }, "neighbourhood": { + "description": "Neighbourhood of the place.", "example": "Koreatown", "type": "string" }, "office": { + "description": "Office name of the place, such as `Empire State Building`.", "example": "Empire State Building", "type": "string" }, "postcode": { + "description": "Postal code of the place.", "example": "10118", "type": "string" }, "road": { + "description": "Street name of the place.", "example": "5th Avenue", "type": "string" }, "state": { + "description": "State or region of the place.", "example": "New York", "type": "string" }, "state_district": { + "description": "State district of the place.", "type": "string" }, "suburb": { + "description": "Suburb or borough of the place.", "example": "Manhattan", "type": "string" }, "town": { + "description": "Town of the place.", "type": "string" }, "village": { + "description": "Village of the place.", "type": "string" } }, @@ -75768,13 +79238,20 @@ "geocoding.Place": { "properties": { "address": { - "$ref": "#/definitions/geocoding.Address" + "allOf": [ + { + "$ref": "#/definitions/geocoding.Address" + } + ], + "description": "Structured address breakdown of the place." }, "addresstype": { + "description": "Type of address the place represents, such as `office`.", "example": "office", "type": "string" }, "boundingbox": { + "description": "Bounding box of the place as four decimal-degree strings: south latitude, north latitude, west longitude, east longitude.", "example": [ "40.7479255", "40.7489585", @@ -75787,10 +79264,12 @@ "type": "array" }, "category": { + "description": "OpenStreetMap category of the place, such as `office`.", "example": "office", "type": "string" }, "display_name": { + "description": "Full address of the place as a comma-separated string.", "example": "Empire State Building, 350, 5th Avenue, New York, United States", "type": "string" }, @@ -75798,25 +79277,31 @@ "additionalProperties": { "type": "string" }, + "description": "Additional OpenStreetMap tags of the place. Present only when `extratags` is requested.", "type": "object" }, "importance": { + "description": "Importance score of the place; higher values mean a more prominent place.", "example": 0.5803438355141769, "type": "number" }, "lat": { + "description": "Latitude of the place in decimal degrees, as a string.", "example": "40.7484421", "type": "string" }, "licence": { + "description": "Licence notice for the OpenStreetMap data.", "example": "Data © OpenStreetMap contributors, ODbL 1.0. http://osm.org/copyright", "type": "string" }, "lon": { + "description": "Longitude of the place in decimal degrees, as a string.", "example": "-73.9856589", "type": "string" }, "name": { + "description": "Name of the place.", "example": "Empire State Building", "type": "string" }, @@ -75824,25 +79309,31 @@ "additionalProperties": { "type": "string" }, + "description": "Alternative names of the place. Present only when `namedetails` is requested.", "type": "object" }, "osm_id": { + "description": "OpenStreetMap id of the object.", "example": 34633854, "type": "integer" }, "osm_type": { + "description": "OpenStreetMap object type, such as `way`.", "example": "way", "type": "string" }, "place_id": { + "description": "Numeric id of the place in the geocoding results.", "example": 358220252, "type": "integer" }, "place_rank": { + "description": "Address rank of the place; for example `30` for a building.", "example": 30, "type": "integer" }, "type": { + "description": "OpenStreetMap type of the place within its `category`, such as `yes`.", "example": "yes", "type": "string" } @@ -75852,10 +79343,12 @@ "geocoding.SearchResponse": { "properties": { "query": { + "description": "Query that was run. For a structured search, the address fields joined with commas.", "example": "Empire State Building", "type": "string" }, "results": { + "description": "Places matching the query.", "items": { "$ref": "#/definitions/geocoding.Place" }, @@ -77927,51 +81420,65 @@ "goodreads.Edition": { "properties": { "asin": { + "description": "Amazon ASIN of the edition.", "type": "string" }, "authors": { + "description": "Names of the authors credited on the edition.", "items": { "type": "string" }, "type": "array" }, "average_rating": { + "description": "Average rating of the edition out of 5.", "example": 4.35, "type": "number" }, "book_id": { + "description": "Goodreads book id of this edition.", "type": "string" }, "format": { + "description": "Binding or format of the edition, such as `Hardcover`.", "example": "Hardcover", "type": "string" }, "isbn": { + "description": "ISBN-10 of the edition.", "type": "string" }, "isbn13": { + "description": "ISBN-13 of the edition.", "type": "string" }, "language": { + "description": "Language the edition is published in.", "type": "string" }, "pages": { + "description": "Number of pages in the edition.", "type": "integer" }, "publication_date": { + "description": "Publication date as Goodreads shows it, such as `October 14th 2008`.", "example": "October 14th 2008", "type": "string" }, "publisher": { + "description": "Publisher of the edition.", "type": "string" }, "ratings_count": { + "description": "Number of ratings the edition has received.", "type": "integer" }, "title": { + "description": "Title of the edition.", "type": "string" }, "uri": { + "description": "Goodreads URL of the edition's book page.", "type": "string" } }, @@ -77980,24 +81487,30 @@ "goodreads.EditionsResponse": { "properties": { "book_id": { + "description": "Goodreads book id that was requested.", "type": "string" }, "editions": { + "description": "Editions of the work on this page.", "items": { "$ref": "#/definitions/goodreads.Edition" }, "type": "array" }, "page": { + "description": "Page number of editions returned.", "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "title": { + "description": "Title of the work as shown on the editions page.", "type": "string" }, "work_id": { + "description": "Goodreads work id shared by all the editions listed.", "type": "string" } }, @@ -78192,15 +81705,18 @@ "goodreads.SearchResponse": { "properties": { "query": { + "description": "Search query that was run.", "type": "string" }, "results": { + "description": "Books matching the query.", "items": { "$ref": "#/definitions/goodreads.SearchResult" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -78209,34 +81725,44 @@ "goodreads.SearchResult": { "properties": { "author": { + "description": "Name of the book's author.", "type": "string" }, "author_id": { + "description": "Goodreads author id.", "type": "string" }, "average_rating": { + "description": "Average rating of the book out of 5.", "example": 4.35, "type": "number" }, "description": { + "description": "Book description, shortened to a short excerpt.", "type": "string" }, "id": { + "description": "Goodreads book id.", "type": "string" }, "image_url": { + "description": "URL of the book cover image.", "type": "string" }, "pages": { + "description": "Number of pages in the book.", "type": "integer" }, "ratings_count": { + "description": "Number of ratings the book has received.", "type": "integer" }, "title": { + "description": "Title of the book as Goodreads shows it.", "type": "string" }, "uri": { + "description": "Goodreads URL of the book page.", "type": "string" } }, @@ -79656,27 +83182,35 @@ "google.JobItem": { "properties": { "company": { + "description": "Name of the hiring company.", "type": "string" }, "employment": { + "description": "Employment type shown on the job card, for example full-time.", "type": "string" }, "location": { + "description": "Job location as shown on the job card.", "type": "string" }, "posted_at": { + "description": "How long ago the job was posted, as Google shows it, for example `3 days ago`.", "type": "string" }, "snippet": { + "description": "Short description text from the job card.", "type": "string" }, "source": { + "description": "Site or board Google lists the job from.", "type": "string" }, "title": { + "description": "Job title as shown on the job card.", "type": "string" }, "url": { + "description": "URL of the job posting.", "type": "string" } }, @@ -79705,18 +83239,22 @@ "google.JobsResponse": { "properties": { "location": { + "description": "Location filter that was applied. Omitted when none was given.", "example": "San Francisco, CA", "type": "string" }, "page": { + "description": "Page number returned, starting at 1.", "example": 1, "type": "integer" }, "query": { + "description": "Search query that was run.", "example": "software engineer", "type": "string" }, "results": { + "description": "Job postings on this page.", "items": { "$ref": "#/definitions/google.JobItem" }, @@ -79745,9 +83283,15 @@ "google.NewsResponse": { "properties": { "pagination": { - "$ref": "#/definitions/google.VerticalPagination" + "allOf": [ + { + "$ref": "#/definitions/google.VerticalPagination" + } + ], + "description": "Paging information for this response." }, "results": { + "description": "Google News results in Google's order.", "items": { "$ref": "#/definitions/google.NewsResult" }, @@ -79759,30 +83303,37 @@ "google.NewsResult": { "properties": { "age": { + "description": "How long ago the article was published, as Google shows it.", "example": "2 hours ago", "type": "string" }, "description": { + "description": "Article snippet as shown on the Google results page.", "example": "OpenAI announced an update.", "type": "string" }, "position": { + "description": "Rank of the article across all pages for the query, starting at 1.", "example": 1, "type": "integer" }, "source": { + "description": "Name of the publication, for example `Example News`.", "example": "Example News", "type": "string" }, "thumbnail": { + "description": "URL of the article thumbnail.", "example": "https://example.com/thumb.jpg", "type": "string" }, "title": { + "description": "Article headline as shown on the Google results page.", "example": "OpenAI announces update", "type": "string" }, "url": { + "description": "URL of the news article.", "example": "https://example.com/openai-news", "type": "string" } @@ -79803,10 +83354,12 @@ "google.Place": { "properties": { "address": { + "description": "Full street address of the place as shown on Google Maps.", "example": "250 Beach St, San Francisco, CA 94133", "type": "string" }, "amenities": { + "description": "Amenities Google Maps lists for the place, for example `Free Wi-Fi`.", "example": [ "['Free Wi-Fi'", " 'Air-conditioned'", @@ -79819,6 +83372,7 @@ "type": "array" }, "category": { + "description": "Business categories Google Maps assigns to the place.", "example": [ "['hotel']" ], @@ -79828,18 +83382,22 @@ "type": "array" }, "description": { + "description": "Description of the place from its Google Maps listing.", "example": "A 3-minute walk from Pier 41 in the Fisherman's Wharf district...", "type": "string" }, "image": { + "description": "URL of the main photo of the place.", "example": "https://lh5.googleusercontent.com/p/AF1QipP_O55x7gOwR3AaM09CVmzEUude9wMHMPwc--yp", "type": "string" }, "latitude": { + "description": "Latitude of the place in decimal degrees.", "example": 37.8077617, "type": "number" }, "locations": { + "description": "Location names Google Maps associates with the place, such as nearby areas.", "example": [ "['San Francisco'", " 'Los Angeles']" @@ -79850,18 +83408,22 @@ "type": "array" }, "longitude": { + "description": "Longitude of the place in decimal degrees.", "example": -122.4132228, "type": "number" }, "name": { + "description": "Name of the place as shown on Google Maps.", "example": "Hotel Zephyr San Francisco", "type": "string" }, "phone": { + "description": "Phone number of the place, as digits.", "example": "14156176565", "type": "string" }, "place_id": { + "description": "Google Place ID. Use it with the place, reviews and photos endpoints.", "example": "ChIJ99URUeOAhYAR0J5ZUxTesDQ", "type": "string" }, @@ -79872,14 +83434,17 @@ "x-nullable": true }, "review_count": { + "description": "Number of Google reviews for the place.", "example": 3213, "type": "integer" }, "url": { + "description": "Google Maps URL of the place.", "example": "https://www.google.com/maps/place/?q=place_id:ChIJ99URUeOAhYAR0J5ZUxTesDQ", "type": "string" }, "website": { + "description": "Website of the place.", "example": "https://www.hotelzephyrsf.com/", "type": "string" } @@ -79889,6 +83454,7 @@ "google.PlacePhoto": { "properties": { "height": { + "description": "Pixel height of the image at its URL. 0 when Google does not report it.", "example": 100, "type": "integer" }, @@ -80040,14 +83606,17 @@ "google.SuggestResponse": { "properties": { "query": { + "description": "Query prefix the suggestions were requested for.", "example": "openai", "type": "string" }, "source": { + "description": "Suggestion list used: `web`, `youtube` or `shopping`.", "example": "web", "type": "string" }, "suggestions": { + "description": "Search suggestions Google returned, in order.", "items": { "$ref": "#/definitions/google.SuggestionResult" }, @@ -80059,22 +83628,27 @@ "google.SuggestionResult": { "properties": { "description": { + "description": "Short descriptor Google shows beside the suggestion. Only set when the request used `rich=true`.", "example": "OpenAI Blog", "type": "string" }, "position": { + "description": "Rank of the suggestion in the list, starting at 1.", "example": 1, "type": "integer" }, "query": { + "description": "Suggested search query.", "example": "openai api", "type": "string" }, "relevance": { + "description": "Relevance score Google gives the suggestion. Only set when the request used `rich=true`.", "example": 601, "type": "integer" }, "type": { + "description": "Suggestion type as Google labels it, for example `QUERY`. Only set when the request used `rich=true`.", "example": "QUERY", "type": "string" } @@ -80084,14 +83658,17 @@ "google.VerticalPagination": { "properties": { "next_page": { + "description": "Page number of the next page. Omitted when there is no next page.", "example": 2, "type": "integer" }, "page": { + "description": "Page number of this response, starting at 1.", "example": 1, "type": "integer" }, "previous_page": { + "description": "Page number of the previous page. Omitted on the first page.", "example": 1, "type": "integer" } @@ -80101,34 +83678,42 @@ "google.VideoResult": { "properties": { "age": { + "description": "When the video was published, as Google shows it.", "example": "2 days ago", "type": "string" }, "description": { + "description": "Video description snippet as shown on the Google results page.", "example": "Watch the OpenAI DevDay keynote.", "type": "string" }, "duration": { + "description": "Video length as Google shows it, for example `45:12`.", "example": "45:12", "type": "string" }, "platform": { + "description": "Platform hosting the video, for example `YouTube`.", "example": "YouTube", "type": "string" }, "position": { + "description": "Rank of the video across all pages for the query, starting at 1.", "example": 1, "type": "integer" }, "thumbnail": { + "description": "URL of the video thumbnail.", "example": "https://example.com/thumb.jpg", "type": "string" }, "title": { + "description": "Video title as shown on the Google results page.", "example": "OpenAI DevDay keynote - YouTube", "type": "string" }, "url": { + "description": "URL of the video page.", "example": "https://www.youtube.com/watch?v=openai-devday", "type": "string" } @@ -80138,9 +83723,15 @@ "google.VideosResponse": { "properties": { "pagination": { - "$ref": "#/definitions/google.VerticalPagination" + "allOf": [ + { + "$ref": "#/definitions/google.VerticalPagination" + } + ], + "description": "Paging information for this response." }, "results": { + "description": "Video results in Google's order.", "items": { "$ref": "#/definitions/google.VideoResult" }, @@ -81038,36 +84629,44 @@ "googleplay.App": { "properties": { "ad_supported": { + "description": "Whether the app shows ads, as declared on its Google Play page.", "example": false, "type": "boolean" }, "android_max_version": { + "description": "Highest Android version the app supports, such as `15`. Shows `VARY` when none is listed.", "example": "15", "type": "string" }, "android_version": { + "description": "Minimum Android version the app requires, such as `8.0`.", "example": "8.0", "type": "string" }, "android_version_text": { + "description": "Minimum Android version as Google Play words it, such as `8.0 and up`. Shows `Varies with device` when none is listed.", "example": "8.0 and up", "type": "string" }, "app_id": { + "description": "Package name of the app on Google Play, such as `com.openai.chatgpt`. Use it with the other Google Play endpoints.", "example": "com.openai.chatgpt", "type": "string" }, "available": { + "description": "Whether the app is available on Google Play.", "example": true, "type": "boolean" }, "categories": { + "description": "Categories the app is listed under on Google Play.", "items": { "$ref": "#/definitions/googleplay.Category" }, "type": "array" }, "comments": { + "description": "Up to five user review texts shown on the app's details page.", "example": [ "[\"Great app\"", "\"Very useful\"]" @@ -81078,137 +84677,170 @@ "type": "array" }, "content_rating": { + "description": "Content rating label shown on the app page, such as `Teen`.", "example": "Teen", "type": "string" }, "content_rating_description": { + "description": "Content descriptors listed with the rating, such as `Users Interact, In-App Purchases`.", "example": "Users Interact, In-App Purchases", "type": "string" }, "currency": { + "description": "Currency code of the price, such as `USD`.", "example": "USD", "type": "string" }, "description": { + "description": "Full app description as plain text.", "example": "Introducing ChatGPT for Android: OpenAI's latest advancements at your fingertips.", "type": "string" }, "description_html": { + "description": "Full app description with its HTML formatting kept.", "example": "Introducing ChatGPT for Android: OpenAI's latest advancements at your fingertips.

This official app is free.", "type": "string" }, "developer": { + "description": "Name of the app's developer or publisher.", "example": "OpenAI", "type": "string" }, "developer_address": { + "description": "Developer's postal address as listed on the app page.", "example": "1455 3RD St, San Francisco, CA 94158-2210, United States", "type": "string" }, "developer_email": { + "description": "Developer's contact email as listed on the app page.", "example": "support@openai.com", "type": "string" }, "developer_id": { + "description": "Google Play developer ID. Use it with the developer endpoint.", "example": "7577165439232992817", "type": "string" }, "developer_internal_id": { + "description": "Google Play developer ID, the same value as `developer_id`.", "example": "7577165439232992817", "type": "string" }, "developer_legal_address": { + "description": "Developer's legal address as listed on the app page, on one line.", "example": "1455 3RD St, San Francisco, CA 94158-2210, United States", "type": "string" }, "developer_legal_email": { + "description": "Developer's legal contact email as listed on the app page.", "example": "support@openai.com", "type": "string" }, "developer_legal_name": { + "description": "Developer's registered legal name as listed on the app page.", "example": "OpenAI Opco, LLC", "type": "string" }, "developer_legal_phone_number": { + "description": "Developer's legal contact phone number as listed on the app page.", "example": "+1 415-231-2395", "type": "string" }, "developer_website": { + "description": "URL of the developer's website.", "example": "https://help.openai.com", "type": "string" }, "discount_end_date": { + "description": "End date of the current discounted price, when the app is on sale.", "example": "2026-03-31T23:59:59Z", "type": "string" }, "early_access_enabled": { + "description": "Whether the app is in Google Play early access.", "example": false, "type": "boolean" }, "features": { + "description": "Feature highlights listed on the app page, each with a title and description.", "items": { "$ref": "#/definitions/googleplay.Feature" }, "type": "array" }, "free": { + "description": "Whether the app is free to install.", "example": true, "type": "boolean" }, "genre": { + "description": "Main category name of the app, such as `Productivity`.", "example": "Productivity", "type": "string" }, "genre_id": { + "description": "ID of the app's main category, such as `PRODUCTIVITY`.", "example": "PRODUCTIVITY", "type": "string" }, "header_image": { + "description": "URL of the app's header image.", "example": "https://play-lh.googleusercontent.com/sample-header-image", "type": "string" }, "histogram": { + "description": "Number of ratings at each star level, keyed `1` to `5`.", "type": "object" }, "iap_range": { + "description": "Price range of in-app purchases as Google Play shows it, such as `$0.99 - $199.99 per item`.", "example": "$0.99 - $199.99 per item", "type": "string" }, "icon": { + "description": "URL of the app icon.", "example": "https://play-lh.googleusercontent.com/lmG9HlI0awHie0cyBieWXeNjpyXvHPwDBb8MNOVIyp0P8VEh95AiBHtUZSDVR3HLe3A", "type": "string" }, "installs": { + "description": "Install count band as Google Play shows it, such as `100,000,000+`.", "example": "100,000,000+", "type": "string" }, "is_available_in_play_pass": { + "description": "Whether the app is part of Google Play Pass.", "example": false, "type": "boolean" }, "max_installs": { + "description": "Larger of the two install-count figures Google Play reports for the app.", "example": 500000000, "type": "integer" }, "min_installs": { + "description": "Smaller of the two install-count figures Google Play reports, matching the `installs` band.", "example": 100000000, "type": "integer" }, "more_by_developer": { + "description": "Other apps from the same developer, from the \"More by\" list on the app page.", "items": { "$ref": "#/definitions/googleplay.ListApp" }, "type": "array" }, "offers_iap": { + "description": "Whether the app offers in-app purchases.", "example": true, "type": "boolean" }, "original_price": { + "description": "Price before the discount, in the same currency as `price`. Omitted when there is no original price.", "example": 4.99, "type": "number" }, "platforms": { + "description": "Device types the app supports, such as `phone`, `tablet` or `chromebook`.", "example": [ "[\"phone\"", "\"tablet\"", @@ -81220,50 +84852,62 @@ "type": "array" }, "preregister": { + "description": "Whether the app is open for pre-registration.", "example": false, "type": "boolean" }, "preview_video": { + "description": "URL of the app's preview video.", "example": "https://play.google.com/preview/sample", "type": "string" }, "price": { + "description": "Price of the app in the currency given by `currency`. `0` for free apps.", "example": 0, "type": "number" }, "price_text": { + "description": "Price as Google Play displays it, such as `Free`.", "example": "Free", "type": "string" }, "privacy_policy": { + "description": "URL of the app's privacy policy.", "example": "https://openai.com/policies/privacy-policy", "type": "string" }, "ratings": { + "description": "Total number of star ratings the app has received.", "example": 40123456, "type": "integer" }, "recent_changes": { + "description": "Text of the latest release notes.", "example": "Bug fixes and performance improvements.", "type": "string" }, "released": { + "description": "Release date of the app as listed on Google Play.", "example": "2023-07-19", "type": "string" }, "reviews": { + "description": "Total number of written reviews the app has received.", "example": 1234567, "type": "integer" }, "score": { + "description": "Average star rating of the app, out of 5.", "example": 4.8, "type": "number" }, "score_text": { + "description": "Average rating as Google Play displays it, such as `4.8`.", "example": "4.8", "type": "string" }, "screenshots": { + "description": "URLs of the app's screenshots.", "example": [ "[\"https://play-lh.googleusercontent.com/sample-screenshot-1\"", "\"https://play-lh.googleusercontent.com/sample-screenshot-2\"]" @@ -81274,36 +84918,44 @@ "type": "array" }, "similar_apps": { + "description": "Apps Google Play lists as similar to this one on the app page.", "items": { "$ref": "#/definitions/googleplay.ListApp" }, "type": "array" }, "summary": { + "description": "Short tagline shown under the app title.", "example": "The official app by OpenAI", "type": "string" }, "title": { + "description": "App name as shown on Google Play.", "example": "ChatGPT", "type": "string" }, "updated": { + "description": "Time the app was last updated, in Unix seconds.", "example": 1736899200, "type": "integer" }, "url": { + "description": "Google Play details page URL for the app, in the requested language and country.", "example": "https://play.google.com/store/apps/details?id=com.openai.chatgpt&hl=en&gl=us", "type": "string" }, "version": { + "description": "Current app version string. Shows `VARY` when the version differs by device.", "example": "1.2026.056", "type": "string" }, "video": { + "description": "URL of the app's promo video.", "example": "https://play.google.com/video/sample", "type": "string" }, "video_image": { + "description": "URL of the cover image for the app's promo video.", "example": "https://play-lh.googleusercontent.com/sample-video-cover", "type": "string" } @@ -81329,10 +84981,12 @@ "googleplay.Category": { "properties": { "id": { + "description": "Category ID on Google Play, such as `PRODUCTIVITY`.", "example": "PRODUCTIVITY", "type": "string" }, "name": { + "description": "Category name as shown on Google Play, such as `Productivity`.", "example": "Productivity", "type": "string" } @@ -81342,18 +84996,22 @@ "googleplay.DataSafetyEntry": { "properties": { "data": { + "description": "Kind of data covered by this disclosure, such as `Email address`.", "example": "Email address", "type": "string" }, "optional": { + "description": "Whether providing this data is optional for the user.", "example": false, "type": "boolean" }, "purpose": { + "description": "Reason the developer gives for using this data, such as `Analytics`.", "example": "Analytics", "type": "string" }, "type": { + "description": "Data group this item belongs to, such as `Personal info`.", "example": "Personal info", "type": "string" } @@ -81363,22 +85021,26 @@ "googleplay.DataSafetyResult": { "properties": { "collected_data": { + "description": "Data the app says it collects, one entry per data item.", "items": { "$ref": "#/definitions/googleplay.DataSafetyEntry" }, "type": "array" }, "privacy_policy_url": { + "description": "URL of the app's privacy policy.", "example": "https://openai.com/policies/privacy-policy", "type": "string" }, "security_practices": { + "description": "Security practices the developer declares for the app.", "items": { "$ref": "#/definitions/googleplay.SecurityPractice" }, "type": "array" }, "shared_data": { + "description": "Data the app says it shares with third parties, one entry per data item.", "items": { "$ref": "#/definitions/googleplay.DataSafetyEntry" }, @@ -81390,25 +85052,31 @@ "googleplay.DeviceRating": { "properties": { "device": { + "description": "Device type the rating breakdown covers: `phone`, `tablet` or `chromebook`.", "example": "phone", "type": "string" }, "histogram": { + "description": "Number of ratings at each star level on this device type, keyed `1` to `5`.", "type": "object" }, "ratings": { + "description": "Total number of star ratings on this device type.", "example": 326809, "type": "integer" }, "reviews": { + "description": "Total number of written reviews on this device type.", "example": 8946, "type": "integer" }, "score": { + "description": "Average star rating on this device type, out of 5.", "example": 4.7, "type": "number" }, "score_text": { + "description": "Average rating on this device type as Google Play displays it, such as `4.7`.", "example": "4.7", "type": "string" } @@ -81418,10 +85086,12 @@ "googleplay.Feature": { "properties": { "description": { + "description": "Short explanation of the feature.", "example": "Get answers, writing help, and image generation.", "type": "string" }, "title": { + "description": "Name of the feature highlight.", "example": "AI assistant", "type": "string" } @@ -81431,54 +85101,67 @@ "googleplay.ListApp": { "properties": { "app_id": { + "description": "Package name of the app on Google Play, such as `com.openai.chatgpt`.", "example": "com.openai.chatgpt", "type": "string" }, "currency": { + "description": "Currency code of the price, such as `USD`.", "example": "USD", "type": "string" }, "developer": { + "description": "Name of the app's developer or publisher.", "example": "OpenAI", "type": "string" }, "developer_id": { + "description": "Google Play developer ID. Use it with the developer endpoint.", "example": "7577165439232992817", "type": "string" }, "free": { + "description": "Whether the app is free to install.", "example": true, "type": "boolean" }, "icon": { + "description": "URL of the app icon.", "example": "https://play-lh.googleusercontent.com/lmG9HlI0awHie0cyBieWXeNjpyXvHPwDBb8MNOVIyp0P8VEh95AiBHtUZSDVR3HLe3A", "type": "string" }, "price": { + "description": "Price of the app in the currency given by `currency`. `0` for free apps.", "example": 0, "type": "number" }, "price_text": { + "description": "Price as Google Play displays it on the card, such as `FREE`.", "example": "FREE", "type": "string" }, "score": { + "description": "Average star rating of the app, out of 5.", "example": 4.8, "type": "number" }, "score_text": { + "description": "Average rating as Google Play displays it, such as `4.8`.", "example": "4.8", "type": "string" }, "summary": { + "description": "Short tagline shown under the app title.", "example": "The official app by OpenAI", "type": "string" }, "title": { + "description": "App name as shown on Google Play.", "example": "ChatGPT", "type": "string" }, "url": { + "description": "Google Play details page URL for the app.", "example": "https://play.google.com/store/apps/details?id=com.openai.chatgpt", "type": "string" } @@ -81488,60 +85171,74 @@ "googleplay.Review": { "properties": { "criterias": { + "description": "Per-criterion ratings attached to the review, when Google Play shows them.", "items": { "$ref": "#/definitions/googleplay.ReviewCriteria" }, "type": "array" }, "date": { + "description": "Time the review was posted, in UTC (RFC 3339).", "example": "2026-02-18T12:34:56Z", "type": "string" }, "id": { + "description": "Google Play review ID.", "example": "5b4e4d89-ce22-4f13-b676-bb3a7aafe278", "type": "string" }, "reply_date": { + "description": "Time the developer replied, in UTC (RFC 3339).", "example": "2026-02-20T08:00:00Z", "type": "string" }, "reply_text": { + "description": "Developer's reply to the review. `null` when there is no reply.", "example": "Thanks for the feedback!", "type": "string" }, "score": { + "description": "Star rating the reviewer gave, from 1 to 5.", "example": 5, "type": "integer" }, "score_text": { + "description": "Star rating as a string, such as `5`.", "example": "5", "type": "string" }, "text": { + "description": "Body text of the review.", "example": "Very helpful for quick answers and brainstorming.", "type": "string" }, "thumbs_up": { + "description": "Number of users who marked the review as helpful.", "example": 124, "type": "integer" }, "title": { + "description": "Review headline. Currently always `null`.", "example": "Great app", "type": "string" }, "url": { + "description": "Google Play link to this review.", "example": "https://play.google.com/store/apps/details?id=com.openai.chatgpt&reviewId=5b4e4d89-ce22-4f13-b676-bb3a7aafe278", "type": "string" }, "user_image": { + "description": "URL of the reviewer's profile picture.", "example": "https://play-lh.googleusercontent.com/a-/ALV-UjVsample", "type": "string" }, "user_name": { + "description": "Display name of the reviewer.", "example": "Jane Doe", "type": "string" }, "version": { + "description": "App version the review was written for. `null` when not shown.", "example": "1.2026.056", "type": "string" } @@ -81551,10 +85248,12 @@ "googleplay.ReviewCriteria": { "properties": { "criteria": { + "description": "Name of the aspect being rated, such as `Accuracy`.", "example": "Accuracy", "type": "string" }, "rating": { + "description": "Rating given for this aspect. `null` when no rating is shown.", "example": 5, "type": "integer" } @@ -81564,12 +85263,14 @@ "googleplay.ReviewsResult": { "properties": { "data": { + "description": "Reviews on this page, newest or sorted as requested.", "items": { "$ref": "#/definitions/googleplay.Review" }, "type": "array" }, "next_pagination_token": { + "description": "Token to pass as `next_pagination_token` to fetch the next page of reviews.", "example": "CscBIr4BAb_yELvAqtSacgExc3y_bO88_b1Q", "type": "string" } @@ -81579,10 +85280,12 @@ "googleplay.SecurityPractice": { "properties": { "description": { + "description": "Longer explanation of the security practice.", "example": "Your data is transferred over a secure connection", "type": "string" }, "practice": { + "description": "Security practice declared by the developer, such as `Data is encrypted in transit`.", "example": "Data is encrypted in transit", "type": "string" } @@ -91202,14 +94905,17 @@ "imdb.AlternateTitle": { "properties": { "country": { + "description": "Country or region the alternate title is used in.", "example": "United States", "type": "string" }, "title": { + "description": "Alternate title as listed for that country.", "example": "Inception", "type": "string" }, "type": { + "description": "Kind of alternate title, when IMDb gives one.", "example": "original title", "type": "string" } @@ -91219,41 +94925,50 @@ "imdb.AwardItem": { "properties": { "award": { + "description": "Name of the award given, for example `Oscar`.", "example": "Oscar", "type": "string" }, "category": { + "description": "Award category, for example `Best Motion Picture of the Year`.", "example": "Best Motion Picture of the Year", "type": "string" }, "event": { + "description": "Name of the awards event, for example `Academy Awards, USA`.", "example": "Academy Awards, USA", "type": "string" }, "notes": { + "description": "Extra note IMDb attaches to the award entry.", "type": "string" }, "public_signals": { + "description": "Number of details filled in on this entry, counted across event, year, category, result, award, recipients, titles and notes.", "example": 6, "type": "integer" }, "recipients": { + "description": "People who received the award.", "items": { "$ref": "#/definitions/imdb.Person" }, "type": "array" }, "result": { + "description": "Outcome of the entry, for example `nomination`.", "example": "nomination", "type": "string" }, "titles": { + "description": "Titles the award entry refers to.", "items": { "$ref": "#/definitions/imdb.AwardTitle" }, "type": "array" }, "year": { + "description": "Year of the award entry, for example `2011`.", "example": "2011", "type": "string" } @@ -91263,14 +94978,17 @@ "imdb.AwardTitle": { "properties": { "id": { + "description": "IMDb title ID, for example `tt1375666`.", "example": "tt1375666", "type": "string" }, "title": { + "description": "Name of the title the award entry refers to.", "example": "Inception", "type": "string" }, "url": { + "description": "IMDb page URL of the title.", "example": "https://www.imdb.com/title/tt1375666/", "type": "string" } @@ -91358,18 +95076,22 @@ "imdb.CompanyItem": { "properties": { "name": { + "description": "Company name as listed on IMDb.", "example": "Warner Bros.", "type": "string" }, "note": { + "description": "Note shown next to the company, for example `presents`.", "example": "presents", "type": "string" }, "public_signals": { + "description": "Number of details filled in on this entry, counted across name, URL and note.", "example": 2, "type": "integer" }, "url": { + "description": "IMDb page URL of the company.", "example": "https://www.imdb.com/company/co0002663/", "type": "string" } @@ -91379,16 +95101,19 @@ "imdb.CompanySection": { "properties": { "companies": { + "description": "Companies listed in this section.", "items": { "$ref": "#/definitions/imdb.CompanyItem" }, "type": "array" }, "name": { + "description": "Section heading, for example `Production Companies`.", "example": "Production Companies", "type": "string" }, "slug": { + "description": "Lowercase, hyphenated form of the section name, for example `production-companies`.", "example": "production-companies", "type": "string" } @@ -91518,41 +95243,51 @@ "imdb.EpisodeItem": { "properties": { "air_date": { + "description": "Air date as IMDb shows it, for example `17 Apr 2011`, or just the year when only that is known. Omitted when IMDb has no date.", "example": "17 Apr 2011", "type": "string" }, "episode": { + "description": "Episode number within the season.", "example": 1, "type": "integer" }, "id": { + "description": "IMDb title ID of the episode.", "example": "tt1480055", "type": "string" }, "plot": { + "description": "Plot summary of the episode.", "type": "string" }, "public_signals": { + "description": "Number of details filled in on this episode, counted across title, season, episode number, rating, vote count and plot.", "example": 6, "type": "integer" }, "rating_count": { + "description": "Number of votes behind the episode rating.", "example": 52000, "type": "integer" }, "rating_value": { + "description": "Average IMDb user rating of the episode.", "example": 8.9, "type": "number" }, "season": { + "description": "Season number of the episode.", "example": 1, "type": "integer" }, "title": { + "description": "Title of the episode as shown on IMDb.", "example": "Winter Is Coming", "type": "string" }, "url": { + "description": "IMDb page URL of the episode.", "example": "https://www.imdb.com/title/tt1480055/", "type": "string" } @@ -91562,44 +95297,54 @@ "imdb.EpisodesResponse": { "properties": { "episodes": { + "description": "Episodes of the requested season, or of the first season when none was requested.", "items": { "$ref": "#/definitions/imdb.EpisodeItem" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "has_more": { + "description": "`true` when IMDb lists more episodes for the season than were returned.", "example": true, "type": "boolean" }, "id": { + "description": "IMDb title ID of the series, for example `tt0944947`.", "example": "tt0944947", "type": "string" }, "limit": { + "description": "Maximum number of episodes requested.", "example": 10, "type": "integer" }, "public_page_derived": { + "description": "Always `true`. The data comes from IMDb's public pages.", "example": true, "type": "boolean" }, "season": { + "description": "Season number that was requested. Omitted when no season was requested.", "example": 1, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/title/tt0944947/episodes/?season=1", "type": "string" }, "total": { + "description": "Number of episodes IMDb lists for the season.", "example": 11, "type": "integer" }, "url": { + "description": "IMDb episodes page of the series.", "example": "https://www.imdb.com/title/tt0944947/episodes/", "type": "string" } @@ -91786,14 +95531,17 @@ "imdb.KeywordItem": { "properties": { "keyword": { + "description": "Keyword IMDb has tagged the title with.", "example": "dream", "type": "string" }, "public_signals": { + "description": "Number of details filled in on this entry, counted across keyword and URL.", "example": 2, "type": "integer" }, "url": { + "description": "IMDb page that lists titles with this keyword.", "example": "https://www.imdb.com/search/keyword/?keywords=dream", "type": "string" } @@ -91817,14 +95565,17 @@ "imdb.LocationItem": { "properties": { "location": { + "description": "Filming location name, for example `Paris, France`.", "example": "Paris, France", "type": "string" }, "note": { + "description": "Note IMDb adds about the location, such as the scene shot there.", "example": "Ariadne learns to build dreams", "type": "string" }, "public_signals": { + "description": "Number of details filled in on this entry, counted across location and note.", "example": 2, "type": "integer" } @@ -91847,36 +95598,44 @@ "imdb.NameAwardsResponse": { "properties": { "awards": { + "description": "Award entries IMDb lists for the person.", "items": { "$ref": "#/definitions/imdb.AwardItem" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "has_more": { + "description": "`true` when IMDb lists more award entries than were returned.", "example": true, "type": "boolean" }, "id": { + "description": "IMDb name ID of the person, for example `nm0634240`.", "example": "nm0634240", "type": "string" }, "public_page_derived": { + "description": "Always `true`. The data comes from IMDb's public pages.", "example": true, "type": "boolean" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/name/nm0634240/awards/", "type": "string" }, "total": { + "description": "Number of award entries IMDb lists for the person.", "example": 64, "type": "integer" }, "url": { + "description": "IMDb awards page of the person.", "example": "https://www.imdb.com/name/nm0634240/awards/", "type": "string" } @@ -91886,26 +95645,32 @@ "imdb.NameCreditItem": { "properties": { "episodes": { + "description": "Number of episodes the person is credited on, as IMDb words it, for example `3 episodes`.", "example": "3 episodes", "type": "string" }, "id": { + "description": "IMDb title ID of the credited title.", "example": "tt1375666", "type": "string" }, "role": { + "description": "Role or character credited for the person on the title, for example `Self`.", "example": "directed by", "type": "string" }, "title": { + "description": "Name of the credited title.", "example": "Inception", "type": "string" }, "url": { + "description": "IMDb page URL of the credited title.", "example": "https://www.imdb.com/title/tt1375666/", "type": "string" }, "year": { + "description": "Release year of the credited title.", "example": "2010", "type": "string" } @@ -91915,24 +95680,29 @@ "imdb.NameCreditSection": { "properties": { "credits": { + "description": "Credits the person has in this section.", "items": { "$ref": "#/definitions/imdb.NameCreditItem" }, "type": "array" }, "has_more": { + "description": "`true` when IMDb lists more credits in this section than were returned.", "example": true, "type": "boolean" }, "name": { + "description": "Section heading, usually the job, for example `Director`.", "example": "Director", "type": "string" }, "slug": { + "description": "Lowercase, hyphenated form of the section name, for example `director`.", "example": "director", "type": "string" }, "total": { + "description": "Number of credits IMDb lists in this section.", "example": 152, "type": "integer" } @@ -91942,28 +95712,34 @@ "imdb.NameCreditsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "id": { + "description": "IMDb name ID of the person, for example `nm0634240`.", "example": "nm0634240", "type": "string" }, "public_page_derived": { + "description": "Always `true`. The data comes from IMDb's public pages.", "example": true, "type": "boolean" }, "sections": { + "description": "Credits of the person, grouped by job.", "items": { "$ref": "#/definitions/imdb.NameCreditSection" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/name/nm0634240/", "type": "string" }, "url": { + "description": "IMDb page URL of the person.", "example": "https://www.imdb.com/name/nm0634240/", "type": "string" } @@ -92028,22 +95804,27 @@ "imdb.NameKnownForItem": { "properties": { "category": { + "description": "Credit category of the person on this title, for example `Director`.", "example": "Director", "type": "string" }, "id": { + "description": "IMDb title ID of the title.", "example": "tt1375666", "type": "string" }, "title": { + "description": "Name of the title.", "example": "Inception", "type": "string" }, "url": { + "description": "IMDb page URL of the title.", "example": "https://www.imdb.com/title/tt1375666/", "type": "string" }, "year": { + "description": "Release year of the title.", "example": "2010", "type": "string" } @@ -92053,55 +95834,68 @@ "imdb.NameResponse": { "properties": { "bio": { + "description": "Full biography text of the person.", "type": "string" }, "birth_date": { + "description": "Date of birth as `YYYY-MM-DD`, or `YYYY-MM` or `YYYY` when IMDb records only part of it.", "example": "1970-07-30", "type": "string" }, "birth_place": { + "description": "Place of birth, for example `London, England, UK`.", "example": "London, England, UK", "type": "string" }, "death_date": { + "description": "Date of death as `YYYY-MM-DD`, or `YYYY-MM` or `YYYY` when IMDb records only part of it.", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "id": { + "description": "IMDb name ID of the person, for example `nm0634240`.", "example": "nm0634240", "type": "string" }, "image_url": { + "description": "URL of the person's main photo.", "type": "string" }, "known_for": { + "description": "Titles IMDb lists the person as known for.", "items": { "$ref": "#/definitions/imdb.NameKnownForItem" }, "type": "array" }, "name": { + "description": "Name of the person as shown on IMDb.", "example": "Christopher Nolan", "type": "string" }, "professions": { + "description": "Professions IMDb lists for the person.", "items": { "type": "string" }, "type": "array" }, "public_page_derived": { + "description": "Always `true`. The data comes from IMDb's public pages.", "example": true, "type": "boolean" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/name/nm0634240/", "type": "string" }, "url": { + "description": "IMDb page URL of the person.", "example": "https://www.imdb.com/name/nm0634240/", "type": "string" } @@ -92174,20 +95968,24 @@ "imdb.ParentalGuideCategory": { "properties": { "items": { + "description": "Guide entries for this category. Entries IMDb files as spoilers are not included.", "items": { "type": "string" }, "type": "array" }, "name": { + "description": "Category name, for example `Violence & Gore`.", "example": "Violence & Gore", "type": "string" }, "severity": { + "description": "Community severity vote: `none`, `mild`, `moderate` or `severe`. Omitted when IMDb has no vote.", "example": "moderate", "type": "string" }, "slug": { + "description": "Lowercase, hyphenated form of the category name, for example `violence-gore`.", "example": "violence-gore", "type": "string" } @@ -92197,31 +95995,42 @@ "imdb.ParentalGuideResponse": { "properties": { "categories": { + "description": "Parental guide categories IMDb lists for the title.", "items": { "$ref": "#/definitions/imdb.ParentalGuideCategory" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "id": { + "description": "IMDb title ID, for example `tt1375666`.", "example": "tt1375666", "type": "string" }, "public_page_derived": { + "description": "Always `true`. The data comes from IMDb's public pages.", "example": true, "type": "boolean" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/title/tt1375666/parentalguide/", "type": "string" }, "summary": { - "$ref": "#/definitions/imdb.ParentalGuideSummary" + "allOf": [ + { + "$ref": "#/definitions/imdb.ParentalGuideSummary" + } + ], + "description": "Counts and highest severity across all returned categories." }, "url": { + "description": "IMDb parental guide page of the title.", "example": "https://www.imdb.com/title/tt1375666/parentalguide/", "type": "string" } @@ -92231,24 +96040,29 @@ "imdb.ParentalGuideSummary": { "properties": { "categories_count": { + "description": "Number of guide categories returned.", "example": 5, "type": "integer" }, "highest_severity": { + "description": "Highest severity among the categories: `none`, `mild`, `moderate` or `severe`.", "example": "severe", "type": "string" }, "item_count": { + "description": "Total number of guide entries across all categories.", "example": 24, "type": "integer" }, "present_categories": { + "description": "Slugs of the categories returned.", "items": { "type": "string" }, "type": "array" }, "public_page_signals": { + "description": "Count of details in the guide: entries, named categories and categories that have a severity.", "example": 12, "type": "integer" }, @@ -92256,6 +96070,7 @@ "additionalProperties": { "type": "integer" }, + "description": "Number of categories at each severity level, keyed by severity.", "type": "object" } }, @@ -92264,10 +96079,12 @@ "imdb.Person": { "properties": { "name": { + "description": "Name of the person.", "example": "Christopher Nolan", "type": "string" }, "url": { + "description": "IMDb page URL of the person.", "example": "https://www.imdb.com/name/nm0634240/", "type": "string" } @@ -92282,14 +96099,17 @@ "type": "string" }, "public_signals": { + "description": "Number of details filled in on this entry, counted across text and spoiler marker.", "example": 1, "type": "integer" }, "spoiler": { + "description": "`true` when IMDb marks the entry as a spoiler.", "example": false, "type": "boolean" }, "text": { + "description": "Text of the trivia, goof or quote entry.", "example": "The hallway fight was filmed with a rotating set.", "type": "string" } @@ -92407,14 +96227,17 @@ "imdb.ReleaseInfoItem": { "properties": { "country": { + "description": "Country or region of the release.", "example": "United States", "type": "string" }, "date": { + "description": "Release date as IMDb shows it, for example `16 July 2010`.", "example": "16 July 2010", "type": "string" }, "note": { + "description": "Note on the release, for example `theatrical`.", "example": "theatrical", "type": "string" } @@ -92424,46 +96247,56 @@ "imdb.ReleaseInfoResponse": { "properties": { "alternate_titles": { + "description": "Alternate titles (also known as) IMDb lists for the title.", "items": { "$ref": "#/definitions/imdb.AlternateTitle" }, "type": "array" }, "alternate_titles_total": { + "description": "Number of alternate titles IMDb lists for the title.", "example": 82, "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "has_more": { + "description": "`true` when IMDb lists more release dates than were returned.", "example": true, "type": "boolean" }, "id": { + "description": "IMDb title ID, for example `tt1375666`.", "example": "tt1375666", "type": "string" }, "public_page_derived": { + "description": "Always `true`. The data comes from IMDb's public pages.", "example": true, "type": "boolean" }, "releases": { + "description": "Release dates of the title by country.", "items": { "$ref": "#/definitions/imdb.ReleaseInfoItem" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/title/tt1375666/releaseinfo/", "type": "string" }, "total": { + "description": "Number of release dates IMDb lists for the title.", "example": 71, "type": "integer" }, "url": { + "description": "IMDb release info page of the title.", "example": "https://www.imdb.com/title/tt1375666/releaseinfo/", "type": "string" } @@ -92473,49 +96306,61 @@ "imdb.ReviewItem": { "properties": { "author": { + "description": "Username of the reviewer.", "example": "movie_fan", "type": "string" }, "date": { + "description": "Date the review was posted, for example `2024-01-02`.", "example": "2024-01-02", "type": "string" }, "helpful_votes": { + "description": "Number of users who marked the review as helpful.", "example": 123, "type": "integer" }, "helpfulness": { + "description": "Share of votes that marked the review as helpful, as a percentage such as `82%`.", "example": "82%", "type": "string" }, "id": { + "description": "IMDb review ID, for example `rw1234567`.", "example": "rw1234567", "type": "string" }, "public_signals": { + "description": "Number of details filled in on this review, counted across title, author, date, rating, text and votes.", "example": 5, "type": "integer" }, "rating": { + "description": "Rating the reviewer gave the title.", "example": 9, "type": "integer" }, "spoiler": { + "description": "`true` when the review is marked as containing spoilers.", "example": false, "type": "boolean" }, "text": { + "description": "Full text of the review.", "type": "string" }, "title": { + "description": "Headline the reviewer gave the review.", "example": "A smart blockbuster", "type": "string" }, "total_votes": { + "description": "Total number of helpful and not helpful votes the review received.", "example": 150, "type": "integer" }, "url": { + "description": "IMDb page URL of the review.", "example": "https://www.imdb.com/review/rw1234567/", "type": "string" } @@ -92525,40 +96370,49 @@ "imdb.ReviewsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "has_more": { + "description": "`true` when IMDb lists more reviews than were returned.", "example": true, "type": "boolean" }, "id": { + "description": "IMDb title ID, for example `tt1375666`.", "example": "tt1375666", "type": "string" }, "limit": { + "description": "Maximum number of reviews requested.", "example": 10, "type": "integer" }, "public_page_derived": { + "description": "Always `true`. The data comes from IMDb's public pages.", "example": true, "type": "boolean" }, "reviews": { + "description": "User reviews of the title.", "items": { "$ref": "#/definitions/imdb.ReviewItem" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/title/tt1375666/reviews/", "type": "string" }, "total": { + "description": "Number of reviews IMDb lists for the title.", "example": 11940, "type": "integer" }, "url": { + "description": "IMDb reviews page of the title.", "example": "https://www.imdb.com/title/tt1375666/reviews/", "type": "string" } @@ -92568,28 +96422,35 @@ "imdb.SearchItem": { "properties": { "description": { + "description": "Lead cast of the title, when IMDb shows it.", "type": "string" }, "id": { + "description": "IMDb title ID, for example `tt1375666`.", "example": "tt1375666", "type": "string" }, "image_url": { + "description": "URL of the image IMDb shows for the title in search results.", "type": "string" }, "title": { + "description": "Title name as shown in search results.", "example": "Inception", "type": "string" }, "title_type": { + "description": "Kind of title, for example `Movie`.", "example": "Movie", "type": "string" }, "url": { + "description": "IMDb page URL of the title.", "example": "https://www.imdb.com/title/tt1375666/", "type": "string" }, "year": { + "description": "Release year of the title.", "example": "2010", "type": "string" } @@ -92599,24 +96460,29 @@ "imdb.SearchResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "limit": { + "description": "Maximum number of results requested.", "example": 10, "type": "integer" }, "query": { + "description": "Search query that was run.", "example": "inception", "type": "string" }, "results": { + "description": "Titles matching the query.", "items": { "$ref": "#/definitions/imdb.SearchItem" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/find/?q=inception&s=tt", "type": "string" } @@ -92779,14 +96645,17 @@ "imdb.TechnicalSpecItem": { "properties": { "name": { + "description": "Name of the technical spec, for example `Runtime`.", "example": "Runtime", "type": "string" }, "slug": { + "description": "Lowercase, hyphenated form of the spec name, for example `runtime`.", "example": "runtime", "type": "string" }, "values": { + "description": "Values IMDb lists for the spec.", "items": { "type": "string" }, @@ -92798,28 +96667,34 @@ "imdb.TechnicalSpecsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "id": { + "description": "IMDb title ID, for example `tt1375666`.", "example": "tt1375666", "type": "string" }, "public_page_derived": { + "description": "Always `true`. The data comes from IMDb's public pages.", "example": true, "type": "boolean" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/title/tt1375666/technical/", "type": "string" }, "specs": { + "description": "Technical specifications IMDb lists for the title.", "items": { "$ref": "#/definitions/imdb.TechnicalSpecItem" }, "type": "array" }, "url": { + "description": "IMDb technical specs page of the title.", "example": "https://www.imdb.com/title/tt1375666/technical/", "type": "string" } @@ -93050,58 +96925,70 @@ "imdb.TitlePublicFactsResponse": { "properties": { "company_credits": { + "description": "Company credits grouped by section. Filled when `type` is `company_credits`.", "items": { "$ref": "#/definitions/imdb.CompanySection" }, "type": "array" }, "facts": { + "description": "Trivia, goof or quote entries. Filled when `type` is `trivia`, `goofs` or `quotes`.", "items": { "$ref": "#/definitions/imdb.PublicFactItem" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "has_more": { + "description": "`true` when IMDb lists more entries of this type than were returned.", "example": true, "type": "boolean" }, "id": { + "description": "IMDb title ID, for example `tt1375666`.", "example": "tt1375666", "type": "string" }, "keywords": { + "description": "Keywords tagged on the title. Filled when `type` is `keywords`.", "items": { "$ref": "#/definitions/imdb.KeywordItem" }, "type": "array" }, "locations": { + "description": "Filming locations of the title. Filled when `type` is `filming_locations`.", "items": { "$ref": "#/definitions/imdb.LocationItem" }, "type": "array" }, "public_page_derived": { + "description": "Always `true`. The data comes from IMDb's public pages.", "example": true, "type": "boolean" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/title/tt1375666/trivia/", "type": "string" }, "total": { + "description": "Number of entries IMDb lists for this type.", "example": 21, "type": "integer" }, "type": { + "description": "Kind of data returned: `trivia`, `goofs`, `quotes`, `keywords`, `filming_locations` or `company_credits`.", "example": "trivia", "type": "string" }, "url": { + "description": "IMDb page of the title for this kind of data.", "example": "https://www.imdb.com/title/tt1375666/trivia/", "type": "string" } @@ -93111,26 +96998,31 @@ "imdb.TitleResponse": { "properties": { "cast": { + "description": "Up to three lead cast members.", "items": { "$ref": "#/definitions/imdb.Person" }, "type": "array" }, "content_rating": { + "description": "Age rating shown for the title, for example `PG-13`.", "example": "PG-13", "type": "string" }, "directors": { + "description": "Directors of the title.", "items": { "$ref": "#/definitions/imdb.Person" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "genres": { + "description": "Genres IMDb lists for the title.", "example": [ "Action" ], @@ -93140,56 +97032,70 @@ "type": "array" }, "id": { + "description": "IMDb title ID, for example `tt1375666`.", "example": "tt1375666", "type": "string" }, "image_url": { + "description": "URL of the title's main image.", "type": "string" }, "plot": { + "description": "Plot summary of the title.", "type": "string" }, "popularity_rank": { + "description": "Current IMDb popularity rank of the title.", "example": 82, "type": "integer" }, "public_page_derived": { + "description": "Always `true`. The data comes from IMDb's public pages.", "example": true, "type": "boolean" }, "rating_count": { + "description": "Number of user ratings behind the rating value.", "example": 2600000, "type": "integer" }, "rating_value": { + "description": "Average IMDb user rating of the title.", "example": 8.8, "type": "number" }, "release_date": { + "description": "Release date of the title, for example `2010-07-16`.", "example": "2010-07-16", "type": "string" }, "runtime_minutes": { + "description": "Running time of the title in minutes.", "example": 148, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.imdb.com/title/tt1375666/", "type": "string" }, "title": { + "description": "Title name as shown on IMDb.", "example": "Inception", "type": "string" }, "title_type": { + "description": "Kind of title, for example `Movie`.", "example": "Movie", "type": "string" }, "url": { + "description": "IMDb page URL of the title.", "example": "https://www.imdb.com/title/tt1375666/", "type": "string" }, "year": { + "description": "Release year of the title.", "example": "2010", "type": "string" } @@ -94986,22 +98892,27 @@ "instagram.BusinessAddress": { "properties": { "city_name": { + "description": "City and region of the business location, such as `Mountain View, California`.", "example": "Mountain View, California", "type": "string" }, "latitude": { + "description": "Latitude of the business location, in decimal degrees.", "example": 37.4221, "type": "number" }, "longitude": { + "description": "Longitude of the business location, in decimal degrees.", "example": -122.08432, "type": "number" }, "street_address": { + "description": "Street address of the business location.", "example": "1600 Amphitheatre Pkwy", "type": "string" }, "zip_code": { + "description": "Postal code of the business location.", "example": "94043", "type": "string" } @@ -95011,10 +98922,16 @@ "instagram.Caption": { "properties": { "text": { + "description": "Caption text of the reel.", "type": "string" }, "user": { - "$ref": "#/definitions/instagram.User" + "allOf": [ + { + "$ref": "#/definitions/instagram.User" + } + ], + "description": "Account that wrote the caption." } }, "type": "object" @@ -95022,13 +98939,20 @@ "instagram.ClipsMetadata": { "properties": { "audio_type": { + "description": "Kind of audio used by the reel, as Instagram labels it.", "type": "string" }, "is_shared_to_fb": { + "description": "Whether the reel was also shared to Facebook.", "type": "boolean" }, "original_sound_info": { - "$ref": "#/definitions/instagram.OriginalSoundInfo" + "allOf": [ + { + "$ref": "#/definitions/instagram.OriginalSoundInfo" + } + ], + "description": "Details of the original sound used in the reel." } }, "type": "object" @@ -95036,9 +98960,11 @@ "instagram.IGArtist": { "properties": { "id": { + "description": "Instagram ID of the account credited for the sound.", "type": "string" }, "username": { + "description": "Username of the account credited for the sound.", "type": "string" } }, @@ -95047,12 +98973,15 @@ "instagram.IGCaption": { "properties": { "created_at": { + "description": "Time the caption was written, in Unix seconds.", "type": "integer" }, "pk": { + "description": "Instagram ID of the caption.", "type": "string" }, "text": { + "description": "Caption text of the post.", "type": "string" } }, @@ -95061,18 +98990,23 @@ "instagram.IGOwner": { "properties": { "id": { + "description": "Instagram ID of the account that owns the post.", "type": "string" }, "is_private": { + "description": "Whether the owning account is private.", "type": "boolean" }, "pk": { + "description": "Instagram primary key of the account that owns the post.", "type": "string" }, "profile_pic_url": { + "description": "URL of the owning account's profile picture.", "type": "string" }, "username": { + "description": "Username of the account that owns the post.", "type": "string" } }, @@ -95081,24 +99015,31 @@ "instagram.IGUser": { "properties": { "full_name": { + "description": "Display name of the account that posted the media.", "type": "string" }, "id": { + "description": "Instagram ID of the account that posted the media.", "type": "string" }, "is_private": { + "description": "Whether the account is private.", "type": "boolean" }, "is_verified": { + "description": "Whether the account has Instagram's verified badge.", "type": "boolean" }, "pk": { + "description": "Instagram primary key of the account that posted the media.", "type": "string" }, "profile_pic_url": { + "description": "URL of the account's profile picture.", "type": "string" }, "username": { + "description": "Username of the account that posted the media.", "type": "string" } }, @@ -95107,12 +99048,15 @@ "instagram.ImageCandidate": { "properties": { "height": { + "description": "Height of this image version, in pixels.", "type": "integer" }, "url": { + "description": "URL of this image version.", "type": "string" }, "width": { + "description": "Width of this image version, in pixels.", "type": "integer" } }, @@ -95121,6 +99065,7 @@ "instagram.ImageVersions2": { "properties": { "candidates": { + "description": "Available versions of the post image, each at its own size and URL.", "items": { "$ref": "#/definitions/instagram.ImageCandidate" }, @@ -95132,7 +99077,12 @@ "instagram.Item": { "properties": { "media": { - "$ref": "#/definitions/instagram.Media" + "allOf": [ + { + "$ref": "#/definitions/instagram.Media" + } + ], + "description": "The reel in this entry." } }, "type": "object" @@ -95151,18 +99101,27 @@ "type": "string" }, "comment_count": { + "description": "Number of comments on the reel.", "type": "integer" }, "display_uri": { + "description": "URL of the reel's thumbnail image.", "type": "string" }, "id": { + "description": "Instagram media ID of the reel.", "type": "string" }, "image_versions2": { - "$ref": "#/definitions/instagram.ReelImageVersions" + "allOf": [ + { + "$ref": "#/definitions/instagram.ReelImageVersions" + } + ], + "description": "Available versions of the reel's thumbnail, each with its own URL." }, "like_count": { + "description": "Number of likes on the reel.", "type": "integer" }, "media_type": { @@ -95170,9 +99129,11 @@ "type": "integer" }, "play_count": { + "description": "Number of times the reel has been played.", "type": "integer" }, "taken_at": { + "description": "Time the reel was posted, in Unix seconds. Not available for public reels, so currently omitted.", "type": "integer" } }, @@ -95181,69 +99142,109 @@ "instagram.MediaItem": { "properties": { "accessibility_caption": { + "description": "Image description (alt text) Instagram provides for accessibility.", "type": "string" }, "caption": { - "$ref": "#/definitions/instagram.IGCaption" + "allOf": [ + { + "$ref": "#/definitions/instagram.IGCaption" + } + ], + "description": "Caption of the post." }, "clips_metadata": { - "$ref": "#/definitions/instagram.ClipsMetadata" + "allOf": [ + { + "$ref": "#/definitions/instagram.ClipsMetadata" + } + ], + "description": "Reel-specific details such as the audio used." }, "code": { "type": "string" }, "comment_count": { + "description": "Number of comments on the post.", "type": "integer" }, "display_uri": { + "description": "URL of the post's display image.", "type": "string" }, "has_audio": { + "description": "Whether the media has an audio track.", "type": "boolean" }, "id": { + "description": "Instagram media ID, such as `3693449175561021455_1067259270`.", "type": "string" }, "image_versions2": { - "$ref": "#/definitions/instagram.ImageVersions2" + "allOf": [ + { + "$ref": "#/definitions/instagram.ImageVersions2" + } + ], + "description": "Available versions of the post image, each with its own URL and size." }, "like_count": { + "description": "Number of likes on the post.", "type": "integer" }, "link": { + "description": "Link Instagram returns with the media, when present.", "type": "string" }, "media_type": { + "description": "Kind of media: `1` for image, `2` for video and `8` for album.", "type": "integer" }, "original_height": { + "description": "Height of the original media, in pixels.", "type": "integer" }, "original_width": { + "description": "Width of the original media, in pixels.", "type": "integer" }, "owner": { - "$ref": "#/definitions/instagram.IGOwner" + "allOf": [ + { + "$ref": "#/definitions/instagram.IGOwner" + } + ], + "description": "Account that owns the post." }, "pk": { + "description": "Numeric Instagram ID of the post, the first part of `id`.", "type": "string" }, "product_type": { + "description": "Kind of post, such as `clips` for a Reel or `feed` for a standard post.", "type": "string" }, "taken_at": { + "description": "Time the post was published, in Unix seconds.", "type": "integer" }, "user": { - "$ref": "#/definitions/instagram.IGUser" + "allOf": [ + { + "$ref": "#/definitions/instagram.IGUser" + } + ], + "description": "Account that posted the media." }, "video_versions": { + "description": "Available renditions of the video, each with its own URL and size.", "items": { "$ref": "#/definitions/instagram.VideoVersion" }, "type": "array" }, "view_count": { + "description": "Number of views on the video.", "type": "integer" } }, @@ -95252,18 +99253,27 @@ "instagram.OriginalSoundInfo": { "properties": { "audio_asset_id": { + "description": "Instagram ID of the audio asset.", "type": "string" }, "ig_artist": { - "$ref": "#/definitions/instagram.IGArtist" + "allOf": [ + { + "$ref": "#/definitions/instagram.IGArtist" + } + ], + "description": "Account credited for the sound." }, "is_explicit": { + "description": "Whether the sound is marked explicit.", "type": "boolean" }, "original_audio_title": { + "description": "Title of the original sound.", "type": "string" }, "should_mute_audio": { + "description": "Whether Instagram flags the audio to be muted.", "type": "boolean" } }, @@ -95272,9 +99282,11 @@ "instagram.PagingInfo": { "properties": { "max_id": { + "description": "Cursor to pass unchanged as `max_id` to fetch the next page of reels.", "type": "string" }, "more_available": { + "description": "Whether more reels are available after this page.", "type": "boolean" } }, @@ -95283,6 +99295,7 @@ "instagram.Post": { "properties": { "caption": { + "description": "Caption text of the post.", "example": "You popped the big question. For all the questions that follow, try AI Mode in Search.", "type": "string" }, @@ -95294,34 +99307,42 @@ "type": "array" }, "comment_count": { + "description": "Number of comments on the post.", "example": 43, "type": "integer" }, "height": { + "description": "Height of the post media, in pixels.", "example": 1000, "type": "integer" }, "id": { + "description": "Instagram media ID of the post.", "example": "3694065742636342530", "type": "string" }, "is_video": { + "description": "Whether the post is a video.", "example": false, "type": "boolean" }, "like_count": { + "description": "Number of likes on the post.", "example": 1880, "type": "integer" }, "media_url": { + "description": "URL of the post's image, or its cover image for a video.", "example": "https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/…n.jpg", "type": "string" }, "product_type": { + "description": "Kind of post, such as `clips` for a Reel or `feed` for a standard post.", "example": "", "type": "string" }, "shortcode": { + "description": "Short code from the post URL. Use it as `post_id` with the post endpoint.", "example": "DND9TiOx10C", "type": "string" }, @@ -95330,6 +99351,7 @@ "type": "string" }, "video_url": { + "description": "URL of the post's video. Present only for video posts.", "example": "", "type": "string" }, @@ -95339,6 +99361,7 @@ "type": "integer" }, "width": { + "description": "Width of the post media, in pixels.", "example": 750, "type": "integer" } @@ -95348,12 +99371,15 @@ "instagram.ReelImageCandidate": { "properties": { "height": { + "description": "Height of this thumbnail version, in pixels. Omitted when unknown.", "type": "integer" }, "url": { + "description": "URL of this thumbnail version.", "type": "string" }, "width": { + "description": "Width of this thumbnail version, in pixels. Omitted when unknown.", "type": "integer" } }, @@ -95362,6 +99388,7 @@ "instagram.ReelImageVersions": { "properties": { "candidates": { + "description": "Available versions of the reel thumbnail, each with its own URL.", "items": { "$ref": "#/definitions/instagram.ReelImageCandidate" }, @@ -95373,13 +99400,19 @@ "instagram.ReelResponse": { "properties": { "items": { + "description": "Reels on this page.", "items": { "$ref": "#/definitions/instagram.Item" }, "type": "array" }, "paging_info": { - "$ref": "#/definitions/instagram.PagingInfo" + "allOf": [ + { + "$ref": "#/definitions/instagram.PagingInfo" + } + ], + "description": "Cursor details for fetching the next page of reels." } }, "type": "object" @@ -95387,26 +99420,32 @@ "instagram.RelatedProfile": { "properties": { "full_name": { + "description": "Display name of the suggested account.", "example": "Gmail", "type": "string" }, "id": { + "description": "Numeric Instagram user ID of the suggested account.", "example": "1234567890", "type": "string" }, "is_private": { + "description": "Whether the suggested account is private.", "example": false, "type": "boolean" }, "is_verified": { + "description": "Whether the suggested account has Instagram's verified badge.", "example": true, "type": "boolean" }, "profile_pic_url": { + "description": "URL of the suggested account's profile picture.", "example": "https://…/profile.jpg", "type": "string" }, "username": { + "description": "Username of the suggested account.", "example": "gmail", "type": "string" } @@ -95416,12 +99455,15 @@ "instagram.User": { "properties": { "full_name": { + "description": "Display name of the account.", "type": "string" }, "id": { + "description": "Numeric Instagram user ID of the account.", "type": "string" }, "username": { + "description": "Username of the account.", "type": "string" } }, @@ -95430,6 +99472,7 @@ "instagram.UserProfile": { "properties": { "bio_links": { + "description": "Links listed in the profile bio.", "example": [ "[\"https://linkin.bio/google\"]" ], @@ -95439,6 +99482,7 @@ "type": "array" }, "biography": { + "description": "Bio text shown on the profile.", "example": "Here to help.", "type": "string" }, @@ -95448,61 +99492,79 @@ "type": "string" }, "external_url": { + "description": "Website link shown on the profile.", "example": "https://linkin.bio/google", "type": "string" }, "fbid": { + "description": "Alternate numeric ID of the account, as Instagram returns it.", "example": "17841401778116675", "type": "string" }, "followers_count": { + "description": "Number of accounts following this profile.", "example": 15607284, "type": "integer" }, "following_count": { + "description": "Number of accounts this profile follows.", "example": 38, "type": "integer" }, "full_name": { + "description": "Display name shown on the profile.", "example": "Google", "type": "string" }, "id": { + "description": "Numeric Instagram user ID. Use it with the reels endpoint.", "example": "1067259270", "type": "string" }, "is_private": { + "description": "Whether the account is private.", "example": false, "type": "boolean" }, "is_verified": { + "description": "Whether the account has Instagram's verified badge.", "example": true, "type": "boolean" }, "location": { - "$ref": "#/definitions/instagram.BusinessAddress" + "allOf": [ + { + "$ref": "#/definitions/instagram.BusinessAddress" + } + ], + "description": "Business address shown on the profile." }, "posts": { + "description": "Recent posts shown on the profile.", "items": { "$ref": "#/definitions/instagram.Post" }, "type": "array" }, "posts_count": { + "description": "Total number of posts on the profile.", "example": 2867, "type": "integer" }, "profile_pic_url": { + "description": "URL of the profile picture.", "example": "https://scontent-lax3-1.cdninstagram.com/v/t51.2885-19/…n.jpg", "type": "string" }, "related_profiles": { + "description": "Accounts Instagram suggests as related to this profile.", "items": { "$ref": "#/definitions/instagram.RelatedProfile" }, "type": "array" }, "username": { + "description": "Instagram username of the profile.", "example": "google", "type": "string" } @@ -95512,15 +99574,19 @@ "instagram.VideoVersion": { "properties": { "height": { + "description": "Height of this video rendition, in pixels.", "type": "integer" }, "type": { + "description": "Instagram's numeric code for this video rendition.", "type": "integer" }, "url": { + "description": "URL of this video rendition.", "type": "string" }, "width": { + "description": "Width of this video rendition, in pixels.", "type": "integer" } }, @@ -97156,24 +101222,30 @@ "jobs.BoardResponse": { "properties": { "company": { + "description": "Company or board name the postings belong to.", "type": "string" }, "count": { + "description": "Number of jobs returned in this response.", "type": "integer" }, "jobs": { + "description": "Job postings on the board, one item per posting.", "items": { "$ref": "#/definitions/jobs.Job" }, "type": "array" }, "provider": { + "description": "Applicant tracking system the board was read from, for example `greenhouse` or `lever`.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "total": { + "description": "Total number of open postings on the board, when the provider reports it.", "type": "integer" } }, @@ -97182,15 +101254,18 @@ "jobs.CompanySearchResponse": { "properties": { "count": { + "description": "Number of providers where the slug has a board with open roles.", "type": "integer" }, "found": { + "description": "Providers where the slug resolves to a board, ranked by open roles.", "items": { "$ref": "#/definitions/jobs.ProviderHit" }, "type": "array" }, "slug": { + "description": "Company careers slug that was searched.", "type": "string" } }, @@ -97199,9 +101274,11 @@ "jobs.Count": { "properties": { "count": { + "description": "Number of open roles with that name.", "type": "integer" }, "name": { + "description": "Department, location or job title being counted.", "type": "string" } }, @@ -97210,51 +101287,64 @@ "jobs.HiringSignals": { "properties": { "as_of": { + "description": "Time the snapshot was taken, in UTC (RFC 3339).", "type": "string" }, "by_department": { + "description": "Open roles per department, largest first, up to 20 entries.", "items": { "$ref": "#/definitions/jobs.Count" }, "type": "array" }, "by_location": { + "description": "Open roles per location, largest first, up to 20 entries.", "items": { "$ref": "#/definitions/jobs.Count" }, "type": "array" }, "company": { + "description": "Company or board identifier that was queried.", "type": "string" }, "new_last_30d": { + "description": "Number of sampled roles posted in the last 30 days. Counts only postings with a usable posting date.", "type": "integer" }, "new_last_7d": { + "description": "Number of sampled roles posted in the last 7 days. Counts only postings with a usable posting date.", "type": "integer" }, "provider": { + "description": "Applicant tracking system the board was read from, for example `greenhouse`.", "type": "string" }, "remote_count": { + "description": "Number of sampled roles marked as remote.", "type": "integer" }, "remote_pct": { + "description": "Share of sampled roles marked as remote, as a percentage rounded to one decimal.", "type": "number" }, "sampled_roles": { + "description": "Number of postings the breakdowns below were computed from.", "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "top_titles": { + "description": "Most common job titles with their counts, up to 10 entries.", "items": { "$ref": "#/definitions/jobs.Count" }, "type": "array" }, "total_open_roles": { + "description": "Number of open roles on the board. Uses the provider's own total when it gives one.", "type": "integer" } }, @@ -97270,6 +101360,7 @@ "type": "array" }, "apply_url": { + "description": "Link to the application page for the job.", "type": "string" }, "benefits_mentioned": { @@ -97280,9 +101371,11 @@ "type": "array" }, "company": { + "description": "Name of the hiring company.", "type": "string" }, "company_logo_url": { + "description": "URL of the company's logo.", "type": "string" }, "compensation": { @@ -97290,39 +101383,50 @@ "type": "string" }, "compensation_currency": { + "description": "Currency code of the pay range, for example `USD`.", "type": "string" }, "compensation_max": { + "description": "Upper end of the pay range stated in the posting.", "type": "number" }, "compensation_min": { + "description": "Lower end of the pay range stated in the posting.", "type": "number" }, "compensation_period": { + "description": "Pay period the posting states: `hourly`, `daily`, `weekly`, `monthly` or `yearly`. Omitted when the posting names none.", "type": "string" }, "department": { + "description": "Department the job belongs to.", "type": "string" }, "description_html": { + "description": "Job description as HTML.", "type": "string" }, "description_text": { + "description": "Job description as plain text.", "type": "string" }, "education_level_required": { + "description": "Education levels mentioned in the job title or description.", "items": { "type": "string" }, "type": "array" }, "employment_type": { + "description": "Employment type the provider lists, such as full-time or contract.", "type": "string" }, "id": { + "description": "Posting id within the provider. Use it with the provider's job endpoint.", "type": "string" }, "location": { + "description": "Primary job location as the provider shows it.", "type": "string" }, "location_city": { @@ -97330,12 +101434,15 @@ "type": "string" }, "location_country": { + "description": "Country of the primary location.", "type": "string" }, "location_state": { + "description": "State or region of the primary location.", "type": "string" }, "locations": { + "description": "All locations listed for the job.", "items": { "type": "string" }, @@ -97350,15 +101457,19 @@ "type": "string" }, "provider": { + "description": "Applicant tracking system the posting comes from, for example `greenhouse` or `lever`.", "type": "string" }, "remote": { + "description": "True when the posting is marked as remote.", "type": "boolean" }, "req_id": { + "description": "Requisition id the company uses for the job.", "type": "string" }, "security_clearance_required": { + "description": "Security clearances mentioned in the job title or description.", "items": { "type": "string" }, @@ -97372,15 +101483,19 @@ "type": "array" }, "team": { + "description": "Team the job belongs to.", "type": "string" }, "title": { + "description": "Job title as the company posted it.", "type": "string" }, "url": { + "description": "Link to the job posting page.", "type": "string" }, "workplace_type": { + "description": "Workplace arrangement the provider lists, such as remote, hybrid or on-site.", "type": "string" } }, @@ -97389,15 +101504,19 @@ "jobs.ProviderHit": { "properties": { "board_url": { + "description": "URL of the company's public careers board on that provider.", "type": "string" }, "company": { + "description": "Company or board name on that provider.", "type": "string" }, "provider": { + "description": "Applicant tracking system the board is on, for example `greenhouse`.", "type": "string" }, "total_open_roles": { + "description": "Number of open roles on the board.", "type": "integer" } }, @@ -97766,6 +101885,7 @@ "justwatch.AgeCertification": { "properties": { "technical_name": { + "description": "Age certification code used by JustWatch, for example `PG-13`.", "example": "PG-13", "type": "string" } @@ -97775,12 +101895,14 @@ "justwatch.AgeCertificationsResponse": { "properties": { "age_certifications": { + "description": "Age certifications used in the country.", "items": { "$ref": "#/definitions/justwatch.AgeCertification" }, "type": "array" }, "country": { + "description": "Two-letter ISO country code the certifications apply to.", "example": "US", "type": "string" } @@ -97790,10 +101912,20 @@ "justwatch.AnalysisResponse": { "properties": { "summary": { - "$ref": "#/definitions/justwatch.AnalysisSummary" + "allOf": [ + { + "$ref": "#/definitions/justwatch.AnalysisSummary" + } + ], + "description": "Availability summary computed from the title's offers." }, "title": { - "$ref": "#/definitions/justwatch.TitleResponse" + "allOf": [ + { + "$ref": "#/definitions/justwatch.TitleResponse" + } + ], + "description": "Title the summary was computed for." } }, "type": "object" @@ -97801,44 +101933,70 @@ "justwatch.AnalysisSummary": { "properties": { "available": { + "description": "Whether the title has at least one offer.", "example": true, "type": "boolean" }, "best_buy": { - "$ref": "#/definitions/justwatch.Offer" + "allOf": [ + { + "$ref": "#/definitions/justwatch.Offer" + } + ], + "description": "Cheapest `BUY` offer for the title. Omitted when there is none." }, "best_free": { - "$ref": "#/definitions/justwatch.Offer" + "allOf": [ + { + "$ref": "#/definitions/justwatch.Offer" + } + ], + "description": "Cheapest `FREE` offer for the title. Omitted when there is none." }, "best_rent": { - "$ref": "#/definitions/justwatch.Offer" + "allOf": [ + { + "$ref": "#/definitions/justwatch.Offer" + } + ], + "description": "Cheapest `RENT` offer for the title. Omitted when there is none." }, "best_subscription": { - "$ref": "#/definitions/justwatch.Offer" + "allOf": [ + { + "$ref": "#/definitions/justwatch.Offer" + } + ], + "description": "Cheapest `FLATRATE` or `ADS` offer for the title. Omitted when there is none." }, "format_counts": { "additionalProperties": { "type": "integer" }, + "description": "Number of offers per picture format, keyed by format such as `HD` or `4K`.", "type": "object" }, "monetization_counts": { "additionalProperties": { "type": "integer" }, + "description": "Number of offers per monetization type, keyed by type such as `RENT` or `BUY`.", "type": "object" }, "price_ranges": { "additionalProperties": { "$ref": "#/definitions/justwatch.PriceRange" }, + "description": "Lowest and highest price per monetization type, keyed by type. Only offers with a price are counted.", "type": "object" }, "provider_count": { + "description": "Number of distinct providers that carry the title.", "example": 6, "type": "integer" }, "total_offers": { + "description": "Total number of offers found for the title.", "example": 15, "type": "integer" } @@ -97848,6 +102006,7 @@ "justwatch.Backdrop": { "properties": { "url": { + "description": "URL of a backdrop image for the title.", "example": "https://images.justwatch.com/backdrop/8735151/s1920/inception.jpg", "type": "string" } @@ -97857,14 +102016,17 @@ "justwatch.Clip": { "properties": { "external_id": { + "description": "Video id of the clip on the hosting site.", "example": "8hP9D6kZseM", "type": "string" }, "provider": { + "description": "Site hosting the clip, for example `YOUTUBE`.", "example": "YOUTUBE", "type": "string" }, "url": { + "description": "URL where the clip can be watched.", "example": "https://www.youtube.com/watch?v=8hP9D6kZseM", "type": "string" } @@ -97874,18 +102036,22 @@ "justwatch.Credit": { "properties": { "character_name": { + "description": "Character the person plays. Omitted for crew roles.", "example": "Dom Cobb", "type": "string" }, "name": { + "description": "Full name of the person.", "example": "Leonardo DiCaprio", "type": "string" }, "person_id": { + "description": "JustWatch id of the person.", "example": 1641, "type": "integer" }, "role": { + "description": "Role of the person on the title, for example `ACTOR`.", "example": "ACTOR", "type": "string" } @@ -97895,10 +102061,12 @@ "justwatch.DiscoverResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "genres": { + "description": "Genre short names that were used as filters.", "example": [ "act" ], @@ -97908,10 +102076,12 @@ "type": "array" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "monetization_types": { + "description": "Monetization types that were used as filters, for example `FLATRATE`.", "example": [ "FLATRATE" ], @@ -97921,6 +102091,7 @@ "type": "array" }, "production_countries": { + "description": "Production country codes that were used as filters.", "example": [ "KR" ], @@ -97930,6 +102101,7 @@ "type": "array" }, "providers": { + "description": "Provider short names that were used as filters, for example `nfx`.", "example": [ "nfx" ], @@ -97939,20 +102111,24 @@ "type": "array" }, "results": { + "description": "Titles matching the request, one item per title.", "items": { "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" }, "type": { + "description": "Content type filter applied: `all`, `movie` or `show`.", "example": "all", "type": "string" }, "year_max": { + "description": "Latest release year used as a filter.", "example": 2026, "type": "integer" }, "year_min": { + "description": "Earliest release year used as a filter.", "example": 2020, "type": "integer" } @@ -97962,13 +102138,20 @@ "justwatch.EpisodeByIDResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "episode": { - "$ref": "#/definitions/justwatch.EpisodeSummary" + "allOf": [ + { + "$ref": "#/definitions/justwatch.EpisodeSummary" + } + ], + "description": "Episode that matches the requested id." }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" } @@ -97978,13 +102161,20 @@ "justwatch.EpisodeCountryOffers": { "properties": { "country": { + "description": "Two-letter ISO country code the offers apply to.", "example": "US", "type": "string" }, "episode": { - "$ref": "#/definitions/justwatch.EpisodeSummary" + "allOf": [ + { + "$ref": "#/definitions/justwatch.EpisodeSummary" + } + ], + "description": "Episode details as listed in this country." }, "offers": { + "description": "Offers for the episode in this country.", "items": { "$ref": "#/definitions/justwatch.Offer" }, @@ -97996,16 +102186,19 @@ "justwatch.EpisodeOffersResponse": { "properties": { "countries": { + "description": "Offers for the episode, one item per country.", "items": { "$ref": "#/definitions/justwatch.EpisodeCountryOffers" }, "type": "array" }, "id": { + "description": "JustWatch episode id the offers belong to, for example `tse5550494`.", "example": "tse5550494", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" } @@ -98015,44 +102208,55 @@ "justwatch.EpisodeSummary": { "properties": { "description": { + "description": "Short synopsis of the episode.", "type": "string" }, "episode_number": { + "description": "Number of the episode within its season.", "example": 1, "type": "integer" }, "id": { + "description": "JustWatch episode id, for example `tse5550494`.", "example": "tse5550494", "type": "string" }, "object_id": { + "description": "Numeric JustWatch id of the episode.", "example": 5550494, "type": "integer" }, "object_type": { + "description": "JustWatch object type, `SHOW_EPISODE` for episodes.", "example": "SHOW_EPISODE", "type": "string" }, "offers": { + "description": "Offers for the episode, when requested.", "items": { "$ref": "#/definitions/justwatch.Offer" }, "type": "array" }, "path": { + "description": "JustWatch page path of the episode.", "type": "string" }, "poster_url": { + "description": "URL of the still or poster image for the episode.", "type": "string" }, "title": { + "description": "Episode title in the requested language.", "example": "Long Day's Journey Into Night", "type": "string" }, "url": { + "description": "Full JustWatch page URL of the episode.", "type": "string" }, "year": { + "description": "Release year of the episode.", "example": 2022, "type": "integer" } @@ -98062,10 +102266,12 @@ "justwatch.Genre": { "properties": { "short_name": { + "description": "Short genre code accepted as a filter, for example `act`.", "example": "act", "type": "string" }, "translation": { + "description": "Genre name in the requested language, for example `Action & Adventure`.", "example": "Action & Adventure", "type": "string" } @@ -98075,24 +102281,29 @@ "justwatch.GenreTitlesResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "genre": { + "description": "Genre short name the titles belong to, for example `act`.", "example": "act", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "results": { + "description": "Titles matching the request, one item per title.", "items": { "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" }, "type": { + "description": "Content type filter applied: `all`, `movie` or `show`.", "example": "all", "type": "string" } @@ -98102,12 +102313,14 @@ "justwatch.GenresResponse": { "properties": { "genres": { + "description": "Genres available on JustWatch.", "items": { "$ref": "#/definitions/justwatch.Genre" }, "type": "array" }, "language": { + "description": "Two-letter language code the genre names are translated into.", "example": "en", "type": "string" } @@ -98117,24 +102330,29 @@ "justwatch.MonetizationTitlesResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "monetization_type": { + "description": "Monetization type the titles are offered under: `FLATRATE`, `FREE`, `ADS`, `RENT` or `BUY`.", "example": "FLATRATE", "type": "string" }, "results": { + "description": "Titles matching the request, one item per title.", "items": { "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" }, "type": { + "description": "Content type filter applied: `all`, `movie` or `show`.", "example": "all", "type": "string" } @@ -98144,20 +102362,24 @@ "justwatch.NewTitlesResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "results": { + "description": "Newly added titles, one item per title.", "items": { "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" }, "type": { + "description": "Content type filter applied: `all`, `movie` or `show`.", "example": "all", "type": "string" } @@ -98167,46 +102389,57 @@ "justwatch.Offer": { "properties": { "availability": { + "description": "Availability of the offer as a schema.org URL, for example `https://schema.org/InStock`.", "example": "https://schema.org/InStock", "type": "string" }, "category": { + "description": "Format label shown for the offer, for example `Blu-Ray`.", "example": "Blu-Ray", "type": "string" }, "currency": { + "description": "Currency of `price`, as an ISO 4217 code such as `USD`.", "example": "USD", "type": "string" }, "monetization_type": { + "description": "How the title is offered: `FLATRATE`, `FREE`, `ADS`, `RENT` or `BUY`.", "example": "RENT", "type": "string" }, "presentation_type": { + "description": "Picture format of the offer, for example `HD` or `4K`.", "example": "4K", "type": "string" }, "price": { + "description": "Price of the offer in `currency`. Omitted for free and subscription offers without a price.", "example": 4.99, "type": "number" }, "provider": { + "description": "Name of the provider offering the title, for example `Amazon Video`.", "example": "Amazon Video", "type": "string" }, "provider_id": { + "description": "JustWatch id of the provider.", "example": 10, "type": "integer" }, "provider_short": { + "description": "Short provider code, for example `amz`.", "example": "amz", "type": "string" }, "provider_technical": { + "description": "Technical provider name used by JustWatch, for example `amazon`.", "example": "amazon", "type": "string" }, "url": { + "description": "Link to watch or buy the title at the provider.", "type": "string" } }, @@ -98215,28 +102448,34 @@ "justwatch.PopularResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "has_next_page": { + "description": "Whether more popular titles are available after this page.", "example": true, "type": "boolean" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "next_cursor": { + "description": "Cursor to pass as `cursor` to get the next page.", "example": "Mg==", "type": "string" }, "results": { + "description": "Popular titles in ranked order, one item per title.", "items": { "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" }, "type": { + "description": "Content type filter applied: `all`, `movie` or `show`.", "example": "all", "type": "string" } @@ -98246,14 +102485,17 @@ "justwatch.PriceRange": { "properties": { "currency": { + "description": "Currency of the prices, as an ISO 4217 code such as `USD`.", "example": "USD", "type": "string" }, "max": { + "description": "Highest price among the offers of this type.", "example": 14.99, "type": "number" }, "min": { + "description": "Lowest price among the offers of this type.", "example": 2.99, "type": "number" } @@ -98263,22 +102505,27 @@ "justwatch.Provider": { "properties": { "clear_name": { + "description": "Display name of the provider, for example `Netflix`.", "example": "Netflix", "type": "string" }, "icon_url": { + "description": "URL of the provider's icon image.", "example": "https://images.justwatch.com/icon/207360008/s100/netflix.jpg", "type": "string" }, "id": { + "description": "JustWatch id of the provider.", "example": 8, "type": "integer" }, "short_name": { + "description": "Short provider code accepted as a filter, for example `nfx`.", "example": "nfx", "type": "string" }, "technical_name": { + "description": "Technical provider name used by JustWatch, for example `netflix`.", "example": "netflix", "type": "string" } @@ -98288,24 +102535,29 @@ "justwatch.ProviderTitlesResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "provider": { + "description": "Provider short name the titles are available on, for example `nfx`.", "example": "nfx", "type": "string" }, "results": { + "description": "Titles matching the request, one item per title.", "items": { "$ref": "#/definitions/justwatch.SearchTitle" }, "type": "array" }, "type": { + "description": "Content type filter applied: `all`, `movie` or `show`.", "example": "all", "type": "string" } @@ -98315,10 +102567,12 @@ "justwatch.ProvidersResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the providers are available in.", "example": "US", "type": "string" }, "providers": { + "description": "Streaming and purchase providers available in the country.", "items": { "$ref": "#/definitions/justwatch.Provider" }, @@ -98330,38 +102584,47 @@ "justwatch.Scoring": { "properties": { "best_rating": { + "description": "Top of the scale for `justwatch_rating`, for example `100`.", "example": "100", "type": "string" }, "certified_fresh": { + "description": "Whether the title carries the Rotten Tomatoes Certified Fresh badge.", "example": true, "type": "boolean" }, "imdb_score": { + "description": "IMDb user rating out of 10.", "example": 8.8, "type": "number" }, "imdb_votes": { + "description": "Number of IMDb votes behind `imdb_score`.", "example": 2798306, "type": "integer" }, "justwatch_rating": { + "description": "JustWatch user rating, on the scale given by `best_rating`.", "example": 97, "type": "number" }, "rating_count": { + "description": "Number of ratings behind `justwatch_rating`.", "example": 77696, "type": "integer" }, "tmdb_popularity": { + "description": "TMDB popularity score for the title.", "example": 38.5801, "type": "number" }, "tmdb_score": { + "description": "TMDB user rating for the title.", "example": 8.372, "type": "number" }, "tomato_meter": { + "description": "Rotten Tomatoes Tomatometer score, as a percentage.", "example": 87, "type": "integer" } @@ -98371,18 +102634,22 @@ "justwatch.SearchResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "query": { + "description": "Search text that was run.", "example": "inception", "type": "string" }, "results": { + "description": "Titles matching the search text, one item per title.", "items": { "$ref": "#/definitions/justwatch.SearchTitle" }, @@ -98394,28 +102661,34 @@ "justwatch.SearchTitle": { "properties": { "id": { + "description": "JustWatch title id, for example `tm92641` for a movie.", "example": "tm92641", "type": "string" }, "object_id": { + "description": "Numeric JustWatch id of the title.", "example": 92641, "type": "integer" }, "object_type": { + "description": "JustWatch object type of the title, for example `MOVIE` or `SHOW`.", "example": "MOVIE", "type": "string" }, "offers": { + "description": "Streaming, rental and purchase offers for the title.", "items": { "$ref": "#/definitions/justwatch.Offer" }, "type": "array" }, "path": { + "description": "JustWatch page path of the title, for example `/us/movie/inception`.", "example": "/us/movie/inception", "type": "string" }, "poster_url": { + "description": "URL of the poster image for the title.", "example": "https://images.justwatch.com/poster/302449148/s718/inception.jpg", "type": "string" }, @@ -98430,14 +102703,17 @@ "type": "array" }, "title": { + "description": "Name of the title in the requested language.", "example": "Inception", "type": "string" }, "url": { + "description": "Full JustWatch page URL of the title.", "example": "https://www.justwatch.com/us/movie/inception", "type": "string" }, "year": { + "description": "Release year of the title.", "example": 2010, "type": "integer" } @@ -98447,15 +102723,22 @@ "justwatch.SeasonByIDResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "season": { - "$ref": "#/definitions/justwatch.SeasonSummary" + "allOf": [ + { + "$ref": "#/definitions/justwatch.SeasonSummary" + } + ], + "description": "Season that matches the requested id." } }, "type": "object" @@ -98463,21 +102746,29 @@ "justwatch.SeasonEpisodesResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "episodes": { + "description": "Episodes of the season, in order.", "items": { "$ref": "#/definitions/justwatch.EpisodeSummary" }, "type": "array" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "season": { - "$ref": "#/definitions/justwatch.SeasonSummary" + "allOf": [ + { + "$ref": "#/definitions/justwatch.SeasonSummary" + } + ], + "description": "Season the episodes belong to." } }, "type": "object" @@ -98485,41 +102776,51 @@ "justwatch.SeasonSummary": { "properties": { "description": { + "description": "Short synopsis of the season.", "type": "string" }, "id": { + "description": "JustWatch season id, for example `tss297253`.", "example": "tss297253", "type": "string" }, "object_id": { + "description": "Numeric JustWatch id of the season.", "example": 297253, "type": "integer" }, "object_type": { + "description": "JustWatch object type, `SHOW_SEASON` for seasons.", "example": "SHOW_SEASON", "type": "string" }, "path": { + "description": "JustWatch page path of the season.", "example": "/us/tv-show/from/season-1", "type": "string" }, "poster_url": { + "description": "URL of the poster image for the season.", "example": "https://images.justwatch.com/poster/320190730/s718/season-1.jpg", "type": "string" }, "season_number": { + "description": "Number of the season within the show.", "example": 1, "type": "integer" }, "title": { + "description": "Season title, for example `Season 1`.", "example": "Season 1", "type": "string" }, "url": { + "description": "Full JustWatch page URL of the season.", "example": "https://www.justwatch.com/us/tv-show/from/season-1", "type": "string" }, "year": { + "description": "Release year of the season.", "example": 2022, "type": "integer" } @@ -98529,21 +102830,29 @@ "justwatch.ShowSeasonsResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "seasons": { + "description": "Seasons of the show, in order.", "items": { "$ref": "#/definitions/justwatch.SeasonSummary" }, "type": "array" }, "show": { - "$ref": "#/definitions/justwatch.TitleResponse" + "allOf": [ + { + "$ref": "#/definitions/justwatch.TitleResponse" + } + ], + "description": "Show the seasons belong to." } }, "type": "object" @@ -98551,18 +102860,22 @@ "justwatch.SimilarTitlesResponse": { "properties": { "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "id": { + "description": "JustWatch title id the similar titles are based on, for example `tm92641`.", "example": "tm92641", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "results": { + "description": "Titles similar to the requested one, one item per title.", "items": { "$ref": "#/definitions/justwatch.SearchTitle" }, @@ -98574,17 +102887,24 @@ "justwatch.TitleCountryOffers": { "properties": { "country": { + "description": "Two-letter ISO country code the offers apply to.", "example": "US", "type": "string" }, "offers": { + "description": "Offers for the title in this country.", "items": { "$ref": "#/definitions/justwatch.Offer" }, "type": "array" }, "title": { - "$ref": "#/definitions/justwatch.TitleResponse" + "allOf": [ + { + "$ref": "#/definitions/justwatch.TitleResponse" + } + ], + "description": "Title details as listed in this country." } }, "type": "object" @@ -98592,36 +102912,43 @@ "justwatch.TitleMediaResponse": { "properties": { "backdrops": { + "description": "Backdrop images for the title.", "items": { "$ref": "#/definitions/justwatch.Backdrop" }, "type": "array" }, "clips": { + "description": "Trailers and other video clips for the title.", "items": { "$ref": "#/definitions/justwatch.Clip" }, "type": "array" }, "country": { + "description": "Two-letter ISO country code the results are for.", "example": "US", "type": "string" }, "credits": { + "description": "Cast and crew credited on the title.", "items": { "$ref": "#/definitions/justwatch.Credit" }, "type": "array" }, "id": { + "description": "JustWatch title id the media belongs to, for example `tm92641`.", "example": "tm92641", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" }, "title": { + "description": "Name of the title in the requested language.", "example": "Inception", "type": "string" } @@ -98631,16 +102958,19 @@ "justwatch.TitleOffersResponse": { "properties": { "countries": { + "description": "Offers for the title, one item per country.", "items": { "$ref": "#/definitions/justwatch.TitleCountryOffers" }, "type": "array" }, "id": { + "description": "JustWatch title id the offers belong to, for example `tm92641`.", "example": "tm92641", "type": "string" }, "language": { + "description": "Two-letter language code used for titles and descriptions.", "example": "en", "type": "string" } @@ -98650,63 +102980,82 @@ "justwatch.TitleResponse": { "properties": { "content_rating": { + "description": "Age or content rating shown for the title.", "type": "string" }, "description": { + "description": "Synopsis of the title.", "type": "string" }, "genres": { + "description": "Genre names of the title.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "JustWatch title id, for example `tm92641` for a movie.", "example": "tm92641", "type": "string" }, "object_id": { + "description": "Numeric JustWatch id of the title.", "example": 92641, "type": "integer" }, "object_type": { + "description": "JustWatch object type of the title, for example `MOVIE` or `SHOW`.", "example": "MOVIE", "type": "string" }, "offers": { + "description": "Streaming, rental and purchase offers for the title.", "items": { "$ref": "#/definitions/justwatch.Offer" }, "type": "array" }, "path": { + "description": "JustWatch page path of the title, for example `/us/movie/inception`.", "example": "/us/movie/inception", "type": "string" }, "poster_url": { + "description": "URL of the poster image for the title.", "example": "https://images.justwatch.com/poster/302449148/s718/inception.jpg", "type": "string" }, "release_date": { + "description": "Release date of the title, for example `2010-07-14`.", "example": "2010-07-14", "type": "string" }, "runtime": { + "description": "Running time as an ISO 8601 duration, for example `PT2H28M0S`.", "example": "PT2H28M0S", "type": "string" }, "scoring": { - "$ref": "#/definitions/justwatch.Scoring" + "allOf": [ + { + "$ref": "#/definitions/justwatch.Scoring" + } + ], + "description": "User and critic ratings for the title." }, "title": { + "description": "Name of the title in the requested language.", "example": "Inception", "type": "string" }, "url": { + "description": "Full JustWatch page URL of the title.", "example": "https://www.justwatch.com/us/movie/inception", "type": "string" }, "year": { + "description": "Release year of the title.", "example": 2010, "type": "integer" } @@ -99036,36 +103385,44 @@ "kalshi.BatchMarketHistoryResponse": { "properties": { "end_ts": { + "description": "End of the requested range, in Unix seconds.", "example": 1780804800, "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "include_latest_before_start": { + "description": "Whether the latest candle before `start_ts` was requested.", "example": false, "type": "boolean" }, "markets": { + "description": "Candlestick history for each requested market.", "items": { "$ref": "#/definitions/kalshi.MarketHistoryResponse" }, "type": "array" }, "period_interval": { + "description": "Length of each candlestick period, in minutes.", "example": 1440, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/markets/candlesticks", "type": "string" }, "start_ts": { + "description": "Start of the requested range, in Unix seconds.", "example": 1780286400, "type": "integer" }, "tickers": { + "description": "Tickers of the Kalshi markets that were requested.", "example": [ "KXELONMARS-99" ], @@ -99080,20 +103437,24 @@ "kalshi.BatchOrderBookResponse": { "properties": { "books": { + "description": "Order book for each requested market.", "items": { "$ref": "#/definitions/kalshi.OrderBookResponse" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/markets/orderbooks", "type": "string" }, "tickers": { + "description": "Tickers of the Kalshi markets that were requested.", "example": [ "KXELONMARS-99" ], @@ -99108,26 +103469,32 @@ "kalshi.CandleOHLC": { "properties": { "close": { + "description": "Value at the end of the period, in US dollars per contract.", "example": 0.08, "type": "number" }, "high": { + "description": "Highest value during the period, in US dollars per contract.", "example": 0.11, "type": "number" }, "low": { + "description": "Lowest value during the period, in US dollars per contract.", "example": 0.08, "type": "number" }, "mean": { + "description": "Average value over the period, in US dollars per contract.", "example": 0.1014, "type": "number" }, "open": { + "description": "Value at the start of the period, in US dollars per contract.", "example": 0.11, "type": "number" }, "previous": { + "description": "Last value from before the period, in US dollars per contract.", "example": 0.08, "type": "number" } @@ -99137,9 +103504,11 @@ "kalshi.Competition": { "properties": { "id": { + "description": "Kalshi identifier of the competition.", "type": "string" }, "name": { + "description": "Name of the competition.", "type": "string" } }, @@ -99148,26 +103517,32 @@ "kalshi.EventHistoryResponse": { "properties": { "adjusted_end_ts": { + "description": "End of the range after Kalshi adjusted it, in Unix seconds.", "example": 1780804800, "type": "integer" }, "end_ts": { + "description": "End of the requested range, in Unix seconds.", "example": 1780804800, "type": "integer" }, "event_ticker": { + "description": "Ticker of the Kalshi event the history is for.", "example": "KXELONMARS-99", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "include_latest_before_start": { + "description": "Whether the latest candle before `start_ts` was requested.", "example": false, "type": "boolean" }, "market_tickers": { + "description": "Tickers of the markets in the event that have history.", "example": [ "KXELONMARS-99" ], @@ -99177,24 +103552,29 @@ "type": "array" }, "markets": { + "description": "Candlestick history for each market in the event.", "items": { "$ref": "#/definitions/kalshi.MarketHistoryResponse" }, "type": "array" }, "period_interval": { + "description": "Length of each candlestick period, in minutes.", "example": 1440, "type": "integer" }, "series_ticker": { + "description": "Ticker of the series the event belongs to.", "example": "KXELONMARS", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/series/KXELONMARS/events/KXELONMARS-99/candlesticks", "type": "string" }, "start_ts": { + "description": "Start of the requested range, in Unix seconds.", "example": 1780286400, "type": "integer" } @@ -99204,39 +103584,52 @@ "kalshi.EventMetadataResponse": { "properties": { "competition": { - "$ref": "#/definitions/kalshi.Competition" + "allOf": [ + { + "$ref": "#/definitions/kalshi.Competition" + } + ], + "description": "Competition the event is part of. Omitted when the event has none." }, "competition_scope": { + "description": "Scope of the competition the event is part of, as Kalshi labels it.", "type": "string" }, "event_ticker": { + "description": "Ticker of the Kalshi event the metadata belongs to.", "example": "KXELONMARS-99", "type": "string" }, "featured_image_url": { + "description": "URL of the event's featured image.", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "image_url": { + "description": "URL of the event's image.", "example": "https://kalshi-public-docs.s3.amazonaws.com/series-images-webp/KXELONMARS.webp", "type": "string" }, "market_details": { + "description": "Display details for each market in the event.", "items": { "$ref": "#/definitions/kalshi.MarketDetail" }, "type": "array" }, "settlement_sources": { + "description": "Sources Kalshi uses to settle the event's markets.", "items": { "$ref": "#/definitions/kalshi.SettlementSource" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/events/KXELONMARS-99/metadata", "type": "string" } @@ -99246,19 +103639,27 @@ "kalshi.EventResponse": { "properties": { "event": { - "$ref": "#/definitions/kalshi.EventRow" + "allOf": [ + { + "$ref": "#/definitions/kalshi.EventRow" + } + ], + "description": "The Kalshi event that was requested." }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "markets": { + "description": "Markets that belong to the event.", "items": { "$ref": "#/definitions/kalshi.MarketRow" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/events/KXELONMARS-99", "type": "string" } @@ -99268,47 +103669,58 @@ "kalshi.EventRow": { "properties": { "available_on_brokers": { + "description": "Whether the event's markets can be traded through Kalshi's broker partners.", "example": false, "type": "boolean" }, "category": { + "description": "Kalshi category of the event, such as `World`.", "example": "World", "type": "string" }, "collateral_return_type": { + "description": "Collateral return type Kalshi assigns to the event, such as `MECNET`.", "example": "MECNET", "type": "string" }, "event_ticker": { + "description": "Kalshi ticker that identifies the event.", "example": "KXELONMARS-99", "type": "string" }, "last_updated": { + "description": "Time the event was last updated, in UTC (RFC 3339).", "example": "2026-05-10T00:33:53Z", "type": "string" }, "markets": { + "description": "Markets that belong to the event. Omitted when the response does not include them.", "items": { "$ref": "#/definitions/kalshi.MarketRow" }, "type": "array" }, "mutually_exclusive": { + "description": "Whether at most one market in the event can resolve to Yes.", "example": false, "type": "boolean" }, "series_ticker": { + "description": "Ticker of the series the event belongs to.", "example": "KXELONMARS", "type": "string" }, "strike_period": { + "description": "Strike period of the event, as Kalshi labels it.", "type": "string" }, "sub_title": { + "description": "Short qualifier shown under the event title, such as a date or deadline.", "example": "Before 2099", "type": "string" }, "title": { + "description": "Event title as shown on Kalshi.", "example": "Will Elon Musk visit Mars in his lifetime?", "type": "string" } @@ -99318,23 +103730,28 @@ "kalshi.EventsResponse": { "properties": { "cursor": { + "description": "Cursor to pass in the next request to get the following page. Omitted when Kalshi returns none.", "type": "string" }, "events": { + "description": "Kalshi events on this page.", "items": { "$ref": "#/definitions/kalshi.EventRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "limit": { + "description": "Number of events requested per page.", "example": 25, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/events?limit=25", "type": "string" } @@ -99472,22 +103889,27 @@ "kalshi.HistoricalCutoffResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "market_settled_at": { + "description": "Cutoff time for settled markets, in UTC (RFC 3339). Markets settled before it are served by the historical endpoints.", "example": "2026-04-08T00:00:00Z", "type": "string" }, "orders_updated_at": { + "description": "Cutoff time for order updates, in UTC (RFC 3339).", "example": "2026-04-08T00:00:00Z", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/historical/cutoff", "type": "string" }, "trades_created_at": { + "description": "Cutoff time for trades, in UTC (RFC 3339). Trades created before it are served by the historical trades endpoint.", "example": "2026-04-08T00:00:00Z", "type": "string" } @@ -99497,13 +103919,20 @@ "kalshi.HistoricalMarketResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "market": { - "$ref": "#/definitions/kalshi.MarketRow" + "allOf": [ + { + "$ref": "#/definitions/kalshi.MarketRow" + } + ], + "description": "The historical Kalshi market that was requested." }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/historical/markets/KXMVECROSSCATEGORY-S2026144E784A147-ED367B84557", "type": "string" } @@ -99513,23 +103942,28 @@ "kalshi.HistoricalMarketsResponse": { "properties": { "cursor": { + "description": "Cursor to pass in the next request to get the following page. Omitted when Kalshi returns none.", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "limit": { + "description": "Number of markets requested per page.", "example": 25, "type": "integer" }, "markets": { + "description": "Historical Kalshi markets on this page.", "items": { "$ref": "#/definitions/kalshi.MarketRow" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/historical/markets?limit=25", "type": "string" } @@ -99539,33 +103973,41 @@ "kalshi.HistoricalTradesResponse": { "properties": { "cursor": { + "description": "Cursor to pass in the next request to get the following page. Omitted when Kalshi returns none.", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "limit": { + "description": "Number of trades requested per page.", "example": 25, "type": "integer" }, "max_ts": { + "description": "Latest trade creation time that was requested, in Unix seconds.", "example": 1775689200, "type": "integer" }, "min_ts": { + "description": "Earliest trade creation time that was requested, in Unix seconds.", "example": 1775602800, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/historical/trades?limit=25", "type": "string" }, "ticker": { + "description": "Market ticker the trades were filtered by. Omitted when no ticker filter was used.", "example": "KXMVECROSSCATEGORY-S2026144E784A147-ED367B84557", "type": "string" }, "trades": { + "description": "Historical trades on this page.", "items": { "$ref": "#/definitions/kalshi.TradeRow" }, @@ -99577,29 +104019,48 @@ "kalshi.MarketCandlestick": { "properties": { "end_period_at": { + "description": "End of the candlestick period, in UTC (RFC 3339).", "example": "2026-06-01T00:00:00Z", "type": "string" }, "end_period_ts": { + "description": "End of the candlestick period, in Unix seconds.", "example": 1780286400, "type": "integer" }, "open_interest": { + "description": "Number of contracts open at the end of the period.", "example": 32980.77, "type": "number" }, "price": { - "$ref": "#/definitions/kalshi.CandleOHLC" + "allOf": [ + { + "$ref": "#/definitions/kalshi.CandleOHLC" + } + ], + "description": "Open, high, low, close, mean and previous trade price for the period, in US dollars per contract." }, "volume": { + "description": "Number of contracts traded during the period.", "example": 7, "type": "number" }, "yes_ask": { - "$ref": "#/definitions/kalshi.CandleOHLC" + "allOf": [ + { + "$ref": "#/definitions/kalshi.CandleOHLC" + } + ], + "description": "Open, high, low, close, mean and previous Yes ask price for the period, in US dollars per contract." }, "yes_bid": { - "$ref": "#/definitions/kalshi.CandleOHLC" + "allOf": [ + { + "$ref": "#/definitions/kalshi.CandleOHLC" + } + ], + "description": "Open, high, low, close, mean and previous Yes bid price for the period, in US dollars per contract." } }, "type": "object" @@ -99607,13 +104068,16 @@ "kalshi.MarketDetail": { "properties": { "color_code": { + "description": "Display colour of the market on Kalshi, as a hex code.", "example": "#AA00FF", "type": "string" }, "image_url": { + "description": "URL of the market's image.", "type": "string" }, "market_ticker": { + "description": "Ticker of the market the details belong to.", "example": "KXELONMARS-99", "type": "string" } @@ -99623,40 +104087,49 @@ "kalshi.MarketHistoryResponse": { "properties": { "candlesticks": { + "description": "Price candlesticks for the market, one per period.", "items": { "$ref": "#/definitions/kalshi.MarketCandlestick" }, "type": "array" }, "end_ts": { + "description": "End of the requested range, in Unix seconds.", "example": 1780804800, "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "include_latest_before_start": { + "description": "Whether the latest candle before `start_ts` was requested.", "example": false, "type": "boolean" }, "period_interval": { + "description": "Length of each candlestick period, in minutes.", "example": 1440, "type": "integer" }, "series_ticker": { + "description": "Ticker of the series the market belongs to.", "example": "KXELONMARS", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/series/KXELONMARS/markets/KXELONMARS-99/candlesticks", "type": "string" }, "start_ts": { + "description": "Start of the requested range, in Unix seconds.", "example": 1780286400, "type": "integer" }, "ticker": { + "description": "Ticker of the Kalshi market the history is for.", "example": "KXELONMARS-99", "type": "string" } @@ -99666,13 +104139,20 @@ "kalshi.MarketResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "market": { - "$ref": "#/definitions/kalshi.MarketRow" + "allOf": [ + { + "$ref": "#/definitions/kalshi.MarketRow" + } + ], + "description": "The Kalshi market that was requested." }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/markets/KXELONMARS-99", "type": "string" } @@ -99682,88 +104162,110 @@ "kalshi.MarketRow": { "properties": { "close_time": { + "description": "Time trading closes, in UTC (RFC 3339).", "example": "2099-08-01T04:59:00Z", "type": "string" }, "event_ticker": { + "description": "Ticker of the event the market belongs to.", "example": "KXELONMARS-99", "type": "string" }, "expiration_time": { + "description": "Time the market expires, in UTC (RFC 3339).", "example": "2099-08-08T15:00:00Z", "type": "string" }, "last_price": { + "description": "Price of the most recent trade, in US dollars per contract.", "example": 0.08, "type": "number" }, "liquidity": { + "description": "Market liquidity, in US dollars.", "example": 0, "type": "number" }, "market_type": { + "description": "Market type, such as `binary`.", "example": "binary", "type": "string" }, "no_ask": { + "description": "Lowest price asked for a No contract, in US dollars.", "example": 0.92, "type": "number" }, "no_bid": { + "description": "Highest price offered for a No contract, in US dollars.", "example": 0.9, "type": "number" }, "open_interest": { + "description": "Number of contracts currently open in the market.", "example": 32773.57, "type": "number" }, "open_time": { + "description": "Time trading opened, in UTC (RFC 3339).", "example": "2025-08-28T20:45:00Z", "type": "string" }, "previous_price": { + "description": "Earlier reference price of the market, in US dollars per contract.", "example": 0.1, "type": "number" }, "response_price_unit": { + "description": "Price unit label Kalshi attaches to the market, such as `usd_cent`.", "example": "usd_cent", "type": "string" }, "result": { + "description": "Outcome the market settled on. Empty or omitted until it settles.", "type": "string" }, "rules_primary": { + "description": "Primary rules text that governs how the market settles.", "type": "string" }, "status": { + "description": "Market status as Kalshi reports it, such as `active`.", "example": "active", "type": "string" }, "sub_title": { + "description": "Short label of the outcome the market covers, shown under the title.", "example": "Mars", "type": "string" }, "ticker": { + "description": "Kalshi ticker that identifies the market.", "example": "KXELONMARS-99", "type": "string" }, "title": { + "description": "Market title as shown on Kalshi.", "example": "Will Elon Musk visit Mars before Aug 1, 2099?", "type": "string" }, "volume": { + "description": "Total number of contracts traded in the market.", "example": 94840.88, "type": "number" }, "volume_24h": { + "description": "Number of contracts traded in the last 24 hours.", "example": 16, "type": "number" }, "yes_ask": { + "description": "Lowest price asked for a Yes contract, in US dollars.", "example": 0.1, "type": "number" }, "yes_bid": { + "description": "Highest price offered for a Yes contract, in US dollars.", "example": 0.08, "type": "number" } @@ -99773,23 +104275,28 @@ "kalshi.MarketsResponse": { "properties": { "cursor": { + "description": "Cursor to pass in the next request to get the following page. Omitted when Kalshi returns none.", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "limit": { + "description": "Number of markets requested per page.", "example": 25, "type": "integer" }, "markets": { + "description": "Kalshi markets on this page.", "items": { "$ref": "#/definitions/kalshi.MarketRow" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/markets?limit=25", "type": "string" } @@ -99799,23 +104306,28 @@ "kalshi.MultivariateEventsResponse": { "properties": { "cursor": { + "description": "Cursor to pass in the next request to get the following page. Omitted when Kalshi returns none.", "type": "string" }, "events": { + "description": "Kalshi multivariate events on this page.", "items": { "$ref": "#/definitions/kalshi.EventRow" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "limit": { + "description": "Number of events requested per page.", "example": 25, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/events/multivariate?limit=25", "type": "string" } @@ -99825,10 +104337,12 @@ "kalshi.OrderBookLevel": { "properties": { "price": { + "description": "Price of the level, in US dollars per contract.", "example": 0.08, "type": "number" }, "size": { + "description": "Number of contracts resting at this price.", "example": 185.72, "type": "number" } @@ -99838,28 +104352,34 @@ "kalshi.OrderBookResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "no": { + "description": "Price levels on the No side of the book, highest price first.", "items": { "$ref": "#/definitions/kalshi.OrderBookLevel" }, "type": "array" }, "raw_unit_hint": { + "description": "Unit of the level prices, always `dollars`.", "example": "dollars", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/markets/KXELONMARS-99/orderbook", "type": "string" }, "ticker": { + "description": "Ticker of the Kalshi market the order book is for.", "example": "KXELONMARS-99", "type": "string" }, "yes": { + "description": "Price levels on the Yes side of the book, highest price first.", "items": { "$ref": "#/definitions/kalshi.OrderBookLevel" }, @@ -99887,23 +104407,28 @@ "kalshi.SeriesResponse": { "properties": { "cursor": { + "description": "Cursor returned by Kalshi with the series list. Omitted when Kalshi returns none.", "type": "string" }, "fetched_at": { + "description": "Time the series list was last fetched from Kalshi, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "limit": { + "description": "Number of series requested.", "example": 25, "type": "integer" }, "series": { + "description": "Kalshi series in the response.", "items": { "$ref": "#/definitions/kalshi.SeriesRow" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/series?limit=25", "type": "string" } @@ -99913,42 +104438,52 @@ "kalshi.SeriesRow": { "properties": { "category": { + "description": "Kalshi category of the series, such as `Politics`.", "example": "Politics", "type": "string" }, "contract_terms_url": { + "description": "Link to the series' contract terms document.", "type": "string" }, "contract_url": { + "description": "Link to the series' contract document.", "type": "string" }, "fee_multiplier": { + "description": "Multiplier applied to the series' fee calculation.", "example": 1, "type": "number" }, "fee_type": { + "description": "Fee model Kalshi applies to the series, such as `quadratic`.", "example": "quadratic", "type": "string" }, "frequency": { + "description": "How often the series produces events, such as `custom`.", "example": "custom", "type": "string" }, "last_updated": { + "description": "Time the series was last updated, in UTC (RFC 3339).", "example": "2026-06-01T15:24:00Z", "type": "string" }, "series_ticker": { + "description": "Kalshi ticker that identifies the series.", "example": "KXELONMARS", "type": "string" }, "settlement_sources": { + "description": "Sources Kalshi uses to settle the series' markets.", "items": { "$ref": "#/definitions/kalshi.SettlementSource" }, "type": "array" }, "title": { + "description": "Series title as shown on Kalshi.", "example": "Will Elon Musk visit Mars in his lifetime?", "type": "string" } @@ -99958,10 +104493,12 @@ "kalshi.SettlementSource": { "properties": { "name": { + "description": "Name of the source used to settle markets, such as `The Guardian`.", "example": "The Guardian", "type": "string" }, "url": { + "description": "Link to the settlement source's website.", "example": "https://www.theguardian.com", "type": "string" } @@ -99971,46 +104508,57 @@ "kalshi.TradeRow": { "properties": { "count": { + "description": "Number of contracts traded.", "example": 2, "type": "number" }, "created_time": { + "description": "Time the trade was created, in UTC (RFC 3339).", "example": "2026-06-07T07:23:05Z", "type": "string" }, "created_ts": { + "description": "Time the trade was created, in Unix seconds.", "example": 1780816985, "type": "integer" }, "is_block_trade": { + "description": "Whether the trade was a block trade.", "example": false, "type": "boolean" }, "no_price": { + "description": "Trade price of the No contract, in US dollars.", "example": 0.91, "type": "number" }, "taker_book_side": { + "description": "Order book side of the taker's order, such as `bid` or `ask`.", "example": "ask", "type": "string" }, "taker_outcome_side": { + "description": "Outcome side of the taker's order, such as `yes` or `no`.", "example": "no", "type": "string" }, "taker_side": { + "description": "Side the taker traded, `yes` or `no`.", "example": "no", "type": "string" }, "ticker": { + "description": "Ticker of the market the trade happened in.", "example": "KXELONMARS-99", "type": "string" }, "trade_id": { + "description": "Kalshi identifier of the trade.", "example": "9126fe1f-7233-7c75-2c37-06ce7841bbe3", "type": "string" }, "yes_price": { + "description": "Trade price of the Yes contract, in US dollars.", "example": 0.09, "type": "number" } @@ -100020,33 +104568,41 @@ "kalshi.TradesResponse": { "properties": { "cursor": { + "description": "Cursor to pass in the next request to get the following page. Omitted when Kalshi returns none.", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "limit": { + "description": "Number of trades requested per page.", "example": 25, "type": "integer" }, "max_ts": { + "description": "Latest trade creation time that was requested, in Unix seconds.", "example": 1780873200, "type": "integer" }, "min_ts": { + "description": "Earliest trade creation time that was requested, in Unix seconds.", "example": 1780786800, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://external-api.kalshi.com/trade-api/v2/markets/trades?limit=25", "type": "string" }, "ticker": { + "description": "Market ticker the trades were filtered by. Omitted when no ticker filter was used.", "example": "KXELONMARS-99", "type": "string" }, "trades": { + "description": "Recent trades on this page.", "items": { "$ref": "#/definitions/kalshi.TradeRow" }, @@ -103794,14 +108350,17 @@ "letterboxd.FilmRating": { "properties": { "average": { + "description": "Average Letterboxd member rating, out of 5.", "example": 4.52, "type": "number" }, "count": { + "description": "Number of member ratings behind the average.", "example": 5553202, "type": "integer" }, "review_count": { + "description": "Number of written reviews. Omitted when Letterboxd shows none.", "example": 740173, "type": "integer" } @@ -103811,12 +108370,15 @@ "letterboxd.FilmRef": { "properties": { "slug": { + "description": "Letterboxd film slug. Use it with the film endpoint for full detail.", "type": "string" }, "title": { + "description": "Title of the film.", "type": "string" }, "uri": { + "description": "Link to the film's page on Letterboxd.", "type": "string" } }, @@ -103825,73 +108387,93 @@ "letterboxd.FilmResponse": { "properties": { "cast": { + "description": "Cast members of the film, up to 25 credits.", "items": { "$ref": "#/definitions/letterboxd.PersonCredit" }, "type": "array" }, "countries": { + "description": "Countries the film was made in.", "items": { "type": "string" }, "type": "array" }, "directors": { + "description": "Directors of the film.", "items": { "$ref": "#/definitions/letterboxd.PersonCredit" }, "type": "array" }, "genres": { + "description": "Genres of the film.", "items": { "type": "string" }, "type": "array" }, "languages": { + "description": "Languages used in the film, as Letterboxd lists them.", "items": { "type": "string" }, "type": "array" }, "poster_url": { + "description": "URL of the film's poster image.", "type": "string" }, "production_companies": { + "description": "Names of the production companies behind the film.", "items": { "type": "string" }, "type": "array" }, "rating": { - "$ref": "#/definitions/letterboxd.FilmRating" + "allOf": [ + { + "$ref": "#/definitions/letterboxd.FilmRating" + } + ], + "description": "Aggregate Letterboxd member rating. Omitted when the film has no ratings." }, "release_date": { + "description": "Release date of the film, in YYYY-MM-DD format.", "example": "2019-05-21", "type": "string" }, "runtime_minutes": { + "description": "Running time of the film in minutes.", "example": 133, "type": "integer" }, "slug": { + "description": "Letterboxd film slug, for example `parasite-2019`. Use it with the film endpoints.", "example": "parasite-2019", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "synopsis": { + "description": "Short plot synopsis of the film.", "type": "string" }, "title": { + "description": "Title of the film.", "example": "Parasite", "type": "string" }, "uri": { + "description": "Link to the film's page on Letterboxd.", "type": "string" }, "year": { + "description": "Year the film was released.", "example": 2019, "type": "integer" } @@ -103933,9 +108515,11 @@ "letterboxd.PersonCredit": { "properties": { "name": { + "description": "Name of the person.", "type": "string" }, "slug": { + "description": "Letterboxd slug of the person. Use it with the person endpoint.", "type": "string" } }, @@ -103967,21 +108551,26 @@ "letterboxd.PopularResponse": { "properties": { "decade": { + "description": "Decade filter that was applied, for example `2010s`. Omitted when none was set.", "type": "string" }, "films": { + "description": "Films in the chart, most popular first.", "items": { "$ref": "#/definitions/letterboxd.FilmRef" }, "type": "array" }, "genre": { + "description": "Genre filter that was applied. Omitted when none was set.", "type": "string" }, "period": { + "description": "Time window of the chart: `day`, `week`, `month` or `year`. Omitted for the all-time chart.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -104076,18 +108665,22 @@ "letterboxd.SearchResponse": { "properties": { "query": { + "description": "Search text that was run.", "type": "string" }, "results": { + "description": "Search hits, one item per film, person, list or tag.", "items": { "$ref": "#/definitions/letterboxd.SearchResult" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "type": { + "description": "Result type the search was limited to, `film`. Omitted for a mixed search.", "type": "string" } }, @@ -104096,26 +108689,33 @@ "letterboxd.SearchResult": { "properties": { "owner": { + "description": "Username of the member who made the list. Present for list hits.", "type": "string" }, "role": { + "description": "Role of the person, `actor` or `director`. Present for person hits.", "example": "director", "type": "string" }, "slug": { + "description": "Letterboxd slug of the film or person. Present for film and person hits.", "type": "string" }, "title": { + "description": "Title of the film or list, name of the person, or the tag.", "type": "string" }, "type": { + "description": "Kind of hit: `film`, `person`, `list` or `tag`.", "example": "film", "type": "string" }, "uri": { + "description": "Link to the hit's page on Letterboxd.", "type": "string" }, "year": { + "description": "Year the film was released. Present for film hits.", "type": "integer" } }, @@ -104124,15 +108724,18 @@ "letterboxd.SimilarResponse": { "properties": { "films": { + "description": "Films Letterboxd lists as similar.", "items": { "$ref": "#/definitions/letterboxd.FilmRef" }, "type": "array" }, "slug": { + "description": "Slug of the film the similar films are for.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -104269,22 +108872,27 @@ "linkedin.Customer": { "properties": { "follower_count": { + "description": "Number of LinkedIn followers of the customer's company page.", "example": 12345, "type": "integer" }, "industry": { + "description": "Industry listed for the customer company.", "example": "Information Technology & Services", "type": "string" }, "link": { + "description": "LinkedIn URL of the customer's company page.", "example": "https://www.linkedin.com/company/contoso/", "type": "string" }, "logo": { + "description": "URL of the customer's logo image.", "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" }, "name": { + "description": "Name of the featured customer company.", "example": "Contoso Ltd.", "type": "string" } @@ -104294,82 +108902,107 @@ "linkedin.LinkedinCompanyResponse": { "properties": { "about": { + "description": "Company description from the About section.", "example": "We’re a team of scientists, engineers...", "type": "string" }, "affiliated_pages": { + "description": "Related company pages listed as affiliated with this company.", "items": { "$ref": "#/definitions/linkedin.Page" }, "type": "array" }, "company_size": { + "description": "Employee count range listed on the page, for example `501-1,000`.", "example": "501-1,000", "type": "string" }, "follower_count": { + "description": "Number of LinkedIn followers of the company page.", "example": 1176422, "type": "integer" }, "founded_on": { + "description": "Year the company was founded.", "example": 2010, "type": "integer" }, "headline": { + "description": "Tagline shown under the company name.", "example": "We're committed to solving intelligence, to advance science and benefit humanity.", "type": "string" }, "headquarters": { + "description": "Headquarters location as listed on the page.", "example": "London, London", "type": "string" }, "industry": { + "description": "Industry listed on the company page, for example `Research Services`.", "example": "Research Services", "type": "string" }, "link": { + "description": "LinkedIn URL of the company page.", "example": "https://www.linkedin.com/company/googledeepmind", "type": "string" }, "locations": { + "description": "Office locations listed on the company page.", "items": { "$ref": "#/definitions/linkedin.Location" }, "type": "array" }, "logo": { + "description": "URL of the company logo image.", "example": "https://static.licdn.com/.../linkedin-bug-color.png", "type": "string" }, "name": { + "description": "Company name as shown on its LinkedIn page.", "example": "Google DeepMind", "type": "string" }, "num_of_employees_on_linkedin": { + "description": "Number of employees who list the company on their LinkedIn profile.", "example": 5590, "type": "integer" }, + "products": { + "description": "Product Pages LinkedIn lists under the page's Products section.", + "items": { + "$ref": "#/definitions/linkedin.Product" + }, + "type": "array" + }, "similar_pages": { + "description": "Company pages LinkedIn suggests as similar to this company.", "items": { "$ref": "#/definitions/linkedin.Page" }, "type": "array" }, "specialties": { + "description": "Specialties listed on the company page.", "example": "Artificial Intelligence and Machine Learning", "type": "string" }, "type": { + "description": "Organization type listed on the page, for example `Privately Held`.", "example": "Privately Held", "type": "string" }, "updates": { + "description": "Recent posts shown on the company page.", "items": { "$ref": "#/definitions/linkedin.Update" }, "type": "array" }, "website": { + "description": "Company website address as listed on the page.", "example": "https://www.deepmind.google", "type": "string" } @@ -104379,64 +109012,78 @@ "linkedin.LinkedinProductResponse": { "properties": { "about": { + "description": "Product description from the About section.", "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": { + "description": "LinkedIn URL of the product category page.", "example": "https://www.linkedin.com/products/categories/business-management-software", "type": "string" }, "category_name": { + "description": "Name of the LinkedIn product category the product is listed in.", "example": "Business Management Software", "type": "string" }, "cover_image": { + "description": "URL of the product page 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": { + "description": "URL of the product's own website, from the visit button on the page.", "example": "https://dynamics.microsoft.com/en-us/business-central/overview/", "type": "string" }, "featured_customers": { + "description": "Customer companies featured on the product page.", "items": { "$ref": "#/definitions/linkedin.Customer" }, "type": "array" }, "link": { + "description": "LinkedIn URL of the product page.", "example": "https://www.linkedin.com/products/microsoft-dynamics-microsoft-dynamics-365-business-central", "type": "string" }, "logo": { + "description": "URL of the product logo image.", "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": { + "description": "Media items shown on the product page, one entry per thumbnail.", "items": { "$ref": "#/definitions/linkedin.Media" }, "type": "array" }, "name": { + "description": "Product name as shown on its LinkedIn page.", "example": "Microsoft Dynamics 365 Business Central", "type": "string" }, "organization_link": { + "description": "LinkedIn URL of the page of the company that makes the product.", "example": "https://www.linkedin.com/company/microsoft-dynamics/", "type": "string" }, "organization_name": { + "description": "Name of the company that makes the product.", "example": "Microsoft Dynamics 365", "type": "string" }, "other_products": { + "description": "Other products listed on the page, such as more products from the same company.", "items": { "$ref": "#/definitions/linkedin.Product" }, "type": "array" }, "similar_products": { + "description": "Products LinkedIn suggests as similar to this one.", "items": { "$ref": "#/definitions/linkedin.Product" }, @@ -104448,10 +109095,12 @@ "linkedin.Location": { "properties": { "address": { + "description": "Full street address of the location, as listed on the company page.", "example": "Kings Cross, London, London N1C4AG, GB", "type": "string" }, "is_primary": { + "description": "Whether this is the company's primary location on LinkedIn.", "example": true, "type": "boolean" } @@ -104461,10 +109110,12 @@ "linkedin.Media": { "properties": { "link": { + "description": "URL of the media thumbnail image.", "example": "https://media.licdn.com/media/sample-video.mp4", "type": "string" }, "name": { + "description": "Caption of the media item on the product page.", "example": "Product Demo Video", "type": "string" } @@ -104474,18 +109125,22 @@ "linkedin.Page": { "properties": { "address": { + "description": "Location shown on the page card, for example `San Francisco, CA`.", "example": "San Francisco, CA", "type": "string" }, "industry": { + "description": "Industry listed on the company page.", "example": "Research Services", "type": "string" }, "link": { + "description": "LinkedIn URL of the company page.", "example": "https://www.linkedin.com/company/openai", "type": "string" }, "name": { + "description": "Name of the company page.", "example": "OpenAI", "type": "string" } @@ -104495,22 +109150,27 @@ "linkedin.Product": { "properties": { "category_link": { + "description": "LinkedIn URL of the product category page.", "example": "https://www.linkedin.com/products/categories/business-management-software", "type": "string" }, "category_name": { + "description": "Name of the LinkedIn product category the product is listed in.", "example": "Business Management Software", "type": "string" }, "link": { + "description": "LinkedIn URL of the product page.", "example": "https://www.linkedin.com/products/odoo/", "type": "string" }, "logo": { + "description": "URL of the product logo image.", "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": { + "description": "Product name as shown on LinkedIn.", "example": "Odoo", "type": "string" } @@ -104622,14 +109282,17 @@ "linkedin.Update": { "properties": { "author": { + "description": "Name of the page that published the post.", "example": "Google DeepMind", "type": "string" }, "author_link": { + "description": "LinkedIn URL of the page that published the post.", "example": "https://uk.linkedin.com/company/googledeepmind", "type": "string" }, "images": { + "description": "URLs of the images attached to the post.", "example": [ "[\"https://example.com/image1.jpg\"]" ], @@ -104639,34 +109302,42 @@ "type": "array" }, "is_reposted": { + "description": "Whether the post is a repost of another LinkedIn post.", "example": false, "type": "boolean" }, "logo": { + "description": "URL of the logo image of the page that published the post.", "example": "https://media.licdn.com/dms/image/v2/D4E0BAQEntrYwxPlbQA/company-logo_100_100/0/googledeepmind_logo", "type": "string" }, "num_of_comments": { + "description": "Number of comments on the post.", "example": 21, "type": "integer" }, "num_of_reactions": { + "description": "Number of reactions on the post.", "example": 571, "type": "integer" }, "post_link": { + "description": "LinkedIn URL of the post.", "example": "https://www.linkedin.com/posts/googledeepmind_thomas-story-activity-7313245349987385346-5COL", "type": "string" }, "published_at": { + "description": "How long ago the post was published, as LinkedIn shows it, for example `1w`.", "example": "1w", "type": "string" }, "summary": { + "description": "Text of the post.", "example": "When his son was diagnosed with a rare disease, Googler Thomas Wagner...", "type": "string" }, "videos": { + "description": "URLs of the videos attached to the post.", "example": [ "[\"https://example.com/video1.mp4\"]" ], @@ -105170,33 +109841,42 @@ "lululemon.CategoryResponse": { "properties": { "category": { + "description": "Category slug that was requested, such as `women-new-styles`.", "type": "string" }, "cdp_hash": { + "description": "Short id segment of the category URL that was requested.", "type": "string" }, "count": { + "description": "Number of products returned on this page.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "page": { + "description": "Page number returned, starting at 1.", "type": "integer" }, "page_size": { + "description": "Maximum number of products on a page.", "type": "integer" }, "products": { + "description": "Products listed on this page of the category.", "items": { "$ref": "#/definitions/lululemon.ProductSummary" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "total_products": { + "description": "Total number of products in the category.", "type": "integer" } }, @@ -105458,66 +110138,83 @@ "lululemon.ProductSummary": { "properties": { "activities": { + "description": "Activities the product is designed for, such as `Casual` or `Lounge`.", "items": { "type": "string" }, "type": "array" }, "category": { + "description": "Name of the product's category, such as `Sweatpants`.", "type": "string" }, "category_id": { + "description": "Id of the product's category, such as `womens-sweatpants`.", "type": "string" }, "colors": { + "description": "Names of the colors the product comes in. Positions match `style_numbers`.", "items": { "type": "string" }, "type": "array" }, "currency": { + "description": "Currency code of the prices, such as `USD`.", "type": "string" }, "id": { + "description": "lululemon product id.", "type": "string" }, "image_url": { + "description": "URL of the first image lululemon lists for the product.", "type": "string" }, "list_price": { + "description": "List price of the product.", "type": "number" }, "name": { + "description": "Product name as shown on lululemon.", "type": "string" }, "new_arrival": { + "description": "Whether lululemon flags the product as a new arrival.", "type": "boolean" }, "on_sale": { + "description": "Whether the product is on sale.", "type": "boolean" }, "price": { + "description": "Current price of the product.", "type": "number" }, "sale_price": { + "description": "Sale price of the product. Set only when `on_sale` is `true`.", "type": "number" }, "sizes": { + "description": "Sizes the product is available in.", "items": { "type": "string" }, "type": "array" }, "style_numbers": { + "description": "Style numbers of the product, one per color. Positions match `colors`.", "items": { "type": "string" }, "type": "array" }, "unified_id": { + "description": "lululemon's unified product id, a slug such as `Scuba-Evolve-Straight-Leg-Pant-Regular`.", "type": "string" }, "url": { + "description": "URL of the product page on lululemon.", "type": "string" } }, @@ -107321,9 +112018,11 @@ "metacritic.Credit": { "properties": { "name": { + "description": "Name of the person credited.", "type": "string" }, "role": { + "description": "Role of the person on the title, for example `Director`.", "example": "Director", "type": "string" } @@ -107333,28 +112032,36 @@ "metacritic.CriticReview": { "properties": { "author": { + "description": "Name of the critic who wrote the review.", "type": "string" }, "date": { + "description": "Date the review was published, in YYYY-MM-DD.", "example": "2022-02-23", "type": "string" }, "platform": { + "description": "Platform the game was reviewed on. Set for game reviews.", "type": "string" }, "publication": { + "description": "Name of the publication that published the review.", "type": "string" }, "publication_slug": { + "description": "Metacritic slug of the publication.", "type": "string" }, "quote": { + "description": "Excerpt or summary of the review text.", "type": "string" }, "score": { + "description": "Score the critic gave, out of 100. Omitted when the review has no score.", "type": "integer" }, "url": { + "description": "URL of the full review on the publication's site.", "type": "string" } }, @@ -107363,27 +112070,34 @@ "metacritic.CriticReviewsResponse": { "properties": { "page": { + "description": "Page number returned, starting at 1.", "type": "integer" }, "per_page": { + "description": "Number of reviews per page.", "type": "integer" }, "reviews": { + "description": "Critic reviews on this page.", "items": { "$ref": "#/definitions/metacritic.CriticReview" }, "type": "array" }, "slug": { + "description": "Metacritic slug of the title the reviews belong to.", "type": "string" }, "sort": { + "description": "Sort order applied: `date`, `score` or `publication`.", "type": "string" }, "total": { + "description": "Total number of critic reviews for the title.", "type": "integer" }, "type": { + "description": "Content type of the title: `game`, `movie` or `tv`.", "type": "string" } }, @@ -107392,9 +112106,11 @@ "metacritic.Genre": { "properties": { "id": { + "description": "Metacritic genre id.", "type": "integer" }, "name": { + "description": "Genre name, for example `Action RPG`.", "type": "string" } }, @@ -107403,19 +112119,28 @@ "metacritic.Platform": { "properties": { "id": { + "description": "Metacritic platform id.", "type": "integer" }, "is_lead": { + "description": "Whether this is the game's lead platform.", "type": "boolean" }, "metascore": { - "$ref": "#/definitions/metacritic.ScoreSummary" + "allOf": [ + { + "$ref": "#/definitions/metacritic.ScoreSummary" + } + ], + "description": "Critic score summary for the game on this platform." }, "name": { + "description": "Platform name, for example `PlayStation 5`.", "example": "PlayStation 5", "type": "string" }, "release_date": { + "description": "Release date of the game on this platform.", "type": "string" } }, @@ -107424,91 +112149,131 @@ "metacritic.Product": { "properties": { "countries": { + "description": "Countries Metacritic lists for the title.", "items": { "type": "string" }, "type": "array" }, "description": { + "description": "Plot or game summary as shown on Metacritic.", "type": "string" }, "duration": { + "description": "Running time of the title as Metacritic lists it.", "type": "integer" }, "genres": { + "description": "Genres Metacritic assigns to the title.", "items": { "$ref": "#/definitions/metacritic.Genre" }, "type": "array" }, "id": { + "description": "Metacritic's numeric id for the title.", "type": "integer" }, "image": { + "description": "Main image of the title as Metacritic lists it.", "type": "string" }, "imdb_id": { + "description": "IMDb id of the title, for example `tt0903747`.", "type": "string" }, "imdb_url": { + "description": "URL of the title's IMDb page.", "type": "string" }, "in_theaters": { + "description": "Whether the movie is currently in theaters. Omitted when false.", "type": "boolean" }, "metascore": { - "$ref": "#/definitions/metacritic.ScoreSummary" + "allOf": [ + { + "$ref": "#/definitions/metacritic.ScoreSummary" + } + ], + "description": "Critic score summary for the title." }, "networks": { + "description": "TV networks that air the show.", "items": { "type": "string" }, "type": "array" }, "platforms": { + "description": "Platforms the game is released on, each with its own Metascore.", "items": { "$ref": "#/definitions/metacritic.Platform" }, "type": "array" }, "premiere_year": { + "description": "Year the title premiered or was first released.", "type": "integer" }, "production": { - "$ref": "#/definitions/metacritic.Production" + "allOf": [ + { + "$ref": "#/definitions/metacritic.Production" + } + ], + "description": "Companies, crew and official site for the title." }, "rating": { + "description": "Content rating of the title, for example `M` or `TV-MA`.", "example": "M", "type": "string" }, "release_date": { + "description": "Release date of the title, in YYYY-MM-DD.", "example": "2022-02-25", "type": "string" }, "season_count": { + "description": "Number of seasons of the show.", "type": "integer" }, "slug": { + "description": "Metacritic URL slug of the title. Use it with the review endpoints.", "type": "string" }, "tagline": { + "description": "Marketing tagline of the title.", "type": "string" }, "title": { + "description": "Title name as shown on Metacritic.", "type": "string" }, "type": { + "description": "Content type of the title: `game`, `movie` or `tv`.", "example": "game", "type": "string" }, "url": { + "description": "Metacritic page URL of the title.", "type": "string" }, "user_score": { - "$ref": "#/definitions/metacritic.ScoreSummary" + "allOf": [ + { + "$ref": "#/definitions/metacritic.ScoreSummary" + } + ], + "description": "User score summary for the title. Omitted when it has no user score yet." }, "video": { - "$ref": "#/definitions/metacritic.Video" + "allOf": [ + { + "$ref": "#/definitions/metacritic.Video" + } + ], + "description": "Trailer or clip Metacritic links for the title." } }, "type": "object" @@ -107516,18 +112281,21 @@ "metacritic.Production": { "properties": { "companies": { + "description": "Companies involved in making or publishing the title, without duplicates (up to 12).", "items": { "type": "string" }, "type": "array" }, "crew": { + "description": "Crew credits for the title.", "items": { "$ref": "#/definitions/metacritic.Credit" }, "type": "array" }, "official_site": { + "description": "URL of the title's official website.", "type": "string" } }, @@ -107536,29 +112304,37 @@ "metacritic.ScoreSummary": { "properties": { "max": { + "description": "Highest possible value of `score`, for example `100`.", "example": 100, "type": "integer" }, "negative_count": { + "description": "Number of negative reviews counted in the score.", "type": "integer" }, "neutral_count": { + "description": "Number of neutral (mixed) reviews counted in the score.", "type": "integer" }, "positive_count": { + "description": "Number of positive reviews counted in the score.", "type": "integer" }, "review_count": { + "description": "Number of reviews the score is based on.", "type": "integer" }, "score": { + "description": "Score value on the scale given by `max`. Metascores are out of 100 and user scores out of 10.", "type": "number" }, "sentiment": { + "description": "Metacritic's verdict for the score, for example `Universal acclaim`.", "example": "Universal acclaim", "type": "string" }, "url": { + "description": "Metacritic page listing the reviews behind the score.", "type": "string" } }, @@ -107567,30 +112343,39 @@ "metacritic.UserReview": { "properties": { "author": { + "description": "Username of the member who wrote the review.", "type": "string" }, "date": { + "description": "Date the review was posted, in YYYY-MM-DD.", "type": "string" }, "id": { + "description": "Metacritic review id.", "type": "string" }, "platform": { + "description": "Platform the game was reviewed on. Set for game reviews.", "type": "string" }, "quote": { + "description": "Text of the user review.", "type": "string" }, "score": { + "description": "Score the user gave, out of 10. Omitted when the review has no score.", "type": "integer" }, "spoiler": { + "description": "Whether the review is flagged as containing spoilers.", "type": "boolean" }, "thumbs_down": { + "description": "Number of members who voted the review not helpful.", "type": "integer" }, "thumbs_up": { + "description": "Number of members who voted the review helpful.", "type": "integer" } }, @@ -107599,27 +112384,34 @@ "metacritic.UserReviewsResponse": { "properties": { "page": { + "description": "Page number returned, starting at 1.", "type": "integer" }, "per_page": { + "description": "Number of reviews per page.", "type": "integer" }, "reviews": { + "description": "User reviews on this page.", "items": { "$ref": "#/definitions/metacritic.UserReview" }, "type": "array" }, "slug": { + "description": "Metacritic slug of the title the reviews belong to.", "type": "string" }, "sort": { + "description": "Sort order applied: `date`, `score` or `helpful`.", "type": "string" }, "total": { + "description": "Total number of user reviews for the title.", "type": "integer" }, "type": { + "description": "Content type of the title: `game`, `movie` or `tv`.", "type": "string" } }, @@ -107628,15 +112420,19 @@ "metacritic.Video": { "properties": { "duration": { + "description": "Length of the video as Metacritic lists it.", "type": "integer" }, "embed_url": { + "description": "URL for embedding the video player.", "type": "string" }, "title": { + "description": "Title of the video.", "type": "string" }, "url": { + "description": "URL of the video.", "type": "string" } }, @@ -107709,52 +112505,63 @@ "metaculus.ForecastHistoryPoint": { "properties": { "center": { + "description": "Central value of the community forecast, as Metaculus reports it. Same as the first value in `centers`.", "example": 0.36, "type": "number" }, "centers": { + "description": "All central values of the forecast, as Metaculus reports them. Multiple-choice questions have one per option.", "items": { "type": "number" }, "type": "array" }, "end_time": { + "description": "End of the period this point covers, in UTC (RFC 3339).", "example": "2026-06-01T17:06:20Z", "type": "string" }, "end_ts": { + "description": "End of the period this point covers, in Unix seconds.", "example": 1780333580.206417, "type": "number" }, "forecaster_count": { + "description": "Number of forecasters behind this point.", "example": 17, "type": "integer" }, "interval_lower_bounds": { + "description": "All lower interval bounds of the forecast, in the same order as `centers`.", "items": { "type": "number" }, "type": "array" }, "interval_upper_bounds": { + "description": "All upper interval bounds of the forecast, in the same order as `centers`.", "items": { "type": "number" }, "type": "array" }, "lower": { + "description": "Lower bound of the forecast interval, as Metaculus reports it.", "example": 0.26, "type": "number" }, "start_time": { + "description": "Start of the period this point covers, in UTC (RFC 3339).", "example": "2026-06-01T17:00:00Z", "type": "string" }, "start_ts": { + "description": "Start of the period this point covers, in Unix seconds.", "example": 1780333200, "type": "number" }, "upper": { + "description": "Upper bound of the forecast interval, as Metaculus reports it.", "example": 0.61, "type": "number" } @@ -107764,35 +112571,47 @@ "metaculus.ForecastHistoryResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "max_points": { + "description": "Maximum number of history points requested. When there are more, the most recent are returned.", "example": 500, "type": "integer" }, "method": { + "description": "Aggregation method used: `recency_weighted`, `unweighted` or `single_aggregation`.", "example": "recency_weighted", "type": "string" }, "points": { + "description": "Forecast history points in time order, one item per period.", "items": { "$ref": "#/definitions/metaculus.ForecastHistoryPoint" }, "type": "array" }, "points_count": { + "description": "Number of history points returned.", "example": 25, "type": "integer" }, "public_page_derived": { + "description": "Always `true`: the values are those shown publicly on Metaculus, without a login.", "example": true, "type": "boolean" }, "question": { - "$ref": "#/definitions/metaculus.QuestionRow" + "allOf": [ + { + "$ref": "#/definitions/metaculus.QuestionRow" + } + ], + "description": "Summary of the Metaculus question this response is about." }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.metaculus.com/questions/43612/", "type": "string" } @@ -107802,44 +112621,53 @@ "metaculus.ForecastSummary": { "properties": { "center": { + "description": "Central value of the community forecast, as Metaculus reports it.", "example": 0.52, "type": "number" }, "centers": { + "description": "All central values of the forecast, as Metaculus reports them. Multiple-choice questions have one per option.", "items": { "type": "number" }, "type": "array" }, "forecaster_count": { + "description": "Number of forecasters behind the latest forecast.", "example": 54, "type": "integer" }, "history_points": { + "description": "Number of history points available for this method.", "example": 25, "type": "integer" }, "interval_lower_bounds": { + "description": "All lower interval bounds of the forecast, in the same order as `centers`.", "items": { "type": "number" }, "type": "array" }, "interval_upper_bounds": { + "description": "All upper interval bounds of the forecast, in the same order as `centers`.", "items": { "type": "number" }, "type": "array" }, "lower": { + "description": "Lower bound of the forecast interval, as Metaculus reports it.", "example": 0.37, "type": "number" }, "method": { + "description": "Aggregation method name, for example `recency_weighted`, `unweighted` or `single_aggregation`.", "example": "recency_weighted", "type": "string" }, "upper": { + "description": "Upper bound of the forecast interval, as Metaculus reports it.", "example": 0.66, "type": "number" } @@ -107849,27 +112677,37 @@ "metaculus.ForecastsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "methods": { + "description": "Latest forecast per aggregation method, with the preferred methods first.", "items": { "$ref": "#/definitions/metaculus.ForecastSummary" }, "type": "array" }, "methods_count": { + "description": "Number of aggregation methods returned.", "example": 3, "type": "integer" }, "public_page_derived": { + "description": "Always `true`: the values are those shown publicly on Metaculus, without a login.", "example": true, "type": "boolean" }, "question": { - "$ref": "#/definitions/metaculus.QuestionRow" + "allOf": [ + { + "$ref": "#/definitions/metaculus.QuestionRow" + } + ], + "description": "Summary of the Metaculus question this response is about." }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.metaculus.com/questions/43612/", "type": "string" } @@ -107879,34 +112717,42 @@ "metaculus.OptionForecast": { "properties": { "center": { + "description": "Central value of the community forecast for this option.", "example": 0.42, "type": "number" }, "forecast_value": { + "description": "Forecast value for this option, as Metaculus reports it.", "example": 0.42, "type": "number" }, "forecaster_count": { + "description": "Number of forecasters behind this option's forecast.", "example": 5, "type": "integer" }, "index": { + "description": "Position of the option in the question's option list, starting at 0.", "example": 0, "type": "integer" }, "label": { + "description": "Name of the option, for example `OpenAI`.", "example": "OpenAI", "type": "string" }, "lower": { + "description": "Lower bound of the forecast interval for this option.", "example": 0.31, "type": "number" }, "mean": { + "description": "Mean of the community forecast for this option.", "example": 0.39, "type": "number" }, "upper": { + "description": "Upper bound of the forecast interval for this option.", "example": 0.43, "type": "number" } @@ -107916,10 +112762,12 @@ "metaculus.OptionsChange": { "properties": { "changed_at": { + "description": "Time the option list changed, as Metaculus reports it.", "example": "0001-01-01T00:00:00", "type": "string" }, "options": { + "description": "Option labels in effect from that time.", "items": { "type": "string" }, @@ -107931,37 +112779,49 @@ "metaculus.OptionsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "method": { + "description": "Aggregation method used: `recency_weighted`, `unweighted` or `single_aggregation`.", "example": "recency_weighted", "type": "string" }, "options": { + "description": "Latest forecast for each option of the question.", "items": { "$ref": "#/definitions/metaculus.OptionForecast" }, "type": "array" }, "options_count": { + "description": "Number of options returned.", "example": 2, "type": "integer" }, "options_history": { + "description": "Earlier versions of the option list, when the options changed.", "items": { "$ref": "#/definitions/metaculus.OptionsChange" }, "type": "array" }, "public_page_derived": { + "description": "Always `true`: the values are those shown publicly on Metaculus, without a login.", "example": true, "type": "boolean" }, "question": { - "$ref": "#/definitions/metaculus.QuestionRow" + "allOf": [ + { + "$ref": "#/definitions/metaculus.QuestionRow" + } + ], + "description": "Summary of the Metaculus question this response is about." }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.metaculus.com/questions/43731/", "type": "string" } @@ -107971,22 +112831,27 @@ "metaculus.Project": { "properties": { "emoji": { + "description": "Emoji shown next to the category or project on Metaculus.", "example": "💼", "type": "string" }, "id": { + "description": "Metaculus id of the category or project.", "example": 3698, "type": "integer" }, "name": { + "description": "Display name, for example `Economy & Business`.", "example": "Economy & Business", "type": "string" }, "slug": { + "description": "URL slug, for example `economy-business`.", "example": "economy-business", "type": "string" }, "type": { + "description": "Kind of project, for example `category` or `tournament`.", "example": "category", "type": "string" } @@ -107996,90 +112861,121 @@ "metaculus.QuestionMetadataResponse": { "properties": { "actual_close_time": { + "description": "Time the question actually closed to forecasts, as Metaculus reports it.", "example": "2026-12-30T23:59:00Z", "type": "string" }, "actual_resolve_time": { + "description": "Time the question actually resolved, as Metaculus reports it.", "example": "2027-01-02T00:00:00Z", "type": "string" }, "all_options_ever": { + "description": "Every option label the question has ever had.", "items": { "type": "string" }, "type": "array" }, "default_aggregation_method": { + "description": "Aggregation method Metaculus shows by default, for example `recency_weighted`.", "example": "recency_weighted", "type": "string" }, "default_score_type": { + "description": "Score type Metaculus uses by default, for example `peer`.", "example": "peer", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "group_variable": { + "description": "Name of the variable that distinguishes the questions in a group, for example `Company`.", "example": "Company", "type": "string" }, "inbound_outcome_count": { + "description": "Number of outcomes inside the question's range.", "example": 10, "type": "integer" }, "include_bots_in_aggregates": { + "description": "Whether bot forecasts are included in the aggregate forecasts.", "example": false, "type": "boolean" }, "open_lower_bound": { + "description": "Whether the answer can fall below the lower end of the range.", "example": false, "type": "boolean" }, "open_upper_bound": { + "description": "Whether the answer can fall above the upper end of the range.", "example": false, "type": "boolean" }, "options": { + "description": "Current option labels of a multiple-choice question.", "items": { "type": "string" }, "type": "array" }, "options_history": { + "description": "Earlier versions of the option list, when the options changed.", "items": { "$ref": "#/definitions/metaculus.OptionsChange" }, "type": "array" }, "options_order": { + "description": "How the options are ordered, for example `DEFAULT`.", "example": "DEFAULT", "type": "string" }, - "possibilities": {}, + "possibilities": { + "description": "Possible outcomes of the question, as Metaculus describes them." + }, "public_page_derived": { + "description": "Always `true`: the values are those shown publicly on Metaculus, without a login.", "example": true, "type": "boolean" }, "question": { - "$ref": "#/definitions/metaculus.QuestionRow" + "allOf": [ + { + "$ref": "#/definitions/metaculus.QuestionRow" + } + ], + "description": "Summary of the Metaculus question this response is about." }, "resolution": { + "description": "Resolution of the question, as Metaculus reports it. Omitted while unresolved.", "type": "string" }, "resolution_set_time": { + "description": "Time the resolution was set, as Metaculus reports it.", "example": "2027-01-02T00:00:00Z", "type": "string" }, "scaling": { - "$ref": "#/definitions/metaculus.QuestionScaling" + "allOf": [ + { + "$ref": "#/definitions/metaculus.QuestionScaling" + } + ], + "description": "Range and scale settings of a numeric or date question." }, "short_title": { + "description": "Short form of the question title.", "example": "OpenAI or Anthropic - higher valuation on Jan 1, 2027?", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.metaculus.com/questions/43731/", "type": "string" } @@ -108105,102 +113001,126 @@ "metaculus.QuestionRow": { "properties": { "categories": { + "description": "Categories the question is filed under.", "items": { "$ref": "#/definitions/metaculus.Project" }, "type": "array" }, "comment_count": { + "description": "Number of comments on the question.", "example": 16, "type": "integer" }, "edited_at": { + "description": "Time the question was last edited, in UTC (RFC 3339).", "example": "2026-06-07T13:14:34Z", "type": "string" }, "forecaster_count": { + "description": "Number of forecasters who have forecast on the question.", "example": 54, "type": "integer" }, "forecasts_count": { + "description": "Total number of forecasts submitted on the question.", "example": 149, "type": "integer" }, "id": { + "description": "Metaculus post id of the question. Use it with the question endpoints.", "example": 43612, "type": "integer" }, "latest_forecast_center": { + "description": "Central value of the latest community forecast, as Metaculus reports it.", "example": 0.52, "type": "number" }, "latest_forecast_lower": { + "description": "Lower bound of the latest community forecast interval.", "example": 0.37, "type": "number" }, "latest_forecast_upper": { + "description": "Upper bound of the latest community forecast interval.", "example": 0.66, "type": "number" }, "open_time": { + "description": "Time the question opened for forecasts, in UTC (RFC 3339).", "example": "2026-06-01T17:00:00Z", "type": "string" }, "projects": { + "description": "Tournaments and projects the question belongs to.", "items": { "$ref": "#/definitions/metaculus.Project" }, "type": "array" }, "public_page_derived": { + "description": "Always `true`: the values are those shown publicly on Metaculus, without a login.", "example": true, "type": "boolean" }, "published_at": { + "description": "Time the question was published, in UTC (RFC 3339).", "example": "2026-05-29T15:33:53Z", "type": "string" }, "question_id": { + "description": "Metaculus id of the underlying question, which can differ from the post `id`.", "example": 43609, "type": "integer" }, "question_title": { + "description": "Full wording of the question.", "example": "What will be the World Bank monthly price of liquid sulphur in June 2026?", "type": "string" }, "question_type": { + "description": "Question type, for example `binary`, `numeric` or `multiple_choice`.", "example": "numeric", "type": "string" }, "resolved": { + "description": "Whether the question has been resolved.", "example": false, "type": "boolean" }, "scheduled_close_time": { + "description": "Time the question is scheduled to close to forecasts, in UTC (RFC 3339).", "example": "2026-07-15T00:00:00Z", "type": "string" }, "scheduled_resolve_time": { + "description": "Time the question is scheduled to resolve, in UTC (RFC 3339).", "example": "2026-09-07T00:00:00Z", "type": "string" }, "slug": { + "description": "URL slug of the question.", "example": "tampa-sulphur-price-in-june-2026", "type": "string" }, "status": { + "description": "Question status on Metaculus, for example `open`.", "example": "open", "type": "string" }, "title": { + "description": "Question title as shown on Metaculus.", "example": "Tampa sulphur price in June 2026?", "type": "string" }, "unit": { + "description": "Unit of the answer for numeric questions, for example `USD/metric ton`.", "example": "USD/metric ton", "type": "string" }, "url": { + "description": "Metaculus page URL of the question.", "example": "https://www.metaculus.com/questions/43612/tampa-sulphur-price-in-june-2026/", "type": "string" } @@ -108215,34 +113135,42 @@ "type": "array" }, "inbound_outcome_count": { + "description": "Number of outcomes inside the question's range.", "example": 10, "type": "integer" }, "nominal_max": { + "description": "Highest value of the range as shown to forecasters.", "example": 100, "type": "number" }, "nominal_min": { + "description": "Lowest value of the range as shown to forecasters.", "example": 0, "type": "number" }, "open_lower_bound": { + "description": "Whether the answer can fall below the lower end of the range.", "example": false, "type": "boolean" }, "open_upper_bound": { + "description": "Whether the answer can fall above the upper end of the range.", "example": false, "type": "boolean" }, "range_max": { + "description": "Upper end of the question's range.", "example": 100, "type": "number" }, "range_min": { + "description": "Lower end of the question's range.", "example": 0, "type": "number" }, "zero_point": { + "description": "Zero point of the question's range, when Metaculus defines one.", "example": 0, "type": "number" } @@ -108252,24 +113180,29 @@ "metaculus.QuestionsResponse": { "properties": { "feed": { + "description": "Feed the questions came from, for example `questions`.", "example": "questions", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of questions requested.", "example": 10, "type": "integer" }, "questions": { + "description": "Questions in the feed, one item per question.", "items": { "$ref": "#/definitions/metaculus.QuestionRow" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.metaculus.com/questions/", "type": "string" } @@ -112036,9 +116969,11 @@ "mlb.NamedRef": { "properties": { "id": { + "description": "MLB id of the player or league.", "type": "integer" }, "name": { + "description": "Name of the player or league.", "type": "string" } }, @@ -112755,26 +117690,45 @@ "mlb.StatSplit": { "properties": { "league": { - "$ref": "#/definitions/mlb.NamedRef" + "allOf": [ + { + "$ref": "#/definitions/mlb.NamedRef" + } + ], + "description": "League the row belongs to. Omitted when MLB gives none." }, "player": { - "$ref": "#/definitions/mlb.NamedRef" + "allOf": [ + { + "$ref": "#/definitions/mlb.NamedRef" + } + ], + "description": "Player the row belongs to. Omitted when MLB gives none." }, "position": { + "description": "Position name as MLB lists it. Omitted when MLB gives none.", "type": "string" }, "rank": { + "description": "Position of the row in the ranking. Omitted when the table is not ranked.", "type": "integer" }, "season": { + "description": "Season the row covers, as a year. Omitted for rows that are not tied to one season.", "type": "string" }, "stats": { "additionalProperties": {}, + "description": "Statistics for the row, as named values such as `homeRuns`. The set of stats depends on `group` and `type`.", "type": "object" }, "team": { - "$ref": "#/definitions/mlb.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/mlb.TeamRef" + } + ], + "description": "Team the row belongs to. Omitted when MLB gives none." } }, "type": "object" @@ -114363,39 +119317,50 @@ "mlb.StatsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "group": { + "description": "Stat group that was returned, for example `hitting` or `pitching`.", "type": "string" }, "limit": { + "description": "Maximum number of rows requested. Omitted when no limit applies.", "type": "integer" }, "offset": { + "description": "Number of rows skipped before this page. Omitted when zero.", "type": "integer" }, "player_id": { + "description": "MLB player id the stats are for. Omitted for team and league-wide tables.", "type": "integer" }, "season": { + "description": "Season the stats cover, as a year.", "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "splits": { + "description": "Rows of statistics, one item per player, team or period.", "items": { "$ref": "#/definitions/mlb.StatSplit" }, "type": "array" }, "team_id": { + "description": "MLB team id the stats are limited to. Omitted when not limited to a team.", "type": "integer" }, "total": { + "description": "Total number of rows available.", "type": "integer" }, "type": { + "description": "Stats type label. Always `season`.", "type": "string" } }, @@ -114404,6 +119369,7 @@ "mlb.Team": { "properties": { "abbreviation": { + "description": "Short team abbreviation, for example `NYY`. Omitted when not available.", "type": "string" }, "active": { @@ -114419,6 +119385,7 @@ "type": "string" }, "id": { + "description": "MLB team id.", "type": "integer" }, "league": { @@ -114428,6 +119395,7 @@ "type": "string" }, "name": { + "description": "Full team name.", "type": "string" }, "season": { @@ -114472,12 +119440,15 @@ "mlb.TeamRef": { "properties": { "abbreviation": { + "description": "Short team abbreviation, for example `NYY`. Omitted when not available.", "type": "string" }, "id": { + "description": "MLB team id.", "type": "integer" }, "name": { + "description": "Full team name.", "type": "string" } }, @@ -119894,24 +124865,30 @@ "type": "string" }, "cost_of_living_index": { + "description": "Numbeo Cost of Living Index; a higher value means consumer goods cost more.", "type": "number" }, "cost_of_living_plus_rent_index": { + "description": "Numbeo Cost of Living Plus Rent Index, which combines consumer prices and rent.", "type": "number" }, "groceries_index": { + "description": "Numbeo Groceries Index; a higher value means groceries cost more.", "type": "number" }, "local_purchasing_power_index": { + "description": "Numbeo Local Purchasing Power Index; a higher value means locals can afford more with their wages.", "type": "number" }, "rank": { "type": "integer" }, "rent_index": { + "description": "Numbeo Rent Index; a higher value means rent costs more.", "type": "number" }, "restaurant_price_index": { + "description": "Numbeo Restaurant Price Index; a higher value means meals and drinks out cost more.", "type": "number" } }, @@ -119920,27 +124897,34 @@ "numbeo.CostOfLivingCityResponse": { "properties": { "categories": { + "description": "Price categories for the city, each with its priced items.", "items": { "$ref": "#/definitions/numbeo.PriceCategory" }, "type": "array" }, "city": { + "description": "City name as Numbeo shows it, with the state or region where Numbeo adds one, such as `Los Angeles, CA`.", "type": "string" }, "city_slug": { + "description": "Numbeo city slug that was requested, such as `Los-Angeles`.", "type": "string" }, "contributors_12mo": { + "description": "Number of different contributors behind the city's prices, as Numbeo reports it.", "type": "integer" }, "country": { + "description": "Country the city is in.", "type": "string" }, "last_update": { + "description": "Date Numbeo last updated the city's prices, as Numbeo shows it, such as `13 July 2026`.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -119978,27 +124962,35 @@ "numbeo.CountryIndexEntry": { "properties": { "cost_of_living_index": { + "description": "Numbeo Cost of Living Index; a higher value means consumer goods cost more.", "type": "number" }, "cost_of_living_plus_rent_index": { + "description": "Numbeo Cost of Living Plus Rent Index, which combines consumer prices and rent.", "type": "number" }, "country": { + "description": "Country name as Numbeo shows it.", "type": "string" }, "groceries_index": { + "description": "Numbeo Groceries Index; a higher value means groceries cost more.", "type": "number" }, "local_purchasing_power_index": { + "description": "Numbeo Local Purchasing Power Index; a higher value means locals can afford more with their wages.", "type": "number" }, "rank": { + "description": "Position of the country in Numbeo's cost-of-living ranking, starting at 1.", "type": "integer" }, "rent_index": { + "description": "Numbeo Rent Index; a higher value means rent costs more.", "type": "number" }, "restaurant_price_index": { + "description": "Numbeo Restaurant Price Index; a higher value means meals and drinks out cost more.", "type": "number" } }, @@ -120007,21 +124999,26 @@ "numbeo.IndexRankingEntry": { "properties": { "city": { + "description": "City name as Numbeo shows it. Set on city rankings.", "type": "string" }, "city_slug": { + "description": "Numbeo city slug. Set on city rankings.", "type": "string" }, "country": { + "description": "Country name as Numbeo shows it. Set on country rankings.", "type": "string" }, "indices": { + "description": "Index values Numbeo publishes for this row, in table column order.", "items": { "$ref": "#/definitions/numbeo.NamedValue" }, "type": "array" }, "rank": { + "description": "Position in the Numbeo ranking, starting at 1.", "type": "integer" } }, @@ -120146,15 +125143,18 @@ "numbeo.IndicesRankingsByCountryResponse": { "properties": { "countries": { + "description": "Countries ranked for this index family, in rank order.", "items": { "$ref": "#/definitions/numbeo.IndexRankingEntry" }, "type": "array" }, "index": { + "description": "Index family that was requested, such as `crime` or `traffic`.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -120186,9 +125186,11 @@ "numbeo.NamedValue": { "properties": { "name": { + "description": "Name of the index, as Numbeo labels it, such as `Crime Index`.", "type": "string" }, "value": { + "description": "Value of the index named in `name`.", "type": "number" } }, @@ -120197,9 +125199,11 @@ "numbeo.PriceCategory": { "properties": { "category": { + "description": "Numbeo section name, such as Restaurants, Markets or Rent Per Month.", "type": "string" }, "items": { + "description": "Priced goods and services listed under this category.", "items": { "$ref": "#/definitions/numbeo.PriceItem" }, @@ -120211,18 +125215,23 @@ "numbeo.PriceItem": { "properties": { "currency_symbol": { + "description": "Currency symbol Numbeo shows for the city's local currency, such as `$` or `€`.", "type": "string" }, "name": { + "description": "Name of the good or service, such as a meal at an inexpensive restaurant.", "type": "string" }, "price": { + "description": "Price of the item in the city's local currency, as shown on Numbeo.", "type": "number" }, "range_high": { + "description": "High end of the price range Numbeo reports for the item.", "type": "number" }, "range_low": { + "description": "Low end of the price range Numbeo reports for the item.", "type": "number" } }, @@ -120231,12 +125240,14 @@ "numbeo.RankingsByCountryResponse": { "properties": { "countries": { + "description": "Countries in Numbeo's cost-of-living ranking, in rank order.", "items": { "$ref": "#/definitions/numbeo.CountryIndexEntry" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -129464,6 +134475,7 @@ "pinterest.CategoriesResponse": { "properties": { "categories": { + "description": "Top-level Pinterest Ideas categories.", "items": { "$ref": "#/definitions/pinterest.Category" }, @@ -129475,12 +134487,15 @@ "pinterest.Category": { "properties": { "id": { + "description": "Pinterest category id. Use it with the ideas endpoint.", "type": "string" }, "name": { + "description": "Category name as shown on Pinterest.", "type": "string" }, "slug": { + "description": "URL slug of the category.", "type": "string" } }, @@ -129512,6 +134527,7 @@ "pinterest.PinDetail": { "properties": { "board_name": { + "description": "Name of the board the pin is saved to.", "type": "string" }, "comment_count": { @@ -129521,33 +134537,42 @@ "type": "string" }, "description": { + "description": "Description text of the pin as Pinterest shows it.", "type": "string" }, "domain": { + "description": "Domain of the website the pin links to, or `Uploaded by user` for pins uploaded directly.", "type": "string" }, "dominant_color": { + "description": "Dominant color of the pin image, as a hex code such as `#6a2f18`.", "type": "string" }, "id": { + "description": "Pinterest pin id.", "type": "string" }, "image_url": { + "description": "URL of the pin image.", "type": "string" }, "link": { + "description": "Destination URL the pin links to.", "type": "string" }, "pinner_username": { + "description": "Username of the account that saved the pin.", "type": "string" }, "repin_count": { "type": "integer" }, "title": { + "description": "Title of the pin as Pinterest shows it.", "type": "string" }, "url": { + "description": "URL of the pin's page on Pinterest.", "type": "string" } }, @@ -129556,33 +134581,43 @@ "pinterest.PinSummary": { "properties": { "board_name": { + "description": "Name of the board the pin is saved to.", "type": "string" }, "description": { + "description": "Description text of the pin as Pinterest shows it.", "type": "string" }, "domain": { + "description": "Domain of the website the pin links to, or `Uploaded by user` for pins uploaded directly.", "type": "string" }, "dominant_color": { + "description": "Dominant color of the pin image, as a hex code such as `#6a2f18`.", "type": "string" }, "id": { + "description": "Pinterest pin id.", "type": "string" }, "image_url": { + "description": "URL of the pin image.", "type": "string" }, "link": { + "description": "Destination URL the pin links to.", "type": "string" }, "pinner_username": { + "description": "Username of the account that saved the pin.", "type": "string" }, "title": { + "description": "Title of the pin as Pinterest shows it.", "type": "string" }, "url": { + "description": "URL of the pin's page on Pinterest.", "type": "string" } }, @@ -129605,33 +134640,43 @@ "pinterest.User": { "properties": { "about": { + "description": "Bio text from the profile.", "type": "string" }, "avatar_url": { + "description": "URL of the profile picture.", "type": "string" }, "board_count": { + "description": "Number of boards on the profile.", "type": "integer" }, "follower_count": { + "description": "Number of accounts following the user.", "type": "integer" }, "following_count": { + "description": "Number of accounts the user follows.", "type": "integer" }, "full_name": { + "description": "Display name shown on the profile.", "type": "string" }, "is_verified_merchant": { + "description": "Whether Pinterest marks the account as a verified merchant.", "type": "boolean" }, "pin_count": { + "description": "Number of pins on the profile.", "type": "integer" }, "username": { + "description": "Pinterest username of the profile.", "type": "string" }, "website_url": { + "description": "Website URL listed on the profile.", "type": "string" } }, @@ -129654,12 +134699,14 @@ "pinterest.UserPinsResponse": { "properties": { "pins": { + "description": "Pins from the user's profile.", "items": { "$ref": "#/definitions/pinterest.PinSummary" }, "type": "array" }, "username": { + "description": "Pinterest username that was requested.", "type": "string" } }, @@ -129796,16 +134843,19 @@ "pitchbook.DataTable": { "properties": { "columns": { + "description": "Column headings of the table.", "items": { "type": "string" }, "type": "array" }, "name": { + "description": "Name of the profile section the table comes from, such as `Investors`.", "example": "Investors", "type": "string" }, "row_ids": { + "description": "Profile each cell links to as `kind/id`, such as `company/157986-91`, matching `rows` by position. Empty for cells without a link.", "items": { "items": { "type": "string" @@ -129815,6 +134865,7 @@ "type": "array" }, "rows": { + "description": "Table rows, each a list of cell texts. Cells PitchBook hides behind a subscription are empty.", "items": { "items": { "type": "string" @@ -129824,6 +134875,7 @@ "type": "array" }, "total": { + "description": "Full count of entries PitchBook states for the section, usually more than the rows returned.", "example": 23, "type": "integer" } @@ -129833,10 +134885,12 @@ "pitchbook.FAQ": { "properties": { "answer": { + "description": "Answer to the question.", "example": "Thinking Machines Lab was founded in 2024.", "type": "string" }, "question": { + "description": "Question as shown in the profile's FAQ section.", "example": "When was Thinking Machines Lab founded?", "type": "string" } @@ -129849,30 +134903,37 @@ "additionalProperties": { "type": "string" }, + "description": "Contact and company details from the profile as label and value pairs, such as `Website`.", "type": "object" }, "description": { + "description": "Profile description as PitchBook shows it.", "type": "string" }, "faqs": { + "description": "Question and answer pairs from the profile's FAQ section.", "items": { "$ref": "#/definitions/pitchbook.FAQ" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-07-08T20:00:00Z", "type": "string" }, "id": { + "description": "PitchBook profile id, such as `752821-12`.", "example": "752821-12", "type": "string" }, "kind": { + "description": "Profile type: `company`, `investor`, `fund`, `advisor` or `limited-partner`.", "example": "company", "type": "string" }, "name": { + "description": "Name of the company, investor, fund, advisor or limited partner.", "example": "Thinking Machines Lab", "type": "string" }, @@ -129880,13 +134941,16 @@ "additionalProperties": { "type": "string" }, + "description": "Quick facts from the profile as label and value pairs, such as `Year Founded`.", "type": "object" }, "source_url": { + "description": "URL the data was read from.", "example": "https://pitchbook.com/profiles/company/752821-12", "type": "string" }, "tables": { + "description": "Tables from the profile's sections, such as Investors.", "items": { "$ref": "#/definitions/pitchbook.DataTable" }, @@ -130713,15 +135777,23 @@ "playstation.AddOn": { "properties": { "classification": { + "description": "Store classification of the add-on, for example `ADD_ON_PACK`.", "type": "string" }, "name": { + "description": "Add-on name as shown on the PlayStation Store.", "type": "string" }, "price": { - "$ref": "#/definitions/playstation.DetailPrice" + "allOf": [ + { + "$ref": "#/definitions/playstation.DetailPrice" + } + ], + "description": "Purchase price of the add-on." }, "product_id": { + "description": "PlayStation Store product id of the add-on. Use it with the product endpoint.", "type": "string" } }, @@ -130744,67 +135816,95 @@ "playstation.ConceptDetail": { "properties": { "add_ons": { + "description": "Downloadable add-ons, such as expansions or in-game currency, sold for the title.", "items": { "$ref": "#/definitions/playstation.AddOn" }, "type": "array" }, "content_rating": { - "$ref": "#/definitions/playstation.ContentRating" + "allOf": [ + { + "$ref": "#/definitions/playstation.ContentRating" + } + ], + "description": "Age rating of the title." }, "default_product_id": { + "description": "Product id of the title's default edition. Use it with the product endpoint.", "type": "string" }, "description": { + "description": "Long description of the title from its PlayStation Store page.", "type": "string" }, "editions": { + "description": "Purchasable game editions and bundles of the title.", "items": { "$ref": "#/definitions/playstation.Edition" }, "type": "array" }, "genres": { + "description": "Genre names the title is filed under.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "PlayStation Store concept id, which groups every edition and add-on of a title.", "type": "string" }, "invariant_name": { + "description": "Language-independent name of the title.", "type": "string" }, "media": { + "description": "Images and videos shown on the title's store page.", "items": { "$ref": "#/definitions/playstation.Media" }, "type": "array" }, "name": { + "description": "Title name as shown on the PlayStation Store.", "type": "string" }, "platforms": { + "description": "PlayStation platforms the title is available on, for example `PS4` or `PS5`.", "items": { "type": "string" }, "type": "array" }, "price": { - "$ref": "#/definitions/playstation.DetailPrice" + "allOf": [ + { + "$ref": "#/definitions/playstation.DetailPrice" + } + ], + "description": "Purchase price of the title's default edition." }, "publisher": { + "description": "Publisher of the title.", "type": "string" }, "release_date": { + "description": "Release date of the title, in ISO 8601.", "type": "string" }, "source_url": { + "description": "PlayStation Store page the data was read from.", "type": "string" }, "star_rating": { - "$ref": "#/definitions/playstation.StarRating" + "allOf": [ + { + "$ref": "#/definitions/playstation.StarRating" + } + ], + "description": "Aggregate user rating of the title." } }, "type": "object" @@ -130891,9 +135991,11 @@ "playstation.ContentRating": { "properties": { "authority": { + "description": "Rating board that issued the rating, for example `ESRB`.", "type": "string" }, "description": { + "description": "Rating label in plain words, for example `ESRB Mature 17+`.", "type": "string" }, "descriptors": { @@ -130904,9 +136006,11 @@ "type": "array" }, "name": { + "description": "Rating identifier as the store gives it, for example `ESRB_MATURE_17`.", "type": "string" }, "url": { + "description": "URL of the rating board's page for this rating.", "type": "string" } }, @@ -130915,45 +136019,58 @@ "playstation.DetailPrice": { "properties": { "applicability": { + "description": "How the price applies, for example `OUTRIGHT` for a one-time purchase.", "type": "string" }, "base_price": { + "description": "Regular price as a formatted string, for example `$59.99`.", "type": "string" }, "base_price_value": { + "description": "Regular price in the smallest currency unit, for example cents for USD.", "type": "integer" }, "currency_code": { + "description": "Currency code of the price, for example `USD`.", "type": "string" }, "discount_text": { + "description": "Discount label shown on the store, for example `-67%`.", "type": "string" }, "discounted_price": { + "description": "Current price after discount as a formatted string.", "type": "string" }, "discounted_value": { + "description": "Current price after discount in the smallest currency unit, for example cents for USD.", "type": "integer" }, "end_time": { + "description": "Time the offer ends, as the store gives it.", "type": "string" }, "is_exclusive": { + "description": "Whether the store marks the price as exclusive to a membership.", "type": "boolean" }, "is_free": { + "description": "Whether the item is free.", "type": "boolean" }, "is_tied_to_subscription": { + "description": "Whether the store marks the price as tied to a subscription.", "type": "boolean" }, "service_branding": { + "description": "Names of the PlayStation services the price is tied to.", "items": { "type": "string" }, "type": "array" }, "upsell_text": { + "description": "Promotional text the store shows next to the price.", "type": "string" } }, @@ -130962,21 +136079,30 @@ "playstation.Edition": { "properties": { "classification": { + "description": "Store classification of the edition, for example `FULL_GAME`.", "type": "string" }, "name": { + "description": "Edition name as shown on the PlayStation Store.", "type": "string" }, "platforms": { + "description": "PlayStation platforms the edition is available on.", "items": { "type": "string" }, "type": "array" }, "price": { - "$ref": "#/definitions/playstation.DetailPrice" + "allOf": [ + { + "$ref": "#/definitions/playstation.DetailPrice" + } + ], + "description": "Purchase price of the edition." }, "product_id": { + "description": "PlayStation Store product id of the edition. Use it with the product endpoint.", "type": "string" } }, @@ -130985,12 +136111,15 @@ "playstation.Facet": { "properties": { "display_name": { + "description": "Filter name as shown on the store, for example `Price`.", "type": "string" }, "name": { + "description": "Filter key, for example `webBasePrice`.", "type": "string" }, "values": { + "description": "Selectable values of the filter.", "items": { "$ref": "#/definitions/playstation.FacetValue" }, @@ -131002,12 +136131,15 @@ "playstation.FacetValue": { "properties": { "count": { + "description": "Number of items matching this filter value.", "type": "integer" }, "display_name": { + "description": "Filter value as shown on the store, for example `Free`.", "type": "string" }, "key": { + "description": "Value to select this filter option, for example `0-0`.", "type": "string" } }, @@ -131016,33 +136148,45 @@ "playstation.GridResponse": { "properties": { "count": { + "description": "Number of items returned on this page.", "type": "integer" }, "facets": { + "description": "Filters available for the grid, each with its values and counts.", "items": { "$ref": "#/definitions/playstation.Facet" }, "type": "array" }, "id": { + "description": "PlayStation Store category id of the grid.", "type": "string" }, "items": { + "description": "Items on this page of the grid.", "items": { "$ref": "#/definitions/playstation.StoreItem" }, "type": "array" }, "name": { + "description": "Category name as shown on the store, for example `All games`.", "type": "string" }, "next_page": { + "description": "Number of the next page. Omitted on the last page.", "type": "integer" }, "page_info": { - "$ref": "#/definitions/playstation.PageInfo" + "allOf": [ + { + "$ref": "#/definitions/playstation.PageInfo" + } + ], + "description": "Pagination details of the grid." }, "source_url": { + "description": "PlayStation Store page the data was read from.", "type": "string" } }, @@ -131051,36 +136195,45 @@ "playstation.ListPrice": { "properties": { "base_price": { + "description": "Regular price as a formatted string, for example `$19.99`.", "type": "string" }, "discount_text": { + "description": "Discount label shown on the store, for example `-50%`.", "type": "string" }, "discounted_price": { + "description": "Current price after discount as a formatted string.", "type": "string" }, "is_exclusive": { + "description": "Whether the store marks the price as exclusive to a membership.", "type": "boolean" }, "is_free": { + "description": "Whether the item is free.", "type": "boolean" }, "is_tied_to_subscription": { + "description": "Whether the store marks the price as tied to a subscription.", "type": "boolean" }, "service_branding": { + "description": "Names of the PlayStation services the price is tied to.", "items": { "type": "string" }, "type": "array" }, "upsell_service_branding": { + "description": "Names of the PlayStation services the upsell offer refers to.", "items": { "type": "string" }, "type": "array" }, "upsell_text": { + "description": "Promotional text the store shows next to the price.", "type": "string" } }, @@ -131089,12 +136242,15 @@ "playstation.Media": { "properties": { "role": { + "description": "Role of the asset on the store page, as the store labels it.", "type": "string" }, "type": { + "description": "Kind of asset, such as an image or a video.", "type": "string" }, "url": { + "description": "URL of the image or video.", "type": "string" } }, @@ -131132,15 +136288,19 @@ "playstation.PageInfo": { "properties": { "is_last": { + "description": "Whether this is the last page of results.", "type": "boolean" }, "offset": { + "description": "Position of the first item on this page within all results.", "type": "integer" }, "size": { + "description": "Number of items per page.", "type": "integer" }, "total_count": { + "description": "Total number of results across all pages.", "type": "integer" } }, @@ -131240,24 +136400,34 @@ "playstation.SearchResponse": { "properties": { "count": { + "description": "Number of items returned on this page.", "type": "integer" }, "items": { + "description": "Search results on this page.", "items": { "$ref": "#/definitions/playstation.StoreItem" }, "type": "array" }, "next_page": { + "description": "Number of the next page. Omitted on the last page.", "type": "integer" }, "page_info": { - "$ref": "#/definitions/playstation.PageInfo" + "allOf": [ + { + "$ref": "#/definitions/playstation.PageInfo" + } + ], + "description": "Pagination details of the results." }, "source_url": { + "description": "PlayStation Store page the data was read from.", "type": "string" }, "term": { + "description": "Search term that was run.", "type": "string" } }, @@ -131286,12 +136456,15 @@ "playstation.StarRating": { "properties": { "average": { + "description": "Average user rating out of 5.", "type": "number" }, "count": { + "description": "Number of user ratings.", "type": "integer" }, "distribution": { + "description": "Share of ratings at each star value, from 1 to 5.", "items": { "$ref": "#/definitions/playstation.StarRatingCount" }, @@ -131303,9 +136476,11 @@ "playstation.StarRatingCount": { "properties": { "percent": { + "description": "Percentage of ratings that gave this star value.", "type": "integer" }, "stars": { + "description": "Star value, from 1 to 5.", "type": "integer" } }, @@ -131314,34 +136489,46 @@ "playstation.StoreItem": { "properties": { "classification": { + "description": "Store classification of the item, for example `FULL_GAME`.", "type": "string" }, "id": { + "description": "PlayStation Store id of the item. Use it with the concept endpoint when `kind` is `concept`, or with the product endpoint when it is `product`.", "type": "string" }, "kind": { + "description": "Type of store entry: `concept` or `product`.", "type": "string" }, "media": { + "description": "Images and videos for the item.", "items": { "$ref": "#/definitions/playstation.Media" }, "type": "array" }, "name": { + "description": "Item name as shown on the PlayStation Store.", "type": "string" }, "np_title_id": { + "description": "PlayStation title id of the item, for example `CUSA07408_00`.", "type": "string" }, "platforms": { + "description": "PlayStation platforms the item is available on.", "items": { "type": "string" }, "type": "array" }, "price": { - "$ref": "#/definitions/playstation.ListPrice" + "allOf": [ + { + "$ref": "#/definitions/playstation.ListPrice" + } + ], + "description": "Price of the item." } }, "type": "object" @@ -131838,42 +137025,52 @@ "polymarket.ActivityTradesResponse": { "properties": { "event_id": { + "description": "Polymarket event id the trades were limited to.", "example": "101772", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "filter_amount": { + "description": "Minimum trade amount the filter applied.", "example": "1", "type": "string" }, "filter_type": { + "description": "Type of amount filter applied, for example `CASH`.", "example": "CASH", "type": "string" }, "limit": { + "description": "Maximum number of trades requested.", "example": 50, "type": "integer" }, "market": { + "description": "Market condition id the trades were limited to.", "example": "0x3f2604d62ac3ee496ffd6d30156f30663fbaf22097f17f09d7364c35db255d2b", "type": "string" }, "offset": { + "description": "Number of trades skipped before this page.", "example": 0, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://data-api.polymarket.com/trades?takerOnly=true&limit=50&offset=0&filterType=CASH&filterAmount=1", "type": "string" }, "taker_only": { + "description": "`true` when only taker trades are returned, `false` otherwise.", "example": "true", "type": "string" }, "trades": { + "description": "Recent trades on this page, one item per trade.", "items": { "$ref": "#/definitions/polymarket.TradeSummary" }, @@ -131885,10 +137082,12 @@ "polymarket.BatchTokenMidpoint": { "properties": { "midpoint": { + "description": "Midpoint between the best bid and best ask for the token.", "example": 0.285, "type": "number" }, "token_id": { + "description": "Token id of the outcome.", "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" } @@ -131912,26 +137111,31 @@ "polymarket.BatchTokenMidpointsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "midpoints": { + "description": "Midpoints for the requested tokens, one item per token found.", "items": { "$ref": "#/definitions/polymarket.BatchTokenMidpoint" }, "type": "array" }, "missing": { + "description": "Requested token ids for which no midpoint was returned.", "items": { "type": "string" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://clob.polymarket.com/midpoints", "type": "string" }, "token_ids": { + "description": "Token ids that were requested.", "items": { "type": "string" }, @@ -131957,26 +137161,31 @@ "polymarket.BatchTokenOrderBooksResponse": { "properties": { "books": { + "description": "Order books for the requested tokens, one item per token found.", "items": { "$ref": "#/definitions/polymarket.OrderBookSummary" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "missing": { + "description": "Requested token ids for which no order book was returned.", "items": { "type": "string" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://clob.polymarket.com/books", "type": "string" }, "token_ids": { + "description": "Token ids that were requested.", "items": { "type": "string" }, @@ -132057,10 +137266,12 @@ "polymarket.BatchTokenSpread": { "properties": { "spread": { + "description": "Spread between the best bid and best ask for the token.", "example": 0.51, "type": "number" }, "token_id": { + "description": "Token id of the outcome.", "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" } @@ -132084,26 +137295,31 @@ "polymarket.BatchTokenSpreadsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "missing": { + "description": "Requested token ids for which no spread was returned.", "items": { "type": "string" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://clob.polymarket.com/spreads", "type": "string" }, "spreads": { + "description": "Spreads for the requested tokens, one item per token found.", "items": { "$ref": "#/definitions/polymarket.BatchTokenSpread" }, "type": "array" }, "token_ids": { + "description": "Token ids that were requested.", "items": { "type": "string" }, @@ -132115,17 +137331,25 @@ "polymarket.ClobMarketResponse": { "properties": { "condition_id": { + "description": "Condition id of the market that was requested.", "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "market": { - "$ref": "#/definitions/polymarket.ClobMarketSummary" + "allOf": [ + { + "$ref": "#/definitions/polymarket.ClobMarketSummary" + } + ], + "description": "Order-book trading details of the market." }, "source_url": { + "description": "URL the data was read from.", "example": "https://clob.polymarket.com/markets/0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" } @@ -132135,105 +137359,138 @@ "polymarket.ClobMarketSummary": { "properties": { "accepting_order_timestamp": { + "description": "Timestamp from which the market accepts orders.", "type": "string" }, "accepting_orders": { + "description": "`true` when the market currently accepts orders.", "type": "boolean" }, "active": { + "description": "`true` when the market is active.", "type": "boolean" }, "archived": { + "description": "`true` when the market is archived.", "type": "boolean" }, "closed": { + "description": "`true` when the market is closed.", "type": "boolean" }, "condition_id": { + "description": "Condition id that identifies the market on Polymarket.", "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" }, "description": { + "description": "Market description, including its resolution rules as Polymarket shows them.", "type": "string" }, "enable_order_book": { + "description": "`true` when the order book is enabled for the market.", "type": "boolean" }, "end_date": { + "description": "Date and time the market is scheduled to end (ISO 8601).", "example": "2026-06-08T00:00:00Z", "type": "string" }, "game_start_time": { + "description": "Start time of the game the market is about (ISO 8601). Omitted when not provided.", "example": "2026-06-07T20:30:00Z", "type": "string" }, "icon_url": { + "description": "URL of the market's icon image.", "type": "string" }, "image_url": { + "description": "URL of the market's main image.", "type": "string" }, "is_50_50_outcome": { + "description": "`true` when the market is flagged as resolving 50-50.", "type": "boolean" }, "maker_base_fee": { + "description": "Base fee charged to makers on the market.", "example": 1000, "type": "integer" }, "market_slug": { + "description": "URL slug of the market.", "example": "codmw-par-tex-2026-06-07-game4", "type": "string" }, "market_url": { + "description": "Link to the market on polymarket.com.", "example": "https://polymarket.com/event/codmw-par-tex-2026-06-07/codmw-par-tex-2026-06-07-game4", "type": "string" }, "minimum_order_size": { + "description": "Smallest order size the market accepts.", "example": 5, "type": "number" }, "minimum_tick_size": { + "description": "Smallest price increment the market accepts.", "example": 0.01, "type": "number" }, "neg_risk": { + "description": "`true` when the market is part of a negative-risk group of linked outcomes.", "type": "boolean" }, "neg_risk_market_id": { + "description": "Id of the negative-risk group the market belongs to.", "type": "string" }, "neg_risk_request_id": { + "description": "Request id of the negative-risk group the market belongs to.", "type": "string" }, "notifications_enabled": { + "description": "`true` when notifications are enabled for the market.", "type": "boolean" }, "question": { + "description": "Question the market asks.", "example": "Call of Duty: Paris Gentle Mates vs OpTic Texas - Game 4 Winner", "type": "string" }, "question_id": { + "description": "Id of the question the market resolves.", "example": "0xf693b08c99a00ca87098bc122ccc956434c2ac8720d8ed77e612d008cf33c2c1", "type": "string" }, "rewards": { - "$ref": "#/definitions/polymarket.ClobRewardsSummary" + "allOf": [ + { + "$ref": "#/definitions/polymarket.ClobRewardsSummary" + } + ], + "description": "Liquidity reward settings for the market." }, "seconds_delay": { + "description": "Delay applied to orders on the market, in seconds.", "example": 1, "type": "integer" }, "tags": { + "description": "Tag labels attached to the market.", "items": { "type": "string" }, "type": "array" }, "taker_base_fee": { + "description": "Base fee charged to takers on the market.", "example": 1000, "type": "integer" }, "tokens": { + "description": "Outcome tokens of the market, one item per outcome.", "items": { "$ref": "#/definitions/polymarket.ClobTokenSummary" }, @@ -132245,10 +137502,12 @@ "polymarket.ClobRewardRate": { "properties": { "asset_address": { + "description": "Contract address of the token paid out as the reward.", "example": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", "type": "string" }, "rewards_daily_rate": { + "description": "Reward amount paid per day in this asset.", "example": 5, "type": "number" } @@ -132258,14 +137517,17 @@ "polymarket.ClobRewardsSummary": { "properties": { "max_spread": { + "description": "Maximum spread an order can have and still qualify for rewards.", "example": 2.5, "type": "number" }, "min_size": { + "description": "Minimum order size that qualifies for rewards.", "example": 500, "type": "number" }, "rates": { + "description": "Daily reward rates, one item per reward asset.", "items": { "$ref": "#/definitions/polymarket.ClobRewardRate" }, @@ -132277,18 +137539,22 @@ "polymarket.ClobTokenSummary": { "properties": { "outcome": { + "description": "Name of the outcome the token represents.", "example": "Paris Gentle Mates", "type": "string" }, "price": { + "description": "Current price of the outcome token.", "example": 0.285, "type": "number" }, "token_id": { + "description": "Token id of the outcome.", "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" }, "winner": { + "description": "`true` when this outcome won the resolved market.", "type": "boolean" } }, @@ -132297,17 +137563,25 @@ "polymarket.EventDetailResponse": { "properties": { "event": { - "$ref": "#/definitions/polymarket.EventSummary" + "allOf": [ + { + "$ref": "#/definitions/polymarket.EventSummary" + } + ], + "description": "Full details of the event." }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "slug": { + "description": "URL slug of the event that was requested.", "example": "world-cup-winner", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/events/slug/world-cup-winner", "type": "string" } @@ -132317,80 +137591,102 @@ "polymarket.EventSummary": { "properties": { "active": { + "description": "`true` when the event is active.", "type": "boolean" }, "closed": { + "description": "`true` when the event is closed.", "type": "boolean" }, "comment_count": { + "description": "Number of comments on the event.", "type": "integer" }, "description": { + "description": "Event description as shown on Polymarket.", "type": "string" }, "end_date": { + "description": "Date and time the event is scheduled to end (ISO 8601).", "type": "string" }, "featured": { + "description": "`true` when Polymarket features the event.", "type": "boolean" }, "icon_url": { + "description": "URL of the event's icon image.", "type": "string" }, "id": { + "description": "Polymarket event id.", "example": "545095", "type": "string" }, "image_url": { + "description": "URL of the event's main image.", "type": "string" }, "liquidity": { + "description": "Liquidity Polymarket reports for the event.", "type": "number" }, "markets": { + "description": "Markets inside the event, one item per market.", "items": { "$ref": "#/definitions/polymarket.MarketSummary" }, "type": "array" }, "markets_count": { + "description": "Number of markets inside the event.", "example": 15, "type": "integer" }, "open_interest": { + "description": "Open interest Polymarket reports for the event.", "type": "number" }, "restricted": { + "description": "`true` when Polymarket marks the event as restricted.", "type": "boolean" }, "slug": { + "description": "URL slug of the event.", "example": "bitcoin-above-on-june-7-2026", "type": "string" }, "start_date": { + "description": "Date and time the event starts (ISO 8601).", "type": "string" }, "tags": { + "description": "Tags attached to the event, one item per tag.", "items": { "$ref": "#/definitions/polymarket.TagSummary" }, "type": "array" }, "title": { + "description": "Event title as shown on Polymarket.", "example": "Bitcoin above ___ on June 7?", "type": "string" }, "updated_at": { + "description": "Time Polymarket last updated the event (ISO 8601).", "type": "string" }, "url": { + "description": "Link to the event on polymarket.com.", "example": "https://polymarket.com/event/bitcoin-above-on-june-7-2026", "type": "string" }, "volume": { + "description": "Total trading volume of the event.", "type": "number" }, "volume_24h": { + "description": "Trading volume of the event over the last 24 hours.", "type": "number" } }, @@ -132399,35 +137695,43 @@ "polymarket.EventsResponse": { "properties": { "ascending": { + "description": "`true` when events are sorted in ascending order.", "type": "boolean" }, "closed": { + "description": "Closed filter applied, `true` or `false`.", "example": "false", "type": "string" }, "events": { + "description": "Events on this page, one item per event.", "items": { "$ref": "#/definitions/polymarket.EventSummary" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of events requested.", "example": 25, "type": "integer" }, "offset": { + "description": "Number of events skipped before this page.", "example": 0, "type": "integer" }, "order": { + "description": "Field the events are sorted by, for example `volume24hr`.", "example": "volume24hr", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/events?limit=25", "type": "string" } @@ -132437,43 +137741,53 @@ "polymarket.HomepageFeedResponse": { "properties": { "cursor": { + "description": "Cursor that was used to fetch this page.", "type": "string" }, "events": { + "description": "Event rows in the feed, one item per event.", "items": { "$ref": "#/definitions/polymarket.EventSummary" }, "type": "array" }, "feed": { + "description": "Homepage feed that was requested, for example `politics`.", "example": "politics", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "has_more": { + "description": "`true` when more rows are available after this page.", "type": "boolean" }, "limit": { + "description": "Maximum number of rows requested.", "example": 20, "type": "integer" }, "markets": { + "description": "Market rows in the feed, one item per market. Returned by the `breaking` feed.", "items": { "$ref": "#/definitions/polymarket.MarketSummary" }, "type": "array" }, "next_cursor": { + "description": "Cursor to pass to fetch the next page.", "type": "string" }, "source_kind": { + "description": "Kind of rows the feed returns: `events_keyset`, `markets_movers` or `public_search`.", "example": "events_keyset", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/events/keyset?limit=20&tag_slug=politics", "type": "string" } @@ -132549,29 +137863,36 @@ "polymarket.MacroDashboardResponse": { "properties": { "cursor": { + "description": "Cursor that was used to fetch this page.", "type": "string" }, "events": { + "description": "Macro events on this page, one item per event.", "items": { "$ref": "#/definitions/polymarket.EventSummary" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "has_more": { + "description": "`true` when more events are available after this page.", "type": "boolean" }, "limit": { + "description": "Maximum number of events requested.", "example": 20, "type": "integer" }, "next_cursor": { + "description": "Cursor to pass to fetch the next page.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/events/keyset?tag_slug=macro&limit=20", "type": "string" } @@ -132581,25 +137902,35 @@ "polymarket.MarketDetailResponse": { "properties": { "condition_id": { + "description": "Condition id of the market that was requested.", "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "id": { + "description": "Polymarket market id that was requested.", "example": "558934", "type": "string" }, "market": { - "$ref": "#/definitions/polymarket.MarketSummary" + "allOf": [ + { + "$ref": "#/definitions/polymarket.MarketSummary" + } + ], + "description": "Full details of the market." }, "slug": { + "description": "URL slug of the market that was requested.", "example": "will-spain-win-the-2026-fifa-world-cup-963", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/markets/558934", "type": "string" } @@ -132609,34 +137940,50 @@ "polymarket.MarketLiquidityResponse": { "properties": { "clob_market": { - "$ref": "#/definitions/polymarket.ClobMarketSummary" + "allOf": [ + { + "$ref": "#/definitions/polymarket.ClobMarketSummary" + } + ], + "description": "Order-book trading settings and outcome prices for the market." }, "condition_id": { + "description": "Condition id of the market that was requested.", "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "id": { + "description": "Polymarket market id that was requested.", "example": "558934", "type": "string" }, "market": { - "$ref": "#/definitions/polymarket.MarketSummary" + "allOf": [ + { + "$ref": "#/definitions/polymarket.MarketSummary" + } + ], + "description": "Summary of the market the liquidity snapshot belongs to." }, "slug": { + "description": "URL slug of the market that was requested.", "example": "will-spain-win-the-2026-fifa-world-cup-963", "type": "string" }, "source_urls": { + "description": "URLs the data was read from.", "items": { "type": "string" }, "type": "array" }, "tokens": { + "description": "Liquidity figures for each outcome token of the market.", "items": { "$ref": "#/definitions/polymarket.MarketLiquidityTokenSummary" }, @@ -132648,58 +137995,72 @@ "polymarket.MarketLiquidityTokenSummary": { "properties": { "ask_depth": { + "description": "Total size of all ask levels in the token's order book.", "example": 654.33, "type": "number" }, "bid_depth": { + "description": "Total size of all bid levels in the token's order book.", "example": 117.57, "type": "number" }, "buy_price": { + "description": "Price quoted for buying one share of the outcome.", "example": 0.16, "type": "number" }, "clob_price": { + "description": "Outcome price taken from the order-book market data.", "example": 0.161, "type": "number" }, "gamma_price": { + "description": "Outcome price taken from the market listing.", "example": 0.16, "type": "number" }, "last_trade_price": { + "description": "Price of the most recent trade on the token.", "example": 0.162, "type": "number" }, "midpoint": { + "description": "Midpoint between the best bid and best ask for the token.", "example": 0.165, "type": "number" }, "orderbook_best_ask": { + "description": "Lowest ask price in the token's order book.", "example": 0.17, "type": "number" }, "orderbook_best_bid": { + "description": "Highest bid price in the token's order book.", "example": 0.16, "type": "number" }, "orderbook_spread": { + "description": "Best ask price minus best bid price in the token's order book.", "example": 0.01, "type": "number" }, "outcome": { + "description": "Name of the outcome the token represents, for example `Yes`.", "example": "Yes", "type": "string" }, "sell_price": { + "description": "Price quoted for selling one share of the outcome.", "example": 0.17, "type": "number" }, "spread": { + "description": "Spread Polymarket reports for the token.", "example": 0.01, "type": "number" }, "token_id": { + "description": "Token id of the outcome. Use it with the order book and price endpoints.", "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" } @@ -132709,62 +138070,78 @@ "polymarket.MarketSummary": { "properties": { "active": { + "description": "`true` when the market is active.", "type": "boolean" }, "best_ask": { + "description": "Lowest ask price currently offered on the market.", "type": "number" }, "best_bid": { + "description": "Highest bid price currently offered on the market.", "type": "number" }, "closed": { + "description": "`true` when the market is closed.", "type": "boolean" }, "condition_id": { + "description": "Condition id that identifies the market on Polymarket.", "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" }, "end_date": { + "description": "Date and time the market is scheduled to end (ISO 8601).", "type": "string" }, "id": { + "description": "Polymarket market id.", "example": "558934", "type": "string" }, "last_trade_price": { + "description": "Price of the most recent trade on the market.", "type": "number" }, "liquidity": { + "description": "Liquidity Polymarket reports for the market.", "type": "number" }, "outcomes": { + "description": "Outcomes of the market with their current prices, one item per outcome.", "items": { "$ref": "#/definitions/polymarket.OutcomePricePoint" }, "type": "array" }, "question": { + "description": "Question the market asks, for example `Will Spain win the 2026 FIFA World Cup?`.", "example": "Will Spain win the 2026 FIFA World Cup?", "type": "string" }, "slug": { + "description": "URL slug of the market.", "example": "will-spain-win-the-2026-fifa-world-cup-963", "type": "string" }, "token_ids": { + "description": "Token ids of the market outcomes, in the same order as `outcomes`.", "items": { "type": "string" }, "type": "array" }, "url": { + "description": "Link to the market on polymarket.com.", "example": "https://polymarket.com/event/world-cup-winner/will-spain-win-the-2026-fifa-world-cup-963", "type": "string" }, "volume": { + "description": "Total trading volume of the market.", "type": "number" }, "volume_24h": { + "description": "Trading volume of the market over the last 24 hours.", "type": "number" } }, @@ -132773,35 +138150,43 @@ "polymarket.MarketsResponse": { "properties": { "ascending": { + "description": "`true` when markets are sorted in ascending order.", "type": "boolean" }, "closed": { + "description": "Closed filter applied, `true` or `false`.", "example": "false", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of markets requested.", "example": 25, "type": "integer" }, "markets": { + "description": "Markets on this page, one item per market.", "items": { "$ref": "#/definitions/polymarket.MarketSummary" }, "type": "array" }, "offset": { + "description": "Number of markets skipped before this page.", "example": 0, "type": "integer" }, "order": { + "description": "Field the markets are sorted by, for example `volume24hr`.", "example": "volume24hr", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/markets?limit=25", "type": "string" } @@ -132811,10 +138196,12 @@ "polymarket.OrderBookLevel": { "properties": { "price": { + "description": "Price of this order book level.", "example": 0.03, "type": "number" }, "size": { + "description": "Total size of the orders resting at this price.", "example": 5, "type": "number" } @@ -132824,45 +138211,55 @@ "polymarket.OrderBookSummary": { "properties": { "asks": { + "description": "Ask levels in the order book, one item per price level.", "items": { "$ref": "#/definitions/polymarket.OrderBookLevel" }, "type": "array" }, "bids": { + "description": "Bid levels in the order book, one item per price level.", "items": { "$ref": "#/definitions/polymarket.OrderBookLevel" }, "type": "array" }, "condition_id": { + "description": "Condition id of the market the token belongs to.", "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" }, "hash": { + "description": "Hash of the order book snapshot.", "example": "31facd52b62495bbc142facb81275400d978f6bf", "type": "string" }, "last_trade_price": { + "description": "Price of the most recent trade on the token.", "example": 0.285, "type": "number" }, "min_order_size": { + "description": "Smallest order size the market accepts.", "example": 5, "type": "number" }, "neg_risk": { + "description": "`true` when the market is part of a negative-risk group of linked outcomes.", "type": "boolean" }, "tick_size": { + "description": "Smallest price increment the market accepts.", "example": 0.01, "type": "number" }, "timestamp": { + "description": "Time of the order book snapshot, in Unix milliseconds.", "example": "1780837460175", "type": "string" }, "token_id": { + "description": "Token id of the outcome the order book belongs to.", "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" } @@ -132872,42 +138269,52 @@ "polymarket.OutcomePricePoint": { "properties": { "best_ask": { + "description": "Lowest ask price currently offered for the outcome.", "example": 0.162, "type": "number" }, "best_bid": { + "description": "Highest bid price currently offered for the outcome.", "example": 0.161, "type": "number" }, "last_trade_price": { + "description": "Price of the most recent trade on the outcome.", "example": 0.162, "type": "number" }, "liquidity": { + "description": "Liquidity Polymarket reports for the outcome.", "example": 1093391.84, "type": "number" }, "market_id": { + "description": "Polymarket id of the market the outcome belongs to.", "example": "558934", "type": "string" }, "market_slug": { + "description": "URL slug of the market the outcome belongs to.", "example": "will-spain-win-the-2026-fifa-world-cup-963", "type": "string" }, "outcome": { + "description": "Name of the outcome, for example `Yes`.", "example": "Yes", "type": "string" }, "price": { + "description": "Current price of the outcome.", "example": 0.1615, "type": "number" }, "question": { + "description": "Question of the market the outcome belongs to.", "example": "Will Spain win the 2026 FIFA World Cup?", "type": "string" }, "volume": { + "description": "Trading volume Polymarket reports for the outcome.", "example": 30983849.24, "type": "number" } @@ -132917,45 +138324,56 @@ "polymarket.PredictionsResponse": { "properties": { "cursor": { + "description": "Cursor that was used to fetch this page.", "type": "string" }, "events": { + "description": "Events on this page, one item per event.", "items": { "$ref": "#/definitions/polymarket.EventSummary" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "has_more": { + "description": "`true` when more events are available after this page.", "type": "boolean" }, "limit": { + "description": "Maximum number of events requested.", "example": 20, "type": "integer" }, "next_cursor": { + "description": "Cursor to pass to fetch the next page.", "type": "string" }, "recurrence": { + "description": "Recurrence filter applied: `hourly`, `daily`, `weekly`, `monthly` or `yearly`.", "example": "daily", "type": "string" }, "sort": { + "description": "Sort order applied, for example `competitive`.", "example": "competitive", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/events/keyset?limit=20&order=competitive", "type": "string" }, "status": { + "description": "Prediction status filter applied: `active`, `resolved` or `all`.", "example": "all", "type": "string" }, "tag": { + "description": "Polymarket tag slug the events were filtered by.", "example": "politics", "type": "string" } @@ -132978,14 +138396,17 @@ "polymarket.ProfileMatch": { "properties": { "id": { + "description": "Polymarket profile id.", "example": "123", "type": "string" }, "name": { + "description": "Display name of the profile.", "example": "Trader", "type": "string" }, "username": { + "description": "Username of the profile.", "example": "trader", "type": "string" } @@ -132995,17 +138416,21 @@ "polymarket.PublicDataResponse": { "properties": { "data": { + "description": "Content returned for the requested route, as Polymarket returns it.", "type": "object" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "route": { + "description": "Route key that was requested, for example `sports`.", "example": "sports", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/sports", "type": "string" } @@ -133015,26 +138440,32 @@ "polymarket.RewardsConfigSummary": { "properties": { "asset_address": { + "description": "Contract address of the token paid out as the reward.", "example": "0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB", "type": "string" }, "end_date": { + "description": "Date the reward program ends, in YYYY-MM-DD.", "example": "2500-12-31", "type": "string" }, "id": { + "description": "Id of the reward program configuration.", "example": 0, "type": "integer" }, "rate_per_day": { + "description": "Reward amount paid per day.", "example": 10.00036, "type": "number" }, "start_date": { + "description": "Date the reward program starts, in YYYY-MM-DD.", "example": "2026-06-07", "type": "string" }, "total_rewards": { + "description": "Total reward amount configured for the program.", "example": 0, "type": "number" } @@ -133044,21 +138475,30 @@ "polymarket.RewardsMarketResponse": { "properties": { "condition_id": { + "description": "Condition id of the market that was requested.", "example": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327", "type": "string" }, "count": { + "description": "Number of reward markets returned.", "example": 1, "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "market": { - "$ref": "#/definitions/polymarket.RewardsMarketSummary" + "allOf": [ + { + "$ref": "#/definitions/polymarket.RewardsMarketSummary" + } + ], + "description": "Rewards details of the market." }, "source_url": { + "description": "URL the data was read from.", "example": "https://clob.polymarket.com/rewards/markets/0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327?sponsored=true", "type": "string" } @@ -133068,91 +138508,112 @@ "polymarket.RewardsMarketSummary": { "properties": { "condition_id": { + "description": "Condition id that identifies the market on Polymarket.", "example": "0x2d293b8d8141edcc3317f6e677a01623dc482e7fe8eb4c4e207c9a0987c37d22", "type": "string" }, "daily_reward_rate": { + "description": "Daily reward rate offered for the market.", "example": 10.00036, "type": "number" }, "earning_percentage": { + "description": "Earning percentage Polymarket shows for the market.", "example": 0, "type": "number" }, "earnings": { + "description": "Reward earnings records for the market, as Polymarket returns them.", "items": { "type": "object" }, "type": "array" }, "event_id": { + "description": "Polymarket id of the event the market belongs to.", "example": "568951", "type": "string" }, "event_slug": { + "description": "URL slug of the event the market belongs to.", "example": "sc2-hero-cure-2026-06-07", "type": "string" }, "event_url": { + "description": "Link to the event on polymarket.com.", "example": "https://polymarket.com/event/sc2-hero-cure-2026-06-07", "type": "string" }, "image_url": { + "description": "URL of the market's image.", "type": "string" }, "maker_address": { + "description": "Maker address Polymarket reports for the market's rewards.", "example": "0x0000000000000000000000000000000000000000", "type": "string" }, "market_competitiveness": { + "description": "Competitiveness score Polymarket shows for the market's rewards.", "example": 2.83, "type": "number" }, "market_id": { + "description": "Polymarket market id.", "example": "2461586", "type": "string" }, "market_slug": { + "description": "URL slug of the market.", "example": "sc2-hero-cure-2026-06-07", "type": "string" }, "market_url": { + "description": "Link to the market on polymarket.com.", "example": "https://polymarket.com/event/sc2-hero-cure-2026-06-07/sc2-hero-cure-2026-06-07", "type": "string" }, "question": { + "description": "Question the market asks.", "example": "StarCraft II: herO vs Cure (BO7) - Global StarCraft II League Playoffs", "type": "string" }, "rewards_config": { + "description": "Reward programs configured for the market, one item per program.", "items": { "$ref": "#/definitions/polymarket.RewardsConfigSummary" }, "type": "array" }, "rewards_max_spread": { + "description": "Maximum spread an order can have and still qualify for rewards.", "example": 4.5, "type": "number" }, "rewards_min_size": { + "description": "Minimum order size that qualifies for rewards.", "example": 50, "type": "number" }, "spread": { + "description": "Current spread of the market.", "example": 0.01, "type": "number" }, "tokens": { + "description": "Outcome tokens of the market with their prices, one item per outcome.", "items": { "$ref": "#/definitions/polymarket.RewardsTokenSummary" }, "type": "array" }, "total_configured_rewards": { + "description": "Total rewards configured for the market.", "example": 0, "type": "number" }, "volume_24h": { + "description": "Trading volume of the market over the last 24 hours.", "example": 79.9901, "type": "number" } @@ -133162,59 +138623,73 @@ "polymarket.RewardsMarketsResponse": { "properties": { "count": { + "description": "Number of reward markets returned on this page.", "example": 100, "type": "integer" }, "cursor": { + "description": "Cursor that was used to fetch this page.", "example": "MA==", "type": "string" }, "date": { + "description": "Reward program date the markets apply to, in YYYY-MM-DD.", "example": "2026-06-07", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "has_more": { + "description": "`true` when more reward markets are available after this page.", "type": "boolean" }, "limit": { + "description": "Maximum number of rows requested.", "example": 100, "type": "integer" }, "markets": { + "description": "Reward markets on this page, one item per market.", "items": { "$ref": "#/definitions/polymarket.RewardsMarketSummary" }, "type": "array" }, "next_cursor": { + "description": "Cursor to pass to fetch the next page.", "example": "MTAw", "type": "string" }, "order_by": { + "description": "Field the markets are sorted by, for example `market`.", "example": "market", "type": "string" }, "position": { + "description": "Sort direction applied: `asc` or `desc`.", "example": "desc", "type": "string" }, "q": { + "description": "Market question search text that was applied.", "example": "bitcoin", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://polymarket.com/api/rewards/markets?orderBy=market", "type": "string" }, "tag_slug": { + "description": "Rewards category the markets were filtered by, for example `all` or `politics`.", "example": "all", "type": "string" }, "total_count": { + "description": "Total number of reward markets matching the filters.", "example": 5430, "type": "integer" } @@ -133224,14 +138699,17 @@ "polymarket.RewardsTokenSummary": { "properties": { "outcome": { + "description": "Name of the outcome the token represents.", "example": "herO", "type": "string" }, "price": { + "description": "Current price of the outcome token.", "example": 0.995, "type": "number" }, "token_id": { + "description": "Token id of the outcome.", "example": "49033998602764986470838384384660931821099068366428064235699748485619139146655", "type": "string" } @@ -133241,54 +138719,66 @@ "polymarket.SearchResponse": { "properties": { "ascending": { + "description": "`true` when results are sorted in ascending order.", "type": "boolean" }, "events": { + "description": "Events matching the search query, one item per event.", "items": { "$ref": "#/definitions/polymarket.EventSummary" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "has_more": { + "description": "`true` when more matching results exist beyond this page.", "type": "boolean" }, "limit": { + "description": "Maximum number of events requested.", "example": 10, "type": "integer" }, "profiles": { + "description": "Polymarket profiles matching the query, one item per profile.", "items": { "$ref": "#/definitions/polymarket.ProfileMatch" }, "type": "array" }, "query": { + "description": "Search text that was run.", "example": "bitcoin", "type": "string" }, "sort": { + "description": "Sort order applied to the results, for example `relevance`.", "example": "relevance", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/public-search?q=bitcoin&limit_per_type=10", "type": "string" }, "status": { + "description": "Event status filter applied: `open`, `closed` or `all`.", "example": "open", "type": "string" }, "tags": { + "description": "Tags matching the query, one item per tag.", "items": { "$ref": "#/definitions/polymarket.TagSummary" }, "type": "array" }, "total_results": { + "description": "Total number of events matching the query.", "example": 123, "type": "integer" } @@ -133321,15 +138811,22 @@ "polymarket.TagResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/tags/slug/crypto", "type": "string" }, "tag": { - "$ref": "#/definitions/polymarket.TagSummary" + "allOf": [ + { + "$ref": "#/definitions/polymarket.TagSummary" + } + ], + "description": "Tag that was requested." } }, "type": "object" @@ -133337,14 +138834,17 @@ "polymarket.TagSummary": { "properties": { "id": { + "description": "Polymarket tag id.", "example": "21", "type": "string" }, "label": { + "description": "Display name of the tag, for example `Crypto`.", "example": "Crypto", "type": "string" }, "slug": { + "description": "URL slug of the tag, for example `crypto`.", "example": "crypto", "type": "string" } @@ -133354,22 +138854,27 @@ "polymarket.TagsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "limit": { + "description": "Maximum number of tags requested.", "example": 25, "type": "integer" }, "offset": { + "description": "Number of tags skipped before this page.", "example": 0, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gamma-api.polymarket.com/tags?limit=25", "type": "string" }, "tags": { + "description": "Tags on this page, one item per tag.", "items": { "$ref": "#/definitions/polymarket.TagSummary" }, @@ -133381,18 +138886,22 @@ "polymarket.TokenMidpointResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "midpoint": { + "description": "Midpoint between the best bid and best ask for the token.", "example": 0.285, "type": "number" }, "source_url": { + "description": "URL the data was read from.", "example": "https://clob.polymarket.com/midpoint?token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" }, "token_id": { + "description": "Token id of the outcome that was requested.", "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" } @@ -133402,17 +138911,25 @@ "polymarket.TokenOrderBookResponse": { "properties": { "book": { - "$ref": "#/definitions/polymarket.OrderBookSummary" + "allOf": [ + { + "$ref": "#/definitions/polymarket.OrderBookSummary" + } + ], + "description": "Order book for the token with its bids and asks." }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://clob.polymarket.com/book?token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" }, "token_id": { + "description": "Token id of the outcome that was requested.", "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" } @@ -133461,22 +138978,27 @@ "polymarket.TokenPriceResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T11:00:00Z", "type": "string" }, "price": { + "description": "Price quoted for the requested side.", "example": 0.03, "type": "number" }, "side": { + "description": "Order side the price applies to: `buy` or `sell`.", "example": "buy", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://clob.polymarket.com/price?side=buy&token_id=81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" }, "token_id": { + "description": "Token id of the outcome that was requested.", "example": "81927025054404355287140018940169293739219157042658469116956164881873598220211", "type": "string" } @@ -133507,82 +139029,103 @@ "polymarket.TradeSummary": { "properties": { "asset": { + "description": "Token id of the outcome that was traded.", "example": "90219780179584544303349592653084019110196125806694819219181473744581426681835", "type": "string" }, "bio": { + "description": "Biography text from the trader's Polymarket profile.", "type": "string" }, "condition_id": { + "description": "Condition id of the market the trade was made on.", "example": "0x3f2604d62ac3ee496ffd6d30156f30663fbaf22097f17f09d7364c35db255d2b", "type": "string" }, "event_slug": { + "description": "URL slug of the event the trade belongs to.", "example": "btc-updown-15m-1780835400", "type": "string" }, "icon_url": { + "description": "URL of the icon image for the traded market.", "type": "string" }, "name": { + "description": "Display name from the trader's Polymarket profile.", "example": "trader", "type": "string" }, "outcome": { + "description": "Name of the outcome that was traded, for example `Up`.", "example": "Up", "type": "string" }, "outcome_index": { + "description": "Position of the traded outcome within the market's outcomes, starting at 0.", "example": 0, "type": "integer" }, "price": { + "description": "Price per share at which the trade was made.", "example": 0.52744, "type": "number" }, "profile_image_optimized": { + "description": "URL of an optimized version of the trader's profile image.", "type": "string" }, "profile_image_url": { + "description": "URL of the trader's profile image.", "type": "string" }, "proxy_wallet": { + "description": "Wallet address of the trader's Polymarket account.", "example": "0x400e9b5e37f7209adb6938d49d63c48f154319d2", "type": "string" }, "pseudonym": { + "description": "Pseudonym Polymarket assigned to the trader.", "example": "Noisy-Dimple", "type": "string" }, "side": { + "description": "Side of the trade: `BUY` or `SELL`.", "example": "BUY", "type": "string" }, "size": { + "description": "Number of shares traded.", "example": 25, "type": "number" }, "slug": { + "description": "URL slug of the market the trade was made on.", "example": "btc-updown-15m-1780835400", "type": "string" }, "timestamp": { + "description": "Time the trade was made, in Unix seconds.", "example": 1780835568, "type": "integer" }, "title": { + "description": "Title of the market the trade was made on.", "example": "Bitcoin Up or Down - June 7, 8:30AM-8:45AM ET", "type": "string" }, "transaction_hash": { + "description": "Hash of the transaction that settled the trade.", "example": "0x7ef90efb7e9f921509d8e82ecc76ed3d8384a3740d7ebd81d3bbbfd017899245", "type": "string" }, "url": { + "description": "Link to the traded event on polymarket.com.", "example": "https://polymarket.com/event/btc-updown-15m-1780835400", "type": "string" }, "value": { + "description": "Value of the trade, equal to `size` multiplied by `price`.", "example": 13.186, "type": "number" } @@ -134841,12 +140384,14 @@ "popularTrend.CountryIndustryMeta": { "properties": { "country": { + "description": "Countries TikTok Creative Center offers as filters, each with its code and name.", "items": { "$ref": "#/definitions/popularTrend.CountryIndustryMetaItem" }, "type": "array" }, "industry": { + "description": "Industries TikTok Creative Center offers as filters, each with its id and name.", "items": { "$ref": "#/definitions/popularTrend.CountryIndustryMetaItem" }, @@ -134858,9 +140403,11 @@ "popularTrend.CountryIndustryMetaItem": { "properties": { "id": { + "description": "Country code or industry id, for example `AR` or `22000000000`.", "type": "string" }, "value": { + "description": "Display name of the country or industry.", "type": "string" } }, @@ -134869,9 +140416,11 @@ "popularTrend.TopAdsAnalysisPoint": { "properties": { "second": { + "description": "Second of the ad video the point refers to.", "type": "integer" }, "value": { + "description": "Value of the selected metric at that second.", "type": "number" } }, @@ -134883,6 +140432,7 @@ "type": "integer" }, "data": { + "description": "Time analysis of the ad for the chosen metric, with its percentile, chart points and highlighted seconds.", "properties": { "analysis": { "items": { @@ -134928,6 +140478,7 @@ "type": "string" }, "request_id": { + "description": "Request id returned by TikTok Creative Center.", "type": "string" } }, @@ -134939,12 +140490,18 @@ "type": "integer" }, "data": { - "$ref": "#/definitions/popularTrend.TopAdsMaterial" + "allOf": [ + { + "$ref": "#/definitions/popularTrend.TopAdsMaterial" + } + ], + "description": "Details of the requested top ad." }, "msg": { "type": "string" }, "request_id": { + "description": "Request id returned by TikTok Creative Center.", "type": "string" } }, @@ -134953,18 +140510,23 @@ "popularTrend.TopAdsFilterItem": { "properties": { "has_conversion": { + "description": "Whether the objective is one that tracks conversions. Only set on objective options.", "type": "boolean" }, "id": { + "description": "Filter option id in TikTok's own format, a string or a number depending on the filter.", "type": "object" }, "label": { + "description": "Label key TikTok uses for the option.", "type": "string" }, "parent_id": { + "description": "Id of the parent option, for example the top-level industry of a sub-industry.", "type": "object" }, "value": { + "description": "Display value of the option, always returned as a string.", "type": "string" } }, @@ -134976,6 +140538,7 @@ "type": "integer" }, "data": { + "description": "Filter options available for top ads, grouped by filter name.", "properties": { "ad_format": { "items": { @@ -135050,6 +140613,7 @@ "type": "string" }, "request_id": { + "description": "Request id returned by TikTok Creative Center.", "type": "string" } }, @@ -135061,6 +140625,7 @@ "type": "integer" }, "data": { + "description": "Page of top ads with its paging information.", "properties": { "materials": { "items": { @@ -135078,6 +140643,7 @@ "type": "string" }, "request_id": { + "description": "Request id returned by TikTok Creative Center.", "type": "string" } }, @@ -135089,6 +140655,7 @@ "type": "integer" }, "data": { + "description": "Initial country and industry targeting that TikTok Creative Center infers.", "properties": { "first_industry": { "type": "object" @@ -135115,6 +140682,7 @@ "type": "string" }, "request_id": { + "description": "Request id returned by TikTok Creative Center.", "type": "string" } }, @@ -135126,6 +140694,7 @@ "type": "integer" }, "data": { + "description": "Countries available for top ads targeting.", "properties": { "country": { "items": { @@ -135140,6 +140709,7 @@ "type": "string" }, "request_id": { + "description": "Request id returned by TikTok Creative Center.", "type": "string" } }, @@ -135148,87 +140718,115 @@ "popularTrend.TopAdsMaterial": { "properties": { "ad_title": { + "description": "Title of the ad.", "type": "string" }, "brand_name": { + "description": "Name of the advertiser brand.", "type": "string" }, "comment": { + "description": "Number of comments on the ad.", "type": "integer" }, "cost": { + "description": "Cost figure for the ad as TikTok Creative Center reports it.", "type": "integer" }, "country_code": { + "description": "Country codes the ad runs in.", "items": { "type": "string" }, "type": "array" }, "ctr": { + "description": "Click-through rate of the ad as TikTok Creative Center reports it.", "type": "number" }, "favorite": { + "description": "Whether the ad is marked as a favorite.", "type": "boolean" }, "has_summary": { + "description": "Whether TikTok has an ad summary available for the ad.", "type": "boolean" }, "highlight": { + "description": "Highlight note TikTok attaches to the ad.", "type": "string" }, "highlight_text": { + "description": "Text shown for the ad's highlight.", "type": "string" }, "id": { + "description": "Top Ads material id. Use it with the detail, analysis and recommend endpoints.", "type": "string" }, "industry_key": { + "description": "Key of the industry the ad is classified under.", "type": "string" }, "is_search": { + "description": "Search flag TikTok sets on the ad.", "type": "boolean" }, "keyword_list": { + "description": "Keywords associated with the ad.", "items": { "type": "string" }, "type": "array" }, "landing_page": { + "description": "URL of the ad's landing page.", "type": "string" }, "like": { + "description": "Number of likes on the ad.", "type": "integer" }, "objective_key": { + "description": "Key of the campaign objective of the ad.", "type": "string" }, "objectives": { + "description": "Campaign objectives of the ad, each with its id, value and label.", "items": { "$ref": "#/definitions/popularTrend.TopAdsFilterItem" }, "type": "array" }, "pattern_label": { + "description": "Creative pattern labels assigned to the ad.", "items": { "$ref": "#/definitions/popularTrend.TopAdsFilterItem" }, "type": "array" }, "share": { + "description": "Number of shares of the ad.", "type": "integer" }, "source": { + "description": "Source label of the ad as TikTok Creative Center shows it.", "type": "string" }, "source_key": { + "description": "Numeric key of the ad's source.", "type": "integer" }, "video_info": { - "$ref": "#/definitions/popularTrend.TopAdsVideoInfo" + "allOf": [ + { + "$ref": "#/definitions/popularTrend.TopAdsVideoInfo" + } + ], + "description": "Video file details of the ad." }, "voice_over": { + "description": "Whether the ad video has a voice-over.", "type": "boolean" } }, @@ -135237,18 +140835,23 @@ "popularTrend.TopAdsPagination": { "properties": { "has_more": { + "description": "Whether more pages of ads are available.", "type": "boolean" }, "page": { + "description": "Page number returned.", "type": "integer" }, "size": { + "description": "Number of ads per page.", "type": "integer" }, "total": { + "description": "Total number of matching ads. Set on spotlight responses.", "type": "integer" }, "total_count": { + "description": "Total number of matching ads. Set on list responses.", "type": "integer" } }, @@ -135260,6 +140863,7 @@ "type": "integer" }, "data": { + "description": "Ads related to the requested ad.", "properties": { "materials": { "items": { @@ -135274,6 +140878,7 @@ "type": "string" }, "request_id": { + "description": "Request id returned by TikTok Creative Center.", "type": "string" } }, @@ -135285,6 +140890,7 @@ "type": "integer" }, "data": { + "description": "Creative Center safety configuration flags for its search surfaces.", "properties": { "cc_banner_key": { "type": "string" @@ -135311,6 +140917,7 @@ "type": "string" }, "request_id": { + "description": "Request id returned by TikTok Creative Center.", "type": "string" } }, @@ -135322,6 +140929,7 @@ "type": "integer" }, "data": { + "description": "Page of spotlight top ads with its paging information.", "properties": { "materials": { "items": { @@ -135339,6 +140947,7 @@ "type": "string" }, "request_id": { + "description": "Request id returned by TikTok Creative Center.", "type": "string" } }, @@ -135350,6 +140959,7 @@ "type": "integer" }, "data": { + "description": "Suggested search queries for top ads.", "properties": { "query": { "items": { @@ -135364,6 +140974,7 @@ "type": "string" }, "request_id": { + "description": "Request id returned by TikTok Creative Center.", "type": "string" } }, @@ -135372,24 +140983,30 @@ "popularTrend.TopAdsVideoInfo": { "properties": { "cover": { + "description": "URL of the video cover image.", "type": "string" }, "duration": { + "description": "Video length in seconds.", "type": "number" }, "height": { + "description": "Video height as TikTok reports it.", "type": "integer" }, "vid": { + "description": "TikTok video id.", "type": "string" }, "video_url": { "additionalProperties": { "type": "string" }, + "description": "Video file URLs keyed by resolution label, for example `720p`.", "type": "object" }, "width": { + "description": "Video width as TikTok reports it.", "type": "integer" } }, @@ -135654,22 +141271,27 @@ "poshmark.CategoryResponse": { "properties": { "has_more": { + "description": "Whether more listings are available after this page.", "example": true, "type": "boolean" }, "listings": { + "description": "Listings on this page of the category.", "items": { "$ref": "#/definitions/poshmark.Listing" }, "type": "array" }, "next_max_id": { + "description": "Cursor to pass as `max_id` to get the next page. Omitted on the last page.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "total": { + "description": "Total number of listings Poshmark reports for the category.", "example": 84000, "type": "integer" } @@ -135725,25 +141347,31 @@ "poshmark.Comment": { "properties": { "comment": { + "description": "Text of the comment as posted on the listing.", "example": "Hi can you tell me the width of the waist?", "type": "string" }, "created_at": { + "description": "Time the comment was posted, in ISO 8601 with a UTC offset.", "example": "2026-07-05T09:28:09-07:00", "type": "string" }, "creator_full_name": { + "description": "Display name of the member who wrote the comment.", "example": "Jen Muston", "type": "string" }, "creator_picture_url": { + "description": "Profile picture URL of the member who wrote the comment.", "type": "string" }, "creator_username": { + "description": "Username of the member who wrote the comment.", "example": "muvlax20", "type": "string" }, "id": { + "description": "Poshmark comment id.", "example": "6a4a86191fea02ce69f41484", "type": "string" } @@ -135777,14 +141405,17 @@ "poshmark.Listing": { "properties": { "brand": { + "description": "Brand name of the item.", "example": "FARM Rio", "type": "string" }, "category": { + "description": "Poshmark category of the item, for example `Shorts`.", "example": "Shorts", "type": "string" }, "colors": { + "description": "Colors the seller selected for the item.", "example": [ "Red", "Yellow" @@ -135795,93 +141426,116 @@ "type": "array" }, "comment_count": { + "description": "Number of comments on the listing.", "example": 4, "type": "integer" }, "condition": { + "description": "Item condition code set by the seller, for example `nwt` for new with tags.", "example": "nwt", "type": "string" }, "cover_shot": { + "description": "URL of the listing's cover photo.", "example": "https://di2ponv0v5otw.cloudfront.net/posts/2026/06/27/6a3fed1de9c77df92e2c0cc6/s_6a3fed24bd4ce3ff762126e5.jpg", "type": "string" }, "created_at": { + "description": "Time the listing was created, in ISO 8601 with a UTC offset.", "example": "2026-06-27T08:32:58-07:00", "type": "string" }, "department": { + "description": "Poshmark department of the item, for example `Women`.", "example": "Women", "type": "string" }, "description": { + "description": "Seller's description of the item. Set on the listing detail response.", "type": "string" }, "first_available_at": { + "description": "Time the listing first became available for sale, as Poshmark reports it.", "type": "string" }, "id": { + "description": "Poshmark listing id. Use it with the listing endpoint.", "example": "6a3fed1de9c77df92e2c0cc6", "type": "string" }, "inventory_status": { + "description": "Availability status of the item, for example `available`.", "example": "available", "type": "string" }, "like_count": { + "description": "Number of members who liked the listing.", "example": 111, "type": "integer" }, "original_price": { + "description": "Original retail price the seller entered for the item.", "example": 95, "type": "number" }, "pictures": { + "description": "URLs of all photos on the listing. Set on the listing detail response.", "items": { "type": "string" }, "type": "array" }, "price": { + "description": "Current asking price of the listing.", "example": 55, "type": "number" }, "quantity_available": { + "description": "Total number of units still available across all sizes.", "example": 1, "type": "integer" }, "seller_display_handle": { + "description": "Display handle of the seller who posted the listing.", "example": "maltimar", "type": "string" }, "seller_full_name": { + "description": "Display name of the seller who posted the listing.", "example": "Mary Altimar", "type": "string" }, "seller_picture_url": { + "description": "Profile picture URL of the seller who posted the listing.", "type": "string" }, "seller_username": { + "description": "Username of the seller who posted the listing.", "example": "maltimar", "type": "string" }, "share_count": { + "description": "Number of times the listing was shared.", "example": 13, "type": "integer" }, "size": { + "description": "Size of the item as entered by the seller.", "example": "S", "type": "string" }, "status": { + "description": "Publication status of the listing, for example `published`.", "example": "published", "type": "string" }, "title": { + "description": "Listing title as shown on Poshmark.", "example": "NWT Farm Rio Shorts", "type": "string" }, "url": { + "description": "Poshmark page URL of the listing.", "example": "https://poshmark.com/listing/6a3fed1de9c77df92e2c0cc6", "type": "string" } @@ -135891,14 +141545,17 @@ "poshmark.ListingResponse": { "properties": { "brand": { + "description": "Brand name of the item.", "example": "FARM Rio", "type": "string" }, "category": { + "description": "Poshmark category of the item, for example `Shorts`.", "example": "Shorts", "type": "string" }, "colors": { + "description": "Colors the seller selected for the item.", "example": [ "Red", "Yellow" @@ -135909,111 +141566,142 @@ "type": "array" }, "comment_count": { + "description": "Number of comments on the listing.", "example": 4, "type": "integer" }, "comments": { + "description": "Public comments on the listing.", "items": { "$ref": "#/definitions/poshmark.Comment" }, "type": "array" }, "condition": { + "description": "Item condition code set by the seller, for example `nwt` for new with tags.", "example": "nwt", "type": "string" }, "cover_shot": { + "description": "URL of the listing's cover photo.", "example": "https://di2ponv0v5otw.cloudfront.net/posts/2026/06/27/6a3fed1de9c77df92e2c0cc6/s_6a3fed24bd4ce3ff762126e5.jpg", "type": "string" }, "created_at": { + "description": "Time the listing was created, in ISO 8601 with a UTC offset.", "example": "2026-06-27T08:32:58-07:00", "type": "string" }, "department": { + "description": "Poshmark department of the item, for example `Women`.", "example": "Women", "type": "string" }, "description": { + "description": "Seller's description of the item. Set on the listing detail response.", "type": "string" }, "first_available_at": { + "description": "Time the listing first became available for sale, as Poshmark reports it.", "type": "string" }, "id": { + "description": "Poshmark listing id. Use it with the listing endpoint.", "example": "6a3fed1de9c77df92e2c0cc6", "type": "string" }, "inventory_status": { + "description": "Availability status of the item, for example `available`.", "example": "available", "type": "string" }, "like_count": { + "description": "Number of members who liked the listing.", "example": 111, "type": "integer" }, "original_price": { + "description": "Original retail price the seller entered for the item.", "example": 95, "type": "number" }, "pictures": { + "description": "URLs of all photos on the listing. Set on the listing detail response.", "items": { "type": "string" }, "type": "array" }, "price": { + "description": "Current asking price of the listing.", "example": 55, "type": "number" }, "quantity_available": { + "description": "Total number of units still available across all sizes.", "example": 1, "type": "integer" }, "seller": { - "$ref": "#/definitions/poshmark.Seller" + "allOf": [ + { + "$ref": "#/definitions/poshmark.Seller" + } + ], + "description": "Public profile of the seller. Omitted when Poshmark's page does not include it." }, "seller_display_handle": { + "description": "Display handle of the seller who posted the listing.", "example": "maltimar", "type": "string" }, "seller_full_name": { + "description": "Display name of the seller who posted the listing.", "example": "Mary Altimar", "type": "string" }, "seller_picture_url": { + "description": "Profile picture URL of the seller who posted the listing.", "type": "string" }, "seller_username": { + "description": "Username of the seller who posted the listing.", "example": "maltimar", "type": "string" }, "share_count": { + "description": "Number of times the listing was shared.", "example": 13, "type": "integer" }, "similar_listings": { + "description": "Similar listings Poshmark shows on the same page. Omitted when the page has none.", "items": { "$ref": "#/definitions/poshmark.Listing" }, "type": "array" }, "size": { + "description": "Size of the item as entered by the seller.", "example": "S", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "status": { + "description": "Publication status of the listing, for example `published`.", "example": "published", "type": "string" }, "title": { + "description": "Listing title as shown on Poshmark.", "example": "NWT Farm Rio Shorts", "type": "string" }, "url": { + "description": "Poshmark page URL of the listing.", "example": "https://poshmark.com/listing/6a3fed1de9c77df92e2c0cc6", "type": "string" } @@ -136023,22 +141711,27 @@ "poshmark.RatingBreakdown": { "properties": { "five_star": { + "description": "Number of 5-star ratings the seller received.", "example": 355, "type": "integer" }, "four_star": { + "description": "Number of 4-star ratings the seller received.", "example": 7, "type": "integer" }, "one_star": { + "description": "Number of 1-star ratings the seller received.", "example": 1, "type": "integer" }, "three_star": { + "description": "Number of 3-star ratings the seller received.", "example": 2, "type": "integer" }, "two_star": { + "description": "Number of 2-star ratings the seller received.", "example": 3, "type": "integer" } @@ -136074,68 +141767,89 @@ "poshmark.Seller": { "properties": { "cover_shot_url": { + "description": "URL of the seller's closet cover image.", "type": "string" }, "display_handle": { + "description": "Seller's display handle on Poshmark.", "example": "maltimar", "type": "string" }, "followers": { + "description": "Number of members following the seller.", "example": 9096, "type": "integer" }, "following": { + "description": "Number of members the seller follows.", "example": 89, "type": "integer" }, "full_name": { + "description": "Seller's display name.", "example": "Mary Altimar", "type": "string" }, "id": { + "description": "Poshmark user id of the seller.", "example": "5a4f84cb7d70fb0f0f05a37f", "type": "string" }, "items_sold_display": { + "description": "Items sold as Poshmark displays it, for example `500+`.", "example": "500+", "type": "string" }, "last_active_at": { + "description": "Time the seller was last active, in ISO 8601 with a UTC offset.", "example": "2026-08-04T19:52:16-07:00", "type": "string" }, "member_since": { + "description": "Time the seller joined Poshmark, in ISO 8601 with a UTC offset.", "example": "2018-01-05T05:59:39-08:00", "type": "string" }, "orders_shipped": { + "description": "Number of orders the seller has shipped.", "example": 522, "type": "integer" }, "picture_url": { + "description": "URL of the seller's profile picture.", "example": "https://di2ponv0v5otw.cloudfront.net/users/2018/04/23/5a4f84cb7d70fb0f0f05a37f/t_5ade0fdbd0492dff500c741a.jpg", "type": "string" }, "posts_count": { + "description": "Number of listings the seller has posted.", "example": 698, "type": "integer" }, "rating_average": { + "description": "Average of the seller's star ratings, rounded to two decimals. Omitted when the seller has no ratings.", "example": 4.93, "type": "number" }, "rating_breakdown": { - "$ref": "#/definitions/poshmark.RatingBreakdown" + "allOf": [ + { + "$ref": "#/definitions/poshmark.RatingBreakdown" + } + ], + "description": "Number of ratings the seller received at each star level." }, "rating_count": { + "description": "Total number of ratings the seller received.", "example": 368, "type": "integer" }, "url": { + "description": "Poshmark closet URL of the seller.", "example": "https://poshmark.com/closet/maltimar", "type": "string" }, "username": { + "description": "Seller's Poshmark username, as used in the closet URL.", "example": "maltimar", "type": "string" } @@ -137041,36 +142755,51 @@ "producthunt.LeaderboardAdItem": { "properties": { "channel_kind": { + "description": "Placement type of the ad, for example `feed`.", "type": "string" }, "id": { + "description": "Product Hunt ID of the ad.", "type": "string" }, "large_asset_uuid": { + "description": "Identifier of the large ad image on Product Hunt's image host.", "type": "string" }, "name": { + "description": "Name shown on the ad.", "type": "string" }, "post": { - "$ref": "#/definitions/producthunt.LeaderboardAdPost" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardAdPost" + } + ], + "description": "Launch post the ad promotes, when it promotes one." }, "small_asset_uuid": { + "description": "Identifier of the small ad image on Product Hunt's image host.", "type": "string" }, "subject": { + "description": "Kind of ad entry as Product Hunt labels it, for example `Channel`.", "type": "string" }, "tagline": { + "description": "Short tagline shown on the ad.", "type": "string" }, "thumbnail_uuid": { + "description": "Identifier of the ad thumbnail image on Product Hunt's image host.", "type": "string" }, "url": { + "description": "Link the ad points to.", "type": "string" }, "variation_id": { + "description": "Identifier of the ad variation shown.", "type": "string" } }, @@ -137079,57 +142808,86 @@ "producthunt.LeaderboardAdPost": { "properties": { "comments_count": { + "description": "Number of comments on the launch.", "type": "integer" }, "created_at": { + "description": "ISO 8601 timestamp of when the launch was created.", "type": "string" }, "disabled_when_scheduled": { + "description": "Whether upvoting is disabled while the launch is scheduled.", "type": "boolean" }, "embargo_preview_at": { + "description": "ISO 8601 timestamp of the embargo preview, when the launch has one.", "type": "string" }, "featured_at": { + "description": "ISO 8601 timestamp of when Product Hunt featured the launch.", "type": "string" }, "featured_comment": { - "$ref": "#/definitions/producthunt.ProductCategoryAdComment" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryAdComment" + } + ], + "description": "Comment Product Hunt features on the launch." }, "has_voted": { + "description": "Whether the viewer has upvoted this launch.", "type": "boolean" }, "hide_votes_count": { + "description": "Whether the maker hides the vote count for this launch.", "type": "boolean" }, "id": { + "description": "Product Hunt ID of the promoted launch post.", "type": "string" }, "latest_score": { + "description": "Current upvote score of the launch.", "type": "integer" }, "launch_day_score": { + "description": "Upvote score the launch had on its launch day.", "type": "integer" }, "name": { + "description": "Name of the promoted launch.", "type": "string" }, "product": { - "$ref": "#/definitions/producthunt.LeaderboardProductRef" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardProductRef" + } + ], + "description": "Product the launch belongs to." }, "randomization_status": { - "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" + } + ], + "description": "Whether and when Product Hunt randomizes where this launch appears." }, "slug": { + "description": "URL slug of the promoted launch post.", "type": "string" }, "topics": { + "description": "Topics the launch is tagged with.", "items": { "$ref": "#/definitions/producthunt.LeaderboardTopic" }, "type": "array" }, "updated_at": { + "description": "ISO 8601 timestamp of the last update to the launch.", "type": "string" } }, @@ -137138,9 +142896,11 @@ "producthunt.LeaderboardGhostItem": { "properties": { "id": { + "description": "Product Hunt ID of the empty ad slot.", "type": "string" }, "subject": { + "description": "Kind of entry as Product Hunt labels it. Always `Ghost`.", "type": "string" } }, @@ -137149,15 +142909,31 @@ "producthunt.LeaderboardItem": { "properties": { "ad": { - "$ref": "#/definitions/producthunt.LeaderboardAdItem" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardAdItem" + } + ], + "description": "Ad details. Set when `type` is `ad`." }, "ghost_ad": { - "$ref": "#/definitions/producthunt.LeaderboardGhostItem" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardGhostItem" + } + ], + "description": "Empty ad slot details. Set when `type` is `ghost_ad`." }, "post": { - "$ref": "#/definitions/producthunt.LeaderboardPostItem" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardPostItem" + } + ], + "description": "Launch details. Set when `type` is `post`." }, "type": { + "description": "Kind of entry: `post` for a launch, `ad` for an ad or `ghost_ad` for an empty ad slot.", "type": "string" } }, @@ -137166,57 +142942,71 @@ "producthunt.LeaderboardPage": { "properties": { "connection": { + "description": "Name of the Product Hunt feed the items come from.", "type": "string" }, "day": { + "description": "Day of the month of the leaderboard period. Set for daily leaderboards.", "example": 29, "type": "integer" }, "end_cursor": { + "description": "Cursor that points to the end of this page, as Product Hunt returns it.", "type": "string" }, "featured": { + "description": "Whether the leaderboard lists featured launches only.", "type": "boolean" }, "golden_kitty_years": { + "description": "Years that have a Golden Kitty Awards hall of fame entry.", "items": { "type": "integer" }, "type": "array" }, "has_next_page": { + "description": "Whether Product Hunt has more leaderboard items after this page.", "type": "boolean" }, "items": { + "description": "Leaderboard entries in ranked order. Each one is a launch, an ad or an empty ad slot.", "items": { "$ref": "#/definitions/producthunt.LeaderboardItem" }, "type": "array" }, "month": { + "description": "Month number from the requested date, 1 to 12. Only meaningful for daily and monthly leaderboards.", "example": 1, "type": "integer" }, "order": { + "description": "Ranking order the leaderboard uses, for example `DAILY_RANK`.", "example": "DAILY_RANK", "type": "string" }, "raw_page_info": { "additionalProperties": {}, + "description": "Pagination details for this page as Product Hunt returns them: `endCursor` and `hasNextPage`.", "type": "object" }, "scope": { + "description": "Leaderboard period: `daily`, `weekly`, `monthly` or `yearly`.", "example": "daily", "type": "string" }, "total_count": { + "description": "Number of items returned on this page.", "type": "integer" }, "week": { + "description": "ISO week number from the requested date. Only meaningful for weekly leaderboards.", "example": 5, "type": "integer" }, "year": { + "description": "Year of the leaderboard period.", "example": 2026, "type": "integer" } @@ -137226,84 +143016,118 @@ "producthunt.LeaderboardPostItem": { "properties": { "comments_count": { + "description": "Number of comments on the launch.", "type": "integer" }, "created_at": { + "description": "ISO 8601 timestamp of when the launch was created.", "type": "string" }, "daily_rank": { + "description": "Rank on the daily leaderboard. `0` when Product Hunt gives no rank.", "type": "integer" }, "disabled_when_scheduled": { + "description": "Whether upvoting is disabled while the launch is scheduled.", "type": "boolean" }, "embargo_preview_at": { + "description": "ISO 8601 timestamp of the embargo preview, when the launch has one.", "type": "string" }, "featured_at": { + "description": "ISO 8601 timestamp of when Product Hunt featured the launch.", "type": "string" }, "friend_voters_count": { + "description": "Number of the viewer's friends who upvoted the launch.", "type": "integer" }, "has_voted": { + "description": "Whether the viewer has upvoted this launch.", "type": "boolean" }, "hide_votes_count": { + "description": "Whether the maker hides the vote count for this launch.", "type": "boolean" }, "id": { + "description": "Product Hunt ID of the launch post.", "type": "string" }, "is_subscribed": { + "description": "Whether the viewer is subscribed to this launch.", "type": "boolean" }, "latest_score": { + "description": "Current upvote score of the launch.", "type": "integer" }, "launch_day_score": { + "description": "Upvote score the launch had on its launch day.", "type": "integer" }, "monthly_rank": { + "description": "Rank on the monthly leaderboard. `0` when Product Hunt gives no rank.", "type": "integer" }, "name": { + "description": "Name of the launch as shown on the leaderboard.", "type": "string" }, "product": { - "$ref": "#/definitions/producthunt.LeaderboardProductRef" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardProductRef" + } + ], + "description": "Product the launch belongs to." }, "product_state": { + "description": "Product Hunt's state label for the product, for example `default`.", "type": "string" }, "randomization_status": { - "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" + } + ], + "description": "Whether and when Product Hunt randomizes where this launch appears." }, "scheduled_at": { + "description": "ISO 8601 timestamp the launch is scheduled for.", "type": "string" }, "shortened_url": { + "description": "Short Product Hunt link to the launch.", "type": "string" }, "slug": { + "description": "URL slug of the launch post.", "type": "string" }, "tagline": { + "description": "Short tagline of the launch.", "type": "string" }, "thumbnail_image_uuid": { + "description": "Identifier of the launch thumbnail image on Product Hunt's image host.", "type": "string" }, "topics": { + "description": "Topics the launch is tagged with.", "items": { "$ref": "#/definitions/producthunt.LeaderboardTopic" }, "type": "array" }, "updated_at": { + "description": "ISO 8601 timestamp of the last update to the launch.", "type": "string" }, "weekly_rank": { + "description": "Rank on the weekly leaderboard. `0` when Product Hunt gives no rank.", "type": "integer" } }, @@ -137312,24 +143136,31 @@ "producthunt.LeaderboardProductRef": { "properties": { "id": { + "description": "Product Hunt ID of the product.", "type": "string" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "is_subscribed": { + "description": "Whether the viewer follows this product.", "type": "boolean" }, "is_top_product": { + "description": "Whether Product Hunt marks this as a top product.", "type": "boolean" }, "logo_uuid": { + "description": "Identifier of the product logo on Product Hunt's image host.", "type": "string" }, "name": { + "description": "Name of the product.", "type": "string" }, "slug": { + "description": "URL slug of the product. Use it with the product endpoint.", "type": "string" } }, @@ -137338,15 +143169,19 @@ "producthunt.LeaderboardRandomizationStatus": { "properties": { "active": { + "description": "Whether randomization is currently in effect.", "type": "boolean" }, "next_transition_at": { + "description": "ISO 8601 timestamp of the next change to the randomization state, when there is one.", "type": "string" }, "random_day": { + "description": "Whether the launch day is randomized.", "type": "boolean" }, "randomize_order": { + "description": "Whether the order of this launch among others is randomized.", "type": "boolean" } }, @@ -137355,12 +143190,15 @@ "producthunt.LeaderboardTopic": { "properties": { "id": { + "description": "Product Hunt ID of the topic.", "type": "string" }, "name": { + "description": "Display name of the topic.", "type": "string" }, "slug": { + "description": "URL slug of the topic.", "type": "string" } }, @@ -137369,6 +143207,7 @@ "producthunt.Product": { "properties": { "categories": { + "description": "Names of the Product Hunt categories the product belongs to.", "example": [ "[\"Design\"", "\"Productivity\"]" @@ -137379,48 +143218,59 @@ "type": "array" }, "daily_rank": { + "description": "Daily leaderboard rank. `0` when Product Hunt shows none.", "example": 1, "type": "integer" }, "date_published": { + "description": "Time the product was first published on Product Hunt, as an RFC 3339 timestamp.", "example": "2024-07-21T12:34:56Z", "type": "string" }, "description": { + "description": "Description of the product from its Product Hunt page.", "example": "Chronicle lets designers and developers review every iteration in one place.", "type": "string" }, "followers_count": { + "description": "Number of Product Hunt users following the product.", "example": 2000, "type": "integer" }, "id": { + "description": "Product Hunt slug of the product. Use it with the product endpoint.", "example": "chronicle-design", "type": "string" }, "monthly_rank": { + "description": "Monthly leaderboard rank from the product's awards. `0` when Product Hunt shows none.", "example": 1, "type": "integer" }, "name": { + "description": "Name of the product.", "example": "Chronicle", "type": "string" }, "rating": { + "description": "Average review rating on Product Hunt, out of 5.", "example": 4.8, "type": "number" }, "review_count": { + "description": "Number of reviews the product has on Product Hunt.", "example": 152, "type": "integer" }, "similar_products": { + "description": "Products Product Hunt lists as alternatives.", "items": { "$ref": "#/definitions/producthunt.SimilarProduct" }, "type": "array" }, "social_links": { + "description": "Links to the product's social and app store pages, sorted alphabetically. Product Hunt's own links are left out.", "example": [ "[\"https://twitter.com/chronicle\"", "\"https://github.com/chronicle\"]" @@ -137431,14 +143281,17 @@ "type": "array" }, "tagline": { + "description": "Short tagline of the product.", "example": "Visual version control for teams", "type": "string" }, "website": { + "description": "Product website address.", "example": "https://chronicle.design", "type": "string" }, "weekly_rank": { + "description": "Weekly leaderboard rank from the product's awards. `0` when Product Hunt shows none.", "example": 1, "type": "integer" } @@ -137448,33 +143301,43 @@ "producthunt.ProductAboutAd": { "properties": { "channel_kind": { + "description": "Placement type of the ad, for example `feed`.", "type": "string" }, "id": { + "description": "Product Hunt ID of the ad.", "type": "string" }, "large_asset_uuid": { + "description": "Identifier of the large ad image on Product Hunt's image host.", "type": "string" }, "name": { + "description": "Name shown on the ad.", "type": "string" }, "small_asset_uuid": { + "description": "Identifier of the small ad image on Product Hunt's image host.", "type": "string" }, "subject": { + "description": "Kind of ad entry as Product Hunt labels it.", "type": "string" }, "tagline": { + "description": "Short tagline shown on the ad.", "type": "string" }, "thumbnail_uuid": { + "description": "Identifier of the ad thumbnail image on Product Hunt's image host.", "type": "string" }, "url": { + "description": "Link the ad points to.", "type": "string" }, "variation_id": { + "description": "Identifier of the ad variation shown.", "type": "string" } }, @@ -137483,18 +143346,22 @@ "producthunt.ProductAboutDiscussionForum": { "properties": { "id": { + "description": "Product Hunt ID of the product's discussion forum.", "type": "string" }, "path": { + "description": "Product Hunt path of the discussion forum.", "type": "string" }, "threads": { + "description": "Discussion threads returned for the forum.", "items": { "$ref": "#/definitions/producthunt.ProductAboutDiscussionThread" }, "type": "array" }, "total_count": { + "description": "Total number of discussion threads in the forum.", "type": "integer" } }, @@ -137503,45 +143370,67 @@ "producthunt.ProductAboutDiscussionThread": { "properties": { "commentable_id": { + "description": "Product Hunt ID used for comments on the thread.", "type": "string" }, "comments_count": { + "description": "Number of comments on the thread.", "type": "integer" }, "created_at": { + "description": "ISO 8601 timestamp of when the thread was created.", "type": "string" }, "description_preview": { + "description": "Short preview of the thread's opening text.", "type": "string" }, "forum": { - "$ref": "#/definitions/producthunt.ProductAboutForumRef" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutForumRef" + } + ], + "description": "Forum the thread belongs to." }, "has_voted": { + "description": "Whether the viewer has upvoted the thread.", "type": "boolean" }, "id": { + "description": "Product Hunt ID of the thread.", "type": "string" }, "is_featured": { + "description": "Whether Product Hunt features the thread.", "type": "boolean" }, "is_pinned": { + "description": "Whether the thread is pinned in the forum.", "type": "boolean" }, "path": { + "description": "Product Hunt path of the thread.", "type": "string" }, "slug": { + "description": "URL slug of the thread.", "type": "string" }, "title": { + "description": "Title of the thread.", "type": "string" }, "user": { - "$ref": "#/definitions/producthunt.ProductCategoryUser" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryUser" + } + ], + "description": "Member who started the thread." }, "votes_count": { + "description": "Number of upvotes on the thread.", "type": "integer" } }, @@ -137550,16 +143439,24 @@ "producthunt.ProductAboutForumRef": { "properties": { "id": { + "description": "Product Hunt ID of the forum.", "type": "string" }, "path": { + "description": "Product Hunt path of the forum.", "type": "string" }, "slug": { + "description": "URL slug of the forum.", "type": "string" }, "subject": { - "$ref": "#/definitions/producthunt.ProductAboutForumSubject" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutForumSubject" + } + ], + "description": "Product the forum is about." } }, "type": "object" @@ -137567,15 +143464,19 @@ "producthunt.ProductAboutForumSubject": { "properties": { "id": { + "description": "Product Hunt ID of the product the forum is about.", "type": "string" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "logo_uuid": { + "description": "Identifier of the product logo on Product Hunt's image host.", "type": "string" }, "name": { + "description": "Name of the product the forum is about.", "type": "string" } }, @@ -137584,9 +143485,11 @@ "producthunt.ProductAboutGhostAd": { "properties": { "id": { + "description": "Product Hunt ID of the ad entry.", "type": "string" }, "subject": { + "description": "Kind of entry as Product Hunt labels it, for example `Ghost`.", "type": "string" } }, @@ -137595,36 +143498,47 @@ "producthunt.ProductAboutLatestLaunch": { "properties": { "id": { + "description": "Product Hunt ID of the latest launch.", "type": "string" }, "is_maker": { + "description": "Whether the viewer is a maker of this launch.", "type": "boolean" }, "launch_number": { + "description": "Sequence number of this launch among the product's launches.", "type": "integer" }, "launched_this_week": { + "description": "Whether the product launched this week.", "type": "boolean" }, "launching_today": { + "description": "Whether the product is launching today.", "type": "boolean" }, "name": { + "description": "Name of the latest launch.", "type": "string" }, "product_state": { + "description": "Product Hunt's state label for the product, for example `default`.", "type": "string" }, "scheduled_at": { + "description": "ISO 8601 timestamp the launch is scheduled for.", "type": "string" }, "slug": { + "description": "URL slug of the latest launch.", "type": "string" }, "tagline": { + "description": "Short tagline of the latest launch.", "type": "string" }, "thumbnail_image_uuid": { + "description": "Identifier of the launch thumbnail image on Product Hunt's image host.", "type": "string" } }, @@ -137633,172 +143547,250 @@ "producthunt.ProductAboutLaunch": { "properties": { "ad1": { - "$ref": "#/definitions/producthunt.ProductAboutGhostAd" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutGhostAd" + } + ], + "description": "First ad slot shown next to the launch." }, "ad2": { - "$ref": "#/definitions/producthunt.ProductAboutGhostAd" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutGhostAd" + } + ], + "description": "Second ad entry attached to the launch." }, "badges": { + "description": "Badges the launch has earned, such as leaderboard awards.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryListBadge" }, "type": "array" }, "can_deputy_manage": { + "description": "Whether the viewer can manage the launch as a deputy.", "type": "boolean" }, "can_manage": { + "description": "Whether the viewer can manage the launch.", "type": "boolean" }, "comments_count": { + "description": "Number of comments on the launch.", "type": "integer" }, "created_at": { + "description": "ISO 8601 timestamp of when the launch was created.", "type": "string" }, "daily_rank": { + "description": "Rank on the daily leaderboard. `0` when Product Hunt gives no rank.", "type": "integer" }, "description": { + "description": "Description of the launch written by the maker.", "type": "string" }, "detailed_reviews": { + "description": "Detailed reviews and shoutouts for the launch.", "items": { "$ref": "#/definitions/producthunt.ProductAboutShoutout" }, "type": "array" }, "disabled_when_scheduled": { + "description": "Whether upvoting is disabled while the launch is scheduled.", "type": "boolean" }, "embargo_preview_at": { + "description": "ISO 8601 timestamp of the embargo preview, when the launch has one.", "type": "string" }, "featured": { + "description": "Whether Product Hunt featured the launch.", "type": "boolean" }, "featured_at": { + "description": "ISO 8601 timestamp of when Product Hunt featured the launch.", "type": "string" }, "has_voted": { + "description": "Whether the viewer has upvoted this launch.", "type": "boolean" }, "hide_votes_count": { + "description": "Whether the maker hides the vote count for this launch.", "type": "boolean" }, "id": { + "description": "Product Hunt ID of the launch.", "type": "string" }, "is_archived": { + "description": "Whether the launch is archived.", "type": "boolean" }, "is_available": { + "description": "Whether Product Hunt marks the launch as available.", "type": "boolean" }, "is_hunter": { + "description": "Whether the viewer is the hunter who posted this launch.", "type": "boolean" }, "is_maker": { + "description": "Whether the viewer is a maker of this launch.", "type": "boolean" }, "is_top_launch": { + "description": "Whether Product Hunt marks this as a top launch.", "type": "boolean" }, "latest_score": { + "description": "Current upvote score of the launch.", "type": "integer" }, "launch_day_score": { + "description": "Upvote score the launch had on its launch day.", "type": "integer" }, "launch_number": { + "description": "Sequence number of this launch among the product's launches.", "type": "integer" }, "launch_state": { + "description": "Launch state as Product Hunt labels it, for example `featured`.", "type": "string" }, "launched_this_week": { + "description": "Whether the launch happened this week.", "type": "boolean" }, "launching_today": { + "description": "Whether the product is launching today.", "type": "boolean" }, "links": { + "description": "Download or visit links listed on the launch, one per store or website.", "items": { "$ref": "#/definitions/producthunt.ProductAboutLink" }, "type": "array" }, "makers": { + "description": "Makers credited on the launch.", "items": { "$ref": "#/definitions/producthunt.ProductAboutUser" }, "type": "array" }, "media": { + "description": "Images and videos attached to the launch.", "items": { "$ref": "#/definitions/producthunt.ProductAboutMedia" }, "type": "array" }, "meta": { - "$ref": "#/definitions/producthunt.ProductAboutMeta" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutMeta" + } + ], + "description": "Page metadata for the launch." }, "moderation_reason": { + "description": "Reason Product Hunt gives when the launch was moderated.", "type": "string" }, "name": { + "description": "Name of the launch.", "type": "string" }, "pricing_type": { + "description": "Pricing model of the product as Product Hunt lists it, for example `free`.", "type": "string" }, "primary_link": { - "$ref": "#/definitions/producthunt.ProductAboutPrimaryLink" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutPrimaryLink" + } + ], + "description": "Main link of the launch." }, "product": { - "$ref": "#/definitions/producthunt.ProductAboutLaunchProduct" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutLaunchProduct" + } + ], + "description": "Product the launch belongs to." }, "product_state": { + "description": "Product Hunt's state label for the product, for example `default`.", "type": "string" }, "promo": { "additionalProperties": {}, + "description": "Promotion attached to the launch, as Product Hunt returns it.", "type": "object" }, "redirect_to_product": { - "$ref": "#/definitions/producthunt.LeaderboardProductRef" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardProductRef" + } + ], + "description": "Product the launch page redirects to, when it redirects." }, "scheduled_at": { + "description": "ISO 8601 timestamp the launch is scheduled for.", "type": "string" }, "slug": { + "description": "URL slug of the launch.", "type": "string" }, "tagline": { + "description": "Short tagline of the launch.", "type": "string" }, "thumbnail_image_uuid": { + "description": "Identifier of the launch thumbnail image on Product Hunt's image host.", "type": "string" }, "topics": { + "description": "Topics the launch is tagged with.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryRef" }, "type": "array" }, "trashed_at": { + "description": "ISO 8601 timestamp of when the launch was trashed, when it was.", "type": "string" }, "updated_at": { + "description": "ISO 8601 timestamp of the last update to the launch.", "type": "string" }, "url": { + "description": "Product Hunt link to the launch.", "type": "string" }, "user": { - "$ref": "#/definitions/producthunt.ProductAboutUser" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutUser" + } + ], + "description": "Member who posted the launch." }, "weekly_rank": { + "description": "Rank on the weekly leaderboard. `0` when Product Hunt gives no rank.", "type": "integer" } }, @@ -137807,12 +143799,15 @@ "producthunt.ProductAboutLaunchFlags": { "properties": { "id": { + "description": "Product Hunt ID of the latest launch.", "type": "string" }, "launched_this_week": { + "description": "Whether the product launched this week.", "type": "boolean" }, "launching_today": { + "description": "Whether the product is launching today.", "type": "boolean" } }, @@ -137821,84 +143816,112 @@ "producthunt.ProductAboutLaunchProduct": { "properties": { "can_claim": { + "description": "Whether the viewer can claim the product page.", "type": "boolean" }, "can_edit": { + "description": "Whether the viewer can edit the product page.", "type": "boolean" }, "clean_url": { + "description": "Product website address without tracking parameters.", "type": "string" }, "detailed_review": { "additionalProperties": {}, + "description": "Detailed review summary of the product, as Product Hunt returns it.", "type": "object" }, "first_launch": { + "description": "Whether this is the product's first launch.", "type": "boolean" }, "id": { + "description": "Product Hunt ID of the product.", "type": "string" }, "is_claimed": { + "description": "Whether a team has claimed the product page.", "type": "boolean" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "is_subscribed": { + "description": "Whether the viewer follows this product.", "type": "boolean" }, "is_top_product": { + "description": "Whether Product Hunt marks this as a top product.", "type": "boolean" }, "is_viewer_team_member": { "additionalProperties": {}, + "description": "Whether the viewer is on the product's team, as Product Hunt returns it.", "type": "object" }, "latest_launch": { - "$ref": "#/definitions/producthunt.ProductAboutLaunchFlags" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutLaunchFlags" + } + ], + "description": "Flags describing the product's latest launch." }, "logo_uuid": { + "description": "Identifier of the product logo on Product Hunt's image host.", "type": "string" }, "name": { + "description": "Name of the product.", "type": "string" }, "posts_count": { + "description": "Number of launch posts the product has.", "type": "integer" }, "pro_con_tags": { + "description": "Pro and con tags reviewers have attached to the product.", "items": { "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" }, "type": "array" }, "review_questions": { + "description": "Questions Product Hunt asks reviewers of the product.", "items": { "$ref": "#/definitions/producthunt.ProductAboutReviewQuestion" }, "type": "array" }, "reviews_rating": { + "description": "Average review rating on Product Hunt.", "type": "number" }, "slug": { + "description": "URL slug of the product. Use it with the product endpoint.", "type": "string" }, "tagline": { + "description": "Short tagline of the product.", "type": "string" }, "twitter_url": { + "description": "Link to the product's Twitter or X profile.", "type": "string" }, "viewer_pending_team_request": { "additionalProperties": {}, + "description": "The viewer's pending request to join the product's team, as Product Hunt returns it.", "type": "object" }, "website_domain": { + "description": "Domain name of the product website.", "type": "string" }, "website_url": { + "description": "Product website address.", "type": "string" } }, @@ -137907,21 +143930,26 @@ "producthunt.ProductAboutLink": { "properties": { "devices": { + "description": "Devices the linked app supports.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "Product Hunt ID of the link.", "type": "string" }, "redirect_path": { + "description": "Product Hunt redirect path that leads to the link target.", "type": "string" }, "store_name": { + "description": "Name of the app store the link points to, when it points to one.", "type": "string" }, "website_name": { + "description": "Name of the website the link points to.", "type": "string" } }, @@ -137930,39 +143958,51 @@ "producthunt.ProductAboutMedia": { "properties": { "id": { + "description": "Product Hunt ID of the media item.", "type": "string" }, "image_uuid": { + "description": "Identifier of the image on Product Hunt's image host.", "type": "string" }, "interactive_demo_id": { + "description": "Identifier of the interactive demo, when the media is one.", "type": "string" }, "interactive_demo_type": { + "description": "Type of the interactive demo, when the media is one.", "type": "string" }, "media_type": { + "description": "Type of media, for example `image`.", "type": "string" }, "original_height": { + "description": "Height of the original image in pixels.", "type": "integer" }, "original_width": { + "description": "Width of the original image in pixels.", "type": "integer" }, "platform": { + "description": "Video platform hosting the media, when it is a video.", "type": "string" }, "thumbnail_height": { + "description": "Height of the media thumbnail. 0 when not provided.", "type": "integer" }, "thumbnail_width": { + "description": "Width of the media thumbnail. 0 when not provided.", "type": "integer" }, "url": { + "description": "Link to the media item, for example a video link.", "type": "string" }, "video_id": { + "description": "Video identifier on the hosting platform, when the media is a video.", "type": "string" } }, @@ -137971,24 +144011,31 @@ "producthunt.ProductAboutMentionedProduct": { "properties": { "id": { + "description": "Product Hunt ID of the product.", "type": "string" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "logo_uuid": { + "description": "Identifier of the product logo on Product Hunt's image host.", "type": "string" }, "name": { + "description": "Name of the product.", "type": "string" }, "path": { + "description": "Product Hunt path of the product page.", "type": "string" }, "slug": { + "description": "URL slug of the product. Use it with the product endpoint.", "type": "string" }, "tagline": { + "description": "Short tagline of the product.", "type": "string" } }, @@ -137997,6 +144044,7 @@ "producthunt.ProductAboutMeta": { "properties": { "title": { + "description": "Page title of the launch.", "type": "string" } }, @@ -138005,22 +144053,44 @@ "producthunt.ProductAboutPage": { "properties": { "ad": { - "$ref": "#/definitions/producthunt.ProductAboutAd" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutAd" + } + ], + "description": "Ad shown on the page." }, "launch": { - "$ref": "#/definitions/producthunt.ProductAboutLaunch" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutLaunch" + } + ], + "description": "Launch the page highlights, when the layout variant has one." }, "page_variant_typename": { + "description": "Layout variant Product Hunt uses for the product page, for example `ProductPageVariantHighlightedLaunch`.", "type": "string" }, "product": { - "$ref": "#/definitions/producthunt.ProductAboutProduct" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutProduct" + } + ], + "description": "Product details from the about page." }, "product_id": { + "description": "Product Hunt ID of the product.", "type": "string" }, "viewer": { - "$ref": "#/definitions/producthunt.ProductAboutViewer" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutViewer" + } + ], + "description": "Details about the viewer's relationship to the product." } }, "type": "object" @@ -138028,9 +144098,11 @@ "producthunt.ProductAboutPageVariant": { "properties": { "launch_id": { + "description": "Product Hunt ID of the launch the page variant highlights.", "type": "string" }, "typename": { + "description": "Layout variant Product Hunt uses for the product page.", "type": "string" } }, @@ -138039,78 +144111,114 @@ "producthunt.ProductAboutPost": { "properties": { "badges": { + "description": "Badges the launch has earned, such as leaderboard awards.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryListBadge" }, "type": "array" }, "comments_count": { + "description": "Number of comments on the launch.", "type": "integer" }, "created_at": { + "description": "ISO 8601 timestamp of when the launch was created.", "type": "string" }, "daily_rank": { + "description": "Rank on the daily leaderboard. `0` when Product Hunt gives no rank.", "type": "integer" }, "disabled_when_scheduled": { + "description": "Whether upvoting is disabled while the launch is scheduled.", "type": "boolean" }, "embargo_preview_at": { + "description": "ISO 8601 timestamp of the embargo preview, when the launch has one.", "type": "string" }, "featured_at": { + "description": "ISO 8601 timestamp of when Product Hunt featured the launch.", "type": "string" }, "has_voted": { + "description": "Whether the viewer has upvoted this launch.", "type": "boolean" }, "hide_votes_count": { + "description": "Whether the maker hides the vote count for this launch.", "type": "boolean" }, "id": { + "description": "Product Hunt ID of the launch post.", "type": "string" }, "latest_score": { + "description": "Current upvote score of the launch.", "type": "integer" }, "launch_day_score": { + "description": "Upvote score the launch had on its launch day.", "type": "integer" }, "monthly_rank": { + "description": "Rank on the monthly leaderboard. `0` when Product Hunt gives no rank.", "type": "integer" }, "name": { + "description": "Name of the launch.", "type": "string" }, "product": { - "$ref": "#/definitions/producthunt.LeaderboardProductRef" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardProductRef" + } + ], + "description": "Product the launch belongs to." }, "product_state": { + "description": "Product Hunt's state label for the product, for example `default`.", "type": "string" }, "randomization_status": { - "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardRandomizationStatus" + } + ], + "description": "Whether and when Product Hunt randomizes where this launch appears." }, "redirect_to_product": { - "$ref": "#/definitions/producthunt.LeaderboardProductRef" + "allOf": [ + { + "$ref": "#/definitions/producthunt.LeaderboardProductRef" + } + ], + "description": "Product the launch redirects to, when it redirects." }, "shortened_url": { + "description": "Short Product Hunt link to the launch.", "type": "string" }, "slug": { + "description": "URL slug of the launch post.", "type": "string" }, "tagline": { + "description": "Short tagline of the launch.", "type": "string" }, "thumbnail_image_uuid": { + "description": "Identifier of the launch thumbnail image on Product Hunt's image host.", "type": "string" }, "updated_at": { + "description": "ISO 8601 timestamp of the last update to the launch.", "type": "string" }, "weekly_rank": { + "description": "Rank on the weekly leaderboard. `0` when Product Hunt gives no rank.", "type": "integer" } }, @@ -138119,9 +144227,11 @@ "producthunt.ProductAboutPrimaryLink": { "properties": { "id": { + "description": "Product Hunt ID of the link.", "type": "string" }, "url": { + "description": "Main link of the launch.", "type": "string" } }, @@ -138130,6 +144240,7 @@ "producthunt.ProductAboutProduct": { "properties": { "badges": { + "description": "Badges the product has earned, such as leaderboard awards.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryListBadge" }, @@ -138137,78 +144248,110 @@ }, "detailed_review": { "additionalProperties": {}, + "description": "Detailed review summary of the product, as Product Hunt returns it.", "type": "object" }, "discussion_forum": { - "$ref": "#/definitions/producthunt.ProductAboutDiscussionForum" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutDiscussionForum" + } + ], + "description": "Discussion forum of the product." }, "followers_count": { + "description": "Number of Product Hunt users following the product.", "type": "integer" }, "id": { + "description": "Product Hunt ID of the product.", "type": "string" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "is_subscribed": { + "description": "Whether the viewer follows this product.", "type": "boolean" }, "latest_launch": { - "$ref": "#/definitions/producthunt.ProductAboutLatestLaunch" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutLatestLaunch" + } + ], + "description": "Most recent launch of the product." }, "logo_uuid": { + "description": "Identifier of the product logo on Product Hunt's image host.", "type": "string" }, "media": { + "description": "Images and videos on the product page.", "items": { "$ref": "#/definitions/producthunt.ProductAboutMedia" }, "type": "array" }, "name": { + "description": "Name of the product.", "type": "string" }, "page_variant": { - "$ref": "#/definitions/producthunt.ProductAboutPageVariant" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutPageVariant" + } + ], + "description": "Layout variant Product Hunt uses for the product page." }, "posts": { + "description": "Launch posts of the product.", "items": { "$ref": "#/definitions/producthunt.ProductAboutPost" }, "type": "array" }, "posts_count": { + "description": "Number of launch posts the product has.", "type": "integer" }, "pro_con_tags": { + "description": "Pro and con tags reviewers have attached to the product.", "items": { "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" }, "type": "array" }, "review_questions": { + "description": "Questions Product Hunt asks reviewers of the product.", "items": { "$ref": "#/definitions/producthunt.ProductAboutReviewQuestion" }, "type": "array" }, "reviews_rating": { + "description": "Average review rating on Product Hunt.", "type": "number" }, "screenshots": { + "description": "Screenshots shown on the product page.", "items": { "$ref": "#/definitions/producthunt.ProductAboutScreenshot" }, "type": "array" }, "slug": { + "description": "URL slug of the product. Use it with the product endpoint.", "type": "string" }, "tagline": { + "description": "Short tagline of the product.", "type": "string" }, "url": { + "description": "Product Hunt link to the product page.", "type": "string" } }, @@ -138217,12 +144360,15 @@ "producthunt.ProductAboutReviewQuestion": { "properties": { "category": { + "description": "Review category the question belongs to, for example `Adoption`.", "type": "string" }, "id": { + "description": "Product Hunt ID of the question.", "type": "string" }, "question": { + "description": "Text of the question reviewers are asked.", "type": "string" } }, @@ -138231,18 +144377,23 @@ "producthunt.ProductAboutScreenshot": { "properties": { "id": { + "description": "Product Hunt ID of the screenshot.", "type": "string" }, "image_uuid": { + "description": "Identifier of the image on Product Hunt's image host.", "type": "string" }, "media_type": { + "description": "Type of media, for example `image`.", "type": "string" }, "original_height": { + "description": "Height of the original screenshot in pixels.", "type": "integer" }, "original_width": { + "description": "Width of the original screenshot in pixels.", "type": "integer" } }, @@ -138251,18 +144402,26 @@ "producthunt.ProductAboutShoutout": { "properties": { "alternative_products": { + "description": "Products the reviewer names as alternatives.", "items": { "$ref": "#/definitions/producthunt.ProductAboutMentionedProduct" }, "type": "array" }, "id": { + "description": "Product Hunt ID of the shoutout.", "type": "string" }, "product": { - "$ref": "#/definitions/producthunt.ProductAboutMentionedProduct" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAboutMentionedProduct" + } + ], + "description": "Product the shoutout is about." }, "shoutout_note": { + "description": "Text of the shoutout written by the reviewer.", "type": "string" } }, @@ -138271,18 +144430,23 @@ "producthunt.ProductAboutUser": { "properties": { "avatar_url": { + "description": "Link to the member's profile picture.", "type": "string" }, "headline": { + "description": "Member's profile headline.", "type": "string" }, "id": { + "description": "Product Hunt ID of the member.", "type": "string" }, "name": { + "description": "Member's display name.", "type": "string" }, "username": { + "description": "Member's Product Hunt username.", "type": "string" } }, @@ -138291,10 +144455,12 @@ "producthunt.ProductAboutViewer": { "properties": { "is_featured_post_maker": { + "description": "Whether the viewer is a maker of a featured post.", "type": "boolean" }, "recent_launch": { "additionalProperties": {}, + "description": "The viewer's most recent launch, as Product Hunt returns it.", "type": "object" } }, @@ -138303,21 +144469,27 @@ "producthunt.ProductAlternativeBadge": { "properties": { "date": { + "description": "Date the badge was awarded.", "type": "string" }, "id": { + "description": "Product Hunt ID of the badge.", "type": "string" }, "period": { + "description": "Leaderboard period of the badge, for example `daily` or `weekly`.", "type": "string" }, "position": { + "description": "Leaderboard position the badge was awarded for.", "type": "integer" }, "post_name": { + "description": "Name of the launch post the badge was awarded for.", "type": "string" }, "post_slug": { + "description": "URL slug of the launch post the badge was awarded for.", "type": "string" } }, @@ -138326,39 +144498,59 @@ "producthunt.ProductAlternativeDiscussion": { "properties": { "comments_count": { + "description": "Number of comments on the discussion.", "type": "integer" }, "created_at": { + "description": "ISO 8601 timestamp of when the discussion was created.", "type": "string" }, "description_preview": { + "description": "Short preview of the discussion's opening text.", "type": "string" }, "has_voted": { + "description": "Whether the viewer has upvoted the discussion.", "type": "boolean" }, "id": { + "description": "Product Hunt ID of the discussion.", "type": "string" }, "path": { + "description": "Product Hunt path of the discussion.", "type": "string" }, "pinned": { + "description": "Whether the discussion is pinned.", "type": "boolean" }, "primary_forum": { - "$ref": "#/definitions/producthunt.ProductAlternativeDiscussionForum" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAlternativeDiscussionForum" + } + ], + "description": "Main forum the discussion belongs to." }, "slug": { + "description": "URL slug of the discussion.", "type": "string" }, "title": { + "description": "Title of the discussion.", "type": "string" }, "user": { - "$ref": "#/definitions/producthunt.ProductAlternativeDiscussionUser" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAlternativeDiscussionUser" + } + ], + "description": "Member who started the discussion." }, "votes_count": { + "description": "Number of upvotes on the discussion.", "type": "integer" } }, @@ -138367,15 +144559,19 @@ "producthunt.ProductAlternativeDiscussionForum": { "properties": { "id": { + "description": "Product Hunt id of the discussion forum.", "type": "string" }, "slug": { + "description": "URL slug of the discussion forum.", "type": "string" }, "subject_id": { + "description": "Product Hunt id of the product the forum belongs to.", "type": "string" }, "subject_name": { + "description": "Name of the product the forum belongs to.", "type": "string" } }, @@ -138384,15 +144580,19 @@ "producthunt.ProductAlternativeDiscussionUser": { "properties": { "avatar_url": { + "description": "URL of the user's profile picture.", "type": "string" }, "id": { + "description": "Product Hunt id of the user who started the discussion.", "type": "string" }, "name": { + "description": "Display name of the user.", "type": "string" }, "username": { + "description": "Product Hunt username of the user.", "type": "string" } }, @@ -138489,39 +144689,50 @@ "producthunt.ProductAlternativeStructuredData": { "properties": { "application_category": { + "description": "Schema.org application category of the product.", "type": "string" }, "context": { + "description": "Schema.org context URL of the product's structured data block.", "type": "string" }, "date_modified": { + "description": "Date the product page was last modified.", "type": "string" }, "date_published": { + "description": "Date the product was published on Product Hunt.", "type": "string" }, "description": { + "description": "Product description as given in its structured data.", "type": "string" }, "id": { + "description": "Identifier of the product in its structured data block.", "type": "string" }, "image": { + "description": "URL of the product's main image.", "type": "string" }, "name": { + "description": "Product name as given in its structured data.", "type": "string" }, "operating_system": { + "description": "Operating systems the product runs on, as listed in its structured data.", "type": "string" }, "screenshot": { + "description": "URLs of the product's screenshots.", "items": { "type": "string" }, "type": "array" }, "url": { + "description": "Product Hunt page URL of the product.", "type": "string" } }, @@ -138604,36 +144815,51 @@ "producthunt.ProductCategoryAd": { "properties": { "channel_kind": { + "description": "Placement of the ad, for example `feed`.", "type": "string" }, "id": { + "description": "Product Hunt id of the ad.", "type": "string" }, "large_asset_uuid": { + "description": "Identifier of the ad's large image asset.", "type": "string" }, "name": { + "description": "Name of the advertised product.", "type": "string" }, "post": { - "$ref": "#/definitions/producthunt.ProductCategoryAdPost" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryAdPost" + } + ], + "description": "Launch post of the advertised product." }, "small_asset_uuid": { + "description": "Identifier of the ad's small image asset.", "type": "string" }, "subject": { + "description": "Kind of Product Hunt item the ad is placed on, for example `Channel`.", "type": "string" }, "tagline": { + "description": "Short tagline shown on the ad.", "type": "string" }, "thumbnail_uuid": { + "description": "Identifier of the ad's thumbnail image file.", "type": "string" }, "url": { + "description": "Path of the ad's link on Product Hunt.", "type": "string" }, "variation_id": { + "description": "Identifier of the ad variation shown.", "type": "string" } }, @@ -138642,22 +144868,32 @@ "producthunt.ProductCategoryAdComment": { "properties": { "body_text": { + "description": "Plain-text body of the comment.", "type": "string" }, "id": { + "description": "Product Hunt id of the comment.", "type": "string" }, "is_pinned": { + "description": "Whether the comment is pinned on the launch.", "type": "boolean" }, "path": { + "description": "Path of the comment on Product Hunt.", "type": "string" }, "subject_id": { + "description": "Product Hunt id of the launch post the comment is on.", "type": "string" }, "user": { - "$ref": "#/definitions/producthunt.ProductCategoryUser" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryUser" + } + ], + "description": "Author of the comment." } }, "type": "object" @@ -138665,63 +144901,90 @@ "producthunt.ProductCategoryAdPost": { "properties": { "comments_count": { + "description": "Number of comments on the launch post.", "type": "integer" }, "created_at": { + "description": "Time the launch post was created, in ISO 8601 with a UTC offset.", "type": "string" }, "disabled_when_scheduled": { + "description": "Whether the post is disabled while its launch is still scheduled.", "type": "boolean" }, "embargo_preview_at": { + "description": "Time the launch post becomes visible as an embargo preview. Omitted when not set.", "type": "string" }, "featured_at": { + "description": "Time the launch post was featured, in ISO 8601 with a UTC offset.", "type": "string" }, "featured_comment": { - "$ref": "#/definitions/producthunt.ProductCategoryAdComment" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryAdComment" + } + ], + "description": "Comment featured on the launch post." }, "has_voted": { + "description": "Whether the requesting viewer has upvoted the launch post.", "type": "boolean" }, "hide_votes_count": { + "description": "Whether Product Hunt hides the vote count for this post.", "type": "boolean" }, "id": { + "description": "Product Hunt id of the launch post.", "type": "string" }, "latest_score": { + "description": "Latest vote score of the launch post.", "type": "integer" }, "launch_day_score": { + "description": "Vote score of the launch post on its launch day.", "type": "integer" }, "name": { + "description": "Name of the launch post.", "type": "string" }, "product_id": { + "description": "Product Hunt id of the product the post belongs to.", "type": "string" }, "product_slug": { + "description": "URL slug of the product the post belongs to.", "type": "string" }, "product_subscribed": { + "description": "Whether the requesting viewer follows the product.", "type": "boolean" }, "randomization_status": { - "$ref": "#/definitions/producthunt.ProductCategoryRandomizationStatus" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryRandomizationStatus" + } + ], + "description": "Whether the post currently has randomized ordering in listings, and when that changes." }, "slug": { + "description": "URL slug of the launch post.", "type": "string" }, "topics": { + "description": "Topics the launch post is filed under.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryTopic" }, "type": "array" }, "updated_at": { + "description": "Time the launch post was last updated, in ISO 8601 with a UTC offset.", "type": "string" } }, @@ -138730,12 +144993,19 @@ "producthunt.ProductCategoryAnswer": { "properties": { "body": { - "$ref": "#/definitions/producthunt.ProductCategoryMarkdown" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryMarkdown" + } + ], + "description": "Text of the answer." }, "id": { + "description": "Product Hunt id of the answer.", "type": "string" }, "sources": { + "description": "Product Hunt items the answer is based on.", "items": { "$ref": "#/definitions/producthunt.ProductCategorySource" }, @@ -138747,30 +145017,38 @@ "producthunt.ProductCategoryFounderPost": { "properties": { "badges": { + "description": "Badges the launch post has earned.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryListBadge" }, "type": "array" }, "id": { + "description": "Product Hunt id of the launch post.", "type": "string" }, "name": { + "description": "Name of the launch post.", "type": "string" }, "product_id": { + "description": "Product Hunt id of the product the post belongs to.", "type": "string" }, "product_slug": { + "description": "URL slug of the product the post belongs to.", "type": "string" }, "product_state": { + "description": "State of the product on Product Hunt, for example `default`.", "type": "string" }, "slug": { + "description": "URL slug of the launch post.", "type": "string" }, "thumbnail_image_uuid": { + "description": "Identifier of the launch post's thumbnail image file.", "type": "string" } }, @@ -138779,12 +145057,19 @@ "producthunt.ProductCategoryFounderShoutout": { "properties": { "from_post": { - "$ref": "#/definitions/producthunt.ProductCategoryFounderPost" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryFounderPost" + } + ], + "description": "Launch post of the founder who gave the shoutout." }, "id": { + "description": "Product Hunt id of the shoutout.", "type": "string" }, "product_id": { + "description": "Product Hunt id of the product that received the shoutout.", "type": "string" } }, @@ -138793,15 +145078,19 @@ "producthunt.ProductCategoryHeroProduct": { "properties": { "id": { + "description": "Product Hunt id of the product.", "type": "string" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "logo_uuid": { + "description": "Identifier of the product's logo image file.", "type": "string" }, "name": { + "description": "Name of the product as shown on Product Hunt.", "type": "string" } }, @@ -138810,9 +145099,11 @@ "producthunt.ProductCategoryLatestLaunch": { "properties": { "id": { + "description": "Product Hunt id of the product's latest launch.", "type": "string" }, "scheduled_at": { + "description": "Time the latest launch was scheduled for, in ISO 8601 with a UTC offset.", "type": "string" } }, @@ -138821,30 +145112,39 @@ "producthunt.ProductCategoryListBadge": { "properties": { "category": { + "description": "Award category of the badge, for example `Product of the Year`. Omitted for daily and weekly badges.", "type": "string" }, "date": { + "description": "Date the badge refers to.", "type": "string" }, "id": { + "description": "Product Hunt id of the badge.", "type": "string" }, "period": { + "description": "Period the badge covers, for example `daily` or `weekly`.", "type": "string" }, "position": { + "description": "Rank the product placed at for this badge.", "type": "integer" }, "post_id": { + "description": "Product Hunt id of the launch post the badge was earned on.", "type": "string" }, "post_name": { + "description": "Name of the launch post the badge was earned on.", "type": "string" }, "post_slug": { + "description": "URL slug of the launch post the badge was earned on.", "type": "string" }, "year": { + "description": "Year of the award the badge belongs to.", "type": "string" } }, @@ -138853,72 +145153,100 @@ "producthunt.ProductCategoryListProduct": { "properties": { "badges": { + "description": "Badges the product has earned on Product Hunt.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryListBadge" }, "type": "array" }, "categories": { + "description": "Product Hunt categories the product is listed in.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryRef" }, "type": "array" }, "detailed_reviews_count": { + "description": "Number of detailed reviews the product has.", "type": "integer" }, "followers_count": { + "description": "Number of Product Hunt users following the product.", "type": "integer" }, "founder_reviews_count": { + "description": "Number of reviews written by the product's founders.", "type": "integer" }, "founder_shoutouts": { + "description": "Shoutouts the product received from other founders.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryFounderShoutout" }, "type": "array" }, "id": { + "description": "Product Hunt id of the product.", "type": "string" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "is_subscribed": { + "description": "Whether the requesting viewer follows the product.", "type": "boolean" }, "is_top_product": { + "description": "Whether Product Hunt flags the product as a top product.", "type": "boolean" }, "latest_launch": { - "$ref": "#/definitions/producthunt.ProductCategoryLatestLaunch" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryLatestLaunch" + } + ], + "description": "Most recent launch of the product." }, "logo_uuid": { + "description": "Identifier of the product's logo image file.", "type": "string" }, "name": { + "description": "Name of the product as shown on Product Hunt.", "type": "string" }, "posts_count": { + "description": "Number of launch posts the product has.", "type": "integer" }, "reviews_count": { + "description": "Number of reviews the product has.", "type": "integer" }, "reviews_rating": { + "description": "Average review rating of the product.", "type": "number" }, "slug": { + "description": "URL slug of the product on Product Hunt.", "type": "string" }, "structured_data": { - "$ref": "#/definitions/producthunt.ProductAlternativeStructuredData" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductAlternativeStructuredData" + } + ], + "description": "Schema.org structured data Product Hunt publishes for the product." }, "tagline": { + "description": "Short tagline of the product.", "type": "string" }, "tags": { + "description": "Tags describing the product.", "items": { "type": "string" }, @@ -138930,9 +145258,11 @@ "producthunt.ProductCategoryMarkdown": { "properties": { "markdown": { + "description": "Text in Markdown format.", "type": "string" }, "text": { + "description": "Same text as plain text.", "type": "string" } }, @@ -138941,55 +145271,73 @@ "producthunt.ProductCategoryPage": { "properties": { "description": { + "description": "Description of the category.", "type": "string" }, "discussions": { + "description": "Community discussions related to the category.", "items": { "$ref": "#/definitions/producthunt.ProductAlternativeDiscussion" }, "type": "array" }, "discussions_has_next_page": { + "description": "Whether more discussions exist beyond those returned.", "type": "boolean" }, "expandable_html": { + "description": "HTML of the category's expandable description section. Omitted when the category has none.", "type": "string" }, "hero_products": { + "description": "Featured products shown at the top of the category page.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryHeroProduct" }, "type": "array" }, "hero_products_count": { + "description": "Total number of featured products in the category.", "type": "integer" }, "id": { + "description": "Product Hunt id of the category.", "type": "string" }, "last_updated_at": { + "description": "Time the category page was last updated, in ISO 8601 with a UTC offset.", "type": "string" }, "meta_title": { + "description": "Page title Product Hunt uses for the category.", "type": "string" }, "name": { + "description": "Name of the category as shown on Product Hunt.", "type": "string" }, "parent": { - "$ref": "#/definitions/producthunt.ProductCategoryParent" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryParent" + } + ], + "description": "Parent category, with its other sub-categories." }, "path": { + "description": "Path of the category page on Product Hunt.", "example": "/categories/vibe-coding", "type": "string" }, "questions": { + "description": "Questions asked about the category, each with its top answer.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryQuestion" }, "type": "array" }, "raw_relevant_reviews": { + "description": "Reviews Product Hunt shows as relevant to the category, as Product Hunt returns them.", "items": { "additionalProperties": {}, "type": "object" @@ -138997,26 +145345,40 @@ "type": "array" }, "recent_launches_count": { + "description": "Number of recent launches in the category.", "type": "integer" }, "recent_summary": { - "$ref": "#/definitions/producthunt.ProductCategoryRecentSummary" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryRecentSummary" + } + ], + "description": "Summary of recent launches in the category with the products it covers." }, "reviews_count": { + "description": "Number of reviews across the category's products.", "type": "integer" }, "slug": { + "description": "URL slug of the category.", "example": "vibe-coding", "type": "string" }, "sub_categories": { + "description": "Sub-categories of this category.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryRef" }, "type": "array" }, "targeted_ad": { - "$ref": "#/definitions/producthunt.ProductCategoryAd" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryAd" + } + ], + "description": "Sponsored placement shown on the category page. Omitted when there is none." } }, "type": "object" @@ -139024,15 +145386,19 @@ "producthunt.ProductCategoryParent": { "properties": { "id": { + "description": "Product Hunt id of the parent category.", "type": "string" }, "name": { + "description": "Name of the parent category.", "type": "string" }, "path": { + "description": "Path of the parent category page on Product Hunt.", "type": "string" }, "sub_categories": { + "description": "Sub-categories of the parent category, including this one.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryRef" }, @@ -139121,13 +145487,24 @@ "producthunt.ProductCategoryQuestion": { "properties": { "body": { - "$ref": "#/definitions/producthunt.ProductCategoryMarkdown" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryMarkdown" + } + ], + "description": "Text of the question." }, "id": { + "description": "Product Hunt id of the question.", "type": "string" }, "top_answer": { - "$ref": "#/definitions/producthunt.ProductCategoryAnswer" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryAnswer" + } + ], + "description": "Highest-ranked answer to the question." } }, "type": "object" @@ -139135,12 +145512,15 @@ "producthunt.ProductCategoryRandomizationStatus": { "properties": { "active": { + "description": "Whether randomized ordering is currently active for the post.", "type": "boolean" }, "next_transition_at": { + "description": "Time the randomization status next changes. Omitted when none is scheduled.", "type": "string" }, "random_day": { + "description": "Whether the post's launch day uses randomized ordering.", "type": "boolean" } }, @@ -139149,12 +145529,14 @@ "producthunt.ProductCategoryRecentSummary": { "properties": { "products": { + "description": "Products the summary covers.", "items": { "$ref": "#/definitions/producthunt.ProductCategorySummaryProduct" }, "type": "array" }, "summary": { + "description": "Short text summarising what recently launched in the category.", "type": "string" } }, @@ -139163,15 +145545,19 @@ "producthunt.ProductCategoryRef": { "properties": { "id": { + "description": "Product Hunt id of the category.", "type": "string" }, "name": { + "description": "Name of the category as shown on Product Hunt.", "type": "string" }, "path": { + "description": "Path of the category page on Product Hunt.", "type": "string" }, "slug": { + "description": "URL slug of the category.", "type": "string" } }, @@ -139180,27 +145566,38 @@ "producthunt.ProductCategorySource": { "properties": { "badges": { + "description": "Badges shown next to the source.", "items": { "type": "string" }, "type": "array" }, "id": { + "description": "Product Hunt id of the source item.", "type": "string" }, "path": { + "description": "Path of the source item on Product Hunt.", "type": "string" }, "subject_id": { + "description": "Product Hunt id of the item the source is attached to.", "type": "string" }, "type": { + "description": "Kind of Product Hunt item the source is, for example `Comment`.", "type": "string" }, "user": { - "$ref": "#/definitions/producthunt.ProductCategoryUser" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryUser" + } + ], + "description": "User who wrote the source item." }, "visible_at": { + "description": "Time the source item became visible, as Product Hunt returns it.", "type": "string" } }, @@ -139209,54 +145606,73 @@ "producthunt.ProductCategorySummaryProduct": { "properties": { "badges": { + "description": "Badges the product has earned on Product Hunt.", "items": { "$ref": "#/definitions/producthunt.ProductAlternativeBadge" }, "type": "array" }, "categories": { + "description": "Product Hunt categories the product is listed in.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryRef" }, "type": "array" }, "followers_count": { + "description": "Number of Product Hunt users following the product.", "type": "integer" }, "id": { + "description": "Product Hunt id of the product.", "type": "string" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "is_subscribed": { + "description": "Whether the requesting viewer follows the product.", "type": "boolean" }, "is_top_product": { + "description": "Whether Product Hunt flags the product as a top product.", "type": "boolean" }, "latest_launch": { - "$ref": "#/definitions/producthunt.ProductCategoryLatestLaunch" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductCategoryLatestLaunch" + } + ], + "description": "Most recent launch of the product." }, "logo_uuid": { + "description": "Identifier of the product's logo image file.", "type": "string" }, "name": { + "description": "Name of the product as shown on Product Hunt.", "type": "string" }, "reviews_count": { + "description": "Number of reviews the product has.", "type": "integer" }, "reviews_rating": { + "description": "Average review rating of the product.", "type": "number" }, "slug": { + "description": "URL slug of the product on Product Hunt.", "type": "string" }, "tagline": { + "description": "Short tagline of the product.", "type": "string" }, "tags": { + "description": "Tags describing the product.", "items": { "type": "string" }, @@ -139268,12 +145684,15 @@ "producthunt.ProductCategoryTopic": { "properties": { "id": { + "description": "Product Hunt id of the topic.", "type": "string" }, "name": { + "description": "Name of the topic as shown on Product Hunt.", "type": "string" }, "slug": { + "description": "URL slug of the topic.", "type": "string" } }, @@ -139282,15 +145701,19 @@ "producthunt.ProductCategoryUser": { "properties": { "avatar_url": { + "description": "URL of the user's profile picture.", "type": "string" }, "id": { + "description": "Product Hunt id of the user.", "type": "string" }, "name": { + "description": "Display name of the user.", "type": "string" }, "username": { + "description": "Product Hunt username of the user.", "type": "string" } }, @@ -139299,57 +145722,71 @@ "producthunt.ProductCustomersPage": { "properties": { "connection": { + "description": "Kind of list the items come from, for example `customers`.", "example": "customers", "type": "string" }, "end_cursor": { + "description": "Cursor of the last item on this page. Omitted when Product Hunt returns none.", "type": "string" }, "has_next_page": { + "description": "Whether another page of customers follows this one.", "type": "boolean" }, "has_previous_page": { + "description": "Whether a page of customers precedes this one.", "type": "boolean" }, "items": { + "description": "Products that are customers of the product, one per entry.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryListProduct" }, "type": "array" }, "name": { + "description": "Name of the product.", "example": "OpenAI", "type": "string" }, "order": { + "description": "Order the customers are sorted in, `customers` or `latest_launch`.", "example": "customers", "type": "string" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "page_size": { + "description": "Number of customers requested per page.", "example": 10, "type": "integer" }, "pages_count": { + "description": "Total number of pages of customers.", "example": 12, "type": "integer" }, "product_id": { + "description": "Product Hunt id of the product.", "example": "594550", "type": "string" }, "raw_page_info": { "additionalProperties": {}, + "description": "Pagination details for this page as Product Hunt returns them.", "type": "object" }, "slug": { + "description": "URL slug of the product on Product Hunt.", "example": "openai", "type": "string" }, "total_count": { + "description": "Total number of customers the product has.", "example": 120, "type": "integer" } @@ -139359,120 +145796,171 @@ "producthunt.ProductDetailedReview": { "properties": { "alternative_products": { + "description": "Products the reviewer names as alternatives.", "items": { "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" }, "type": "array" }, "alternatives_feedback": { + "description": "Reviewer's free-text comments on alternatives to the product.", "type": "string" }, "can_destroy": { + "description": "Whether the requesting viewer can delete the review.", "type": "boolean" }, "can_moderate": { + "description": "Whether the requesting viewer can moderate the review.", "type": "boolean" }, "can_reply": { + "description": "Whether the requesting viewer can reply to the review.", "type": "boolean" }, "can_update": { + "description": "Whether the requesting viewer can edit the review.", "type": "boolean" }, "comments_count": { + "description": "Number of comments on the review.", "type": "integer" }, "created_at": { + "description": "Time the review was written.", "type": "string" }, "customization_rating": { + "description": "Reviewer's rating for customization. Omitted when the reviewer gave none.", "type": "integer" }, "ease_of_use_rating": { + "description": "Reviewer's rating for ease of use. Omitted when the reviewer gave none.", "type": "integer" }, "follow_product": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewFollowProduct" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductDetailedReviewFollowProduct" + } + ], + "description": "The reviewed product with the viewer's follow state." }, "from_post": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewPost" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductDetailedReviewPost" + } + ], + "description": "Launch post the review was written from." }, "has_voted": { + "description": "Whether the requesting viewer has upvoted the review.", "type": "boolean" }, "id": { + "description": "Product Hunt id of the review.", "type": "string" }, "impression_count": { + "description": "Number of times the review has been shown.", "type": "integer" }, "is_hidden": { + "description": "Whether the review is hidden on Product Hunt.", "type": "boolean" }, "llm_content_quality_grade": { + "description": "Quality grade Product Hunt assigned to the review text. Omitted when none is given.", "type": "string" }, "llm_content_quality_reason": { + "description": "Reason given for the review's quality grade. Omitted when none is given.", "type": "string" }, "negative_feedback": { + "description": "Reviewer's free-text comments on what they disliked.", "type": "string" }, "overall_experience": { + "description": "Reviewer's free-text summary of their overall experience.", "type": "string" }, "overall_rating": { + "description": "Reviewer's overall rating of the product.", "type": "integer" }, "positive_feedback": { + "description": "Reviewer's free-text comments on what they liked.", "type": "string" }, "product": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" + } + ], + "description": "Product the review is about." }, "question_answers": { + "description": "Reviewer's answers to Product Hunt's review questions.", "items": { "$ref": "#/definitions/producthunt.ProductDetailedReviewQuestionAnswer" }, "type": "array" }, "reliability_rating": { + "description": "Reviewer's rating for reliability. Omitted when the reviewer gave none.", "type": "integer" }, "review_type": { + "description": "Kind of review, for example `founder` or `personal`.", "type": "string" }, "selected_cons": { + "description": "Downsides the reviewer picked from Product Hunt's tag list.", "items": { "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" }, "type": "array" }, "selected_pros": { + "description": "Strengths the reviewer picked from Product Hunt's tag list.", "items": { "$ref": "#/definitions/producthunt.ProductDetailedReviewTag" }, "type": "array" }, "status": { + "description": "Publication status of the review, for example `submitted`.", "type": "string" }, "threads_end_cursor": { + "description": "Cursor of the last comment thread returned. Omitted when none.", "type": "string" }, "threads_has_next_page": { + "description": "Whether more comment threads exist on the review.", "type": "boolean" }, "threads_total_count": { + "description": "Total number of comment threads on the review.", "type": "integer" }, "user": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewUser" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductDetailedReviewUser" + } + ], + "description": "Reviewer who wrote the review." }, "value_for_money_rating": { + "description": "Reviewer's rating for value for money. Omitted when the reviewer gave none.", "type": "integer" }, "votes_count": { + "description": "Number of upvotes the review has.", "type": "integer" } }, @@ -139481,21 +145969,27 @@ "producthunt.ProductDetailedReviewFollowProduct": { "properties": { "id": { + "description": "Product Hunt id of the product.", "type": "string" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "is_subscribed": { + "description": "Whether the requesting viewer follows the product.", "type": "boolean" }, "logo_uuid": { + "description": "Identifier of the product's logo image file.", "type": "string" }, "name": { + "description": "Name of the product as shown on Product Hunt.", "type": "string" }, "slug": { + "description": "URL slug of the product on Product Hunt.", "type": "string" } }, @@ -139504,39 +145998,50 @@ "producthunt.ProductDetailedReviewPost": { "properties": { "badges": { + "description": "Badges the launch post has earned.", "items": { "$ref": "#/definitions/producthunt.ProductCategoryListBadge" }, "type": "array" }, "id": { + "description": "Product Hunt id of the launch post.", "type": "string" }, "is_top_launch": { + "description": "Whether Product Hunt flags the post as a top launch.", "type": "boolean" }, "latest_score": { + "description": "Latest vote score of the launch post.", "type": "integer" }, "name": { + "description": "Name of the launch post.", "type": "string" }, "product_id": { + "description": "Product Hunt id of the product the post belongs to.", "type": "string" }, "product_is_top_product": { + "description": "Whether Product Hunt flags the product as a top product.", "type": "boolean" }, "product_slug": { + "description": "URL slug of the product the post belongs to.", "type": "string" }, "product_state": { + "description": "State of the product on Product Hunt, for example `default`.", "type": "string" }, "slug": { + "description": "URL slug of the launch post.", "type": "string" }, "thumbnail_image_uuid": { + "description": "Identifier of the launch post's thumbnail image file.", "type": "string" } }, @@ -139545,18 +146050,23 @@ "producthunt.ProductDetailedReviewProduct": { "properties": { "id": { + "description": "Product Hunt id of the product.", "type": "string" }, "is_no_longer_online": { + "description": "Whether Product Hunt marks the product as no longer online.", "type": "boolean" }, "logo_uuid": { + "description": "Identifier of the product's logo image file.", "type": "string" }, "name": { + "description": "Name of the product as shown on Product Hunt.", "type": "string" }, "slug": { + "description": "URL slug of the product on Product Hunt.", "type": "string" } }, @@ -139565,15 +146075,19 @@ "producthunt.ProductDetailedReviewQuestionAnswer": { "properties": { "answer": { + "description": "Reviewer's answer to the question.", "type": "string" }, "id": { + "description": "Product Hunt id of the answer.", "type": "string" }, "question": { + "description": "Text of the review question.", "type": "string" }, "question_id": { + "description": "Product Hunt id of the review question.", "type": "string" } }, @@ -139582,15 +146096,19 @@ "producthunt.ProductDetailedReviewTag": { "properties": { "count": { + "description": "Number of reviewers who picked this tag for the product.", "type": "integer" }, "id": { + "description": "Product Hunt id of the tag.", "type": "string" }, "name": { + "description": "Text of the tag as shown on Product Hunt.", "type": "string" }, "type": { + "description": "Whether the tag is a strength or a downside, for example `Positive`.", "type": "string" } }, @@ -139599,45 +146117,62 @@ "producthunt.ProductDetailedReviewUser": { "properties": { "avatar_url": { + "description": "URL of the reviewer's profile picture.", "type": "string" }, "headline": { + "description": "Reviewer's profile headline.", "type": "string" }, "id": { + "description": "Product Hunt id of the reviewer.", "type": "string" }, "is_account_verified": { + "description": "Whether the reviewer's Product Hunt account is verified.", "type": "boolean" }, "is_ambassador": { + "description": "Whether the reviewer is a Product Hunt ambassador.", "type": "boolean" }, "is_followed": { + "description": "Whether the requesting viewer follows the reviewer.", "type": "boolean" }, "name": { + "description": "Reviewer's display name.", "type": "string" }, "reviews_count": { + "description": "Number of reviews the reviewer has written.", "type": "integer" }, "selected_byline_product": { - "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" + "allOf": [ + { + "$ref": "#/definitions/producthunt.ProductDetailedReviewProduct" + } + ], + "description": "Product the reviewer shows on their byline." }, "top_hunter_badge": { "additionalProperties": {}, + "description": "Top hunter badge on the reviewer's profile, as Product Hunt returns it. Omitted when none.", "type": "object" }, "top_launch_badge": { "additionalProperties": {}, + "description": "Top launch badge on the reviewer's profile, as Product Hunt returns it. Omitted when none.", "type": "object" }, "top_product_badge": { "additionalProperties": {}, + "description": "Top product badge on the reviewer's profile, as Product Hunt returns it. Omitted when none.", "type": "object" }, "username": { + "description": "Reviewer's Product Hunt username.", "type": "string" } }, @@ -139646,66 +146181,84 @@ "producthunt.ProductDetailedReviewsPage": { "properties": { "connection": { + "description": "Kind of list the items come from, for example `detailedReviews`.", "example": "detailedReviews", "type": "string" }, "detailed_review": { "additionalProperties": {}, + "description": "A single detailed review attached to the product, as Product Hunt returns it. Omitted when none.", "type": "object" }, "detailed_reviews_count": { + "description": "Total number of detailed reviews the product has.", "type": "integer" }, "end_cursor": { + "description": "Cursor of the last review on this page. Omitted when Product Hunt returns none.", "type": "string" }, "founder_detailed_reviews_count": { + "description": "Number of detailed reviews written by the product's founders.", "type": "integer" }, "has_next_page": { + "description": "Whether another page of reviews follows this one.", "example": false, "type": "boolean" }, "is_maker": { + "description": "Whether the requesting viewer is a maker of the product.", "type": "boolean" }, "is_trashed": { + "description": "Whether the product has been removed from Product Hunt.", "type": "boolean" }, "items": { + "description": "Detailed reviews of the product, one per entry.", "items": { "$ref": "#/definitions/producthunt.ProductDetailedReview" }, "type": "array" }, "name": { + "description": "Name of the product.", "type": "string" }, "other_detailed_reviews_count": { + "description": "Number of detailed reviews written by users other than the founders.", "type": "integer" }, "product_id": { + "description": "Product Hunt id of the product.", "example": "1191613", "type": "string" }, "raw_page_info": { "additionalProperties": {}, + "description": "Pagination details for this page as Product Hunt returns them.", "type": "object" }, "reviews_count": { + "description": "Total number of reviews the product has.", "type": "integer" }, "reviews_rating": { + "description": "Average review rating of the product.", "type": "number" }, "reviews_recent_rating": { + "description": "Average review rating over recent reviews. Omitted when Product Hunt gives none.", "type": "number" }, "slug": { + "description": "URL slug of the product on Product Hunt.", "example": "clico", "type": "string" }, "total_count": { + "description": "Total number of detailed reviews in the list.", "example": 6, "type": "integer" } @@ -139715,42 +146268,52 @@ "producthunt.ProductLaunchesPage": { "properties": { "connection": { + "description": "Kind of list the items come from, for example `posts`.", "example": "posts", "type": "string" }, "end_cursor": { + "description": "Cursor of the last launch on this page. Pass it as `cursor` to get the next page.", "type": "string" }, "has_next_page": { + "description": "Whether another page of launches follows this one.", "type": "boolean" }, "items": { + "description": "Launch posts of the product, one per entry.", "items": { "$ref": "#/definitions/producthunt.ProductAboutPost" }, "type": "array" }, "name": { + "description": "Name of the product.", "example": "OpenAI", "type": "string" }, "order": { + "description": "Order the launches are sorted in, for example `DATE`.", "example": "DATE", "type": "string" }, "product_id": { + "description": "Product Hunt id of the product.", "example": "1191613", "type": "string" }, "raw_page_info": { "additionalProperties": {}, + "description": "Pagination details for this page as Product Hunt returns them.", "type": "object" }, "slug": { + "description": "URL slug of the product on Product Hunt.", "example": "openai", "type": "string" }, "total_count": { + "description": "Total number of launches the product has.", "example": 12, "type": "integer" } @@ -139760,30 +146323,38 @@ "producthunt.ProductMaker": { "properties": { "avatar_url": { + "description": "URL of the maker's profile picture.", "type": "string" }, "followers_count": { + "description": "Number of Product Hunt users following the maker.", "type": "integer" }, "headline": { + "description": "Maker's profile headline.", "type": "string" }, "id": { + "description": "Product Hunt id of the maker.", "type": "string" }, "is_followed": { + "description": "Whether the requesting viewer follows the maker.", "type": "boolean" }, "made_posts": { + "description": "Launch posts the maker worked on.", "items": { "$ref": "#/definitions/producthunt.ProductMakerPost" }, "type": "array" }, "name": { + "description": "Maker's display name.", "type": "string" }, "username": { + "description": "Maker's Product Hunt username.", "type": "string" } }, @@ -139792,24 +146363,31 @@ "producthunt.ProductMakerPost": { "properties": { "id": { + "description": "Product Hunt id of the launch post.", "type": "string" }, "name": { + "description": "Name of the launch post.", "type": "string" }, "product_id": { + "description": "Product Hunt id of the product the post belongs to.", "type": "string" }, "product_slug": { + "description": "URL slug of the product the post belongs to.", "type": "string" }, "product_state": { + "description": "State of the product on Product Hunt, for example `default`.", "type": "string" }, "slug": { + "description": "URL slug of the launch post.", "type": "string" }, "thumbnail_image_uuid": { + "description": "Identifier of the launch post's thumbnail image file.", "type": "string" } }, @@ -139818,52 +146396,65 @@ "producthunt.ProductMakersPage": { "properties": { "can_claim": { + "description": "Whether the requesting viewer can claim the product.", "type": "boolean" }, "connection": { + "description": "Kind of list the items come from, for example `makers`.", "example": "makers", "type": "string" }, "end_cursor": { + "description": "Cursor of the last maker on this page. Pass it as `cursor` to get the next page.", "type": "string" }, "has_next_page": { + "description": "Whether another page of makers follows this one.", "example": false, "type": "boolean" }, "is_claimed": { + "description": "Whether the product page has been claimed by its team.", "type": "boolean" }, "is_trashed": { + "description": "Whether the product has been removed from Product Hunt.", "type": "boolean" }, "items": { + "description": "Makers of the product, one per entry.", "items": { "$ref": "#/definitions/producthunt.ProductMaker" }, "type": "array" }, "name": { + "description": "Name of the product.", "type": "string" }, "product_id": { + "description": "Product Hunt id of the product.", "example": "1191613", "type": "string" }, "raw_page_info": { "additionalProperties": {}, + "description": "Pagination details for this page as Product Hunt returns them.", "type": "object" }, "slug": { + "description": "URL slug of the product on Product Hunt.", "example": "clico", "type": "string" }, "total_count": { + "description": "Total number of makers the product has.", "example": 3, "type": "integer" }, "viewer_pending_team_request": { "additionalProperties": {}, + "description": "The viewer's pending request to join the product's team, as Product Hunt returns it. Omitted when none.", "type": "object" } }, @@ -139872,6 +146463,7 @@ "producthunt.SimilarProduct": { "properties": { "categories": { + "description": "Product Hunt categories the similar product is listed in.", "example": [ "[\"Presentation Software\"]" ], @@ -139881,18 +146473,22 @@ "type": "array" }, "id": { + "description": "Product Hunt slug of the similar product.", "example": "beautiful-ai", "type": "string" }, "name": { + "description": "Name of the similar product.", "example": "Beautiful.ai", "type": "string" }, "rating": { + "description": "Average review rating of the similar product.", "example": 3.3, "type": "number" }, "review_count": { + "description": "Number of reviews the similar product has.", "example": 20, "type": "integer" } @@ -140062,6 +146658,7 @@ "producthunt.searchAggregationsDoc": { "properties": { "topics": { + "description": "Launch counts per topic for the search results.", "items": { "$ref": "#/definitions/producthunt.searchTopicDoc" }, @@ -140073,18 +146670,30 @@ "producthunt.searchDataDoc": { "properties": { "aggregations": { - "$ref": "#/definitions/producthunt.searchAggregationsDoc" + "allOf": [ + { + "$ref": "#/definitions/producthunt.searchAggregationsDoc" + } + ], + "description": "Topic counts for the matching launches. Returned for launch searches." }, "edges": { + "description": "Search results on this page, one per entry.", "items": { "$ref": "#/definitions/producthunt.searchEdgeDoc" }, "type": "array" }, "pageInfo": { - "$ref": "#/definitions/producthunt.searchPageInfoDoc" + "allOf": [ + { + "$ref": "#/definitions/producthunt.searchPageInfoDoc" + } + ], + "description": "Paging details for the results." }, "pagesCount": { + "description": "Total number of result pages.", "example": 394, "type": "integer" } @@ -140094,6 +146703,7 @@ "producthunt.searchEdgeDoc": { "properties": { "node": { + "description": "Search result: a product, user or launch, depending on `type`.", "type": "object" } }, @@ -140102,12 +146712,15 @@ "producthunt.searchPageInfoDoc": { "properties": { "hasNextPage": { + "description": "Whether another page of results follows this one.", "type": "boolean" }, "hasPreviousPage": { + "description": "Whether a page of results precedes this one.", "type": "boolean" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" } @@ -140133,10 +146746,12 @@ "producthunt.searchTopicDoc": { "properties": { "count": { + "description": "Number of matching launches in the topic.", "example": 11979, "type": "integer" }, "topic": { + "description": "Topic the count applies to, with its `id` and `name`.", "properties": { "id": { "example": "268", @@ -144364,10 +150979,12 @@ "reddit.Author": { "properties": { "name": { + "description": "Reddit username of the author.", "example": "reddit_user", "type": "string" }, "profile_url": { + "description": "URL of the author's Reddit profile page.", "example": "https://www.reddit.com/user/reddit_user/", "type": "string" } @@ -144377,50 +150994,66 @@ "reddit.Comment": { "properties": { "author": { - "$ref": "#/definitions/reddit.Author" + "allOf": [ + { + "$ref": "#/definitions/reddit.Author" + } + ], + "description": "Reddit user who wrote the comment." }, "award_count": { + "description": "Number of awards the comment received. Set only when metrics are requested.", "type": "integer" }, "body": { + "description": "Text of the comment as written by the author.", "example": "I agree with this post.", "type": "string" }, "created": { + "description": "Time the comment was posted, in UTC (RFC 3339).", "example": "2024-04-19T00:00:00Z", "type": "string" }, "created_utc": { + "description": "Time the comment was posted, in Unix seconds.", "example": 1713484800, "type": "integer" }, "depth": { + "description": "Nesting level of the comment in the thread.", "example": 1, "type": "integer" }, "id": { + "description": "Reddit comment id.", "example": "kabc123", "type": "string" }, "name": { + "description": "Reddit full name of the comment, the id prefixed with `t1_`.", "example": "t1_kabc123", "type": "string" }, "parent_id": { + "description": "Full name of the post or comment this comment replies to, for example `t3_1abcxyz`.", "example": "t3_1abcxyz", "type": "string" }, "permalink": { + "description": "Reddit URL of the comment.", "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/kabc123/", "type": "string" }, "replies": { + "description": "Replies to this comment, in the same shape.", "items": { "$ref": "#/definitions/reddit.Comment" }, "type": "array" }, "score": { + "description": "Net score of the comment. Set only when metrics are requested.", "type": "integer" } }, @@ -144429,19 +151062,35 @@ "reddit.CommentsResponse": { "properties": { "comments": { + "description": "Comments on the post.", "items": { "$ref": "#/definitions/reddit.Comment" }, "type": "array" }, "metrics_source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Source the engagement metrics were read from, with its type and URL. Set only when metrics are requested." }, "post": { - "$ref": "#/definitions/reddit.Post" + "allOf": [ + { + "$ref": "#/definitions/reddit.Post" + } + ], + "description": "Post the comments belong to." }, "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Reddit page the comments were read from." } }, "type": "object" @@ -144478,22 +151127,35 @@ "reddit.MultiSubredditPostsResponse": { "properties": { "pagination": { - "$ref": "#/definitions/reddit.Pagination" + "allOf": [ + { + "$ref": "#/definitions/reddit.Pagination" + } + ], + "description": "Page size and cursor for the next page." }, "posts": { + "description": "Posts from the requested subreddits.", "items": { "$ref": "#/definitions/reddit.Post" }, "type": "array" }, "sort": { + "description": "Sort order that was applied, for example `hot`.", "example": "hot", "type": "string" }, "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Reddit page the posts were read from." }, "subreddits": { + "description": "Names of the subreddits that were queried.", "example": [ "OpenAI", "MachineLearning" @@ -144504,6 +151166,7 @@ "type": "array" }, "time": { + "description": "Time window that was applied, for example `week`.", "example": "week", "type": "string" } @@ -144513,10 +151176,12 @@ "reddit.Pagination": { "properties": { "after": { + "description": "Cursor to pass as the `after` parameter to fetch the next page.", "example": "t3_1abcxyz", "type": "string" }, "limit": { + "description": "Maximum number of items requested for this page.", "example": 25, "type": "integer" } @@ -144526,94 +151191,124 @@ "reddit.Post": { "properties": { "author": { - "$ref": "#/definitions/reddit.Author" + "allOf": [ + { + "$ref": "#/definitions/reddit.Author" + } + ], + "description": "Reddit user who submitted the post." }, "award_count": { + "description": "Number of awards the post received. Set only when metrics are requested.", "type": "integer" }, "comment_count": { + "description": "Number of comments on the post. Set only when metrics are requested.", "type": "integer" }, "created": { + "description": "Time the post was submitted, in UTC (RFC 3339).", "example": "2024-04-19T00:00:00Z", "type": "string" }, "created_utc": { + "description": "Time the post was submitted, in Unix seconds.", "example": 1713484800, "type": "integer" }, "domain": { + "description": "Domain of the linked content, or `self.` for text posts.", "example": "self.OpenAI", "type": "string" }, "estimated_downvotes": { + "description": "Approximate downvote total worked out from the score and upvote ratio. Reddit does not publish exact counts.", "type": "integer" }, "estimated_upvotes": { + "description": "Approximate upvote total worked out from the score and upvote ratio. Reddit does not publish exact counts.", "type": "integer" }, "flair": { + "description": "Flair text attached to the post.", "example": "Discussion", "type": "string" }, "id": { + "description": "Reddit post id.", "example": "1abcxyz", "type": "string" }, "is_self": { + "description": "Whether the post is a text post rather than a link.", "type": "boolean" }, "is_video": { + "description": "Whether the post is a video.", "type": "boolean" }, "locked": { + "description": "Whether the post is locked against new comments.", "type": "boolean" }, "name": { + "description": "Reddit full name of the post, the id prefixed with `t3_`.", "example": "t3_1abcxyz", "type": "string" }, "over_18": { + "description": "Whether the post is marked as 18+ content.", "type": "boolean" }, "permalink": { + "description": "Reddit URL of the post's comments page.", "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/", "type": "string" }, "score": { + "description": "Net score of the post, upvotes minus downvotes as Reddit shows it. Set only when metrics are requested.", "type": "integer" }, "selftext": { + "description": "Body text of a text post.", "example": "Discussion body", "type": "string" }, "source_feed_url": { + "description": "URL of the Reddit feed the post was read from.", "example": "https://www.reddit.com/r/OpenAI/.rss", "type": "string" }, "stickied": { + "description": "Whether the post is pinned to the top of its subreddit.", "type": "boolean" }, "subreddit": { + "description": "Name of the subreddit the post belongs to, without `r/`.", "example": "OpenAI", "type": "string" }, "thumbnail": { + "description": "URL of the post thumbnail image.", "example": "https://b.thumbs.redditmedia.com/example.jpg", "type": "string" }, "title": { + "description": "Title of the post as submitted.", "example": "OpenAI discussion thread", "type": "string" }, "upvote_ratio": { + "description": "Share of votes that are upvotes, from 0 to 1. Set only when metrics are requested.", "type": "number" }, "url": { + "description": "Reddit URL of the post.", "example": "https://www.reddit.com/r/OpenAI/comments/1abcxyz/openai_discussion_thread/", "type": "string" }, "vote_counts_estimated": { + "description": "Whether `estimated_upvotes` and `estimated_downvotes` are estimates.", "type": "boolean" } }, @@ -144622,13 +151317,28 @@ "reddit.PostResponse": { "properties": { "metrics_source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Source the engagement metrics were read from, with its type and URL. Set only when metrics are requested." }, "post": { - "$ref": "#/definitions/reddit.Post" + "allOf": [ + { + "$ref": "#/definitions/reddit.Post" + } + ], + "description": "The requested post." }, "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Reddit page the post was read from." } }, "type": "object" @@ -144636,30 +151346,45 @@ "reddit.SearchResponse": { "properties": { "pagination": { - "$ref": "#/definitions/reddit.Pagination" + "allOf": [ + { + "$ref": "#/definitions/reddit.Pagination" + } + ], + "description": "Page size and cursor for the next page." }, "posts": { + "description": "Posts matching the search.", "items": { "$ref": "#/definitions/reddit.Post" }, "type": "array" }, "query": { + "description": "Search query that was run.", "example": "openai", "type": "string" }, "sort": { + "description": "Sort order that was applied, for example `relevance`.", "example": "relevance", "type": "string" }, "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Reddit page the results were read from." }, "subreddit": { + "description": "Subreddit the search was limited to. Omitted when the search covered all of Reddit.", "example": "OpenAI", "type": "string" }, "time": { + "description": "Time window that was applied, for example `week`.", "example": "week", "type": "string" } @@ -144669,10 +151394,12 @@ "reddit.SourceDetail": { "properties": { "type": { + "description": "Kind of Reddit source the data was read from.", "example": "rss", "type": "string" }, "url": { + "description": "Reddit URL the data was read from.", "example": "https://www.reddit.com/r/OpenAI/.rss", "type": "string" } @@ -144682,43 +151409,57 @@ "reddit.SubredditAboutResponse": { "properties": { "display_name": { + "description": "Subreddit name in `r/name` form.", "example": "r/OpenAI", "type": "string" }, "feed_url": { + "description": "URL of the subreddit's Reddit feed that the recent posts were read from.", "example": "https://www.reddit.com/r/OpenAI.rss?limit=10", "type": "string" }, "latest_post_created": { + "description": "Time the newest recent post was submitted, in UTC (RFC 3339).", "example": "2024-04-19T00:00:00Z", "type": "string" }, "latest_post_created_utc": { + "description": "Time the newest recent post was submitted, in Unix seconds.", "example": 1713484800, "type": "integer" }, "public_url": { + "description": "Public Reddit URL of the subreddit.", "example": "https://www.reddit.com/r/OpenAI/", "type": "string" }, "recent_post_count": { + "description": "Number of recent posts that were inspected.", "example": 10, "type": "integer" }, "sample_posts": { + "description": "Recent posts from the subreddit.", "items": { "$ref": "#/definitions/reddit.Post" }, "type": "array" }, "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Reddit page the data was read from." }, "subreddit": { + "description": "Subreddit name, without `r/`.", "example": "OpenAI", "type": "string" }, "title": { + "description": "Subreddit title as shown on Reddit.", "example": "OpenAI", "type": "string" } @@ -144728,18 +151469,30 @@ "reddit.SubredditCommentsResponse": { "properties": { "comments": { + "description": "Recent comments in the subreddit.", "items": { "$ref": "#/definitions/reddit.Comment" }, "type": "array" }, "pagination": { - "$ref": "#/definitions/reddit.Pagination" + "allOf": [ + { + "$ref": "#/definitions/reddit.Pagination" + } + ], + "description": "Page size and cursor for the next page." }, "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Reddit page the comments were read from." }, "subreddit": { + "description": "Subreddit name, without `r/`.", "example": "OpenAI", "type": "string" } @@ -144749,26 +151502,40 @@ "reddit.SubredditPostsResponse": { "properties": { "pagination": { - "$ref": "#/definitions/reddit.Pagination" + "allOf": [ + { + "$ref": "#/definitions/reddit.Pagination" + } + ], + "description": "Page size and cursor for the next page." }, "posts": { + "description": "Posts in the subreddit.", "items": { "$ref": "#/definitions/reddit.Post" }, "type": "array" }, "sort": { + "description": "Sort order that was applied, for example `hot`.", "example": "hot", "type": "string" }, "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Reddit page the posts were read from." }, "subreddit": { + "description": "Subreddit name, without `r/`.", "example": "OpenAI", "type": "string" }, "time": { + "description": "Time window that was applied, for example `week`.", "example": "week", "type": "string" } @@ -144803,18 +151570,30 @@ "reddit.UserCommentsResponse": { "properties": { "comments": { + "description": "Recent public comments by the user.", "items": { "$ref": "#/definitions/reddit.Comment" }, "type": "array" }, "pagination": { - "$ref": "#/definitions/reddit.Pagination" + "allOf": [ + { + "$ref": "#/definitions/reddit.Pagination" + } + ], + "description": "Page size and cursor for the next page." }, "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Reddit page the comments were read from." }, "username": { + "description": "Reddit username that was queried.", "example": "reddit", "type": "string" } @@ -144824,18 +151603,30 @@ "reddit.UserPostsResponse": { "properties": { "pagination": { - "$ref": "#/definitions/reddit.Pagination" + "allOf": [ + { + "$ref": "#/definitions/reddit.Pagination" + } + ], + "description": "Page size and cursor for the next page." }, "posts": { + "description": "Recent public posts by the user.", "items": { "$ref": "#/definitions/reddit.Post" }, "type": "array" }, "source": { - "$ref": "#/definitions/reddit.SourceDetail" + "allOf": [ + { + "$ref": "#/definitions/reddit.SourceDetail" + } + ], + "description": "Reddit page the posts were read from." }, "username": { + "description": "Reddit username that was queried.", "example": "reddit", "type": "string" } @@ -145156,64 +151947,80 @@ "redfin.EstimateResponse": { "properties": { "address": { + "description": "Street address of the property.", "type": "string" }, "baths": { + "description": "Number of bathrooms.", "type": "number" }, "beds": { + "description": "Number of bedrooms.", "type": "number" }, "city_time_series": { + "description": "Monthly values for the city the property is in, ending at `updated_at`, for comparison.", "items": { "type": "number" }, "type": "array" }, "county_time_series": { + "description": "Monthly values for the county the property is in, ending at `updated_at`, for comparison.", "items": { "type": "number" }, "type": "array" }, "estimate": { + "description": "Redfin Estimate of the home's value, in US dollars. Omitted when Redfin shows no estimate.", "type": "number" }, "estimate_text": { + "description": "Estimate as Redfin displays it, for example `$1.85M`, or `Estimate Not Available`.", "type": "string" }, "latitude": { + "description": "Latitude of the property.", "type": "number" }, "listing_price": { + "description": "Current listing price of the home, in US dollars.", "type": "number" }, "longitude": { + "description": "Longitude of the property.", "type": "number" }, "postal_code_time_series": { + "description": "Monthly values for the postal code the property is in, ending at `updated_at`, for comparison.", "items": { "type": "number" }, "type": "array" }, "property_id": { + "description": "Redfin property id the estimate is for.", "example": "1715020", "type": "string" }, "property_time_series": { + "description": "Monthly Redfin Estimate values for this property, in US dollars, ending at `updated_at`.", "items": { "type": "number" }, "type": "array" }, "sqft": { + "description": "Interior living area in square feet.", "type": "number" }, "updated_at": { + "description": "Time the estimate history was last updated, in Unix milliseconds. The monthly series end at this date.", "type": "integer" }, "year_built": { + "description": "Year the home was built.", "type": "integer" } }, @@ -145222,70 +152029,92 @@ "redfin.PropertyItem": { "properties": { "address": { + "description": "Street address of the property.", "type": "string" }, "baths": { + "description": "Number of bathrooms.", "type": "number" }, "beds": { + "description": "Number of bedrooms.", "type": "number" }, "city": { + "description": "City the property is in.", "type": "string" }, "days_on_market": { + "description": "Number of days the home has been on the market.", "type": "integer" }, "hoa_monthly": { + "description": "Homeowners association fee per month.", "type": "number" }, "image": { + "description": "URL of the listing image.", "type": "string" }, "latitude": { + "description": "Latitude of the property.", "type": "number" }, "listing_id": { + "description": "Redfin listing id of the current listing.", "type": "string" }, "longitude": { + "description": "Longitude of the property.", "type": "number" }, "lot_size": { + "description": "Size of the lot as Redfin lists it.", "type": "number" }, "mls_number": { + "description": "Multiple Listing Service (MLS) number of the listing.", "type": "string" }, "price": { + "description": "Listing or sale price in US dollars.", "type": "number" }, "price_per_sqft": { + "description": "Price per square foot of living area.", "type": "number" }, "property_id": { + "description": "Redfin property id. Use it with the property, estimate and similar endpoints.", "example": "1715020", "type": "string" }, "property_type": { + "description": "Type of property, for example `Condo/Co-op`.", "type": "string" }, "sqft": { + "description": "Interior living area in square feet.", "type": "number" }, "state": { + "description": "State the property is in.", "type": "string" }, "status": { + "description": "Listing status as Redfin shows it, for example `Active`.", "type": "string" }, "url": { + "description": "Redfin page URL of the listing.", "type": "string" }, "year_built": { + "description": "Year the home was built.", "type": "integer" }, "zip": { + "description": "ZIP or postal code of the property.", "type": "string" } }, @@ -145294,18 +152123,23 @@ "redfin.PropertyResponse": { "properties": { "address": { + "description": "Street address of the property.", "type": "string" }, "baths": { + "description": "Number of bathrooms.", "type": "number" }, "beds": { + "description": "Number of bedrooms.", "type": "number" }, "city": { + "description": "City the property is in.", "type": "string" }, "days_on_market": { + "description": "Number of days the home has been on the market.", "type": "integer" }, "description": { @@ -145318,55 +152152,72 @@ "type": "array" }, "hoa_monthly": { + "description": "Homeowners association fee per month.", "type": "number" }, "image": { + "description": "URL of the listing image.", "type": "string" }, "latitude": { + "description": "Latitude of the property.", "type": "number" }, "listing_id": { + "description": "Redfin listing id of the current listing.", "type": "string" }, "longitude": { + "description": "Longitude of the property.", "type": "number" }, "lot_size": { + "description": "Size of the lot as Redfin lists it.", "type": "number" }, "mls_number": { + "description": "Multiple Listing Service (MLS) number of the listing.", "type": "string" }, "price": { + "description": "Listing or sale price in US dollars.", "type": "number" }, "price_per_sqft": { + "description": "Price per square foot of living area.", "type": "number" }, "property_id": { + "description": "Redfin property id. Use it with the property, estimate and similar endpoints.", "example": "1715020", "type": "string" }, "property_type": { + "description": "Type of property, for example `Condo/Co-op`.", "type": "string" }, "sqft": { + "description": "Interior living area in square feet.", "type": "number" }, "state": { + "description": "State the property is in.", "type": "string" }, "status": { + "description": "Listing status as Redfin shows it, for example `Active`.", "type": "string" }, "url": { + "description": "Redfin page URL of the listing.", "type": "string" }, "year_built": { + "description": "Year the home was built.", "type": "integer" }, "zip": { + "description": "ZIP or postal code of the property.", "type": "string" } }, @@ -145375,49 +152226,63 @@ "redfin.RegionTrendsResponse": { "properties": { "avg_days_on_market": { + "description": "Average number of days homes in the region spend on the market, as Redfin displays it.", "type": "string" }, "avg_down_payment": { + "description": "Average down payment in the region, as Redfin displays it, for example `35.7%`.", "type": "string" }, "avg_num_offers": { + "description": "Average number of offers per sold home in the region, as Redfin displays it.", "type": "string" }, "median_list_per_sqft": { + "description": "Median listing price per square foot in the region, as Redfin displays it.", "type": "string" }, "median_list_price": { + "description": "Median listing price in the region, as Redfin displays it, for example `$1.29M`.", "example": "$1.29M", "type": "string" }, "median_sale_per_list": { + "description": "Median ratio of sale price to listing price in the region, as Redfin displays it, for example `115.5%`.", "type": "string" }, "median_sale_per_sqft": { + "description": "Median sale price per square foot in the region, as Redfin displays it.", "type": "string" }, "median_sale_price": { + "description": "Median sale price in the region, as Redfin displays it, for example `$1.76M`.", "example": "$1.76M", "type": "string" }, "num_homes_on_market": { + "description": "Number of homes currently on the market in the region, as Redfin displays it.", "type": "string" }, "num_homes_sold": { + "description": "Number of homes sold in the region, as Redfin displays it.", "type": "string" }, "region_id": { + "description": "Redfin region id the trends are for.", "example": 17151, "type": "integer" }, "region_type": { + "description": "Type of region: `1` neighborhood, `2` ZIP code, `5` county or `6` city.", "example": 6, "type": "integer" }, "yoy_sale_per_sqft": { + "description": "Year-over-year change in sale price per square foot, as Redfin displays it, for example `+12.6%`.", "type": "string" }, "yoy_sale_price": { + "description": "Year-over-year change in sale price, as Redfin displays it, for example `+14.0%`.", "type": "string" } }, @@ -145426,22 +152291,27 @@ "redfin.SearchResponse": { "properties": { "location": { + "description": "Location that was searched, as entered or resolved.", "example": "San Francisco, CA", "type": "string" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "region_id": { + "description": "Redfin region id the search ran against.", "example": 17151, "type": "integer" }, "region_type": { + "description": "Type of region searched: `1` neighborhood, `2` ZIP code, `5` county or `6` city.", "example": 6, "type": "integer" }, "results": { + "description": "Listings on this page, one item per property.", "items": { "$ref": "#/definitions/redfin.PropertyItem" }, @@ -149368,6 +156238,789 @@ }, "type": "object" }, + "reverb.CategoriesResponse": { + "properties": { + "categories": { + "items": { + "$ref": "#/definitions/reverb.CategoryItem" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "product_types": { + "items": { + "$ref": "#/definitions/reverb.ProductType" + }, + "type": "array" + } + }, + "type": "object" + }, + "reverb.CategoryItem": { + "properties": { + "full_name": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "product_type": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "type": "object" + }, + "reverb.Listing": { + "properties": { + "auction": { + "type": "boolean" + }, + "category_uuids": { + "items": { + "type": "string" + }, + "type": "array" + }, + "condition": { + "type": "string" + }, + "condition_slug": { + "type": "string" + }, + "cover_photo_url": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "finish": { + "type": "string" + }, + "has_inventory": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "inventory": { + "type": "integer" + }, + "make": { + "type": "string" + }, + "model": { + "type": "string" + }, + "offers_enabled": { + "type": "boolean" + }, + "photo_count": { + "type": "integer" + }, + "price": { + "type": "number" + }, + "published_at": { + "type": "string" + }, + "shop_name": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + }, + "year": { + "type": "string" + } + }, + "type": "object" + }, + "reverb.ListingPhoto": { + "properties": { + "full_url": { + "type": "string" + }, + "thumbnail_url": { + "type": "string" + } + }, + "type": "object" + }, + "reverb.ListingResponse": { + "properties": { + "accepted_payment_methods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "auction": { + "type": "boolean" + }, + "category_uuids": { + "items": { + "type": "string" + }, + "type": "array" + }, + "condition": { + "type": "string" + }, + "condition_slug": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "description": { + "type": "string" + }, + "fetched_at": { + "type": "string" + }, + "finish": { + "type": "string" + }, + "has_inventory": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "inventory": { + "type": "integer" + }, + "local_pickup_only": { + "type": "boolean" + }, + "location": { + "type": "string" + }, + "make": { + "type": "string" + }, + "model": { + "type": "string" + }, + "offers_enabled": { + "type": "boolean" + }, + "payment_policy": { + "type": "string" + }, + "photos": { + "items": { + "$ref": "#/definitions/reverb.ListingPhoto" + }, + "type": "array" + }, + "price": { + "type": "number" + }, + "product_type": { + "type": "string" + }, + "published_at": { + "type": "string" + }, + "return_policy": { + "type": "string" + }, + "shipping_policy": { + "type": "string" + }, + "shop_feedback_count": { + "type": "integer" + }, + "shop_name": { + "type": "string" + }, + "shop_preferred_seller": { + "type": "boolean" + }, + "shop_rating_percentage": { + "type": "number" + }, + "shop_url": { + "type": "string" + }, + "sku": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "state_description": { + "type": "string" + }, + "state_slug": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + }, + "views": { + "type": "integer" + }, + "watches": { + "type": "integer" + }, + "year": { + "type": "string" + } + }, + "type": "object" + }, + "reverb.MakesResponse": { + "properties": { + "fetched_at": { + "type": "string" + }, + "makes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "reverb.PriceGuideCSP": { + "properties": { + "average_rating": { + "type": "number" + }, + "brand": { + "type": "string" + }, + "currency": { + "type": "string" + }, + "finishes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "image_url": { + "type": "string" + }, + "new_listings": { + "type": "integer" + }, + "new_low_price": { + "type": "number" + }, + "reviews_count": { + "type": "integer" + }, + "slug": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + }, + "used_listings": { + "type": "integer" + }, + "used_low_price": { + "type": "number" + } + }, + "type": "object" + }, + "reverb.PriceGuideMonthlyPrice": { + "properties": { + "average_price": { + "type": "number" + }, + "currency": { + "type": "string" + }, + "month": { + "type": "string" + }, + "sample_size": { + "type": "integer" + } + }, + "type": "object" + }, + "reverb.PriceGuideResponse": { + "properties": { + "brand": { + "type": "string" + }, + "canonical_product_id": { + "type": "string" + }, + "canonical_products": { + "items": { + "$ref": "#/definitions/reverb.PriceGuideVariant" + }, + "type": "array" + }, + "condition": { + "type": "string" + }, + "fetched_at": { + "type": "string" + }, + "image_url": { + "type": "string" + }, + "monthly_prices": { + "items": { + "$ref": "#/definitions/reverb.PriceGuideMonthlyPrice" + }, + "type": "array" + }, + "range": { + "type": "string" + }, + "recent_sales": { + "items": { + "$ref": "#/definitions/reverb.PriceGuideSale" + }, + "type": "array" + }, + "sales_count": { + "type": "integer" + }, + "sales_limit": { + "type": "integer" + }, + "sales_total": { + "type": "integer" + }, + "slug": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object" + }, + "reverb.PriceGuideSale": { + "properties": { + "condition": { + "type": "string" + }, + "listing_id": { + "type": "string" + }, + "price": { + "type": "string" + }, + "sold_at": { + "type": "string" + } + }, + "type": "object" + }, + "reverb.PriceGuideSearchResponse": { + "properties": { + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "models": { + "items": { + "$ref": "#/definitions/reverb.PriceGuideCSP" + }, + "type": "array" + }, + "query": { + "type": "string" + }, + "source_url": { + "type": "string" + } + }, + "type": "object" + }, + "reverb.PriceGuideVariant": { + "properties": { + "finish": { + "type": "string" + }, + "id": { + "type": "string" + }, + "model": { + "type": "string" + }, + "name": { + "type": "string" + }, + "year": { + "type": "string" + } + }, + "type": "object" + }, + "reverb.ProductType": { + "properties": { + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "type": "object" + }, + "reverb.SearchResponse": { + "properties": { + "category": { + "type": "string" + }, + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "limit": { + "type": "integer" + }, + "listings": { + "items": { + "$ref": "#/definitions/reverb.Listing" + }, + "type": "array" + }, + "make": { + "type": "string" + }, + "max_price": { + "type": "number" + }, + "min_price": { + "type": "number" + }, + "page": { + "type": "integer" + }, + "product_type": { + "type": "string" + }, + "query": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "total_pages": { + "type": "integer" + }, + "total_results": { + "type": "integer" + } + }, + "type": "object" + }, + "reverb.ShopFeedback": { + "properties": { + "author_name": { + "type": "string" + }, + "created_at": { + "type": "string" + }, + "listing_url": { + "type": "string" + }, + "message": { + "type": "string" + }, + "order_title": { + "type": "string" + }, + "rating": { + "type": "integer" + } + }, + "type": "object" + }, + "reverb.ShopFeedbackResponse": { + "properties": { + "count": { + "type": "integer" + }, + "feedback": { + "items": { + "$ref": "#/definitions/reverb.ShopFeedback" + }, + "type": "array" + }, + "fetched_at": { + "type": "string" + }, + "page": { + "type": "integer" + }, + "slug": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "total": { + "type": "integer" + }, + "total_pages": { + "type": "integer" + } + }, + "type": "object" + }, + "reverb.ShopResponse": { + "properties": { + "avatar_url": { + "type": "string" + }, + "banner_url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "feedback_count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "listings": { + "items": { + "$ref": "#/definitions/reverb.Listing" + }, + "type": "array" + }, + "listings_count": { + "type": "integer" + }, + "listings_limit": { + "type": "integer" + }, + "listings_page": { + "type": "integer" + }, + "listings_total": { + "type": "integer" + }, + "location": { + "type": "string" + }, + "name": { + "type": "string" + }, + "on_vacation": { + "type": "boolean" + }, + "payment_policy": { + "type": "string" + }, + "preferred_seller": { + "type": "boolean" + }, + "quick_responder": { + "type": "boolean" + }, + "quick_shipper": { + "type": "boolean" + }, + "rating_percentage": { + "type": "number" + }, + "return_policy": { + "type": "string" + }, + "shipping_policy": { + "type": "string" + }, + "shop_type": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "source_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "website": { + "type": "string" + } + }, + "type": "object" + }, + "reverb.categoriesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/reverb.CategoriesResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "reverb.listingResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/reverb.ListingResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "reverb.makesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/reverb.MakesResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "reverb.priceGuideResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/reverb.PriceGuideResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "reverb.priceGuideSearchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/reverb.PriceGuideSearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "reverb.searchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/reverb.SearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "reverb.shopFeedbackResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/reverb.ShopFeedbackResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "reverb.shopResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/reverb.ShopResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "rightmove.AgentAffiliation": { "properties": { "id": { @@ -150393,42 +158046,56 @@ "rottentomatoes.BrowseItem": { "properties": { "critics_review_count": { + "description": "Number of critic reviews behind the Tomatometer score.", "example": 136, "type": "integer" }, "date_created": { + "description": "Release date text shown on the browse card, such as `2026`.", "example": "2026", "type": "string" }, "image_url": { + "description": "URL of the poster image.", "type": "string" }, "media_type": { + "description": "Kind of title, such as `Movie`.", "example": "Movie", "type": "string" }, "path": { + "description": "Rotten Tomatoes path of the title page, such as `/m/wildwood_nj`.", "example": "/m/wildwood_nj", "type": "string" }, "position": { + "description": "Position of the title in the returned list, starting at 1.", "example": 1, "type": "integer" }, "title": { + "description": "Title name as shown on the browse card.", "example": "Wildwood, NJ", "type": "string" }, "tomatometer_score": { + "description": "Tomatometer critics score, as a percentage.", "example": 87, "type": "integer" }, "url": { + "description": "Rotten Tomatoes page URL of the title.", "example": "https://www.rottentomatoes.com/m/wildwood_nj", "type": "string" }, "video": { - "$ref": "#/definitions/rottentomatoes.EpisodeVideo" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.EpisodeVideo" + } + ], + "description": "Featured video of the title, when Rotten Tomatoes provides one." } }, "type": "object" @@ -150436,39 +158103,52 @@ "rottentomatoes.BrowseResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "items": { + "description": "Titles on this page of the browse list.", "items": { "$ref": "#/definitions/rottentomatoes.BrowseItem" }, "type": "array" }, "limit": { + "description": "Maximum number of rows requested.", "example": 10, "type": "integer" }, "list": { + "description": "Browse list that was returned, such as `movies_in_theaters`.", "example": "movies_in_theaters", "type": "string" }, "page_info": { - "$ref": "#/definitions/rottentomatoes.ReviewPageInfo" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.ReviewPageInfo" + } + ], + "description": "Paging information. Pass `end_cursor` as `after` to get the next page." }, "public_page_derived": { + "description": "Always `true`: the data comes from publicly visible Rotten Tomatoes pages.", "example": true, "type": "boolean" }, "sort": { + "description": "Sort order applied to the list, such as `popular`.", "example": "popular", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.rottentomatoes.com/browse/movies_in_theaters/sort:popular", "type": "string" }, "title": { + "description": "Title of the browse list, as Rotten Tomatoes shows it.", "example": "Movies in Theaters (2026)", "type": "string" } @@ -151188,43 +158868,61 @@ "rottentomatoes.EpisodeResponse": { "properties": { "air_date": { + "description": "Date the episode first aired, such as `2008-01-20`.", "example": "2008-01-20", "type": "string" }, "audience_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.Score" + } + ], + "description": "Popcornmeter audience score of the episode." }, "cast": { + "description": "People in the cast of the episode.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "critics_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.Score" + } + ], + "description": "Tomatometer critics score of the episode." }, "description": { + "description": "Short synopsis of the episode.", "type": "string" }, "directors": { + "description": "Directors of the episode.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "ems_id": { + "description": "Rotten Tomatoes' own unique id of the episode.", "example": "ccda9549-4dcb-3147-9a2b-1106dcf852f7", "type": "string" }, "episode_number": { + "description": "Episode number within its season.", "example": 1, "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "genres": { + "description": "Genres of the episode.", "example": [ "Crime" ], @@ -151234,54 +158932,79 @@ "type": "array" }, "image_url": { + "description": "URL of the episode image.", "type": "string" }, "lifecycle": { + "description": "Airing status, such as `NOT_AIRING`.", "example": "NOT_AIRING", "type": "string" }, "media_type": { + "description": "Kind of title, such as `TvEpisode`.", "example": "TvEpisode", "type": "string" }, "parent_season": { - "$ref": "#/definitions/rottentomatoes.SeasonSummary" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.SeasonSummary" + } + ], + "description": "Season the episode belongs to." }, "parent_series": { - "$ref": "#/definitions/rottentomatoes.SeriesSummary" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.SeriesSummary" + } + ], + "description": "Series the episode belongs to." }, "path": { + "description": "Rotten Tomatoes path of the episode page, such as `/tv/breaking_bad/s01/e01`.", "example": "/tv/breaking_bad/s01/e01", "type": "string" }, "producers": { + "description": "Producers of the episode.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "public_page_derived": { + "description": "Always `true`: the data comes from publicly visible Rotten Tomatoes pages.", "example": true, "type": "boolean" }, "season_number": { + "description": "Number of the season the episode belongs to.", "example": 1, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01", "type": "string" }, "title": { + "description": "Title of the episode, as Rotten Tomatoes shows it.", "example": "Pilot", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the episode.", "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01", "type": "string" }, "video": { - "$ref": "#/definitions/rottentomatoes.EpisodeVideo" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.EpisodeVideo" + } + ], + "description": "Video clip shown on the episode page." } }, "type": "object" @@ -151289,24 +159012,30 @@ "rottentomatoes.EpisodeVideo": { "properties": { "description": { + "description": "Description of the video.", "type": "string" }, "duration": { + "description": "Length of the video as text, such as `2:32`.", "example": "2:32", "type": "string" }, "thumbnail": { + "description": "URL of the video thumbnail image.", "type": "string" }, "title": { + "description": "Title of the video.", "example": "Breaking Bad: Official Clip - Walter Wants to Cook", "type": "string" }, "upload_date": { + "description": "Date and time the video was uploaded, such as `2024-07-11T19:23:03`.", "example": "2024-07-11T19:23:03", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the video.", "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01/videos/JR3ymbH1dpLb", "type": "string" } @@ -151316,45 +159045,63 @@ "rottentomatoes.MovieResponse": { "properties": { "audience_reviews": { + "description": "Sample of audience reviews shown on the movie page.", "items": { "$ref": "#/definitions/rottentomatoes.Review" }, "type": "array" }, "audience_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.Score" + } + ], + "description": "Popcornmeter audience score of the movie." }, "cast": { + "description": "People in the cast of the movie.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "content_rating": { + "description": "Content rating of the movie, such as `PG-13`.", "example": "PG-13", "type": "string" }, "critics_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.Score" + } + ], + "description": "Tomatometer critics score of the movie." }, "description": { + "description": "Short synopsis of the movie.", "type": "string" }, "directors": { + "description": "Directors of the movie.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "ems_id": { + "description": "Rotten Tomatoes' own unique id of the movie.", "example": "afbf1c81-1bfe-3996-9cbc-2e1be23d1f61", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "genres": { + "description": "Genres of the movie.", "example": [ "Sci-Fi" ], @@ -151364,43 +159111,53 @@ "type": "array" }, "image_url": { + "description": "URL of the poster image.", "type": "string" }, "media_type": { + "description": "Kind of title, such as `Movie`.", "example": "Movie", "type": "string" }, "path": { + "description": "Rotten Tomatoes path of the movie page, such as `/m/inception`.", "example": "/m/inception", "type": "string" }, "producers": { + "description": "Producers of the movie.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "public_page_derived": { + "description": "Always `true`: the data comes from publicly visible Rotten Tomatoes pages.", "example": true, "type": "boolean" }, "release_date": { + "description": "Release date of the movie, such as `2010-07-16`.", "example": "2010-07-16", "type": "string" }, "reviews_url": { + "description": "URL of the Rotten Tomatoes page with the audience reviews of the movie.", "example": "https://www.rottentomatoes.com/m/inception/reviews/all-audience", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.rottentomatoes.com/m/inception", "type": "string" }, "title": { + "description": "Title of the movie, as Rotten Tomatoes shows it.", "example": "Inception", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the movie.", "example": "https://www.rottentomatoes.com/m/inception", "type": "string" } @@ -151498,13 +159255,16 @@ "rottentomatoes.Person": { "properties": { "image_url": { + "description": "URL of the person's photo.", "type": "string" }, "name": { + "description": "Name of the person.", "example": "Christopher Nolan", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the person.", "example": "https://www.rottentomatoes.com/celebrity/christopher_nolan", "type": "string" } @@ -151514,35 +159274,52 @@ "rottentomatoes.PersonCredit": { "properties": { "audience_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.Score" + } + ], + "description": "Popcornmeter audience score of the title." }, "credits": { + "description": "Roles the person had on the title, such as `Director, Screenwriter, Producer`.", "example": "Director, Screenwriter, Producer", "type": "string" }, "critics_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.Score" + } + ], + "description": "Tomatometer critics score of the title." }, "path": { + "description": "Rotten Tomatoes path of the title page, such as `/m/oppenheimer_2023`.", "example": "/m/oppenheimer_2023", "type": "string" }, "position": { + "description": "Position of the credit in the filmography list, starting at 1.", "example": 1, "type": "integer" }, "poster_url": { + "description": "URL of the title's poster image.", "type": "string" }, "title": { + "description": "Name of the title, as Rotten Tomatoes shows it.", "example": "Oppenheimer", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the title.", "example": "https://www.rottentomatoes.com/m/oppenheimer_2023", "type": "string" }, "years_featured": { + "description": "Year or years shown for the title in the filmography.", "example": "2023", "type": "string" } @@ -151552,22 +159329,27 @@ "rottentomatoes.PersonRatedTitle": { "properties": { "path": { + "description": "Rotten Tomatoes path of the title page, such as `/m/the_dark_knight`.", "example": "/m/the_dark_knight", "type": "string" }, "score": { + "description": "Critics score of the title, as a percentage.", "example": 94, "type": "integer" }, "title": { + "description": "Name of the title, as Rotten Tomatoes shows it.", "example": "The Dark Knight", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the title.", "example": "https://www.rottentomatoes.com/m/the_dark_knight", "type": "string" }, "year": { + "description": "Release year of the title.", "example": "2008", "type": "string" } @@ -151577,63 +159359,91 @@ "rottentomatoes.PersonResponse": { "properties": { "birth_date": { + "description": "Date of birth, such as `1970-07-30`.", "example": "1970-07-30", "type": "string" }, "birthplace": { + "description": "Place of birth, such as `London, England, UK`.", "example": "London, England, UK", "type": "string" }, "description": { + "description": "Biography text of the person.", "type": "string" }, "ems_id": { + "description": "Rotten Tomatoes' own unique id of the person.", "example": "a015d515-713e-38e3-abbe-cf0cdaa519b0", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "filmography": { + "description": "Titles the person has credits on, one entry per title.", "items": { "$ref": "#/definitions/rottentomatoes.PersonCredit" }, "type": "array" }, "filmography_api_url": { + "description": "URL of the Rotten Tomatoes filmography list for this person.", "example": "https://www.rottentomatoes.com/cnapi/modules/filmography/a015d515-713e-38e3-abbe-cf0cdaa519b0/movie/newest", "type": "string" }, "highest_rated": { - "$ref": "#/definitions/rottentomatoes.PersonRatedTitle" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.PersonRatedTitle" + } + ], + "description": "Highest-rated title of the person, with its score." }, "image_url": { + "description": "URL of the person's photo.", "type": "string" }, "lowest_rated": { - "$ref": "#/definitions/rottentomatoes.PersonRatedTitle" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.PersonRatedTitle" + } + ], + "description": "Lowest-rated title of the person, with its score." }, "name": { + "description": "Name of the person.", "example": "Christopher Nolan", "type": "string" }, "page_info": { - "$ref": "#/definitions/rottentomatoes.ReviewPageInfo" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.ReviewPageInfo" + } + ], + "description": "Paging information for the filmography." }, "path": { + "description": "Rotten Tomatoes path of the person page, such as `/celebrity/christopher_nolan`.", "example": "/celebrity/christopher_nolan", "type": "string" }, "public_page_derived": { + "description": "Always `true`: the data comes from publicly visible Rotten Tomatoes pages.", "example": true, "type": "boolean" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.rottentomatoes.com/celebrity/christopher_nolan", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the person.", "example": "https://www.rottentomatoes.com/celebrity/christopher_nolan", "type": "string" } @@ -151643,33 +159453,41 @@ "rottentomatoes.Review": { "properties": { "display_date": { + "description": "Date the review was posted, as shown on the page, such as `Mar 19`.", "example": "Mar 19", "type": "string" }, "display_name": { + "description": "Display name of the reviewer.", "example": "Rylee", "type": "string" }, "fandango_review": { + "description": "Whether Rotten Tomatoes flags the review as a Fandango review.", "example": true, "type": "boolean" }, "rating": { + "description": "Star rating the reviewer gave, such as `5`.", "example": 5, "type": "number" }, "rating_id": { + "description": "Unique id of the rating.", "example": "e0812d98-c1d5-467d-ae35-c19cdd575f90", "type": "string" }, "rating_range": { + "description": "Rating text as shown on the page, such as `Rated 5/5 Stars`.", "example": "Rated 5/5 Stars", "type": "string" }, "review": { + "description": "Text of the review.", "type": "string" }, "verified": { + "description": "Whether the review is marked as verified.", "example": true, "type": "boolean" } @@ -151704,18 +159522,22 @@ "rottentomatoes.ReviewPageInfo": { "properties": { "end_cursor": { + "description": "Cursor of the last item on this page. Pass it as `after` to get the next page.", "example": "Mjk=", "type": "string" }, "has_next_page": { + "description": "Whether more items follow this page.", "example": true, "type": "boolean" }, "has_previous_page": { + "description": "Whether items precede this page.", "example": true, "type": "boolean" }, "start_cursor": { + "description": "Cursor of the first item on this page.", "example": "MA==", "type": "string" } @@ -151766,54 +159588,67 @@ "rottentomatoes.Score": { "properties": { "average_rating": { + "description": "Average rating as shown on the scorecard, such as `8.40`.", "example": "8.40", "type": "string" }, "banded_rating_count": { + "description": "Approximate number of ratings as shown on the page, such as `250,000+ Ratings`.", "example": "250,000+ Ratings", "type": "string" }, "certified": { + "description": "Whether Rotten Tomatoes marks the score as certified.", "example": true, "type": "boolean" }, "liked_count": { + "description": "Number of ratings that liked the title.", "example": 314, "type": "integer" }, "not_liked_count": { + "description": "Number of ratings that did not like the title.", "example": 49, "type": "integer" }, "rating_count": { + "description": "Number of ratings behind the score.", "example": 363, "type": "integer" }, "review_count": { + "description": "Number of reviews behind the score.", "example": 363, "type": "integer" }, "reviews_page_url": { + "description": "URL of the Rotten Tomatoes page that lists the reviews behind this score.", "example": "https://www.rottentomatoes.com/m/inception/reviews", "type": "string" }, "score": { + "description": "Score as a whole-number percentage.", "example": 87, "type": "integer" }, "score_percent": { + "description": "Score as text with a percent sign, such as `87%`.", "example": "87%", "type": "string" }, "score_type": { + "description": "Audience group the score covers, such as `ALL` or `VERIFIED`.", "example": "ALL", "type": "string" }, "sentiment": { + "description": "Overall sentiment of the score, such as `POSITIVE`.", "example": "POSITIVE", "type": "string" }, "title": { + "description": "Name of the score, such as `Tomatometer` or `Popcornmeter`.", "example": "Tomatometer", "type": "string" } @@ -151823,43 +159658,54 @@ "rottentomatoes.SearchMovie": { "properties": { "cast": { + "description": "Names of the leading cast, separated by commas.", "example": "Leonardo DiCaprio,Joseph Gordon-Levitt,Elliot Page", "type": "string" }, "certified_fresh": { + "description": "Whether the title is Certified Fresh.", "example": true, "type": "boolean" }, "end_year": { + "description": "Last year of the title's run, as shown on the search row.", "type": "string" }, "image_url": { + "description": "URL of the poster image.", "type": "string" }, "path": { + "description": "Rotten Tomatoes path of the title page, such as `/m/inception`.", "example": "/m/inception", "type": "string" }, "release_year": { + "description": "Release year of the title, such as `2010`.", "example": "2010", "type": "string" }, "start_year": { + "description": "First year of the title's run, as shown on the search row.", "type": "string" }, "title": { + "description": "Title name as shown on the search row.", "example": "Inception", "type": "string" }, "tomatometer_score": { + "description": "Tomatometer critics score, as a percentage.", "example": 87, "type": "integer" }, "tomatometer_sentiment": { + "description": "Tomatometer sentiment, such as `POSITIVE`.", "example": "POSITIVE", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the title.", "example": "https://www.rottentomatoes.com/m/inception", "type": "string" } @@ -151869,24 +159715,29 @@ "rottentomatoes.SearchResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "limit": { + "description": "Maximum number of results requested.", "example": 10, "type": "integer" }, "query": { + "description": "Query that was run.", "example": "inception", "type": "string" }, "results": { + "description": "Titles matching the query.", "items": { "$ref": "#/definitions/rottentomatoes.SearchMovie" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.rottentomatoes.com/search?search=inception", "type": "string" } @@ -151896,25 +159747,31 @@ "rottentomatoes.SeasonEpisode": { "properties": { "air_date": { + "description": "Date the episode first aired, such as `2008-01-20`.", "example": "2008-01-20", "type": "string" }, "description": { + "description": "Short synopsis of the episode.", "type": "string" }, "episode_number": { + "description": "Episode number within the season.", "example": "1", "type": "string" }, "path": { + "description": "Rotten Tomatoes path of the episode page, such as `/tv/breaking_bad/s01/e01`.", "example": "/tv/breaking_bad/s01/e01", "type": "string" }, "title": { + "description": "Title of the episode, as Rotten Tomatoes shows it.", "example": "Pilot", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the episode.", "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01/e01", "type": "string" } @@ -151924,45 +159781,63 @@ "rottentomatoes.SeasonResponse": { "properties": { "audience_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.Score" + } + ], + "description": "Popcornmeter audience score of the season." }, "cast": { + "description": "People in the cast of the season.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "critics_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.Score" + } + ], + "description": "Tomatometer critics score of the season." }, "description": { + "description": "Short synopsis of the season.", "type": "string" }, "directors": { + "description": "Directors of the season.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "ems_id": { + "description": "Rotten Tomatoes' own unique id of the season.", "example": "71374db9-1350-30fa-b30a-d3f623bbdfc4", "type": "string" }, "episode_count": { + "description": "Number of episodes in the season.", "example": 7, "type": "integer" }, "episodes": { + "description": "Episodes of the season.", "items": { "$ref": "#/definitions/rottentomatoes.SeasonEpisode" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "genres": { + "description": "Genres of the season.", "example": [ "Crime" ], @@ -151972,50 +159847,66 @@ "type": "array" }, "image_url": { + "description": "URL of the season image.", "type": "string" }, "lifecycle": { + "description": "Airing status, such as `NOT_AIRING`.", "example": "NOT_AIRING", "type": "string" }, "media_type": { + "description": "Kind of title, such as `TvSeason`.", "example": "TvSeason", "type": "string" }, "parent_series": { - "$ref": "#/definitions/rottentomatoes.SeriesSummary" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.SeriesSummary" + } + ], + "description": "Series the season belongs to." }, "path": { + "description": "Rotten Tomatoes path of the season page, such as `/tv/breaking_bad/s01`.", "example": "/tv/breaking_bad/s01", "type": "string" }, "producers": { + "description": "Producers of the season.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "public_page_derived": { + "description": "Always `true`: the data comes from publicly visible Rotten Tomatoes pages.", "example": true, "type": "boolean" }, "release_date": { + "description": "Date the season premiered, such as `2008-01-20`.", "example": "2008-01-20", "type": "string" }, "season_number": { + "description": "Number of the season within the series.", "example": 1, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", "type": "string" }, "title": { + "description": "Season title, such as `Season 1`.", "example": "Season 1", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the season.", "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", "type": "string" } @@ -152025,22 +159916,27 @@ "rottentomatoes.SeasonSummary": { "properties": { "ems_id": { + "description": "Rotten Tomatoes' own unique id of the season.", "example": "71374db9-1350-30fa-b30a-d3f623bbdfc4", "type": "string" }, "path": { + "description": "Rotten Tomatoes path of the season page, such as `/tv/breaking_bad/s01`.", "example": "/tv/breaking_bad/s01", "type": "string" }, "season_number": { + "description": "Number of the season within the series.", "example": 1, "type": "integer" }, "title": { + "description": "Season title, such as `Season 1`.", "example": "Season 1", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the season.", "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", "type": "string" } @@ -152050,43 +159946,61 @@ "rottentomatoes.SeriesResponse": { "properties": { "audience_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.Score" + } + ], + "description": "Popcornmeter audience score of the series." }, "cast": { + "description": "People in the cast of the series.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "content_rating": { + "description": "Content rating of the series, such as `TV-14`.", "example": "TV-14", "type": "string" }, "critics_score": { - "$ref": "#/definitions/rottentomatoes.Score" + "allOf": [ + { + "$ref": "#/definitions/rottentomatoes.Score" + } + ], + "description": "Tomatometer critics score of the series." }, "description": { + "description": "Short synopsis of the series.", "type": "string" }, "directors": { + "description": "Directors of the series.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "ems_id": { + "description": "Rotten Tomatoes' own unique id of the series.", "example": "6a74def4-dc62-319e-ae3d-360dcf360244", "type": "string" }, "end_date": { + "description": "Date the series ended, such as `2013-09-29`.", "example": "2013-09-29", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-06-07T14:46:16Z", "type": "string" }, "genres": { + "description": "Genres of the series.", "example": [ "Crime" ], @@ -152096,53 +160010,65 @@ "type": "array" }, "image_url": { + "description": "URL of the series image.", "type": "string" }, "lifecycle": { + "description": "Airing status of the series, such as `NOT_AIRING`.", "example": "NOT_AIRING", "type": "string" }, "media_type": { + "description": "Kind of title, such as `TvSeries`.", "example": "TvSeries", "type": "string" }, "number_of_seasons": { + "description": "Number of seasons of the series.", "example": 5, "type": "integer" }, "path": { + "description": "Rotten Tomatoes path of the series page, such as `/tv/breaking_bad`.", "example": "/tv/breaking_bad", "type": "string" }, "producers": { + "description": "Producers of the series.", "items": { "$ref": "#/definitions/rottentomatoes.Person" }, "type": "array" }, "public_page_derived": { + "description": "Always `true`: the data comes from publicly visible Rotten Tomatoes pages.", "example": true, "type": "boolean" }, "seasons": { + "description": "Seasons of the series, each with a link to its page.", "items": { "$ref": "#/definitions/rottentomatoes.TVSeason" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.rottentomatoes.com/tv/breaking_bad", "type": "string" }, "start_date": { + "description": "Date the series first aired, such as `2008-01-20`.", "example": "2008-01-20", "type": "string" }, "title": { + "description": "Title of the series, as Rotten Tomatoes shows it.", "example": "Breaking Bad", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the series.", "example": "https://www.rottentomatoes.com/tv/breaking_bad", "type": "string" } @@ -152152,18 +160078,22 @@ "rottentomatoes.SeriesSummary": { "properties": { "ems_id": { + "description": "Rotten Tomatoes' own unique id of the series.", "example": "6a74def4-dc62-319e-ae3d-360dcf360244", "type": "string" }, "path": { + "description": "Rotten Tomatoes path of the series page, such as `/tv/breaking_bad`.", "example": "/tv/breaking_bad", "type": "string" }, "title": { + "description": "Title of the series, as Rotten Tomatoes shows it.", "example": "Breaking Bad", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the series.", "example": "https://www.rottentomatoes.com/tv/breaking_bad", "type": "string" } @@ -152277,14 +160207,17 @@ "rottentomatoes.TVSeason": { "properties": { "name": { + "description": "Season name, such as `Season 1`.", "example": "Season 1", "type": "string" }, "path": { + "description": "Rotten Tomatoes path of the season page, such as `/tv/breaking_bad/s01`.", "example": "/tv/breaking_bad/s01", "type": "string" }, "url": { + "description": "Rotten Tomatoes page URL of the season.", "example": "https://www.rottentomatoes.com/tv/breaking_bad/s01", "type": "string" } @@ -154839,6 +162772,7 @@ "sec.CompanyIntelligenceResponse": { "properties": { "degraded": { + "description": "Enrichment sources requested through `enrich` that could not be returned.", "items": { "type": "string" }, @@ -154849,19 +162783,40 @@ "format": "float64", "type": "number" }, + "description": "Latest annual figures keyed by `revenue`, `net_income`, `total_assets`, `total_liabilities`, `stockholders_equity` and `operating_cash_flow`, in the reporting currency.", "type": "object" }, "hiring": { - "$ref": "#/definitions/sec.HiringBlock" + "allOf": [ + { + "$ref": "#/definitions/sec.HiringBlock" + } + ], + "description": "Open-roles summary from the company's careers board. Present only when `enrich` includes `hiring` and data was available." }, "latest_8k": { - "$ref": "#/definitions/sec.Filing" + "allOf": [ + { + "$ref": "#/definitions/sec.Filing" + } + ], + "description": "Most recent 8-K material event filing." }, "latest_annual_10k": { - "$ref": "#/definitions/sec.Filing" + "allOf": [ + { + "$ref": "#/definitions/sec.Filing" + } + ], + "description": "Most recent 10-K annual report filing." }, "latest_quarterly_10q": { - "$ref": "#/definitions/sec.Filing" + "allOf": [ + { + "$ref": "#/definitions/sec.Filing" + } + ], + "description": "Most recent 10-Q quarterly report filing." }, "market": { "allOf": [ @@ -154872,27 +162827,37 @@ "description": "Optional cross-source enrichment (present only when requested via ?enrich=\nand the source succeeded). Degraded lists sources that were requested but\nunavailable (missing key/provider, upstream failure, or timeout)." }, "news": { + "description": "Recent news headlines about the company. Present only when `enrich` includes `news` and headlines were available.", "items": { "$ref": "#/definitions/sec.NewsItem" }, "type": "array" }, "profile": { - "$ref": "#/definitions/sec.CompanyProfile" + "allOf": [ + { + "$ref": "#/definitions/sec.CompanyProfile" + } + ], + "description": "Company identity block with CIK, ticker, name and industry classification." }, "recent_events": { + "description": "Up to five most recent 8-K material event filings.", "items": { "$ref": "#/definitions/sec.EventFiling" }, "type": "array" }, "snapshot_fiscal_year": { + "description": "Fiscal year the `financial_snapshot` figures belong to.", "type": "integer" }, "snapshot_period_end": { + "description": "Last day of the period covered by the `financial_snapshot`, in YYYY-MM-DD format.", "type": "string" }, "source_urls": { + "description": "URLs of the SEC data sets the response was built from.", "items": { "type": "string" }, @@ -154904,18 +162869,22 @@ "sec.CompanyMatch": { "properties": { "cik": { + "description": "Company's SEC Central Index Key (CIK) number.", "example": 320193, "type": "integer" }, "cik_padded": { + "description": "CIK number padded to 10 digits with a `CIK` prefix, as used in SEC data URLs.", "example": "CIK0000320193", "type": "string" }, "name": { + "description": "Company name as registered with the SEC.", "example": "Apple Inc.", "type": "string" }, "ticker": { + "description": "Stock ticker symbol of the company.", "example": "AAPL", "type": "string" } @@ -154925,21 +162894,27 @@ "sec.CompanyProfile": { "properties": { "cik": { + "description": "Company's SEC Central Index Key (CIK) number.", "type": "integer" }, "name": { + "description": "Company name as registered with the SEC.", "type": "string" }, "sic": { + "description": "Standard Industrial Classification (SIC) code of the company.", "type": "string" }, "sic_description": { + "description": "Text description of the SIC industry code.", "type": "string" }, "ticker": { + "description": "Primary stock ticker symbol of the company.", "type": "string" }, "tickers": { + "description": "All ticker symbols the company trades under.", "items": { "type": "string" }, @@ -154951,20 +162926,24 @@ "sec.CompanySearchResponse": { "properties": { "count": { + "description": "Number of companies returned.", "example": 1, "type": "integer" }, "matches": { + "description": "Companies matching the query, exact ticker match first.", "items": { "$ref": "#/definitions/sec.CompanyMatch" }, "type": "array" }, "query": { + "description": "Ticker or company name that was searched.", "example": "apple", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -154973,15 +162952,19 @@ "sec.EventFiling": { "properties": { "accession_number": { + "description": "SEC accession number that uniquely identifies the 8-K filing.", "type": "string" }, "filing_date": { + "description": "Date the 8-K was filed, in YYYY-MM-DD format.", "type": "string" }, "items": { + "description": "Item numbers the 8-K reports on, as EDGAR lists them.", "type": "string" }, "url": { + "description": "Link to the filing's index page on sec.gov.", "type": "string" } }, @@ -154990,40 +162973,51 @@ "sec.Filing": { "properties": { "accession_number": { + "description": "SEC accession number that uniquely identifies the filing.", "example": "0000320193-25-000081", "type": "string" }, "description": { + "description": "Short description of the main document, as EDGAR lists it.", "type": "string" }, "filing_date": { + "description": "Date the filing was submitted to the SEC, in YYYY-MM-DD format.", "example": "2025-10-31", "type": "string" }, "filing_index_url": { + "description": "Link to the filing's index page on sec.gov.", "type": "string" }, "form": { + "description": "SEC form type of the filing, such as `10-K`, `10-Q` or `8-K`.", "example": "10-K", "type": "string" }, "is_xbrl": { + "description": "Whether the filing includes XBRL financial data.", "type": "boolean" }, "items": { + "description": "Item numbers the filing covers, as EDGAR lists them.", "type": "string" }, "primary_doc_url": { + "description": "Link to the filing's main document on sec.gov.", "type": "string" }, "primary_document": { + "description": "File name of the filing's main document.", "type": "string" }, "report_date": { + "description": "Period end date the filing reports on, in YYYY-MM-DD format.", "example": "2025-09-27", "type": "string" }, "size": { + "description": "Size of the filing's main document as EDGAR reports it.", "type": "integer" } }, @@ -155032,9 +163026,11 @@ "sec.FilingDocument": { "properties": { "name": { + "description": "File name of the document in the filing.", "type": "string" }, "url": { + "description": "Link to the document on sec.gov.", "type": "string" } }, @@ -155043,58 +163039,74 @@ "sec.FilingResponse": { "properties": { "accession_number": { + "description": "SEC accession number that uniquely identifies the filing.", "example": "0000320193-25-000081", "type": "string" }, "cik": { + "description": "Company's SEC Central Index Key (CIK) number.", "type": "integer" }, "cik_padded": { + "description": "CIK number padded to 10 digits with a `CIK` prefix, as used in SEC data URLs.", "type": "string" }, "description": { + "description": "Short description of the main document, as EDGAR lists it.", "type": "string" }, "documents": { + "description": "Files that make up the filing.", "items": { "$ref": "#/definitions/sec.FilingDocument" }, "type": "array" }, "filing_date": { + "description": "Date the filing was submitted to the SEC, in YYYY-MM-DD format.", "example": "2025-10-31", "type": "string" }, "filing_index_url": { + "description": "Link to the filing's index page on sec.gov.", "type": "string" }, "form": { + "description": "SEC form type of the filing, such as `10-K`, `10-Q` or `8-K`.", "example": "10-K", "type": "string" }, "is_xbrl": { + "description": "Whether the filing includes XBRL financial data.", "type": "boolean" }, "items": { + "description": "Item numbers the filing covers, as EDGAR lists them.", "type": "string" }, "name": { + "description": "Company name as registered with the SEC.", "type": "string" }, "primary_doc_url": { + "description": "Link to the filing's main document on sec.gov.", "type": "string" }, "primary_document": { + "description": "File name of the filing's main document.", "type": "string" }, "report_date": { + "description": "Period end date the filing reports on, in YYYY-MM-DD format.", "example": "2025-09-27", "type": "string" }, "size": { + "description": "Size of the filing's main document as EDGAR reports it.", "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -155103,20 +163115,25 @@ "sec.FilingSection": { "properties": { "char_count": { + "description": "Length of the full section text before any truncation.", "type": "integer" }, "item": { + "description": "Item number of the section in the filing, such as `1A` or `7`.", "example": "1A", "type": "string" }, "text": { + "description": "Plain text of the section, cut off at the `max_chars` limit.", "type": "string" }, "title": { + "description": "Section heading, such as `Risk Factors`.", "example": "Risk Factors", "type": "string" }, "truncated": { + "description": "Whether `text` was cut short because the section exceeded `max_chars`.", "type": "boolean" } }, @@ -155125,27 +163142,34 @@ "sec.FilingSectionsResponse": { "properties": { "accession_number": { + "description": "SEC accession number that uniquely identifies the filing.", "type": "string" }, "cik": { + "description": "Company's SEC Central Index Key (CIK) number.", "type": "integer" }, "count": { + "description": "Number of sections returned.", "type": "integer" }, "document_url": { + "description": "Link to the filing document the sections were taken from.", "type": "string" }, "form": { + "description": "SEC form type of the filing, such as `10-K`.", "type": "string" }, "sections": { + "description": "Item sections extracted from the filing, in item order.", "items": { "$ref": "#/definitions/sec.FilingSection" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -155154,20 +163178,25 @@ "sec.FinancialPeriod": { "properties": { "currency": { + "description": "ISO 4217 code of the currency the monetary lines are reported in.", "example": "USD", "type": "string" }, "end_date": { + "description": "Last day of the period, in YYYY-MM-DD format.", "type": "string" }, "fiscal_period": { + "description": "Fiscal period covered, such as `FY` for a full year.", "example": "FY", "type": "string" }, "fiscal_year": { + "description": "Fiscal year the period belongs to.", "type": "integer" }, "form": { + "description": "SEC form type that reported the figures, such as `10-K`.", "type": "string" }, "lines": { @@ -155175,6 +163204,7 @@ "format": "float64", "type": "number" }, + "description": "Statement line values for the period, keyed by line name such as `revenue`.", "type": "object" }, "ratios": { @@ -155191,35 +163221,43 @@ "sec.FinancialsResponse": { "properties": { "cik": { + "description": "Company's SEC Central Index Key (CIK) number.", "type": "integer" }, "line_order": { + "description": "Statement line names in the order they appear on the statement.", "items": { "type": "string" }, "type": "array" }, "name": { + "description": "Company name as registered with the SEC.", "type": "string" }, "period": { + "description": "Period type returned: `annual` or `quarterly`.", "example": "annual", "type": "string" }, "periods": { + "description": "Reporting periods, newest first.", "items": { "$ref": "#/definitions/sec.FinancialPeriod" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "statement": { + "description": "Statement returned: `income`, `balance` or `cash_flow`.", "example": "income", "type": "string" }, "ticker": { + "description": "Stock ticker symbol of the company.", "type": "string" } }, @@ -155228,24 +163266,31 @@ "sec.FrameFact": { "properties": { "accession_number": { + "description": "SEC accession number of the filing that reported the value.", "type": "string" }, "cik": { + "description": "Reporting company's SEC Central Index Key (CIK) number.", "type": "integer" }, "end": { + "description": "Last day of the period the value covers, in YYYY-MM-DD format.", "type": "string" }, "entity_name": { + "description": "Name of the reporting company.", "type": "string" }, "form": { + "description": "SEC form type of the filing that reported the value.", "type": "string" }, "start": { + "description": "First day of the period the value covers, in YYYY-MM-DD format.", "type": "string" }, "value": { + "description": "Value the company reported for the concept, in the unit given by `unit`.", "type": "number" } }, @@ -155254,33 +163299,41 @@ "sec.FramesResponse": { "properties": { "concept": { + "description": "XBRL concept tag that was queried, such as `Assets`.", "example": "Assets", "type": "string" }, "count": { + "description": "Number of facts returned.", "type": "integer" }, "facts": { + "description": "One reported value per company for the concept and frame.", "items": { "$ref": "#/definitions/sec.FrameFact" }, "type": "array" }, "period": { + "description": "Reporting frame that was queried, such as `CY2024Q4I`.", "example": "CY2024Q4I", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "taxonomy": { + "description": "XBRL taxonomy the concept belongs to, such as `us-gaap`.", "example": "us-gaap", "type": "string" }, "total": { + "description": "Number of companies that reported the concept for the frame.", "type": "integer" }, "unit": { + "description": "Unit of the reported values, such as `USD`.", "example": "USD", "type": "string" } @@ -155290,24 +163343,30 @@ "sec.FullTextHit": { "properties": { "accession_number": { + "description": "SEC accession number of the filing that contains the match.", "type": "string" }, "cik": { + "description": "SEC Central Index Key (CIK) number of the filing company.", "type": "integer" }, "company_names": { + "description": "Names of the companies named on the filing, as EDGAR lists them.", "items": { "type": "string" }, "type": "array" }, "document_url": { + "description": "Link to the matching document on sec.gov.", "type": "string" }, "filed_at": { + "description": "Date the filing was submitted, in YYYY-MM-DD format.", "type": "string" }, "form": { + "description": "SEC form type of the matching document, such as `10-K`.", "type": "string" } }, @@ -155316,24 +163375,30 @@ "sec.FullTextSearchResponse": { "properties": { "count": { + "description": "Number of hits returned on this page.", "type": "integer" }, "hits": { + "description": "Filing documents that match the query.", "items": { "$ref": "#/definitions/sec.FullTextHit" }, "type": "array" }, "page": { + "description": "Page number returned, starting at 1.", "type": "integer" }, "query": { + "description": "Search text that was run.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "total": { + "description": "Total number of matches reported by EDGAR full-text search.", "type": "integer" } }, @@ -155342,24 +163407,30 @@ "sec.HiringBlock": { "properties": { "new_last_30d": { + "description": "Number of open roles posted in the last 30 days, among the roles sampled from the board.", "type": "integer" }, "provider": { + "description": "Applicant tracking system the open roles were read from, such as `greenhouse`.", "type": "string" }, "remote_pct": { + "description": "Share of open roles that are remote, in percent.", "type": "number" }, "source_url": { + "description": "URL the hiring data was read from.", "type": "string" }, "top_departments": { + "description": "Up to five departments with their open-role counts.", "items": { "$ref": "#/definitions/sec.NameCount" }, "type": "array" }, "total_open_roles": { + "description": "Number of roles currently open on the careers board.", "type": "integer" } }, @@ -155368,27 +163439,35 @@ "sec.Holding": { "properties": { "cusip": { + "description": "CUSIP identifier of the security.", "type": "string" }, "investment_discretion": { + "description": "Type of investment discretion the manager holds over the position, such as `SOLE` or `DFND`.", "type": "string" }, "issuer": { + "description": "Name of the company that issued the security.", "type": "string" }, "put_call": { + "description": "Put or call, for option positions.", "type": "string" }, "share_type": { + "description": "`SH` when `shares` counts shares, `PRN` when it is a principal amount.", "type": "string" }, "shares": { + "description": "Number of shares or principal amount held, depending on `share_type`.", "type": "number" }, "title_of_class": { + "description": "Class of the security, such as `COM` for common stock.", "type": "string" }, "value": { + "description": "Market value of the position as reported in the 13F filing.", "type": "number" } }, @@ -155397,36 +163476,46 @@ "sec.HoldingsResponse": { "properties": { "accession_number": { + "description": "SEC accession number of the 13F filing the holdings come from.", "type": "string" }, "cik": { + "description": "Institutional manager's SEC Central Index Key (CIK) number.", "type": "integer" }, "count": { + "description": "Number of holdings returned.", "type": "integer" }, "filing_date": { + "description": "Date the 13F was filed, in YYYY-MM-DD format.", "type": "string" }, "holdings": { + "description": "Positions from the filing, largest value first.", "items": { "$ref": "#/definitions/sec.Holding" }, "type": "array" }, "manager_name": { + "description": "Name of the institutional investment manager.", "type": "string" }, "report_date": { + "description": "Quarter end date the holdings are reported for, in YYYY-MM-DD format.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "total_holdings": { + "description": "Number of positions in the filing, before the `limit` is applied.", "type": "integer" }, "total_value": { + "description": "Sum of the value of every position in the filing.", "type": "number" } }, @@ -155435,21 +163524,27 @@ "sec.InsiderResponse": { "properties": { "cik": { + "description": "Company's SEC Central Index Key (CIK) number.", "type": "integer" }, "count": { + "description": "Number of transactions returned.", "type": "integer" }, "name": { + "description": "Company name as registered with the SEC.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "ticker": { + "description": "Stock ticker symbol of the company.", "type": "string" }, "transactions": { + "description": "Insider transactions from recent Form 3, 4 and 5 filings.", "items": { "$ref": "#/definitions/sec.InsiderTransaction" }, @@ -155461,51 +163556,66 @@ "sec.InsiderTransaction": { "properties": { "accession_number": { + "description": "SEC accession number that uniquely identifies the filing.", "type": "string" }, "acquired_or_disposed": { + "description": "`A` if the insider acquired the shares, `D` if disposed of them.", "type": "string" }, "code": { "type": "string" }, "filing_date": { + "description": "Date the filing was submitted to the SEC, in YYYY-MM-DD format.", "type": "string" }, "filing_url": { + "description": "Link to the filing's index page on sec.gov.", "type": "string" }, "form": { + "description": "Ownership form type: `3`, `4`, `5` or an amendment such as `4/A`.", "type": "string" }, "is_director": { + "description": "Whether the insider is a director of the company.", "type": "boolean" }, "is_officer": { + "description": "Whether the insider is an officer of the company.", "type": "boolean" }, "is_ten_percent_owner": { + "description": "Whether the insider owns more than 10 percent of the company's shares.", "type": "boolean" }, "owner_name": { + "description": "Name of the insider who filed.", "type": "string" }, "owner_title": { + "description": "Insider's job title at the company, as stated on the filing.", "type": "string" }, "price_per_share": { + "description": "Price per share in the transaction.", "type": "number" }, "security_title": { + "description": "Title of the security traded, such as `Common Stock`.", "type": "string" }, "shares": { + "description": "Number of shares in the transaction.", "type": "number" }, "shares_owned_after": { + "description": "Number of shares the insider owns after the transaction.", "type": "number" }, "transaction_date": { + "description": "Date the transaction took place, in YYYY-MM-DD format.", "type": "string" } }, @@ -155514,27 +163624,35 @@ "sec.MarketBlock": { "properties": { "change_percent": { + "description": "Price change since the previous close, in percent.", "type": "number" }, "currency": { + "description": "Currency code the price is quoted in.", "type": "string" }, "day_high": { + "description": "Highest share price of the current trading day.", "type": "number" }, "day_low": { + "description": "Lowest share price of the current trading day.", "type": "number" }, "market_cap": { + "description": "Market capitalisation of the company.", "type": "number" }, "name": { + "description": "Company name shown with the quote.", "type": "string" }, "price": { + "description": "Latest share price, in `currency`.", "type": "number" }, "symbol": { + "description": "Ticker symbol of the quote.", "type": "string" } }, @@ -155543,9 +163661,11 @@ "sec.NameCount": { "properties": { "count": { + "description": "Number of open roles in the department.", "type": "integer" }, "name": { + "description": "Name of the department.", "type": "string" } }, @@ -155554,15 +163674,19 @@ "sec.NewsItem": { "properties": { "published_at": { + "description": "Time the article was published.", "type": "string" }, "publisher": { + "description": "Name of the outlet that published the article.", "type": "string" }, "title": { + "description": "Headline of the news article.", "type": "string" }, "url": { + "description": "Link to the article.", "type": "string" } }, @@ -155571,25 +163695,31 @@ "sec.SubmissionsResponse": { "properties": { "category": { + "description": "SEC filer category, such as `Large accelerated filer`.", "example": "Large accelerated filer", "type": "string" }, "cik": { + "description": "Company's SEC Central Index Key (CIK) number.", "example": 320193, "type": "integer" }, "cik_padded": { + "description": "CIK number padded to 10 digits with a `CIK` prefix, as used in SEC data URLs.", "example": "CIK0000320193", "type": "string" }, "count": { + "description": "Number of filings returned.", "type": "integer" }, "entity_type": { + "description": "Type of filer, such as `operating`.", "example": "operating", "type": "string" }, "exchanges": { + "description": "Stock exchanges the company is listed on, such as `Nasdaq`.", "example": [ "Nasdaq" ], @@ -155599,39 +163729,48 @@ "type": "array" }, "filings": { + "description": "Company's filings, newest first, after applying the form and date filters.", "items": { "$ref": "#/definitions/sec.Filing" }, "type": "array" }, "fiscal_year_end": { + "description": "Last day of the company's fiscal year in MMDD format, such as `0930`.", "example": "0930", "type": "string" }, "former_names": { + "description": "Names the company has previously filed under.", "items": { "type": "string" }, "type": "array" }, "name": { + "description": "Company name as registered with the SEC.", "example": "Apple Inc.", "type": "string" }, "sic": { + "description": "Standard Industrial Classification (SIC) code of the company.", "type": "string" }, "sic_description": { + "description": "Text description of the SIC industry code.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "state_of_incorporation": { + "description": "Code of the state or country where the company is incorporated.", "example": "CA", "type": "string" }, "tickers": { + "description": "Ticker symbols the company trades under.", "items": { "type": "string" }, @@ -159587,6 +167726,7 @@ "shopapp.AnalysisResponse": { "properties": { "currencies": { + "description": "Currency codes found among the sampled products.", "example": [ "USD", "GBP" @@ -159597,31 +167737,42 @@ "type": "array" }, "discounts": { - "$ref": "#/definitions/shopapp.DiscountSummary" + "allOf": [ + { + "$ref": "#/definitions/shopapp.DiscountSummary" + } + ], + "description": "Discount percentages across sampled products that are on sale and have an original price." }, "groups_count": { + "description": "Number of product groups Shop.app returned with the results.", "example": 5, "type": "integer" }, "prices_by_currency": { + "description": "Price summary for each currency found among the sampled products.", "items": { "$ref": "#/definitions/shopapp.CurrencyPriceSummary" }, "type": "array" }, "products_count": { + "description": "Number of products sampled.", "example": 20, "type": "integer" }, "query": { + "description": "Search query that was analyzed.", "example": "sneakers", "type": "string" }, "sale_count": { + "description": "Number of sampled products that are on sale.", "example": 6, "type": "integer" }, "sampled_product_ids": { + "description": "Product IDs of the first sampled products, up to 10.", "example": [ "8075903107261", "7093164834901" @@ -159632,10 +167783,12 @@ "type": "array" }, "shops_count": { + "description": "Number of distinct shops among the sampled products.", "example": 8, "type": "integer" }, "top_shops": { + "description": "Up to five shops with the most sampled products.", "items": { "$ref": "#/definitions/shopapp.ShopSummary" }, @@ -159647,6 +167800,7 @@ "shopapp.CategoriesResponse": { "properties": { "categories": { + "description": "Product categories listed on Shop.app, each with its subcategories.", "items": { "$ref": "#/definitions/shopapp.CategoryItem" }, @@ -159658,36 +167812,44 @@ "shopapp.CategoryItem": { "properties": { "children": { + "description": "Subcategories of this category.", "items": { "$ref": "#/definitions/shopapp.CategoryItem" }, "type": "array" }, "gid": { + "description": "Shopify global ID of the category.", "example": "gid://shopify/ProductCategory/1?version=13", "type": "string" }, "has_children": { + "description": "`true` when the category has subcategories.", "type": "boolean" }, "id": { + "description": "Numeric category ID taken from the Shopify global ID.", "example": "1", "type": "string" }, "image": { + "description": "URL of the category image.", "type": "string" }, "name": { + "description": "Category name, for example `Women`.", "example": "Women", "type": "string" }, "path": { + "description": "Categories on the path from the top level down to this category.", "items": { "$ref": "#/definitions/shopapp.CategoryPath" }, "type": "array" }, "slug": { + "description": "URL-friendly form of the category name.", "example": "women", "type": "string" } @@ -159697,14 +167859,17 @@ "shopapp.CategoryPath": { "properties": { "gid": { + "description": "Shopify global ID of the category on the path.", "example": "gid://shopify/ProductCategory/1?version=13", "type": "string" }, "id": { + "description": "Numeric ID of the category on the path.", "example": "1", "type": "string" }, "name": { + "description": "Name of the category on the path.", "example": "Women", "type": "string" } @@ -159714,22 +167879,27 @@ "shopapp.CurrencyPriceSummary": { "properties": { "average": { + "description": "Average price in this currency, rounded to two decimals.", "example": 72.42, "type": "number" }, "count": { + "description": "Number of sampled products priced in this currency.", "example": 12, "type": "integer" }, "currency": { + "description": "Currency code of the prices.", "example": "USD", "type": "string" }, "max": { + "description": "Highest price in this currency.", "example": 149.99, "type": "number" }, "min": { + "description": "Lowest price in this currency.", "example": 35.9, "type": "number" } @@ -159739,14 +167909,17 @@ "shopapp.DiscountSummary": { "properties": { "average_percent": { + "description": "Average discount across on-sale products, as a percentage of the original price.", "example": 24.6, "type": "number" }, "max_percent": { + "description": "Largest discount among on-sale products, as a percentage of the original price.", "example": 60, "type": "number" }, "min_percent": { + "description": "Smallest discount among on-sale products, as a percentage of the original price.", "example": 10, "type": "number" } @@ -159756,10 +167929,12 @@ "shopapp.ImageItem": { "properties": { "alt": { + "description": "Alt text of the image.", "example": "Product image", "type": "string" }, "url": { + "description": "URL of the image.", "example": "https://cdn.shopify.com/example.jpg", "type": "string" } @@ -159769,25 +167944,31 @@ "shopapp.LocationAddress": { "properties": { "address1": { + "description": "First line of the street address.", "example": "175b Mott Street", "type": "string" }, "address2": { + "description": "Second line of the street address.", "type": "string" }, "city": { + "description": "City of the address.", "example": "New York", "type": "string" }, "country": { + "description": "Country of the address, for example `US`.", "example": "US", "type": "string" }, "postal_code": { + "description": "Postal code of the address.", "example": "10012", "type": "string" }, "zone_code": { + "description": "State or region code of the address, for example `NY`.", "example": "NY", "type": "string" } @@ -159797,10 +167978,12 @@ "shopapp.OptionGroup": { "properties": { "name": { + "description": "Option name, for example `Size`.", "example": "Size", "type": "string" }, "values": { + "description": "Values available for the option.", "items": { "type": "string" }, @@ -159812,85 +167995,105 @@ "shopapp.ProductDetail": { "properties": { "available": { + "description": "`true` when the selected variant is available for sale.", "type": "boolean" }, "currency": { + "description": "Currency code of `price` and `original_price`.", "example": "HKD", "type": "string" }, "description": { + "description": "Product description text.", "type": "string" }, "external_url": { + "description": "URL of the product on the seller's own online store.", "type": "string" }, "id": { + "description": "Shop.app product ID.", "example": "4596217053229", "type": "string" }, "images": { + "description": "Images of the product.", "items": { "$ref": "#/definitions/shopapp.ImageItem" }, "type": "array" }, "option_groups": { + "description": "Option choices of the product, such as size or colour, with their values.", "items": { "$ref": "#/definitions/shopapp.OptionGroup" }, "type": "array" }, "original_price": { + "description": "Price before the discount, in `currency`.", "example": 1166, "type": "number" }, "price": { + "description": "Current price of the selected variant, in `currency`.", "example": 1076, "type": "number" }, "rating": { + "description": "Average shopper rating of the product.", "example": 4.4, "type": "number" }, "related_products": { + "description": "Products Shop.app shows as related to this one.", "items": { "$ref": "#/definitions/shopapp.ProductItem" }, "type": "array" }, "reviews": { + "description": "Shopper reviews shown on the product page.", "items": { "$ref": "#/definitions/shopapp.ReviewItem" }, "type": "array" }, "reviews_count": { + "description": "Number of shopper reviews of the product.", "example": 22, "type": "integer" }, "shop_handle": { + "description": "Shop.app handle of the shop selling the product.", "example": "n1r478fp0h", "type": "string" }, "shop_id": { + "description": "Shop.app ID of the shop selling the product.", "type": "string" }, "shop_name": { + "description": "Name of the shop selling the product.", "example": "Wide Fit Shoes UK", "type": "string" }, "slug": { + "description": "URL slug of the product.", "example": "mens-wide-fit-new-balance-624v5-black-trainers-abzorb", "type": "string" }, "title": { + "description": "Product title as shown on the product page.", "example": "Mens Wide Fit New Balance 624V5 Black Trainers ABZORB", "type": "string" }, "url": { + "description": "Shop.app page URL of the product.", "type": "string" }, "variant_id": { + "description": "ID of the selected variant.", "example": "34761278160941", "type": "string" } @@ -159900,7 +168103,12 @@ "shopapp.ProductDetailResponse": { "properties": { "product": { - "$ref": "#/definitions/shopapp.ProductDetail" + "allOf": [ + { + "$ref": "#/definitions/shopapp.ProductDetail" + } + ], + "description": "Details of the product." } }, "type": "object" @@ -159908,61 +168116,76 @@ "shopapp.ProductItem": { "properties": { "currency": { + "description": "Currency code of `price` and `original_price`.", "example": "USD", "type": "string" }, "group_query": { + "description": "Search query of the product group this item belongs to.", "example": "kids' athletic sneakers", "type": "string" }, "group_title": { + "description": "Title of the product group this item belongs to.", "example": "kids' athletic sneakers", "type": "string" }, "id": { + "description": "Shop.app product ID.", "example": "8075903107261", "type": "string" }, "image": { + "description": "URL of the product's first image.", "example": "https://cdn.shopify.com/s/files/1/1145/5784/files/example.jpg", "type": "string" }, "image_alt": { + "description": "Alt text of the product's first image.", "example": "Black sneaker side view", "type": "string" }, "on_sale": { + "description": "`true` when the original price is higher than the current price.", "type": "boolean" }, "original_price": { + "description": "Price before the discount, in `currency`.", "example": 120, "type": "number" }, "position": { + "description": "Position of the product in the results, starting at 1.", "example": 1, "type": "integer" }, "price": { + "description": "Current price of the product, in `currency`.", "example": 100, "type": "number" }, "shop_id": { + "description": "Shop.app ID of the shop selling the product.", "example": "62696", "type": "string" }, "shop_name": { + "description": "Name of the shop selling the product.", "example": "BILLY Footwear", "type": "string" }, "title": { + "description": "Product title as shown on the Shop.app card.", "example": "Black/Black/Gum BILLY Sport Inclusion DZ1", "type": "string" }, "url": { + "description": "Link to the product page.", "example": "https://billyfootwear.com/products/black-black-gum-billy-sport-inclusion-dz1-zipper-shoes?utm_source=shop_app", "type": "string" }, "variant_id": { + "description": "ID of the product variant shown on the card.", "example": "46242960965821", "type": "string" } @@ -159972,11 +168195,17 @@ "shopapp.ProductShopResponse": { "properties": { "product_id": { + "description": "Shop.app ID of the product.", "example": "4596217053229", "type": "string" }, "shop": { - "$ref": "#/definitions/shopapp.ShopDetail" + "allOf": [ + { + "$ref": "#/definitions/shopapp.ShopDetail" + } + ], + "description": "Shop that sells the product." } }, "type": "object" @@ -159984,11 +168213,17 @@ "shopapp.ProductVariantResponse": { "properties": { "product_id": { + "description": "Shop.app ID of the product.", "example": "4596217053229", "type": "string" }, "variant": { - "$ref": "#/definitions/shopapp.VariantItem" + "allOf": [ + { + "$ref": "#/definitions/shopapp.VariantItem" + } + ], + "description": "Variant that matches the selected options." } }, "type": "object" @@ -159996,14 +168231,17 @@ "shopapp.RelatedResponse": { "properties": { "limit": { + "description": "Maximum number of related products requested.", "example": 20, "type": "integer" }, "product_id": { + "description": "Shop.app ID of the product the results relate to.", "example": "4596217053229", "type": "string" }, "products": { + "description": "Products related to the requested product.", "items": { "$ref": "#/definitions/shopapp.ProductItem" }, @@ -160015,34 +168253,47 @@ "shopapp.ReviewItem": { "properties": { "author": { + "description": "Name of the reviewer.", "example": "Donal", "type": "string" }, "body": { + "description": "Text of the review.", "example": "Perfect fit.", "type": "string" }, "date": { + "description": "Date of the review, either an ISO 8601 timestamp such as `2026-01-01T00:00:00Z` or text such as `December 6, 2025`.", "example": "December 6, 2025", "type": "string" }, "helpful_count": { + "description": "Number of shoppers who found the review helpful.", "type": "integer" }, "id": { + "description": "Shop.app review ID.", "type": "string" }, "product": { - "$ref": "#/definitions/shopapp.ReviewProduct" + "allOf": [ + { + "$ref": "#/definitions/shopapp.ReviewProduct" + } + ], + "description": "Product the review is for." }, "rating": { + "description": "Rating the reviewer gave.", "example": 5, "type": "number" }, "title": { + "description": "Headline of the review.", "type": "string" }, "variant_label": { + "description": "Label of the product variant that was reviewed, for example `Black / 12.5 / 4E`.", "example": "Black / 12.5 / 4E", "type": "string" } @@ -160052,27 +168303,34 @@ "shopapp.ReviewProduct": { "properties": { "id": { + "description": "Shop.app ID of the reviewed product.", "example": "8114373328975", "type": "string" }, "image": { + "description": "URL of the product image.", "type": "string" }, "image_alt": { + "description": "Alt text of the product image.", "type": "string" }, "slug": { + "description": "URL slug of the reviewed product.", "example": "solana-brown-woven-leather-backstrap-clogs", "type": "string" }, "title": { + "description": "Title of the reviewed product.", "example": "Solana Brown Woven Leather Backstrap Clogs", "type": "string" }, "url": { + "description": "Shop.app page URL of the reviewed product.", "type": "string" }, "variant": { + "description": "Variant of the product that was reviewed, for example `7 / Brown Woven / Leather`.", "example": "7 / Brown Woven / Leather", "type": "string" } @@ -160082,14 +168340,17 @@ "shopapp.ReviewsResponse": { "properties": { "limit": { + "description": "Maximum number of reviews requested.", "example": 20, "type": "integer" }, "product_id": { + "description": "Shop.app ID of the reviewed product.", "example": "4596217053229", "type": "string" }, "reviews": { + "description": "Shopper reviews of the product.", "items": { "$ref": "#/definitions/shopapp.ReviewItem" }, @@ -160101,20 +168362,24 @@ "shopapp.SearchGroup": { "properties": { "product_ids": { + "description": "IDs of the products in the group.", "items": { "type": "string" }, "type": "array" }, "products_seen": { + "description": "Number of products seen in the group.", "example": 4, "type": "integer" }, "query": { + "description": "Search query that defines the group.", "example": "men's running sneakers", "type": "string" }, "title": { + "description": "Group heading, for example `men's running sneakers`.", "example": "men's running sneakers", "type": "string" } @@ -160124,22 +168389,26 @@ "shopapp.SearchResponse": { "properties": { "groups": { + "description": "Groups of related products. Returned only when Shop.app supplies them.", "items": { "$ref": "#/definitions/shopapp.SearchGroup" }, "type": "array" }, "limit": { + "description": "Maximum number of products requested.", "example": 20, "type": "integer" }, "products": { + "description": "Products matching the query, in Shop.app ranking order.", "items": { "$ref": "#/definitions/shopapp.ProductItem" }, "type": "array" }, "query": { + "description": "Search query that was run.", "example": "sneakers", "type": "string" } @@ -160149,18 +168418,22 @@ "shopapp.ShopCollection": { "properties": { "id": { + "description": "Shop.app collection ID.", "example": "292518002767", "type": "string" }, "slug": { + "description": "URL slug of the collection.", "example": "mens-dress-shoes", "type": "string" }, "title": { + "description": "Collection title, for example `Mens Dress Shoes`.", "example": "Mens Dress Shoes", "type": "string" }, "url": { + "description": "Shop.app page URL of the collection.", "type": "string" } }, @@ -160169,50 +168442,63 @@ "shopapp.ShopDetail": { "properties": { "banner": { + "description": "URL of the shop's banner image.", "type": "string" }, "collections": { + "description": "Collections found on the shop's page.", "items": { "$ref": "#/definitions/shopapp.ShopCollection" }, "type": "array" }, "description": { + "description": "Description of the shop.", "type": "string" }, "handle": { + "description": "Shop.app handle of the shop, as used in its page URL.", "example": "marcnolan", "type": "string" }, "id": { + "description": "Shop.app shop ID.", "example": "186720", "type": "string" }, "logo": { + "description": "URL of the shop's logo.", "type": "string" }, "name": { + "description": "Name of the shop.", "example": "Marc Nolan", "type": "string" }, "rating": { + "description": "Average shopper rating of the shop.", "example": 4.7, "type": "number" }, "reviews_count": { + "description": "Number of shopper ratings or reviews of the shop.", "example": 19699, "type": "integer" }, "shopify_id": { + "description": "Shopify ID of the shop.", "type": "string" }, "storefront": { + "description": "URL of the shop's own website.", "type": "string" }, "url": { + "description": "Shop.app page URL of the shop.", "type": "string" }, "uuid": { + "description": "UUID of the shop.", "type": "string" } }, @@ -160221,21 +168507,30 @@ "shopapp.ShopLocationItem": { "properties": { "address": { - "$ref": "#/definitions/shopapp.LocationAddress" + "allOf": [ + { + "$ref": "#/definitions/shopapp.LocationAddress" + } + ], + "description": "Street address of the location." }, "id": { + "description": "Shopify location ID, for example `gid://shopify/Location/78620459087`.", "example": "gid://shopify/Location/78620459087", "type": "string" }, "latitude": { + "description": "Latitude of the location, in degrees.", "example": 40.7205232, "type": "number" }, "longitude": { + "description": "Longitude of the location, in degrees.", "example": -73.9961032, "type": "number" }, "name": { + "description": "Name of the location, for example `NYC`.", "example": "NYC", "type": "string" } @@ -160245,27 +168540,33 @@ "shopapp.ShopLocationsResponse": { "properties": { "limit": { + "description": "Maximum number of locations requested.", "example": 10, "type": "integer" }, "locations": { + "description": "Retail locations of the shop.", "items": { "$ref": "#/definitions/shopapp.ShopLocationItem" }, "type": "array" }, "next_cursor": { + "description": "Cursor Shop.app returns for the next page of locations.", "type": "string" }, "shop_handle": { + "description": "Shop.app handle of the shop.", "example": "marcnolan", "type": "string" }, "shop_id": { + "description": "Shop.app ID of the shop.", "example": "186720", "type": "string" }, "total_count": { + "description": "Total number of locations the shop has.", "example": 2, "type": "integer" } @@ -160275,30 +168576,41 @@ "shopapp.ShopProductsResponse": { "properties": { "collection": { - "$ref": "#/definitions/shopapp.ShopCollection" + "allOf": [ + { + "$ref": "#/definitions/shopapp.ShopCollection" + } + ], + "description": "Collection the products were filtered by." }, "collection_id": { + "description": "ID of the collection the products were filtered by.", "example": "292518002767", "type": "string" }, "limit": { + "description": "Maximum number of products requested.", "example": 30, "type": "integer" }, "next_cursor": { + "description": "Cursor Shop.app returns for the next page of products.", "type": "string" }, "products": { + "description": "Products of the shop.", "items": { "$ref": "#/definitions/shopapp.ProductItem" }, "type": "array" }, "shop_handle": { + "description": "Shop.app handle of the shop.", "example": "marcnolan", "type": "string" }, "sort_by": { + "description": "Sort order applied: `MOST_SALES`, `PRICE_LOW_TO_HIGH`, `PRICE_HIGH_TO_LOW` or `RELEVANCE`.", "example": "MOST_SALES", "type": "string" } @@ -160308,7 +168620,12 @@ "shopapp.ShopResponse": { "properties": { "shop": { - "$ref": "#/definitions/shopapp.ShopDetail" + "allOf": [ + { + "$ref": "#/definitions/shopapp.ShopDetail" + } + ], + "description": "Details of the shop." } }, "type": "object" @@ -160316,27 +168633,33 @@ "shopapp.ShopReviewsResponse": { "properties": { "limit": { + "description": "Maximum number of reviews requested.", "example": 20, "type": "integer" }, "next_cursor": { + "description": "Cursor Shop.app returns for the next page of reviews.", "type": "string" }, "reviews": { + "description": "Shopper reviews of the shop.", "items": { "$ref": "#/definitions/shopapp.ReviewItem" }, "type": "array" }, "shop_handle": { + "description": "Shop.app handle of the shop.", "example": "marcnolan", "type": "string" }, "shop_id": { + "description": "Shop.app ID of the shop.", "example": "186720", "type": "string" }, "total_count": { + "description": "Total number of reviews the shop has.", "example": 15015, "type": "integer" } @@ -160346,14 +168669,17 @@ "shopapp.ShopSummary": { "properties": { "count": { + "description": "Number of sampled products from this shop.", "example": 4, "type": "integer" }, "shop_id": { + "description": "Shop.app ID of the shop.", "example": "3961166", "type": "string" }, "shop_name": { + "description": "Name of the shop.", "example": "Start Fitness", "type": "string" } @@ -160363,28 +168689,43 @@ "shopapp.ShopTypeaheadItem": { "properties": { "collection": { - "$ref": "#/definitions/shopapp.ShopCollection" + "allOf": [ + { + "$ref": "#/definitions/shopapp.ShopCollection" + } + ], + "description": "Suggested collection. Set when `type` is `collection`." }, "id": { + "description": "ID of the suggested product, collection or term.", "example": "7438827651151", "type": "string" }, "position": { + "description": "Position of the suggestion in the list, starting at 1.", "example": 1, "type": "integer" }, "product": { - "$ref": "#/definitions/shopapp.ProductItem" + "allOf": [ + { + "$ref": "#/definitions/shopapp.ProductItem" + } + ], + "description": "Suggested product. Set when `type` is `product`." }, "text": { + "description": "Text of the suggestion, such as a term or product title.", "example": "loafer", "type": "string" }, "type": { + "description": "Kind of suggestion: `product`, `collection` or `term`.", "example": "product", "type": "string" }, "url": { + "description": "Shop.app URL of the suggested product or collection.", "type": "string" } }, @@ -160393,22 +168734,27 @@ "shopapp.ShopTypeaheadResponse": { "properties": { "limit": { + "description": "Maximum number of suggestions requested.", "example": 20, "type": "integer" }, "query": { + "description": "Text that was searched for within the shop.", "example": "loafer", "type": "string" }, "shop_handle": { + "description": "Shop.app handle of the shop.", "example": "marcnolan", "type": "string" }, "shop_id": { + "description": "Shop.app ID of the shop.", "example": "186720", "type": "string" }, "suggestions": { + "description": "Typeahead suggestions from the shop.", "items": { "$ref": "#/definitions/shopapp.ShopTypeaheadItem" }, @@ -160420,14 +168766,17 @@ "shopapp.SuggestResponse": { "properties": { "limit": { + "description": "Maximum number of suggestions requested.", "example": 10, "type": "integer" }, "query": { + "description": "Partial search text that suggestions were requested for.", "example": "sneakers", "type": "string" }, "suggestions": { + "description": "Search suggestions returned for the text.", "items": { "$ref": "#/definitions/shopapp.SuggestionItem" }, @@ -160439,33 +168788,41 @@ "shopapp.SuggestionItem": { "properties": { "image": { + "description": "URL of the shop logo. Set for `shop` suggestions.", "type": "string" }, "rating": { + "description": "Average shopper rating of the shop. Set for `shop` suggestions.", "example": 4.79, "type": "number" }, "shop_handle": { + "description": "Shop.app handle of the shop. Set for `shop` suggestions.", "example": "gr21z45he0", "type": "string" }, "shop_id": { + "description": "Shop.app ID of the shop. Set for `shop` suggestions.", "example": "365323", "type": "string" }, "shop_name": { + "description": "Name of the shop. Set for `shop` suggestions.", "example": "Sneakers Plus", "type": "string" }, "text": { + "description": "Suggested search text or shop name.", "example": "sneakers", "type": "string" }, "type": { + "description": "Kind of suggestion: `query` or `shop`.", "example": "query", "type": "string" }, "url": { + "description": "Shop.app URL of the search results or shop page for the suggestion.", "example": "https://shop.app/search/results?query=sneakers", "type": "string" } @@ -160475,38 +168832,52 @@ "shopapp.VariantItem": { "properties": { "available_for_sale": { + "description": "`true` when the variant can be bought.", "type": "boolean" }, "currency": { + "description": "Currency code of `price` and `original_price`.", "type": "string" }, "gid": { + "description": "Shopify global ID of the variant.", "example": "gid://shopify/ProductVariant/34761278160941", "type": "string" }, "id": { + "description": "Shop.app variant ID.", "example": "34761278160941", "type": "string" }, "image": { - "$ref": "#/definitions/shopapp.ImageItem" + "allOf": [ + { + "$ref": "#/definitions/shopapp.ImageItem" + } + ], + "description": "Image of the variant." }, "options": { "additionalProperties": { "type": "string" }, + "description": "Option values of the variant keyed by option name, for example `Size`.", "type": "object" }, "original_price": { + "description": "Price before the discount, in `currency`.", "type": "number" }, "price": { + "description": "Current price of the variant, in `currency`.", "type": "number" }, "requires_shipping": { + "description": "`true` when the variant has to be shipped.", "type": "boolean" }, "title": { + "description": "Variant title, for example `Black / 7 / 6E`.", "example": "Black / 7 / 6E", "type": "string" } @@ -160516,14 +168887,17 @@ "shopapp.VariantsResponse": { "properties": { "limit": { + "description": "Maximum number of variants requested.", "example": 50, "type": "integer" }, "product_id": { + "description": "Shop.app ID of the product.", "example": "4596217053229", "type": "string" }, "variants": { + "description": "Variants of the product.", "items": { "$ref": "#/definitions/shopapp.VariantItem" }, @@ -160775,34 +169149,43 @@ "shopify.CollectionItem": { "properties": { "created_at": { + "description": "Time the record was created, as Shopify returns it.", "type": "string" }, "description": { + "description": "Collection description as plain text.", "type": "string" }, "handle": { + "description": "URL slug of the collection, for example `mens`.", "example": "mens", "type": "string" }, "id": { + "description": "Shopify collection id.", "example": "278435758160", "type": "string" }, "products_count": { + "description": "Number of products in the collection. Omitted for headless storefronts.", "example": 24, "type": "integer" }, "published_at": { + "description": "Time the record was published, as Shopify returns it.", "type": "string" }, "title": { + "description": "Collection name as shown on the storefront.", "example": "Men", "type": "string" }, "updated_at": { + "description": "Time the record was last updated, as Shopify returns it.", "type": "string" }, "url": { + "description": "Storefront page URL of the collection.", "example": "https://www.allbirds.com/collections/mens", "type": "string" } @@ -160812,6 +169195,7 @@ "shopify.CollectionProductsResponse": { "properties": { "collection": { + "description": "Handle of the collection the products belong to.", "example": "mens", "type": "string" }, @@ -160830,6 +169214,7 @@ "additionalProperties": { "$ref": "#/definitions/shopify.FacetStat" }, + "description": "Lowest, highest and average value per numeric facet such as `price`. Present only when `transport_mode` is set.", "type": "object" }, "filters": { @@ -160839,32 +169224,40 @@ }, "type": "array" }, + "description": "Facet filters applied, mapping each facet name to the values requested. Present only for headless storefronts.", "type": "object" }, "in_stock_only": { + "description": "Whether only in-stock products were requested. Present only when `transport_mode` is `storefront_filtered`.", "type": "boolean" }, "limit": { + "description": "Maximum number of products returned per page.", "example": 50, "type": "integer" }, "max_price": { + "description": "Maximum price filter applied. Present only when `transport_mode` is `storefront_filtered`.", "type": "number" }, "min_price": { + "description": "Minimum price filter applied. Present only when `transport_mode` is `storefront_filtered`.", "type": "number" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "product_type": { + "description": "Product types the results were filtered to. Present only when `transport_mode` is `storefront_filtered`.", "items": { "type": "string" }, "type": "array" }, "products": { + "description": "Products on this page, one item per product.", "items": { "$ref": "#/definitions/shopify.ProductItem" }, @@ -160896,10 +169289,12 @@ "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.allbirds.com", "type": "string" }, "store_url": { + "description": "Base URL of the Shopify storefront that was queried.", "example": "https://www.allbirds.com", "type": "string" }, @@ -160909,10 +169304,12 @@ "type": "integer" }, "total_pages": { + "description": "Total number of result pages. Present only for headless storefronts.", "example": 4, "type": "integer" }, "transport_mode": { + "description": "Set to `ssr_embedded` for headless storefronts, or `storefront_filtered` when sort, price, product type, in-stock or variant filters were applied. Omitted otherwise.", "enum": [ "ssr_embedded", "storefront_filtered" @@ -160927,6 +169324,7 @@ }, "type": "array" }, + "description": "Variant option filters applied, mapping an option name such as `size` to the values requested. Present only when `transport_mode` is `storefront_filtered`.", "type": "object" } }, @@ -160935,28 +169333,34 @@ "shopify.CollectionsResponse": { "properties": { "collections": { + "description": "Collections on this page, one item per collection.", "items": { "$ref": "#/definitions/shopify.CollectionItem" }, "type": "array" }, "limit": { + "description": "Maximum number of collections returned per page.", "example": 50, "type": "integer" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.allbirds.com", "type": "string" }, "store_url": { + "description": "Base URL of the Shopify storefront that was queried.", "example": "https://www.allbirds.com", "type": "string" }, "transport_mode": { + "description": "Set only for headless storefronts that do not expose Shopify's standard catalogue; the value is `ssr_embedded`. Omitted otherwise. Titles are then derived from handles.", "enum": [ "ssr_embedded" ], @@ -160969,14 +169373,17 @@ "shopify.FacetStat": { "properties": { "avg": { + "description": "Average value of the facet across the current results.", "example": 56.46, "type": "number" }, "max": { + "description": "Highest value of the facet across the current results.", "example": 85, "type": "number" }, "min": { + "description": "Lowest value of the facet across the current results.", "example": 27, "type": "number" } @@ -160986,38 +169393,47 @@ "shopify.ImageItem": { "properties": { "alt": { + "description": "Alternative text of the image.", "example": "Product image", "type": "string" }, "created_at": { + "description": "Time the record was created, as Shopify returns it.", "type": "string" }, "height": { + "description": "Image height in pixels.", "example": 1600, "type": "integer" }, "id": { + "description": "Shopify image id.", "example": "36411373027408", "type": "string" }, "position": { + "description": "Position of the image in the product's image list, starting at 1.", "example": 1, "type": "integer" }, "updated_at": { + "description": "Time the record was last updated, as Shopify returns it.", "type": "string" }, "url": { + "description": "URL of the image file.", "example": "https://cdn.shopify.com/s/files/1/example.jpg", "type": "string" }, "variant_ids": { + "description": "Ids of the variants this image is attached to.", "items": { "type": "string" }, "type": "array" }, "width": { + "description": "Image width in pixels.", "example": 1600, "type": "integer" } @@ -161027,14 +169443,17 @@ "shopify.OptionItem": { "properties": { "name": { + "description": "Option name, for example `Size`.", "example": "Size", "type": "string" }, "position": { + "description": "Position of the option on the product, starting at 1.", "example": 1, "type": "integer" }, "values": { + "description": "Values the option can take, for example `S` or `M`.", "items": { "type": "string" }, @@ -161046,30 +169465,38 @@ "shopify.PageItem": { "properties": { "content": { + "description": "Body of the page as plain text.", "type": "string" }, "created_at": { + "description": "Time the record was created, as Shopify returns it.", "type": "string" }, "handle": { + "description": "URL slug of the page, for example `accessibility`.", "example": "accessibility", "type": "string" }, "id": { + "description": "Shopify page id.", "example": "54831906896", "type": "string" }, "published_at": { + "description": "Time the record was published, as Shopify returns it.", "type": "string" }, "title": { + "description": "Page title as shown on the storefront.", "example": "Accessibility", "type": "string" }, "updated_at": { + "description": "Time the record was last updated, as Shopify returns it.", "type": "string" }, "url": { + "description": "Storefront URL of the page.", "example": "https://www.allbirds.com/pages/accessibility", "type": "string" } @@ -161079,17 +169506,25 @@ "shopify.PageResponse": { "properties": { "page": { - "$ref": "#/definitions/shopify.PageItem" + "allOf": [ + { + "$ref": "#/definitions/shopify.PageItem" + } + ], + "description": "The static page that was requested." }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.allbirds.com", "type": "string" }, "store_url": { + "description": "Base URL of the Shopify storefront that was queried.", "example": "https://www.allbirds.com", "type": "string" }, "transport_mode": { + "description": "Set only for headless storefronts that do not expose Shopify's standard catalogue; the value is `ssr_embedded`. Omitted otherwise.", "enum": [ "ssr_embedded" ], @@ -161102,24 +169537,29 @@ "shopify.PagesResponse": { "properties": { "limit": { + "description": "Maximum number of pages returned per page of results.", "example": 50, "type": "integer" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "pages": { + "description": "Static pages on this page of results, one item per page.", "items": { "$ref": "#/definitions/shopify.PageItem" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.allbirds.com", "type": "string" }, "store_url": { + "description": "Base URL of the Shopify storefront that was queried.", "example": "https://www.allbirds.com", "type": "string" }, @@ -161137,13 +169577,16 @@ "shopify.ProductItem": { "properties": { "available": { + "description": "Whether at least one variant is available to buy.", "type": "boolean" }, "canonical_colour": { + "description": "Main colour name the storefront groups the product under, for example `black`.", "example": "black", "type": "string" }, "collection_tags": { + "description": "Collections the product is listed in, as the storefront labels them.", "items": { "type": "string" }, @@ -161155,6 +169598,7 @@ "type": "string" }, "compare_at_price": { + "description": "Original price before discount, in the store's currency. The highest compare-at price across variants.", "example": 120, "type": "number" }, @@ -161164,33 +169608,41 @@ "type": "string" }, "created_at": { + "description": "Time the record was created, as Shopify returns it.", "type": "string" }, "description": { + "description": "Product description as plain text.", "type": "string" }, "discount_percentage": { + "description": "Discount currently applied to the product, as a percentage.", "example": 20, "type": "number" }, "featured_image": { + "description": "URL of the product's main image.", "type": "string" }, "handle": { + "description": "URL slug of the product, for example `mens-wool-runners`.", "example": "mens-wool-runners", "type": "string" }, "id": { + "description": "Shopify product id.", "example": "6616124981328", "type": "string" }, "images": { + "description": "Images of the product, in the storefront's order.", "items": { "$ref": "#/definitions/shopify.ImageItem" }, "type": "array" }, "labels": { + "description": "Badges the storefront shows on the product, for example `new`.", "example": [ "new" ], @@ -161200,54 +169652,66 @@ "type": "array" }, "options": { + "description": "Options the product varies by, such as size or colour.", "items": { "$ref": "#/definitions/shopify.OptionItem" }, "type": "array" }, "price": { + "description": "Current price in the store's currency. The lowest variant price when variants are listed.", "example": 98, "type": "number" }, "product_type": { + "description": "Product type set by the merchant, for example `Shoes`.", "example": "Shoes", "type": "string" }, "published_at": { + "description": "Time the record was published, as Shopify returns it.", "type": "string" }, "rating": { + "description": "Average customer rating shown by the storefront.", "example": 4.2, "type": "number" }, "rating_count": { + "description": "Number of customer ratings behind `rating`.", "example": 1549, "type": "integer" }, "tags": { + "description": "Tags the merchant attached to the product.", "items": { "type": "string" }, "type": "array" }, "title": { + "description": "Product name as shown on the storefront.", "example": "Men's Wool Runners", "type": "string" }, "updated_at": { + "description": "Time the record was last updated, as Shopify returns it.", "type": "string" }, "url": { + "description": "Storefront page URL of the product.", "example": "https://www.allbirds.com/products/mens-wool-runners", "type": "string" }, "variants": { + "description": "Purchasable variants of the product, such as each size and colour.", "items": { "$ref": "#/definitions/shopify.VariantItem" }, "type": "array" }, "vendor": { + "description": "Brand or vendor name set by the merchant.", "example": "Allbirds", "type": "string" } @@ -161257,36 +169721,44 @@ "shopify.ProductRecommendationsResponse": { "properties": { "handle": { + "description": "Handle of the product the recommendations are based on.", "example": "mens-wool-runners", "type": "string" }, "intent": { + "description": "Recommendation type returned: `related` or `complementary`.", "example": "related", "type": "string" }, "limit": { + "description": "Maximum number of recommended products returned.", "example": 10, "type": "integer" }, "product_id": { + "description": "Shopify id of the product the recommendations are based on.", "example": "6616124981328", "type": "string" }, "products": { + "description": "Recommended products, one item per product.", "items": { "$ref": "#/definitions/shopify.ProductItem" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.allbirds.com", "type": "string" }, "store_url": { + "description": "Base URL of the Shopify storefront that was queried.", "example": "https://www.allbirds.com", "type": "string" }, "transport_mode": { + "description": "Set only for headless storefronts that do not expose Shopify's standard catalogue; the value is `ssr_embedded`. Omitted otherwise.", "enum": [ "ssr_embedded" ], @@ -161299,17 +169771,25 @@ "shopify.ProductResponse": { "properties": { "product": { - "$ref": "#/definitions/shopify.ProductItem" + "allOf": [ + { + "$ref": "#/definitions/shopify.ProductItem" + } + ], + "description": "The requested product with its variants, options and images." }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.allbirds.com", "type": "string" }, "store_url": { + "description": "Base URL of the Shopify storefront that was queried.", "example": "https://www.allbirds.com", "type": "string" }, "transport_mode": { + "description": "Set only for headless storefronts that do not expose Shopify's standard catalogue; the value is `ssr_embedded`. Omitted otherwise.", "enum": [ "ssr_embedded" ], @@ -161336,6 +169816,7 @@ "additionalProperties": { "$ref": "#/definitions/shopify.FacetStat" }, + "description": "Lowest, highest and average value per numeric facet such as `price`. Present only when `transport_mode` is set.", "type": "object" }, "filters": { @@ -161345,32 +169826,40 @@ }, "type": "array" }, + "description": "Facet filters applied, mapping each facet name to the values requested. Present only for headless storefronts.", "type": "object" }, "in_stock_only": { + "description": "Whether only in-stock products were requested. Present only when `transport_mode` is `storefront_filtered`.", "type": "boolean" }, "limit": { + "description": "Maximum number of products returned per page.", "example": 50, "type": "integer" }, "max_price": { + "description": "Maximum price filter applied. Present only when `transport_mode` is `storefront_filtered`.", "type": "number" }, "min_price": { + "description": "Minimum price filter applied. Present only when `transport_mode` is `storefront_filtered`.", "type": "number" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "product_type": { + "description": "Product types the results were filtered to. Present only when `transport_mode` is `storefront_filtered`.", "items": { "type": "string" }, "type": "array" }, "products": { + "description": "Products on this page, one item per product.", "items": { "$ref": "#/definitions/shopify.ProductItem" }, @@ -161402,10 +169891,12 @@ "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.allbirds.com", "type": "string" }, "store_url": { + "description": "Base URL of the Shopify storefront that was queried.", "example": "https://www.allbirds.com", "type": "string" }, @@ -161415,10 +169906,12 @@ "type": "integer" }, "total_pages": { + "description": "Total number of result pages. Present only for headless storefronts.", "example": 4, "type": "integer" }, "transport_mode": { + "description": "Set to `ssr_embedded` for headless storefronts, or `storefront_filtered` when sort, price, product type, in-stock or variant filters were applied. Omitted otherwise.", "enum": [ "ssr_embedded", "storefront_filtered" @@ -161433,6 +169926,7 @@ }, "type": "array" }, + "description": "Variant option filters applied, mapping an option name such as `size` to the values requested. Present only when `transport_mode` is `storefront_filtered`.", "type": "object" } }, @@ -161519,10 +170013,12 @@ "shopify.SearchQueryItem": { "properties": { "text": { + "description": "Suggested search phrase.", "example": "wool", "type": "string" }, "url": { + "description": "Storefront search results URL for the phrase.", "example": "https://www.allbirds.com/search?q=wool", "type": "string" } @@ -161585,40 +170081,48 @@ "shopify.SearchSuggestResponse": { "properties": { "collections": { + "description": "Collections suggested for the query.", "items": { "$ref": "#/definitions/shopify.CollectionItem" }, "type": "array" }, "limit": { + "description": "Maximum number of suggestions requested.", "example": 10, "type": "integer" }, "products": { + "description": "Products suggested for the query.", "items": { "$ref": "#/definitions/shopify.ProductItem" }, "type": "array" }, "queries": { + "description": "Search phrases suggested for the query.", "items": { "$ref": "#/definitions/shopify.SearchQueryItem" }, "type": "array" }, "query": { + "description": "Search text that was run.", "example": "wool", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.allbirds.com", "type": "string" }, "store_url": { + "description": "Base URL of the Shopify storefront that was queried.", "example": "https://www.allbirds.com", "type": "string" }, "types": { + "description": "Suggestion types returned: `product`, `collection` and `query`.", "example": [ "product", "collection", @@ -161673,13 +170177,16 @@ "shopify.SitemapImage": { "properties": { "caption": { + "description": "Caption of the image listed in the sitemap.", "type": "string" }, "title": { + "description": "Title of the image listed in the sitemap.", "example": "Men's Wool Runner", "type": "string" }, "url": { + "description": "URL of the image file.", "example": "https://cdn.shopify.com/example.png", "type": "string" } @@ -161689,16 +170196,19 @@ "shopify.SitemapIndexResponse": { "properties": { "sitemaps": { + "description": "Child sitemaps listed by the store's main sitemap.", "items": { "$ref": "#/definitions/shopify.SitemapItem" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.allbirds.com", "type": "string" }, "store_url": { + "description": "Base URL of the Shopify storefront that was queried.", "example": "https://www.allbirds.com", "type": "string" } @@ -161708,10 +170218,12 @@ "shopify.SitemapItem": { "properties": { "loc": { + "description": "URL of the child sitemap file.", "example": "https://www.allbirds.com/sitemap_products_1.xml", "type": "string" }, "type": { + "description": "Section the sitemap covers: `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`.", "example": "products", "type": "string" } @@ -161721,28 +170233,34 @@ "shopify.SitemapURLItem": { "properties": { "changefreq": { + "description": "Update frequency hint from the sitemap entry, for example `weekly`.", "example": "weekly", "type": "string" }, "handle": { + "description": "Handle of the product, collection or page the URL points to.", "example": "mens-wool-runners", "type": "string" }, "images": { + "description": "Images listed for the URL in the sitemap.", "items": { "$ref": "#/definitions/shopify.SitemapImage" }, "type": "array" }, "lastmod": { + "description": "Last modification time listed for the URL in the sitemap.", "example": "2026-03-19T11:41:39-07:00", "type": "string" }, "loc": { + "description": "Storefront URL listed in the sitemap.", "example": "https://www.allbirds.com/products/mens-wool-runners", "type": "string" }, "type": { + "description": "Section the URL belongs to: `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`.", "example": "products", "type": "string" } @@ -161752,22 +170270,27 @@ "shopify.SitemapURLsResponse": { "properties": { "limit": { + "description": "Maximum number of URL entries returned.", "example": 50, "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.allbirds.com", "type": "string" }, "store_url": { + "description": "Base URL of the Shopify storefront that was queried.", "example": "https://www.allbirds.com", "type": "string" }, "type": { + "description": "Sitemap section requested: `all`, `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`.", "example": "products", "type": "string" }, "urls": { + "description": "URL entries from the matching sitemaps.", "items": { "$ref": "#/definitions/shopify.SitemapURLItem" }, @@ -161779,57 +170302,71 @@ "shopify.StoreResponse": { "properties": { "city": { + "description": "City of the store's business address.", "example": "San Francisco", "type": "string" }, "country": { + "description": "Country code of the store, for example `US`.", "example": "US", "type": "string" }, "currency": { + "description": "Currency code the store prices in, for example `USD`.", "example": "USD", "type": "string" }, "description": { + "description": "Store description set by the merchant.", "type": "string" }, "domain": { + "description": "Domain of the storefront URL that was requested.", "example": "www.gymshark.com", "type": "string" }, "myshopify_domain": { + "description": "The store's `myshopify.com` domain, for example `gymsharkusa.myshopify.com`.", "example": "gymsharkusa.myshopify.com", "type": "string" }, "name": { + "description": "Store name, for example `Allbirds`.", "example": "Allbirds", "type": "string" }, "province": { + "description": "State or province of the store's business address.", "example": "CA", "type": "string" }, "published_collections_count": { + "description": "Number of published collections in the store.", "example": 42, "type": "integer" }, "published_products_count": { + "description": "Number of published products in the store.", "example": 638, "type": "integer" }, "requested_url": { + "description": "Storefront URL that was requested.", "example": "https://www.gymshark.com", "type": "string" }, "source_domain": { + "description": "Domain the store data was read from. It differs from `domain` when the store's `myshopify.com` domain is used.", "example": "gymsharkusa.myshopify.com", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "example": "https://gymsharkusa.myshopify.com", "type": "string" }, "transport_mode": { + "description": "Set only for headless storefronts that do not expose Shopify's standard catalogue; the value is `ssr_embedded`. Omitted otherwise.", "enum": [ "ssr_embedded" ], @@ -161842,26 +170379,33 @@ "shopify.VariantItem": { "properties": { "available": { + "description": "Whether this variant is currently available to buy.", "type": "boolean" }, "barcode": { + "description": "Barcode of the variant, such as a UPC or EAN.", "type": "string" }, "compare_at_price": { + "description": "Original price before discount, in the store's currency.", "example": 120, "type": "number" }, "created_at": { + "description": "Time the record was created, as Shopify returns it.", "type": "string" }, "featured_image": { + "description": "URL of the image shown for this variant.", "type": "string" }, "grams": { + "description": "Weight of the variant in grams.", "example": 400, "type": "integer" }, "id": { + "description": "Shopify variant id.", "example": "34761278160941", "type": "string" }, @@ -161871,41 +170415,52 @@ "type": "integer" }, "option1": { + "description": "Value of the product's first option for this variant, for example a size.", "type": "string" }, "option2": { + "description": "Value of the product's second option for this variant.", "type": "string" }, "option3": { + "description": "Value of the product's third option for this variant.", "type": "string" }, "position": { + "description": "Position of the variant in the product's variant list, starting at 1.", "example": 1, "type": "integer" }, "price": { + "description": "Current price of the variant in the store's currency.", "example": 98, "type": "number" }, "product_id": { + "description": "Shopify id of the product the variant belongs to.", "example": "6616124981328", "type": "string" }, "requires_shipping": { + "description": "Whether the variant is a physical item that needs shipping.", "type": "boolean" }, "sku": { + "description": "Merchant stock keeping unit code of the variant.", "example": "A123", "type": "string" }, "taxable": { + "description": "Whether tax is charged on the variant.", "type": "boolean" }, "title": { + "description": "Variant name, for example `Natural Black / 10`.", "example": "Natural Black / 10", "type": "string" }, "updated_at": { + "description": "Time the record was last updated, as Shopify returns it.", "type": "string" } }, @@ -162314,6 +170869,7 @@ "similarweb.SearchResp": { "properties": { "apps": { + "description": "Apps matching the search term, grouped by store: Google Play and the App Store.", "properties": { "appStore": { "items": { @@ -162391,6 +170947,7 @@ "type": "object" }, "companies": { + "description": "Companies matching the search term.", "items": { "properties": { "domain": { @@ -162411,6 +170968,7 @@ "type": "array" }, "websites": { + "description": "Websites matching the search term.", "items": { "properties": { "image": { @@ -162540,9 +171098,11 @@ "type": "object" }, "Category": { + "description": "Category SimilarWeb places the site in.", "type": "string" }, "CategoryRank": { + "description": "Rank of the site within its category, with the category name.", "properties": { "Category": { "type": "string" @@ -162554,6 +171114,7 @@ "type": "object" }, "Competitors": { + "description": "Sites SimilarWeb lists as most similar to the domain.", "properties": { "TopSimilarityCompetitors": { "items": {}, @@ -162563,6 +171124,7 @@ "type": "object" }, "Countries": { + "description": "Countries SimilarWeb returns with the site's data, each with a code, URL code and name.", "items": { "properties": { "Code": { @@ -162580,6 +171142,7 @@ "type": "array" }, "CountryRank": { + "description": "Rank of the site within one country, with that country's code.", "properties": { "Country": { "type": "integer" @@ -162599,9 +171162,11 @@ "type": "string" }, "Description": { + "description": "Site description as SimilarWeb shows it.", "type": "string" }, "Engagments": { + "description": "Engagement figures for the latest month: bounce rate, pages per visit, visits, time on site, month and year.", "properties": { "BounceRate": { "type": "string" @@ -162625,6 +171190,7 @@ "type": "object" }, "EstimatedMonthlyVisits": { + "description": "Estimated visits per month, keyed by the first day of the month (YYYY-MM-DD).", "properties": { "2024-09-01": { "type": "integer" @@ -162638,8 +171204,11 @@ }, "type": "object" }, - "GlobalCategoryRank": {}, + "GlobalCategoryRank": { + "description": "Rank of the site within its category across all countries, when SimilarWeb provides it." + }, "GlobalRank": { + "description": "Global traffic rank of the site, in `Rank`.", "properties": { "Rank": { "type": "integer" @@ -162648,33 +171217,42 @@ "type": "object" }, "IsDataFromGa": { + "description": "Whether SimilarWeb reports the site's data as coming from Google Analytics.", "type": "boolean" }, "IsSmall": { + "description": "Whether SimilarWeb treats the site as a small site.", "type": "boolean" }, "LargeScreenshot": { + "description": "URL of a large screenshot of the site.", "type": "string" }, "Notification": { + "description": "Notice SimilarWeb attaches to the site's data, in `Content`.", "properties": { "Content": {} }, "type": "object" }, "Policy": { + "description": "Numeric policy value SimilarWeb returns with the site's data.", "type": "integer" }, "SiteName": { + "description": "Domain name of the site.", "type": "string" }, "SnapshotDate": { + "description": "Date and time of the SimilarWeb data snapshot.", "type": "string" }, "Title": { + "description": "Site title as SimilarWeb shows it.", "type": "string" }, "TopCountryShares": { + "description": "Countries that send the most visits, each with its country code and share of traffic.", "items": { "properties": { "Country": { @@ -162692,6 +171270,7 @@ "type": "array" }, "TopKeywords": { + "description": "Top search keywords bringing visits to the site, each with estimated value, volume and cost per click.", "items": { "properties": { "Cpc": { @@ -162712,6 +171291,7 @@ "type": "array" }, "TrafficSources": { + "description": "Share of traffic from each source: social, paid referrals, mail, referrals, search and direct.", "properties": { "Direct": { "type": "number" @@ -162735,6 +171315,7 @@ "type": "object" }, "Version": { + "description": "Version number SimilarWeb returns with the site's data.", "type": "integer" } }, @@ -165958,47 +174539,93 @@ "sofascore.EventDetail": { "properties": { "attendance": { + "description": "Reported attendance.", "type": "integer" }, "away_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Away side's score, when available." }, "away_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Away side." }, "home_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Home side's score, when available." }, "home_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Home side." }, "id": { + "description": "SofaScore event id. Use it with the event endpoints.", "example": 14025013, "type": "integer" }, "referee": { - "$ref": "#/definitions/sofascore.Referee" + "allOf": [ + { + "$ref": "#/definitions/sofascore.Referee" + } + ], + "description": "Match referee. Omitted when SofaScore has none for it." }, "slug": { + "description": "URL slug of the match on SofaScore.", "type": "string" }, "start_time": { + "description": "Start time in UTC (RFC 3339).", "example": "2025-08-15T19:00:00Z", "type": "string" }, "start_timestamp": { + "description": "Start time as a Unix timestamp in seconds.", "type": "integer" }, "status": { - "$ref": "#/definitions/sofascore.EventStatus" + "allOf": [ + { + "$ref": "#/definitions/sofascore.EventStatus" + } + ], + "description": "Current status of the match." }, "tournament": { - "$ref": "#/definitions/sofascore.TournamentRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TournamentRef" + } + ], + "description": "Tournament and parent competition the match belongs to." }, "venue": { - "$ref": "#/definitions/sofascore.Venue" + "allOf": [ + { + "$ref": "#/definitions/sofascore.Venue" + } + ], + "description": "Venue of the match. Omitted when SofaScore has none for it." }, "winner_code": { + "description": "Result code: 1 when the home side won, 2 when the away side won, 3 for a draw. Omitted until the match is decided.", "type": "integer" } }, @@ -166070,19 +174697,32 @@ "sofascore.EventH2HResponse": { "properties": { "event_id": { + "description": "SofaScore event id the record belongs to.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "manager_duel": { - "$ref": "#/definitions/sofascore.TeamDuel" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamDuel" + } + ], + "description": "Record between the two managers. Omitted when SofaScore has no history for them." }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" }, "team_duel": { - "$ref": "#/definitions/sofascore.TeamDuel" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamDuel" + } + ], + "description": "All-time record between the two teams." } }, "type": "object" @@ -166165,21 +174805,26 @@ "sofascore.EventIncidentsResponse": { "properties": { "count": { + "description": "Number of incidents returned.", "type": "integer" }, "event_id": { + "description": "SofaScore event (match) id that was requested.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "incidents": { + "description": "Match timeline of goals, cards, substitutions and period markers.", "items": { "$ref": "#/definitions/sofascore.Incident" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -166212,21 +174857,35 @@ "sofascore.EventLineupsResponse": { "properties": { "away": { - "$ref": "#/definitions/sofascore.TeamLineup" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamLineup" + } + ], + "description": "Away side's lineup." }, "confirmed": { + "description": "True for the official confirmed lineups, false while they are still predicted.", "type": "boolean" }, "event_id": { + "description": "SofaScore event id the lineups belong to.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "home": { - "$ref": "#/definitions/sofascore.TeamLineup" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamLineup" + } + ], + "description": "Home side's lineup." }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" } }, @@ -166256,21 +174915,26 @@ "sofascore.EventOddsResponse": { "properties": { "count": { + "description": "Number of markets returned.", "type": "integer" }, "event_id": { + "description": "SofaScore event id the odds belong to.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "markets": { + "description": "Betting markets for the match.", "items": { "$ref": "#/definitions/sofascore.OddsMarket" }, "type": "array" }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" } }, @@ -166393,12 +175057,19 @@ "sofascore.EventResponse": { "properties": { "event": { - "$ref": "#/definitions/sofascore.EventDetail" + "allOf": [ + { + "$ref": "#/definitions/sofascore.EventDetail" + } + ], + "description": "The match." }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" } }, @@ -166431,18 +175102,22 @@ "sofascore.EventStatisticsResponse": { "properties": { "event_id": { + "description": "SofaScore event id the statistics belong to.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "periods": { + "description": "Statistics for the whole match and for each period.", "items": { "$ref": "#/definitions/sofascore.StatPeriod" }, "type": "array" }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" } }, @@ -166451,13 +175126,16 @@ "sofascore.EventStatus": { "properties": { "code": { + "description": "SofaScore's numeric status code, for example 0 for not started and 100 for ended.", "type": "integer" }, "description": { + "description": "Status as displayed, for example \"Ended\".", "example": "Ended", "type": "string" }, "type": { + "description": "Status group, for example `notstarted`, `inprogress` or `finished`.", "example": "finished", "type": "string" } @@ -166467,38 +175145,73 @@ "sofascore.EventSummary": { "properties": { "away_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Away side's score, when available." }, "away_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Away side." }, "home_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Home side's score, when available." }, "home_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Home side." }, "id": { + "description": "SofaScore event id. Use it with the event endpoints.", "example": 14025013, "type": "integer" }, "slug": { + "description": "URL slug of the match on SofaScore.", "type": "string" }, "start_time": { + "description": "Start time in UTC (RFC 3339).", "example": "2025-08-15T19:00:00Z", "type": "string" }, "start_timestamp": { + "description": "Start time as a Unix timestamp in seconds.", "type": "integer" }, "status": { - "$ref": "#/definitions/sofascore.EventStatus" + "allOf": [ + { + "$ref": "#/definitions/sofascore.EventStatus" + } + ], + "description": "Current status of the match." }, "tournament": { - "$ref": "#/definitions/sofascore.TournamentRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TournamentRef" + } + ], + "description": "Tournament and parent competition the match belongs to." }, "winner_code": { + "description": "Result code: 1 when the home side won, 2 when the away side won, 3 for a draw. Omitted until the match is decided.", "type": "integer" } }, @@ -166798,41 +175511,53 @@ "sofascore.Incident": { "properties": { "added_time": { + "description": "Minutes of added time at the point of the incident.", "type": "integer" }, "away_score": { + "description": "Away team's score after the incident.", "type": "integer" }, "card_color": { + "description": "Color of the card, such as `yellow` or `red`. Set for card incidents.", "example": "yellow", "type": "string" }, "home_score": { + "description": "Home team's score after the incident.", "type": "integer" }, "is_home": { + "description": "Whether the incident belongs to the home team.", "type": "boolean" }, "player": { + "description": "Name of the player involved in the incident.", "type": "string" }, "player_in": { + "description": "Name of the player coming on in a substitution.", "type": "string" }, "player_out": { + "description": "Name of the player going off in a substitution.", "type": "string" }, "reason": { + "description": "Reason SofaScore gives for the incident.", "type": "string" }, "text": { + "description": "Short label for the incident, such as `FT` for full time.", "example": "FT", "type": "string" }, "time": { + "description": "Match minute at which the incident happened.", "type": "integer" }, "type": { + "description": "Incident type, such as `period`, `goal`, `card` or `substitution`.", "example": "goal", "type": "string" } @@ -166842,15 +175567,23 @@ "sofascore.LineupPlayer": { "properties": { "jersey_number": { + "description": "Shirt number worn in this match.", "type": "string" }, "player": { - "$ref": "#/definitions/sofascore.PlayerRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.PlayerRef" + } + ], + "description": "The player." }, "position": { + "description": "Position in this match, for example G, D, M or F.", "type": "string" }, "substitute": { + "description": "True for a player on the bench.", "type": "boolean" } }, @@ -166859,22 +175592,27 @@ "sofascore.LiveEventsResponse": { "properties": { "count": { + "description": "Number of events returned.", "example": 10, "type": "integer" }, "events": { + "description": "Matches currently in progress.", "items": { "$ref": "#/definitions/sofascore.EventSummary" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" }, "sport": { + "description": "Sport the events belong to.", "example": "football", "type": "string" } @@ -167292,14 +176030,17 @@ "sofascore.OddsChoice": { "properties": { "name": { + "description": "Outcome label, for example 1, X or 2.", "example": "1", "type": "string" }, "value": { + "description": "Fractional odds, for example 29/100.", "example": "29/100", "type": "string" }, "winning": { + "description": "True when this outcome won.", "type": "boolean" } }, @@ -167308,22 +176049,43 @@ "sofascore.OddsDroppingEvent": { "properties": { "away_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Away side's score, when available." }, "away_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Away side." }, "choice_name": { "example": "2", "type": "string" }, "home_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Home side's score, when available." }, "home_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Home side." }, "id": { + "description": "SofaScore event id. Use it with the event endpoints.", "example": 14025013, "type": "integer" }, @@ -167335,6 +176097,7 @@ "type": "number" }, "slug": { + "description": "URL slug of the match on SofaScore.", "type": "string" }, "sport": { @@ -167342,19 +176105,32 @@ "type": "string" }, "start_time": { + "description": "Start time in UTC (RFC 3339).", "example": "2025-08-15T19:00:00Z", "type": "string" }, "start_timestamp": { + "description": "Start time as a Unix timestamp in seconds.", "type": "integer" }, "status": { - "$ref": "#/definitions/sofascore.EventStatus" + "allOf": [ + { + "$ref": "#/definitions/sofascore.EventStatus" + } + ], + "description": "Current status of the match." }, "tournament": { - "$ref": "#/definitions/sofascore.TournamentRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TournamentRef" + } + ], + "description": "Tournament and parent competition the match belongs to." }, "winner_code": { + "description": "Result code: 1 when the home side won, 2 when the away side won, 3 for a draw. Omitted until the match is decided.", "type": "integer" } }, @@ -167387,24 +176163,29 @@ "sofascore.OddsMarket": { "properties": { "choices": { + "description": "Outcomes that can be selected in this market.", "items": { "$ref": "#/definitions/sofascore.OddsChoice" }, "type": "array" }, "group": { + "description": "Market group, for example 1X2.", "example": "1X2", "type": "string" }, "name": { + "description": "Market name, for example \"Full time\".", "example": "Full time", "type": "string" }, "period": { + "description": "Part of the match the market covers, for example \"Full-time\".", "example": "Full-time", "type": "string" }, "suspended": { + "description": "True while the market is suspended.", "type": "boolean" } }, @@ -167417,22 +176198,43 @@ "type": "number" }, "away_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Away side's score, when available." }, "away_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Away side." }, "expected": { "example": 51, "type": "number" }, "home_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Home side's score, when available." }, "home_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Home side." }, "id": { + "description": "SofaScore event id. Use it with the event endpoints.", "example": 14025013, "type": "integer" }, @@ -167440,6 +176242,7 @@ "$ref": "#/definitions/sofascore.MoverOddsMarket" }, "slug": { + "description": "URL slug of the match on SofaScore.", "type": "string" }, "sport": { @@ -167447,19 +176250,32 @@ "type": "string" }, "start_time": { + "description": "Start time in UTC (RFC 3339).", "example": "2025-08-15T19:00:00Z", "type": "string" }, "start_timestamp": { + "description": "Start time as a Unix timestamp in seconds.", "type": "integer" }, "status": { - "$ref": "#/definitions/sofascore.EventStatus" + "allOf": [ + { + "$ref": "#/definitions/sofascore.EventStatus" + } + ], + "description": "Current status of the match." }, "tournament": { - "$ref": "#/definitions/sofascore.TournamentRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TournamentRef" + } + ], + "description": "Tournament and parent competition the match belongs to." }, "winner_code": { + "description": "Result code: 1 when the home side won, 2 when the away side won, 3 for a draw. Omitted until the match is decided.", "type": "integer" }, "winning_odds": { @@ -167630,46 +176446,64 @@ "sofascore.PlayerDetail": { "properties": { "country": { + "description": "Player's country.", "type": "string" }, "date_of_birth": { + "description": "Date of birth (RFC 3339).", "type": "string" }, "deceased": { + "description": "True when the player has died.", "type": "boolean" }, "height": { + "description": "Height in centimetres.", "type": "integer" }, "id": { + "description": "SofaScore player id. Use it with the player endpoints.", "type": "integer" }, "jersey_number": { + "description": "Shirt number.", "type": "string" }, "market_value": { + "description": "SofaScore's estimated market value, in units of `market_value_currency`. Omitted when unavailable.", "type": "integer" }, "market_value_currency": { + "description": "Currency of `market_value`, for example EUR.", "type": "string" }, "name": { + "description": "Player's full name.", "type": "string" }, "position": { + "description": "Position code, for example G, D, M or F.", "type": "string" }, "preferred_foot": { + "description": "Preferred foot, for example \"Right\".", "type": "string" }, "short_name": { + "description": "Shortened name, for example \"E. Haaland\".", "type": "string" }, "slug": { + "description": "URL slug of the player on SofaScore.", "type": "string" }, "team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "The player's current team." } }, "type": "object" @@ -167976,26 +176810,32 @@ "sofascore.PlayerRef": { "properties": { "country": { + "description": "Player's country.", "example": "Spain", "type": "string" }, "id": { + "description": "SofaScore player id. Use it with the player endpoints.", "example": 855833, "type": "integer" }, "name": { + "description": "Player's full name.", "example": "Ferran Torres", "type": "string" }, "position": { + "description": "Position code, for example G, D, M or F.", "example": "F", "type": "string" }, "short_name": { + "description": "Shortened name, for example \"F. Torres\".", "example": "F. Torres", "type": "string" }, "slug": { + "description": "URL slug of the player on SofaScore.", "example": "ferran-torres", "type": "string" } @@ -168005,12 +176845,19 @@ "sofascore.PlayerResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "player": { - "$ref": "#/definitions/sofascore.PlayerDetail" + "allOf": [ + { + "$ref": "#/definitions/sofascore.PlayerDetail" + } + ], + "description": "The player's profile." }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" } }, @@ -168607,13 +177454,16 @@ "sofascore.Referee": { "properties": { "country": { + "description": "Referee's country.", "example": "England", "type": "string" }, "id": { + "description": "SofaScore referee id.", "type": "integer" }, "name": { + "description": "Referee's name.", "example": "Anthony Taylor", "type": "string" } @@ -168770,38 +177620,48 @@ "sofascore.RoundEventsResponse": { "properties": { "count": { + "description": "Number of events returned.", "type": "integer" }, "events": { + "description": "Fixtures in the round.", "items": { "$ref": "#/definitions/sofascore.EventSummary" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "has_next_page": { + "description": "True when more fixtures are available on a further page.", "type": "boolean" }, "prefix": { + "description": "Round prefix, set for stages such as Qualification.", "example": "Qualification", "type": "string" }, "round": { + "description": "Round number.", "type": "integer" }, "season_id": { + "description": "SofaScore season id.", "type": "integer" }, "slug": { + "description": "Round slug, set for named rounds such as `round-of-16`.", "example": "round-of-16", "type": "string" }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" }, "tournament_id": { + "description": "Id of the competition (the unique tournament id).", "type": "integer" } }, @@ -168929,12 +177789,15 @@ "sofascore.ScoreLine": { "properties": { "current": { + "description": "Current score, which is the final score once the match is over.", "type": "integer" }, "period1": { + "description": "Score in the first period.", "type": "integer" }, "period2": { + "description": "Score in the second period.", "type": "integer" } }, @@ -168943,21 +177806,26 @@ "sofascore.SearchResponse": { "properties": { "count": { + "description": "Number of results returned.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "query": { + "description": "Search query that was run.", "type": "string" }, "results": { + "description": "Matching teams, players and other entities. Empty when nothing matches.", "items": { "$ref": "#/definitions/sofascore.SearchResult" }, "type": "array" }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" } }, @@ -168966,27 +177834,35 @@ "sofascore.SearchResult": { "properties": { "country": { + "description": "Country of the result.", "type": "string" }, "id": { + "description": "SofaScore id of the result. Which endpoints accept it depends on `type`.", "type": "integer" }, "name": { + "description": "Name of the result.", "type": "string" }, "slug": { + "description": "URL slug of the result on SofaScore.", "type": "string" }, "sport": { + "description": "Sport the result belongs to.", "type": "string" }, "team_id": { + "description": "For a player, the SofaScore id of their team.", "type": "integer" }, "team_name": { + "description": "For a player, the name of their team.", "type": "string" }, "type": { + "description": "Kind of result, for example `team` or `player`.", "example": "team", "type": "string" } @@ -169029,12 +177905,15 @@ "sofascore.Season": { "properties": { "id": { + "description": "SofaScore season id. Pass it to the standings and round endpoints.", "type": "integer" }, "name": { + "description": "Season name.", "type": "string" }, "year": { + "description": "Season label, for example 26/27.", "type": "string" } }, @@ -169043,18 +177922,39 @@ "sofascore.SeasonEvent": { "properties": { "away_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Away side's score, when available." }, "away_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Away side." }, "home_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Home side's score, when available." }, "home_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Home side." }, "id": { + "description": "SofaScore event id. Use it with the event endpoints.", "example": 14025013, "type": "integer" }, @@ -169066,22 +177966,36 @@ "type": "string" }, "slug": { + "description": "URL slug of the match on SofaScore.", "type": "string" }, "start_time": { + "description": "Start time in UTC (RFC 3339).", "example": "2025-08-15T19:00:00Z", "type": "string" }, "start_timestamp": { + "description": "Start time as a Unix timestamp in seconds.", "type": "integer" }, "status": { - "$ref": "#/definitions/sofascore.EventStatus" + "allOf": [ + { + "$ref": "#/definitions/sofascore.EventStatus" + } + ], + "description": "Current status of the match." }, "tournament": { - "$ref": "#/definitions/sofascore.TournamentRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TournamentRef" + } + ], + "description": "Tournament and parent competition the match belongs to." }, "winner_code": { + "description": "Result code: 1 when the home side won, 2 when the away side won, 3 for a draw. Omitted until the match is decided.", "type": "integer" } }, @@ -169396,39 +178310,51 @@ "sofascore.SquadPlayer": { "properties": { "country": { + "description": "Player's country.", "type": "string" }, "date_of_birth": { + "description": "Date of birth (RFC 3339).", "type": "string" }, "height": { + "description": "Height in centimetres.", "type": "integer" }, "id": { + "description": "SofaScore player id. Use it with the player endpoints.", "type": "integer" }, "jersey_number": { + "description": "Shirt number.", "type": "string" }, "market_value": { + "description": "SofaScore's estimated market value, in units of `market_value_currency`. Omitted when unavailable.", "type": "integer" }, "market_value_currency": { + "description": "Currency of `market_value`, for example EUR.", "type": "string" }, "name": { + "description": "Player's full name.", "type": "string" }, "position": { + "description": "Position code, for example G, D, M or F.", "type": "string" }, "preferred_foot": { + "description": "Preferred foot, for example \"Right\".", "type": "string" }, "short_name": { + "description": "Shortened name, for example \"E. Haaland\".", "type": "string" }, "slug": { + "description": "URL slug of the player on SofaScore.", "type": "string" } }, @@ -170357,9 +179283,11 @@ "sofascore.StandingsGroup": { "properties": { "name": { + "description": "Table name, set when the competition publishes more than one table, such as group-stage groups.", "type": "string" }, "rows": { + "description": "Table rows in position order.", "items": { "$ref": "#/definitions/sofascore.StandingsRow" }, @@ -170371,24 +179299,30 @@ "sofascore.StandingsResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "groups": { + "description": "One entry per table the competition publishes.", "items": { "$ref": "#/definitions/sofascore.StandingsGroup" }, "type": "array" }, "season_id": { + "description": "SofaScore season id.", "type": "integer" }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" }, "tournament_id": { + "description": "Id of the competition (the unique tournament id).", "type": "integer" }, "type": { + "description": "Which table was requested: `total`, `home` or `away`.", "example": "total", "type": "string" } @@ -170398,34 +179332,48 @@ "sofascore.StandingsRow": { "properties": { "draws": { + "description": "Matches drawn.", "type": "integer" }, "losses": { + "description": "Matches lost.", "type": "integer" }, "matches": { + "description": "Matches played.", "type": "integer" }, "points": { + "description": "Points in the table.", "type": "integer" }, "position": { + "description": "Position in the table.", "type": "integer" }, "promotion": { + "description": "What the position currently leads to, for example \"Champions League\". Omitted when the position carries nothing.", "example": "Champions League", "type": "string" }, "scores_against": { + "description": "Goals or points conceded.", "type": "integer" }, "scores_for": { + "description": "Goals or points scored.", "type": "integer" }, "team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "The team." }, "wins": { + "description": "Matches won.", "type": "integer" } }, @@ -170434,12 +179382,14 @@ "sofascore.StatGroup": { "properties": { "items": { + "description": "Statistics in the group.", "items": { "$ref": "#/definitions/sofascore.StatItem" }, "type": "array" }, "name": { + "description": "Group name, for example \"Match overview\" or \"Shots\".", "type": "string" } }, @@ -170448,18 +179398,22 @@ "sofascore.StatItem": { "properties": { "away": { + "description": "Away side's value as displayed, for example 39%.", "example": "39%", "type": "string" }, "home": { + "description": "Home side's value as displayed, for example 61%.", "example": "61%", "type": "string" }, "key": { + "description": "Stable key for the statistic, for example `ballPossession`.", "example": "ballPossession", "type": "string" }, "name": { + "description": "Statistic name, for example \"Ball possession\".", "example": "Ball possession", "type": "string" } @@ -170469,12 +179423,14 @@ "sofascore.StatPeriod": { "properties": { "groups": { + "description": "Statistic groups for the period.", "items": { "$ref": "#/definitions/sofascore.StatGroup" }, "type": "array" }, "period": { + "description": "Period the statistics cover: `ALL`, `1ST` or `2ND`.", "example": "ALL", "type": "string" } @@ -170616,10 +179572,12 @@ "sofascore.TeamDetail": { "properties": { "country": { + "description": "Country the team belongs to.", "example": "Spain", "type": "string" }, "id": { + "description": "SofaScore team id. Use it with the team endpoints.", "example": 2817, "type": "integer" }, @@ -170627,20 +179585,24 @@ "type": "string" }, "name": { + "description": "Full team name.", "example": "FC Barcelona", "type": "string" }, "national": { + "description": "True for a national team.", "type": "boolean" }, "primary_color": { "type": "string" }, "short_name": { + "description": "Shortened team name.", "example": "Barcelona", "type": "string" }, "slug": { + "description": "URL slug of the team on SofaScore.", "example": "barcelona", "type": "string" }, @@ -170669,12 +179631,15 @@ "sofascore.TeamDuel": { "properties": { "away_wins": { + "description": "Past meetings won by the away side of this match.", "type": "integer" }, "draws": { + "description": "Past meetings that ended in a draw.", "type": "integer" }, "home_wins": { + "description": "Past meetings won by the home side of this match.", "type": "integer" } }, @@ -170683,31 +179648,39 @@ "sofascore.TeamEventsResponse": { "properties": { "count": { + "description": "Number of events on this page.", "type": "integer" }, "direction": { + "description": "Which fixtures were requested: `next` for upcoming, `last` for past.", "example": "next", "type": "string" }, "events": { + "description": "Fixtures on this page. Empty when there are none.", "items": { "$ref": "#/definitions/sofascore.EventSummary" }, "type": "array" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "has_next_page": { + "description": "True when page + 1 has more fixtures in the same direction.", "type": "boolean" }, "page": { + "description": "Zero-based page number returned.", "type": "integer" }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" }, "team_id": { + "description": "SofaScore team id the fixtures belong to.", "type": "integer" } }, @@ -170745,10 +179718,12 @@ "sofascore.TeamLineup": { "properties": { "formation": { + "description": "Formation, for example 4-3-3.", "example": "4-3-3", "type": "string" }, "players": { + "description": "Starting players and substitutes.", "items": { "$ref": "#/definitions/sofascore.LineupPlayer" }, @@ -171015,21 +179990,26 @@ "sofascore.TeamPlayersResponse": { "properties": { "count": { + "description": "Number of players returned.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "players": { + "description": "The team's squad.", "items": { "$ref": "#/definitions/sofascore.SquadPlayer" }, "type": "array" }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" }, "team_id": { + "description": "SofaScore team id the squad belongs to.", "type": "integer" } }, @@ -171147,25 +180127,31 @@ "sofascore.TeamRef": { "properties": { "country": { + "description": "Country the team belongs to.", "example": "Spain", "type": "string" }, "id": { + "description": "SofaScore team id. Use it with the team endpoints.", "example": 2817, "type": "integer" }, "name": { + "description": "Full team name.", "example": "FC Barcelona", "type": "string" }, "national": { + "description": "True for a national team.", "type": "boolean" }, "short_name": { + "description": "Shortened team name.", "example": "Barcelona", "type": "string" }, "slug": { + "description": "URL slug of the team on SofaScore.", "example": "barcelona", "type": "string" } @@ -171744,25 +180730,31 @@ "sofascore.TournamentRef": { "properties": { "category": { + "description": "Category the tournament sits under, usually a country or region.", "example": "England", "type": "string" }, "id": { + "description": "SofaScore id of the tournament the match is filed under. The seasons, standings and round endpoints take `unique_tournament_id` instead.", "type": "integer" }, "name": { + "description": "Tournament name.", "example": "Premier League", "type": "string" }, "slug": { + "description": "URL slug of the tournament on SofaScore.", "example": "premier-league", "type": "string" }, "unique_tournament_id": { + "description": "Id of the parent competition. This is the tournament id the tournament-seasons, standings and round-events endpoints take.", "example": 17, "type": "integer" }, "unique_tournament_name": { + "description": "Name of the parent competition.", "example": "Premier League", "type": "string" } @@ -171801,21 +180793,26 @@ "sofascore.TournamentSeasonsResponse": { "properties": { "count": { + "description": "Number of seasons returned.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "seasons": { + "description": "Seasons SofaScore has for the competition.", "items": { "$ref": "#/definitions/sofascore.Season" }, "type": "array" }, "source_url": { + "description": "SofaScore URL the data was read from.", "type": "string" }, "tournament_id": { + "description": "Id of the competition (the unique tournament id).", "type": "integer" } }, @@ -172159,22 +181156,44 @@ "sofascore.TrendingEvent": { "properties": { "away_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Away side's score, when available." }, "away_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Away side." }, "home_score": { - "$ref": "#/definitions/sofascore.ScoreLine" + "allOf": [ + { + "$ref": "#/definitions/sofascore.ScoreLine" + } + ], + "description": "Home side's score, when available." }, "home_team": { - "$ref": "#/definitions/sofascore.TeamRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TeamRef" + } + ], + "description": "Home side." }, "id": { + "description": "SofaScore event id. Use it with the event endpoints.", "example": 14025013, "type": "integer" }, "slug": { + "description": "URL slug of the match on SofaScore.", "type": "string" }, "sport": { @@ -172182,19 +181201,32 @@ "type": "string" }, "start_time": { + "description": "Start time in UTC (RFC 3339).", "example": "2025-08-15T19:00:00Z", "type": "string" }, "start_timestamp": { + "description": "Start time as a Unix timestamp in seconds.", "type": "integer" }, "status": { - "$ref": "#/definitions/sofascore.EventStatus" + "allOf": [ + { + "$ref": "#/definitions/sofascore.EventStatus" + } + ], + "description": "Current status of the match." }, "tournament": { - "$ref": "#/definitions/sofascore.TournamentRef" + "allOf": [ + { + "$ref": "#/definitions/sofascore.TournamentRef" + } + ], + "description": "Tournament and parent competition the match belongs to." }, "winner_code": { + "description": "Result code: 1 when the home side won, 2 when the away side won, 3 for a draw. Omitted until the match is decided.", "type": "integer" } }, @@ -172396,18 +181428,22 @@ "sofascore.Venue": { "properties": { "capacity": { + "description": "Venue capacity.", "example": 61276, "type": "integer" }, "city": { + "description": "City the venue is in.", "example": "Liverpool", "type": "string" }, "country": { + "description": "Country the venue is in.", "example": "England", "type": "string" }, "name": { + "description": "Venue name.", "example": "Anfield", "type": "string" } @@ -178955,15 +187991,19 @@ "spotify.AlbumMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "type": "string" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "type": "string" }, "trackCount": { + "description": "Number of tracks returned.", "type": "integer" } }, @@ -178972,75 +188012,99 @@ "spotify.AlbumResponse": { "properties": { "albumType": { + "description": "Album format as Spotify labels it.", "type": "string" }, "artists": { + "description": "Artists credited on the album.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "copyrights": { + "description": "Copyright notices listed for the album.", "items": { "type": "string" }, "type": "array" }, "durationMs": { + "description": "Total album length in milliseconds.", "type": "integer" }, "externalUrl": { + "description": "Link to the album on open.spotify.com.", "type": "string" }, "id": { + "description": "Spotify ID of the album.", "type": "string" }, "imageUrl": { + "description": "URL of the album cover image.", "type": "string" }, "images": { + "description": "Cover images available for the album, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "isExplicit": { + "description": "Whether Spotify marks the album as explicit.", "type": "boolean" }, "isPlayable": { + "description": "Whether the album can be played.", "type": "boolean" }, "limit": { + "description": "Maximum number of tracks requested.", "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.AlbumMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.AlbumMeta" + } + ], + "description": "Details about this response." }, "name": { + "description": "Album title as Spotify shows it.", "type": "string" }, "offset": { + "description": "Position of the first track returned.", "type": "integer" }, "releaseDate": { + "description": "Date the album was released, as Spotify returns it.", "type": "string" }, "shareUrl": { + "description": "Link to the album that Spotify offers for sharing.", "type": "string" }, "totalTracks": { + "description": "Total number of tracks on the album.", "type": "integer" }, "tracks": { + "description": "Tracks returned for the album.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Album`.", "type": "string" }, "uri": { + "description": "Spotify URI of the album.", "type": "string" } }, @@ -179049,15 +188113,19 @@ "spotify.ArtistAlbumsMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "type": "string" }, "count": { + "description": "Number of releases returned.", "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "type": "string" } }, @@ -179066,33 +188134,46 @@ "spotify.ArtistAlbumsResponse": { "properties": { "id": { + "description": "Spotify ID of the artist.", "type": "string" }, "items": { + "description": "Releases returned for the artist.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "limit": { + "description": "Maximum number of releases requested.", "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.ArtistAlbumsMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.ArtistAlbumsMeta" + } + ], + "description": "Details about this response." }, "offset": { + "description": "Position of the first release returned.", "type": "integer" }, "order": { + "description": "Sort order that was applied: `date_desc`, `date_asc`, `name_asc` or `name_desc`.", "type": "string" }, "total": { + "description": "Total number of releases of this type on Spotify.", "type": "integer" }, "type": { + "description": "Release type that was requested: `album`, `single`, `compilation`, `appears_on` or `all`.", "type": "string" }, "uri": { + "description": "Spotify URI of the artist.", "type": "string" } }, @@ -179101,15 +188182,19 @@ "spotify.ArtistCollectionMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "type": "string" }, "count": { + "description": "Number of items returned.", "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "type": "string" } }, @@ -179118,18 +188203,26 @@ "spotify.ArtistCollectionResponse": { "properties": { "id": { + "description": "Spotify ID of the artist.", "type": "string" }, "items": { + "description": "Playlists or related artists returned for the artist.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "meta": { - "$ref": "#/definitions/spotify.ArtistCollectionMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.ArtistCollectionMeta" + } + ], + "description": "Details about this response." }, "uri": { + "description": "Spotify URI of the artist.", "type": "string" } }, @@ -179138,24 +188231,31 @@ "spotify.ArtistMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "type": "string" }, "discographyCount": { + "description": "Number of discography entries returned.", "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "type": "string" }, "playlistCount": { + "description": "Number of playlists returned.", "type": "integer" }, "relatedCount": { + "description": "Number of related artists returned.", "type": "integer" }, "topTrackCount": { + "description": "Number of top tracks returned.", "type": "integer" } }, @@ -179164,69 +188264,90 @@ "spotify.ArtistResponse": { "properties": { "biography": { + "description": "Artist biography text.", "type": "string" }, "discography": { + "description": "Selection of the artist's albums and releases.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "externalUrl": { + "description": "Link to the artist on open.spotify.com.", "type": "string" }, "followers": { + "description": "Number of Spotify followers the artist has.", "type": "integer" }, "id": { + "description": "Spotify ID of the artist.", "type": "string" }, "imageUrl": { + "description": "URL of the main artist image.", "type": "string" }, "images": { + "description": "Images available for the artist, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "meta": { - "$ref": "#/definitions/spotify.ArtistMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.ArtistMeta" + } + ], + "description": "Details about this response." }, "monthlyUsers": { + "description": "Number of monthly listeners Spotify shows for the artist.", "type": "integer" }, "name": { + "description": "Artist name as Spotify shows it.", "type": "string" }, "playlists": { + "description": "Playlists featuring the artist.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "related": { + "description": "Artists related to this artist.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "shareUrl": { + "description": "Link to the artist that Spotify offers for sharing.", "type": "string" }, "topTracks": { + "description": "Most popular tracks of the artist.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Artist`.", "type": "string" }, "uri": { + "description": "Spotify URI of the artist.", "type": "string" }, "verified": { + "description": "Whether Spotify shows the artist as verified.", "type": "boolean" } }, @@ -179235,15 +188356,19 @@ "spotify.AudiobookChaptersMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "type": "string" }, "count": { + "description": "Number of chapters returned.", "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "type": "string" } }, @@ -179252,27 +188377,38 @@ "spotify.AudiobookChaptersResponse": { "properties": { "chapters": { + "description": "Chapters returned for the audiobook.", "items": { "$ref": "#/definitions/spotify.PodcastEpisodeSummary" }, "type": "array" }, "id": { + "description": "Spotify ID of the audiobook.", "type": "string" }, "limit": { + "description": "Maximum number of chapters requested.", "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.AudiobookChaptersMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.AudiobookChaptersMeta" + } + ], + "description": "Details about this response." }, "offset": { + "description": "Position of the first chapter returned.", "type": "integer" }, "total": { + "description": "Total number of chapters in the audiobook.", "type": "integer" }, "uri": { + "description": "Spotify URI of the audiobook.", "type": "string" } }, @@ -179281,12 +188417,15 @@ "spotify.AudiobookMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "type": "string" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "type": "string" } }, @@ -179295,57 +188434,76 @@ "spotify.AudiobookResponse": { "properties": { "authors": { + "description": "Names of the audiobook's authors.", "items": { "type": "string" }, "type": "array" }, "description": { + "description": "Description text of the audiobook.", "type": "string" }, "externalUrl": { + "description": "Link to the audiobook on open.spotify.com.", "type": "string" }, "id": { + "description": "Spotify ID of the audiobook.", "type": "string" }, "imageUrl": { + "description": "URL of the audiobook cover image.", "type": "string" }, "images": { + "description": "Cover images available for the audiobook, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "isExplicit": { + "description": "Whether Spotify marks the audiobook as explicit.", "type": "boolean" }, "mediaType": { + "description": "Kind of media the audiobook carries, as Spotify labels it.", "type": "string" }, "meta": { - "$ref": "#/definitions/spotify.AudiobookMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.AudiobookMeta" + } + ], + "description": "Details about this response." }, "name": { + "description": "Audiobook title as Spotify shows it.", "type": "string" }, "narrators": { + "description": "Names of the audiobook's narrators.", "items": { "type": "string" }, "type": "array" }, "publisher": { + "description": "Name of the audiobook's publisher.", "type": "string" }, "totalChapters": { + "description": "Total number of chapters in the audiobook.", "type": "integer" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Audiobook`.", "type": "string" }, "uri": { + "description": "Spotify URI of the audiobook.", "type": "string" } }, @@ -179354,40 +188512,49 @@ "spotify.BrowsePageItem": { "properties": { "description": { + "description": "Description text of the item.", "example": "The official podcast of comedian Joe Rogan.", "type": "string" }, "externalUrl": { + "description": "Link to the item on open.spotify.com.", "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", "type": "string" }, "imageUrl": { + "description": "URL of the main image for the item.", "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", "type": "string" }, "images": { + "description": "Images available for the item, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "publisher": { + "description": "Publisher or creator name of the item.", "example": "Joe Rogan", "type": "string" }, "subtitle": { + "description": "Secondary line shown under the item title, such as the creator name.", "example": "Joe Rogan", "type": "string" }, "title": { + "description": "Item title as Spotify shows it.", "example": "The Joe Rogan Experience", "type": "string" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Podcast`.", "example": "Podcast", "type": "string" }, "uri": { + "description": "Spotify URI of the item.", "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", "type": "string" } @@ -179397,18 +188564,22 @@ "spotify.BrowsePageMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:12Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "browsePage", "type": "string" }, "sectionCount": { + "description": "Number of sections returned.", "example": 8, "type": "integer" } @@ -179418,27 +188589,37 @@ "spotify.BrowsePageResponse": { "properties": { "meta": { - "$ref": "#/definitions/spotify.BrowsePageMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.BrowsePageMeta" + } + ], + "description": "Details about this response." }, "sections": { + "description": "Sections of the page, in display order.", "items": { "$ref": "#/definitions/spotify.BrowsePageSection" }, "type": "array" }, "subtitle": { + "description": "Secondary line shown under the page title.", "example": "New shows and episodes", "type": "string" }, "title": { + "description": "Page title as Spotify shows it.", "example": "Podcasts", "type": "string" }, "type": { + "description": "Kind of page container as Spotify labels it.", "example": "BrowseSectionContainer", "type": "string" }, "uri": { + "description": "Spotify URI of the page that was loaded.", "example": "spotify:genre:podcasts-web", "type": "string" } @@ -179448,28 +188629,34 @@ "spotify.BrowsePageSection": { "properties": { "items": { + "description": "Items returned for this section.", "items": { "$ref": "#/definitions/spotify.BrowsePageItem" }, "type": "array" }, "subtitle": { + "description": "Secondary line shown under the section heading.", "example": "Recommended shows", "type": "string" }, "title": { + "description": "Section heading as Spotify shows it.", "example": "Popular podcasts", "type": "string" }, "totalCount": { + "description": "Total number of items in the section on Spotify.", "example": 20, "type": "integer" }, "type": { + "description": "Kind of section as Spotify labels it.", "example": "BrowseGenericSectionData", "type": "string" }, "uri": { + "description": "Spotify URI of the section.", "example": "spotify:section:0JQ5IMCbQBLqNPkcmYxQPQ", "type": "string" } @@ -179479,18 +188666,22 @@ "spotify.BrowseSectionMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "count": { + "description": "Number of items returned.", "example": 20, "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:12Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "browseSection", "type": "string" } @@ -179500,39 +188691,52 @@ "spotify.BrowseSectionResponse": { "properties": { "items": { + "description": "Items returned for this section.", "items": { "$ref": "#/definitions/spotify.BrowsePageItem" }, "type": "array" }, "limit": { + "description": "Maximum number of items requested.", "example": 20, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.BrowseSectionMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.BrowseSectionMeta" + } + ], + "description": "Details about this response." }, "offset": { + "description": "Position of the first item returned within the section.", "example": 0, "type": "integer" }, "subtitle": { + "description": "Secondary line shown under the section heading.", "example": "Recommended shows", "type": "string" }, "title": { + "description": "Section heading as Spotify shows it.", "example": "Popular podcasts", "type": "string" }, "totalCount": { + "description": "Total number of items in the section on Spotify.", "example": 50, "type": "integer" }, "type": { + "description": "Kind of section as Spotify labels it.", "example": "BrowseGenericSectionData", "type": "string" }, "uri": { + "description": "Spotify URI of the section that was loaded.", "example": "spotify:section:0JQ5IMCbQBLqNPkcmYxQPQ", "type": "string" } @@ -179542,78 +188746,97 @@ "spotify.ChartItem": { "properties": { "description": { + "description": "Description text of the chart entry.", "example": "The official podcast of comedian Joe Rogan.", "type": "string" }, "episodeDescription": { + "description": "Description text of the episode, for episode charts.", "example": "A representative chart episode.", "type": "string" }, "episodeExternalUrl": { + "description": "Link to the episode on open.spotify.com, for episode charts.", "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, "episodeImageUrl": { + "description": "URL of the episode's cover image, for episode charts.", "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", "type": "string" }, "episodeName": { + "description": "Episode title as Spotify shows it, for episode charts.", "example": "Example episode", "type": "string" }, "episodeUri": { + "description": "Spotify URI of the episode, for episode charts.", "example": "spotify:episode:2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, "externalUrl": { + "description": "Link to the chart entry on open.spotify.com.", "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", "type": "string" }, "imageUrl": { + "description": "URL of the cover image for the chart entry.", "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", "type": "string" }, "name": { + "description": "Title of the chart entry (episode title for episode charts, otherwise show title).", "example": "The Joe Rogan Experience", "type": "string" }, "publisher": { + "description": "Name of the publisher of the show.", "example": "Joe Rogan", "type": "string" }, "rank": { + "description": "Position of the entry in the chart, starting at 1.", "example": 1, "type": "integer" }, "rankMove": { + "description": "Change in rank since the previous chart period, as Spotify labels it, for example `UNCHANGED`.", "example": "UNCHANGED", "type": "string" }, "showDescription": { + "description": "Description text of the show.", "example": "The official podcast of comedian Joe Rogan.", "type": "string" }, "showExternalUrl": { + "description": "Link to the show on open.spotify.com.", "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", "type": "string" }, "showImageUrl": { + "description": "URL of the show's cover image.", "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", "type": "string" }, "showName": { + "description": "Show title as Spotify shows it.", "example": "The Joe Rogan Experience", "type": "string" }, "showPublisher": { + "description": "Name of the show's publisher.", "example": "Joe Rogan", "type": "string" }, "showUri": { + "description": "Spotify URI of the show.", "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", "type": "string" }, "uri": { + "description": "Spotify URI of the chart entry (an episode for episode charts, otherwise a show).", "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", "type": "string" } @@ -179623,14 +188846,17 @@ "spotify.ChartMeta": { "properties": { "count": { + "description": "Number of chart entries returned.", "example": 100, "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:13Z", "type": "string" }, "sourceUrl": { + "description": "URL the data was read from.", "example": "https://podcastcharts.byspotify.com/api/charts/top-podcasts?region=us", "type": "string" } @@ -179640,35 +188866,47 @@ "spotify.ChartResponse": { "properties": { "chart": { + "description": "Chart identifier that was requested, for example `top-podcasts`.", "example": "top-podcasts", "type": "string" }, "chartName": { + "description": "Display name of the chart.", "example": "Top Podcasts", "type": "string" }, "chartType": { + "description": "Whether the chart is an overall `chart` or a `category` chart.", "example": "chart", "type": "string" }, "items": { + "description": "Chart entries, ordered by rank.", "items": { "$ref": "#/definitions/spotify.ChartItem" }, "type": "array" }, "limit": { + "description": "Maximum number of chart entries requested.", "example": 100, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.ChartMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.ChartMeta" + } + ], + "description": "Details about this response." }, "region": { + "description": "Region code the chart was loaded for.", "example": "us", "type": "string" }, "regionName": { + "description": "Name of the chart region.", "example": "United States", "type": "string" } @@ -179678,10 +188916,12 @@ "spotify.CountryHubContentID": { "properties": { "id": { + "description": "Content identifier to pass when requesting that section, for example `CHARTS`.", "example": "CHARTS", "type": "string" }, "title": { + "description": "Section heading as Spotify shows it.", "example": "Featured Charts", "type": "string" } @@ -179691,18 +188931,22 @@ "spotify.CountryHubContentMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:13Z", "type": "string" }, "itemCount": { + "description": "Number of items returned.", "example": 20, "type": "integer" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "countryHubContent", "type": "string" }, @@ -179717,43 +188961,56 @@ "spotify.CountryHubContentResponse": { "properties": { "contentId": { + "description": "Content identifier that was requested: `CHARTS`, `POPULAR_ALBUMS`, `POPULAR_ARTISTS` or `TRENDING_SONGS`.", "example": "CHARTS", "type": "string" }, "countryCode": { + "description": "Country code the content was loaded for.", "example": "US", "type": "string" }, "countryName": { + "description": "Name of the country.", "example": "United States", "type": "string" }, "hexColor": { + "description": "Accent color of the country page, as a hex color code.", "example": "#1DB954", "type": "string" }, "items": { + "description": "Items returned for the section.", "items": { "$ref": "#/definitions/spotify.CountryHubItem" }, "type": "array" }, "meta": { - "$ref": "#/definitions/spotify.CountryHubContentMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.CountryHubContentMeta" + } + ], + "description": "Details about this response." }, "supportedContentIds": { + "description": "Content sections available on the country page.", "items": { "$ref": "#/definitions/spotify.CountryHubContentID" }, "type": "array" }, "supportedCountries": { + "description": "Countries Spotify offers a popular-in page for.", "items": { "$ref": "#/definitions/spotify.PopularCountry" }, "type": "array" }, "title": { + "description": "Section heading as Spotify shows it.", "example": "Featured Charts", "type": "string" } @@ -179763,9 +189020,15 @@ "spotify.CountryHubItem": { "properties": { "album": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "allOf": [ + { + "$ref": "#/definitions/spotify.SearchResultSummary" + } + ], + "description": "Album the item appears on." }, "artists": { + "description": "Artists credited on the item.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, @@ -179775,45 +189038,59 @@ "additionalProperties": { "type": "string" }, + "description": "Additional key-value attributes Spotify returns for the item.", "example": { "{\"chart\"": "\"top-50\"}" }, "type": "object" }, "description": { + "description": "Description text of the item.", "example": "Your daily update of the most played tracks right now.", "type": "string" }, "externalUrl": { + "description": "Link to the item on open.spotify.com.", "example": "https://open.spotify.com/playlist/37i9dQZEVXbLRQDuF5jeBpM", "type": "string" }, "imageUrl": { + "description": "URL of the main image for the item.", "example": "https://charts-images.scdn.co/assets/locale_en/regional/daily/region_us_default.jpg", "type": "string" }, "images": { + "description": "Images available for the item, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "owner": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "allOf": [ + { + "$ref": "#/definitions/spotify.SearchResultSummary" + } + ], + "description": "User or account that owns the item." }, "subtitle": { + "description": "Secondary line shown under the item title.", "example": "Spotify", "type": "string" }, "title": { + "description": "Item title as Spotify shows it.", "example": "Top 50 - USA", "type": "string" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Playlist`.", "example": "Playlist", "type": "string" }, "uri": { + "description": "Spotify URI of the item.", "example": "spotify:playlist:37i9dQZEVXbLRQDuF5jeBpM", "type": "string" } @@ -179823,18 +189100,22 @@ "spotify.CountryHubMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:13Z", "type": "string" }, "itemCount": { + "description": "Number of items returned across all sections.", "example": 20, "type": "integer" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "countryHubsPage", "type": "string" }, @@ -179844,6 +189125,7 @@ "type": "integer" }, "sectionCount": { + "description": "Number of sections returned.", "example": 5, "type": "integer" } @@ -179853,27 +189135,37 @@ "spotify.CountryHubResponse": { "properties": { "countryCode": { + "description": "Country code the hub was loaded for.", "example": "US", "type": "string" }, "countryName": { + "description": "Name of the country.", "example": "United States", "type": "string" }, "hexColor": { + "description": "Accent color of the country page, as a hex color code.", "example": "#1DB954", "type": "string" }, "meta": { - "$ref": "#/definitions/spotify.CountryHubMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.CountryHubMeta" + } + ], + "description": "Details about this response." }, "sections": { + "description": "Content sections of the country page.", "items": { "$ref": "#/definitions/spotify.CountryHubSection" }, "type": "array" }, "supportedCountries": { + "description": "Countries Spotify offers a popular-in page for.", "items": { "$ref": "#/definitions/spotify.PopularCountry" }, @@ -179885,20 +189177,24 @@ "spotify.CountryHubSection": { "properties": { "contentId": { + "description": "Identifier of the section content, for example `CHARTS`.", "example": "CHARTS", "type": "string" }, "items": { + "description": "Items returned for this section.", "items": { "$ref": "#/definitions/spotify.CountryHubItem" }, "type": "array" }, "title": { + "description": "Section heading as Spotify shows it.", "example": "Featured Charts", "type": "string" }, "totalCount": { + "description": "Total number of items in the section on Spotify.", "example": 20, "type": "integer" } @@ -179908,18 +189204,22 @@ "spotify.HomeMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:12Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "home", "type": "string" }, "sectionCount": { + "description": "Number of sections returned.", "example": 8, "type": "integer" } @@ -179929,23 +189229,32 @@ "spotify.HomeResponse": { "properties": { "facet": { + "description": "Home page filter that was applied, for example `music`.", "example": "music", "type": "string" }, "greeting": { + "description": "Greeting Spotify shows at the top of the home page, for example `Good afternoon`.", "example": "Good afternoon", "type": "string" }, "meta": { - "$ref": "#/definitions/spotify.HomeMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.HomeMeta" + } + ], + "description": "Details about this response." }, "sections": { + "description": "Home page sections, in display order.", "items": { "$ref": "#/definitions/spotify.BrowsePageSection" }, "type": "array" }, "timeZone": { + "description": "Time zone the home page was personalized for.", "example": "UTC", "type": "string" } @@ -179955,14 +189264,17 @@ "spotify.ImageAsset": { "properties": { "height": { + "description": "Image height in pixels.", "example": 640, "type": "integer" }, "url": { + "description": "URL of the image.", "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" }, "width": { + "description": "Image width in pixels.", "example": 640, "type": "integer" } @@ -179972,26 +189284,32 @@ "spotify.PlaylistMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "episodeCount": { + "description": "Number of episodes among the returned items.", "example": 0, "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:12Z", "type": "string" }, "itemCount": { + "description": "Number of items returned.", "example": 20, "type": "integer" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "fetchPlaylist", "type": "string" }, "trackCount": { + "description": "Number of tracks among the returned items.", "example": 20, "type": "integer" } @@ -180001,84 +189319,111 @@ "spotify.PlaylistResponse": { "properties": { "collaborative": { + "description": "Whether the playlist is collaborative.", "example": false, "type": "boolean" }, "description": { + "description": "Description text of the playlist.", "example": "Your daily update of the most played tracks right now.", "type": "string" }, "episodes": { + "description": "The podcast episode entries among the returned items.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "externalUrl": { + "description": "Link to the playlist on open.spotify.com.", "example": "https://open.spotify.com/playlist/37i9dQZEVXbLwpL8TjsxOG", "type": "string" }, "followers": { + "description": "Number of followers the playlist has.", "example": 17500000, "type": "integer" }, "id": { + "description": "Spotify ID of the playlist.", "example": "37i9dQZEVXbLwpL8TjsxOG", "type": "string" }, "imageUrl": { + "description": "URL of the playlist cover image.", "example": "https://charts-images.scdn.co/assets/locale_en/regional/daily/region_global_default.jpg", "type": "string" }, "images": { + "description": "Cover images available for the playlist, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "items": { + "description": "Tracks and episodes returned from the playlist, in playlist order.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "limit": { + "description": "Maximum number of items requested.", "example": 20, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.PlaylistMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.PlaylistMeta" + } + ], + "description": "Details about this response." }, "name": { + "description": "Playlist title as Spotify shows it.", "example": "Top 50 - Global", "type": "string" }, "offset": { + "description": "Position of the first item returned.", "example": 0, "type": "integer" }, "owner": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "allOf": [ + { + "$ref": "#/definitions/spotify.SearchResultSummary" + } + ], + "description": "User or account that owns the playlist." }, "shareUrl": { + "description": "Link to the playlist that Spotify offers for sharing.", "example": "https://open.spotify.com/playlist/37i9dQZEVXbLwpL8TjsxOG", "type": "string" }, "total": { + "description": "Total number of items in the playlist.", "example": 50, "type": "integer" }, "tracks": { + "description": "The track entries among the returned items.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Playlist`.", "example": "Playlist", "type": "string" }, "uri": { + "description": "Spotify URI of the playlist.", "example": "spotify:playlist:37i9dQZEVXbLwpL8TjsxOG", "type": "string" } @@ -180088,18 +189433,22 @@ "spotify.PodcastEpisodeMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:13Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "getEpisodeOrChapter", "type": "string" }, "sourceUrl": { + "description": "URL the data was read from.", "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", "type": "string" } @@ -180109,48 +189458,59 @@ "spotify.PodcastEpisodeResponse": { "properties": { "description": { + "description": "Plain-text description of the episode.", "example": "A new adventure from the Stinky Dragon crew.", "type": "string" }, "durationMs": { + "description": "Episode length in milliseconds.", "example": 3600000, "type": "integer" }, "externalUrl": { + "description": "Link to the episode on open.spotify.com.", "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, "htmlDescription": { + "description": "Description of the episode with its HTML formatting.", "example": "A new adventure from the Stinky Dragon crew.", "type": "string" }, "id": { + "description": "Spotify ID of the episode.", "example": "2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, "imageUrl": { + "description": "URL of the main cover image for the episode.", "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" }, "images": { + "description": "Cover images available for the episode, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "isExplicit": { + "description": "Whether Spotify marks the episode as explicit.", "example": false, "type": "boolean" }, "isPaywallContent": { + "description": "Whether the episode is paywalled content.", "example": false, "type": "boolean" }, "isPlayable": { + "description": "Whether the episode can be played.", "example": true, "type": "boolean" }, "mediaTypes": { + "description": "Media types the episode is available in, for example `AUDIO`.", "example": [ "AUDIO" ], @@ -180160,21 +189520,30 @@ "type": "array" }, "meta": { - "$ref": "#/definitions/spotify.PodcastEpisodeMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.PodcastEpisodeMeta" + } + ], + "description": "Details about this response." }, "name": { + "description": "Episode title as Spotify shows it.", "example": "Tales from the Stinky Dragon", "type": "string" }, "playabilityReason": { + "description": "Reason code Spotify gives for the episode's playability, for example `PLAYABLE`.", "example": "PLAYABLE", "type": "string" }, "previewAudioUrl": { + "description": "URL of an audio preview of the episode.", "example": "https://p.scdn.co/mp3-preview/example", "type": "string" }, "previewAudioUrls": { + "description": "URLs of the audio previews available for the episode.", "example": [ "https://p.scdn.co/mp3-preview/example" ], @@ -180184,33 +189553,45 @@ "type": "array" }, "previewVideoUrl": { + "description": "URL of a video preview of the episode.", "example": "https://p.scdn.co/video-preview/example", "type": "string" }, "releaseDate": { + "description": "Date the episode was released, as Spotify returns it.", "example": "2026-05-13", "type": "string" }, "releaseDatePrecision": { + "description": "How precise the release date is, for example `DAY`.", "example": "DAY", "type": "string" }, "shareUrl": { + "description": "Link to the episode that Spotify offers for sharing.", "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, "show": { - "$ref": "#/definitions/spotify.PodcastEpisodeShowSummary" + "allOf": [ + { + "$ref": "#/definitions/spotify.PodcastEpisodeShowSummary" + } + ], + "description": "Show the episode belongs to." }, "transcriptCount": { + "description": "Number of transcripts Spotify has for the episode.", "example": 1, "type": "integer" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Episode`.", "example": "Episode", "type": "string" }, "unplayabilityReasons": { + "description": "Reasons the episode cannot be played, such as `not_available_in_region`.", "example": [ "not_available_in_region" ], @@ -180220,14 +189601,17 @@ "type": "array" }, "uri": { + "description": "Spotify URI of the episode.", "example": "spotify:episode:2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, "videoThumbnailUrl": { + "description": "URL of the video thumbnail for the episode.", "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" }, "videoThumbnails": { + "description": "Video thumbnails available for the episode, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, @@ -180239,40 +189623,49 @@ "spotify.PodcastEpisodeShowSummary": { "properties": { "description": { + "description": "Description text of the show.", "example": "Tales from the Stinky Dragon is an actual-play comedy podcast.", "type": "string" }, "externalUrl": { + "description": "Link to the show on open.spotify.com.", "example": "https://open.spotify.com/show/1QQJ7FElLE0K6CIfZNCxU4", "type": "string" }, "id": { + "description": "Spotify ID of the show.", "example": "1QQJ7FElLE0K6CIfZNCxU4", "type": "string" }, "imageUrl": { + "description": "URL of the main cover image for the show.", "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" }, "images": { + "description": "Cover images available for the show, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "mediaType": { + "description": "Kind of media the show carries, for example `MIXED`.", "example": "MIXED", "type": "string" }, "name": { + "description": "Show title as Spotify shows it.", "example": "Tales from the Stinky Dragon", "type": "string" }, "publisher": { + "description": "Name of the show's publisher.", "example": "Stinky Dragon", "type": "string" }, "showTypes": { + "description": "Show type labels Spotify assigns, for example `PODCAST`.", "example": [ "PODCAST" ], @@ -180282,10 +189675,12 @@ "type": "array" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Podcast`.", "example": "Podcast", "type": "string" }, "uri": { + "description": "Spotify URI of the show.", "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", "type": "string" } @@ -180295,48 +189690,59 @@ "spotify.PodcastEpisodeSummary": { "properties": { "description": { + "description": "Description text of the episode.", "example": "A new adventure from the Stinky Dragon crew.", "type": "string" }, "durationMs": { + "description": "Episode length in milliseconds.", "example": 3600000, "type": "integer" }, "externalUrl": { + "description": "Link to the episode on open.spotify.com.", "example": "https://open.spotify.com/episode/2C2Y5kNq7qCVOVhbA0G3os", "type": "string" }, "imageUrl": { + "description": "URL of the main cover image for the episode.", "example": "https://i.scdn.co/image/ab6765630000ba8ab0484f8ee2933eceab32bac0", "type": "string" }, "images": { + "description": "Cover images available for the episode, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "isExplicit": { + "description": "Whether Spotify marks the episode as explicit.", "example": false, "type": "boolean" }, "isPlayable": { + "description": "Whether the episode can be played.", "example": true, "type": "boolean" }, "name": { + "description": "Episode title as Spotify shows it.", "example": "Tales from the Stinky Dragon", "type": "string" }, "releaseDate": { + "description": "Date the episode was released, as Spotify returns it.", "example": "2026-05-13", "type": "string" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Episode`.", "example": "Episode", "type": "string" }, "uri": { + "description": "Spotify URI of the episode.", "example": "spotify:episode:2C2Y5kNq7qCVOVhbA0G3os", "type": "string" } @@ -180346,14 +189752,17 @@ "spotify.PodcastEpisodesMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:13Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "queryPodcastEpisodes", "type": "string" } @@ -180363,27 +189772,37 @@ "spotify.PodcastEpisodesResponse": { "properties": { "episodes": { + "description": "Episodes returned for the show.", "items": { "$ref": "#/definitions/spotify.PodcastEpisodeSummary" }, "type": "array" }, "limit": { + "description": "Maximum number of episodes requested.", "example": 20, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.PodcastEpisodesMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.PodcastEpisodesMeta" + } + ], + "description": "Details about this response." }, "offset": { + "description": "Position of the first episode returned.", "example": 0, "type": "integer" }, "total": { + "description": "Total number of episodes the show has on Spotify.", "example": 202, "type": "integer" }, "uri": { + "description": "Spotify URI of the show whose episodes are listed.", "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", "type": "string" } @@ -180397,6 +189816,7 @@ "type": "string" }, "name": { + "description": "Country name in English.", "example": "United States", "type": "string" } @@ -180406,40 +189826,49 @@ "spotify.RecommendationSummary": { "properties": { "description": { + "description": "Description text of the recommended item.", "example": "The official podcast of comedian Joe Rogan.", "type": "string" }, "externalUrl": { + "description": "Link to the recommended item on open.spotify.com.", "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", "type": "string" }, "imageUrl": { + "description": "URL of the main image for the recommended item.", "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", "type": "string" }, "images": { + "description": "Images available for the recommended item, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "publisher": { + "description": "Publisher or creator name of the recommended item.", "example": "Joe Rogan", "type": "string" }, "subtitle": { + "description": "Secondary line shown under the title, such as the creator name.", "example": "Joe Rogan", "type": "string" }, "title": { + "description": "Title of the recommended item as Spotify shows it.", "example": "The Joe Rogan Experience", "type": "string" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Podcast`.", "example": "Podcast", "type": "string" }, "uri": { + "description": "Spotify URI of the recommended item.", "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", "type": "string" } @@ -180449,54 +189878,67 @@ "spotify.SearchMeta": { "properties": { "albumCount": { + "description": "Number of albums returned.", "example": 3, "type": "integer" }, "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "artistCount": { + "description": "Number of artists returned.", "example": 5, "type": "integer" }, "audiobookCount": { + "description": "Number of audiobooks returned.", "example": 2, "type": "integer" }, "episodeCount": { + "description": "Number of episodes returned.", "example": 2, "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:12Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "searchDesktop", "type": "string" }, "playlistCount": { + "description": "Number of playlists returned.", "example": 2, "type": "integer" }, "resultCount": { + "description": "Total number of results returned.", "example": 22, "type": "integer" }, "showCount": { + "description": "Number of shows returned.", "example": 4, "type": "integer" }, "topCount": { + "description": "Number of top results returned.", "example": 3, "type": "integer" }, "trackCount": { + "description": "Number of tracks returned.", "example": 2, "type": "integer" }, "userCount": { + "description": "Number of user profiles returned.", "example": 2, "type": "integer" } @@ -180506,26 +189948,32 @@ "spotify.SearchPodcastsMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "episodeCount": { + "description": "Number of episodes returned.", "example": 2, "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:12Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "searchPodcasts", "type": "string" }, "showCount": { + "description": "Number of shows returned.", "example": 4, "type": "integer" }, "topCount": { + "description": "Number of top results returned.", "example": 3, "type": "integer" } @@ -180535,33 +189983,44 @@ "spotify.SearchPodcastsResponse": { "properties": { "episodes": { + "description": "Podcast episodes that matched the search term.", "items": { "$ref": "#/definitions/spotify.PodcastEpisodeSummary" }, "type": "array" }, "limit": { + "description": "Maximum number of results requested per section.", "example": 20, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.SearchPodcastsMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.SearchPodcastsMeta" + } + ], + "description": "Details about this response." }, "offset": { + "description": "Position of the first result returned.", "example": 0, "type": "integer" }, "searchTerm": { + "description": "Search term that was run.", "example": "hello", "type": "string" }, "shows": { + "description": "Podcast shows that matched the search term.", "items": { "$ref": "#/definitions/spotify.RecommendationSummary" }, "type": "array" }, "topResults": { + "description": "Best matches across all result types.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, @@ -180573,75 +190032,93 @@ "spotify.SearchResponse": { "properties": { "albums": { + "description": "Albums that matched the search term.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "artists": { + "description": "Artists that matched the search term.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "audiobooks": { + "description": "Audiobooks that matched the search term.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "episodes": { + "description": "Podcast episodes that matched the search term.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "limit": { + "description": "Maximum number of results requested per section.", "example": 20, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.SearchMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.SearchMeta" + } + ], + "description": "Details about this response." }, "offset": { + "description": "Position of the first result returned.", "example": 0, "type": "integer" }, "playlists": { + "description": "Playlists that matched the search term.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "results": { + "description": "All results found, across every type.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "searchTerm": { + "description": "Search term that was run.", "example": "hello", "type": "string" }, "shows": { + "description": "Podcast shows that matched the search term.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "topResults": { + "description": "Best matches across all result types.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "tracks": { + "description": "Tracks that matched the search term.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "users": { + "description": "User profiles that matched the search term.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, @@ -180653,40 +190130,49 @@ "spotify.SearchResultSummary": { "properties": { "description": { + "description": "Description text of the result.", "example": "The official podcast of comedian Joe Rogan.", "type": "string" }, "externalUrl": { + "description": "Link to the result on open.spotify.com.", "example": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk", "type": "string" }, "imageUrl": { + "description": "URL of the main image for the result.", "example": "https://i.scdn.co/image/ab67656300005f1f54e6837957803d762a3f4d2b", "type": "string" }, "images": { + "description": "Images available for the result, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "publisher": { + "description": "Publisher or creator name of the result.", "example": "Joe Rogan", "type": "string" }, "subtitle": { + "description": "Secondary line shown under the title, such as the artist or creator name.", "example": "Joe Rogan", "type": "string" }, "title": { + "description": "Result title as Spotify shows it.", "example": "The Joe Rogan Experience", "type": "string" }, "type": { + "description": "Kind of result as Spotify labels it, for example `Podcast`.", "example": "Podcast", "type": "string" }, "uri": { + "description": "Spotify URI of the result.", "example": "spotify:show:4rOoJ6Egrf8K2IrywzwOMk", "type": "string" } @@ -180767,18 +190253,22 @@ "spotify.ShowRecommendationsMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "count": { + "description": "Number of recommendations returned.", "example": 10, "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:13Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "internalLinkRecommenderShow", "type": "string" } @@ -180788,15 +190278,22 @@ "spotify.ShowRecommendationsResponse": { "properties": { "meta": { - "$ref": "#/definitions/spotify.ShowRecommendationsMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.ShowRecommendationsMeta" + } + ], + "description": "Details about this response." }, "recommendations": { + "description": "Related shows and episodes Spotify suggests.", "items": { "$ref": "#/definitions/spotify.RecommendationSummary" }, "type": "array" }, "uri": { + "description": "Spotify URI of the show the recommendations are for.", "example": "spotify:show:1QQJ7FElLE0K6CIfZNCxU4", "type": "string" } @@ -180806,14 +190303,17 @@ "spotify.TrackMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:10Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "getTrack", "type": "string" } @@ -180823,18 +190323,22 @@ "spotify.TrackRecommendedMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "count": { + "description": "Number of recommendations returned.", "example": 10, "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:12Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "internalLinkRecommenderTrack", "type": "string" } @@ -180844,19 +190348,27 @@ "spotify.TrackRecommendedResponse": { "properties": { "limit": { + "description": "Maximum number of recommendations requested.", "example": 10, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.TrackRecommendedMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.TrackRecommendedMeta" + } + ], + "description": "Details about this response." }, "recommendations": { + "description": "Items Spotify recommends for the track.", "items": { "$ref": "#/definitions/spotify.RecommendationSummary" }, "type": "array" }, "uri": { + "description": "Spotify URI of the track the recommendations are for.", "example": "spotify:track:4vGg44GdCw3X8i8r01XJH0", "type": "string" } @@ -180866,68 +190378,92 @@ "spotify.TrackResponse": { "properties": { "album": { - "$ref": "#/definitions/spotify.SearchResultSummary" + "allOf": [ + { + "$ref": "#/definitions/spotify.SearchResultSummary" + } + ], + "description": "Album the track appears on." }, "artists": { + "description": "Artists credited on the track.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "discNumber": { + "description": "Disc number of the track within its album.", "example": 1, "type": "integer" }, "durationMs": { + "description": "Track length in milliseconds.", "example": 234083, "type": "integer" }, "externalUrl": { + "description": "Link to the track on open.spotify.com.", "example": "https://open.spotify.com/track/4vGg44GdCw3X8i8r01XJH0", "type": "string" }, "id": { + "description": "Spotify ID of the track.", "example": "4vGg44GdCw3X8i8r01XJH0", "type": "string" }, "imageUrl": { + "description": "URL of the track's cover image.", "example": "https://i.scdn.co/image/ab67616d0000b273f377730d2a9c2e432139ac79", "type": "string" }, "images": { + "description": "Cover images available for the track, with their sizes.", "items": { "$ref": "#/definitions/spotify.ImageAsset" }, "type": "array" }, "isExplicit": { + "description": "Whether Spotify marks the track as explicit.", "example": false, "type": "boolean" }, "isPlayable": { + "description": "Whether the track can be played.", "example": true, "type": "boolean" }, "meta": { - "$ref": "#/definitions/spotify.TrackMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.TrackMeta" + } + ], + "description": "Details about this response." }, "name": { + "description": "Track title as Spotify shows it.", "example": "Example Track", "type": "string" }, "playabilityReason": { + "description": "Reason code Spotify gives for the track's playability, for example `PLAYABLE`.", "example": "PLAYABLE", "type": "string" }, "playcount": { + "description": "Number of times the track has been played, as Spotify shows it.", "example": "13129249", "type": "string" }, "previewAudioUrl": { + "description": "URL of an audio preview of the track.", "example": "https://p.scdn.co/mp3-preview/example", "type": "string" }, "previewAudioUrls": { + "description": "URLs of the audio previews available for the track.", "example": [ "https://p.scdn.co/mp3-preview/example" ], @@ -180937,18 +190473,22 @@ "type": "array" }, "shareUrl": { + "description": "Link to the track that Spotify offers for sharing.", "example": "https://open.spotify.com/track/4vGg44GdCw3X8i8r01XJH0", "type": "string" }, "trackNumber": { + "description": "Position of the track within its album.", "example": 7, "type": "integer" }, "type": { + "description": "Kind of item as Spotify labels it, for example `Track`.", "example": "Track", "type": "string" }, "unplayabilityReasons": { + "description": "Reasons the track cannot be played, such as `not_available_in_region`.", "example": [ "not_available_in_region" ], @@ -180958,6 +190498,7 @@ "type": "array" }, "uri": { + "description": "Spotify URI of the track.", "example": "spotify:track:4vGg44GdCw3X8i8r01XJH0", "type": "string" } @@ -180967,18 +190508,22 @@ "spotify.TrackSimilarAlbumsMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "count": { + "description": "Number of albums returned.", "example": 10, "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:12Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "similarAlbumsBasedOnThisTrack", "type": "string" } @@ -180988,23 +190533,32 @@ "spotify.TrackSimilarAlbumsResponse": { "properties": { "albums": { + "description": "Albums Spotify suggests as similar to the track.", "items": { "$ref": "#/definitions/spotify.SearchResultSummary" }, "type": "array" }, "albumsOnly": { + "description": "Whether only album recommendations were requested.", "example": true, "type": "boolean" }, "limit": { + "description": "Maximum number of albums requested.", "example": 10, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.TrackSimilarAlbumsMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.TrackSimilarAlbumsMeta" + } + ], + "description": "Details about this response." }, "uri": { + "description": "Spotify URI of the track the albums are similar to.", "example": "spotify:track:4vGg44GdCw3X8i8r01XJH0", "type": "string" } @@ -181014,31 +190568,42 @@ "spotify.UserProfileFollowersResponse": { "properties": { "limit": { + "description": "Maximum number of followers requested.", "example": 50, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.UserProfileMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.UserProfileMeta" + } + ], + "description": "Details about this response." }, "offset": { + "description": "Position of the first follower returned.", "example": 0, "type": "integer" }, "profiles": { + "description": "Follower profiles returned.", "items": { "$ref": "#/definitions/spotify.UserProfileSummary" }, "type": "array" }, "total": { + "description": "Total number of followers the user has.", "example": 998, "type": "integer" }, "uri": { + "description": "Spotify URI of the user.", "example": "spotify:user:spotify", "type": "string" }, "username": { + "description": "Spotify username of the user.", "example": "spotify", "type": "string" } @@ -181048,26 +190613,32 @@ "spotify.UserProfileMeta": { "properties": { "appVersion": { + "description": "Version of the Spotify web player the data was read from.", "example": "1.2.90.403.gf901f20f", "type": "string" }, "artistCount": { + "description": "Number of recently played artists returned.", "example": 0, "type": "integer" }, "fetchedAt": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-05-13T20:41:12Z", "type": "string" }, "operationName": { + "description": "Name of the Spotify web player operation that returned the data.", "example": "userProfileView", "type": "string" }, "playlistCount": { + "description": "Number of playlists returned.", "example": 10, "type": "integer" }, "profileCount": { + "description": "Number of user profiles returned.", "example": 50, "type": "integer" } @@ -181077,46 +190648,57 @@ "spotify.UserProfilePlaylist": { "properties": { "externalUrl": { + "description": "Link to the playlist on open.spotify.com.", "example": "https://open.spotify.com/playlist/37i9dQZF1DXcBWIGoYBM5M", "type": "string" }, "followersCount": { + "description": "Number of followers the playlist has.", "example": 34324513, "type": "integer" }, "id": { + "description": "Spotify ID of the playlist.", "example": "37i9dQZF1DXcBWIGoYBM5M", "type": "string" }, "imageUrl": { + "description": "URL of the playlist cover image.", "example": "https://i.scdn.co/image/ab67706f0000000273f7bb6e77ec5e23d7840ae5", "type": "string" }, "isFollowing": { + "description": "Whether Spotify marks the playlist as followed.", "example": false, "type": "boolean" }, "name": { + "description": "Playlist title as Spotify shows it.", "example": "Today’s Top Hits", "type": "string" }, "ownerName": { + "description": "Display name of the playlist owner.", "example": "Spotify", "type": "string" }, "ownerUri": { + "description": "Spotify URI of the playlist owner.", "example": "spotify:user:spotify", "type": "string" }, "ownerUrl": { + "description": "Link to the playlist owner's profile on open.spotify.com.", "example": "https://open.spotify.com/user/spotify", "type": "string" }, "ownerUsername": { + "description": "Spotify username of the playlist owner.", "example": "spotify", "type": "string" }, "uri": { + "description": "Spotify URI of the playlist.", "example": "spotify:playlist:37i9dQZF1DXcBWIGoYBM5M", "type": "string" } @@ -181126,31 +190708,42 @@ "spotify.UserProfilePlaylistsResponse": { "properties": { "limit": { + "description": "Maximum number of playlists requested.", "example": 20, "type": "integer" }, "meta": { - "$ref": "#/definitions/spotify.UserProfileMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.UserProfileMeta" + } + ], + "description": "Details about this response." }, "offset": { + "description": "Position of the first playlist returned.", "example": 0, "type": "integer" }, "publicPlaylists": { + "description": "Public playlists of the user.", "items": { "$ref": "#/definitions/spotify.UserProfilePlaylist" }, "type": "array" }, "totalPublicPlaylistsCount": { + "description": "Total number of public playlists the user has.", "example": 1519, "type": "integer" }, "uri": { + "description": "Spotify URI of the user.", "example": "spotify:user:spotify", "type": "string" }, "username": { + "description": "Spotify username of the user.", "example": "spotify", "type": "string" } @@ -181160,80 +190753,107 @@ "spotify.UserProfileResponse": { "properties": { "allowFollows": { + "description": "Whether the profile allows other users to follow it.", "example": true, "type": "boolean" }, "color": { + "description": "Accent color of the profile, as a number.", "example": 16085920, "type": "integer" }, "externalUrl": { + "description": "Link to the user's profile on open.spotify.com.", "example": "https://open.spotify.com/user/spotify", "type": "string" }, "followersCount": { + "description": "Number of followers the user has.", "example": 12162371, "type": "integer" }, "followingCount": { + "description": "Number of accounts the user follows.", "example": 327, "type": "integer" }, "hasSpotifyImage": { + "description": "Whether the profile has an image set on Spotify.", "example": true, "type": "boolean" }, "hasSpotifyName": { + "description": "Whether the profile has a display name set on Spotify.", "example": true, "type": "boolean" }, "imageUrl": { + "description": "URL of the user's profile image.", "example": "https://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5", "type": "string" }, "isCurrentUser": { + "description": "Whether Spotify marks the profile as the current user's own.", "example": false, "type": "boolean" }, "isVerified": { + "description": "Whether Spotify shows the profile as verified.", "example": true, "type": "boolean" }, "meta": { - "$ref": "#/definitions/spotify.UserProfileMeta" + "allOf": [ + { + "$ref": "#/definitions/spotify.UserProfileMeta" + } + ], + "description": "Details about this response." }, "name": { + "description": "Display name of the user.", "example": "Spotify", "type": "string" }, "publicPlaylists": { + "description": "Public playlists of the user.", "items": { "$ref": "#/definitions/spotify.UserProfilePlaylist" }, "type": "array" }, "recentlyPlayedArtists": { + "description": "Artists the user played recently.", "items": { "$ref": "#/definitions/spotify.UserProfileSummary" }, "type": "array" }, "showFollows": { + "description": "Whether Spotify shows the profile's follows publicly.", "example": true, "type": "boolean" }, "topArtists": { - "$ref": "#/definitions/spotify.UserProfileTopArtists" + "allOf": [ + { + "$ref": "#/definitions/spotify.UserProfileTopArtists" + } + ], + "description": "Top artists section of the profile." }, "totalPublicPlaylistsCount": { + "description": "Total number of public playlists the user has.", "example": 1519, "type": "integer" }, "uri": { + "description": "Spotify URI of the user.", "example": "spotify:user:spotify", "type": "string" }, "username": { + "description": "Spotify username of the user.", "example": "spotify", "type": "string" } @@ -181243,34 +190863,42 @@ "spotify.UserProfileSummary": { "properties": { "color": { + "description": "Accent color of the profile, as a number.", "example": 16085920, "type": "integer" }, "externalUrl": { + "description": "Link to the user's profile on open.spotify.com.", "example": "https://open.spotify.com/user/example", "type": "string" }, "followersCount": { + "description": "Number of followers the user has.", "example": 1000, "type": "integer" }, "imageUrl": { + "description": "URL of the user's profile image.", "example": "https://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5", "type": "string" }, "isFollowing": { + "description": "Whether Spotify marks the user as followed.", "example": false, "type": "boolean" }, "name": { + "description": "Display name of the user.", "example": "Example", "type": "string" }, "uri": { + "description": "Spotify URI of the user.", "example": "spotify:user:example", "type": "string" }, "username": { + "description": "Spotify username of the user.", "example": "example", "type": "string" } @@ -181280,18 +190908,22 @@ "spotify.UserProfileTopArtists": { "properties": { "imageUrl": { + "description": "URL of the image shown for the section.", "example": "https://i.scdn.co/image/ab6775700000ee8555c25988a6ac314394d3fbf5", "type": "string" }, "subtitle": { + "description": "Secondary line shown under the section heading.", "example": "Only visible to the user", "type": "string" }, "title": { + "description": "Heading of the top artists section, as Spotify shows it.", "example": "Top artists this month", "type": "string" }, "topArtistsPageUri": { + "description": "Spotify URI of the page that lists the user's top artists.", "example": "spotify:user:spotify:top:artists", "type": "string" } @@ -182382,18 +192014,22 @@ "steam.AchievementsResponse": { "properties": { "achievements": { + "description": "Achievements of the app with their global unlock percentage, most unlocked first.", "items": { "$ref": "#/definitions/steam.GlobalAchievement" }, "type": "array" }, "appid": { + "description": "Steam app id the achievements belong to.", "type": "string" }, "count": { + "description": "Number of achievements returned.", "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -182402,18 +192038,23 @@ "steam.AppDetails": { "properties": { "achievements_total": { + "description": "Total number of achievements the app has.", "type": "integer" }, "appid": { + "description": "Steam app id.", "type": "integer" }, "background": { + "description": "URL of the background image on the store page.", "type": "string" }, "capsule_image": { + "description": "URL of the capsule image used on store listings.", "type": "string" }, "categories": { + "description": "Steam store categories assigned to the app, each with an id and a name.", "items": { "$ref": "#/definitions/steam.IDName" }, @@ -182427,84 +192068,122 @@ "type": "array" }, "controller_support": { + "description": "Level of controller support Steam lists for the app.", "type": "string" }, "developers": { + "description": "Names of the developers of the app.", "items": { "type": "string" }, "type": "array" }, "dlc": { + "description": "Steam app ids of the downloadable content for the app.", "items": { "type": "integer" }, "type": "array" }, "genres": { + "description": "Genres assigned to the app, each with an id and a name.", "items": { "$ref": "#/definitions/steam.IDName" }, "type": "array" }, "header_image": { + "description": "URL of the header image on the store page.", "type": "string" }, "is_free": { + "description": "Whether the app is free to play or free to own.", "type": "boolean" }, "metacritic": { - "$ref": "#/definitions/steam.Metacritic" + "allOf": [ + { + "$ref": "#/definitions/steam.Metacritic" + } + ], + "description": "Metacritic score and link for the app. Omitted when the store shows none." }, "movies": { + "description": "Number of videos on the store page.", "type": "integer" }, "name": { + "description": "Name of the app on the Steam store.", "type": "string" }, "packages": { + "description": "Ids of the Steam packages that include the app. Use them with the package endpoint.", "items": { "type": "integer" }, "type": "array" }, "platforms": { - "$ref": "#/definitions/steam.Platforms" + "allOf": [ + { + "$ref": "#/definitions/steam.Platforms" + } + ], + "description": "Operating systems the app supports." }, "price_overview": { - "$ref": "#/definitions/steam.Price" + "allOf": [ + { + "$ref": "#/definitions/steam.Price" + } + ], + "description": "Current price of the app. Omitted when the store shows no price." }, "publishers": { + "description": "Names of the publishers of the app.", "items": { "type": "string" }, "type": "array" }, "recommendations": { + "description": "Total number of user recommendations the app has on Steam.", "type": "integer" }, "release_date": { - "$ref": "#/definitions/steam.AppRelease" + "allOf": [ + { + "$ref": "#/definitions/steam.AppRelease" + } + ], + "description": "Release information of the app." }, "required_age": { + "description": "Minimum age in years that Steam requires to view the app.", "type": "integer" }, "screenshots": { + "description": "Number of screenshots on the store page.", "type": "integer" }, "short_description": { + "description": "Short description of the app from the store page, as plain text.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "supported_languages": { + "description": "Languages the app supports, as listed on the store page.", "type": "string" }, "type": { + "description": "Kind of store item, such as `game`.", "type": "string" }, "website": { + "description": "URL of the app's official website.", "type": "string" } }, @@ -182513,9 +192192,11 @@ "steam.AppRelease": { "properties": { "coming_soon": { + "description": "Whether the app has not been released yet.", "type": "boolean" }, "date": { + "description": "Release date as the store displays it.", "type": "string" } }, @@ -182713,18 +192394,22 @@ "steam.FeaturedBucket": { "properties": { "count": { + "description": "Number of items in the bucket.", "type": "integer" }, "id": { + "description": "Id of the bucket, as Steam names it.", "type": "string" }, "items": { + "description": "Items in the bucket.", "items": { "$ref": "#/definitions/steam.FeaturedItem" }, "type": "array" }, "name": { + "description": "Display name of the bucket.", "type": "string" } }, @@ -182733,19 +192418,40 @@ "steam.FeaturedCategoriesResponse": { "properties": { "coming_soon": { - "$ref": "#/definitions/steam.FeaturedBucket" + "allOf": [ + { + "$ref": "#/definitions/steam.FeaturedBucket" + } + ], + "description": "Bucket of upcoming releases." }, "new_releases": { - "$ref": "#/definitions/steam.FeaturedBucket" + "allOf": [ + { + "$ref": "#/definitions/steam.FeaturedBucket" + } + ], + "description": "Bucket of new releases." }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "specials": { - "$ref": "#/definitions/steam.FeaturedBucket" + "allOf": [ + { + "$ref": "#/definitions/steam.FeaturedBucket" + } + ], + "description": "Bucket of items currently on special offer." }, "top_sellers": { - "$ref": "#/definitions/steam.FeaturedBucket" + "allOf": [ + { + "$ref": "#/definitions/steam.FeaturedBucket" + } + ], + "description": "Bucket of the store's top-selling items." } }, "type": "object" @@ -182753,39 +192459,51 @@ "steam.FeaturedItem": { "properties": { "currency": { + "description": "Currency code of the prices, such as `USD`.", "type": "string" }, "discount_percent": { + "description": "Discount currently applied, as a percentage.", "type": "integer" }, "discounted": { + "description": "Whether the item is currently discounted.", "type": "boolean" }, "final_price": { + "description": "Price after any discount, in minor currency units such as cents.", "type": "integer" }, "header_image": { + "description": "URL of the item's header image.", "type": "string" }, "id": { + "description": "Steam id of the featured item.", "type": "integer" }, "linux_available": { + "description": "Whether the item is available on Linux.", "type": "boolean" }, "mac_available": { + "description": "Whether the item is available on macOS.", "type": "boolean" }, "name": { + "description": "Name of the featured item.", "type": "string" }, "original_price": { + "description": "Price before any discount, in minor currency units such as cents.", "type": "integer" }, "type": { + "description": "Numeric type code Steam gives the featured item.", "type": "integer" }, "windows_available": { + "description": "Whether the item is available on Windows.", "type": "boolean" } }, @@ -182794,30 +192512,35 @@ "steam.FeaturedResponse": { "properties": { "featured_linux": { + "description": "Items featured for Linux players.", "items": { "$ref": "#/definitions/steam.FeaturedItem" }, "type": "array" }, "featured_mac": { + "description": "Items featured for macOS players.", "items": { "$ref": "#/definitions/steam.FeaturedItem" }, "type": "array" }, "featured_win": { + "description": "Items featured for Windows players.", "items": { "$ref": "#/definitions/steam.FeaturedItem" }, "type": "array" }, "large_capsules": { + "description": "Large spotlight capsules shown on the store front page.", "items": { "$ref": "#/definitions/steam.FeaturedItem" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -182826,9 +192549,11 @@ "steam.GlobalAchievement": { "properties": { "name": { + "description": "Achievement identifier as Steam lists it, such as `TF_PLAY_GAME_EVERYCLASS`.", "type": "string" }, "percent": { + "description": "Percentage of all players who have unlocked the achievement.", "type": "number" } }, @@ -182837,12 +192562,15 @@ "steam.HistogramBucket": { "properties": { "date": { + "description": "Start of the bucket, in Unix seconds.", "type": "integer" }, "recommendations_down": { + "description": "Number of negative recommendations in the bucket.", "type": "integer" }, "recommendations_up": { + "description": "Number of positive recommendations in the bucket.", "type": "integer" } }, @@ -182851,9 +192579,11 @@ "steam.IDName": { "properties": { "description": { + "description": "Display name of the item, such as a category, genre or app name.", "type": "string" }, "id": { + "description": "Id of the item.", "type": "string" } }, @@ -182879,9 +192609,11 @@ "steam.Metacritic": { "properties": { "score": { + "description": "Metacritic score of the app, out of 100.", "type": "integer" }, "url": { + "description": "URL of the app's page on Metacritic.", "type": "string" } }, @@ -182890,36 +192622,46 @@ "steam.NewsItem": { "properties": { "author": { + "description": "Name of the post's author.", "type": "string" }, "contents": { + "description": "Body text of the post, shortened to the requested maximum length.", "type": "string" }, "date": { + "description": "Time the post was published, in Unix seconds.", "type": "integer" }, "feedlabel": { + "description": "Label of the news feed the post came from, such as `Community Announcements`.", "type": "string" }, "feedname": { + "description": "Name of the news feed the post came from, such as `steam_community_announcements`.", "type": "string" }, "gid": { + "description": "Unique id of the news post.", "type": "string" }, "is_external_url": { + "description": "Whether Steam flags the post's `url` as an external link.", "type": "boolean" }, "tags": { + "description": "Tags Steam attaches to the post, such as `patchnotes`.", "items": { "type": "string" }, "type": "array" }, "title": { + "description": "Headline of the news post.", "type": "string" }, "url": { + "description": "URL of the news post.", "type": "string" } }, @@ -182928,18 +192670,22 @@ "steam.NewsResponse": { "properties": { "appid": { + "description": "Steam app id the news belongs to.", "type": "string" }, "count": { + "description": "Number of news posts returned.", "type": "integer" }, "items": { + "description": "News posts for the app.", "items": { "$ref": "#/definitions/steam.NewsItem" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -182948,30 +192694,50 @@ "steam.PackageDetails": { "properties": { "apps": { + "description": "Apps included in the package. Each item has the app id in `id` and the app name in `description`.", "items": { "$ref": "#/definitions/steam.IDName" }, "type": "array" }, "header_image": { + "description": "URL of the package's header image.", "type": "string" }, "name": { + "description": "Name of the package.", "type": "string" }, "packageid": { + "description": "Steam package id.", "type": "integer" }, "platforms": { - "$ref": "#/definitions/steam.Platforms" + "allOf": [ + { + "$ref": "#/definitions/steam.Platforms" + } + ], + "description": "Operating systems the package supports." }, "price": { - "$ref": "#/definitions/steam.PackagePrice" + "allOf": [ + { + "$ref": "#/definitions/steam.PackagePrice" + } + ], + "description": "Current price of the package. Omitted when the store shows no price." }, "release_date": { - "$ref": "#/definitions/steam.AppRelease" + "allOf": [ + { + "$ref": "#/definitions/steam.AppRelease" + } + ], + "description": "Release information of the package." }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -182980,18 +192746,23 @@ "steam.PackagePrice": { "properties": { "currency": { + "description": "Currency code of the prices, such as `USD`.", "type": "string" }, "discount_percent": { + "description": "Discount currently applied, as a percentage.", "type": "integer" }, "final": { + "description": "Price after any discount, in minor currency units such as cents.", "type": "integer" }, "individual": { + "description": "Price of the apps in the package bought individually, in minor currency units such as cents.", "type": "integer" }, "initial": { + "description": "Price before any discount, in minor currency units such as cents.", "type": "integer" } }, @@ -183000,12 +192771,15 @@ "steam.Platforms": { "properties": { "linux": { + "description": "Whether the title supports Linux.", "type": "boolean" }, "mac": { + "description": "Whether the title supports macOS.", "type": "boolean" }, "windows": { + "description": "Whether the title supports Windows.", "type": "boolean" } }, @@ -183014,12 +192788,15 @@ "steam.PlayersResponse": { "properties": { "appid": { + "description": "Steam app id the count belongs to.", "type": "string" }, "player_count": { + "description": "Number of players currently in the app.", "type": "integer" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -183028,21 +192805,27 @@ "steam.Price": { "properties": { "currency": { + "description": "Currency code of the prices, such as `USD`.", "type": "string" }, "discount_percent": { + "description": "Discount currently applied, as a percentage.", "type": "integer" }, "final": { + "description": "Price after any discount, in minor currency units such as cents.", "type": "integer" }, "final_formatted": { + "description": "Price after any discount, formatted for display as Steam shows it.", "type": "string" }, "initial": { + "description": "Price before any discount, in minor currency units such as cents.", "type": "integer" }, "initial_formatted": { + "description": "Price before any discount, formatted for display as Steam shows it.", "type": "string" } }, @@ -183051,45 +192834,63 @@ "steam.Review": { "properties": { "author": { - "$ref": "#/definitions/steam.ReviewAuthor" + "allOf": [ + { + "$ref": "#/definitions/steam.ReviewAuthor" + } + ], + "description": "Author of the review." }, "comment_count": { + "description": "Number of comments on the review.", "type": "integer" }, "language": { + "description": "Language the review is written in, as a Steam language name such as `english`.", "type": "string" }, "received_for_free": { + "description": "Whether the author received the game for free.", "type": "boolean" }, "recommendation_id": { + "description": "Steam id of the review.", "type": "string" }, "review": { + "description": "Full text of the review.", "type": "string" }, "steam_purchase": { + "description": "Whether the author bought the game on Steam.", "type": "boolean" }, "timestamp_created": { + "description": "Time the review was posted, in Unix seconds.", "type": "integer" }, "timestamp_updated": { + "description": "Time the review was last edited, in Unix seconds.", "type": "integer" }, "voted_up": { + "description": "Whether the review recommends the game.", "type": "boolean" }, "votes_funny": { + "description": "Number of votes marking the review as funny.", "type": "integer" }, "votes_up": { + "description": "Number of votes marking the review as helpful.", "type": "integer" }, "weighted_vote_score": { + "description": "Helpfulness score Steam gives the review, returned as a string such as `0.5`.", "type": "string" }, "written_during_early_access": { + "description": "Whether the review was written while the game was in Early Access.", "type": "boolean" } }, @@ -183098,24 +192899,31 @@ "steam.ReviewAuthor": { "properties": { "last_played": { + "description": "Time the author last played the game.", "type": "integer" }, "num_games_owned": { + "description": "Number of games the author owns on Steam.", "type": "integer" }, "num_reviews": { + "description": "Number of reviews the author has written on Steam.", "type": "integer" }, "playtime_at_review": { + "description": "Author's playtime in the game when the review was written, in minutes.", "type": "integer" }, "playtime_forever": { + "description": "Author's total playtime in the game, in minutes.", "type": "integer" }, "playtime_last_two_weeks": { + "description": "Author's playtime in the game over the last two weeks, in minutes.", "type": "integer" }, "steamid": { + "description": "Steam id of the review author.", "type": "string" } }, @@ -183124,21 +192932,27 @@ "steam.ReviewSummary": { "properties": { "num_reviews": { + "description": "Number of reviews returned in this response.", "type": "integer" }, "review_score": { + "description": "Numeric review score Steam gives the app. Set on the first page only.", "type": "integer" }, "review_score_desc": { + "description": "Review rating label, such as `Very Positive`. Set on the first page only.", "type": "string" }, "total_negative": { + "description": "Total number of negative reviews. Set on the first page only.", "type": "integer" }, "total_positive": { + "description": "Total number of positive reviews. Set on the first page only.", "type": "integer" }, "total_reviews": { + "description": "Total number of reviews. Set on the first page only.", "type": "integer" } }, @@ -183147,33 +192961,41 @@ "steam.ReviewsHistogramResponse": { "properties": { "appid": { + "description": "Steam app id the histogram belongs to.", "type": "string" }, "count_all_reviews": { + "description": "Total number of reviews counted for the histogram.", "type": "integer" }, "end_date": { + "description": "End of the period the histogram covers, in Unix seconds.", "type": "integer" }, "recent": { + "description": "Daily buckets of recommendations for the most recent period.", "items": { "$ref": "#/definitions/steam.HistogramBucket" }, "type": "array" }, "rollup_type": { + "description": "Size of each bucket in `rollups`, such as `week`.", "type": "string" }, "rollups": { + "description": "Weekly or monthly buckets of recommendations covering the whole period.", "items": { "$ref": "#/definitions/steam.HistogramBucket" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "start_date": { + "description": "Start of the period the histogram covers, in Unix seconds.", "type": "integer" } }, @@ -183182,24 +193004,34 @@ "steam.ReviewsResponse": { "properties": { "appid": { + "description": "Steam app id the reviews belong to.", "type": "string" }, "count": { + "description": "Number of reviews returned.", "type": "integer" }, "cursor": { + "description": "Cursor to pass back to fetch the next page of reviews.", "type": "string" }, "query_summary": { - "$ref": "#/definitions/steam.ReviewSummary" + "allOf": [ + { + "$ref": "#/definitions/steam.ReviewSummary" + } + ], + "description": "Review totals and score for the query." }, "reviews": { + "description": "Reviews on this page.", "items": { "$ref": "#/definitions/steam.Review" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -183208,30 +193040,47 @@ "steam.SearchItem": { "properties": { "controller_support": { + "description": "Level of controller support Steam lists for the item.", "type": "string" }, "id": { + "description": "Steam id of the result. Use it with the app endpoint when `type` is `app`.", "type": "integer" }, "metascore": { + "description": "Metacritic score of the item, returned as a string such as `90`.", "type": "string" }, "name": { + "description": "Name of the item on the Steam store.", "type": "string" }, "platforms": { - "$ref": "#/definitions/steam.Platforms" + "allOf": [ + { + "$ref": "#/definitions/steam.Platforms" + } + ], + "description": "Operating systems the item supports." }, "price": { - "$ref": "#/definitions/steam.Price" + "allOf": [ + { + "$ref": "#/definitions/steam.Price" + } + ], + "description": "Current price of the item. Omitted when the store shows no price." }, "streamingvideo": { + "description": "Whether Steam marks the item as streaming video.", "type": "boolean" }, "tiny_image": { + "description": "URL of a small image of the item.", "type": "string" }, "type": { + "description": "Kind of result, such as `app`.", "type": "string" } }, @@ -183240,21 +193089,26 @@ "steam.SearchResponse": { "properties": { "count": { + "description": "Number of results returned.", "type": "integer" }, "items": { + "description": "Store items matching the search term.", "items": { "$ref": "#/definitions/steam.SearchItem" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "term": { + "description": "Search term that was used.", "type": "string" }, "total": { + "description": "Total number of matches Steam reports for the term.", "type": "integer" } }, @@ -183263,39 +193117,54 @@ "steam.SearchResultRow": { "properties": { "appid": { + "description": "Steam app id of the row, when the row is an app.", "type": "string" }, "bundleid": { + "description": "Steam bundle id of the row, when the row is a bundle.", "type": "string" }, "discount_pct": { + "description": "Discount shown on the row, as text.", "type": "string" }, "name": { + "description": "Name of the item on the Steam store.", "type": "string" }, "packageid": { + "description": "Steam package id of the row, when the row is a package.", "type": "string" }, "platforms": { - "$ref": "#/definitions/steam.Platforms" + "allOf": [ + { + "$ref": "#/definitions/steam.Platforms" + } + ], + "description": "Operating systems the item supports." }, "price": { + "description": "Price shown on the row, as text.", "type": "string" }, "release_date": { + "description": "Release date shown on the row, such as `20 Oct, 2022`.", "type": "string" }, "review_summary": { + "description": "Review rating label shown on the row, such as `Overwhelmingly Positive`.", "type": "string" }, "tag_ids": { + "description": "Ids of the item's most-weighted community tags. Resolve their names with the tags list endpoint.", "items": { "type": "integer" }, "type": "array" }, "url": { + "description": "URL of the item's store page.", "type": "string" } }, @@ -183304,24 +193173,30 @@ "steam.SearchResultsResponse": { "properties": { "count": { + "description": "Number of rows returned.", "type": "integer" }, "results": { + "description": "Rows of the store search results on this page.", "items": { "$ref": "#/definitions/steam.SearchResultRow" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "start": { + "description": "Offset of the first row returned.", "type": "integer" }, "term": { + "description": "Search term that was used.", "type": "string" }, "total": { + "description": "Total number of matches Steam reports for the term.", "type": "integer" } }, @@ -183330,69 +193205,90 @@ "steam.SteamSpyResponse": { "properties": { "appid": { + "description": "Steam app id.", "type": "integer" }, "average_2weeks": { + "description": "Average playtime over the last two weeks, in minutes, as SteamSpy estimates it.", "type": "integer" }, "average_forever": { + "description": "Average total playtime, in minutes, as SteamSpy estimates it.", "type": "integer" }, "ccu": { + "description": "Concurrent users, as SteamSpy estimates it.", "type": "integer" }, "developer": { + "description": "Name of the developer, as SteamSpy lists it.", "type": "string" }, "discount": { + "description": "Current discount, as SteamSpy reports it.", "type": "string" }, "genre": { + "description": "Genres of the app, as a comma-separated list such as `Action, Free to Play, Strategy`.", "type": "string" }, "initialprice": { + "description": "Price before any discount, as SteamSpy reports it.", "type": "string" }, "languages": { + "description": "Languages the app supports, as SteamSpy lists them.", "type": "string" }, "median_2weeks": { + "description": "Median playtime over the last two weeks, in minutes, as SteamSpy estimates it.", "type": "integer" }, "median_forever": { + "description": "Median total playtime, in minutes, as SteamSpy estimates it.", "type": "integer" }, "name": { + "description": "Name of the app, as SteamSpy lists it.", "type": "string" }, "negative": { + "description": "Number of negative reviews, as SteamSpy counts them.", "type": "integer" }, "owners": { + "description": "Estimated range of owners, such as `100,000,000 .. 200,000,000`.", "type": "string" }, "positive": { + "description": "Number of positive reviews, as SteamSpy counts them.", "type": "integer" }, "price": { + "description": "Current price, as SteamSpy reports it.", "type": "string" }, "publisher": { + "description": "Name of the publisher, as SteamSpy lists it.", "type": "string" }, "source": { + "description": "Name of the data source, always `steamspy`.", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "tags": { "additionalProperties": { "type": "integer" }, + "description": "Map of tag name to the number of votes the tag received.", "type": "object" }, "userscore": { + "description": "User score of the app, as SteamSpy reports it.", "type": "integer" } }, @@ -184489,38 +194385,47 @@ "strava.RouteCard": { "properties": { "description": { + "description": "Short description of the route.", "example": "The Mallory Cave hike takes you to the mouth of a beautiful cave...", "type": "string" }, "difficulty": { + "description": "Difficulty label Strava shows for the route, such as `Easy`.", "example": "Easy", "type": "string" }, "distance_raw": { + "description": "Route distance as Strava displays it, with its unit, such as `1.46 mi`.", "example": "1.46 mi", "type": "string" }, "elevation_gain_raw": { + "description": "Elevation gain as Strava displays it, with its unit, such as `345 ft`.", "example": "345 ft", "type": "string" }, "image_url": { + "description": "URL of the route's image.", "example": "https://dgtzuqphqg23d.cloudfront.net/8UruePMrrrQMdHGsELroGsOsTMWqh030g7159PMSue4-768x576.jpg", "type": "string" }, "name": { + "description": "Name of the route as Strava shows it.", "example": "Mallory Cave via N.C.A.R. Trail", "type": "string" }, "path": { + "description": "Route path on Strava. Pass it to the route detail endpoint.", "example": "hiking/usa/colorado/boulder/mallory-cave_5171952737974445730", "type": "string" }, "rank": { + "description": "Position of the route in the listing.", "example": 1, "type": "integer" }, "url": { + "description": "URL of the route page on Strava.", "example": "https://www.strava.com/routes/hiking/usa/colorado/boulder/mallory-cave_5171952737974445730", "type": "string" } @@ -184579,44 +194484,54 @@ "strava.RoutesResponse": { "properties": { "country": { + "description": "Country slug that was requested, such as `usa`.", "example": "usa", "type": "string" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-08-07T12:00:00Z", "type": "string" }, "page": { + "description": "Page number returned, starting at 1.", "example": 1, "type": "integer" }, "region": { + "description": "Region slug that was requested, such as `colorado`.", "example": "colorado", "type": "string" }, "routes": { + "description": "Routes listed on this page.", "items": { "$ref": "#/definitions/strava.RouteCard" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.strava.com/routes/hiking/usa/colorado?page=1", "type": "string" }, "sport": { + "description": "Sport the routes are for, such as `hiking`.", "example": "hiking", "type": "string" }, "title": { + "description": "Title of the Strava route listing page.", "example": "The Best Hiking Trails in Colorado", "type": "string" }, "total_pages": { + "description": "Total number of pages in the route listing.", "example": 16, "type": "integer" }, "total_results": { + "description": "Total number of routes in the listing.", "example": 318, "type": "integer" } @@ -185251,6 +195166,95 @@ }, "type": "object" }, + "streeteasy.SaleEdge": { + "properties": { + "node": { + "$ref": "#/definitions/streeteasy.SaleListing" + }, + "type": { + "type": "string" + } + }, + "type": "object" + }, + "streeteasy.SaleListing": { + "properties": { + "advertisedOnSe": { + "type": "boolean" + }, + "areaName": { + "type": "string" + }, + "bedroomCount": { + "type": "integer" + }, + "buildingType": { + "type": "string" + }, + "fullBathroomCount": { + "type": "integer" + }, + "furnished": { + "type": "boolean" + }, + "geoPoint": { + "$ref": "#/definitions/streeteasy.GeoPoint" + }, + "id": { + "type": "string" + }, + "isPremiumHdpEnabled": { + "type": "boolean" + }, + "leadMedia": { + "$ref": "#/definitions/streeteasy.LeadMedia" + }, + "offMarketAt": { + "type": "string" + }, + "price": { + "type": "number" + }, + "saleType": { + "type": "string" + }, + "sourceGroupLabel": { + "type": "string" + }, + "street": { + "type": "string" + }, + "unit": { + "type": "string" + }, + "urlPath": { + "type": "string" + } + }, + "type": "object" + }, + "streeteasy.SaleSearch": { + "properties": { + "edges": { + "items": { + "$ref": "#/definitions/streeteasy.SaleEdge" + }, + "type": "array" + }, + "search": { + "properties": { + "criteria": { + "type": "string" + } + }, + "type": "object" + }, + "totalCount": { + "type": "integer" + } + }, + "type": "object" + }, "streeteasy.SchoolDetails": { "properties": { "address": { @@ -190180,23 +200184,28 @@ "target.FilterGroup": { "properties": { "display_name": { + "description": "Name of the filter group as Target shows it, such as `Deals`.", "example": "Deals", "type": "string" }, "expanded": { + "description": "Whether Target shows the group expanded.", "type": "boolean" }, "id": { + "description": "Target filter group id, such as `d_deals`.", "example": "d_deals", "type": "string" }, "options": { + "description": "Filter options in the group.", "items": { "$ref": "#/definitions/target.FilterOption" }, "type": "array" }, "type": { + "description": "Kind of control Target uses for the group, such as `checkbox`.", "example": "checkbox", "type": "string" } @@ -190206,21 +200215,26 @@ "target.FilterOption": { "properties": { "display_name": { + "description": "Label of the option as Target shows it, such as `Clearance`.", "example": "Clearance", "type": "string" }, "id": { + "description": "Target filter option id, such as `5tdv1`.", "example": "5tdv1", "type": "string" }, "selected": { + "description": "Whether the option is currently applied.", "type": "boolean" }, "url": { + "description": "Filter reference for the option, such as `d_deals:clearance`.", "example": "d_deals:clearance", "type": "string" }, "value": { + "description": "Value of the option, such as `clearance`.", "example": "clearance", "type": "string" } @@ -190230,40 +200244,49 @@ "target.FilterOptionsResponse": { "properties": { "applied_filter_ids": { + "description": "Ids of the filter options currently applied.", "items": { "type": "string" }, "type": "array" }, "category_id": { + "description": "Target category id the filters are for. Omitted when filters were requested by search query.", "example": "5q0ga", "type": "string" }, "count": { + "description": "Number of filter groups returned.", "example": 7, "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "filter_groups": { + "description": "Filter groups and their options for the current result set.", "items": { "$ref": "#/definitions/target.FilterGroup" }, "type": "array" }, "query": { + "description": "Search query the filters are for. Omitted when filters were requested by category.", "example": "coffee", "type": "string" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "store_id": { + "description": "Target store id the results are for.", "example": 2885, "type": "integer" }, "total": { + "description": "Number of products in the current result set.", "example": 4158, "type": "integer" } @@ -191755,28 +201778,34 @@ "teslajobs.ListResponse": { "properties": { "jobs": { + "description": "Job listings on this page.", "items": { "$ref": "#/definitions/teslajobs.TeslaJobListing" }, "type": "array" }, "location": { + "description": "Location filter that was applied.", "example": "Palo Alto", "type": "string" }, "page": { + "description": "Page number returned, starting at 1.", "example": 1, "type": "integer" }, "page_size": { + "description": "Number of job listings per page.", "example": 20, "type": "integer" }, "query": { + "description": "Title or department filter that was applied.", "example": "software engineer", "type": "string" }, "total": { + "description": "Total number of job listings that match the filters.", "example": 302, "type": "integer" } @@ -191842,18 +201871,22 @@ "teslajobs.TeslaJobListing": { "properties": { "department": { + "description": "Tesla department the job belongs to, such as `Tesla AI`.", "example": "Tesla AI", "type": "string" }, "id": { + "description": "Tesla careers job id. Use it with the job endpoint.", "example": "224501", "type": "string" }, "location": { + "description": "Job location as Tesla shows it, such as `Palo Alto, California`.", "example": "Palo Alto, California", "type": "string" }, "title": { + "description": "Job title as shown on Tesla Careers.", "example": "AI Engineer, Manipulation, Optimus", "type": "string" } @@ -193101,12 +203134,15 @@ "threads.Author": { "properties": { "id": { + "description": "Threads user ID of the author.", "type": "string" }, "name": { + "description": "Display name of the author.", "type": "string" }, "username": { + "description": "Threads username of the author.", "type": "string" } }, @@ -193135,24 +203171,55 @@ "threads.Profile": { "properties": { "avatar_url": { + "description": "URL of the profile picture.", "type": "string" }, "biography": { + "description": "Bio text shown on the profile.", "type": "string" }, "followers_count": { + "description": "Number of followers of the profile.", "type": "integer" }, "name": { + "description": "Display name shown on the profile.", "type": "string" }, "threads_count": { + "description": "Number of threads the profile has posted.", "type": "integer" }, "url": { + "description": "URL of the profile on Threads.", + "type": "string" + }, + "username": { + "description": "Threads username of the profile.", "type": "string" + } + }, + "type": "object" + }, + "threads.ProfileMediaResult": { + "properties": { + "has_more": { + "description": "Whether Threads reports more public media beyond this page.", + "type": "boolean" + }, + "items": { + "description": "Public media posts, including image and video attachments when available.", + "items": { + "$ref": "#/definitions/threads.Thread" + }, + "type": "array" + }, + "pagination_limited": { + "description": "True when Threads gates additional media behind login or exposes no supported continuation cursor.", + "type": "boolean" }, "username": { + "description": "Profile whose public Media tab was read.", "type": "string" } }, @@ -193170,35 +203237,109 @@ "type": "array" }, "next_cursor": { + "description": "Cursor to pass to fetch the next page when Threads provides one.", "type": "string" }, + "pagination_limited": { + "description": "True when Threads reports more posts but does not provide a usable cursor.", + "type": "boolean" + }, "username": { "type": "string" } }, "type": "object" }, + "threads.ProfileRepliesResult": { + "properties": { + "has_more": { + "description": "Whether Threads reports more public items beyond the first page.", + "type": "boolean" + }, + "items": { + "description": "Public items exposed on that tab, preserving each item's actual author.", + "items": { + "$ref": "#/definitions/threads.Thread" + }, + "type": "array" + }, + "pagination_limited": { + "description": "True when Threads gates additional items behind login or exposes no supported continuation cursor.", + "type": "boolean" + }, + "username": { + "description": "Profile whose public Replies tab was read.", + "type": "string" + } + }, + "type": "object" + }, + "threads.ProfileRepostsResult": { + "properties": { + "has_more": { + "description": "Whether Threads reports more public items beyond the first page.", + "type": "boolean" + }, + "items": { + "description": "Public posts reposted by the profile, retaining their original authors.", + "items": { + "$ref": "#/definitions/threads.Thread" + }, + "type": "array" + }, + "pagination_limited": { + "description": "True when Threads gates additional items behind login or exposes no supported continuation cursor.", + "type": "boolean" + }, + "username": { + "description": "Profile whose public Reposts tab was read.", + "type": "string" + } + }, + "type": "object" + }, + "threads.ProfileTopicsResult": { + "properties": { + "items": { + "description": "Every topic tag exposed on the profile page.", + "items": { + "$ref": "#/definitions/threads.Topic" + }, + "type": "array" + }, + "username": { + "description": "Profile whose public topic tags were read.", + "type": "string" + } + }, + "type": "object" + }, "threads.RepliesResult": { "properties": { "code": { "type": "string" }, "has_more": { + "description": "Whether Threads reports more replies beyond this page.", "type": "boolean" }, "items": { + "description": "Replies to the post, each as a thread.", "items": { "$ref": "#/definitions/threads.Thread" }, "type": "array" }, "next_cursor": { + "description": "Cursor to pass to fetch the next page of replies.", "type": "string" }, "pagination_limited": { + "description": "True when more replies exist but Threads gives no usable cursor to fetch them.", "type": "boolean" }, "username": { + "description": "Username of the post's author.", "type": "string" } }, @@ -193207,18 +203348,30 @@ "threads.SearchResult": { "properties": { "has_more": { + "description": "Whether more results are available after this page.", "type": "boolean" }, "items": { + "description": "Threads matching the search, one entry per post.", "items": { "$ref": "#/definitions/threads.Thread" }, "type": "array" }, "next_cursor": { + "description": "Cursor to pass to fetch the next page of results.", "type": "string" }, + "pagination_limited": { + "description": "True when Threads gates further results behind login or provides no supported continuation.", + "type": "boolean" + }, "query": { + "description": "Search query that was run.", + "type": "string" + }, + "sort": { + "description": "Result ordering selected for the search.", "type": "string" } }, @@ -193227,48 +203380,73 @@ "threads.Thread": { "properties": { "author": { - "$ref": "#/definitions/threads.Author" + "allOf": [ + { + "$ref": "#/definitions/threads.Author" + } + ], + "description": "Account that posted the thread." }, "code": { "type": "string" }, "created_at": { + "description": "Time the thread was posted, in UTC (RFC 3339).", "type": "string" }, "id": { + "description": "Threads post ID.", "type": "string" }, "image_urls": { + "description": "URLs of the images attached to the thread.", "items": { "type": "string" }, "type": "array" }, "is_reply": { + "description": "Whether the thread is a reply to another thread.", "type": "boolean" }, "like_count": { + "description": "Number of likes on the thread.", "type": "integer" }, "quote_count": { + "description": "Number of times the thread was quoted.", "type": "integer" }, "reply_count": { + "description": "Number of replies to the thread.", "type": "integer" }, "reply_to": { + "description": "Username of the account this thread replies to.", "type": "string" }, "repost_count": { + "description": "Number of times the thread was reposted.", "type": "integer" }, "text": { + "description": "Text of the thread.", "type": "string" }, + "topic": { + "allOf": [ + { + "$ref": "#/definitions/threads.Topic" + } + ], + "description": "Public topic/community tag attached to the thread, when present." + }, "url": { + "description": "URL of the thread on Threads.", "type": "string" }, "video_urls": { + "description": "URLs of the videos attached to the thread.", "items": { "type": "string" }, @@ -193277,6 +203455,71 @@ }, "type": "object" }, + "threads.Topic": { + "properties": { + "community_emoji": { + "description": "Community reaction emoji, when present on a post tag.", + "type": "string" + }, + "community_favicon_url": { + "description": "Community icon URL, when present.", + "type": "string" + }, + "display_name": { + "description": "Topic label shown in Threads.", + "type": "string" + }, + "id": { + "description": "Numeric Threads topic tag identifier.", + "type": "string" + }, + "is_community": { + "description": "Whether Threads identifies this topic as a community.", + "type": "boolean" + }, + "name": { + "description": "Canonical topic query returned on profile topic lists.", + "type": "string" + }, + "search_query": { + "description": "Query to pair with ID when calling the topic search endpoint.", + "type": "string" + }, + "tag_cluster_name": { + "description": "Topic cluster or category label, when present.", + "type": "string" + } + }, + "type": "object" + }, + "threads.TopicSearchResult": { + "properties": { + "has_more": { + "description": "Whether Threads reports another page.", + "type": "boolean" + }, + "items": { + "description": "Public threads matching the topic tag.", + "items": { + "$ref": "#/definitions/threads.Thread" + }, + "type": "array" + }, + "pagination_limited": { + "description": "True when Threads gates further results behind login or provides no supported continuation.", + "type": "boolean" + }, + "query": { + "description": "Search query used by the topic tag.", + "type": "string" + }, + "topic_id": { + "description": "Numeric Threads topic tag identifier.", + "type": "string" + } + }, + "type": "object" + }, "threads.postResponseDoc": { "properties": { "code": { @@ -193293,6 +203536,22 @@ }, "type": "object" }, + "threads.profileMediaResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/threads.ProfileMediaResult" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "threads.profilePostsResponseDoc": { "properties": { "code": { @@ -193309,6 +203568,38 @@ }, "type": "object" }, + "threads.profileRepliesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/threads.ProfileRepliesResult" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "threads.profileRepostsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/threads.ProfileRepostsResult" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "threads.profileResponseDoc": { "properties": { "code": { @@ -193325,6 +203616,22 @@ }, "type": "object" }, + "threads.profileTopicsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/threads.ProfileTopicsResult" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "threads.repliesResponseDoc": { "properties": { "code": { @@ -193357,6 +203664,22 @@ }, "type": "object" }, + "threads.topicSearchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/threads.TopicSearchResult" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "ticketmaster.Attraction": { "properties": { "classification": { @@ -195632,9 +205955,11 @@ "tiktok.Category": { "properties": { "name": { + "description": "Category name as shown on TikTok's Explore page.", "type": "string" }, "type": { + "description": "Numeric category type code, as a string. Use it as the `id` of the explore endpoint.", "type": "string" } }, @@ -195642,8 +205967,11 @@ }, "tiktok.ChallengeDetailResp": { "properties": { - "challengeInfo": {}, + "challengeInfo": { + "description": "Details of the hashtag (challenge), as TikTok returns them." + }, "extra": { + "description": "Response metadata from TikTok, such as the request log id and server time.", "properties": { "fatal_item_ids": { "items": {}, @@ -195659,6 +205987,7 @@ "type": "object" }, "log_pb": { + "description": "Request tracking information from TikTok, holding the `impr_id` impression id.", "properties": { "impr_id": { "type": "string" @@ -195667,6 +205996,7 @@ "type": "object" }, "shareMeta": { + "description": "Title and description TikTok uses when the hashtag is shared.", "properties": { "desc": { "type": "string" @@ -195678,12 +206008,15 @@ "type": "object" }, "statusCode": { + "description": "TikTok status code for the request. `0` on a successful response.", "type": "integer" }, "status_code": { + "description": "Second copy of the TikTok status code, sent as `status_code`. `0` on a successful response.", "type": "integer" }, "status_msg": { + "description": "Status message that goes with the status code.", "type": "string" } }, @@ -195692,9 +206025,11 @@ "tiktok.ChallengeListResp": { "properties": { "cursor": { + "description": "Cursor to pass in the next request to get the next page of videos.", "type": "string" }, "extra": { + "description": "Response metadata from TikTok, such as the request log id and server time.", "properties": { "fatal_item_ids": { "items": {}, @@ -195710,13 +206045,16 @@ "type": "object" }, "hasMore": { + "description": "Whether more videos remain after this page.", "type": "boolean" }, "itemList": { + "description": "Videos posted under the hashtag, one entry per video, as TikTok returns them.", "items": {}, "type": "array" }, "log_pb": { + "description": "Request tracking information from TikTok, holding the `impr_id` impression id.", "properties": { "impr_id": { "type": "string" @@ -195725,12 +206063,15 @@ "type": "object" }, "statusCode": { + "description": "TikTok status code for the request. `0` on a successful response.", "type": "integer" }, "status_code": { + "description": "Second copy of the TikTok status code, sent as `status_code`. `0` on a successful response.", "type": "integer" }, "status_msg": { + "description": "Status message that goes with the status code.", "type": "string" } }, @@ -195739,16 +206080,20 @@ "tiktok.CommentResp": { "properties": { "alias_comment_deleted": { + "description": "Flag TikTok returns for deleted alias comments.", "type": "boolean" }, "comments": { + "description": "Top-level comments on the video, one entry per comment, as TikTok returns them.", "items": {}, "type": "array" }, "cursor": { + "description": "Cursor to pass in the next request to get the next page of comments.", "type": "integer" }, "extra": { + "description": "Response metadata from TikTok, such as server time.", "properties": { "api_debug_info": {}, "fatal_item_ids": {}, @@ -195759,12 +206104,15 @@ "type": "object" }, "has_filtered_comments": { + "description": "Flag showing whether TikTok filtered any comments out of the list.", "type": "integer" }, "has_more": { + "description": "Whether more comments remain after this page, as a number (`1` for yes).", "type": "integer" }, "log_pb": { + "description": "Request tracking information from TikTok, holding the `impr_id` impression id.", "properties": { "impr_id": { "type": "string" @@ -195773,16 +206121,22 @@ "type": "object" }, "reply_style": { + "description": "Reply display style code that TikTok returns with the comments.", "type": "integer" }, "status_code": { + "description": "TikTok status code for the request. `0` on a successful response.", "type": "integer" }, "status_msg": { + "description": "Status message that goes with the status code.", "type": "string" }, - "top_gifts": {}, + "top_gifts": { + "description": "Top gifts attached to the comments, as TikTok returns them." + }, "total": { + "description": "Total number of comments on the video.", "type": "integer" } }, @@ -195791,9 +206145,11 @@ "tiktok.ExploreResp": { "properties": { "cursor": { + "description": "Cursor to pass in the next request to get the next page of videos.", "type": "string" }, "extra": { + "description": "Response metadata from TikTok, such as the request log id and server time.", "properties": { "fatal_item_ids": { "items": {}, @@ -195809,13 +206165,16 @@ "type": "object" }, "hasMore": { + "description": "Whether more videos remain after this page.", "type": "boolean" }, "itemList": { + "description": "Videos in the explore feed for the category, one entry per video, as TikTok returns them.", "items": {}, "type": "array" }, "log_pb": { + "description": "Request tracking information from TikTok, holding the `impr_id` impression id.", "properties": { "impr_id": { "type": "string" @@ -195824,12 +206183,15 @@ "type": "object" }, "statusCode": { + "description": "TikTok status code for the request. `0` on a successful response.", "type": "integer" }, "status_code": { + "description": "Second copy of the TikTok status code, sent as `status_code`. `0` on a successful response.", "type": "integer" }, "status_msg": { + "description": "Status message that goes with the status code.", "type": "string" } }, @@ -195838,10 +206200,20 @@ "tiktok.Profile": { "properties": { "stats": { - "$ref": "#/definitions/tiktok.ProfileStats" + "allOf": [ + { + "$ref": "#/definitions/tiktok.ProfileStats" + } + ], + "description": "Follower, following, like and video counts for the account." }, "user": { - "$ref": "#/definitions/tiktok.User" + "allOf": [ + { + "$ref": "#/definitions/tiktok.User" + } + ], + "description": "Account details: identity, bio, verification and region." } }, "type": "object" @@ -195849,30 +206221,37 @@ "tiktok.ProfileStats": { "properties": { "diggCount": { + "description": "Number of videos the account has liked.", "example": 0, "type": "integer" }, "followerCount": { + "description": "Number of accounts that follow this account.", "example": 458800, "type": "integer" }, "followingCount": { + "description": "Number of accounts this account follows.", "example": 1, "type": "integer" }, "friendCount": { + "description": "Number of friends, meaning accounts that follow each other.", "example": 1, "type": "integer" }, "heart": { + "description": "Total likes the account's videos have received. Very large totals are rounded.", "example": 800300, "type": "integer" }, "heartCount": { + "description": "Total likes the account's videos have received. Can be negative for accounts with more than about 2.1 billion likes; use `heart` then.", "example": 800300, "type": "integer" }, "videoCount": { + "description": "Number of videos the account has posted.", "example": 59, "type": "integer" } @@ -195882,20 +206261,27 @@ "tiktok.SearchHashtagResp": { "properties": { "challenge_list": { + "description": "Hashtags (challenges) matching the keyword, one entry per hashtag, as TikTok returns them.", "items": {}, "type": "array" }, "cursor": { + "description": "Cursor to pass in the next request to get the next page of results.", "type": "integer" }, - "extra": {}, + "extra": { + "description": "Response metadata from TikTok, such as the request log id." + }, "has_more": { + "description": "Whether more results remain after this page, as a number (`1` for yes).", "type": "integer" }, "input_keyword": { + "description": "Search keyword that was run.", "type": "string" }, "log_pb": { + "description": "Request tracking information from TikTok, holding the `impr_id` impression id.", "properties": { "impr_id": { "type": "string" @@ -195903,50 +206289,68 @@ }, "type": "object" }, - "music_list": {}, + "music_list": { + "description": "Matching sounds, as TikTok returns them. Usually `null` for a hashtag search." + }, "qc": { + "description": "Query token that TikTok returns with the search results.", "type": "string" }, "rid": { + "description": "Request id that TikTok returns with the search results.", "type": "string" }, "status_code": { + "description": "TikTok status code for the request. `0` on a successful response.", "type": "integer" }, "status_msg": { + "description": "Status message that goes with the status code.", "type": "string" }, "type": { + "description": "Result type code that TikTok returns with the search results.", "type": "integer" }, - "user_list": {} + "user_list": { + "description": "Matching accounts, as TikTok returns them. Usually `null` for a hashtag search." + } }, "type": "object" }, "tiktok.SearchResp": { "properties": { "cursor": { + "description": "Cursor to pass in the next request to get the next page of results.", "type": "integer" }, "data": { + "description": "Search results, one entry per matching video, as TikTok returns them.", "items": {}, "type": "array" }, - "extra": {}, + "extra": { + "description": "Response metadata from TikTok, such as the request log id." + }, "feedback_type": { + "description": "Feedback type label that TikTok returns with the search results.", "type": "string" }, "has_more": { + "description": "Whether more results remain after this page, as a number (`1` for yes).", "type": "integer" }, "input_keyword": { + "description": "Search keyword that was run.", "type": "string" }, "itemList": { + "description": "Matching videos, as TikTok returns them. Often `null` when results are in `data`.", "items": {}, "type": "array" }, "log_pb": { + "description": "Request tracking information from TikTok, holding the `impr_id` impression id.", "properties": { "impr_id": { "type": "string" @@ -195955,18 +206359,23 @@ "type": "object" }, "qc": { + "description": "Query token that TikTok returns with the search results.", "type": "string" }, "rid": { + "description": "Request id that TikTok returns with the search results.", "type": "string" }, "status_code": { + "description": "TikTok status code for the request. `0` on a successful response.", "type": "integer" }, "status_msg": { + "description": "Status message that goes with the status code.", "type": "string" }, "type": { + "description": "Result type code that TikTok returns with the search results.", "type": "integer" } }, @@ -195974,22 +206383,33 @@ }, "tiktok.SearchUserResp": { "properties": { - "challenge_list": {}, + "challenge_list": { + "description": "Matching hashtags, as TikTok returns them. Usually `null` for a user search." + }, "cursor": { + "description": "Cursor to pass in the next request to get the next page of results.", "type": "integer" }, - "extra": {}, + "extra": { + "description": "Response metadata from TikTok, such as the request log id." + }, "feedback_type": { + "description": "Feedback type label that TikTok returns with the search results.", "type": "string" }, - "global_doodle_config": {}, + "global_doodle_config": { + "description": "Search page doodle settings that TikTok returns with the results." + }, "has_more": { + "description": "Whether more results remain after this page, as a number (`1` for yes).", "type": "integer" }, "input_keyword": { + "description": "Search keyword that was run.", "type": "string" }, "log_pb": { + "description": "Request tracking information from TikTok, holding the `impr_id` impression id.", "properties": { "impr_id": { "type": "string" @@ -195997,23 +206417,31 @@ }, "type": "object" }, - "music_list": {}, + "music_list": { + "description": "Matching sounds, as TikTok returns them. Usually `null` for a user search." + }, "qc": { + "description": "Query token that TikTok returns with the search results.", "type": "string" }, "rid": { + "description": "Request id that TikTok returns with the search results.", "type": "string" }, "status_code": { + "description": "TikTok status code for the request. `0` on a successful response.", "type": "integer" }, "status_msg": { + "description": "Status message that goes with the status code.", "type": "string" }, "type": { + "description": "Result type code that TikTok returns with the search results.", "type": "integer" }, "user_list": { + "description": "Accounts matching the keyword, one entry per account, as TikTok returns them.", "items": {}, "type": "array" } @@ -196023,9 +206451,11 @@ "tiktok.TrendingResp": { "properties": { "cursor": { + "description": "Cursor TikTok returns for the next page of the trending feed.", "type": "string" }, "extra": { + "description": "Response metadata from TikTok, such as the request log id and server time.", "properties": { "fatal_item_ids": { "items": {}, @@ -196041,13 +206471,16 @@ "type": "object" }, "hasMore": { + "description": "Whether more videos remain after this page.", "type": "boolean" }, "itemList": { + "description": "Videos in the trending feed, one entry per video, as TikTok returns them.", "items": {}, "type": "array" }, "log_pb": { + "description": "Request tracking information from TikTok, holding the `impr_id` impression id.", "properties": { "impr_id": { "type": "string" @@ -196056,18 +206489,23 @@ "type": "object" }, "statusCode": { + "description": "TikTok status code for the request. `0` on a successful response.", "type": "integer" }, "statusMsg": { + "description": "Status message that goes with the status code.", "type": "string" }, "status_code": { + "description": "Second copy of the TikTok status code, sent as `status_code`. `0` on a successful response.", "type": "integer" }, "status_msg": { + "description": "Second copy of the status message, sent as `status_msg`.", "type": "string" }, "trendingTopics": { + "description": "Trending topics returned with the feed, as TikTok returns them.", "items": {}, "type": "array" } @@ -196077,10 +206515,12 @@ "tiktok.User": { "properties": { "avatarLarger": { + "description": "URL of the account's large profile picture.", "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" }, "bioLink": { + "description": "Link shown in the account's bio.", "properties": { "link": { "example": "www.openai.com/chatgpt", @@ -196090,6 +206530,7 @@ "type": "object" }, "commerceUserInfo": { + "description": "Commerce details for the account: whether it is a commerce account and its category.", "properties": { "category": { "example": "Software & Apps", @@ -196103,54 +206544,67 @@ "type": "object" }, "createTime": { + "description": "Time the account was created, in Unix seconds.", "example": 1689461786, "type": "integer" }, "id": { + "description": "TikTok numeric user id of the account.", "example": "7256182609359995947", "type": "string" }, "isOrganization": { + "description": "Organisation account flag; `1` marks an organisation account.", "example": 1, "type": "integer" }, "language": { + "description": "Language code set on the account, for example `en`.", "example": "en", "type": "string" }, "nickname": { + "description": "Display name of the account.", "example": "chatgpt", "type": "string" }, "privateAccount": { + "description": "Whether the account is private.", "example": false, "type": "boolean" }, "region": { + "description": "Country or region code of the account, for example `US`.", "example": "US", "type": "string" }, "secUid": { + "description": "TikTok secUid of the account. Use it as the `secUid` of the posts endpoint.", "example": "MS4wLjABAAAAT4vq3vsh9X-Vb_WtV6tz4QWTbKjliTKCiK5DqnJNtQEA2RUveHb7UdnL7xgPK2HB", "type": "string" }, "secret": { + "description": "Secret-account flag as TikTok returns it.", "example": false, "type": "boolean" }, "signature": { + "description": "Bio text shown on the account's profile.", "example": "What can I help with?", "type": "string" }, "ttSeller": { + "description": "Whether the account is a TikTok Shop seller.", "example": false, "type": "boolean" }, "uniqueId": { + "description": "Account handle, the name that follows `@` in the profile URL.", "example": "uniqueId", "type": "string" }, "verified": { + "description": "Whether the account has a verified badge.", "example": true, "type": "boolean" } @@ -196160,9 +206614,11 @@ "tiktok.UserPostLinkResp": { "properties": { "cursor": { + "description": "Cursor to pass in the next request to get the next page of posts.", "type": "string" }, "extra": { + "description": "Response metadata from TikTok, such as the request log id and server time.", "properties": { "fatal_item_ids": { "items": {}, @@ -196178,13 +206634,16 @@ "type": "object" }, "hasMore": { + "description": "Whether more posts remain after this page.", "type": "boolean" }, "itemList": { + "description": "Videos posted by the account, one entry per video, as TikTok returns them.", "items": {}, "type": "array" }, "log_pb": { + "description": "Request tracking information from TikTok, holding the `impr_id` impression id.", "properties": { "impr_id": { "type": "string" @@ -196193,9 +206652,11 @@ "type": "object" }, "status_code": { + "description": "TikTok status code for the request. `0` on a successful response.", "type": "integer" }, "status_msg": { + "description": "Status message that goes with the status code.", "type": "string" } }, @@ -196204,6 +206665,7 @@ "tiktok.VideoDetailResp": { "properties": { "extra": { + "description": "Response metadata from TikTok, such as the request log id and server time.", "properties": { "fatal_item_ids": { "items": {}, @@ -196218,8 +206680,11 @@ }, "type": "object" }, - "itemInfo": {}, + "itemInfo": { + "description": "Details of the video, as TikTok returns them." + }, "log_pb": { + "description": "Request tracking information from TikTok, holding the `impr_id` impression id.", "properties": { "impr_id": { "type": "string" @@ -196228,6 +206693,7 @@ "type": "object" }, "shareMeta": { + "description": "Title and description TikTok uses when the video is shared.", "properties": { "desc": { "type": "string" @@ -196239,9 +206705,11 @@ "type": "object" }, "status_code": { + "description": "TikTok status code for the request. `0` on a successful response.", "type": "integer" }, "status_msg": { + "description": "Status message that goes with the status code.", "type": "string" } }, @@ -196442,6 +206910,1038 @@ }, "type": "object" }, + "tiktokmobile.CategoryListResponse": { + "properties": { + "category_list": { + "items": {}, + "type": "array" + }, + "cursor": { + "type": "integer" + }, + "device_type": { + "type": "integer" + }, + "extra": {}, + "has_more": { + "type": "boolean" + }, + "log_pb": {}, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.CommentRepliesResponse": { + "properties": { + "comments": { + "items": {}, + "type": "array" + }, + "cursor": { + "type": "integer" + }, + "has_more": { + "type": "boolean" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "tiktokmobile.CommentsResponse": { + "properties": { + "comments": { + "items": {}, + "type": "array" + }, + "cursor": { + "type": "integer" + }, + "has_more": { + "type": "boolean" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "tiktokmobile.FeedItem": { + "properties": { + "author_id": { + "type": "integer" + }, + "aweme_id": { + "type": "string" + }, + "create_time": { + "type": "integer" + }, + "share_url": { + "type": "string" + }, + "statistics": { + "$ref": "#/definitions/tiktokmobile.FeedStatistics" + } + }, + "type": "object" + }, + "tiktokmobile.FeedResponse": { + "properties": { + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "host": { + "type": "string" + }, + "items": { + "items": { + "$ref": "#/definitions/tiktokmobile.FeedItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "tiktokmobile.FeedStatistics": { + "properties": { + "aweme_id": { + "type": "string" + }, + "collect_count": { + "type": "integer" + }, + "comment_count": { + "type": "integer" + }, + "digg_count": { + "type": "integer" + }, + "download_count": { + "type": "integer" + }, + "forward_count": { + "type": "integer" + }, + "lose_comment_count": { + "type": "integer" + }, + "lose_count": { + "type": "integer" + }, + "play_count": { + "type": "integer" + }, + "repost_count": { + "type": "integer" + }, + "share_count": { + "type": "integer" + }, + "whatsapp_share_count": { + "type": "integer" + } + }, + "type": "object" + }, + "tiktokmobile.HashtagInfoResponse": { + "properties": { + "ch_info": {}, + "hashtag_name": { + "type": "string" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.HashtagPostsResponse": { + "properties": { + "aweme_list": { + "items": {}, + "type": "array" + }, + "cursor": { + "type": "integer" + }, + "has_more": { + "type": "boolean" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.HashtagSearchResponse": { + "properties": { + "challenge_list": { + "items": {}, + "type": "array" + }, + "cursor": { + "type": "integer" + }, + "has_more": { + "type": "boolean" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.HotMusicResponse": { + "properties": { + "cursor": { + "type": "integer" + }, + "extra": {}, + "has_more": { + "type": "boolean" + }, + "log_pb": {}, + "msg": { + "type": "string" + }, + "music_list": { + "items": {}, + "type": "array" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.LiveSearchResponse": { + "properties": { + "cursor": { + "type": "integer" + }, + "data": { + "items": {}, + "type": "array" + }, + "extra": {}, + "extra_data": {}, + "feedback_type": { + "type": "string" + }, + "global_doodle_config": {}, + "guide_search_words": {}, + "has_more": { + "type": "boolean" + }, + "log_pb": {}, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.MusicBeatsSongsResponse": { + "properties": { + "extra": {}, + "log_pb": {}, + "music_list": { + "items": {}, + "type": "array" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.MusicCollectionFeedResponse": { + "properties": { + "cursor": { + "type": "integer" + }, + "extra": {}, + "has_more": { + "type": "boolean" + }, + "log_pb": {}, + "mcf_list": { + "items": {}, + "type": "array" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.MusicFreshAwemeResponse": { + "properties": { + "aweme_list": { + "items": {}, + "type": "array" + }, + "cursor": { + "type": "integer" + }, + "extra": {}, + "has_more": { + "type": "boolean" + }, + "log_pb": {}, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.MusicPickResponse": { + "properties": { + "cursor": { + "type": "integer" + }, + "has_more": { + "type": "boolean" + }, + "mc_list": { + "items": {}, + "type": "array" + }, + "music_list": { + "items": {}, + "type": "array" + }, + "radio_cursor": { + "type": "integer" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.MusicRelatedResponse": { + "properties": { + "cursor": { + "type": "integer" + }, + "has_more": { + "type": "boolean" + }, + "music_list": { + "items": {}, + "type": "array" + }, + "music_type": { + "type": "integer" + }, + "recall_info_list": { + "items": {}, + "type": "array" + }, + "similar_song_ids": { + "items": {}, + "type": "array" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.PlacePOIContainer": { + "properties": { + "poi_info": { + "items": {}, + "type": "array" + } + }, + "type": "object" + }, + "tiktokmobile.SearchGeneralResponse": { + "properties": { + "cursor": { + "type": "integer" + }, + "data": { + "items": {}, + "type": "array" + }, + "has_more": { + "type": "boolean" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.SearchMusicResponse": { + "properties": { + "cursor": { + "type": "integer" + }, + "has_more": { + "type": "boolean" + }, + "music": { + "items": {}, + "type": "array" + }, + "music_info_list": { + "items": {}, + "type": "array" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + }, + "total": { + "type": "integer" + } + }, + "type": "object" + }, + "tiktokmobile.SearchPlaceResponse": { + "properties": { + "cursor": { + "type": "integer" + }, + "extra": {}, + "feedback_type": { + "type": "string" + }, + "has_more": { + "type": "boolean" + }, + "log_pb": {}, + "poi_info": { + "$ref": "#/definitions/tiktokmobile.PlacePOIContainer" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.SearchSuggestion": { + "properties": { + "content": { + "type": "string" + }, + "extra_info": {}, + "highlight_pos": {}, + "pos": {}, + "rich_sug_sec_pos": {}, + "sug_type": { + "type": "string" + }, + "word_record": {} + }, + "type": "object" + }, + "tiktokmobile.SearchSuggestionResponse": { + "properties": { + "extra": {}, + "has_more": { + "type": "boolean" + }, + "log_pb": {}, + "rid": { + "type": "string" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + }, + "sug_list": { + "items": { + "$ref": "#/definitions/tiktokmobile.SearchSuggestion" + }, + "type": "array" + } + }, + "type": "object" + }, + "tiktokmobile.SearchUsersResponse": { + "properties": { + "cursor": { + "type": "integer" + }, + "has_more": { + "type": "boolean" + }, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + }, + "user_list": { + "items": {}, + "type": "array" + } + }, + "type": "object" + }, + "tiktokmobile.StickerDiscoverResponse": { + "properties": { + "aweme_list": { + "items": {}, + "type": "array" + }, + "cursor": { + "type": "integer" + }, + "extra": {}, + "feed_session_id": { + "type": "string" + }, + "has_more": { + "type": "boolean" + }, + "log_pb": {}, + "status_code": { + "type": "integer" + }, + "status_msg": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.WebcastEffectsData": { + "properties": { + "assets": { + "items": {}, + "type": "array" + } + }, + "type": "object" + }, + "tiktokmobile.WebcastEffectsResponse": { + "properties": { + "data": { + "$ref": "#/definitions/tiktokmobile.WebcastEffectsData" + }, + "extra": {}, + "status_code": { + "type": "integer" + } + }, + "type": "object" + }, + "tiktokmobile.WebcastGiftListResponse": { + "properties": { + "data": {}, + "extra": {}, + "status_code": { + "type": "integer" + } + }, + "type": "object" + }, + "tiktokmobile.anchorListResponseDoc": { + "properties": { + "anchors": { + "items": {}, + "type": "array" + }, + "count": { + "type": "integer" + }, + "fetched_at": { + "type": "string" + }, + "host": { + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.categoryListResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.CategoryListResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.commentRepliesResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.CommentRepliesResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.commentsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.CommentsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.feedPostResponseDoc": { + "properties": { + "fetched_at": { + "example": "2026-10-20T08:20:00Z", + "type": "string" + }, + "host": { + "example": "aggr16-normal.tiktokv.us", + "type": "string" + }, + "items": { + "additionalProperties": {}, + "type": "object" + }, + "note": { + "type": "string" + }, + "strings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "tiktokmobile.feedResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.FeedResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.hashtagInfoResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.HashtagInfoResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.hashtagPostsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.HashtagPostsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.hashtagSearchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.HashtagSearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.hotMusicResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.HotMusicResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.liveEffectsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.WebcastEffectsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.liveGiftsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.WebcastGiftListResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.liveSearchResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.LiveSearchResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.musicBeatsSongsResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.MusicBeatsSongsResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.musicCollectionFeedResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.MusicCollectionFeedResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.musicFreshAwemeResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.MusicFreshAwemeResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.musicPickResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.MusicPickResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.musicRelatedResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.MusicRelatedResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.searchGeneralResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.SearchGeneralResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.searchMusicResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.SearchMusicResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.searchPlaceResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.SearchPlaceResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.searchPreInfoResponseDoc": { + "properties": { + "fetched_at": { + "type": "string" + }, + "host": { + "type": "string" + }, + "pre_info_id": { + "type": "string" + }, + "ttl": { + "example": 40, + "type": "integer" + } + }, + "type": "object" + }, + "tiktokmobile.searchSuggestionResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.SearchSuggestionResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.searchTabsResponseDoc": { + "properties": { + "fetched_at": { + "type": "string" + }, + "host": { + "example": "aggr32-normal.tiktokv.us", + "type": "string" + }, + "is_failed": { + "example": 0, + "type": "integer" + }, + "keyword": { + "example": "lofi", + "type": "string" + }, + "tabs": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "tiktokmobile.searchUsersResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.SearchUsersResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, + "tiktokmobile.stickerDiscoverResponseDoc": { + "properties": { + "code": { + "example": 200, + "type": "integer" + }, + "data": { + "$ref": "#/definitions/tiktokmobile.StickerDiscoverResponse" + }, + "msg": { + "example": "OK", + "type": "string" + } + }, + "type": "object" + }, "time.AuthorArticle": { "properties": { "excerpt": { @@ -196592,12 +208092,15 @@ "tmdb.CastCredit": { "properties": { "character": { + "description": "Character the actor plays.", "type": "string" }, "name": { + "description": "Name of the actor.", "type": "string" }, "slug": { + "description": "TMDB person id of the actor.", "type": "string" } }, @@ -196632,15 +208135,18 @@ "tmdb.CrewCredit": { "properties": { "jobs": { + "description": "Jobs the person holds on the title, for example `Creator` or `Director`.", "items": { "type": "string" }, "type": "array" }, "name": { + "description": "Name of the crew member.", "type": "string" }, "slug": { + "description": "TMDB person id of the crew member.", "type": "string" } }, @@ -196700,21 +208206,27 @@ "tmdb.MediaRef": { "properties": { "id": { + "description": "TMDB id of the movie or TV show. Use it with the movie or TV detail endpoint.", "type": "string" }, "overview": { + "description": "Short plot summary. Not filled in for list and chart results.", "type": "string" }, "poster_url": { + "description": "URL of the poster image. Not filled in for list and chart results.", "type": "string" }, "release_date": { + "description": "Release or first air date. Not filled in for list and chart results.", "type": "string" }, "title": { + "description": "Title of the movie or TV show.", "type": "string" }, "uri": { + "description": "Link to the title's page on TMDB.", "type": "string" } }, @@ -196905,14 +208417,17 @@ "tmdb.Rating": { "properties": { "average": { + "description": "Average TMDB user rating, on a 0 to 10 scale.", "example": 8.372, "type": "number" }, "count": { + "description": "Number of user ratings behind the average.", "example": 39524, "type": "integer" }, "review_count": { + "description": "Number of written user reviews. Omitted when TMDB shows none.", "example": 8, "type": "integer" } @@ -196922,24 +208437,30 @@ "tmdb.SearchResponse": { "properties": { "has_next_page": { + "description": "True when more pages of results are available.", "type": "boolean" }, "page": { + "description": "Page number returned.", "type": "integer" }, "query": { + "description": "Search text that was run.", "type": "string" }, "results": { + "description": "Search hits on this page, one item per movie, TV show, person or collection.", "items": { "$ref": "#/definitions/tmdb.SearchResult" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "type": { + "description": "Result type the search was limited to: `movie`, `tv`, `person` or `collection`. Omitted for a mixed search.", "type": "string" } }, @@ -196948,22 +208469,28 @@ "tmdb.SearchResult": { "properties": { "id": { + "description": "TMDB id of the hit. Use it with the matching detail endpoint.", "type": "string" }, "overview": { + "description": "Short plot summary or description. Present for movie, TV and collection hits.", "type": "string" }, "release_date": { + "description": "Release or first air date as TMDB shows it. Present for movie and TV hits.", "type": "string" }, "title": { + "description": "Title of the movie, TV show or collection, or name of the person.", "type": "string" }, "type": { + "description": "Kind of hit: `movie`, `tv`, `person` or `collection`.", "example": "movie", "type": "string" }, "uri": { + "description": "Link to the hit's page on TMDB.", "type": "string" } }, @@ -196972,21 +208499,26 @@ "tmdb.TVListResponse": { "properties": { "category": { + "description": "TV chart that was returned: `popular`, `top_rated`, `airing_today` or `on_the_air`.", "type": "string" }, "has_next_page": { + "description": "True when more pages of shows are available.", "type": "boolean" }, "page": { + "description": "Page number returned.", "type": "integer" }, "shows": { + "description": "TV shows on this page, one item per show.", "items": { "$ref": "#/definitions/tmdb.MediaRef" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -196995,76 +208527,98 @@ "tmdb.TVResponse": { "properties": { "cast": { + "description": "Top-billed cast, up to 25 credits.", "items": { "$ref": "#/definitions/tmdb.CastCredit" }, "type": "array" }, "countries": { + "description": "Countries the show comes from.", "items": { "type": "string" }, "type": "array" }, "first_air_year": { + "description": "Year the show first aired.", "example": 2008, "type": "integer" }, "genres": { + "description": "Genres of the show.", "items": { "type": "string" }, "type": "array" }, "homepage": { + "description": "URL of the show's official website.", "type": "string" }, "id": { + "description": "TMDB id of the TV show.", "example": "1396", "type": "string" }, "last_air_year": { + "description": "Year the show last aired. Omitted for shows still airing.", "example": 2013, "type": "integer" }, "number_of_episodes": { + "description": "Total number of episodes.", "example": 62, "type": "integer" }, "original_language": { + "description": "Original language of the show, for example `English`.", "example": "English", "type": "string" }, "overview": { + "description": "Plot summary of the show.", "type": "string" }, "poster_url": { + "description": "URL of the poster image.", "type": "string" }, "rating": { - "$ref": "#/definitions/tmdb.Rating" + "allOf": [ + { + "$ref": "#/definitions/tmdb.Rating" + } + ], + "description": "Aggregate TMDB user rating for the show." }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "status": { + "description": "Production status of the show, for example `Ended`.", "example": "Ended", "type": "string" }, "tagline": { + "description": "Tagline of the show.", "type": "string" }, "title": { + "description": "Title of the show.", "example": "Breaking Bad", "type": "string" }, "top_crew": { + "description": "Top-billed crew, such as the creator.", "items": { "$ref": "#/definitions/tmdb.CrewCredit" }, "type": "array" }, "uri": { + "description": "Link to the show's page on TMDB.", "type": "string" } }, @@ -197960,45 +209514,55 @@ "trends.ExploreQueriesResponse": { "properties": { "category": { + "description": "Trends category ID that was applied. `0` means all categories.", "example": 0, "type": "integer" }, "geo": { + "description": "Location code the data covers, such as `US`.", "example": "US", "type": "string" }, "hl": { + "description": "Locale that was applied, such as `en-US`.", "example": "en-US", "type": "string" }, "keywords": { + "description": "Keywords that were compared.", "items": { "type": "string" }, "type": "array" }, "property": { + "description": "Google property filter that was applied, matching `type`.", "type": "string" }, "queries": { + "description": "Related queries, grouped by keyword.", "items": { "$ref": "#/definitions/trends.RelatedGroup" }, "type": "array" }, "query_type": { + "description": "Kind of related queries returned: `top` or `rising`.", "example": "top", "type": "string" }, "time_range": { + "description": "Time range that was applied, such as `today 12-m`.", "example": "today 12-m", "type": "string" }, "type": { + "description": "Search type that was applied: `web`, `image`, `news`, `youtube` or `shopping`.", "example": "web", "type": "string" }, "tz": { + "description": "Timezone offset in minutes that was applied.", "example": 0, "type": "integer" } @@ -198322,71 +209886,85 @@ "trends.ExploreResponse": { "properties": { "category": { + "description": "Trends category ID that was applied. `0` means all categories.", "example": 0, "type": "integer" }, "geo": { + "description": "Location code the data covers, such as `US`.", "example": "US", "type": "string" }, "hl": { + "description": "Locale that was applied, such as `en-US`.", "example": "en-US", "type": "string" }, "interest_by_region": { + "description": "Interest in each keyword by region.", "items": { "$ref": "#/definitions/trends.RegionInterest" }, "type": "array" }, "interest_over_time": { + "description": "Interest in each keyword over time, one point per time step.", "items": { "$ref": "#/definitions/trends.InterestPoint" }, "type": "array" }, "keywords": { + "description": "Keywords that were compared.", "items": { "type": "string" }, "type": "array" }, "property": { + "description": "Google property filter that was applied, matching `type`.", "type": "string" }, "related_queries": { + "description": "Top related queries, grouped by keyword. Same content as `top_queries`.", "items": { "$ref": "#/definitions/trends.RelatedGroup" }, "type": "array" }, "related_topics": { + "description": "Related topics, grouped by keyword.", "items": { "$ref": "#/definitions/trends.RelatedGroup" }, "type": "array" }, "rising_queries": { + "description": "Rising related queries, grouped by keyword.", "items": { "$ref": "#/definitions/trends.RelatedGroup" }, "type": "array" }, "time_range": { + "description": "Time range that was applied, such as `today 12-m`.", "example": "today 12-m", "type": "string" }, "top_queries": { + "description": "Top related queries, grouped by keyword.", "items": { "$ref": "#/definitions/trends.RelatedGroup" }, "type": "array" }, "type": { + "description": "Search type that was applied: `web`, `image`, `news`, `youtube` or `shopping`.", "example": "web", "type": "string" }, "tz": { + "description": "Timezone offset in minutes that was applied.", "example": 0, "type": "integer" } @@ -198396,41 +209974,50 @@ "trends.InterestByRegionResponse": { "properties": { "category": { + "description": "Trends category ID that was applied. `0` means all categories.", "example": 0, "type": "integer" }, "geo": { + "description": "Location code the data covers, such as `US`.", "example": "US", "type": "string" }, "hl": { + "description": "Locale that was applied, such as `en-US`.", "example": "en-US", "type": "string" }, "interest_by_region": { + "description": "Interest in each keyword by region.", "items": { "$ref": "#/definitions/trends.RegionInterest" }, "type": "array" }, "keywords": { + "description": "Keywords that were compared.", "items": { "type": "string" }, "type": "array" }, "property": { + "description": "Google property filter that was applied, matching `type`.", "type": "string" }, "time_range": { + "description": "Time range that was applied, such as `today 12-m`.", "example": "today 12-m", "type": "string" }, "type": { + "description": "Search type that was applied: `web`, `image`, `news`, `youtube` or `shopping`.", "example": "web", "type": "string" }, "tz": { + "description": "Timezone offset in minutes that was applied.", "example": 0, "type": "integer" } @@ -198440,41 +210027,50 @@ "trends.InterestOverTimeResponse": { "properties": { "category": { + "description": "Trends category ID that was applied. `0` means all categories.", "example": 0, "type": "integer" }, "geo": { + "description": "Location code the data covers, such as `US`.", "example": "US", "type": "string" }, "hl": { + "description": "Locale that was applied, such as `en-US`.", "example": "en-US", "type": "string" }, "interest_over_time": { + "description": "Interest in each keyword over time, one point per time step.", "items": { "$ref": "#/definitions/trends.InterestPoint" }, "type": "array" }, "keywords": { + "description": "Keywords that were compared.", "items": { "type": "string" }, "type": "array" }, "property": { + "description": "Google property filter that was applied, matching `type`.", "type": "string" }, "time_range": { + "description": "Time range that was applied, such as `today 12-m`.", "example": "today 12-m", "type": "string" }, "type": { + "description": "Search type that was applied: `web`, `image`, `news`, `youtube` or `shopping`.", "example": "web", "type": "string" }, "tz": { + "description": "Timezone offset in minutes that was applied.", "example": 0, "type": "integer" } @@ -198484,18 +210080,22 @@ "trends.InterestPoint": { "properties": { "formatted_axis_time": { + "description": "Date label used on the chart axis, such as `Apr 2026`.", "example": "Apr 2026", "type": "string" }, "formatted_time": { + "description": "Date label of this point as Google Trends shows it, such as `Apr 2026`.", "example": "Apr 2026", "type": "string" }, "time": { + "description": "Time of this data point, in Unix seconds, as a string.", "example": "1777075200", "type": "string" }, "values": { + "description": "Interest value for each keyword at this point.", "items": { "$ref": "#/definitions/trends.TrendValue" }, @@ -198507,14 +210107,17 @@ "trends.RegionInterest": { "properties": { "geo_code": { + "description": "Code of the region, such as `US-CA`.", "example": "US-CA", "type": "string" }, "geo_name": { + "description": "Name of the region, such as `California`.", "example": "California", "type": "string" }, "values": { + "description": "Interest value for each keyword in this region.", "items": { "$ref": "#/definitions/trends.TrendValue" }, @@ -198526,12 +210129,14 @@ "trends.RelatedGroup": { "properties": { "items": { + "description": "Related entries for this keyword.", "items": { "$ref": "#/definitions/trends.RelatedItem" }, "type": "array" }, "keyword": { + "description": "Keyword the related entries belong to.", "example": "chatgpt", "type": "string" } @@ -198541,30 +210146,37 @@ "trends.RelatedItem": { "properties": { "formatted_value": { + "description": "Value as Google Trends displays it.", "example": "100", "type": "string" }, "link": { + "description": "Google Trends path that opens this entry in Explore.", "example": "/trends/explore?q=chatgpt", "type": "string" }, "query": { + "description": "Related search query.", "example": "chatgpt login", "type": "string" }, "topic_mid": { + "description": "Google topic ID of the related topic, such as `/g/11khcfz0y2`.", "example": "/g/11khcfz0y2", "type": "string" }, "topic_title": { + "description": "Title of the related topic.", "example": "ChatGPT", "type": "string" }, "topic_type": { + "description": "Type label of the related topic, such as `Topic`.", "example": "Topic", "type": "string" }, "value": { + "description": "Relative popularity score Google Trends gives the entry.", "example": 100, "type": "integer" } @@ -198574,41 +210186,50 @@ "trends.RelatedTopicsResponse": { "properties": { "category": { + "description": "Trends category ID that was applied. `0` means all categories.", "example": 0, "type": "integer" }, "geo": { + "description": "Location code the data covers, such as `US`.", "example": "US", "type": "string" }, "hl": { + "description": "Locale that was applied, such as `en-US`.", "example": "en-US", "type": "string" }, "keywords": { + "description": "Keywords that were compared.", "items": { "type": "string" }, "type": "array" }, "property": { + "description": "Google property filter that was applied, matching `type`.", "type": "string" }, "related_topics": { + "description": "Related topics, grouped by keyword.", "items": { "$ref": "#/definitions/trends.RelatedGroup" }, "type": "array" }, "time_range": { + "description": "Time range that was applied, such as `today 12-m`.", "example": "today 12-m", "type": "string" }, "type": { + "description": "Search type that was applied: `web`, `image`, `news`, `youtube` or `shopping`.", "example": "web", "type": "string" }, "tz": { + "description": "Timezone offset in minutes that was applied.", "example": 0, "type": "integer" } @@ -198618,10 +210239,12 @@ "trends.TrendCategory": { "properties": { "id": { + "description": "Trends category ID. Pass it as `category`.", "example": 0, "type": "integer" }, "name": { + "description": "Category name, such as `All`.", "example": "All", "type": "string" } @@ -198631,18 +210254,22 @@ "trends.TrendValue": { "properties": { "formatted_value": { + "description": "Interest score as Google Trends displays it.", "example": "87", "type": "string" }, "has_data": { + "description": "Whether Google Trends has data for this keyword at this point.", "example": true, "type": "boolean" }, "keyword": { + "description": "Keyword the value belongs to.", "example": "chatgpt", "type": "string" }, "value": { + "description": "Relative interest score for the keyword, as Google Trends reports it.", "example": 87, "type": "integer" } @@ -198652,18 +210279,22 @@ "trends.TrendingArticle": { "properties": { "source": { + "description": "Name of the news outlet that published the article.", "example": "Example News", "type": "string" }, "time": { + "description": "When the article was published, as Google words it, such as `2 hours ago`.", "example": "2 hours ago", "type": "string" }, "title": { + "description": "Headline of the news article.", "example": "Why chatgpt is trending", "type": "string" }, "url": { + "description": "URL of the news article.", "example": "https://example.com/news", "type": "string" } @@ -198981,49 +210612,60 @@ "trends.TrendingItem": { "properties": { "articles": { + "description": "News articles linked to the trend.", "items": { "$ref": "#/definitions/trends.TrendingArticle" }, "type": "array" }, "explore_url": { + "description": "Google Trends Explore URL for the trend.", "example": "https://trends.google.com/trends/explore?q=chatgpt&geo=US", "type": "string" }, "query": { + "description": "Search query behind the trend.", "example": "chatgpt", "type": "string" }, "rank": { + "description": "Rank of the trend in the list, with `1` as the top entry.", "example": 1, "type": "integer" }, "related_terms": { + "description": "Related search terms listed for the trend.", "items": { "type": "string" }, "type": "array" }, "share_url": { + "description": "Link for sharing the trend.", "type": "string" }, "started_unix": { + "description": "Time the trend started, in Unix seconds.", "example": 1777075200, "type": "integer" }, "status": { + "description": "Whether the trend is `active` or `ended`.", "example": "active", "type": "string" }, "title": { + "description": "Title of the trend.", "example": "chatgpt", "type": "string" }, "traffic": { + "description": "Approximate search volume label for the trend, such as `200K+`.", "example": "200K+", "type": "string" }, "updated_unix": { + "description": "Time the trend was last updated, in Unix seconds.", "example": 1777078800, "type": "integer" } @@ -199033,40 +210675,49 @@ "trends.TrendingResponse": { "properties": { "category": { + "description": "Trends category ID that was applied. `0` means all categories.", "example": 0, "type": "integer" }, "geo": { + "description": "Country code the trends cover, such as `US`.", "example": "US", "type": "string" }, "hl": { + "description": "Locale that was applied, such as `en-US`.", "example": "en-US", "type": "string" }, "items": { + "description": "Trending searches, one entry per trend.", "items": { "$ref": "#/definitions/trends.TrendingItem" }, "type": "array" }, "sort_by": { + "description": "Sort order that was applied: `relevance`, `title`, `recency` or `search_volume`.", "example": "relevance", "type": "string" }, "status": { + "description": "Status filter that was applied: `all`, `active` or `ended`.", "example": "all", "type": "string" }, "time_range": { + "description": "Time window that was applied. Same value as `window`.", "example": "24h", "type": "string" }, "tz": { + "description": "Timezone offset in minutes that was applied.", "example": 0, "type": "integer" }, "window": { + "description": "Time window that was applied: `4h`, `24h`, `48h` or `7d`.", "example": "24h", "type": "string" } @@ -199076,6 +210727,7 @@ "trends.TrendsCategoriesResponse": { "properties": { "categories": { + "description": "Supported Trends categories, each with an ID and name.", "items": { "$ref": "#/definitions/trends.TrendCategory" }, @@ -199087,42 +210739,49 @@ "trends.TrendsEnumsResponse": { "properties": { "explore_time_ranges": { + "description": "Supported `time_range` values for the Explore endpoints.", "items": { "type": "string" }, "type": "array" }, "locations": { + "description": "Supported location codes.", "items": { "type": "string" }, "type": "array" }, "search_types": { + "description": "Supported search `type` values.", "items": { "type": "string" }, "type": "array" }, "trend_statuses": { + "description": "Supported `status` values for Trending Now.", "items": { "type": "string" }, "type": "array" }, "trending_categories": { + "description": "Supported category IDs for Trending Now, each with a name.", "items": { "$ref": "#/definitions/trends.TrendCategory" }, "type": "array" }, "trending_sort_bys": { + "description": "Supported `sort_by` values for Trending Now.", "items": { "type": "string" }, "type": "array" }, "trending_time_ranges": { + "description": "Supported `window` values for Trending Now.", "items": { "type": "string" }, @@ -199134,6 +210793,7 @@ "trends.TrendsLocationsResponse": { "properties": { "locations": { + "description": "Supported location codes, such as `US`.", "items": { "type": "string" }, @@ -199289,20 +210949,24 @@ "tripadvisor.AutocompleteResponse": { "properties": { "locale": { + "description": "Locale code the suggestions were returned in, for example `en-HK`.", "example": "en-HK", "type": "string" }, "query": { + "description": "Search text that was run.", "example": "hong kong", "type": "string" }, "results": { + "description": "Suggested locations and places for the search text, one entry per suggestion.", "items": { "$ref": "#/definitions/tripadvisor.SearchItem" }, "type": "array" }, "scope_geo_id": { + "description": "TripAdvisor geo id the suggestions were limited to. Defaults to `60763` when no scope is given.", "example": 60763, "type": "integer" } @@ -199312,6 +210976,7 @@ "tripadvisor.EnumsResponse": { "properties": { "attraction_categories": { + "description": "Attraction category types accepted by the `type` parameter of the search endpoint.", "example": [ "attraction", "tour", @@ -199326,6 +210991,7 @@ "additionalProperties": { "type": "string" }, + "description": "Map from each attraction category type to its TripAdvisor category id, for example `tour` to `c42`.", "example": { "day_trip": "c63", "tour": "c42" @@ -199333,6 +210999,7 @@ "type": "object" }, "currencies": { + "description": "Currency codes accepted by the `currency` parameter, for example `HKD`.", "example": [ "HKD", "USD", @@ -199344,6 +211011,7 @@ "type": "array" }, "filter_ids": { + "description": "Filter ids accepted by the `filter_id` parameter.", "example": [ "class", "ufe" @@ -199354,6 +211022,7 @@ "type": "array" }, "hotel_amenities": { + "description": "Hotel amenity ids accepted by the `amenities` parameter.", "example": [ 9176, 9179 @@ -199364,6 +211033,7 @@ "type": "array" }, "hotel_classes": { + "description": "Hotel star classes accepted by the `class` parameter.", "example": [ 1, 2, @@ -199377,6 +211047,7 @@ "type": "array" }, "languages": { + "description": "Review language codes accepted by the reviews endpoint, for example `en`.", "example": [ "en", "fr", @@ -199388,6 +211059,7 @@ "type": "array" }, "listing_types": { + "description": "Listing types accepted by the `type` parameter of the search endpoint, for example `hotel`.", "example": [ "hotel", "restaurant", @@ -199399,6 +211071,7 @@ "type": "array" }, "locales": { + "description": "Locale codes accepted by the `locale` parameter, for example `en-HK`.", "example": [ "en-HK", "en-US", @@ -199410,6 +211083,7 @@ "type": "array" }, "pricing_modes": { + "description": "Pricing modes accepted by the `pricing_mode` parameter.", "example": [ "ALL_IN_RATE" ], @@ -199419,6 +211093,7 @@ "type": "array" }, "restaurant_options": { + "description": "Restaurant online-option ids accepted by the `online_options` parameter.", "example": [ 20693 ], @@ -199428,6 +211103,7 @@ "type": "array" }, "restaurant_types": { + "description": "Restaurant establishment-type ids accepted by the `establishment_types` parameter.", "example": [ 10591 ], @@ -199437,6 +211113,7 @@ "type": "array" }, "sorts": { + "description": "Sort orders accepted by the `sort` parameter, for example `BEST_VALUE`.", "example": [ "BEST_VALUE", "POPULARITY" @@ -199447,6 +211124,7 @@ "type": "array" }, "unsupported_entity_types": { + "description": "Entity types that cannot be searched, for example `airline`. Omitted when none.", "example": [ "airline", "airport" @@ -199462,86 +211140,108 @@ "tripadvisor.HotelItem": { "properties": { "address": { + "description": "Street address of the hotel.", "type": "string" }, "currency": { + "description": "Currency code of the listed price, for example `HKD`.", "example": "HKD", "type": "string" }, "id": { + "description": "TripAdvisor location id of the hotel. Use it with the place and reviews endpoints.", "example": "113311", "type": "string" }, "image": { + "description": "URL of the hotel's main image.", "type": "string" }, "latitude": { + "description": "Latitude of the hotel in decimal degrees.", "example": 40.76174, "type": "number" }, "longitude": { + "description": "Longitude of the hotel in decimal degrees.", "example": -73.975365, "type": "number" }, "parent": { + "description": "Name of the city or area the hotel is in.", "example": "New York City", "type": "string" }, "phone": { + "description": "Phone number of the hotel.", "type": "string" }, "price": { + "description": "Price shown on the listing, formatted with the currency symbol, for example `HK$7,793`.", "example": "HK$7,793", "type": "string" }, "provider": { + "description": "Booking site that offers the listed price, for example `Agoda`.", "example": "Agoda", "type": "string" }, "rank": { + "description": "Hotel's position in TripAdvisor's ranking for the location.", "example": 146, "type": "integer" }, "rank_label": { + "description": "Ranking text as TripAdvisor shows it, for example `#141 of 519 hotels in New York City`.", "example": "#141 of 519 hotels in New York City", "type": "string" }, "rating": { + "description": "Average traveller rating out of 5.", "example": 4.5, "type": "number" }, "review_count": { + "description": "Number of traveller reviews the hotel has.", "example": 1517, "type": "integer" }, "review_rating": { + "description": "Rating given in the review shown on the hotel listing.", "type": "number" }, "review_snippet": { + "description": "Excerpt of a review shown on the hotel listing.", "type": "string" }, "review_title": { + "description": "Title of the review shown on the hotel listing.", "type": "string" }, "star_rating": { + "description": "Official star class of the hotel, for example `5`.", "example": 5, "type": "number" }, "tags": { + "description": "Short labels TripAdvisor shows on the hotel listing.", "items": { "type": "string" }, "type": "array" }, "title": { + "description": "Hotel name as shown on the listing.", "example": "The Peninsula New York", "type": "string" }, "type": { + "description": "Listing type, for example `hotel`.", "example": "hotel", "type": "string" }, "url": { + "description": "TripAdvisor page URL of the hotel.", "type": "string" } }, @@ -199550,36 +211250,44 @@ "tripadvisor.HotelListResponse": { "properties": { "currency": { + "description": "Currency code the prices are shown in, for example `HKD`.", "example": "HKD", "type": "string" }, "full_matches": { + "description": "Number of hotels TripAdvisor counts as full matches for the filters. Omitted when TripAdvisor gives no count.", "example": 519, "type": "integer" }, "geo_id": { + "description": "TripAdvisor geo id of the location the hotels are listed for.", "example": 294217, "type": "integer" }, "limit": { + "description": "Maximum number of hotels returned on this page.", "example": 30, "type": "integer" }, "offset": { + "description": "Result offset of this page.", "example": 0, "type": "integer" }, "results": { + "description": "Hotels on this page, one entry per hotel.", "items": { "$ref": "#/definitions/tripadvisor.HotelItem" }, "type": "array" }, "sort": { + "description": "Sort order that was applied, for example `BEST_VALUE`.", "example": "BEST_VALUE", "type": "string" }, "total": { + "description": "Total number of hotels TripAdvisor lists for the location and filters. Omitted when TripAdvisor gives no total.", "example": 519, "type": "integer" } @@ -199589,18 +211297,22 @@ "tripadvisor.NestedSearchItem": { "properties": { "query": { + "description": "Search text the shortcut runs, for example `hong kong hotels`.", "example": "hong kong hotels", "type": "string" }, "title": { + "description": "Label of the shortcut, for example `Hotels`.", "example": "Hotels", "type": "string" }, "type": { + "description": "Kind of search the shortcut opens, for example `hotel_search`.", "example": "hotel_search", "type": "string" }, "url": { + "description": "TripAdvisor page URL of the shortcut.", "example": "https://en.tripadvisor.com.hk/Hotels-g294217-Hong_Kong-Hotels.html", "type": "string" } @@ -199610,18 +211322,23 @@ "tripadvisor.PlaceAddressParts": { "properties": { "country": { + "description": "Country name of the place's address.", "type": "string" }, "locality": { + "description": "City or town.", "type": "string" }, "postal_code": { + "description": "Postal or ZIP code.", "type": "string" }, "region": { + "description": "State, province or region.", "type": "string" }, "street": { + "description": "Street address line.", "type": "string" } }, @@ -199630,16 +211347,20 @@ "tripadvisor.PlaceImage": { "properties": { "caption": { + "description": "Caption of the image.", "type": "string" }, "height": { + "description": "Height of the image in pixels.", "example": 768, "type": "integer" }, "url": { + "description": "URL of the image.", "type": "string" }, "width": { + "description": "Width of the image in pixels.", "example": 1024, "type": "integer" } @@ -199649,105 +211370,131 @@ "tripadvisor.PlaceItem": { "properties": { "address": { + "description": "Street address of the place.", "type": "string" }, "booking_url": { + "description": "URL where TripAdvisor lets you book or reserve the place.", "type": "string" }, "categories": { + "description": "Categories TripAdvisor lists for the place.", "items": { "type": "string" }, "type": "array" }, "cuisines": { + "description": "Cuisines a restaurant serves.", "items": { "type": "string" }, "type": "array" }, "currency": { + "description": "Currency code of the listed price, for example `HKD`.", "example": "HKD", "type": "string" }, "id": { + "description": "TripAdvisor location id of the place. Use it with the place and reviews endpoints.", "example": "5493196", "type": "string" }, "image": { + "description": "URL of the place's main image.", "type": "string" }, "latitude": { + "description": "Latitude of the place in decimal degrees.", "example": 22.28331, "type": "number" }, "longitude": { + "description": "Longitude of the place in decimal degrees.", "example": 114.15874, "type": "number" }, "parent": { + "description": "Name of the city or area the place is in.", "example": "Hong Kong", "type": "string" }, "phone": { + "description": "Phone number of the place.", "type": "string" }, "price": { + "description": "Price shown on the listing, formatted with the currency symbol, for example `HK$7,793`.", "example": "HK$7,793", "type": "string" }, "price_level": { + "description": "Price band as TripAdvisor shows it, for example `$$ - $$$`.", "example": "$$ - $$$", "type": "string" }, "provider": { + "description": "Booking or reservation provider shown on the listing, for example `Agoda`.", "example": "Agoda", "type": "string" }, "rank": { + "description": "Place's position in TripAdvisor's ranking for the location.", "example": 12, "type": "integer" }, "rank_label": { + "description": "Ranking text as TripAdvisor shows it, for example `#12 of 12000 restaurants in Hong Kong`.", "example": "#12 of 12000 restaurants in Hong Kong", "type": "string" }, "rating": { + "description": "Average traveller rating out of 5.", "example": 4.5, "type": "number" }, "review_count": { + "description": "Number of traveller reviews the place has.", "example": 1217, "type": "integer" }, "review_rating": { + "description": "Rating given in the review shown on the listing.", "type": "number" }, "review_snippet": { + "description": "Excerpt of a review shown on the listing.", "type": "string" }, "review_title": { + "description": "Title of the review shown on the listing.", "type": "string" }, "star_rating": { + "description": "Official star class of the place, for example `5`. Shown for hotels.", "example": 5, "type": "number" }, "tags": { + "description": "Short labels TripAdvisor shows on the listing.", "items": { "type": "string" }, "type": "array" }, "title": { + "description": "Place name as shown on the listing.", "example": "Hong Kong Asian Cuisine", "type": "string" }, "type": { + "description": "Listing type, for example `restaurant`.", "example": "restaurant", "type": "string" }, "url": { + "description": "TripAdvisor page URL of the place.", "type": "string" } }, @@ -199756,14 +211503,17 @@ "tripadvisor.PlaceLink": { "properties": { "label": { + "description": "Link label, for example `Official website`.", "example": "Official website", "type": "string" }, "type": { + "description": "Kind of link, for example `website` or `canonical`.", "example": "website", "type": "string" }, "url": { + "description": "Address of the link.", "type": "string" } }, @@ -199772,134 +211522,169 @@ "tripadvisor.PlaceResponse": { "properties": { "address": { + "description": "Full address of the place as one line.", "type": "string" }, "address_parts": { - "$ref": "#/definitions/tripadvisor.PlaceAddressParts" + "allOf": [ + { + "$ref": "#/definitions/tripadvisor.PlaceAddressParts" + } + ], + "description": "Address split into street, locality, region, postal code and country." }, "amenities": { + "description": "Amenities TripAdvisor lists for the place.", "items": { "type": "string" }, "type": "array" }, "awards": { + "description": "Awards shown on the place's page, for example `Travelers' Choice`.", "items": { "type": "string" }, "type": "array" }, "breadcrumbs": { + "description": "Locations above the place, from the widest region to the city, for example `Asia`, `China`, `Hong Kong`.", "items": { "type": "string" }, "type": "array" }, "canonical_url": { + "description": "Canonical TripAdvisor page URL of the place.", "type": "string" }, "categories": { + "description": "Categories TripAdvisor lists for the place.", "items": { "type": "string" }, "type": "array" }, "cuisines": { + "description": "Cuisines a restaurant serves.", "items": { "type": "string" }, "type": "array" }, "description": { + "description": "Longer description of the place.", "type": "string" }, "features": { + "description": "Features TripAdvisor lists for the place.", "items": { "type": "string" }, "type": "array" }, "geo_id": { + "description": "TripAdvisor geo id of the location the place is in.", "example": "60763", "type": "string" }, "id": { + "description": "TripAdvisor location id of the place.", "example": "5493196", "type": "string" }, "image": { + "description": "URL of the place's main image.", "type": "string" }, "images": { + "description": "Photos of the place, one entry per image.", "items": { "$ref": "#/definitions/tripadvisor.PlaceImage" }, "type": "array" }, "latitude": { + "description": "Latitude of the place in decimal degrees.", "example": 22.28331, "type": "number" }, "links": { + "description": "Useful links for the place, such as its TripAdvisor page and official website.", "items": { "$ref": "#/definitions/tripadvisor.PlaceLink" }, "type": "array" }, "longitude": { + "description": "Longitude of the place in decimal degrees.", "example": 114.15874, "type": "number" }, "opening_hours": { + "description": "Opening hours, one entry per line, for example `Monday 10:00 - 22:00`.", "items": { "type": "string" }, "type": "array" }, "phone": { + "description": "Phone number of the place.", "type": "string" }, "price_level": { + "description": "Price band as TripAdvisor shows it, for example `$$ - $$$`.", "example": "$$ - $$$", "type": "string" }, "price_range": { + "description": "Price range as TripAdvisor shows it, for example `$$ - $$$`.", "example": "$$ - $$$", "type": "string" }, "rank": { + "description": "Place's position in TripAdvisor's ranking for its location.", "example": 1, "type": "integer" }, "rank_label": { + "description": "Ranking text as TripAdvisor shows it, for example `#1 of 1,531 things to do in Hong Kong`.", "example": "#1 of 1,531 things to do in Hong Kong", "type": "string" }, "rating": { + "description": "Average traveller rating out of 5.", "type": "number" }, "reviews": { + "description": "Number of traveller reviews the place has.", "type": "integer" }, "summary": { + "description": "Short summary of the place.", "type": "string" }, "tags": { + "description": "Short labels TripAdvisor shows for the place.", "items": { "type": "string" }, "type": "array" }, "title": { + "description": "Place name as shown on TripAdvisor.", "type": "string" }, "type": { + "description": "Kind of page, such as `attraction`, `geo` for a destination or `attraction_product` for a bookable tour.", "type": "string" }, "url": { + "description": "TripAdvisor page URL of the place.", "type": "string" }, "website_url": { + "description": "URL of the place's own website.", "type": "string" } }, @@ -199908,60 +211693,78 @@ "tripadvisor.ReviewItem": { "properties": { "author": { + "description": "Reviewer's display name.", "type": "string" }, "author_avatar": { + "description": "URL of the reviewer's profile picture.", "type": "string" }, "author_hometown": { + "description": "Reviewer's hometown as shown on their profile.", "type": "string" }, "author_id": { + "description": "TripAdvisor id of the reviewer.", "type": "string" }, "author_url": { + "description": "TripAdvisor profile URL of the reviewer.", "type": "string" }, "created_date": { + "description": "Date the review was written, for example `2026-05-01`.", "type": "string" }, "date": { + "description": "Date the review was published, for example `2026-05-01`.", "type": "string" }, "helpful": { + "description": "Number of helpful votes the review received.", "type": "integer" }, "id": { + "description": "TripAdvisor review id.", "type": "string" }, "language": { + "description": "Language code of the review text returned.", "type": "string" }, "original_language": { + "description": "Language code the review was originally written in.", "type": "string" }, "photos": { + "description": "URLs of photos attached to the review.", "items": { "type": "string" }, "type": "array" }, "rating": { + "description": "Rating the reviewer gave, out of 5.", "type": "number" }, "stay_date": { + "description": "Date of the reviewer's visit or stay, as TripAdvisor gives it.", "type": "string" }, "text": { + "description": "Full text of the review.", "type": "string" }, "title": { + "description": "Title the reviewer gave the review.", "type": "string" }, "trip_type": { + "description": "Type of trip the reviewer reported, as TripAdvisor labels it.", "type": "string" }, "url": { + "description": "TripAdvisor page URL of the review.", "type": "string" } }, @@ -199970,32 +211773,39 @@ "tripadvisor.ReviewsResponse": { "properties": { "id": { + "description": "TripAdvisor location id the reviews belong to.", "example": "5493196", "type": "string" }, "language": { + "description": "Review language code that was applied, for example `en`.", "example": "en", "type": "string" }, "limit": { + "description": "Maximum number of reviews returned per page.", "example": 20, "type": "integer" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "reviews": { + "description": "Reviews on this page, one entry per review.", "items": { "$ref": "#/definitions/tripadvisor.ReviewItem" }, "type": "array" }, "total": { + "description": "Total number of reviews matching the filters.", "example": 25770, "type": "integer" }, "url": { + "description": "TripAdvisor page URL of the place the reviews belong to.", "type": "string" } }, @@ -200004,43 +211814,53 @@ "tripadvisor.SearchItem": { "properties": { "document_id": { + "description": "TripAdvisor document id of the suggestion, for example `loc;294217;g294217`.", "example": "loc;294217;g294217", "type": "string" }, "id": { + "description": "TripAdvisor id of the suggested place or location.", "example": "294217", "type": "string" }, "image": { + "description": "URL of an image for the suggestion.", "type": "string" }, "latitude": { + "description": "Latitude of the suggestion in decimal degrees.", "example": 22.28331, "type": "number" }, "longitude": { + "description": "Longitude of the suggestion in decimal degrees.", "example": 114.15874, "type": "number" }, "nested_results": { + "description": "Search shortcuts TripAdvisor offers under the suggestion, such as hotels or things to do in that location.", "items": { "$ref": "#/definitions/tripadvisor.NestedSearchItem" }, "type": "array" }, "parent": { + "description": "Parent locations of the suggestion, for example `China, Asia`.", "example": "China, Asia", "type": "string" }, "title": { + "description": "Name of the suggested place or location.", "example": "Hong Kong", "type": "string" }, "type": { + "description": "Kind of suggestion, for example `geo` for a destination.", "example": "geo", "type": "string" }, "url": { + "description": "TripAdvisor page URL of the suggestion.", "example": "https://en.tripadvisor.com.hk/Tourism-g294217-Hong_Kong-Vacations.html", "type": "string" } @@ -200050,44 +211870,54 @@ "tripadvisor.SearchResponse": { "properties": { "currency": { + "description": "Currency code the prices are shown in, for example `HKD`.", "example": "HKD", "type": "string" }, "geo_id": { + "description": "TripAdvisor geo id of the location the places are listed for.", "example": 294217, "type": "integer" }, "limit": { + "description": "Maximum number of places returned on this page.", "example": 30, "type": "integer" }, "locale": { + "description": "Locale code the results were returned in, for example `en-HK`.", "example": "en-HK", "type": "string" }, "offset": { + "description": "Result offset of this page.", "example": 0, "type": "integer" }, "results": { + "description": "Places on this page, one entry per place.", "items": { "$ref": "#/definitions/tripadvisor.PlaceItem" }, "type": "array" }, "sort": { + "description": "Sort order that was applied, for example `POPULARITY`.", "example": "POPULARITY", "type": "string" }, "source": { + "description": "Label for the kind of TripAdvisor listing the results came from.", "example": "html_listing", "type": "string" }, "type": { + "description": "Listing type that was searched, for example `restaurant`.", "example": "restaurant", "type": "string" }, "unsupported_types": { + "description": "Entity types that this search does not cover, for example `airline`. Omitted when none.", "example": [ "vacation_rental", "tour", @@ -200540,9 +212370,11 @@ "trustmrr.AskingPricePoint": { "properties": { "created_at": { + "description": "Time the asking price was set, in ISO 8601.", "type": "string" }, "price": { + "description": "Asking price recorded at that time.", "type": "number" } }, @@ -200551,12 +212383,14 @@ "trustmrr.CategoriesResponse": { "properties": { "categories": { + "description": "TrustMRR startup categories, one item per category.", "items": { "$ref": "#/definitions/trustmrr.Category" }, "type": "array" }, "count": { + "description": "Number of categories returned.", "example": 31, "type": "integer" } @@ -200566,31 +212400,38 @@ "trustmrr.Category": { "properties": { "description": { + "description": "Short description of the category.", "type": "string" }, "icon": { + "description": "Name of the icon TrustMRR uses for the category, for example `Sparkles`.", "example": "Sparkles", "type": "string" }, "keywords": { + "description": "Keywords associated with the category.", "items": { "type": "string" }, "type": "array" }, "label": { + "description": "Full category name, for example `Artificial Intelligence`.", "example": "Artificial Intelligence", "type": "string" }, "label_short": { + "description": "Short category name, for example `AI`.", "example": "AI", "type": "string" }, "slug": { + "description": "URL slug of the category. Use it with the category endpoint.", "example": "ai", "type": "string" }, "url": { + "description": "Link to the category page on TrustMRR.", "example": "https://trustmrr.com/category/ai", "type": "string" } @@ -200600,19 +212441,23 @@ "trustmrr.CategoryResponse": { "properties": { "count": { + "description": "Number of startups returned.", "type": "integer" }, "slug": { + "description": "URL slug of the category that was requested.", "example": "saas", "type": "string" }, "startups": { + "description": "Startups listed in the category, one item per startup.", "items": { "$ref": "#/definitions/trustmrr.CategoryStartup" }, "type": "array" }, "url": { + "description": "Link to the category page on TrustMRR.", "example": "https://trustmrr.com/category/saas", "type": "string" } @@ -200622,35 +212467,45 @@ "trustmrr.CategoryStartup": { "properties": { "current_last_30_days_revenue": { + "description": "Verified revenue over the last 30 days, in US dollars.", "type": "number" }, "current_mrr": { + "description": "Verified monthly recurring revenue, in US dollars.", "type": "number" }, "current_total_revenue": { + "description": "Verified total revenue to date, in US dollars.", "type": "number" }, "description": { + "description": "Startup description as shown on TrustMRR.", "type": "string" }, "icon": { + "description": "URL of the startup's icon image.", "type": "string" }, "is_merchant_of_record": { + "description": "`true` when the startup is flagged as the merchant of record for its sales.", "type": "boolean" }, "name": { + "description": "Startup name as shown on TrustMRR.", "example": "Hidden Business", "type": "string" }, "on_sale": { + "description": "`true` when the startup is currently listed for sale.", "type": "boolean" }, "slug": { + "description": "URL slug of the startup on TrustMRR. Use it with the startup endpoint.", "example": "hidden-business-3", "type": "string" }, "url": { + "description": "Link to the startup's page on TrustMRR.", "example": "https://trustmrr.com/startup/hidden-business-3", "type": "string" } @@ -200660,66 +212515,85 @@ "trustmrr.LeaderboardEntry": { "properties": { "current_last_30_days_revenue": { + "description": "Verified revenue over the last 30 days, in US dollars.", "type": "number" }, "current_mrr": { + "description": "Verified monthly recurring revenue, in US dollars.", "example": 3569654.22, "type": "number" }, "current_total_revenue": { + "description": "Verified total revenue to date, in US dollars.", "example": 76627685.07, "type": "number" }, "description": { + "description": "Startup description as shown on TrustMRR.", "type": "string" }, "growth_30d": { + "description": "Growth over the last 30 days, in percent.", "type": "number" }, "growth_mrr_30d": { + "description": "Growth in monthly recurring revenue over the last 30 days, in percent.", "type": "number" }, "icon": { + "description": "URL of the startup's icon image.", "type": "string" }, "is_merchant_of_record": { + "description": "`true` when the startup is flagged as the merchant of record for its sales.", "type": "boolean" }, "name": { + "description": "Startup name as shown on TrustMRR.", "example": "Stan", "type": "string" }, "on_sale": { + "description": "`true` when the startup is currently listed for sale.", "type": "boolean" }, "rank": { + "description": "Position in the leaderboard for the selected metric, starting at 1.", "example": 1, "type": "integer" }, "revenue_per_visitor_last_30_days": { + "description": "Revenue per visitor over the last 30 days.", "type": "number" }, "slug": { + "description": "URL slug of the startup on TrustMRR. Use it with the startup endpoint.", "example": "stan", "type": "string" }, "stealth_mode": { + "description": "`true` when the startup is listed in stealth mode.", "type": "boolean" }, "traffic_last_30_days": { + "description": "Traffic to the startup's website over the last 30 days.", "type": "number" }, "url": { + "description": "Link to the startup's page on TrustMRR.", "example": "https://trustmrr.com/startup/stan", "type": "string" }, "x_founder_name": { + "description": "Founder's display name on X.", "type": "string" }, "x_handle": { + "description": "Founder's X handle, without the `@`.", "type": "string" }, "x_profile_picture": { + "description": "URL of the founder's X profile picture.", "type": "string" } }, @@ -200747,10 +212621,12 @@ "trustmrr.LeaderboardResponse": { "properties": { "count": { + "description": "Number of startups in the leaderboard.", "example": 100, "type": "integer" }, "entries": { + "description": "Ranked startups, best first.", "items": { "$ref": "#/definitions/trustmrr.LeaderboardEntry" }, @@ -200762,6 +212638,7 @@ "$ref": "#/definitions/trustmrr.LeaderboardMetric" } ], + "description": "Metric the leaderboard is ranked by: `mrr`, `last_30_days_revenue`, `all_time_revenue`, `growth`, `traffic` or `revenue_per_visitor`.", "example": "mrr" } }, @@ -200906,75 +212783,100 @@ "trustmrr.Startup": { "properties": { "ahrefs_domain": { + "description": "Domain TrustMRR uses to look up the startup's Ahrefs domain rating.", "type": "string" }, "ahrefs_domain_rating": { + "description": "Ahrefs domain rating of the startup's website.", "type": "integer" }, "asking_price": { + "description": "Price the seller is asking for the startup.", "example": 600000, "type": "number" }, "asking_price_history": { + "description": "Earlier asking prices for the startup, one item per recorded price.", "items": { "$ref": "#/definitions/trustmrr.AskingPricePoint" }, "type": "array" }, "branding_primary_color": { + "description": "Primary brand color of the startup, as a hex code.", "example": "#ffffff", "type": "string" }, "branding_secondary_color": { + "description": "Secondary brand color of the startup, as a hex code.", "example": "#000000", "type": "string" }, "category": { + "description": "Category label of the startup, for example `Mobile App`.", "example": "Mobile App", "type": "string" }, "category_slug": { + "description": "URL slug of the startup's category, for example `mobile-app`.", "example": "mobile-app", "type": "string" }, "country": { + "description": "Country code of the startup, for example `PL`.", "example": "PL", "type": "string" }, "created_at": { + "description": "Time the startup was added to TrustMRR, in ISO 8601.", "type": "string" }, "deal_score": { + "description": "TrustMRR's recency-aware acquisition score for the listing.", "type": "number" }, "description": { + "description": "Startup description as shown on TrustMRR.", "type": "string" }, "enrichment": { - "$ref": "#/definitions/trustmrr.StartupEnrichment" + "allOf": [ + { + "$ref": "#/definitions/trustmrr.StartupEnrichment" + } + ], + "description": "TrustMRR's AI-generated business summary for the startup." }, "first_listed_for_sale_at": { + "description": "Time the startup was first listed for sale, in ISO 8601.", "type": "string" }, "founded_date": { + "description": "Date the startup was founded, in ISO 8601.", "type": "string" }, "growth_30d": { + "description": "Growth over the last 30 days, in percent.", "type": "number" }, "growth_mrr_30d": { + "description": "Growth in monthly recurring revenue over the last 30 days, in percent.", "type": "number" }, "has_dofollow_backlink": { + "description": "`true` when TrustMRR has verified a dofollow backlink for the startup.", "type": "boolean" }, "has_google_analytics": { + "description": "`true` when TrustMRR has verified Google Analytics for the startup.", "type": "boolean" }, "has_search_console": { + "description": "`true` when TrustMRR has verified Google Search Console for the startup.", "type": "boolean" }, "icon": { + "description": "URL of the startup's icon image.", "type": "string" }, "insight_overrides": { @@ -200986,137 +212888,179 @@ "description": "InsightOverrides holds the human-curated business summary TrustMRR displays\nin place of the AI enrichment when a seller has edited it." }, "is_merchant_of_record": { + "description": "`true` when the startup is flagged as the merchant of record for its sales.", "type": "boolean" }, "is_sponsored": { + "description": "`true` when the listing is sponsored.", "type": "boolean" }, "listing_tier": { + "description": "Marketplace listing tier of the startup, for example `pro`.", "example": "pro", "type": "string" }, "looking_for_cofounder": { + "description": "`true` when the startup is looking for a cofounder.", "type": "boolean" }, "looking_for_cofounder_message": { + "description": "Message from the founder about the cofounder search. Text written by the founder.", "type": "string" }, "marketing_channels": { + "description": "Marketing channels detected for the startup, one item per channel.", "items": { "$ref": "#/definitions/trustmrr.StartupChannel" }, "type": "array" }, "merchant_category_code": { + "description": "Merchant category code of the startup's payment processor account, for example `7372`.", "example": "7372", "type": "string" }, "mrr_last_synced_at": { + "description": "Time the monthly recurring revenue was last synced, in ISO 8601.", "type": "string" }, "multiple": { + "description": "Asking price divided by trailing revenue.", "example": 2.12, "type": "number" }, "name": { + "description": "Startup name as shown on TrustMRR.", "example": "TrackAI", "type": "string" }, "offer_count": { + "description": "Number of offers made on the listing.", "type": "integer" }, "on_sale": { + "description": "`true` when the startup is currently listed for sale.", "type": "boolean" }, "payment_provider": { + "description": "Payment provider that verifies the startup's revenue, for example `revenuecat`.", "example": "revenuecat", "type": "string" }, "profit_margin_last_30_days": { + "description": "Profit margin over the last 30 days, in percent.", "example": 10, "type": "number" }, "rank": { + "description": "Position of the startup on TrustMRR's ranking.", "example": 858, "type": "integer" }, "revenue": { - "$ref": "#/definitions/trustmrr.StartupRevenue" + "allOf": [ + { + "$ref": "#/definitions/trustmrr.StartupRevenue" + } + ], + "description": "Verified revenue figures for the startup, in US dollars." }, "revenue_last_synced_at": { + "description": "Time the revenue figures were last synced, in ISO 8601.", "type": "string" }, "revenue_per_visitor_last_30_days": { + "description": "Revenue per visitor over the last 30 days.", "type": "number" }, "secondary_payment_provider": { + "description": "Second payment provider connected to the startup, when it has one.", "type": "string" }, "seller_message": { + "description": "Message from the seller on the listing. Text written by the seller.", "type": "string" }, "slug": { + "description": "URL slug of the startup on TrustMRR. Use it with the startup endpoint.", "example": "trackai", "type": "string" }, "status": { + "description": "Startup status on TrustMRR, for example `active`.", "example": "active", "type": "string" }, "stealth_mode": { + "description": "`true` when the startup is listed in stealth mode.", "type": "boolean" }, "target_audience": { + "description": "Audience the startup sells to, for example `B2C` or `B2B`.", "example": "B2C", "type": "string" }, "tech_stack": { + "description": "Technologies detected in the startup's stack, one item per technology.", "items": { "$ref": "#/definitions/trustmrr.StartupTech" }, "type": "array" }, "traffic_last_12_months": { + "description": "Traffic to the startup's website over the last 12 months.", "type": "number" }, "traffic_last_24_hours": { + "description": "Traffic to the startup's website over the last 24 hours.", "type": "number" }, "traffic_last_30_days": { + "description": "Traffic to the startup's website over the last 30 days.", "type": "number" }, "traffic_last_7_days": { + "description": "Traffic to the startup's website over the last 7 days.", "type": "number" }, "updated_at": { + "description": "Time the startup record was last updated, in ISO 8601.", "type": "string" }, "url": { + "description": "Link to the startup's page on TrustMRR.", "example": "https://trustmrr.com/startup/trackai", "type": "string" }, "user_category": { + "description": "Second category label for the startup, for example `Mobile Apps`.", "example": "Mobile Apps", "type": "string" }, "user_category_slug": { + "description": "URL slug of the second category label, for example `mobile-apps`.", "example": "mobile-apps", "type": "string" }, "website": { + "description": "Startup's website address.", "example": "https://trackai.app", "type": "string" }, "x_follower_count": { + "description": "Number of followers of the founder's X account.", "type": "integer" }, "x_founder_name": { + "description": "Founder's display name on X.", "type": "string" }, "x_handle": { + "description": "Founder's X handle, without the `@`.", "type": "string" }, "x_profile_picture": { + "description": "URL of the founder's X profile picture.", "type": "string" } }, @@ -201125,10 +213069,12 @@ "trustmrr.StartupChannel": { "properties": { "category": { + "description": "Marketing channel category, for example `paid`.", "example": "paid", "type": "string" }, "slug": { + "description": "Marketing channel identifier, for example `meta-ads`.", "example": "meta-ads", "type": "string" } @@ -201138,40 +213084,50 @@ "trustmrr.StartupEnrichment": { "properties": { "business_type": { + "description": "Business type of the startup, for example `B2C`.", "example": "B2C", "type": "string" }, "estimated_user_count": { + "description": "Estimated number of users of the startup's product.", "type": "integer" }, "funding_status": { + "description": "Funding status of the startup, for example `Unknown`.", "type": "string" }, "last_enriched_at": { + "description": "Time the summary was last generated, in ISO 8601.", "type": "string" }, "pricing_model": { + "description": "Short description of how the startup charges for its product.", "type": "string" }, "problem_solved": { + "description": "Problem the startup's product solves.", "type": "string" }, "screenshots": { + "description": "Screenshots of the startup's site, one item per screenshot.", "items": { "$ref": "#/definitions/trustmrr.StartupScreenshot" }, "type": "array" }, "tags": { + "description": "Topic tags for the startup, for example `ai` or `saas`.", "items": { "type": "string" }, "type": "array" }, "target_persona": { + "description": "Type of customer the startup's product is aimed at.", "type": "string" }, "value_proposition": { + "description": "One-line summary of what the startup's product offers.", "type": "string" } }, @@ -201180,25 +213136,32 @@ "trustmrr.StartupInsight": { "properties": { "business_type": { + "description": "Business type of the startup, for example `B2C`.", "example": "B2C", "type": "string" }, "estimated_user_count": { + "description": "Estimated number of users of the startup's product.", "type": "integer" }, "pricing_model": { + "description": "Short description of how the startup charges for its product.", "type": "string" }, "problem_solved": { + "description": "Problem the startup's product solves.", "type": "string" }, "target_persona": { + "description": "Type of customer the startup's product is aimed at.", "type": "string" }, "updated_at": { + "description": "Time the summary was last updated, in ISO 8601.", "type": "string" }, "value_proposition": { + "description": "One-line summary of what the startup's product offers.", "type": "string" } }, @@ -201207,14 +213170,17 @@ "trustmrr.StartupRef": { "properties": { "last_modified": { + "description": "Last-modified time TrustMRR lists for the startup page, in ISO 8601.", "example": "2026-07-08T05:09:42.880Z", "type": "string" }, "slug": { + "description": "URL slug of the startup on TrustMRR. Use it with the startup endpoint.", "example": "gumroad", "type": "string" }, "url": { + "description": "Link to the startup's page on TrustMRR.", "example": "https://trustmrr.com/startup/gumroad", "type": "string" } @@ -201224,18 +213190,23 @@ "trustmrr.StartupRevenue": { "properties": { "active_subscriptions": { + "description": "Number of active subscriptions.", "type": "integer" }, "customers": { + "description": "Number of customers.", "type": "integer" }, "last_30_days": { + "description": "Revenue over the last 30 days, in US dollars.", "type": "number" }, "mrr": { + "description": "Monthly recurring revenue, in US dollars.", "type": "number" }, "total": { + "description": "Total revenue to date, in US dollars.", "type": "number" } }, @@ -201244,12 +213215,15 @@ "trustmrr.StartupScreenshot": { "properties": { "captured_at": { + "description": "Time the screenshot was taken, in ISO 8601.", "type": "string" }, "label": { + "description": "Label of the screenshot, for example `Landing page`.", "type": "string" }, "url": { + "description": "URL of the screenshot image.", "type": "string" } }, @@ -201258,10 +213232,12 @@ "trustmrr.StartupTech": { "properties": { "category": { + "description": "Technology category, for example `frontend`.", "example": "frontend", "type": "string" }, "slug": { + "description": "Technology identifier, for example `reactnative`.", "example": "reactnative", "type": "string" } @@ -201271,24 +213247,29 @@ "trustmrr.StartupsResponse": { "properties": { "has_next": { + "description": "`true` when more pages of startups remain.", "example": true, "type": "boolean" }, "page": { + "description": "Page number returned, starting at 1.", "example": 1, "type": "integer" }, "page_size": { + "description": "Number of startups per page.", "example": 100, "type": "integer" }, "startups": { + "description": "Startups on this page, one item per startup.", "items": { "$ref": "#/definitions/trustmrr.StartupRef" }, "type": "array" }, "total": { + "description": "Total number of startups listed on TrustMRR.", "example": 8196, "type": "integer" } @@ -201410,37 +213391,50 @@ "trustpilot.BusinessAbout": { "properties": { "business_country_code": { + "description": "Country code of the business, such as `DK`.", "example": "DK", "type": "string" }, "contact": { - "$ref": "#/definitions/trustpilot.BusinessContact" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessContact" + } + ], + "description": "Contact details the business lists on its profile." }, "description_html": { + "description": "Business description from the profile, as HTML.", "type": "string" }, "description_text": { + "description": "Business description from the profile, as plain text.", "type": "string" }, "facebook_url": { + "description": "URL of the business's Facebook page.", "example": "https://www.facebook.com/Trustpilot", "type": "string" }, "has_company_elements": { + "description": "Whether the profile shows company information added by the business.", "example": true, "type": "boolean" }, "information_source": { + "description": "Who supplied the company information, as Trustpilot reports it, such as `customer` or `none`.", "example": "customer", "type": "string" }, "promotion_points": { + "description": "Selling points listed in the business's promotion box.", "items": { "type": "string" }, "type": "array" }, "promotion_title": { + "description": "Title of the promotion box on the business profile.", "type": "string" } }, @@ -201449,38 +213443,51 @@ "trustpilot.BusinessActivity": { "properties": { "claimed_date": { + "description": "Time the business claimed its profile, in ISO 8601 UTC.", "type": "string" }, "has_business_unit_merge_history": { + "description": "Whether this profile has been merged with other Trustpilot business profiles.", "example": false, "type": "boolean" }, "has_subscription": { + "description": "Whether the business has a Trustpilot subscription.", "example": false, "type": "boolean" }, "is_asking_for_reviews": { + "description": "Whether the business invites customers to review it on Trustpilot.", "example": false, "type": "boolean" }, "is_claimed": { + "description": "Whether the business has claimed its Trustpilot profile.", "example": false, "type": "boolean" }, "is_using_ai_responses": { + "description": "Whether the business uses AI-generated responses to reviews.", "example": false, "type": "boolean" }, "is_using_paid_features": { + "description": "Whether the business uses paid Trustpilot features.", "example": false, "type": "boolean" }, "previously_claimed": { + "description": "Whether the profile has been claimed before.", "example": false, "type": "boolean" }, "verification": { - "$ref": "#/definitions/trustpilot.BusinessVerification" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessVerification" + } + ], + "description": "Verification checks the business has passed." } }, "type": "object" @@ -201488,14 +213495,17 @@ "trustpilot.BusinessBreadcrumb": { "properties": { "id": { + "description": "Trustpilot category id at this level of the path.", "example": "electronics_technology", "type": "string" }, "level": { + "description": "Level of the category in the path: `top`, `mid` or `bottom`.", "example": "top", "type": "string" }, "name": { + "description": "Display name of the category at this level.", "example": "Electronics & Technology", "type": "string" } @@ -201505,22 +213515,27 @@ "trustpilot.BusinessCategory": { "properties": { "cardinality": { + "description": "Cardinality value Trustpilot assigns to this category for the business.", "example": 2, "type": "integer" }, "id": { + "description": "Trustpilot category id, such as `software_company`.", "example": "software_company", "type": "string" }, "is_primary": { + "description": "Whether this is the business's primary category.", "example": true, "type": "boolean" }, "name": { + "description": "Display name of the category.", "example": "Software Company", "type": "string" }, "rank": { + "description": "Rank value Trustpilot assigns to this category for the business.", "example": 1, "type": "integer" } @@ -201530,12 +213545,15 @@ "trustpilot.BusinessCompanyReply": { "properties": { "message": { + "description": "Text of the business's reply.", "type": "string" }, "published_at_text": { + "description": "Time the reply was published, in ISO 8601 UTC.", "type": "string" }, "updated_at_text": { + "description": "Time the reply was last updated, in ISO 8601 UTC.", "type": "string" } }, @@ -201544,21 +213562,27 @@ "trustpilot.BusinessContact": { "properties": { "address": { + "description": "Street address of the business.", "type": "string" }, "city": { + "description": "City of the business.", "type": "string" }, "country": { + "description": "Country of the business.", "type": "string" }, "email": { + "description": "Contact email address of the business.", "type": "string" }, "phone": { + "description": "Contact phone number of the business.", "type": "string" }, "zip_code": { + "description": "Postal code of the business.", "type": "string" } }, @@ -201567,18 +213591,22 @@ "trustpilot.BusinessPageLanguage": { "properties": { "iso_language": { + "description": "Language and region code of this version, such as `en-US`.", "example": "en-US", "type": "string" }, "language_code": { + "description": "Language code of this version, such as `en`.", "example": "en", "type": "string" }, "locale": { + "description": "Locale of this version, such as `en-US`.", "example": "en-US", "type": "string" }, "uri": { + "description": "Base URL of the Trustpilot site for this language version.", "example": "https://www.trustpilot.com", "type": "string" } @@ -201588,20 +213616,24 @@ "trustpilot.BusinessPageMeta": { "properties": { "canonical_url": { + "description": "Canonical URL of the business profile page.", "example": "https://www.trustpilot.com/review/openai.com", "type": "string" }, "domain": { + "description": "Trustpilot domain the profile page is served from.", "example": "https://www.trustpilot.com", "type": "string" }, "languages": { + "description": "Language versions of the profile page.", "items": { "$ref": "#/definitions/trustpilot.BusinessPageLanguage" }, "type": "array" }, "locale": { + "description": "Locale of the profile page, such as `en-US`.", "example": "en-US", "type": "string" } @@ -201611,26 +213643,32 @@ "trustpilot.BusinessRatingHistogram": { "properties": { "five": { + "description": "Number of 5-star reviews.", "example": 80, "type": "integer" }, "four": { + "description": "Number of 4-star reviews.", "example": 20, "type": "integer" }, "one": { + "description": "Number of 1-star reviews.", "example": 817, "type": "integer" }, "three": { + "description": "Number of 3-star reviews.", "example": 22, "type": "integer" }, "total": { + "description": "Total number of reviews counted across all star levels.", "example": 984, "type": "integer" }, "two": { + "description": "Number of 2-star reviews.", "example": 45, "type": "integer" } @@ -201640,9 +213678,15 @@ "trustpilot.BusinessRelatedResponse": { "properties": { "business": { - "$ref": "#/definitions/trustpilot.businessHeader" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.businessHeader" + } + ], + "description": "Summary of the business whose related businesses are listed." }, "items": { + "description": "Businesses Trustpilot shows as related to this business.", "items": { "$ref": "#/definitions/trustpilot.RelatedBusiness" }, @@ -201654,21 +213698,26 @@ "trustpilot.BusinessReplyMetrics": { "properties": { "average_days_to_reply": { + "description": "Average number of days the business takes to reply to reviews.", "example": 10.59, "type": "number" }, "last_reply_to_negative_review": { + "description": "Time of the business's most recent reply to a negative review, as Trustpilot reports it.", "type": "string" }, "negative_reviews_with_replies": { + "description": "Number of negative reviews the business has replied to.", "example": 7964, "type": "integer" }, "reply_percentage": { + "description": "Percentage of negative reviews the business has replied to.", "example": 47.88, "type": "number" }, "total_negative_reviews": { + "description": "Total number of negative reviews the business has received.", "example": 16630, "type": "integer" } @@ -201678,74 +213727,116 @@ "trustpilot.BusinessResponse": { "properties": { "about": { - "$ref": "#/definitions/trustpilot.BusinessAbout" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessAbout" + } + ], + "description": "Company information the business shows on its Trustpilot profile." }, "breadcrumbs": { + "description": "Category path of the business, from top level down to the most specific level.", "items": { "$ref": "#/definitions/trustpilot.BusinessBreadcrumb" }, "type": "array" }, "categories": { + "description": "Categories the business is listed under on Trustpilot.", "items": { "$ref": "#/definitions/trustpilot.BusinessCategory" }, "type": "array" }, "claimed": { + "description": "Whether the business has claimed its Trustpilot profile.", "example": false, "type": "boolean" }, "company_activity": { - "$ref": "#/definitions/trustpilot.BusinessActivity" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessActivity" + } + ], + "description": "How the business uses Trustpilot, such as claiming, subscriptions and verification." }, "name": { + "description": "Display name of the business on Trustpilot.", "example": "OpenAI", "type": "string" }, "page_meta": { - "$ref": "#/definitions/trustpilot.BusinessPageMeta" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessPageMeta" + } + ], + "description": "Page details of the Trustpilot profile, such as canonical URL and language versions." }, "paid_subscription": { + "description": "Whether the business uses paid Trustpilot features or has a Trustpilot subscription.", "example": false, "type": "boolean" }, "rating": { + "description": "Star rating shown on the business profile, out of 5.", "example": 1.5, "type": "number" }, "rating_histogram": { - "$ref": "#/definitions/trustpilot.BusinessRatingHistogram" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessRatingHistogram" + } + ], + "description": "Number of reviews at each star level." }, "reply_metrics": { - "$ref": "#/definitions/trustpilot.BusinessReplyMetrics" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessReplyMetrics" + } + ], + "description": "Statistics on how the business replies to negative reviews." }, "review_count": { + "description": "Total number of reviews the business has on Trustpilot.", "example": 984, "type": "integer" }, "review_summary": { - "$ref": "#/definitions/trustpilot.BusinessReviewSummary" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessReviewSummary" + } + ], + "description": "AI-generated summary of the business's reviews shown on its profile." }, "review_topics": { + "description": "AI-generated summaries of what reviewers say about individual topics.", "items": { "$ref": "#/definitions/trustpilot.BusinessReviewTopic" }, "type": "array" }, "slug": { + "description": "Business slug used in the Trustpilot profile URL, usually the website domain.", "example": "openai.com", "type": "string" }, "trust_score": { + "description": "Trustpilot TrustScore of the business, as a decimal number.", "example": 1.3, "type": "number" }, "trustpilot_url": { + "description": "URL of the business profile on Trustpilot.", "example": "https://www.trustpilot.com/review/openai.com", "type": "string" }, "website_url": { + "description": "Website address of the business.", "example": "https://openai.com", "type": "string" } @@ -201755,51 +213846,73 @@ "trustpilot.BusinessReviewItem": { "properties": { "author_country": { + "description": "Country code of the reviewer, such as `GB`.", "example": "GB", "type": "string" }, "author_name": { + "description": "Name of the reviewer as shown on the review.", "example": "Summit", "type": "string" }, "author_review_count": { + "description": "Number of reviews the reviewer has written on Trustpilot.", "example": 1, "type": "integer" }, "body": { + "description": "Full text of the review.", "type": "string" }, "company_reply": { - "$ref": "#/definitions/trustpilot.BusinessCompanyReply" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessCompanyReply" + } + ], + "description": "Reply the business posted to the review. Omitted when there is none." }, "experienced_at_text": { + "description": "Date of the experience the review describes, in ISO 8601 UTC.", "type": "string" }, "id": { + "description": "Trustpilot id of the review.", "example": "69b2e2443283f179ac73d3ce", "type": "string" }, "invited": { + "description": "Whether the reviewer was invited by the business to write the review.", "example": false, "type": "boolean" }, "labels": { - "$ref": "#/definitions/trustpilot.BusinessReviewLabels" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessReviewLabels" + } + ], + "description": "Labels Trustpilot attaches to the review, such as source and verification." }, "published_at_text": { + "description": "Time the review was published, in ISO 8601 UTC.", "type": "string" }, "rating": { + "description": "Star rating the reviewer gave, from 1 to 5.", "example": 1, "type": "integer" }, "title": { + "description": "Headline of the review.", "type": "string" }, "updated_at_text": { + "description": "Time the review was last updated, in ISO 8601 UTC.", "type": "string" }, "verified": { + "description": "Whether Trustpilot marks the review as verified.", "example": false, "type": "boolean" } @@ -201809,25 +213922,31 @@ "trustpilot.BusinessReviewLabels": { "properties": { "filtered": { + "description": "Whether the review is marked as filtered on Trustpilot.", "example": false, "type": "boolean" }, "merged": { + "description": "Merge label shown on the review, such as `merged`.", "type": "string" }, "pending": { + "description": "Whether the review is still pending.", "example": false, "type": "boolean" }, "review_source": { + "description": "How the review was collected, as Trustpilot labels it, such as `Organic` or `Invited`.", "example": "Organic", "type": "string" }, "verification_level": { + "description": "Verification level of the review, such as `verified` or `not-verified`.", "example": "not-verified", "type": "string" }, "verification_source": { + "description": "How the review was verified, such as `email` or `invitation`.", "example": "invitation", "type": "string" } @@ -201837,15 +213956,19 @@ "trustpilot.BusinessReviewSummary": { "properties": { "model_version": { + "description": "Version of the model that generated the summary, as Trustpilot reports it.", "type": "string" }, "status": { + "description": "Publication status of the summary, as Trustpilot reports it.", "type": "string" }, "summary": { + "description": "Text of the AI-generated summary of the business's reviews.", "type": "string" }, "updated_at": { + "description": "Time the summary was last updated, as Trustpilot reports it.", "type": "string" } }, @@ -201854,20 +213977,25 @@ "trustpilot.BusinessReviewTopic": { "properties": { "model_version": { + "description": "Version of the model that generated the topic summary, as Trustpilot reports it.", "type": "string" }, "order": { + "description": "Position in which Trustpilot lists the topic.", "example": 1, "type": "integer" }, "summary": { + "description": "Text of the AI-generated summary of what reviewers say about the topic.", "type": "string" }, "topic": { + "description": "Topic the summary covers, such as `user_experience`.", "example": "user_experience", "type": "string" }, "updated_at": { + "description": "Time the topic summary was last updated, as Trustpilot reports it.", "type": "string" } }, @@ -201876,21 +214004,26 @@ "trustpilot.BusinessReviewsAppliedFilters": { "properties": { "language": { + "description": "Review language code that was applied, in lowercase.", "example": "en", "type": "string" }, "query": { + "description": "Text search that was applied to the review content.", "example": "refund", "type": "string" }, "replied": { + "description": "Whether only reviews with a business reply were requested.", "type": "boolean" }, "stars": { + "description": "Star rating, from 1 to 5, that reviews were filtered to.", "example": 1, "type": "integer" }, "verified": { + "description": "Whether only verified reviews were requested.", "type": "boolean" } }, @@ -201899,26 +214032,32 @@ "trustpilot.BusinessReviewsPagination": { "properties": { "has_next_page": { + "description": "Whether another page of reviews follows this one.", "example": true, "type": "boolean" }, "next_page": { + "description": "Number of the next page. Omitted on the last page.", "example": 2, "type": "integer" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "per_page": { + "description": "Number of reviews per page.", "example": 20, "type": "integer" }, "total_pages": { + "description": "Total number of pages of reviews.", "example": 50, "type": "integer" }, "total_reviews": { + "description": "Total number of reviews available for the business.", "example": 984, "type": "integer" } @@ -201928,19 +214067,35 @@ "trustpilot.BusinessReviewsResponse": { "properties": { "applied_filters": { - "$ref": "#/definitions/trustpilot.BusinessReviewsAppliedFilters" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessReviewsAppliedFilters" + } + ], + "description": "Filters that were applied to the reviews. Omitted when no filter was used." }, "business": { - "$ref": "#/definitions/trustpilot.businessHeader" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.businessHeader" + } + ], + "description": "Summary of the business the reviews belong to." }, "items": { + "description": "Reviews on this page, as listed on the business's Trustpilot page.", "items": { "$ref": "#/definitions/trustpilot.BusinessReviewItem" }, "type": "array" }, "pagination": { - "$ref": "#/definitions/trustpilot.BusinessReviewsPagination" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.BusinessReviewsPagination" + } + ], + "description": "Paging details for the reviews." } }, "type": "object" @@ -201948,14 +214103,17 @@ "trustpilot.BusinessVerification": { "properties": { "verified_by_google": { + "description": "Whether the business is verified through Google.", "example": false, "type": "boolean" }, "verified_payment_method": { + "description": "Whether the business has a verified payment method.", "example": false, "type": "boolean" }, "verified_user_identity": { + "description": "Whether the identity of the user managing the profile is verified.", "example": false, "type": "boolean" } @@ -201965,6 +214123,7 @@ "trustpilot.CategoriesResponse": { "properties": { "groups": { + "description": "Top-level category groups, each with the categories it contains.", "items": { "$ref": "#/definitions/trustpilot.CategoryGroup" }, @@ -201976,59 +214135,77 @@ "trustpilot.CategoryBusiness": { "properties": { "business_unit_id": { + "description": "Trustpilot id of the business.", "example": "5e18c99abe863e0001b6ff0c", "type": "string" }, "categories": { + "description": "Categories the business is tagged with.", "items": { "$ref": "#/definitions/trustpilot.CategoryBusinessTag" }, "type": "array" }, "display_name": { + "description": "Display name of the business on Trustpilot.", "example": "Houzeo", "type": "string" }, "email": { + "description": "Contact email address of the business.", "example": "support@houzeo.com", "type": "string" }, "identifying_name": { + "description": "Business slug used in the Trustpilot profile URL, usually the website domain. Use it with the business endpoint.", "example": "www.houzeo.com", "type": "string" }, "location": { - "$ref": "#/definitions/trustpilot.CategoryBusinessLocation" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.CategoryBusinessLocation" + } + ], + "description": "Location of the business. Omitted when Trustpilot lists none." }, "logo_url": { + "description": "URL of the business's logo.", "example": "https://s3-eu-west-1.amazonaws.com/tpd/screenshotlogo-domain/example/198x149.png", "type": "string" }, "phone": { + "description": "Contact phone number of the business.", "example": "(844) 448-0110", "type": "string" }, "recommended": { + "description": "Whether Trustpilot recommends the business in its categories.", "example": true, "type": "boolean" }, "review_count": { + "description": "Total number of reviews the business has on Trustpilot.", "example": 3473, "type": "integer" }, "stars": { + "description": "Star rating of the business, out of 5.", "example": 5, "type": "number" }, "trust_score": { + "description": "Trustpilot TrustScore of the business, as a decimal number.", "example": 4.8, "type": "number" }, "trustpilot_url": { + "description": "URL of the business profile on Trustpilot.", "example": "https://www.trustpilot.com/review/www.houzeo.com", "type": "string" }, "website_url": { + "description": "Website address of the business.", "example": "https://www.houzeo.com", "type": "string" } @@ -202038,15 +214215,19 @@ "trustpilot.CategoryBusinessLocation": { "properties": { "address": { + "description": "Street address of the business.", "type": "string" }, "city": { + "description": "City of the business.", "type": "string" }, "country": { + "description": "Country of the business.", "type": "string" }, "zip_code": { + "description": "Postal code of the business.", "type": "string" } }, @@ -202055,18 +214236,22 @@ "trustpilot.CategoryBusinessTag": { "properties": { "category_id": { + "description": "Trustpilot category id, such as `software_company`.", "example": "software_company", "type": "string" }, "display_name": { + "description": "Display name of the category.", "example": "Software Company", "type": "string" }, "is_predicted": { + "description": "Whether Trustpilot predicted this category for the business.", "example": false, "type": "boolean" }, "is_primary": { + "description": "Whether this is the business's primary category.", "example": true, "type": "boolean" } @@ -202076,20 +214261,24 @@ "trustpilot.CategoryGroup": { "properties": { "items": { + "description": "Categories that belong to this group.", "items": { "$ref": "#/definitions/trustpilot.CategoryLink" }, "type": "array" }, "name": { + "description": "Display name of the category group.", "example": "Electronics & Technology", "type": "string" }, "slug": { + "description": "Slug of the category group, such as `electronics_technology`.", "example": "electronics_technology", "type": "string" }, "url": { + "description": "URL of the category group page on Trustpilot.", "example": "https://www.trustpilot.com/categories/electronics_technology", "type": "string" } @@ -202099,14 +214288,17 @@ "trustpilot.CategoryLink": { "properties": { "name": { + "description": "Display name of the category.", "example": "Software Company", "type": "string" }, "slug": { + "description": "Category slug. Use it with the category endpoint.", "example": "software_company", "type": "string" }, "url": { + "description": "URL of the category page on Trustpilot.", "example": "https://www.trustpilot.com/categories/software_company", "type": "string" } @@ -202116,26 +214308,32 @@ "trustpilot.CategoryPagination": { "properties": { "has_next_page": { + "description": "Whether another page of businesses follows this one.", "example": true, "type": "boolean" }, "next_page": { + "description": "Number of the next page. Omitted on the last page.", "example": 3, "type": "integer" }, "page": { + "description": "Page number returned.", "example": 2, "type": "integer" }, "per_page": { + "description": "Number of businesses per page.", "example": 20, "type": "integer" }, "total_hits": { + "description": "Total number of businesses in the category.", "example": 7963, "type": "integer" }, "total_pages": { + "description": "Total number of pages in the category.", "example": 399, "type": "integer" } @@ -202145,59 +214343,75 @@ "trustpilot.CategoryResponse": { "properties": { "breadcrumbs": { + "description": "Parent categories leading to this category.", "items": { "$ref": "#/definitions/trustpilot.CategoryLink" }, "type": "array" }, "country": { + "description": "Country the listing is filtered to, as Trustpilot reports it.", "example": "US", "type": "string" }, "items": { + "description": "Businesses listed on this page of the category.", "items": { "$ref": "#/definitions/trustpilot.CategoryBusiness" }, "type": "array" }, "name": { + "description": "Display name of the category.", "example": "Software Company", "type": "string" }, "newest_companies": { + "description": "Businesses recently added to the category.", "items": { "$ref": "#/definitions/trustpilot.CategoryBusiness" }, "type": "array" }, "page": { + "description": "Page number returned.", "example": 2, "type": "integer" }, "pagination": { - "$ref": "#/definitions/trustpilot.CategoryPagination" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.CategoryPagination" + } + ], + "description": "Paging details for the category listing." }, "recently_reviewed_companies": { + "description": "Businesses in the category that were reviewed recently.", "items": { "$ref": "#/definitions/trustpilot.CategoryBusiness" }, "type": "array" }, "related_categories": { + "description": "Categories related to this one.", "items": { "$ref": "#/definitions/trustpilot.CategoryLink" }, "type": "array" }, "slug": { + "description": "Category slug, such as `software_company`.", "example": "software_company", "type": "string" }, "sort": { + "description": "Sort order of the listing, as Trustpilot reports it, such as `recommended`.", "example": "recommended", "type": "string" }, "trustpilot_url": { + "description": "URL of the category page on Trustpilot.", "example": "https://www.trustpilot.com/categories/software_company", "type": "string" } @@ -202207,24 +214421,29 @@ "trustpilot.CategorySearchResponse": { "properties": { "categories": { + "description": "Categories matching the query.", "items": { "$ref": "#/definitions/trustpilot.CategorySearchResult" }, "type": "array" }, "country": { + "description": "Two-letter country code the search was run for.", "example": "US", "type": "string" }, "locale": { + "description": "Locale the search was run for, such as `en-US`.", "example": "en-US", "type": "string" }, "query": { + "description": "Query that was run.", "example": "openai", "type": "string" }, "size": { + "description": "Maximum number of categories requested.", "example": 3, "type": "integer" } @@ -202234,14 +214453,17 @@ "trustpilot.CategorySearchResult": { "properties": { "category_id": { + "description": "Trustpilot category id, such as `software_company`.", "example": "software_company", "type": "string" }, "display_name": { + "description": "Display name of the category.", "example": "Software Company", "type": "string" }, "top_level_category_id": { + "description": "Id of the top-level category group the category belongs to.", "example": "electronics_technology", "type": "string" } @@ -202251,38 +214473,47 @@ "trustpilot.RelatedBusiness": { "properties": { "business_unit_id": { + "description": "Trustpilot id of the related business.", "example": "63e1530f2ba9106ee583e099", "type": "string" }, "display_name": { + "description": "Display name of the related business.", "example": "Chatgpt", "type": "string" }, "identifying_name": { + "description": "Slug of the related business, usually its website domain. Use it with the business endpoint.", "example": "chatgpt.com", "type": "string" }, "logo_url": { + "description": "URL of the related business's logo.", "example": "https://s3-eu-west-1.amazonaws.com/tpd/screenshots/example/198x149.png", "type": "string" }, "review_count": { + "description": "Total number of reviews the related business has.", "example": 2720, "type": "integer" }, "source": { + "description": "Section of the profile page the business came from: `suggested_companies` or `also_viewed`.", "example": "suggested_companies", "type": "string" }, "stars": { + "description": "Star rating of the related business, out of 5.", "example": 1.5, "type": "number" }, "trust_score": { + "description": "Trustpilot TrustScore of the related business, as a decimal number.", "example": 1.6, "type": "number" }, "trustpilot_url": { + "description": "URL of the related business's profile on Trustpilot.", "example": "https://www.trustpilot.com/review/chatgpt.com", "type": "string" } @@ -202292,28 +214523,43 @@ "trustpilot.SearchAddress": { "properties": { "approximate_area": { - "$ref": "#/definitions/trustpilot.SearchAreaBounds" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.SearchAreaBounds" + } + ], + "description": "Bounding box of the approximate area the address falls in." }, "city": { + "description": "City of the business.", "example": "San Francisco", "type": "string" }, "coordinates": { - "$ref": "#/definitions/trustpilot.SearchCoordinates" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.SearchCoordinates" + } + ], + "description": "Latitude and longitude of the business." }, "country": { + "description": "Country name of the business.", "example": "United States", "type": "string" }, "country_code": { + "description": "Country code of the business, such as `US`.", "example": "US", "type": "string" }, "postcode": { + "description": "Postal code of the business.", "example": "94105", "type": "string" }, "street": { + "description": "Street address of the business.", "example": "1 Market St", "type": "string" } @@ -202323,10 +214569,20 @@ "trustpilot.SearchAreaBounds": { "properties": { "north_west": { - "$ref": "#/definitions/trustpilot.SearchCoordinates" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.SearchCoordinates" + } + ], + "description": "North-west corner of the area." }, "south_east": { - "$ref": "#/definitions/trustpilot.SearchCoordinates" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.SearchCoordinates" + } + ], + "description": "South-east corner of the area." } }, "type": "object" @@ -202334,14 +214590,17 @@ "trustpilot.SearchCategory": { "properties": { "id": { + "description": "Trustpilot category id, such as `software_company`.", "example": "software_company", "type": "string" }, "name": { + "description": "Display name of the category.", "example": "Software Company", "type": "string" }, "primary": { + "description": "Whether this is the business's primary category.", "example": true, "type": "boolean" } @@ -202351,10 +214610,12 @@ "trustpilot.SearchCoordinates": { "properties": { "lat": { + "description": "Latitude in decimal degrees.", "example": 39.7837304, "type": "number" }, "lon": { + "description": "Longitude in decimal degrees.", "example": -100.445882, "type": "number" } @@ -202364,36 +214625,44 @@ "trustpilot.SearchResponse": { "properties": { "country": { + "description": "Two-letter country code the search was run for.", "example": "US", "type": "string" }, "items": { + "description": "Businesses matching the query on this page.", "items": { "$ref": "#/definitions/trustpilot.SearchResult" }, "type": "array" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "page_size": { + "description": "Number of results per page.", "example": 5, "type": "integer" }, "query": { + "description": "Query that was run.", "example": "openai", "type": "string" }, "search_mode": { + "description": "How Trustpilot matched the query, such as `keyword`.", "example": "keyword", "type": "string" }, "total_hits": { + "description": "Total number of businesses matching the query.", "example": 147, "type": "integer" }, "total_pages": { + "description": "Total number of result pages.", "example": 30, "type": "integer" } @@ -202403,66 +214672,90 @@ "trustpilot.SearchResult": { "properties": { "address": { - "$ref": "#/definitions/trustpilot.SearchAddress" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.SearchAddress" + } + ], + "description": "Address of the business. Omitted when Trustpilot lists none." }, "business_unit_id": { + "description": "Trustpilot id of the business.", "example": "630f21bc9f08b0302a52590d", "type": "string" }, "categories": { + "description": "Categories the business is listed under.", "items": { "$ref": "#/definitions/trustpilot.SearchCategory" }, "type": "array" }, "country_code": { + "description": "Country code of the business, such as `FR`.", "example": "FR", "type": "string" }, "display_name": { + "description": "Display name of the business on Trustpilot.", "example": "OpenAI", "type": "string" }, "email": { + "description": "Contact email address of the business.", "example": "hello@example.com", "type": "string" }, "identifying_name": { + "description": "Business slug used in the Trustpilot profile URL, usually the website domain. Use it with the business endpoint.", "example": "openai.com", "type": "string" }, "logo_url": { + "description": "URL of the business's logo.", "example": "https://s3-eu-west-1.amazonaws.com/tpd/logos/example/0x0.png", "type": "string" }, "phone": { + "description": "Contact phone number of the business.", "example": "+1-555-555-5555", "type": "string" }, "predicted_top_category": { - "$ref": "#/definitions/trustpilot.SearchCategory" + "allOf": [ + { + "$ref": "#/definitions/trustpilot.SearchCategory" + } + ], + "description": "Category Trustpilot predicts as the business's top category." }, "review_count": { + "description": "Total number of reviews the business has on Trustpilot.", "example": 984, "type": "integer" }, "stars": { + "description": "Star rating of the business, out of 5.", "example": 1.5, "type": "number" }, "trust_score": { + "description": "Trustpilot TrustScore of the business, as a decimal number.", "example": 1.3, "type": "number" }, "trustpilot_url": { + "description": "URL of the business profile on Trustpilot.", "example": "https://www.trustpilot.com/review/openai.com", "type": "string" }, "verified": { + "description": "Whether Trustpilot marks the business as verified.", "example": false, "type": "boolean" }, "website_url": { + "description": "Website address of the business.", "example": "https://openai.com", "type": "string" } @@ -202472,34 +214765,42 @@ "trustpilot.businessHeader": { "properties": { "claimed": { + "description": "Whether the business has claimed its Trustpilot profile.", "example": false, "type": "boolean" }, "name": { + "description": "Display name of the business on Trustpilot.", "example": "OpenAI", "type": "string" }, "rating": { + "description": "Star rating shown on the business profile, out of 5.", "example": 1.5, "type": "number" }, "review_count": { + "description": "Total number of reviews the business has on Trustpilot.", "example": 984, "type": "integer" }, "slug": { + "description": "Business slug used in the Trustpilot profile URL, usually the website domain.", "example": "openai.com", "type": "string" }, "trust_score": { + "description": "Trustpilot TrustScore of the business, as a decimal number.", "example": 1.3, "type": "number" }, "trustpilot_url": { + "description": "URL of the business profile on Trustpilot.", "example": "https://www.trustpilot.com/review/openai.com", "type": "string" }, "website_url": { + "description": "Website address of the business.", "example": "https://openai.com", "type": "string" } @@ -203496,45 +215797,58 @@ "ubereats.Restaurant": { "properties": { "cuisineTags": { + "description": "Cuisine labels shown on the restaurant card.", "items": { "type": "string" }, "type": "array" }, "currencyCode": { + "description": "Currency code used for the restaurant's prices, such as `USD`.", "type": "string" }, "deliveryEtaText": { + "description": "Estimated delivery time as shown on the card, such as `21 min`.", "type": "string" }, "imageUrl": { + "description": "URL of the restaurant's card image.", "type": "string" }, "isSponsored": { + "description": "Whether Uber Eats shows the restaurant as a sponsored listing.", "type": "boolean" }, "latitude": { + "description": "Latitude of the restaurant, in decimal degrees.", "type": "number" }, "longitude": { + "description": "Longitude of the restaurant, in decimal degrees.", "type": "number" }, "name": { + "description": "Restaurant name as shown on the feed card.", "type": "string" }, "rating": { + "description": "Average customer rating of the restaurant.", "type": "number" }, "reviewCount": { + "description": "Number of customer reviews the restaurant has.", "type": "integer" }, "slug": { + "description": "URL slug of the restaurant's Uber Eats page.", "type": "string" }, "storeUuid": { + "description": "Uber Eats store UUID. Use it with the store endpoints.", "type": "string" }, "url": { + "description": "URL of the restaurant's page on Uber Eats.", "type": "string" } }, @@ -203543,18 +215857,23 @@ "ubereats.Review": { "properties": { "createdAt": { + "description": "Time the review was created, in ISO 8601 format.", "type": "string" }, "eaterName": { + "description": "Reviewer's display name as Uber Eats shows it, such as `Jamie L.`.", "type": "string" }, "formattedDate": { + "description": "Review date as Uber Eats displays it, such as `01/01/26`.", "type": "string" }, "text": { + "description": "Full text of the review.", "type": "string" }, "timeSinceReview": { + "description": "How long ago the review was posted, as text such as `2 months ago`.", "type": "string" } }, @@ -203563,18 +215882,23 @@ "ubereats.SearchResponse": { "properties": { "cityName": { + "description": "Name of the city feed that was returned, such as `san_francisco`. Set for location feeds only.", "type": "string" }, "cursor": { + "description": "Cursor to pass in the next keyword search request to get more results.", "type": "string" }, "hasMore": { + "description": "Whether more restaurants are available beyond this response.", "type": "boolean" }, "offset": { + "description": "Offset of the first restaurant returned.", "type": "integer" }, "restaurants": { + "description": "Restaurants matching the search, or found in the location feed.", "items": { "$ref": "#/definitions/ubereats.Restaurant" }, @@ -203651,18 +215975,22 @@ "ubereats.StoreReviewsResponse": { "properties": { "rating": { + "description": "Average customer rating of the store.", "type": "number" }, "reviewCount": { + "description": "Total number of reviews the store has.", "type": "integer" }, "reviews": { + "description": "Sample of recent reviews shown on the store page.", "items": { "$ref": "#/definitions/ubereats.Review" }, "type": "array" }, "storeUuid": { + "description": "Uber Eats store UUID that was requested.", "type": "string" } }, @@ -203751,24 +216079,31 @@ "ulta.Answer": { "properties": { "author": { + "description": "Display name of the answer's author.", "type": "string" }, "created_at": { + "description": "Time the answer was posted, in UTC (RFC 3339).", "type": "string" }, "helpful_votes": { + "description": "Number of shoppers who marked the answer helpful.", "type": "integer" }, "id": { + "description": "Ulta answer id.", "type": "string" }, "is_expert": { + "description": "Whether the answer comes from a brand representative rather than a fellow customer.", "type": "boolean" }, "not_helpful_votes": { + "description": "Number of shoppers who marked the answer not helpful.", "type": "integer" }, "text": { + "description": "Text of the answer.", "type": "string" } }, @@ -203939,33 +216274,42 @@ "ulta.ProductQuestionsResponse": { "properties": { "count": { + "description": "Number of questions returned on this page.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "page": { + "description": "Page number returned, starting at 1.", "type": "integer" }, "page_size": { + "description": "Number of questions per page.", "type": "integer" }, "product_id": { + "description": "Ulta product id that was requested.", "type": "string" }, "questions": { + "description": "Customer questions on this page, each with its answers.", "items": { "$ref": "#/definitions/ulta.Question" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" }, "total_pages": { + "description": "Total number of question pages for the product.", "type": "integer" }, "total_questions": { + "description": "Total number of questions for the product.", "type": "integer" } }, @@ -204090,27 +216434,34 @@ "ulta.Question": { "properties": { "answer_count": { + "description": "Number of answers the question received.", "type": "integer" }, "answers": { + "description": "Answers the question received.", "items": { "$ref": "#/definitions/ulta.Answer" }, "type": "array" }, "author": { + "description": "Display name of the customer who asked the question.", "type": "string" }, "created_at": { + "description": "Time the question was posted, in UTC (RFC 3339).", "type": "string" }, "id": { + "description": "Ulta question id.", "type": "string" }, "location": { + "description": "Location the asker gave, such as `fl`.", "type": "string" }, "text": { + "description": "Text of the question.", "type": "string" } }, @@ -204545,27 +216896,35 @@ "upwork.JobClient": { "properties": { "company_size": { + "description": "Size of the client's company, as Upwork shows it, such as `Small company (2-9 people)`.", "type": "string" }, "country": { + "description": "Client's country, as Upwork shows it: either a short code such as `UKR` or the full country name.", "type": "string" }, "hires": { + "description": "Client's hiring history, as text such as `32 hires, 1 active`.", "type": "string" }, "industry": { + "description": "Industry of the client's company, as Upwork shows it.", "type": "string" }, "location": { + "description": "City of the client, as Upwork shows it.", "type": "string" }, "member_since": { + "description": "Date the client joined Upwork, as text such as `Aug 30, 2023`.", "type": "string" }, "total_hours": { + "description": "Total hours shown for the client, as text such as `207 hours`.", "type": "string" }, "total_spent": { + "description": "Total amount the client has spent on Upwork, as text such as `$9K total spent`.", "type": "string" } }, @@ -204574,66 +216933,89 @@ "upwork.JobResponse": { "properties": { "applicant_countries": { + "description": "Countries the client accepts applicants from.", "items": { "type": "string" }, "type": "array" }, "budget_type": { + "description": "Budget type of the job: `hourly` or `fixed`.", "type": "string" }, "client": { - "$ref": "#/definitions/upwork.JobClient" + "allOf": [ + { + "$ref": "#/definitions/upwork.JobClient" + } + ], + "description": "Summary of the client who posted the job." }, "country": { + "description": "Country of the job's location, as a code such as `US`.", "type": "string" }, "currency": { + "description": "Currency of the job budget, such as `USD`.", "type": "string" }, "description": { + "description": "Full text of the job description.", "type": "string" }, "duration": { + "description": "Expected length of the project, such as `1 to 3 months`.", "type": "string" }, "employment_type": { + "description": "Employment types of the posting, such as `CONTRACTOR` or `TEMPORARY`.", "items": { "type": "string" }, "type": "array" }, "experience_level": { + "description": "Experience level the client asks for, such as `Expert`.", "type": "string" }, "fixed_budget": { + "description": "Fixed price of the job, in `currency`. Set when `budget_type` is `fixed`.", "type": "number" }, "hourly_max": { + "description": "Highest hourly rate offered, in `currency`. Set when `budget_type` is `hourly`.", "type": "number" }, "hourly_min": { + "description": "Lowest hourly rate offered, in `currency`. Set when `budget_type` is `hourly`.", "type": "number" }, "id": { + "description": "Upwork job id, as returned by the search endpoint.", "type": "string" }, "location_type": { + "description": "Where the work is done, such as `TELECOMMUTE` for remote work.", "type": "string" }, "posted_at": { + "description": "Time the job was posted, in ISO 8601.", "type": "string" }, "project_type": { + "description": "Project type, such as `Ongoing project`.", "type": "string" }, "proposals": { + "description": "Number of proposals the job has received, as text such as `50+`.", "type": "string" }, "title": { + "description": "Title of the job posting.", "type": "string" }, "url": { + "description": "Upwork URL of the job posting.", "type": "string" } }, @@ -207202,38 +219584,47 @@ "vinted.MemberResponse": { "properties": { "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "example": "2026-08-07T12:00:00Z", "type": "string" }, "followers_count": { + "description": "Number of members following this member.", "example": 5, "type": "integer" }, "following_count": { + "description": "Number of members this member follows.", "example": 0, "type": "integer" }, "id": { + "description": "Vinted member id.", "example": "3159465141", "type": "string" }, "location": { + "description": "City and country the member gives on their public profile.", "example": "Scottsbluff, United States", "type": "string" }, "rating": { + "description": "Member's average rating on Vinted.", "example": 5, "type": "number" }, "source_url": { + "description": "URL the data was read from.", "example": "https://www.vinted.com/member/3159465141", "type": "string" }, "url": { + "description": "URL of the member's profile page on Vinted.", "example": "https://www.vinted.com/member/3159465141", "type": "string" }, "username": { + "description": "Member's Vinted username.", "example": "alexist738", "type": "string" } @@ -208644,22 +221035,27 @@ "walmart.RatingBreakdown": { "properties": { "five_star": { + "description": "Number of 5-star ratings on the product.", "example": 1698, "type": "integer" }, "four_star": { + "description": "Number of 4-star ratings on the product.", "example": 273, "type": "integer" }, "one_star": { + "description": "Number of 1-star ratings on the product.", "example": 215, "type": "integer" }, "three_star": { + "description": "Number of 3-star ratings on the product.", "example": 150, "type": "integer" }, "two_star": { + "description": "Number of 2-star ratings on the product.", "example": 116, "type": "integer" } @@ -208669,33 +221065,41 @@ "walmart.Review": { "properties": { "author": { + "description": "Nickname of the reviewer.", "example": "MusicFan", "type": "string" }, "negative_feedback": { + "description": "Number of shoppers who voted the review not helpful.", "example": 1, "type": "integer" }, "positive_feedback": { + "description": "Number of shoppers who voted the review helpful.", "example": 12, "type": "integer" }, "rating": { + "description": "Star rating the reviewer gave, out of 5.", "example": 5, "type": "number" }, "review_id": { + "description": "Walmart review id.", "example": "406499690", "type": "string" }, "submission_date": { + "description": "Date the review was submitted, as Walmart shows it, for example `11/30/2025`.", "example": "11/30/2025", "type": "string" }, "text": { + "description": "Body text of the review.", "type": "string" }, "title": { + "description": "Headline the reviewer gave the review.", "example": "Great sound", "type": "string" } @@ -208705,37 +221109,58 @@ "walmart.ReviewsResponse": { "properties": { "average_rating": { + "description": "Average star rating of the product, out of 5.", "example": 4.3, "type": "number" }, "item_id": { + "description": "Walmart item id the reviews belong to.", "example": "5689919121", "type": "string" }, "rating_counts": { - "$ref": "#/definitions/walmart.RatingBreakdown" + "allOf": [ + { + "$ref": "#/definitions/walmart.RatingBreakdown" + } + ], + "description": "Number of ratings the product received at each star level." }, "recommended_percent": { + "description": "Percentage of reviewers who recommend the product.", "example": 87, "type": "number" }, "reviews": { + "description": "Sample of recent customer reviews shown on the product page.", "items": { "$ref": "#/definitions/walmart.Review" }, "type": "array" }, "reviews_with_text_count": { + "description": "Number of reviews that include written text.", "example": 1345, "type": "integer" }, "top_negative_review": { - "$ref": "#/definitions/walmart.Review" + "allOf": [ + { + "$ref": "#/definitions/walmart.Review" + } + ], + "description": "Most helpful critical review Walmart highlights. Omitted when there is none." }, "top_positive_review": { - "$ref": "#/definitions/walmart.Review" + "allOf": [ + { + "$ref": "#/definitions/walmart.Review" + } + ], + "description": "Most helpful positive review Walmart highlights. Omitted when there is none." }, "total_review_count": { + "description": "Total number of reviews on the product.", "example": 2452, "type": "integer" } @@ -212778,27 +225203,34 @@ "wish.ProductReviewsResponse": { "properties": { "count": { + "description": "Number of reviews that was requested.", "type": "integer" }, "fetched_at": { + "description": "Time the data was fetched, in UTC (RFC 3339).", "type": "string" }, "has_more": { + "description": "Whether more reviews exist beyond those returned.", "type": "boolean" }, "product_id": { + "description": "Wish product id that was requested.", "type": "string" }, "result_count": { + "description": "Number of reviews returned.", "type": "integer" }, "reviews": { + "description": "Customer reviews of the product.", "items": { "$ref": "#/definitions/wish.Review" }, "type": "array" }, "source_url": { + "description": "URL the data was read from.", "type": "string" } }, @@ -212949,42 +225381,54 @@ "wish.Review": { "properties": { "color": { + "description": "Product color the review is for.", "type": "string" }, "comment": { + "description": "Text of the review.", "type": "string" }, "created_at": { + "description": "Time the review was posted, in ISO 8601 format.", "type": "string" }, "downvote_count": { + "description": "Number of downvotes the review received.", "type": "integer" }, "id": { + "description": "Wish review id.", "type": "string" }, "image_ids": { + "description": "Ids of the photos attached to the review.", "items": { "type": "string" }, "type": "array" }, "is_wish_star": { + "description": "Whether Wish marks the review as a Wish Star rating.", "type": "boolean" }, "rating": { + "description": "Star rating the reviewer gave.", "type": "integer" }, "title": { + "description": "Review headline written by the reviewer.", "type": "string" }, "upvote_count": { + "description": "Number of upvotes the review received.", "type": "integer" }, "user_country_code": { + "description": "Country code of the reviewer, such as `US`.", "type": "string" }, "user_name": { + "description": "Display name of the reviewer.", "type": "string" } }, @@ -215087,6 +227531,7 @@ "yahoofinance.ActionEvents": { "properties": { "capital_gains": { + "description": "Capital gain distributions in the period.", "items": { "additionalProperties": {}, "type": "object" @@ -215094,6 +227539,7 @@ "type": "array" }, "dividends": { + "description": "Dividend payments in the period.", "items": { "additionalProperties": {}, "type": "object" @@ -215101,6 +227547,7 @@ "type": "array" }, "splits": { + "description": "Stock splits in the period.", "items": { "additionalProperties": {}, "type": "object" @@ -215113,18 +227560,22 @@ "yahoofinance.CalendarResponse": { "properties": { "end": { + "description": "Last date covered, as YYYY-MM-DD.", "example": "2026-05-27", "type": "string" }, "limit": { + "description": "Maximum number of rows returned.", "example": 12, "type": "integer" }, "offset": { + "description": "Zero-based offset of the first row.", "example": 0, "type": "integer" }, "rows": { + "description": "Calendar entries, one object per row, with the columns Yahoo Finance shows.", "items": { "additionalProperties": {}, "type": "object" @@ -215132,10 +227583,12 @@ "type": "array" }, "start": { + "description": "First date covered, as YYYY-MM-DD.", "example": "2026-05-20", "type": "string" }, "type": { + "description": "Calendar returned, for example `earnings`.", "example": "earnings", "type": "string" } @@ -215145,6 +227598,7 @@ "yahoofinance.CalendarsResponse": { "properties": { "calendars": { + "description": "Names of the available calendars.", "items": { "type": "string" }, @@ -215156,6 +227610,7 @@ "yahoofinance.DomainListResponse": { "properties": { "items": { + "description": "Sectors or industries in the list.", "items": { "$ref": "#/definitions/yahoofinance.DomainRef" }, @@ -215167,10 +227622,12 @@ "yahoofinance.DomainRef": { "properties": { "key": { + "description": "Identifier of the sector or industry. Use it with the matching endpoint.", "example": "technology", "type": "string" }, "name": { + "description": "Display name of the sector or industry.", "example": "Technology", "type": "string" } @@ -215224,6 +227681,7 @@ "yahoofinance.DownloadResponse": { "properties": { "results": { + "description": "One result per requested symbol, in request order.", "items": { "$ref": "#/definitions/yahoofinance.DownloadResult" }, @@ -215235,12 +227693,19 @@ "yahoofinance.DownloadResult": { "properties": { "error": { + "description": "Message explaining why the history could not be returned. Omitted on success.", "type": "string" }, "history": { - "$ref": "#/definitions/yahoofinance.HistoryResponse" + "allOf": [ + { + "$ref": "#/definitions/yahoofinance.HistoryResponse" + } + ], + "description": "Price history of the symbol. Omitted when the symbol failed." }, "symbol": { + "description": "Ticker symbol this result is for.", "type": "string" } }, @@ -215249,14 +227714,17 @@ "yahoofinance.EarningsDatesResponse": { "properties": { "limit": { + "description": "Maximum number of rows returned.", "example": 12, "type": "integer" }, "offset": { + "description": "Zero-based offset of the first row.", "example": 0, "type": "integer" }, "rows": { + "description": "Earnings dates, one object per row.", "items": { "additionalProperties": {}, "type": "object" @@ -215264,6 +227732,7 @@ "type": "array" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" } @@ -215274,17 +227743,21 @@ "properties": { "modules": { "additionalProperties": {}, + "description": "Statement line items grouped by section.", "type": "object" }, "period": { + "description": "Reporting period returned, for example `annual`.", "example": "annual", "type": "string" }, "statement": { + "description": "Statement returned, for example `income`.", "example": "income", "type": "string" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" } @@ -215295,9 +227768,11 @@ "properties": { "meta": { "additionalProperties": {}, + "description": "Metadata about the instrument and its price history, as Yahoo Finance reports it.", "type": "object" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" } @@ -215307,19 +227782,27 @@ "yahoofinance.HistoryResponse": { "properties": { "events": { - "$ref": "#/definitions/yahoofinance.ActionEvents" + "allOf": [ + { + "$ref": "#/definitions/yahoofinance.ActionEvents" + } + ], + "description": "Dividends, splits and capital gains in the period. Present when actions were requested." }, "meta": { "additionalProperties": {}, + "description": "Metadata about the instrument and the price series, as Yahoo Finance reports it.", "type": "object" }, "points": { + "description": "Price candles in time order.", "items": { "$ref": "#/definitions/yahoofinance.PricePoint" }, "type": "array" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" } @@ -215329,10 +227812,12 @@ "yahoofinance.ISINResponse": { "properties": { "isin": { + "description": "International Securities Identification Number of the instrument, for example `US0378331005`.", "example": "US0378331005", "type": "string" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" } @@ -215342,18 +227827,22 @@ "yahoofinance.IndustryResponse": { "properties": { "key": { + "description": "Identifier of the industry.", "example": "semiconductors", "type": "string" }, "name": { + "description": "Name of the industry.", "example": "Semiconductors", "type": "string" }, "overview": { "additionalProperties": {}, + "description": "Summary figures for the industry.", "type": "object" }, "research_reports": { + "description": "Research reports about the industry.", "items": { "additionalProperties": {}, "type": "object" @@ -215361,17 +227850,21 @@ "type": "array" }, "sector_key": { + "description": "Identifier of the sector the industry belongs to.", "example": "technology", "type": "string" }, "sector_name": { + "description": "Name of the sector the industry belongs to.", "example": "Technology", "type": "string" }, "symbol": { + "description": "Index symbol that tracks the industry.", "type": "string" }, "top_companies": { + "description": "Largest companies in the industry.", "items": { "additionalProperties": {}, "type": "object" @@ -215379,6 +227872,7 @@ "type": "array" }, "top_growth_companies": { + "description": "Fastest-growing companies in the industry.", "items": { "additionalProperties": {}, "type": "object" @@ -215386,6 +227880,7 @@ "type": "array" }, "top_performing_companies": { + "description": "Best-performing companies in the industry.", "items": { "additionalProperties": {}, "type": "object" @@ -215399,9 +227894,11 @@ "properties": { "modules": { "additionalProperties": {}, + "description": "Company and quote information grouped by section.", "type": "object" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" } @@ -215411,10 +227908,12 @@ "yahoofinance.LookupResponse": { "properties": { "count": { + "description": "Number of documents returned.", "example": 10, "type": "integer" }, "documents": { + "description": "Matching instruments, one object per match.", "items": { "additionalProperties": {}, "type": "object" @@ -215422,18 +227921,22 @@ "type": "array" }, "query": { + "description": "Lookup text that was run.", "example": "apple", "type": "string" }, "start": { + "description": "Zero-based offset of the first result.", "example": 0, "type": "integer" }, "total": { + "description": "Total number of matches reported by Yahoo Finance.", "example": 10, "type": "integer" }, "type": { + "description": "Instrument type filter applied, for example `all`.", "example": "all", "type": "string" } @@ -215443,11 +227946,13 @@ "yahoofinance.MarketStatusResponse": { "properties": { "market": { + "description": "Market code, for example `US`.", "example": "US", "type": "string" }, "status": { "additionalProperties": {}, + "description": "Current trading status of the market, as Yahoo Finance reports it.", "type": "object" } }, @@ -215456,10 +227961,12 @@ "yahoofinance.MarketSummaryResponse": { "properties": { "market": { + "description": "Market code, for example `US`.", "example": "US", "type": "string" }, "summary": { + "description": "Market summary entries, one object per index or instrument.", "items": { "additionalProperties": {}, "type": "object" @@ -215473,9 +227980,11 @@ "properties": { "modules": { "additionalProperties": {}, + "description": "Data grouped by section.", "type": "object" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" } @@ -215485,6 +227994,7 @@ "yahoofinance.OptionExpiration": { "properties": { "calls": { + "description": "Call option contracts for this expiration.", "items": { "additionalProperties": {}, "type": "object" @@ -215492,10 +228002,12 @@ "type": "array" }, "expiration_date": { + "description": "Expiration date of the chain, in Unix seconds.", "example": 1779235200, "type": "integer" }, "puts": { + "description": "Put option contracts for this expiration.", "items": { "additionalProperties": {}, "type": "object" @@ -215508,23 +228020,27 @@ "yahoofinance.OptionsResponse": { "properties": { "expiration_dates": { + "description": "Available option expiration dates, in Unix seconds.", "items": { "type": "integer" }, "type": "array" }, "options": { + "description": "Option chains, one entry per expiration date.", "items": { "$ref": "#/definitions/yahoofinance.OptionExpiration" }, "type": "array" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" }, "underlying": { "additionalProperties": {}, + "description": "Quote data of the underlying stock.", "type": "object" } }, @@ -215533,34 +228049,42 @@ "yahoofinance.PricePoint": { "properties": { "adj_close": { + "description": "Closing price adjusted for dividends and splits.", "example": 211, "type": "number" }, "close": { + "description": "Closing price of the candle.", "example": 211, "type": "number" }, "datetime": { + "description": "Start of the candle, in UTC (RFC 3339).", "example": "2026-05-18T13:30:00Z", "type": "string" }, "high": { + "description": "Highest price of the candle.", "example": 212, "type": "number" }, "low": { + "description": "Lowest price of the candle.", "example": 209, "type": "number" }, "open": { + "description": "Opening price of the candle.", "example": 210, "type": "number" }, "timestamp": { + "description": "Start of the candle, in Unix seconds.", "example": 1779111000, "type": "integer" }, "volume": { + "description": "Number of shares traded during the candle.", "example": 54200000, "type": "integer" } @@ -215570,6 +228094,7 @@ "yahoofinance.QuoteResponse": { "properties": { "quotes": { + "description": "Quote data, one object per symbol.", "items": { "additionalProperties": {}, "type": "object" @@ -215577,6 +228102,7 @@ "type": "array" }, "symbols": { + "description": "Ticker symbols that were requested.", "items": { "type": "string" }, @@ -215615,17 +228141,21 @@ "yahoofinance.ScreenerResponse": { "properties": { "description": { + "description": "Description of the screener.", "type": "string" }, "id": { + "description": "Identifier of the screener, for example `day_gainers`.", "example": "day_gainers", "type": "string" }, "meta": { "additionalProperties": {}, + "description": "Screener metadata: its canonical name and criteria details.", "type": "object" }, "quotes": { + "description": "Instruments that match the screener.", "items": { "additionalProperties": {}, "type": "object" @@ -215633,10 +228163,12 @@ "type": "array" }, "title": { + "description": "Display title of the screener, for example `Day Gainers`.", "example": "Day Gainers", "type": "string" }, "total": { + "description": "Total number of instruments that match the screener.", "example": 25, "type": "integer" } @@ -215657,6 +228189,7 @@ "yahoofinance.SearchResponse": { "properties": { "lists": { + "description": "Yahoo Finance lists matching the query.", "items": { "additionalProperties": {}, "type": "object" @@ -215664,6 +228197,7 @@ "type": "array" }, "news": { + "description": "News articles matching the query.", "items": { "additionalProperties": {}, "type": "object" @@ -215671,9 +228205,11 @@ "type": "array" }, "query": { + "description": "Search text that was run.", "type": "string" }, "quotes": { + "description": "Ticker and company matches.", "items": { "additionalProperties": {}, "type": "object" @@ -215747,10 +228283,12 @@ "yahoofinance.SharesFullResponse": { "properties": { "end": { + "description": "Last date covered, as YYYY-MM-DD.", "example": "2026-05-20", "type": "string" }, "points": { + "description": "Share count history, one object per data point.", "items": { "additionalProperties": {}, "type": "object" @@ -215758,10 +228296,12 @@ "type": "array" }, "start": { + "description": "First date covered, as YYYY-MM-DD.", "example": "2025-01-01", "type": "string" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" } @@ -215772,9 +228312,11 @@ "properties": { "shares": { "additionalProperties": {}, + "description": "Share count information, as Yahoo Finance reports it.", "type": "object" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" } @@ -215784,22 +228326,27 @@ "yahoofinance.TrendingResponse": { "properties": { "count": { + "description": "Number of trending symbols returned.", "example": 5, "type": "integer" }, "job_timestamp": { + "description": "Time Yahoo Finance generated the list, in Unix milliseconds.", "example": 1779268508061, "type": "integer" }, "region": { + "description": "Region code of the trending list, for example `US`.", "example": "US", "type": "string" }, "start_interval": { + "description": "Start of the trending interval, as a 12-digit number such as `202605200800`.", "example": 202605200800, "type": "integer" }, "symbols": { + "description": "Trending ticker symbols.", "items": { "type": "string" }, @@ -215811,12 +228358,14 @@ "yahoofinance.ValuationResponse": { "properties": { "headers": { + "description": "Column headers of the valuation table.", "items": { "type": "string" }, "type": "array" }, "rows": { + "description": "Valuation measures, one object per row.", "items": { "additionalProperties": {}, "type": "object" @@ -215824,6 +228373,7 @@ "type": "array" }, "symbol": { + "description": "Ticker symbol, for example `AAPL`.", "example": "AAPL", "type": "string" } @@ -220846,12 +233396,15 @@ "youtube.Caption": { "properties": { "duration": { + "description": "Length of the caption cue, in seconds.", "type": "number" }, "start": { + "description": "Time the caption cue starts, in seconds from the start of the video.", "type": "number" }, "text": { + "description": "Caption text shown for this cue.", "type": "string" } }, @@ -220860,36 +233413,44 @@ "youtube.ChannelFeedResponse": { "properties": { "channel_id": { + "description": "YouTube channel ID, starting with `UC`.", "example": "UCXZCJLdBC09xxGZ6gcdrc6A", "type": "string" }, "channel_title": { + "description": "Channel name as shown on YouTube.", "example": "OpenAI", "type": "string" }, "channel_url": { + "description": "Link to the channel on YouTube.", "example": "https://www.youtube.com/@OpenAI", "type": "string" }, "continuation_token": { + "description": "Token to pass in the next request to get the following page. Omitted on the last page.", "example": "NEXT_TOKEN", "type": "string" }, "handle": { + "description": "Channel handle, starting with `@`.", "example": "@OpenAI", "type": "string" }, "items": { + "description": "Videos or other items from the channel, in the order YouTube lists them.", "items": { "$ref": "#/definitions/youtube.SearchItem" }, "type": "array" }, "query": { + "description": "Search text used to look inside the channel. Omitted when no search was run.", "example": "gpt", "type": "string" }, "thumbnail": { + "description": "URL of the channel's avatar image.", "example": "https://yt3.googleusercontent.com/example=s176-c-k-c0x00ffffff-no-rj", "type": "string" } @@ -220899,26 +233460,32 @@ "youtube.ChannelShort": { "properties": { "position": { + "description": "Position of the Short in the channel's Shorts list, starting at 1.", "example": 1, "type": "integer" }, "thumbnail": { + "description": "URL of the Short's thumbnail image.", "example": "https://i.ytimg.com/vi/abc123xyz89/oar2.jpg", "type": "string" }, "title": { + "description": "Title of the Short.", "example": "OpenAI demo clip", "type": "string" }, "url": { + "description": "Link to the Short on YouTube.", "example": "https://www.youtube.com/shorts/abc123xyz89", "type": "string" }, "video_id": { + "description": "YouTube video ID of the Short.", "example": "abc123xyz89", "type": "string" }, "view_count": { + "description": "View count as YouTube displays it, such as `1.2M views`.", "example": "1.2M views", "type": "string" } @@ -220928,28 +233495,34 @@ "youtube.ChannelShortsResponse": { "properties": { "channel_id": { + "description": "YouTube channel ID, starting with `UC`.", "example": "UCXZCJLdBC09xxGZ6gcdrc6A", "type": "string" }, "channel_title": { + "description": "Channel name as shown on YouTube.", "example": "OpenAI", "type": "string" }, "channel_url": { + "description": "Link to the channel on YouTube.", "example": "https://www.youtube.com/@OpenAI", "type": "string" }, "handle": { + "description": "Channel handle, starting with `@`.", "example": "@OpenAI", "type": "string" }, "shorts": { + "description": "YouTube Shorts published by the channel.", "items": { "$ref": "#/definitions/youtube.ChannelShort" }, "type": "array" }, "thumbnail": { + "description": "URL of the channel's avatar image.", "example": "https://yt3.googleusercontent.com/example=s176-c-k-c0x00ffffff-no-rj", "type": "string" } @@ -220959,27 +233532,35 @@ "youtube.Comment": { "properties": { "channel_id": { + "description": "YouTube channel ID of the commenter.", "type": "string" }, "comment_id": { + "description": "YouTube ID of the comment.", "type": "string" }, "content": { + "description": "Text of the comment.", "type": "string" }, "continuation_token": { + "description": "Token for loading the replies to this comment. Omitted when none is available.", "type": "string" }, "likes_count": { + "description": "Number of likes on the comment.", "type": "integer" }, "published_time": { + "description": "Approximate time the comment was posted, in UTC (RFC 3339).", "type": "string" }, "reply_count": { + "description": "Number of replies to the comment.", "type": "integer" }, "user_name": { + "description": "Display name of the commenter, such as `@handle`.", "type": "string" } }, @@ -220988,12 +233569,14 @@ "youtube.CommentResponse": { "properties": { "comments": { + "description": "Comments on this page of the video.", "items": { "$ref": "#/definitions/youtube.Comment" }, "type": "array" }, "continuation_token": { + "description": "Token to pass in the next request to get the following page.", "type": "string" } }, @@ -221002,40 +233585,49 @@ "youtube.PlaylistResponse": { "properties": { "channel_id": { + "description": "YouTube channel ID of the playlist owner.", "example": "UCXZCJLdBC09xxGZ6gcdrc6A", "type": "string" }, "channel_title": { + "description": "Name of the channel that owns the playlist.", "example": "OpenAI", "type": "string" }, "continuation_token": { + "description": "Token to pass in the next request to get the following page. Omitted on the last page.", "example": "NEXT_TOKEN", "type": "string" }, "items": { + "description": "Videos in the playlist, in playlist order.", "items": { "$ref": "#/definitions/youtube.SearchItem" }, "type": "array" }, "playlist_id": { + "description": "YouTube playlist ID.", "example": "PL1234567890abcdef", "type": "string" }, "thumbnail": { + "description": "URL of the playlist's thumbnail image.", "example": "https://i.ytimg.com/vi/abc123xyz89/hqdefault.jpg", "type": "string" }, "title": { + "description": "Playlist title as shown on YouTube.", "example": "OpenAI Podcast", "type": "string" }, "url": { + "description": "Link to the playlist on YouTube.", "example": "https://www.youtube.com/playlist?list=PL1234567890abcdef", "type": "string" }, "video_count": { + "description": "Number of videos in the playlist as YouTube displays it, such as `12 videos`.", "example": "12 videos", "type": "string" } @@ -221121,6 +233713,7 @@ "youtube.SearchItem": { "properties": { "badges": { + "description": "Badge labels shown on the video, such as `HD` or `CC`.", "example": [ "HD", "CC" @@ -221131,87 +233724,109 @@ "type": "array" }, "channel_id": { + "description": "YouTube channel ID, starting with `UC`.", "example": "UCXZCJLdBC09xxGZ6gcdrc6A", "type": "string" }, "channel_thumbnail": { + "description": "URL of the publishing channel's avatar image.", "example": "https://yt3.ggpht.com/example=s68-c-k-c0x00ffffff-no-rj", "type": "string" }, "channel_title": { + "description": "Name of the channel that published the video or playlist.", "example": "OpenAI", "type": "string" }, "description_snippet": { + "description": "Short excerpt of the video or channel description shown in the results.", "example": "A concise walkthrough of GPT features.", "type": "string" }, "duration": { + "description": "Video length as YouTube displays it, such as `12:34`.", "example": "12:34", "type": "string" }, "duration_seconds": { + "description": "Video length in seconds.", "example": 754, "type": "integer" }, "handle": { + "description": "Channel handle, starting with `@`. Set for channel results.", "example": "@OpenAI", "type": "string" }, "is_live": { + "description": "Whether the video is a live stream.", "type": "boolean" }, "is_short": { + "description": "Whether the video is a YouTube Short.", "type": "boolean" }, "is_verified": { + "description": "Whether the channel carries a verified badge.", "type": "boolean" }, "playlist_id": { + "description": "YouTube playlist ID. Set for playlist results.", "example": "PL1234567890abcdef", "type": "string" }, "position": { + "description": "Position of the item on this page of results, starting at 1.", "example": 1, "type": "integer" }, "published_text": { + "description": "Upload time as YouTube displays it, such as `2 days ago`.", "example": "2 days ago", "type": "string" }, "short_view_count": { + "description": "Abbreviated view count as YouTube displays it, such as `123K views`.", "example": "123K views", "type": "string" }, "subscriber_count": { + "description": "Subscriber count as YouTube displays it, such as `1.93M subscribers`.", "example": "1.93M subscribers", "type": "string" }, "thumbnail": { + "description": "URL of the item's thumbnail image.", "example": "https://i.ytimg.com/vi/abc123/hq720.jpg", "type": "string" }, "title": { + "description": "Video or playlist title, or channel name.", "example": "ChatGPT Explained", "type": "string" }, "type": { + "description": "Kind of result: `video`, `channel` or `playlist`.", "example": "video", "type": "string" }, "url": { + "description": "Link to the video, channel or playlist on YouTube.", "example": "https://www.youtube.com/watch?v=abc123", "type": "string" }, "video_count": { + "description": "Number of videos as YouTube displays it, such as `12 videos`. Set for channel and playlist results.", "example": "9 lessons", "type": "string" }, "video_id": { + "description": "YouTube video ID. Set for video results.", "example": "abc123xyz89", "type": "string" }, "view_count": { + "description": "View count as YouTube displays it, such as `123,456 views`.", "example": "123,456 views", "type": "string" } @@ -221221,20 +233836,24 @@ "youtube.SearchResponse": { "properties": { "continuation_token": { + "description": "Token to pass in the next request to get the following page. Omitted on the last page.", "example": "NEXT_TOKEN", "type": "string" }, "estimated_results": { + "description": "Approximate number of results YouTube reports for the search.", "example": 9895225, "type": "integer" }, "items": { + "description": "Videos, channels and playlists on this page of results.", "items": { "$ref": "#/definitions/youtube.SearchItem" }, "type": "array" }, "query": { + "description": "Search text that was run.", "example": "gpt", "type": "string" } @@ -221244,12 +233863,19 @@ "youtube.TagResp": { "properties": { "continuation_token": { + "description": "Token to pass in the next request to get the following page.", "type": "string" }, "meta": { - "$ref": "#/definitions/youtube.tagMeta" + "allOf": [ + { + "$ref": "#/definitions/youtube.tagMeta" + } + ], + "description": "Totals shown on the hashtag page. Present on the first page only." }, "videos": { + "description": "Videos posted under the hashtag.", "items": { "$ref": "#/definitions/youtube.VideoDetail" }, @@ -221261,16 +233887,20 @@ "youtube.TranscriptLanguage": { "properties": { "is_generated": { + "description": "Whether the transcript is auto-generated rather than written by a person.", "type": "boolean" }, "is_translatable": { + "description": "Whether YouTube offers translations of this transcript.", "type": "boolean" }, "language": { + "description": "Language name, such as `English`.", "example": "English", "type": "string" }, "language_code": { + "description": "Language code of the transcript, such as `en`.", "example": "en", "type": "string" } @@ -221280,31 +233910,38 @@ "youtube.TranscriptResponse": { "properties": { "is_generated": { + "description": "Whether the transcript is auto-generated rather than written by a person.", "type": "boolean" }, "language": { + "description": "Language name of the transcript, such as `English`.", "example": "English", "type": "string" }, "language_code": { + "description": "Language code of the transcript, such as `en`.", "example": "en", "type": "string" }, "segments": { + "description": "Transcript split into timed segments.", "items": { "$ref": "#/definitions/youtube.TranscriptSegment" }, "type": "array" }, "text": { + "description": "Full transcript as one block of text.", "example": "Never gonna give you up", "type": "string" }, "translation_language": { + "description": "Language code the transcript was translated into. Omitted when no translation was requested.", "example": "es", "type": "string" }, "video_id": { + "description": "YouTube video ID the transcript belongs to.", "example": "dQw4w9WgXcQ", "type": "string" } @@ -221314,12 +233951,15 @@ "youtube.TranscriptSegment": { "properties": { "duration": { + "description": "Length of the segment, in seconds.", "type": "number" }, "start": { + "description": "Time the segment starts, in seconds from the start of the video.", "type": "number" }, "text": { + "description": "Transcript text spoken in this segment.", "type": "string" } }, @@ -221328,18 +233968,22 @@ "youtube.VideoDetail": { "properties": { "channel_id": { + "description": "YouTube channel ID of the uploader.", "example": "UCXZCJLdBC09xxGZ6gcdrc6A", "type": "string" }, "channel_title": { + "description": "Name of the channel that uploaded the video.", "example": "OpenAI", "type": "string" }, "comments_count": { + "description": "Number of comments on the video; may be rounded when YouTube shows an abbreviated count. Omitted when unavailable.", "example": 1400, "type": "integer" }, "description": { + "description": "Full video description.", "example": "On the first episode of the OpenAI Podcast...", "type": "string" }, @@ -221354,22 +233998,27 @@ "type": "number" }, "id": { + "description": "YouTube video ID.", "example": "YbJOTdZBX1g", "type": "string" }, "likes_count": { + "description": "Number of likes on the video; may be rounded when YouTube shows an abbreviated count. Omitted when unavailable.", "example": 11000, "type": "integer" }, "published_at": { + "description": "Time the video was published, in RFC 3339.", "example": "2025-06-18T07:59:20-07:00", "type": "string" }, "title": { + "description": "Video title as shown on YouTube.", "example": "Sam Altman on AGI, GPT-5, and what’s next — the OpenAI Podcast Ep. 1", "type": "string" }, "views_count": { + "description": "Number of views of the video. Omitted when unavailable.", "example": 460176, "type": "integer" } @@ -221414,36 +234063,44 @@ "youtube.channelSearchResponseDataDoc": { "properties": { "channel_id": { + "description": "YouTube channel ID, starting with `UC`.", "example": "UCXZCJLdBC09xxGZ6gcdrc6A", "type": "string" }, "channel_title": { + "description": "Channel name as shown on YouTube.", "example": "OpenAI", "type": "string" }, "channel_url": { + "description": "Link to the channel on YouTube.", "example": "https://www.youtube.com/@OpenAI", "type": "string" }, "continuation_token": { + "description": "Token to pass in the next request to get the following page. Omitted on the last page.", "example": "NEXT_TOKEN", "type": "string" }, "handle": { + "description": "Channel handle, starting with `@`.", "example": "@OpenAI", "type": "string" }, "items": { + "description": "Videos from the channel that match the search text.", "items": { "$ref": "#/definitions/youtube.SearchItem" }, "type": "array" }, "query": { + "description": "Search text that was run inside the channel.", "example": "gpt", "type": "string" }, "thumbnail": { + "description": "URL of the channel's avatar image.", "example": "https://yt3.googleusercontent.com/example=s176-c-k-c0x00ffffff-no-rj", "type": "string" } @@ -221565,10 +234222,12 @@ "youtube.tagMeta": { "properties": { "channelsCount": { + "description": "Number of channels using the hashtag, as shown on the hashtag page.", "format": "int64", "type": "integer" }, "videosCount": { + "description": "Number of videos using the hashtag, as shown on the hashtag page.", "format": "int64", "type": "integer" } @@ -223655,74 +236314,91 @@ "zillow.AutocompleteItem": { "properties": { "city": { + "description": "City name of the suggested place.", "example": "Los Angeles", "type": "string" }, "county": { + "description": "County name of the suggested place.", "example": "Los Angeles County", "type": "string" }, "id": { + "description": "Identifier of the suggestion, as Zillow returns it.", "type": "string" }, "latitude": { + "description": "Latitude of the suggested location, in decimal degrees.", "type": "number" }, "longitude": { + "description": "Longitude of the suggested location, in decimal degrees.", "type": "number" }, "near_me": { + "description": "Whether the suggestion is Zillow's near-me search option.", "type": "boolean" }, "plid": { + "description": "Place identifier of the suggestion, as Zillow returns it.", "type": "string" }, "region_display_ids": { + "description": "Display ids of the regions listed in `region_ids`, as Zillow returns them.", "items": { "type": "string" }, "type": "array" }, "region_id": { + "description": "Zillow region id of the suggestion. Pass it as `region_id` to the search endpoint.", "example": 12447, "type": "integer" }, "region_ids": { + "description": "Zillow region ids covered by a suggestion that spans several regions.", "items": { "type": "integer" }, "type": "array" }, "region_type": { + "description": "Zillow region type code that goes with `region_id`. Pass it as `region_type` to the search endpoint.", "example": 6, "type": "integer" }, "region_types": { + "description": "Zillow region type codes that match the region ids in `region_ids`.", "items": { "type": "integer" }, "type": "array" }, "school_district_ids": { + "description": "Zillow ids of the school districts the suggestion refers to.", "items": { "type": "integer" }, "type": "array" }, "school_ids": { + "description": "Zillow ids of the schools the suggestion refers to.", "items": { "type": "integer" }, "type": "array" }, "state": { + "description": "State abbreviation of the suggested place, such as `CA`.", "example": "CA", "type": "string" }, "sub_type": { + "description": "Kind of place the suggestion is, such as `city`.", "type": "string" }, "view_latitude_delta": { + "description": "Latitude span of the map view Zillow suggests for this result.", "type": "number" } }, @@ -223731,13 +236407,16 @@ "zillow.AutocompleteResponse": { "properties": { "query": { + "description": "Query that was run.", "example": "Los Angeles, CA", "type": "string" }, "request_id": { + "description": "Identifier Zillow gave to this autocomplete request.", "type": "string" }, "results": { + "description": "Location suggestions, in the order Zillow returned them.", "items": { "$ref": "#/definitions/zillow.AutocompleteItem" }, @@ -223749,24 +236428,31 @@ "zillow.PropertyAddressParts": { "properties": { "city": { + "description": "City of the property.", "type": "string" }, "county": { + "description": "County of the property.", "type": "string" }, "neighborhood": { + "description": "Neighborhood of the property.", "type": "string" }, "state": { + "description": "State of the property.", "type": "string" }, "street": { + "description": "Street address of the property.", "type": "string" }, "subdivision": { + "description": "Subdivision the property belongs to.", "type": "string" }, "zipcode": { + "description": "ZIP code of the property.", "type": "string" } }, @@ -223775,15 +236461,19 @@ "zillow.PropertyAgent": { "properties": { "email": { + "description": "Email address of the agent, as shown on the listing.", "type": "string" }, "name": { + "description": "Full name of the agent.", "type": "string" }, "phone": { + "description": "Phone number of the agent, as shown on the listing.", "type": "string" }, "type": { + "description": "Role of the agent on the listing, as Zillow labels it.", "type": "string" } }, @@ -223792,12 +236482,15 @@ "zillow.PropertyArea": { "properties": { "text": { + "description": "Area together with its unit, as text.", "type": "string" }, "unit": { + "description": "Unit of `value`, such as `sqft` or `acres`.", "type": "string" }, "value": { + "description": "Area as a number, in the unit given by `unit`.", "type": "number" } }, @@ -223806,12 +236499,15 @@ "zillow.PropertyFact": { "properties": { "key": { + "description": "Name of the fact in snake case, such as `year_built`.", "type": "string" }, "label": { + "description": "Readable label of the fact.", "type": "string" }, "value": { + "description": "Value of the fact, as text.", "type": "string" } }, @@ -223820,231 +236516,290 @@ "zillow.PropertyFacts": { "properties": { "accessibility_features": { + "description": "Accessibility features of the home.", "items": { "type": "string" }, "type": "array" }, "additional": { + "description": "Further facts Zillow lists that have no dedicated field here, one entry per fact.", "items": { "$ref": "#/definitions/zillow.PropertyFact" }, "type": "array" }, "appliances": { + "description": "Appliances included with the home.", "items": { "type": "string" }, "type": "array" }, "architectural_style": { + "description": "Architectural style of the home.", "type": "string" }, "basement": { + "description": "Description of the home's basement.", "type": "string" }, "bathrooms": { + "description": "Total number of bathrooms.", "type": "number" }, "bathrooms_full": { + "description": "Number of full bathrooms.", "type": "integer" }, "bathrooms_half": { + "description": "Number of half bathrooms.", "type": "integer" }, "bathrooms_one_quarter": { + "description": "Number of one-quarter bathrooms.", "type": "integer" }, "bathrooms_three_quarter": { + "description": "Number of three-quarter bathrooms.", "type": "integer" }, "bedrooms": { + "description": "Number of bedrooms.", "type": "number" }, "builder_model": { + "description": "Builder's model name of the home.", "type": "string" }, "builder_name": { + "description": "Name of the home's builder.", "type": "string" }, "community_features": { + "description": "Features of the community the home is in.", "items": { "type": "string" }, "type": "array" }, "construction_materials": { + "description": "Materials the home is built from.", "items": { "type": "string" }, "type": "array" }, "cooling": { + "description": "Cooling systems of the home.", "items": { "type": "string" }, "type": "array" }, "exterior_features": { + "description": "Exterior features of the home.", "items": { "type": "string" }, "type": "array" }, "fireplace_features": { + "description": "Fireplace features of the home.", "items": { "type": "string" }, "type": "array" }, "flooring": { + "description": "Flooring types in the home.", "items": { "type": "string" }, "type": "array" }, "foundation_details": { + "description": "Foundation details of the home.", "items": { "type": "string" }, "type": "array" }, "garage_spaces": { + "description": "Number of garage parking spaces.", "type": "number" }, "has_fireplace": { + "description": "Whether the home has a fireplace.", "type": "boolean" }, "heating": { + "description": "Heating systems of the home.", "items": { "type": "string" }, "type": "array" }, "hoa_fee": { + "description": "Homeowners association fee, as text shown by Zillow.", "type": "string" }, "home_type": { + "description": "Property type of the home, as Zillow labels it.", "type": "string" }, "laundry_features": { + "description": "Laundry features of the home.", "items": { "type": "string" }, "type": "array" }, "levels": { + "description": "Floor levels of the home.", "items": { "type": "string" }, "type": "array" }, "living_area": { - "$ref": "#/definitions/zillow.PropertyArea" + "allOf": [ + { + "$ref": "#/definitions/zillow.PropertyArea" + } + ], + "description": "Interior living area of the home." }, "lot_size": { - "$ref": "#/definitions/zillow.PropertyArea" + "allOf": [ + { + "$ref": "#/definitions/zillow.PropertyArea" + } + ], + "description": "Lot size of the property." }, "lot_size_dimensions": { + "description": "Lot dimensions, as text.", "type": "string" }, "parcel_number": { + "description": "Assessor parcel number of the property.", "type": "string" }, "parking_capacity": { + "description": "Total number of parking spaces.", "type": "integer" }, "parking_features": { + "description": "Parking features of the home.", "items": { "type": "string" }, "type": "array" }, "patio_and_porch_features": { + "description": "Patio and porch features of the home.", "items": { "type": "string" }, "type": "array" }, "pool_features": { + "description": "Pool features of the property.", "items": { "type": "string" }, "type": "array" }, "property_sub_type": { + "description": "Property subtypes of the home, as Zillow labels them.", "items": { "type": "string" }, "type": "array" }, "roof": { + "description": "Roof type or material.", "type": "string" }, "rooms": { + "description": "Room types listed for the home.", "items": { "type": "string" }, "type": "array" }, "security_features": { + "description": "Security features of the home.", "items": { "type": "string" }, "type": "array" }, "sewer": { + "description": "Sewer arrangements of the property.", "items": { "type": "string" }, "type": "array" }, "spa_features": { + "description": "Spa features of the property.", "items": { "type": "string" }, "type": "array" }, "stories": { + "description": "Number of stories in the building.", "type": "number" }, "structure_type": { + "description": "Structure type of the home.", "type": "string" }, "tax_annual_amount": { + "description": "Annual property tax amount.", "type": "number" }, "tax_assessed_value": { + "description": "Assessed value of the property for tax purposes.", "type": "number" }, "utilities": { + "description": "Utilities available to or included with the home.", "items": { "type": "string" }, "type": "array" }, "view": { + "description": "Views the property has.", "items": { "type": "string" }, "type": "array" }, "water_source": { + "description": "Water source of the property.", "items": { "type": "string" }, "type": "array" }, "waterfront_features": { + "description": "Waterfront features of the property.", "items": { "type": "string" }, "type": "array" }, "year_built": { + "description": "Year the home was built.", "type": "integer" }, "zoning": { + "description": "Zoning designation of the property.", "type": "string" } }, @@ -224053,12 +236808,14 @@ "zillow.PropertyHistory": { "properties": { "price": { + "description": "Price history of the property, one entry per event.", "items": { "$ref": "#/definitions/zillow.PropertyPriceHistoryEntry" }, "type": "array" }, "tax": { + "description": "Property tax history, one entry per tax year.", "items": { "$ref": "#/definitions/zillow.PropertyTaxHistoryEntry" }, @@ -224070,66 +236827,84 @@ "zillow.PropertyListing": { "properties": { "agent_name": { + "description": "Name of the listing agent.", "type": "string" }, "agents": { + "description": "Agents named on the listing.", "items": { "$ref": "#/definitions/zillow.PropertyAgent" }, "type": "array" }, "attribution_text": { + "description": "Attribution or disclaimer text Zillow shows for the listing source.", "type": "string" }, "broker_name": { + "description": "Name of the brokerage that holds the listing.", "type": "string" }, "broker_phone": { + "description": "Phone number of the brokerage, as shown on the listing.", "type": "string" }, "date_posted": { + "description": "Date the listing was posted.", "type": "string" }, "date_updated": { + "description": "Date the listing was last updated.", "type": "string" }, "days_on_zillow": { + "description": "Number of days the listing has been on Zillow.", "type": "integer" }, "listing_id": { + "description": "Identifier of the listing, as Zillow returns it.", "type": "string" }, "mls_id": { + "description": "MLS number of the listing.", "type": "string" }, "open_houses": { + "description": "Scheduled open houses for the listing.", "items": { "$ref": "#/definitions/zillow.PropertyOpenHouse" }, "type": "array" }, "provider": { + "description": "Name of the provider that supplied the listing, as Zillow gives it.", "type": "string" }, "provider_listing_id": { + "description": "Listing id assigned by the listing provider.", "type": "string" }, "source": { + "description": "Source of the listing, such as the MLS name, as Zillow gives it.", "type": "string" }, "status": { + "description": "Listing status, as Zillow labels it, such as `FOR_SALE`.", "type": "string" }, "sub_types": { + "description": "Listing subtypes that apply to the listing, such as `is_FSBA`.", "items": { "type": "string" }, "type": "array" }, "time_on_zillow": { + "description": "How long the listing has been on Zillow, as text such as `9 days`.", "type": "string" }, "type": { + "description": "Listing type, as Zillow labels it.", "type": "string" } }, @@ -224138,27 +236913,34 @@ "zillow.PropertyMedia": { "properties": { "has_3d_model": { + "description": "Whether the listing has a 3D tour model.", "type": "boolean" }, "has_video": { + "description": "Whether the listing has a video.", "type": "boolean" }, "photo_count": { + "description": "Number of photos on the listing.", "type": "integer" }, "photos": { + "description": "Photos of the listing with their sizes.", "items": { "$ref": "#/definitions/zillow.PropertyPhoto" }, "type": "array" }, "primary_image": { + "description": "URL of the main listing photo.", "type": "string" }, "video_url": { + "description": "URL of the listing video.", "type": "string" }, "virtual_tour_url": { + "description": "URL of the virtual tour of the property.", "type": "string" } }, @@ -224167,30 +236949,39 @@ "zillow.PropertyNearby": { "properties": { "address": { + "description": "Address of the nearby home.", "type": "string" }, "baths": { + "description": "Number of bathrooms in the nearby home.", "type": "number" }, "beds": { + "description": "Number of bedrooms in the nearby home.", "type": "number" }, "home_status": { + "description": "Listing status of the nearby home, as Zillow labels it.", "type": "string" }, "living_area": { + "description": "Interior living area of the nearby home.", "type": "number" }, "price": { + "description": "Price of the nearby home, as a number.", "type": "number" }, "price_text": { + "description": "Price of the nearby home, as text shown by Zillow.", "type": "string" }, "url": { + "description": "Zillow page URL of the nearby home.", "type": "string" }, "zpid": { + "description": "Zillow property id of the nearby home. Use it with the property endpoint.", "type": "string" } }, @@ -224199,12 +236990,15 @@ "zillow.PropertyOpenHouse": { "properties": { "end_time": { + "description": "End time of the open house.", "type": "string" }, "start_time": { + "description": "Start time of the open house.", "type": "string" }, "text": { + "description": "Open house time as Zillow shows it, for example `Sun 1-4 PM`.", "type": "string" } }, @@ -224213,15 +237007,19 @@ "zillow.PropertyPhoto": { "properties": { "height": { + "description": "Photo height in pixels.", "type": "integer" }, "source": { + "description": "Source or caption of the photo, as Zillow gives it.", "type": "string" }, "url": { + "description": "URL of the photo.", "type": "string" }, "width": { + "description": "Photo width in pixels.", "type": "integer" } }, @@ -224230,30 +237028,39 @@ "zillow.PropertyPriceHistoryEntry": { "properties": { "buyer_agent": { + "description": "Name of the buyer's agent for the event.", "type": "string" }, "change": { + "description": "Price change at this event, as Zillow reports it.", "type": "number" }, "date": { + "description": "Date of the price event.", "type": "string" }, "event": { + "description": "Kind of price event, such as `Listed for sale`.", "type": "string" }, "price": { + "description": "Price at this event, as a number.", "type": "number" }, "price_text": { + "description": "Price at this event, as text shown by Zillow.", "type": "string" }, "seller_agent": { + "description": "Name of the seller's agent for the event.", "type": "string" }, "source": { + "description": "Data source that reported the event, such as an MLS name.", "type": "string" }, "time": { + "description": "Time of the price event, as the numeric timestamp Zillow gives.", "type": "integer" } }, @@ -224262,30 +237069,39 @@ "zillow.PropertyPricing": { "properties": { "currency": { + "description": "Currency of the price, as Zillow shows it.", "type": "string" }, "estimated_monthly_payment": { + "description": "Estimated monthly mortgage payment for the property.", "type": "number" }, "monthly_hoa_fee": { + "description": "Monthly homeowners association fee.", "type": "number" }, "price": { + "description": "Listing price, as a number.", "type": "number" }, "price_per_square_foot": { + "description": "Listing price per square foot.", "type": "number" }, "price_text": { + "description": "Listing price as text shown by Zillow.", "type": "string" }, "property_tax_rate": { + "description": "Property tax rate, as Zillow reports it.", "type": "number" }, "rent_zestimate": { + "description": "Zillow's estimated monthly rent for the property (Rent Zestimate).", "type": "number" }, "zestimate": { + "description": "Zillow's estimated market value of the property (Zestimate).", "type": "number" } }, @@ -224294,123 +237110,183 @@ "zillow.PropertyResponse": { "properties": { "address": { + "description": "Full address of the property.", "type": "string" }, "address_parts": { - "$ref": "#/definitions/zillow.PropertyAddressParts" + "allOf": [ + { + "$ref": "#/definitions/zillow.PropertyAddressParts" + } + ], + "description": "Address of the property split into street, city, state, ZIP code and similar parts." }, "baths": { + "description": "Number of bathrooms.", "type": "number" }, "beds": { + "description": "Number of bedrooms.", "type": "number" }, "broker_name": { + "description": "Name of the brokerage that holds the listing.", "type": "string" }, "currency": { + "description": "Currency of the price, as Zillow shows it.", "type": "string" }, "days_on_zillow": { + "description": "Number of days the listing has been on Zillow.", "type": "integer" }, "description": { + "description": "Listing description text.", "type": "string" }, "detail_text": { + "description": "Short detail text Zillow shows with the listing.", "type": "string" }, "facts": { - "$ref": "#/definitions/zillow.PropertyFacts" + "allOf": [ + { + "$ref": "#/definitions/zillow.PropertyFacts" + } + ], + "description": "Structured facts about the home, such as size, rooms, parking, heating and tax." }, "has_3d_model": { + "description": "Whether the listing has a 3D tour model.", "type": "boolean" }, "has_video": { + "description": "Whether the listing has a video.", "type": "boolean" }, "history": { - "$ref": "#/definitions/zillow.PropertyHistory" + "allOf": [ + { + "$ref": "#/definitions/zillow.PropertyHistory" + } + ], + "description": "Price and tax history of the property." }, "home_status": { + "description": "Listing status in Zillow's terms, such as `FOR_SALE` or `FOR_RENT`.", "type": "string" }, "home_type": { + "description": "Property type, as Zillow labels it, such as `SINGLE_FAMILY`.", "type": "string" }, "image": { + "description": "URL of the main listing photo.", "type": "string" }, "is_showcase": { + "description": "Whether Zillow shows the listing as a showcase listing.", "type": "boolean" }, "latitude": { + "description": "Latitude of the property, in decimal degrees.", "type": "number" }, "listing": { - "$ref": "#/definitions/zillow.PropertyListing" + "allOf": [ + { + "$ref": "#/definitions/zillow.PropertyListing" + } + ], + "description": "Listing details: identifiers, source, broker, agents, dates and open houses." }, "listing_sub_type": { + "description": "Listing subtypes that apply to the listing, such as `is_FSBA`.", "items": { "type": "string" }, "type": "array" }, "living_area": { + "description": "Interior living area in square feet.", "type": "number" }, "longitude": { + "description": "Longitude of the property, in decimal degrees.", "type": "number" }, "lot_area": { + "description": "Lot size, in the unit given by `lot_area_unit`.", "type": "number" }, "lot_area_unit": { + "description": "Unit of `lot_area`, as Zillow gives it.", "type": "string" }, "media": { - "$ref": "#/definitions/zillow.PropertyMedia" + "allOf": [ + { + "$ref": "#/definitions/zillow.PropertyMedia" + } + ], + "description": "Photos, video and tour links of the listing." }, "nearby": { + "description": "Compact summaries of nearby homes.", "items": { "$ref": "#/definitions/zillow.PropertyNearby" }, "type": "array" }, "photos": { + "description": "URLs of the listing photos.", "items": { "type": "string" }, "type": "array" }, "price": { + "description": "Listing price, as a number. The text Zillow shows is in `price_text`.", "type": "number" }, "price_text": { + "description": "Listing price as text shown by Zillow, such as `$1,000,000` or `Contact Landlord`.", "type": "string" }, "pricing": { - "$ref": "#/definitions/zillow.PropertyPricing" + "allOf": [ + { + "$ref": "#/definitions/zillow.PropertyPricing" + } + ], + "description": "Price, estimates, fees and monthly payment of the property." }, "rent_zestimate": { + "description": "Zillow's estimated monthly rent for the home (Rent Zestimate).", "type": "number" }, "schools": { + "description": "Schools assigned to or near the property.", "items": { "$ref": "#/definitions/zillow.PropertySchool" }, "type": "array" }, "status_text": { + "description": "Status label shown on the listing, such as `House for sale`.", "type": "string" }, "url": { + "description": "Zillow page URL of the listing.", "type": "string" }, "zestimate": { + "description": "Zillow's estimated market value of the home (Zestimate).", "type": "number" }, "zpid": { + "description": "Zillow property id. Use it with the property endpoint. Rental building rows carry a `latitude--longitude` identifier instead.", "example": "12345678", "type": "string" } @@ -224420,33 +237296,43 @@ "zillow.PropertySchool": { "properties": { "assigned": { + "description": "Whether the school is assigned to the property's address.", "type": "boolean" }, "distance": { + "description": "Distance from the property to the school, as Zillow reports it.", "type": "number" }, "district": { + "description": "Name of the school district.", "type": "string" }, "grades": { + "description": "Grades the school serves, such as `K-5`.", "type": "string" }, "id": { + "description": "Identifier of the school, as Zillow returns it.", "type": "string" }, "level": { + "description": "School level, such as `Elementary`.", "type": "string" }, "link": { + "description": "Zillow page URL of the school.", "type": "string" }, "name": { + "description": "Name of the school.", "type": "string" }, "rating": { + "description": "School rating, as Zillow shows it.", "type": "number" }, "type": { + "description": "School type, such as `Public`.", "type": "string" } }, @@ -224455,21 +237341,27 @@ "zillow.PropertyTaxHistoryEntry": { "properties": { "tax_increase": { + "description": "Rate of increase in tax paid, as Zillow reports it.", "type": "number" }, "tax_paid": { + "description": "Property tax paid for the year.", "type": "number" }, "time": { + "description": "Time of the tax record, as the numeric timestamp Zillow gives.", "type": "integer" }, "value": { + "description": "Assessed value of the property for the year.", "type": "number" }, "value_increase": { + "description": "Rate of increase in assessed value, as Zillow reports it.", "type": "number" }, "year": { + "description": "Tax year of the record.", "type": "integer" } }, @@ -224478,14 +237370,17 @@ "zillow.RentalUnit": { "properties": { "beds": { + "description": "Number of bedrooms of this unit tier. `0` means a studio.", "example": 1, "type": "number" }, "price": { + "description": "Starting monthly rent of this unit tier.", "example": 2657, "type": "number" }, "price_text": { + "description": "Starting rent of this unit tier as shown by Zillow, such as `$2,657+`.", "example": "$2,657+", "type": "string" } @@ -224495,112 +237390,144 @@ "zillow.SearchItem": { "properties": { "address": { + "description": "Full address of the property.", "type": "string" }, "availability_count": { + "description": "Number of units currently available in the rental building.", "example": 6, "type": "integer" }, "baths": { + "description": "Number of bathrooms.", "type": "number" }, "beds": { + "description": "Number of bedrooms.", "type": "number" }, "broker_name": { + "description": "Name of the brokerage that holds the listing.", "type": "string" }, "building_name": { + "description": "Name of the rental building, such as an apartment community.", "example": "The Pointe at Warner Center", "type": "string" }, "currency": { + "description": "Currency of the price, as Zillow shows it.", "type": "string" }, "days_on_zillow": { + "description": "Number of days the listing has been on Zillow.", "type": "integer" }, "detail_text": { + "description": "Short detail text Zillow shows with the listing.", "type": "string" }, "has_3d_model": { + "description": "Whether the listing has a 3D tour model.", "type": "boolean" }, "has_video": { + "description": "Whether the listing has a video.", "type": "boolean" }, "home_status": { + "description": "Listing status in Zillow's terms, such as `FOR_SALE` or `FOR_RENT`.", "type": "string" }, "home_type": { + "description": "Property type, as Zillow labels it, such as `SINGLE_FAMILY`.", "type": "string" }, "image": { + "description": "URL of the main listing photo.", "type": "string" }, "is_building": { + "description": "Whether the row is a rental building rather than a single listing.", "example": true, "type": "boolean" }, "is_showcase": { + "description": "Whether Zillow shows the listing as a showcase listing.", "type": "boolean" }, "latitude": { + "description": "Latitude of the property, in decimal degrees.", "type": "number" }, "listing_sub_type": { + "description": "Listing subtypes that apply to the listing, such as `is_FSBA`.", "items": { "type": "string" }, "type": "array" }, "living_area": { + "description": "Interior living area in square feet.", "type": "number" }, "longitude": { + "description": "Longitude of the property, in decimal degrees.", "type": "number" }, "lot_area": { + "description": "Lot size, in the unit given by `lot_area_unit`.", "type": "number" }, "lot_area_unit": { + "description": "Unit of `lot_area`, as Zillow gives it.", "type": "string" }, "photos": { + "description": "URLs of the listing photos.", "items": { "type": "string" }, "type": "array" }, "price": { + "description": "Listing price, as a number. The text Zillow shows is in `price_text`.", "type": "number" }, "price_max": { + "description": "Highest monthly rent in the rental building.", "example": 3157, "type": "number" }, "price_text": { + "description": "Listing price as text shown by Zillow, such as `$1,000,000` or `Contact Landlord`.", "type": "string" }, "rent_zestimate": { + "description": "Zillow's estimated monthly rent for the home (Rent Zestimate).", "type": "number" }, "status_text": { + "description": "Status label shown on the listing, such as `House for sale`.", "type": "string" }, "units": { + "description": "Unit tiers of the rental building, one per bedroom count, with starting rent.", "items": { "$ref": "#/definitions/zillow.RentalUnit" }, "type": "array" }, "url": { + "description": "Zillow page URL of the listing.", "type": "string" }, "zestimate": { + "description": "Zillow's estimated market value of the home (Zestimate).", "type": "number" }, "zpid": { + "description": "Zillow property id. Use it with the property endpoint. Rental building rows carry a `latitude--longitude` identifier instead.", "example": "12345678", "type": "string" } @@ -224610,14 +237537,17 @@ "zillow.SearchResponse": { "properties": { "location": { + "description": "Location that was searched.", "example": "San Francisco, CA", "type": "string" }, "page": { + "description": "Page number returned.", "example": 1, "type": "integer" }, "results": { + "description": "Listings and rental buildings matching the search.", "items": { "$ref": "#/definitions/zillow.SearchItem" }, @@ -225189,7 +238119,7 @@ "consumes": [ "application/json" ], - "description": "Returns designer values discovered from the selected 1stDibs category page. Each slug is valid for firstdibs-search's designer filter.", + "description": "Lists the designer filter values found on a 1stDibs category page, with a `count` and, for each designer, its `name`, `slug` and `url`. `category` is optional and comes from `firstdibs-categories`. Each `slug` can be used as the designer filter in `firstdibs-search`.", "operationId": "firstdibs-designers", "parameters": [ { @@ -225238,7 +238168,7 @@ "consumes": [ "application/json" ], - "description": "Returns public product detail, pricing, availability, brand, category, description, and images for a 1stDibs product URL.", + "description": "Returns the details of one 1stDibs product, identified by its product `url`: `name`, `brand`, `category`, `description`, `images`, `price` with `currency`, and the `in_stock` flag. The price is in USD and is present only when 1stDibs shows one.", "operationId": "firstdibs-product", "parameters": [ { @@ -226443,7 +239373,7 @@ }, "/abcau/article": { "get": { - "description": "Returns public ABC News Australia article metadata and body paragraphs from a canonical article URL.", + "description": "Returns an ABC News Australia article by `url`, a canonical `abc.net.au` address in the form `/news///`: title, description, publication time, section, authors, image and the body `paragraphs`. Rolling live-blog posts, whose slug ends `-live-blog`, return an error instead of partial content.", "operationId": "abcau-article", "parameters": [ { @@ -226497,7 +239427,7 @@ }, "/abcau/author": { "get": { - "description": "Returns an ABC News Australia author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns an ABC News Australia author profile from `url`, a canonical `https://www.abc.net.au/news//` address: name, `biography`, `image_url` and recent articles. Not every author has a headshot or biography, and wire or staff bylines often have neither.", "operationId": "abcau-author", "parameters": [ { @@ -226551,7 +239481,7 @@ }, "/abcau/headlines": { "get": { - "description": "Returns fresh headlines from one public ABC News Australia section.", + "description": "Returns current headlines for one ABC News Australia section. `section` is required and takes one of 15 slugs, including `justin`, `politics`, `rural`, `analysis-and-opinion` and `australia`. Each item has a title and URL, and may also carry a summary, author, publication time and image.", "operationId": "abcau-headlines", "parameters": [ { @@ -226616,7 +239546,7 @@ }, "/abcau/news": { "get": { - "description": "Returns fresh ABC News Australia top stories from its public RSS feed.", + "description": "Returns the current ABC News Australia top stories, with no input needed. Each item has a title and canonical URL, and may also carry a summary, author, publication time and image.", "operationId": "abcau-news", "produces": [ "application/json" @@ -226654,7 +239584,7 @@ }, "/abcau/sections": { "get": { - "description": "Returns the public ABC News Australia section inventory used by the headlines endpoint.", + "description": "Lists the 15 ABC News Australia section slugs accepted by `abcau-headlines`, from `justin` and `world` to `backstory` and `australia`. Each entry has a `slug`, a display `name` (for example `Just In`) and the section's page `url`.", "operationId": "abcau-sections", "produces": [ "application/json" @@ -226734,7 +239664,7 @@ }, "/abcnews/author": { "get": { - "description": "Returns an ABC News author's profile: name, job title/biography when the page carries one, and social links, from a canonical author URL. Does NOT include a list of the author's recent articles -- unlike this repo's other news-author endpoints, ABC News only exposes that list through an internal endpoint disallowed for every crawler in abcnews.com's robots.txt (a generic \"Disallow: /proxy/*\" rule, not limited to AI-training bots), so it is out of scope for this endpoint.", + "description": "Returns an ABC News author's profile: name, job title/biography when the page carries one, and social links, from a canonical author URL. Does not include a list of the author's recent articles.", "operationId": "abcnews-author", "parameters": [ { @@ -226788,7 +239718,7 @@ }, "/abcnews/headlines": { "get": { - "description": "Returns fresh headlines from one ABC News section's public hub page.", + "description": "Returns the current headlines for one ABC News section. `section` is required and must be `us`, `world`, `politics`, `business`, `technology`, `entertainment`, `health` or `sports`. Each item has a title and URL, and may also carry a summary, author, publication time and image.", "operationId": "abcnews-headlines", "parameters": [ { @@ -226846,7 +239776,7 @@ }, "/abcnews/news": { "get": { - "description": "Returns fresh ABC News top stories from its public news sitemap feed.", + "description": "Returns the current ABC News top stories, with no input needed. Each item has a title and canonical URL, and may also carry a summary, author, publication time and image.", "operationId": "abcnews-news", "produces": [ "application/json" @@ -226884,7 +239814,7 @@ }, "/abcnews/sections": { "get": { - "description": "Returns the ABC News section inventory: the 8 core news sections accepted by abcnews-headlines.", + "description": "Lists the 8 core ABC News sections that `abcnews-headlines` accepts: `us`, `world`, `politics`, `business`, `technology`, `entertainment`, `health` and `sports`. Each entry has a `slug`, a display `name` and the section's page `url`.", "operationId": "abcnews-sections", "produces": [ "application/json" @@ -227553,7 +240483,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product-detail data for one Adidas SKU: name, brand, category, description, pricing (current/standard/sale), images, and every purchasable size variant. product_id is the Adidas SKU (e.g. JI0397), taken from a search result's products[].id field or the trailing segment of an Adidas product page URL. An unknown product_id returns a not-found error.", + "description": "Returns product-detail data for one Adidas SKU: name, brand, category, description, pricing (current/standard/sale), images, and every purchasable size variant. product_id is the Adidas SKU (e.g. JI0397), taken from a search result's products[].id field or the trailing segment of an Adidas product page URL. An unknown product_id returns a not-found error.", "operationId": "adidas-product", "parameters": [ { @@ -227777,7 +240707,7 @@ "consumes": [ "application/json" ], - "description": "Searches Adidas.com product listings by keyword, or browses a category listing by taxonomy slug, with real pagination and sort options. Exactly one of query or category is required. Returns normalized product summaries (title, price, rating, images, color variants) plus facet filter groups, sort options, and (for category browse) a breadcrumb trail. Keyword search is best-effort relevance, not a guaranteed match: an obscure keyword returns whatever Adidas's own search index surfaces. A genuinely empty keyword search returns an empty product list, and requesting a page beyond the available result pages (or an unknown category) returns a not-found error. Category values are the path segment after /us/ in an Adidas category URL (e.g. women-athletic_sneakers); they can also be read from the url fields of a search/category response's own filters and breadcrumbs. Facets are applied by composing them into the category slug rather than by a separate parameter: each filters[].values[].slug is a token you splice into the category value (e.g. category=women-black-athletic_sneakers applies the Color=Black facet, and category=women-athletic_sneakers-prime applies Shipping=PRIME). Use filters[].key (the facet's stable name, e.g. searchcolor) rather than filters[].id, which is an opaque per-deployment UUID that cannot be used to build a request. Note the token's position within the slug varies by facet, so compose from a slug you have seen rather than assuming a fixed order.", + "description": "Searches Adidas.com product listings by keyword, or browses a category listing by taxonomy slug, with real pagination and sort options. Exactly one of query or category is required. Returns product summaries (title, price, rating, images, color variants) plus facet filter groups, sort options, and (for category browse) a breadcrumb trail. Keyword search is best-effort relevance, not a guaranteed match: an obscure keyword returns whatever Adidas's own search index surfaces. A genuinely empty keyword search returns an empty product list, and requesting a page beyond the available result pages (or an unknown category) returns a not-found error. Category values are the path segment after /us/ in an Adidas category URL (e.g. women-athletic_sneakers); they can also be read from the url fields of a search/category response's own filters and breadcrumbs. Facets are applied by composing them into the category slug rather than by a separate parameter: each filters[].values[].slug is a token you splice into the category value (e.g. category=women-black-athletic_sneakers applies the Color=Black facet, and category=women-athletic_sneakers-prime applies Shipping=PRIME). Use filters[].key (the facet's stable name, e.g. searchcolor) rather than filters[].id, which is an opaque per-deployment UUID that cannot be used to build a request. Note the token's position within the slug varies by facet, so compose from a slug you have seen rather than assuming a fixed order.", "operationId": "adidas-search", "parameters": [ { @@ -227860,7 +240790,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized detail for one Adidas retail store: name, status, phone, description, full address, coordinates, opening hours, and in-store services (e.g. Click and Collect, Free Wi-Fi). store_id is the numeric Adidas store id, taken from an adidas-stores response's stores[].id field. An unknown store_id returns a not-found error.", + "description": "Returns detail for one Adidas retail store: name, status, phone, description, full address, coordinates, opening hours, and in-store services (e.g. Click and Collect, Free Wi-Fi). store_id is the numeric Adidas store id, taken from an adidas-stores response's stores[].id field. An unknown store_id returns a not-found error.", "operationId": "adidas-store", "parameters": [ { @@ -228052,7 +240982,7 @@ "consumes": [ "application/json" ], - "description": "Returns Agoda activities (tours, attractions, experiences) matching a free-text keyword and/or a city. When keyword is omitted, the resolved city's name is used instead to return a general listing of activities in that city. Callers may supply a known Agoda city id or a free-text city name for the city filter; when both are supplied city_id takes precedence. Credential-free public data from Agoda's own destination search.", + "description": "Returns Agoda activities (tours, attractions, experiences) matching a free-text keyword and/or a city. When keyword is omitted, the resolved city's name is used instead to return a general listing of activities in that city. Callers may supply a known Agoda city id or a free-text city name for the city filter; when both are supplied city_id takes precedence.", "operationId": "agoda-activities-search", "parameters": [ { @@ -228128,7 +241058,7 @@ "consumes": [ "application/json" ], - "description": "Returns full activity detail from Agoda: title, description, stated duration, categories, and content images. Credential-free public data from Agoda's own activity content source.", + "description": "Returns full activity detail from Agoda: title, description, stated duration, categories, and content images.", "operationId": "agoda-activity-detail", "parameters": [ { @@ -228191,7 +241121,7 @@ "consumes": [ "application/json" ], - "description": "Returns real-content amenities (aircraft type, seat layout, meals, entertainment, wifi) for one or more flight segments. Copy the segments straight from a flight search response's own segment fields. Credential-free public data from Agoda's own flight content service.", + "description": "Returns real-content amenities (aircraft type, seat layout, meals, entertainment, wifi) for one or more flight segments. Copy the segments straight from a flight search response's own segment fields.", "operationId": "agoda-flights-itinerary-amenities", "parameters": [ { @@ -228249,7 +241179,7 @@ "consumes": [ "application/json" ], - "description": "Returns bookable one-way flight itineraries between two IATA airport codes for a departure date, including per-segment flight number, airline, times, layovers, aircraft type, and price. Resolve free-text city/airport names to codes first via the flight destination search endpoint. Credential-free public data from Agoda's own flight search.", + "description": "Returns bookable one-way flight itineraries between two IATA airport codes for a departure date, including per-segment flight number, airline, times, layovers, aircraft type, and price. Resolve free-text city/airport names to codes first via the flight destination search endpoint.", "operationId": "agoda-flights-search", "parameters": [ { @@ -228362,7 +241292,7 @@ "consumes": [ "application/json" ], - "description": "Resolves a free-text city or airport name into IATA airport codes for flight search, with each city's direct and nearby airports. Credential-free public data from Agoda's own flight destination search.", + "description": "Resolves a free-text city or airport name into IATA airport codes for flight search, with each city's direct and nearby airports.", "operationId": "agoda-flights-search-locations", "parameters": [ { @@ -228419,7 +241349,7 @@ "consumes": [ "application/json" ], - "description": "Returns Homes & Apartments results for an Agoda city: full listing detail for every matching property whose accommodation type is Apartment, drawn from the same city search as hotel search and filtered to non-hotel accommodation types. Callers may supply a known Agoda city id or a free-text city name; when both are supplied city_id takes precedence. Credential-free public data from Agoda's own hotel/home search.", + "description": "Returns Homes & Apartments results for an Agoda city: full listing detail for every matching property whose accommodation type is Apartment. Callers may supply a known Agoda city id or a free-text city name; when both are supplied city_id takes precedence.", "operationId": "agoda-homes-search", "parameters": [ { @@ -228502,7 +241432,7 @@ "consumes": [ "application/json" ], - "description": "Returns hotel search results for an Agoda city: the matching property ids for that city plus a direct link to each property's listing page. Callers may supply a known Agoda city id or a free-text city name; when both are supplied city_id takes precedence. Credential-free public data from Agoda's own hotel search.", + "description": "Returns hotel search results for an Agoda city: the matching property ids for that city plus a direct link to each property's listing page. Callers may supply a known Agoda city id or a free-text city name; when both are supplied city_id takes precedence.", "operationId": "agoda-hotels-search", "parameters": [ { @@ -228585,7 +241515,7 @@ "consumes": [ "application/json" ], - "description": "Returns full hotel detail from Agoda: identity (name, any former name), an accommodation type code, address (street address, postal code, city, country), guest rating, a main photo, room count, hotel chain id, a long and short description, and short-form policy statements (minimum age, adult/child definitions, extra-bed and additional-room booking policy). Credential-free public data from Agoda's own hotel content source.", + "description": "Returns full hotel detail from Agoda: identity (name, any former name), an accommodation type code, address (street address, postal code, city, country), guest rating, a main photo, room count, hotel chain id, a long and short description, and short-form policy statements (minimum age, adult/child definitions, extra-bed and additional-room booking policy).", "operationId": "agoda-hotel-detail", "parameters": [ { @@ -228648,7 +241578,7 @@ "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.", + "description": "Returns an 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": [ { @@ -228780,7 +241710,7 @@ "consumes": [ "application/json" ], - "description": "Returns reviews guests left for an Airbnb host, paginated, including the reviewer name and location.", + "description": "Returns the reviews guests left for an Airbnb host, identified by the numeric host `id`. `page` is 1-based (default 1). Each review has its `id`, `rating`, `comments`, `created_at`, `reviewer` name and `reviewer_location`, and `has_more` says whether another page follows.", "operationId": "airbnb-host-reviews", "parameters": [ { @@ -228849,7 +241779,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Airbnb public room details.", + "description": "Returns the public details of one Airbnb listing by room id: title, description, property type, location and coordinates, guest capacity, amenities, price and price per night, rating, review count, host, and the Superhost and Guest Favorite flags. Some fields are present only when Airbnb exposes them for the listing.", "operationId": "airbnb-room", "parameters": [ { @@ -228912,7 +241842,7 @@ "consumes": [ "application/json" ], - "description": "Returns public calendar month hints parsed from Airbnb room bootstrap data.", + "description": "Returns the public availability calendar for one Airbnb room, grouped by month. Each day carries its date, whether it is available and bookable, whether it can be a check-in or check-out day, and the minimum and maximum nights. Months are returned only when Airbnb exposes them for the listing.", "operationId": "airbnb-room-calendar", "parameters": [ { @@ -228975,7 +241905,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Airbnb public review snippets.", + "description": "Returns public guest reviews for one Airbnb room by room id, one page at a time (`page` is 1-based). Each review has the author, date, rating and text. Reviews are returned only when Airbnb exposes them for the listing.", "operationId": "airbnb-room-reviews", "parameters": [ { @@ -229044,7 +241974,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Airbnb public web search results.", + "description": "Searches public Airbnb stays for a location, with optional check-in and check-out dates, adult count, currency and page. Pass `ne_lat`, `ne_lng`, `sw_lat` and `sw_lng` to bound the search to a map area. Each result has the listing id, title, URL, location and coordinates, price and price per night, rating, review count, host, and the Superhost and Guest Favorite flags.", "operationId": "airbnb-search", "parameters": [ { @@ -229158,7 +242088,7 @@ }, "/alcom/headlines": { "get": { - "description": "Returns current headlines from one of AL.com's public Arc RSS section feeds. Summaries are brief publisher teasers, not full article text.", + "description": "Returns current headlines from one of AL.com's section feeds. Summaries are brief publisher teasers, not full article text.", "operationId": "alcom-headlines", "parameters": [ { @@ -229211,7 +242141,7 @@ }, "/alcom/news": { "get": { - "description": "Returns current AL.com News stories from its public Arc RSS feed. Feed summaries are brief publisher teasers, not full article text.", + "description": "Returns current AL.com News stories. Summaries are brief publisher teasers, not full article text.", "operationId": "alcom-news", "produces": [ "application/json" @@ -229249,7 +242179,7 @@ }, "/alcom/sections": { "get": { - "description": "Returns the three top-level editorial sections exposed in AL.com's site navigation and accepted by the headlines endpoint.", + "description": "Lists the three top-level editorial sections in AL.com's navigation: `news`, `sports` and `life`. Each has a `slug`, a display `name` and the section's page `url`, and the slugs are the values `alcom-headlines` accepts for `section`.", "operationId": "alcom-sections", "produces": [ "application/json" @@ -229512,7 +242442,7 @@ }, "/aljazeera/article": { "get": { - "description": "Returns a public Al Jazeera article's metadata and body paragraphs from a canonical article URL.", + "description": "Returns an Al Jazeera article by `url`, a canonical dated `www.aljazeera.com` address such as `/news/2026/9/20/example-slug`: title, description, publication and update times, section, credited authors, lead image and body `paragraphs`. Live-blog URLs return their opening summary bullets as the body; a video page with no article text returns `503` and a malformed URL `400`.", "operationId": "aljazeera-article", "parameters": [ { @@ -229645,7 +242575,7 @@ }, "/aljazeera/categories": { "get": { - "description": "Returns Al Jazeera's current public section navigation. Use a returned slug directly as the topic parameter on aljazeera-topic.", + "description": "Lists Al Jazeera's current section navigation, each entry with a `name`, `slug` and `url`. A slug has one segment (`news`, `middle-east`) or two (`tag/human-rights`), and any returned `slug` can be passed as the `topic` parameter of `aljazeera-topic`.", "operationId": "aljazeera-categories", "produces": [ "application/json" @@ -229683,7 +242613,7 @@ }, "/aljazeera/headlines": { "get": { - "description": "Returns fresh headlines from Al Jazeera's public, site-wide RSS feed.", + "description": "Returns recent Al Jazeera text-news headlines from across the site, with no input needed. Each item has a title, canonical URL, summary, publication time and the section when present. Video items are excluded because the article endpoint supports text stories only.", "operationId": "aljazeera-headlines", "produces": [ "application/json" @@ -229784,7 +242714,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Allbirds (https://www.allbirds.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Allbirds (https://www.allbirds.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "allbirds-collections", "parameters": [ { @@ -229847,7 +242777,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Allbirds (https://www.allbirds.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Allbirds (https://www.allbirds.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "allbirds-collection-products", "parameters": [ { @@ -229924,7 +242854,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Allbirds (https://www.allbirds.com). The storefront URL is fixed server-side.", + "description": "Lists static pages from the Allbirds store, paged with `page` (default 1) and `limit` (default 50, max 250). Each item has `handle`, `title`, `url`, `id`, publish and update times and plain-text `content`. In some responses items carry only `handle`, `url` and `updated_at`.", "operationId": "allbirds-pages", "parameters": [ { @@ -229987,7 +242917,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Allbirds (https://www.allbirds.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one static page from the Allbirds store by its `handle`: title, URL, publish and update times, and `content` as plain text rather than HTML. `id` is omitted on some pages. A handle that does not exist returns 404.", "operationId": "allbirds-page", "parameters": [ { @@ -230050,7 +242980,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Allbirds's (https://www.allbirds.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Allbirds's (https://www.allbirds.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "allbirds-products", "parameters": [ { @@ -230113,7 +243043,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Allbirds (https://www.allbirds.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Allbirds (https://www.allbirds.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "allbirds-product", "parameters": [ { @@ -230176,7 +243106,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Allbirds (https://www.allbirds.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Allbirds (https://www.allbirds.com) product handle. The storefront URL is fixed server-side.", "operationId": "allbirds-product-recommendations", "parameters": [ { @@ -230257,7 +243187,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Allbirds's (https://www.allbirds.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Allbirds's (https://www.allbirds.com) predictive search. The storefront URL is fixed server-side.", "operationId": "allbirds-search-suggest", "parameters": [ { @@ -230328,7 +243258,7 @@ "consumes": [ "application/json" ], - "description": "Returns capped URL entries from Allbirds's (https://www.allbirds.com) child sitemaps matching the requested type. The storefront URL is fixed server-side.", + "description": "Lists URL entries from the Allbirds store sitemaps, filtered by `type` (`all`, `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`; default `all`). `limit` defaults to 50 and is capped at 250. Each entry has `loc`, `type`, `handle`, `lastmod`, `changefreq` and optional `images`.", "operationId": "allbirds-sitemap-urls", "parameters": [ { @@ -230400,7 +243330,7 @@ "consumes": [ "application/json" ], - "description": "Returns child sitemap URLs from Allbirds's (https://www.allbirds.com) `/sitemap.xml` index with inferred sitemap types. The storefront URL is fixed server-side.", + "description": "Lists the child sitemaps in the Allbirds store's sitemap index, each with its `loc` and a `type` of `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`. Takes no parameters. The types match the `type` filter of `allbirds-sitemap-urls`.", "operationId": "allbirds-sitemaps", "produces": [ "application/json" @@ -230447,7 +243377,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Allbirds (https://www.allbirds.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Allbirds (https://www.allbirds.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "allbirds-store", "produces": [ "application/json" @@ -230494,7 +243424,7 @@ "consumes": [ "application/json" ], - "description": "Returns one card design's identity, full population report (across every grading company and grade Alt tracks), and a recent raw sales feed -- the \"is this card actually rare, and what does it sell for\" data for a specific card design, independent of any single listing. asset_id comes from a prior alt-search/alt-sold-listings/alt-card-search result's asset_id field. recent_sales has no per-transaction grade breakdown -- Alt's own API does not expose one; see alt-sold-listings for per-grade sold prices on specific listings. Credential-free public data from Alt's own GraphQL API.", + "description": "Returns one card design's identity, full population report (across every grading company and grade Alt tracks), and a recent raw sales feed -- the \"is this card actually rare, and what does it sell for\" data for a specific card design, independent of any single listing. asset_id comes from a prior alt-search/alt-sold-listings/alt-card-search result's asset_id field. recent_sales has no per-transaction grade breakdown -- Alt does not expose one; see alt-sold-listings for per-grade sold prices on specific listings.", "operationId": "alt-asset", "parameters": [ { @@ -230557,7 +243487,7 @@ "consumes": [ "application/json" ], - "description": "Searches Alt's own currently live auctions -- the same pool shown on alt.xyz/browse's \"Auctions\" tab filtered to the Alt source. Unlike alt-search, this never returns another source auction house's listings or Alt's own fixed-price items: it always uses a search key scoped server-side to Alt's own live auction pool. Credential-free public data from Alt's own search backend. See alt-categories for the accepted category/grading_company/sort values.", + "description": "Searches Alt's own currently live auctions -- the same pool shown on alt.xyz/browse's \"Auctions\" tab filtered to the Alt source. Unlike alt-search, this never returns another source auction house's listings or Alt's own fixed-price items. See alt-categories for the accepted category/grading_company/sort values.", "operationId": "alt-auctions", "parameters": [ { @@ -230700,7 +243630,7 @@ "consumes": [ "application/json" ], - "description": "Searches Alt's reference card-design catalog -- a canonical catalog of card designs (one entry per year/brand/subject/card-number/variety combination), separate from live listings or sales. Useful for finding a card design's asset_id (to feed into alt-asset for a population report and recent sales) without already having a live listing or sale that references it. Credential-free public data from Alt's own search backend.", + "description": "Searches Alt's reference card-design catalog -- a canonical catalog of card designs (one entry per year/brand/subject/card-number/variety combination), separate from live listings or sales. Useful for finding a card design's asset_id (to feed into alt-asset for a population report and recent sales) without already having a live listing or sale that references it.", "operationId": "alt-card-search", "parameters": [ { @@ -230774,7 +243704,7 @@ "consumes": [ "application/json" ], - "description": "Returns every accepted value for alt-search/alt-auctions/alt-sold-listings' category, auction_house, grading_company, and listing_type params, plus the sort enum. category/auction_house/grading_company/listing_type are read live from Alt's own current search index via a facets-only query on every call, not a fixed taxonomy -- so this endpoint self-corrects if Alt's aggregator adds a new source auction house, grading company, or category. Credential-free public data from Alt's own search backend.", + "description": "Returns every accepted value for alt-search/alt-auctions/alt-sold-listings' category, auction_house, grading_company, and listing_type params, plus the sort enum. category/auction_house/grading_company/listing_type are read live from Alt's own current search index on every call, not a fixed taxonomy -- so this endpoint self-corrects if Alt's aggregator adds a new source auction house, grading company, or category.", "operationId": "alt-categories", "produces": [ "application/json" @@ -230815,7 +243745,7 @@ "consumes": [ "application/json" ], - "description": "One listing's full public detail -- title, description, price/bid state, grading info, and images -- normalized across Alt's own native listings and its aggregated external listings. id and listing_type come from a prior alt-search/alt-auctions result, or from an alt-sold-listings result's listing_id and listing_type for a completed sale on Alt itself. Not every response field applies to every listing_type -- see the field-level notes in this endpoint's markdown doc.", + "description": "One listing's full public detail -- title, description, price/bid state, grading info, and images -- across Alt's own native listings and its aggregated external listings. id and listing_type come from a prior alt-search/alt-auctions result, or from an alt-sold-listings result's listing_id and listing_type for a completed sale on Alt itself. Not every response field applies to every listing_type -- see the field-level notes in this endpoint's markdown doc.", "operationId": "alt-listing", "parameters": [ { @@ -230892,7 +243822,7 @@ "consumes": [ "application/json" ], - "description": "Returns Alt's own category-level price-trend index -- the same data alt.xyz's \"Market Trends\" page shows: a weekly/monthly/90-day change and a current index value per card category, built from Alt's own sold/valuation data. Credential-free public data from Alt's own GraphQL API.", + "description": "Returns Alt's own category-level price-trend index -- the same data alt.xyz's \"Market Trends\" page shows: a weekly/monthly/90-day change and a current index value per card category, built from Alt's own sold/valuation data.", "operationId": "alt-market-trends", "parameters": [ { @@ -230948,7 +243878,7 @@ "consumes": [ "application/json" ], - "description": "Searches Alt's universal aggregator index -- live auction and fixed-price listings from Alt itself and every other source auction house its search carries (eBay, Fanatics Collect, Pristine Auction, Goldin, CardHobby, Memory Lane) -- by free-text query, category, source auction house, grading company, and listing type, in a caller-selected sort order. Only currently-live listings are returned; see alt-sold-listings for completed sales. Credential-free public data from Alt's own search backend. See alt-categories for the accepted category/auction_house/grading_company/listing_type/sort values.", + "description": "Searches Alt's universal aggregator index -- live auction and fixed-price listings from Alt itself and every other source auction house its search carries (eBay, Fanatics Collect, Pristine Auction, Goldin, CardHobby, Memory Lane) -- by free-text query, category, source auction house, grading company, and listing type, in a caller-selected sort order. Only currently-live listings are returned; see alt-sold-listings for completed sales. See alt-categories for the accepted category/auction_house/grading_company/listing_type/sort values.", "operationId": "alt-search", "parameters": [ { @@ -231118,7 +244048,7 @@ "consumes": [ "application/json" ], - "description": "Searches Alt's global archive of completed card sales, aggregated across every source auction house its search carries -- the \"market data\" side of Alt's card-investment-marketplace positioning. This is a separate index from alt-search/alt-auctions, scoped to a rolling recent time window, not a filtered view of live listings. Pass auction_house=Alt to see only Alt's own completed sales. Each of Alt's own sales carries listing_id and listing_type -- pass both to alt-listing to get that item's certificate number -- and its url is the alt.xyz item page; a sale aggregated from another auction house carries that source site's own url instead. Credential-free public data from Alt's own search backend. See alt-categories for the accepted category/auction_house/grading_company values.", + "description": "Searches Alt's global archive of completed card sales, aggregated across every source auction house its search carries -- the \"market data\" side of Alt's card-investment-marketplace positioning. This is a separate index from alt-search/alt-auctions, scoped to a rolling recent time window, not a filtered view of live listings. Pass auction_house=Alt to see only Alt's own completed sales. Each of Alt's own sales carries listing_id and listing_type -- pass both to alt-listing to get that item's certificate number -- and its url is the alt.xyz item page; a sale aggregated from another auction house carries that source site's own url instead. See alt-categories for the accepted category/auction_house/grading_company values.", "operationId": "alt-sold-listings", "parameters": [ { @@ -231260,7 +244190,7 @@ "consumes": [ "application/json" ], - "description": "Returns Alt's biggest price-index movers -- either a cross-subject leaderboard (optionally scoped to one category) or, when subject is set, that one player/character's own trend broken out per category it appears in. category is not strictly validated against alt-categories' list -- this trend index's own category set is broader (e.g. it includes MULTI-SPORT_CARDS). Credential-free public data from Alt's own GraphQL API.", + "description": "Returns Alt's biggest price-index movers -- either a cross-subject leaderboard (optionally scoped to one category) or, when subject is set, that one player/character's own trend broken out per category it appears in. category is not strictly validated against alt-categories' list -- this trend index's own category set is broader (e.g. it includes MULTI-SPORT_CARDS).", "operationId": "alt-top-movers", "parameters": [ { @@ -231370,7 +244300,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Amazon.jobs posting by its numeric job id (the `id` field returned by search). Parsed from amazon.jobs's stable server-rendered job detail page — there is no separate JSON detail endpoint upstream.", + "description": "Returns one Amazon.jobs posting by its numeric job id (the `id` field returned by search).", "operationId": "amazon-jobs-job", "parameters": [ { @@ -231433,7 +244363,7 @@ "consumes": [ "application/json" ], - "description": "Searches Amazon's public careers site (amazon.jobs) via its credential-free search JSON. Each result includes the full description and qualifications inline. `sort` accepts `relevant` (default, upstream relevance ranking) or `recent` (newest posted first). Either `q` or `category` (or both) must be given -- `category` filters by Amazon's own job-category taxonomy and works with no text query at all. See `amazon-jobs-categories` for the full, live-verified list of accepted `category` values.", + "description": "Searches Amazon's public careers site (amazon.jobs). Each result includes the full description and qualifications inline. `sort` accepts `relevant` (default, relevance ranking) or `recent` (newest posted first). Either `q` or `category` (or both) must be given -- `category` filters by Amazon's own job-category taxonomy and works with no text query at all. See `amazon-jobs-categories` for the full, live-verified list of accepted `category` values.", "operationId": "amazon-jobs-search", "parameters": [ { @@ -231752,7 +244682,7 @@ "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.", + "description": "Returns product details for an Amazon ASIN on `amazon.com`, including pricing, availability, overview data, inline review samples, and descriptive content.", "operationId": "amazon-product", "parameters": [ { @@ -231841,7 +244771,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Amazon search result cards for `amazon.com`.", + "description": "Searches `amazon.com` by keyword, with optional sort order and page. Each result card has the ASIN, title, link, image, price and list price, rating and review count, the bought-in-last-month figure, and flags for sponsored placement and free delivery.", "operationId": "amazon-search", "parameters": [ { @@ -231924,7 +244854,7 @@ "consumes": [ "application/json" ], - "description": "Returns typeahead keyword suggestions from Amazon's public suggestion API for `amazon.com`.", + "description": "Returns Amazon's search-box autocomplete suggestions for a keyword prefix on `amazon.com`, as a plain list of suggested search phrases such as `apple watch bands`.", "operationId": "amazon-suggest", "parameters": [ { @@ -231990,7 +244920,7 @@ }, "/androidauthority/article": { "get": { - "description": "Returns public Android Authority article metadata and body paragraphs from a canonical article URL.", + "description": "Returns an Android Authority article by `url`, a canonical `androidauthority.com` address whose path is one slug ending in the numeric post id: title, description, publication and update times, section, authors, image and body `paragraphs`, with TL;DR and pros/cons bullets as separate entries. Section, tag and author pages are rejected, and an unknown post id returns not-found.", "operationId": "androidauthority-article", "parameters": [ { @@ -232044,7 +244974,7 @@ }, "/androidauthority/headlines": { "get": { - "description": "Returns fresh headlines from one public Android Authority section page.", + "description": "Returns the newest 10 to 20 stories from one Android Authority section hub. `section` is required and takes a slug such as `reviews`, `how-to`, `smartwatches` or `android-phones`. Each item has a title, URL, author and image; `summary` appears on the lead story of a hub, and `published_at` only on stories more than a day old.", "operationId": "androidauthority-headlines", "parameters": [ { @@ -232138,7 +245068,7 @@ }, "/androidauthority/news": { "get": { - "description": "Returns the latest Android Authority stories from the public site-wide feed.", + "description": "Returns about 80 of the latest Android Authority stories from across the site, newest first, with no input needed. Each has a title, canonical URL, standfirst `summary`, exact publication time, byline `author` and lead image. The headlines endpoint covers a single section.", "operationId": "androidauthority-news", "produces": [ "application/json" @@ -232176,7 +245106,7 @@ }, "/androidauthority/sections": { "get": { - "description": "Returns the public Android Authority section inventory accepted by the headlines endpoint.", + "description": "Lists the 44 Android Authority sections that `androidauthority-headlines` accepts: the content-type hubs (`news`, `reviews`, `best`, `how-to`, `features`, `deals`, `authority-insights`), the top-level topic hubs and their sub-hubs. Each has a `slug`, display `name` and page `url`. Tag archives are not sections.", "operationId": "androidauthority-sections", "produces": [ "application/json" @@ -232208,7 +245138,7 @@ }, "/androidpolice/article": { "get": { - "description": "Returns public Android Police article metadata and readable body paragraphs from a canonical article URL.", + "description": "Returns an Android Police article by `url`, a canonical address with a flat, single-slug path. The response has the title, authors, section, description, publication and update times, image and the readable body `paragraphs`.", "operationId": "androidpolice-article", "parameters": [ { @@ -232262,7 +245192,7 @@ }, "/androidpolice/author": { "get": { - "description": "Returns a public author's byline metadata, biography, social links, and recent articles from a canonical author URL. Only the first page is covered because author pagination is disallowed by robots.txt.", + "description": "Returns a public author's byline metadata, biography, social links, and recent articles from a canonical author URL. Only the first page is covered.", "operationId": "androidpolice-author", "parameters": [ { @@ -232316,7 +245246,7 @@ }, "/androidpolice/headlines": { "get": { - "description": "Returns recent headlines from one of the 18 live-verified primary navigation RSS feeds.", + "description": "Returns recent Android Police headlines for one of 18 sections. `section` is required and takes a slug such as `news`, `phones`, `smart-home`, `ai-machine-learning` or `deals`. Each item has a title and URL, and may also carry a summary, author, publication time and image.", "operationId": "androidpolice-headlines", "parameters": [ { @@ -232390,7 +245320,7 @@ }, "/androidpolice/news": { "get": { - "description": "Returns current Android Police top stories from its public RSS feed.", + "description": "Returns the current Android Police top stories across the site, with no input needed. Each item has a title and URL, and may also carry the author, publication time, summary and image.", "operationId": "androidpolice-news", "produces": [ "application/json" @@ -232428,7 +245358,7 @@ }, "/androidpolice/sections": { "get": { - "description": "Returns the complete live-verified Android Police primary navigation feed inventory.", + "description": "Lists the 18 feed-backed sections in Android Police's primary navigation, from `news`, `phones` and `tablets` to `deals`, `videos` and `awards`. Each entry has a `slug`, a display `name` and the feed `url`, and the slugs are accepted by `androidpolice-headlines`.", "operationId": "androidpolice-sections", "produces": [ "application/json" @@ -232463,7 +245393,7 @@ "consumes": [ "application/json" ], - "description": "Returns upcoming anime episode broadcasts (episode number, air time, countdown, and the normalized title), soonest first, paginated. Credential-free public AniList data.", + "description": "Returns upcoming anime episode broadcasts (episode number, air time, countdown, and the title), soonest first, paginated.", "operationId": "anime-airing-schedule", "parameters": [ { @@ -232524,7 +245454,7 @@ "consumes": [ "application/json" ], - "description": "Searches anime and manga characters by name. Returns character summaries (name, native name, image, favourites), paginated. Credential-free public AniList data.", + "description": "Searches anime and manga characters by name. Returns character summaries (name, native name, image, favourites), paginated.", "operationId": "anime-character-search", "parameters": [ { @@ -232593,7 +245523,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized character profile by AniList id: names, image, description, gender, age, blood type, birthday, favourites, and the titles the character appears in with their billed role. Credential-free public AniList data.", + "description": "Returns a character profile by AniList id: names, image, description, gender, age, blood type, birthday, favourites, and the titles the character appears in with their billed role.", "operationId": "anime-character", "parameters": [ { @@ -232656,7 +245586,7 @@ "consumes": [ "application/json" ], - "description": "Returns a filterable, sorted anime ranking. Credential-free public AniList data. Filter by season, year, format, genre, and status.", + "description": "Ranks anime by `sort` (default `TRENDING_DESC`, or `POPULARITY_DESC`, `SCORE_DESC`, `FAVOURITES_DESC`, `START_DATE_DESC`, `UPDATED_AT_DESC`). Filter by `season`, `season_year` (1940 to 2100), `format`, `genre` and `status`. Paged with `page` and `per_page` (default 20, max 50); results carry titles, scores, popularity, episodes, studios and tags.", "operationId": "anime-rankings", "parameters": [ { @@ -232783,7 +245713,7 @@ "consumes": [ "application/json" ], - "description": "Searches anime by free-text query. Credential-free public anime data from AniList. Returns normalized entries: titles, scores, popularity, format, status, season, genres, tags, and studios.", + "description": "Searches anime by free-text query. Returns entries: titles, scores, popularity, format, status, season, genres, tags, and studios.", "operationId": "anime-search", "parameters": [ { @@ -232866,7 +245796,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized anime by AniList id: titles (romaji/english/native), MyAnimeList id, scores, popularity, favourites, format, status, season, episodes, duration, genres, ranked tags, studios, dates, description, images, and next-airing countdown. Pass mal=true to additionally enrich the response with the MyAnimeList community score (mal block: score on a 0-10 scale, plus scored-by count), scraped credential-free from the public MAL page. Credential-free public AniList data.", + "description": "Returns an anime by AniList id: titles (romaji/english/native), MyAnimeList id, scores, popularity, favourites, format, status, season, episodes, duration, genres, ranked tags, studios, dates, description, images, and next-airing countdown. Pass mal=true to additionally enrich the response with the MyAnimeList community score (mal block: score on a 0-10 scale, plus scored-by count).", "operationId": "anime-title", "parameters": [ { @@ -232935,7 +245865,7 @@ "consumes": [ "application/json" ], - "description": "Returns an anime's cast (character name, native name, billed role, image, favourites), paginated. Credential-free public AniList data.", + "description": "Lists the cast of an anime by its AniList anime `id`, sorted by billed role. Each character has `name`, `native_name`, `role` (such as `MAIN` or `SUPPORTING`), `image`, `favourites` and `site_url`. Paged with `page` (default 1) and `per_page` (default 10, max 50), with `total` and `has_next_page`.", "operationId": "anime-title-characters", "parameters": [ { @@ -233010,7 +245940,7 @@ "consumes": [ "application/json" ], - "description": "Returns community-recommended titles for an anime, each with a recommendation rating and the full normalized media entry, paginated. Credential-free public AniList data.", + "description": "Returns community-recommended titles for an anime, each with a recommendation rating and the full media entry, paginated.", "operationId": "anime-title-recommendations", "parameters": [ { @@ -233085,7 +246015,7 @@ "consumes": [ "application/json" ], - "description": "Returns the people credited on an anime (name, production role, occupations, image), paginated. Credential-free public AniList data.", + "description": "Lists the people credited on an anime by its AniList anime `id`. Each person has `name`, `native_name`, `role` (their production role), `occupations`, `image` and `site_url`. Paged with `page` (default 1) and `per_page` (default 10, max 50), with `total` and `has_next_page`.", "operationId": "anime-title-staff", "parameters": [ { @@ -233471,7 +246401,7 @@ }, "/apnews/article": { "get": { - "description": "Returns public AP News article metadata and body paragraphs. The service uses the configured production browser fleet when ordinary HTTP transport encounters AP's edge challenge; it does not bypass authentication or access controls. Billing is 2 credits for an HTTP-profile success and 10 credits when browser rendering is required.", + "description": "Returns public AP News article metadata and body paragraphs. The service does not bypass authentication or access controls. Billing is 2 credits, or 10 credits when browser rendering is required.", "operationId": "apnews-article", "parameters": [ { @@ -233525,7 +246455,7 @@ }, "/apnews/author": { "get": { - "description": "Returns an AP News author's byline metadata, biography, and recent articles from a canonical author URL. The service uses the configured production browser fleet when ordinary HTTP transport encounters AP's edge challenge; it does not bypass authentication or access controls. Billing is 1 credit for an HTTP-profile success and 5 credits when browser rendering is required.", + "description": "Returns an AP News author's byline metadata, biography, and recent articles from a canonical author URL. The service does not bypass authentication or access controls. Billing is 1 credit, or 5 credits when browser rendering is required.", "operationId": "apnews-author", "parameters": [ { @@ -233579,7 +246509,7 @@ }, "/apnews/fact-check": { "get": { - "description": "Returns current headlines from AP News' public Fact Check page. The service uses the configured production browser fleet when ordinary HTTP transport encounters AP's edge challenge; it does not bypass authentication or access controls. Billing is 1 credit for an HTTP-profile success and 5 credits when browser rendering is required.", + "description": "Returns current headlines from AP News' public Fact Check page. The service does not bypass authentication or access controls. Billing is 1 credit, or 5 credits when browser rendering is required.", "operationId": "apnews-fact-check", "produces": [ "application/json" @@ -233617,7 +246547,7 @@ }, "/apnews/headlines": { "get": { - "description": "Returns AP News headlines from a public editorial hub. The service uses the configured production browser fleet when ordinary HTTP transport encounters AP's edge challenge; it does not bypass authentication or access controls. Billing is 1 credit for an HTTP-profile success and 5 credits when browser rendering is required.", + "description": "Returns AP News headlines from a public editorial hub. The service does not bypass authentication or access controls. Billing is 1 credit, or 5 credits when browser rendering is required.", "operationId": "apnews-headlines", "parameters": [ { @@ -233684,7 +246614,7 @@ }, "/apnews/news": { "get": { - "description": "Returns AP News top stories from the public AP News Top News hub. The service uses the configured production browser fleet when ordinary HTTP transport encounters AP's edge challenge; it does not bypass authentication or access controls. Billing is 1 credit for an HTTP-profile success and 5 credits when browser rendering is required.", + "description": "Returns AP News top stories from the public AP News Top News hub. The service does not bypass authentication or access controls. Billing is 1 credit, or 5 credits when browser rendering is required.", "operationId": "apnews-news", "produces": [ "application/json" @@ -233722,7 +246652,7 @@ }, "/apnews/sections": { "get": { - "description": "Returns the AP News editorial hub inventory used by apnews-headlines.", + "description": "Lists the 11 AP News hubs accepted by `apnews-headlines`: `ap-top-news`, `us-news`, `world-news`, `politics`, `business`, `technology`, `science`, `health`, `sports`, `entertainment` and `lifestyle`. Each has a `slug`, display `name` and hub `url`. The Fact Check page is served by `apnews-fact-check` instead.", "operationId": "apnews-sections", "produces": [ "application/json" @@ -233828,7 +246758,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Apple Books audiobooks from Apple's public iTunes Search API.", + "description": "Searches Apple Books audiobooks by `term`, which is required. `country` is the two-letter storefront code (default `us`), `lang` a language tag such as `en-us`, `limit` the result count (default 50, max 200) and `page` starts at 1. Results include `narrator`, `duration_seconds`, price, rating, genres and `preview_url`.", "operationId": "apple-books-audiobook-search", "parameters": [ { @@ -233913,7 +246843,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized audiobook metadata from Apple Books' public catalog page, including narrator, duration, audio preview, and a cross-link to the ebook edition (when one exists).", + "description": "Returns audiobook metadata from Apple Books, including narrator, duration, audio preview, and a cross-link to the ebook edition (when one exists).", "operationId": "apple-books-audiobook", "parameters": [ { @@ -234081,7 +247011,7 @@ "consumes": [ "application/json" ], - "description": "Returns the related audiobooks shown on the Apple Books catalog page.", + "description": "Returns the 'Customers Also Bought' audiobooks shown on the Apple Books page of one audiobook, identified by its numeric `id`. `country` (default `us`) and `lang` (such as `en-us`) choose the storefront and language. Each item has name, author, `narrator`, `duration_seconds`, price, rating and `series_name`.", "operationId": "apple-books-audiobook-similar", "parameters": [ { @@ -234158,7 +247088,7 @@ "consumes": [ "application/json" ], - "description": "Returns author metadata and their full ebook (and audiobook, where available) bibliography from Apple Books' public catalog page.", + "description": "Returns an Apple Books author by numeric author `id`: name, URL, genres, their ebooks and, where available, audiobooks. Books carry details such as ISBN, page count, publisher, price, rating and series; audiobooks add narrator, duration and preview. `country` is a two-letter storefront code (default `us`) and `lang` a language tag such as `en-us`.", "operationId": "apple-books-author", "parameters": [ { @@ -234235,7 +247165,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized book metadata from Apple Books' public catalog page, including ISBN, page count, publisher, audience, rating histogram, and series linkage.", + "description": "Returns book metadata from Apple Books, including ISBN, page count, publisher, audience, rating histogram, and series linkage.", "operationId": "apple-books-book", "parameters": [ { @@ -234403,7 +247333,7 @@ "consumes": [ "application/json" ], - "description": "Returns the related books shown on the Apple Books catalog page.", + "description": "Returns the 'Customers Also Bought' books shown on the Apple Books page of one book, identified by its numeric `id`. `country` (default `us`) and `lang` (such as `en-us`) choose the storefront and language. Each item has name, author, `publisher`, `isbn`, `page_count`, price, rating and `series_sequence`.", "operationId": "apple-books-book-similar", "parameters": [ { @@ -234480,7 +247410,7 @@ "consumes": [ "application/json" ], - "description": "Returns Apple Books chart rankings from Apple's public marketing-tools RSS JSON feed. Supported collections are `top-free` and `top-paid`.", + "description": "Returns Apple Books chart rankings for a `collection`, `top-free` (default) or `top-paid`. Narrow with `genre` (an Apple Books genre ID, `0` for all genres), `country` (default `us`) and `limit` (default 50, max 200). Each entry has `name`, author, `genres`, `release_date`, `artwork_url` and `url`.", "operationId": "apple-books-charts", "parameters": [ { @@ -234561,7 +247491,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Apple Books ebooks from Apple's public iTunes Search API.", + "description": "Searches Apple Books ebooks by `term`, which is required. `country` is the two-letter storefront code (default `us`), `lang` a language tag such as `en-us`, `limit` the result count (default 50, max 200) and `page` starts at 1. Results include `isbn`, `publisher`, `page_count`, price, rating, genres and series details.", "operationId": "apple-books-search", "parameters": [ { @@ -234646,7 +247576,7 @@ "consumes": [ "application/json" ], - "description": "Returns series metadata and the full ordered list of books in the series from Apple Books' public catalog page.", + "description": "Returns an Apple Books series by its numeric `id`: the series `name` and `url`, and its books in series order. Each book has `series_sequence`, author, `publisher`, `isbn`, `page_count`, price and rating. `country` (default `us`) and `lang` choose the storefront and language.", "operationId": "apple-books-series", "parameters": [ { @@ -234723,7 +247653,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Apple Careers posting by its job id (the `id` field returned by search, e.g. `200674676-0836` for a specific requisition or `PIPE-200314122` for an evergreen/pipeline retail role). Parsed from jobs.apple.com's server-rendered job detail page.", + "description": "Returns one Apple Careers posting by its job id (the `id` field returned by search, e.g. `200674676-0836` for a specific requisition or `PIPE-200314122` for an evergreen/pipeline retail role).", "operationId": "apple-jobs-job", "parameters": [ { @@ -234786,7 +247716,7 @@ "consumes": [ "application/json" ], - "description": "Discovery endpoint for apple-jobs-search's `location` parameter, whose accepted values are a closed set Apple itself defines (its own `-` location ids -- free-text location names are rejected by the search backend). Apple exposes no bulk \"list everything\" API for this; its only source is its own location-filter typeahead, a fuzzy search capped at 10 results per call covering four granularities (country, state/province, metro area, city) with no empty-input listing mode. With no `q`, this returns the full country-level value space (206 values, live-verified) as a static list -- the granularity apple-jobs-search's own examples use and nearly every caller needs, with no live upstream call required. With `q` supplied, this instead live-proxies Apple's own typeahead so callers can discover state/metro/city-level values for finer filtering; results at those deeper levels may include more than one candidate and are ranked by Apple's own relevance, not alphabetically.", + "description": "Discovery endpoint for apple-jobs-search's `location` parameter, whose accepted values are a closed set Apple itself defines (its own `-` location ids -- free-text location names are rejected). Apple exposes no bulk \"list everything\" option for this; the only lookup is a fuzzy search capped at 10 results per call covering four granularities (country, state/province, metro area, city) with no empty-input listing mode. With no `q`, this returns the full country-level value space (206 values, live-verified) as a static list -- the granularity apple-jobs-search's own examples use and nearly every caller needs. With `q` supplied, this instead looks up Apple's own location filter live so callers can discover state/metro/city-level values for finer filtering; results at those deeper levels may include more than one candidate and are ranked by Apple's own relevance, not alphabetically.", "operationId": "apple-jobs-locations", "parameters": [ { @@ -236495,7 +249425,7 @@ "consumes": [ "application/json" ], - "description": "Returns Apple Podcasts show chart rankings from public iTunes RSS JSON feeds. Supported collections are `toppodcasts` and `topaudiopodcasts`.", + "description": "Returns Apple Podcasts show chart rankings for a `collection`, either `toppodcasts` or `topaudiopodcasts`. Narrow with `category` (a numeric Apple podcast genre ID), `country` and `limit`. Each entry has `name`, `artist_name`, `genre`, `genre_id`, `description`, `release_date`, `artwork_url` and `url`.", "operationId": "apple-podcasts-charts", "parameters": [ { @@ -236656,7 +249586,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Apple Podcasts episodes from Apple's public iTunes Search API.", + "description": "Searches Apple Podcasts episodes by `term`, which is required. `country`, `lang`, `limit` and `page` (1-based) refine the search. Each episode has its `title`, `show_name`, `show_id`, `description`, `duration_millis`, `release_date`, `episode_url`, `preview_url`, `feed_url`, genres and artwork.", "operationId": "apple-podcasts-episodes-search", "parameters": [ { @@ -236791,7 +249721,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Apple Podcasts shows from Apple's public iTunes Search API.", + "description": "Searches Apple Podcasts shows by `term`, which is required. `country`, `lang`, `limit` and `page` (1-based) refine the search. Each show has `collection_name`, `artist_name`, `feed_url`, `primary_genre_name`, `genres`, `track_count`, `release_date`, content advisory rating and several artwork sizes.", "operationId": "apple-podcasts-search", "parameters": [ { @@ -236876,7 +249806,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized show metadata from Apple's public iTunes Lookup API.", + "description": "Returns the details of one Apple Podcasts show by its Apple show `id`: `collection_name`, `artist_name`, `feed_url`, `primary_genre_name`, `genres`, `track_count`, `release_date`, content advisory rating and artwork. `country` and `lang` choose the storefront and language.", "operationId": "apple-podcasts-show", "parameters": [ { @@ -236953,7 +249883,7 @@ "consumes": [ "application/json" ], - "description": "Returns a show and its public Apple Podcasts episodes from Apple's iTunes Lookup API.", + "description": "Returns one Apple Podcasts show by its Apple show `id`, together with a list of its episodes. `limit` sets how many episodes to return; `country` and `lang` choose the storefront and language. Episodes have `title`, `description`, `duration_millis`, `release_date`, `episode_url` and `episode_guid`.", "operationId": "apple-podcasts-show-episodes", "parameters": [ { @@ -237114,7 +250044,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized app metadata from the App Store lookup API. Provide either `id` (numeric track ID) or `app_id` (bundle ID). `id`/`app_id` can identify an iPhone, iPad, or Mac App Store listing.", + "description": "Returns app metadata from the App Store. Provide either `id` (numeric track ID) or `app_id` (bundle ID). `id`/`app_id` can identify an iPhone, iPad, or Mac App Store listing.", "operationId": "appstore-app", "parameters": [ { @@ -237430,7 +250360,7 @@ "consumes": [ "application/json" ], - "description": "Returns App Store apps associated with a specific developer artist ID.", + "description": "Lists the App Store apps published by one developer, by Apple developer (artist) id, for an optional storefront country and language. Each app carries its id, title, description, icon and screenshots, price and currency, genres, version and release notes, rating score and counts, size, supported devices and languages.", "operationId": "appstore-developer", "parameters": [ { @@ -237787,7 +250717,7 @@ "consumes": [ "application/json" ], - "description": "Returns the app privacy cards shown on the App Store page, including data categories and purposes.", + "description": "Returns the privacy disclosures shown on an App Store page for one app, identified by its numeric track `id` (digits only; anything else returns 400). The response has `privacy_policy_url`, `manage_privacy_choices_url` and `privacy_types`, each with its data categories and purposes. `country` and `lang` are optional.", "operationId": "appstore-privacy", "parameters": [ { @@ -237864,7 +250794,7 @@ "consumes": [ "application/json" ], - "description": "Returns total ratings count and the 1-5 star histogram shown on the App Store product page.", + "description": "Returns the total `ratings` count and the 1 to 5 star `histogram` for an App Store app. Identify it with either the numeric track `id` or the bundle ID `app_id`; a bundle ID is resolved to the track ID first, and a non-numeric `id` returns 400. `country` and `lang` are optional.", "operationId": "appstore-ratings", "parameters": [ { @@ -237947,7 +250877,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of customer reviews for an app. Provide either `id` (numeric track ID) or `app_id` (bundle ID).", + "description": "Returns one page of customer reviews for an App Store app, identified by `id` (numeric track ID) or `app_id` (bundle ID). `page` runs 1 to 10 and `sort` is `mostRecent` (default) or `mostHelpful`. Reviews carry `score`, `title`, `text`, `version`, `user_name` and `updated`. Returns 503 when reviews cannot be retrieved, and 404 when the app is not in that `country` storefront.", "operationId": "appstore-reviews", "parameters": [ { @@ -238235,7 +251165,7 @@ "consumes": [ "application/json" ], - "description": "Returns suggested search terms for the given partial keyword.", + "description": "Returns App Store search suggestions for a partial search term given in the path, as a list of suggested `term` values. `country` is an optional two-letter storefront code.", "operationId": "appstore-suggest", "parameters": [ { @@ -238299,7 +251229,7 @@ "consumes": [ "application/json" ], - "description": "Returns the version history entries shown in the App Store \"What's New\" section.", + "description": "Returns an App Store app's version history, as shown under \"What's New\", by numeric track id, for an optional storefront country and language. Each entry has the version number, release date and timestamp, and release notes. A non-numeric id returns `400`.", "operationId": "appstore-version-history", "parameters": [ { @@ -238711,7 +251641,7 @@ }, "/arstechnica/article": { "get": { - "description": "Returns public Ars Technica article metadata and body paragraphs from a canonical article URL. The service uses the configured production browser fleet when ordinary HTTP transport encounters Ars Technica's bot-verification challenge; it does not bypass authentication or access controls.", + "description": "Returns public Ars Technica article metadata and body paragraphs from a canonical article URL. The service does not bypass authentication or access controls.", "operationId": "arstechnica-article", "parameters": [ { @@ -238765,7 +251695,7 @@ }, "/arstechnica/author": { "get": { - "description": "Returns an Ars Technica contributor's byline metadata (name, job title, headshot, contact email), biography, and recent articles from a canonical author URL. The service uses the configured production browser fleet when ordinary HTTP transport encounters Ars Technica's bot-verification challenge; it does not bypass authentication or access controls.", + "description": "Returns an Ars Technica contributor's byline metadata (name, job title, headshot, contact email), biography, and recent articles from a canonical author URL. The service does not bypass authentication or access controls.", "operationId": "arstechnica-author", "parameters": [ { @@ -238819,7 +251749,7 @@ }, "/arstechnica/headlines": { "get": { - "description": "Returns fresh headlines from one Ars Technica section's public RSS feed.", + "description": "Returns recent Ars Technica headlines for one section. `section` is required and takes `ai`, `apple`, `cars`, `culture`, `features`, `gadgets`, `gaming`, `health`, `information-technology`, `reviews`, `science`, `security`, `space`, `staff` or `tech-policy`. Each item has a title and URL, and may also carry a summary, author, publication time and image.", "operationId": "arstechnica-headlines", "parameters": [ { @@ -238884,7 +251814,7 @@ }, "/arstechnica/news": { "get": { - "description": "Returns fresh Ars Technica stories from its public RSS feed.", + "description": "Returns the latest Ars Technica stories, with no input needed. Each item has a title and canonical URL, and may also carry a summary, author, publication time and lead image.", "operationId": "arstechnica-news", "produces": [ "application/json" @@ -238951,7 +251881,7 @@ "consumes": [ "application/json" ], - "description": "Returns Audible's full genre/category tree (root genres with their subgenres), including the category ids accepted by GET /audible/search's category_id filter. Credential-free public catalog data from api.audible.com.", + "description": "Returns Audible's full genre/category tree (root genres with their subgenres), including the category ids accepted by GET /audible/search's category_id filter.", "operationId": "audible-categories", "produces": [ "application/json" @@ -238992,7 +251922,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Audible category node and its immediate children by id — cheaper than fetching the full tree from GET /audible/categories when only one node is needed. Credential-free public catalog data from api.audible.com.", + "description": "Returns one Audible category node and its immediate children by id — cheaper than fetching the full tree from GET /audible/categories when only one node is needed.", "operationId": "audible-category", "parameters": [ { @@ -239055,7 +251985,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of an Audible chart — a ranked list with real chart position, price, and rating that has no equivalent on api.audible.com's public JSON API. This is an HTML scrape of audible.com/charts, a different, less stable source class than the rest of this family, though its own filters (category, access level, language, duration, Audible-Originals-only) were individually verified to actually change results. category_id, access_level, and content_type=podcasts are mutually exclusive.", + "description": "Returns one page of an Audible chart — a ranked list with real chart position, price, and rating. This endpoint is less stable than the rest of this family. Its own filters (category, access level, language, duration, Audible-Originals-only) were individually verified to actually change results. category_id, access_level, and content_type=podcasts are mutually exclusive.", "operationId": "audible-charts", "parameters": [ { @@ -239189,7 +252119,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of Audible's public ranked author chart. This is a people-shaped HTML surface and exposes only rank, author identity, image metadata when available, and a canonical author URI; author detail remains outside the credential-free public surface.", + "description": "Returns one page of Audible's ranked author chart. It exposes only rank, author identity, image metadata when available, and a canonical author URI; author detail is not included.", "operationId": "audible-author-charts", "parameters": [ { @@ -239238,7 +252168,7 @@ "consumes": [ "application/json" ], - "description": "Returns one of Audible's hand-curated \"Popular Lists\" pages, normalized into its themed shelves (heading + ordered ASINs). This is an HTML scrape of a marketing/editorial page (audible.com), not api.audible.com's JSON API — pair an ASIN from any shelf with GET /audible/products (batch) or GET /audible/product/{asin} for full title/author/price/rating detail. \"Best of the Year\" is not covered — its layout has no consistent structure to parse.", + "description": "Returns one of Audible's hand-curated \"Popular Lists\" pages, as its themed shelves (heading + ordered ASINs). Pair an ASIN from any shelf with GET /audible/products (batch) or GET /audible/product/{asin} for full title/author/price/rating detail. \"Best of the Year\" is not covered.", "operationId": "audible-editorial-list", "parameters": [ { @@ -239300,7 +252230,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Audible audiobook: description, authors, narrators, series, category ladders, publisher, release date, runtime, language, sample audio URL, rating (overall/performance/story), and public list price. Credential-free public catalog data from api.audible.com.", + "description": "Returns an Audible audiobook: description, authors, narrators, series, category ladders, publisher, release date, runtime, language, sample audio URL, rating (overall/performance/story), and public list price.", "operationId": "audible-product", "parameters": [ { @@ -239363,7 +252293,7 @@ "consumes": [ "application/json" ], - "description": "Returns Audible titles related to a given ASIN by a required relation type: same series, same narrator, same author, next in series, or raw upstream similarity. Credential-free public catalog data from api.audible.com.", + "description": "Returns Audible titles related to a given ASIN by a required relation type: same series, same narrator, same author, next in series, or raw similarity.", "operationId": "audible-product-related", "parameters": [ { @@ -239441,7 +252371,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of an Audible audiobook's customer reviews (author, title, body, overall/performance/story ratings, helpful votes, submission date). Credential-free public catalog data from api.audible.com.", + "description": "Returns a page of an Audible audiobook's customer reviews (author, title, body, overall/performance/story ratings, helpful votes, submission date).", "operationId": "audible-product-reviews", "parameters": [ { @@ -239510,7 +252440,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Audible audiobooks for up to 50 ASINs in a single request — the same fields as GET /audible/product/{asin}. Unrecognized ASINs are silently omitted rather than failing the whole batch. Credential-free public catalog data from api.audible.com.", + "description": "Returns Audible audiobooks for up to 50 ASINs in a single request — the same fields as GET /audible/product/{asin}. Unrecognized ASINs are silently omitted rather than failing the whole batch.", "operationId": "audible-products", "parameters": [ { @@ -239567,7 +252497,7 @@ "consumes": [ "application/json" ], - "description": "Searches Audible's audiobook catalog by keyword, title, author, narrator, or category id. At least one filter is required. Credential-free public catalog data from api.audible.com.", + "description": "Searches Audible's audiobook catalog by keyword, title, author, narrator, or category id. At least one filter is required.", "operationId": "audible-search", "parameters": [ { @@ -239658,7 +252588,7 @@ "consumes": [ "application/json" ], - "description": "Returns an Audible series and every book in it, in series order. A series has its own ASIN distinct from any book in it — find one via a book's series[].asin field from GET /audible/product/{asin}. Credential-free public catalog data from api.audible.com.", + "description": "Returns an Audible series and every book in it, in series order. A series has its own ASIN distinct from any book in it — find one via a book's series[].asin field from GET /audible/product/{asin}.", "operationId": "audible-series", "parameters": [ { @@ -239721,7 +252651,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Autotrader dealer profile (name, phone, address, rating, website) plus a first page of the dealer's own current inventory as normalized vehicle summaries and the dealer's total listing count. Credential-free public data sourced from Autotrader's own server-rendered dealer profile page.", + "description": "Returns an Autotrader dealer profile (name, phone, address, rating, website) plus a first page of the dealer's own current inventory as vehicle summaries and the dealer's total listing count.", "operationId": "autotrader-dealer", "parameters": [ { @@ -239784,7 +252714,7 @@ "consumes": [ "application/json" ], - "description": "Searches Autotrader for new and used car listings, returning normalized vehicle summaries (make, model, trim, year, mileage, pricing, images) plus the total matching count. Credential-free public data sourced from Autotrader's own server-rendered search page.", + "description": "Searches Autotrader for new and used car listings, returning vehicle summaries (make, model, trim, year, mileage, pricing, images) plus the total matching count.", "operationId": "autotrader-search", "parameters": [ { @@ -239958,7 +252888,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Autotrader vehicle listing: full vehicle spec (make, model, trim, mileage, colors, transmission, fuel type, engine, images, pricing), the full listing description, and seller detail (dealership or private seller). Credential-free public data sourced from Autotrader's own server-rendered vehicle detail page.", + "description": "Returns an Autotrader vehicle listing: full vehicle spec (make, model, trim, mileage, colors, transmission, fuel type, engine, images, pricing), the full listing description, and seller detail (dealership or private seller).", "operationId": "autotrader-vehicle", "parameters": [ { @@ -240185,7 +253115,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Baidu result cards for a query, read from Baidu's mobile search page: title, destination URL, snippet, publisher, and date, with page-based pagination. Each result's `type` is `web` (standard pages), `video` (video cards), or `baike` (Baidu Baike encyclopedia entries); answer widgets such as weather, entity panels, and recommendation lists are not returned. Baidu challenges a portion of requests with a security verification page; the service retries across browser profiles and returns 503 if every attempt is challenged, so callers should retry on 503.", + "description": "Returns Baidu result cards for a query: title, destination URL, snippet, publisher, and date, with page-based pagination. Each result's `type` is `web` (standard pages), `video` (video cards), or `baike` (Baidu Baike encyclopedia entries); answer widgets such as weather, entity panels, and recommendation lists are not returned. Baidu challenges a portion of requests with a security verification page; the service retries and returns 503 if every attempt is challenged, so callers should retry on 503.", "operationId": "baidu-search", "parameters": [ { @@ -240329,7 +253259,7 @@ "consumes": [ "application/json" ], - "description": "Returns Balenciaga's live storefront navigation/category taxonomy. Each categories[].path is the exact value accepted by balenciaga-category's path parameter.", + "description": "Lists Balenciaga's storefront categories with `count`, and for each its `id`, `name`, `department`, `path` and `url`. Each `path` is the value `balenciaga-category` accepts. The response reports `country` (`ZW`) and `language` (`en`).", "operationId": "balenciaga-categories", "produces": [ "application/json" @@ -240681,7 +253611,7 @@ "consumes": [ "application/json" ], - "description": "Returns every country code accepted by balenciaga-stores, discovered from Balenciaga's own public store-locator form.", + "description": "Lists the countries Balenciaga's store locator offers, each with a country `code` and `name`, plus a `count`. Each code is accepted by `balenciaga-stores`. The response also reports the storefront `country` and `language`.", "operationId": "balenciaga-store-countries", "produces": [ "application/json" @@ -240982,7 +253912,7 @@ }, "/barrons/topics": { "get": { - "description": "Lists every Barron's editorial topic accepted by /barrons/headlines' section parameter, with each topic's slug, display name, and landing-page URL.", + "description": "Lists Barron's editorial topics, each with its `slug`, display `name` and landing-page `url`. The list is long and changes over time. Every `slug` is a valid `section` value for `/barrons/headlines`. Takes no parameters.", "operationId": "barrons-topics", "produces": [ "application/json" @@ -241020,11 +253950,11 @@ }, "/bbb/article": { "get": { - "description": "Returns published BBB article metadata, author names, body text, and useful links from a canonical public article URL. Returns 404 when BBB no longer has the article, including a story BBB has moved to one of its evergreen pages under /all/; the error then names the new address, and the answer is permanent.", + "description": "Returns published BBB article metadata, author names, body text, and useful links from a canonical public article URL on www.bbb.org or bbb.org. If BBB merges a story into another BBB article, the response contains the target article's id and source_url plus the original requested_url. Returns a permanent 404 when BBB moves the URL to an evergreen /all/ page or outside bbb.org, when BBB redirects the URL back to itself so it cannot be loaded, or when the URL resolves to a published non-article type such as an event; safe HTTPS destinations are named in the error and are never fetched.", "operationId": "bbb-article", "parameters": [ { - "description": "Canonical BBB article URL", + "description": "Canonical BBB article URL on www.bbb.org or bbb.org", "in": "query", "name": "url", "required": true, @@ -241089,7 +254019,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized bbb.org business profile: BBB rating letter grade and reasons, accreditation status and since-date, years in business, BBB file/incorporation dates, entity type, contact info, business categories, social media, and a short latest-reviews preview. Credential-free public Better Business Bureau data.", + "description": "Returns a bbb.org business profile: BBB rating letter grade and reasons, accreditation status and since-date, years in business, BBB file/incorporation dates, entity type, contact info, business categories, social media, and a short latest-reviews preview.", "operationId": "bbb-business", "parameters": [ { @@ -241152,7 +254082,7 @@ "consumes": [ "application/json" ], - "description": "Returns a business's BBB complaint history: total complaint count, complaints closed or filed in the last 12 months, and one page of per-complaint detail (date, type, status, narrative text, and any business response / customer answer thread). Complaints are listed newest first, 10 per page; use page with the returned page, total_pages and has_more to walk the full list. A business with no filed complaints returns total_complaints 0 and an empty complaints list -- this is a normal result, not an error. Credential-free public Better Business Bureau data.", + "description": "Returns a business's BBB complaint history: total complaint count, complaints closed or filed in the last 12 months, and one page of per-complaint detail (date, type, status, narrative text, and any business response / customer answer thread). Complaints are listed newest first, 10 per page; use page with the returned page, total_pages and has_more to walk the full list. A business with no filed complaints returns total_complaints 0 and an empty complaints list -- this is a normal result, not an error.", "operationId": "bbb-business-complaints", "parameters": [ { @@ -241224,7 +254154,7 @@ "consumes": [ "application/json" ], - "description": "Returns a business's full per-factor \"Reasons for Rating\" list and full service-area list, from the separate BBB business profile /more-info sub-page. The bbb-business endpoint's own rating_reasons field is read from the main profile page and typically holds only one generic boilerplate bullet regardless of actual rating; this endpoint fetches the richer, business-specific list instead. Service area is business-conditional -- some businesses render no service-area section at all, in which case service_areas is empty. Credential-free public Better Business Bureau data.", + "description": "Returns a business's full per-factor \"Reasons for Rating\" list and full service-area list. The bbb-business endpoint's own rating_reasons field typically holds only one generic boilerplate bullet regardless of actual rating; this endpoint returns the richer, business-specific list instead. Service area is business-conditional -- some businesses render no service-area section at all, in which case service_areas is empty.", "operationId": "bbb-business-more-info", "parameters": [ { @@ -241287,7 +254217,7 @@ "consumes": [ "application/json" ], - "description": "Returns a business's full customer-review list (author, star rating, date, text, and any business response thread), paginated 10 per page, plus the average star rating and total review count. Credential-free public Better Business Bureau data. Unlike the other bbb-business-* endpoints, this one is fetched with browser impersonation rather than plain direct HTTP -- see the family's maintenance note for why.", + "description": "Returns a business's full customer-review list (author, star rating, date, text, and any business response thread), paginated 10 per page, plus the average star rating and total review count.", "operationId": "bbb-business-reviews", "parameters": [ { @@ -241350,7 +254280,7 @@ "consumes": [ "application/json" ], - "description": "Browses bbb.org businesses by category and location directly, without a free-text search query. Returns the same normalized business-result shape as bbb-search. Optional sort and filter parameters use the same values as bbb-search; query-scoped category and state/province values come from bbb-search-filters. Credential-free public Better Business Bureau data.", + "description": "Browses bbb.org businesses by category and location directly, without a free-text search query. Returns the same business-result shape as bbb-search. A verified empty first page returns results: [] and total_results: 0; an unavailable or unrecognized page returns an error. A page beyond the exact last page returns 404, and a page beyond BBB's 15-page accessible limit returns 404 naming that limit. Optional sort and filter parameters use the same values as bbb-search; query-scoped category and state/province values come from bbb-search-filters.", "operationId": "bbb-category", "parameters": [ { @@ -241465,6 +254395,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "500": { "description": "Internal Server Error", "schema": { @@ -241494,7 +254430,7 @@ "consumes": [ "application/json" ], - "description": "Returns public chapter profile details including office locations and hours, service territory, supported languages, and upcoming public events. Use a canonical chapter URL from bbb-local-bbbs or a business record's local_bbb_url. Credential-free public Better Business Bureau data.", + "description": "Returns public chapter profile details including office locations and hours, service territory, supported languages, and upcoming public events. news_url is the chapter's constructed newsroom route. When BBB publishes a program tile linking to a recognized newsroom path, published_news_url and its descriptive published_news_title are also returned. Use a canonical chapter URL from bbb-local-bbbs or a business record's local_bbb_url.", "operationId": "bbb-local-bbb", "parameters": [ { @@ -241557,7 +254493,7 @@ "consumes": [ "application/json" ], - "description": "Lists every chapter and public office shown on BBB's directory page for a region discovered by bbb-regions. Office addresses can be outside the selected service region. Credential-free public Better Business Bureau data.", + "description": "Lists every chapter and public office shown on BBB's directory page for a region discovered by bbb-regions. Office addresses can be outside the selected service region.", "operationId": "bbb-local-bbbs", "parameters": [ { @@ -241623,7 +254559,7 @@ }, "/bbb/news": { "get": { - "description": "Returns one page of public BBB newsroom stories from a canonical BBB newsroom URL. Three scopes are accepted, each with an optional topic: the US or Canada newsroom (/us/news), a state, province or city newsroom (/us/ca/news, /us/ca/san-francisco/news), and one local BBB chapter's own newsroom (/local-bbb//news, the news_url returned by bbb-local-bbbs and bbb-local-bbb). The list is whatever BBB shows on that page: a city or chapter whose local BBB publishes its own stories returns those, and other cities, other chapters and the state pages checked so far return the same list as the country newsroom, so compare total and the first items with the country newsroom before treating a list as local. A chapter URL also returns local_bbb_id and local_bbb_name. Event dates and links are preserved when present.", + "description": "Returns one page of BBB newsroom cards from a canonical BBB newsroom URL. Three scopes are accepted, each with an optional topic: the US or Canada newsroom (/us/news), a state, province or city newsroom (/us/ca/news, /us/ca/san-francisco/news), and one local BBB chapter's own newsroom (/local-bbb//news, the news_url returned by bbb-local-bbbs and bbb-local-bbb). The list is whatever BBB shows on that page: a city or chapter whose local BBB publishes its own stories returns those, and other cities, other chapters and the state pages checked so far return the same list as the country newsroom, so compare total and the first items with the country newsroom before treating a list as local. A chapter URL also returns local_bbb_id and local_bbb_name. Items preserve BBB's type and include Article stories, events, and Near Me related-service cards when present. Near Me URLs are restricted to BBB's /near-me/ paths. Every page carries total_pages and has_more: request page + 1 while has_more is true and stop when it is false; a page past the end returns 404. Event dates and links are preserved when present.", "operationId": "bbb-news", "parameters": [ { @@ -241753,12 +254689,78 @@ ] } }, + "/bbb/page": { + "get": { + "description": "Returns one page from the evergreen library BBB keeps under https://www.bbb.org/all/ (tips, topic hubs such as tax or holiday advice, scam studies): its title, introduction, body text, links, main image and last-modified time. BBB folds older newsroom stories into these pages and redirects the old article URL, so the url can be either the evergreen page itself or an article URL that bbb-article reports as moved; requested_url, final_url and every redirect between them are returned. published_at is always present and is null, because BBB publishes no date for these pages: modified_at is when BBB last edited the page, not when a story it replaced was published, and the page may cover a wider topic than that story did. The original article ID is not on the page; article_id repeats the one in the requested article URL. Returns 404 when the page does not exist, when an article URL has not been moved (read it with bbb-article), and when BBB redirects the URL somewhere outside /all/; the error names the destination and the answer is permanent. Content BBB loads in the browser for the visitor's local BBB is not included.", + "operationId": "bbb-page", + "parameters": [ + { + "description": "Canonical https://www.bbb.org URL of an evergreen page (/all/, no query string) or of an article (/article//-) that BBB has moved to one", + "in": "query", + "name": "url", + "required": true, + "type": "string", + "x-example": "https://www.bbb.org/all/consumer/tip/what-to-know-before-purchasing-a-gift-card" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "allOf": [ + { + "$ref": "#/definitions/app.Response" + }, + { + "properties": { + "data": { + "$ref": "#/definitions/bbbnews.PageResponse" + } + }, + "type": "object" + } + ] + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Get a BBB evergreen page", + "tags": [ + "BBB" + ] + } + }, "/bbb/regions": { "get": { "consumes": [ "application/json" ], - "description": "Returns the complete current country and region list from BBB's public local directory. Use the returned region code with bbb-local-bbbs. Credential-free public Better Business Bureau data.", + "description": "Returns the complete current country and region list from BBB's public local directory. Use the returned region code with bbb-local-bbbs.", "operationId": "bbb-regions", "produces": [ "application/json" @@ -241799,7 +254801,7 @@ "consumes": [ "application/json" ], - "description": "Searches bbb.org Scam Tracker's consumer-reported-scam database by free-text query, scam category, targeted-victim state/province, reported-scammer state/province, report-date range, and/or dollar-loss range, paginated 10 results/page. Omit every filter to browse the most-recent-first feed. Credential-free public Better Business Bureau data. This is a separate BBB dataset from the bbb-search/bbb-business/bbb-business-complaints business-rating family -- consumer-reported scam incidents, not business ratings.", + "description": "Searches bbb.org Scam Tracker's consumer-reported-scam database by free-text query, scam category, targeted-victim state/province, reported-scammer state/province, report-date range, and/or dollar-loss range, paginated 10 results/page. A verified search with no matches returns results: [] and total_results: 0; an unavailable or unrecognized page returns 503 rather than an empty list. When result cards are present but BBB's total count is unavailable, total_results is omitted. Every page returns has_more and, when BBB's result count is exact, total_pages: request the next page only while has_more is true, because a page past the end returns 404. Omit every filter to browse the most-recent-first feed. This is a separate BBB dataset from the bbb-search/bbb-business/bbb-business-complaints business-rating family -- consumer-reported scam incidents, not business ratings.", "operationId": "bbb-scamtracker-search", "parameters": [ { @@ -241919,6 +254921,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "500": { "description": "Internal Server Error", "schema": { @@ -241948,7 +254956,7 @@ "consumes": [ "application/json" ], - "description": "Returns aggregate scam-report stats per US state and Canadian province for a given time window: report counts, dollar losses, per-capita rates, year-over-year change, and top scam-type breakdown. This calls the same JSON API the BBB Scam Tracker heatmap dashboard's own frontend uses -- not an HTML scrape. Credential-free public Better Business Bureau data.", + "description": "Returns aggregate scam-report stats per US state and Canadian province for a given time window: report counts, dollar losses, per-capita rates, year-over-year change, and top scam-type breakdown.", "operationId": "bbb-scamtracker-state-stats", "parameters": [ { @@ -242009,7 +255017,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized BBB Scam Tracker consumer scam report: description, dollars lost, targeted person's location, scammer location/email/phone/URL (when known), scam type, business name used, and date reported. Credential-free public Better Business Bureau data.", + "description": "Returns one BBB Scam Tracker consumer scam report: description, dollars lost, targeted person's location, scammer location/email/phone/URL (when known), scam type, business name used, and date reported. If BBB no longer shows the report and serves its search page at that address, the endpoint returns a permanent 404; do not retry it.", "operationId": "bbb-scamtracker-detail", "parameters": [ { @@ -242072,7 +255080,7 @@ "consumes": [ "application/json" ], - "description": "Searches bbb.org for businesses by name or category near a location. Returns each business's BBB rating letter grade, accreditation status, categories, service areas, contact info, and profile URL. Category IDs and state/province codes are query-scoped; call bbb-search-filters to discover values for this query and location. Credential-free public Better Business Bureau data.", + "description": "Searches bbb.org for businesses by name or category near a location. Returns each business's BBB rating letter grade, accreditation status, categories, service areas, contact info, and profile URL. A verified empty first page returns results: [] and total_results: 0; an unavailable or unrecognized page returns an error. A page beyond the exact last page returns 404, and a page beyond BBB's 15-page accessible limit returns 404 naming that limit. Category IDs and state/province codes are query-scoped; call bbb-search-filters to discover values for this query and location.", "operationId": "bbb-search", "parameters": [ { @@ -242206,6 +255214,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "500": { "description": "Internal Server Error", "schema": { @@ -242235,7 +255249,7 @@ "consumes": [ "application/json" ], - "description": "Returns the live sort, category, and state/province values BBB currently advertises for one context. Supply query and location for text search, or category_url for the exact category-browse context; do not combine these modes. Category IDs and state/province codes are query-scoped; call this endpoint again when the search context changes. Static accepted values are country USA or CAN; sort Relevance, Distance, Rating, AToZ, or ZToA; distance 5, 10, 25, 50, or 100 miles; rating A, B, C, D, or F. Credential-free public Better Business Bureau data.", + "description": "Returns the live sort, category, and state/province values BBB currently advertises for one context. Supply query and location for text search, or category_url for the exact category-browse context; do not combine these modes. Category IDs and state/province codes are query-scoped; call this endpoint again when the search context changes. Static accepted values are country USA or CAN; sort Relevance, Distance, Rating, AToZ, or ZToA; distance 5, 10, 25, 50, or 100 miles; rating A, B, C, D, or F.", "operationId": "bbb-search-filters", "parameters": [ { @@ -242460,7 +255474,7 @@ }, "/bbc/author": { "get": { - "description": "Returns a BBC News correspondent's public profile: name, short bio, and their recent articles.", + "description": "Returns a BBC News correspondent's profile from `url`, a canonical `bbc.co.uk/news/correspondents/` address: name, short `bio` and recent articles with title, URL, section and publication date when the page shows one. `published_at` is `YYYY-MM-DD` when the page gives a full date; items labelled only with a relative time, such as `2 days ago`, come back as written.", "operationId": "bbc-author", "parameters": [ { @@ -242520,7 +255534,7 @@ }, "/bbc/headlines": { "get": { - "description": "Returns fresh headlines from a public BBC News RSS section. section defaults to world.", + "description": "Returns fresh BBC News headlines for one section, `world` by default. `section` can be `all`, `world`, `uk`, `politics`, `business`, `health`, `science_and_environment`, `technology` or `entertainment_and_arts`; `all` can mix stories from several sections. Each item has a title, URL, summary and publication time when available.", "operationId": "bbc-headlines", "parameters": [ { @@ -242717,7 +255731,7 @@ }, "/benzinga/article": { "get": { - "description": "Returns metadata and anonymous body paragraphs from a canonical dated Benzinga editorial article URL.", + "description": "Returns a Benzinga article by `url`, a canonical dated editorial article URL: title, description, publication and update times, section, authors, image and the body `paragraphs`. Paid products, profiles, press releases, SEC pages and partner content are not accepted.", "operationId": "benzinga-article", "parameters": [ { @@ -242771,7 +255785,7 @@ }, "/benzinga/headlines": { "get": { - "description": "Returns public story cards from one verified Benzinga news section; section must come from benzinga_sections.", + "description": "Returns current Benzinga story cards for one section. `section` is required and is `latest`, `technology-stocks`, `politics` or `health-care`. Each item has a title and URL, and may also carry a summary, author, publication time and image.", "operationId": "benzinga-headlines", "parameters": [ { @@ -242825,7 +255839,7 @@ }, "/benzinga/news": { "get": { - "description": "Returns current Benzinga stories and teaser summaries from its public RSS feed.", + "description": "Returns the current Benzinga stories, with no input needed. Each item has a title, URL and a `summary` that is the publisher's short teaser rather than article text, and may also carry the author, publication time and image.", "operationId": "benzinga-news", "produces": [ "application/json" @@ -242905,7 +255919,7 @@ }, "/benzinga/sections": { "get": { - "description": "Returns the four menu-verified Benzinga editorial sections accepted by benzinga_headlines.", + "description": "Lists the four Benzinga editorial sections accepted by `benzinga-headlines`: `latest` (named Breaking News), `technology-stocks`, `politics` and `health-care`. Each has a `slug`, a display `name` and the section's page `url`.", "operationId": "benzinga-sections", "produces": [ "application/json" @@ -242975,7 +255989,7 @@ "consumes": [ "application/json" ], - "description": "Returns Best Buy's top-level shopping departments (name, category id, url), sourced from the homepage's own category carousel. Each id is directly usable as bestbuy_category's category_id input.", + "description": "Returns Best Buy's current top-level Shop departments (name, category id, url). Each id is directly usable as bestbuy_category's category_id input; this is not the full category tree.", "operationId": "bestbuy-categories", "produces": [ "application/json" @@ -243016,7 +256030,7 @@ "consumes": [ "application/json" ], - "description": "Returns Best Buy's fine-grained, often deeply-nested product-type categories (e.g. \"Windows Laptops\", \"55-Inch TVs (55 - 64 in)\", \"PS5 Consoles\") sourced from the homepage's own \"Best Selling\" section -- much more specific than bestbuy_categories' ~25 top-level departments. Each id is directly usable as bestbuy_category's category_id input.", + "description": "Returns Best Buy's fine-grained, often deeply-nested product-type categories (e.g. \"Windows Laptops\", \"55-Inch TVs (55 - 64 in)\", \"PS5 Consoles\") sourced from the homepage's own \"Best Selling\" section -- much more specific than bestbuy_categories' 21 current top-level departments. Each id is directly usable as bestbuy_category's category_id input.", "operationId": "bestbuy-categories-trending", "produces": [ "application/json" @@ -243057,7 +256071,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page (up to 24) of one Best Buy category's normalized product listing (sku, title, url, image, price, rating, review count). category_id is a Best Buy category id, e.g. pcmcat138500050001, found in a category page URL's trailing .c?id= segment. page is the optional 1-indexed page number (defaults to 1); requesting a page past the last one returns an empty products list, not an error.", + "description": "Returns one page (up to 24) of one Best Buy category's product listing (sku, title, url, image, price, rating, review count). category_id is a Best Buy category id, e.g. pcmcat138500050001, found in a category page URL's trailing .c?id= segment. page is the optional 1-indexed page number (defaults to 1); requesting a page past the last one returns an empty products list, not an error.", "operationId": "bestbuy-category", "parameters": [ { @@ -243184,7 +256198,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Best Buy product's normalized detail (name, brand, model, color, price, availability, rating, images, breadcrumbs), sourced from the product page's own schema.org Product structured-data block. sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs.", + "description": "Returns one Best Buy product's detail (name, brand, model, color, price, availability, rating, images, breadcrumbs). sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs.", "operationId": "bestbuy-product", "parameters": [ { @@ -243355,7 +256369,7 @@ "consumes": [ "application/json" ], - "description": "Returns page 1 (up to 20) of one Best Buy product's normalized customer reviews (rating, title, text, author, posted date, tags such as Verified Purchaser, recommended flag, helpful/unhelpful counts), sourced from the product's dedicated reviews page. sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs.", + "description": "Returns page 1 (up to 20) of one Best Buy product's customer reviews (rating, title, text, author, posted date, tags such as Verified Purchaser, recommended flag, helpful/unhelpful counts). sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs.", "operationId": "bestbuy-product-reviews", "parameters": [ { @@ -243412,7 +256426,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page (up to 24) of one Best Buy keyword search's normalized product listing (sku, title, url, image, price, rating, review count). q is free-text search keywords, e.g. \"laptop\". page is the optional 1-indexed page number (defaults to 1); requesting a page past the last one returns an empty products list, not an error.", + "description": "Returns one page (up to 24) of one Best Buy keyword search's product listing (sku, title, url, image, price, rating, review count). q is free-text search keywords, e.g. \"laptop\". page is the optional 1-indexed page number (defaults to 1); requesting a page past the last one returns an empty products list, not an error.", "operationId": "bestbuy-search", "parameters": [ { @@ -243553,7 +256567,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized product-listing page from a public BigCommerce storefront category page. url must be the full public category-page URL. page is 1-indexed and defaults to 1.", + "description": "Returns one product-listing page from a public BigCommerce storefront category page. url must be the full public category-page URL. page is 1-indexed and defaults to 1.", "operationId": "bigcommerce-category", "parameters": [ { @@ -243624,7 +256638,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail from a public BigCommerce storefront product page. url must be the full public product-page URL for a BigCommerce Stencil storefront.", + "description": "Returns product detail from a public BigCommerce storefront product page. url must be the full public product-page URL for a BigCommerce Stencil storefront.", "operationId": "bigcommerce-product", "parameters": [ { @@ -243687,7 +256701,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized product-search page from a public BigCommerce storefront. url must be the public storefront origin; an optional caller path or query is ignored. q is required search text. page is 1-indexed and defaults to 1.", + "description": "Returns one product-search page from a public BigCommerce storefront. url must be the public storefront origin; an optional caller path or query is ignored. q is required search text. page is 1-indexed and defaults to 1.", "operationId": "bigcommerce-search", "parameters": [ { @@ -243813,7 +256827,7 @@ "consumes": [ "application/json" ], - "description": "Returns Bilibili search-box query suggestions for partial text. An empty suggestion list is a valid response when nothing matches.", + "description": "Returns Bilibili search-box suggestions for the partial text in `q`, which is required (up to 100 characters). The response has the `query`, a `count` and deduplicated `suggestions` in Bilibili's order. A query with no matches returns an empty `suggestions` array; invalid input returns 400.", "operationId": "bilibili-autocomplete", "parameters": [ { @@ -243923,7 +256937,7 @@ "consumes": [ "application/json" ], - "description": "Returns Bilibili's curated must-watch collection, separated into established classics and the latest additions.", + "description": "Returns Bilibili's curated must-watch collection, split into `classic_videos` and `latest_videos` with their counts, plus the collection `title`, `subtitle` and `explanation`. Each video has `bvid`, `aid`, `title`, `url`, `cover`, `uploader`, `published`, `stats` and `achievement`. Takes no parameters.", "operationId": "bilibili-must-watch", "produces": [ "application/json" @@ -243970,7 +256984,7 @@ "consumes": [ "application/json" ], - "description": "Returns Bilibili's current popular-video feed in upstream order. Pass next_cursor back as cursor to continue to the next batch.", + "description": "Returns Bilibili's current popular videos in Bilibili's own order. Start with `cursor` 0 (the default; max 10000000) and pass back `next_cursor` for the next batch. Each video has `bvid`, `aid`, `title`, `url`, `cover`, `duration`, `uploader`, `views_and_age` and an optional `reason`. At the end of the feed `no_more` is `true` and `videos` is empty.", "operationId": "bilibili-popular", "parameters": [ { @@ -244034,7 +257048,7 @@ "consumes": [ "application/json" ], - "description": "Returns the current official all-site ranking with video engagement, category, and creator metadata in rank order.", + "description": "Returns the current Bilibili all-site video ranking in rank order. Each video has its `rank`, `aid`, `title`, `url`, `cover`, `views`, `danmaku`, `replies`, `favorites`, `likes`, `duration_seconds`, `published_at`, `category` and `creator` (name, `mid`, `followers`). Takes no parameters.", "operationId": "bilibili-ranking", "produces": [ "application/json" @@ -244150,7 +257164,7 @@ "consumes": [ "application/json" ], - "description": "Returns one issue from Bilibili's weekly selected-video archive. Omit number to resolve and return the latest issue.", + "description": "Returns one issue of Bilibili's weekly selected-video series: `number` (1 to 1000000) picks the issue, and omitting it returns the latest. The issue has `subject`, `label`, `description` and `reminder`, and each video has `bvid`, `title`, `uploader`, `duration_seconds`, `recommendation` and `stats_text`. An unknown issue number returns 404.", "operationId": "bilibili-weekly", "parameters": [ { @@ -244325,7 +257339,7 @@ }, "/billboard/headlines": { "get": { - "description": "Returns fresh headlines from one public Billboard section.", + "description": "Returns the 10 most recent items from one Billboard section. `section` is required and takes a slug such as `chart-beat`, `country`, `rb-hip-hop`, `streaming` or `touring`. Parent sections such as `music` and `business` overlap with their subsections, so one item can appear under several. Items carry title, URL, summary, author and time.", "operationId": "billboard-headlines", "parameters": [ { @@ -244416,7 +257430,7 @@ }, "/billboard/news": { "get": { - "description": "Returns fresh Billboard top stories from its public RSS feed.", + "description": "Returns the latest Billboard stories, with no input needed. Each item has a title and canonical URL, plus a publication time, summary and image when Billboard provides them.", "operationId": "billboard-news", "produces": [ "application/json" @@ -244793,7 +257807,7 @@ "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.", + "description": "Returns a customer-safe JSON statement for one billing period, combining the 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. Repair errors and raw webhook audit details are not exposed.", "operationId": "billing-me-period-statement", "parameters": [ { @@ -245078,7 +258092,7 @@ "consumes": [ "application/json" ], - "description": "Releases the authenticated user's pending downgrade schedule and keeps the current plan active through renewal.", + "description": "Cancels the signed-in user's scheduled subscription downgrade and keeps the current plan active. There is no immediate charge or refund, and the call changes nothing when no downgrade is scheduled. Takes no body. The response reports `action`, `current_plan`, `target_plan` and `payment_status`.", "operationId": "billing-me-subscription-change-cancel", "produces": [ "application/json" @@ -245183,7 +258197,7 @@ "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.", + "description": "Returns Bing image search results for a query string. Locale defaults to country=us and lang=en-us. Returns 503 when Bing serves a challenge page or unusable results.", "operationId": "bing-images", "parameters": [ { @@ -245283,7 +258297,7 @@ "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.", + "description": "Returns Bing news search results for a query string. Locale defaults to country=us and lang=en-us. Returns 503 when Bing serves a challenge page or unusable results.", "operationId": "bing-news", "parameters": [ { @@ -245383,7 +258397,7 @@ "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 a Chrome-impersonated request client and return 503 on a genuine transport failure or challenge page. Bing occasionally serves a well-formed page whose results share no significant term with the query; when every hedged attempt hits this, the response is still returned as 200 with data.low_confidence set to true (and the X-Low-Confidence header) instead of being withheld, so callers get Bing's real answer plus an honest signal to double-check it rather than nothing. 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 DuckDuckGo (/api/v1/duckduckgo/search), Brave (/api/v1/brave/search), or Yahoo (/api/v1/yahoo-search/search) search endpoints for domain-restricted searches instead.", + "description": "Returns 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. Returns 503 on a genuine transport failure or challenge page. Bing occasionally serves a well-formed page whose results share no significant term with the query; when every attempt hits this, the response is still returned as 200 with data.low_confidence set to true (and the X-Low-Confidence header) instead of being withheld, so callers get Bing's real answer plus an honest signal to double-check it rather than nothing. 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 DuckDuckGo (/api/v1/duckduckgo/search), Brave (/api/v1/brave/search), or Yahoo (/api/v1/yahoo-search/search) search endpoints for domain-restricted searches instead.", "operationId": "bing-search", "parameters": [ { @@ -245576,7 +258590,7 @@ "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.", + "description": "Returns Bing video search results for a query string. Locale defaults to country=us and lang=en-us. Returns 503 when Bing serves a challenge page or unusable results.", "operationId": "bing-videos", "parameters": [ { @@ -245923,7 +258937,7 @@ }, "/birminghammail/sections": { "get": { - "description": "Returns the public Birmingham Mail editorial section inventory used by birminghammail-headlines.", + "description": "Lists the 23 Birmingham Mail sections that `birminghammail-headlines` accepts, such as `news/midlands-news`, `black-country`, `sport/football/transfer-news` and `whats-on`. Each has a `slug`, a display `name` and the feed `url`. Only sections with a recently updated feed are included (last verified 2026-09-25), and each returns up to about 25 entries.", "operationId": "birminghammail-sections", "produces": [ "application/json" @@ -246003,7 +259017,7 @@ }, "/bleacherreport/author": { "get": { - "description": "Returns one Bleacher Report writer's public profile: name, role, biography, photo, and the latest stories listed on the page.", + "description": "Returns a Bleacher Report writer's profile, identified by `slug` (such as `scott-polacek`) or a canonical `bleacherreport.com/writers/` `url`; exactly one is required. The response has name, role, biography, photo and about 20 latest stories with title, URL and thumbnail. Publication times are not shown on the profile, so `published_at` is omitted; an unknown slug returns 404.", "operationId": "bleacherreport-author", "parameters": [ { @@ -246063,7 +259077,7 @@ }, "/bleacherreport/headlines": { "get": { - "description": "Returns current Bleacher Report headlines from one public league or league sub-hub page.", + "description": "Returns the stories on one Bleacher Report league or sub-hub page, newest first. `section` is required and takes a slug such as `nfl`, `nba-draft`, `formula-1` or `recruiting`. Each has a headline, article URL and publication time, plus thumbnail and blurb when present. Busy leagues return 100 or more stories, quiet ones only a few.", "operationId": "bleacherreport-headlines", "parameters": [ { @@ -246143,7 +259157,7 @@ }, "/bleacherreport/news": { "get": { - "description": "Returns fresh Bleacher Report top sports stories from the public news sitemap.", + "description": "Returns around 180 Bleacher Report sports stories from roughly the last day or two, newest first, with no input needed. Each has a title, canonical article URL and publication time. Live blogs are excluded because they are not article pages.", "operationId": "bleacherreport-news", "produces": [ "application/json" @@ -246181,7 +259195,7 @@ }, "/bleacherreport/sections": { "get": { - "description": "Returns the public Bleacher Report league and league sub-hub sections accepted by the headlines endpoint.", + "description": "Lists the 30 Bleacher Report sections that `bleacherreport-headlines` accepts: 18 league and sport hubs such as `nfl`, `tennis` and `olympics`, plus 12 sub-hubs such as `nba-draft` and `bracketology`. Each has a `slug`, display `name` and landing-page `url`. Team pages, scores, standings and MotoGP are not included.", "operationId": "bleacherreport-sections", "produces": [ "application/json" @@ -246219,7 +259233,7 @@ }, "/bloomberg/article": { "get": { - "description": "Returns one public Bloomberg article's metadata and body paragraphs from a canonical article URL. Subscriber-only articles are not available.", + "description": "Returns a public Bloomberg article by `url`: title, description, publication and update times, section, categories, authors, image, `is_premium` and the body `paragraphs` in order. Subscriber-only articles that Bloomberg shows as a truncated preview return `403`, an article with no body returns `503`, and non-article or non-Bloomberg URLs return `400`.", "operationId": "bloomberg-article", "parameters": [ { @@ -246285,7 +259299,7 @@ }, "/bloomberg/author": { "get": { - "description": "Returns one public Bloomberg author's profile (name, title, bio) and their recent-content feed from a canonical author URL.", + "description": "Returns a Bloomberg author's profile from `url`, a canonical `https://www.bloomberg.com/authors//` address, where `` is an opaque token Bloomberg assigns and cannot be guessed. The response has `name`, `title`, `bio` and recent content with title, URL, `type`, `section`, full `byline` and publication and update times.", "operationId": "bloomberg-author", "parameters": [ { @@ -246383,7 +259397,7 @@ }, "/bloomberg/headlines": { "get": { - "description": "Returns Bloomberg story cards from one editorial section. Section must be a slug returned by /bloomberg/categories.", + "description": "Returns current Bloomberg story cards for one editorial section. `section` is required and takes a slug from the Bloomberg categories list, such as `markets`, `economics` or `politics`. Each item has a title and canonical URL, and may also carry a description, image and publication time.", "operationId": "bloomberg-headlines", "parameters": [ { @@ -246481,7 +259495,7 @@ }, "/bloomberg/news-sitemaps": { "get": { - "description": "Returns Bloomberg's public monthly news-sitemap index so callers can discover historical news feeds beyond the rolling latest feed.", + "description": "Lists Bloomberg's monthly news sitemaps, each with its `url` and `last_modified` date. Use them to find historical news beyond the rolling latest feed at `/bloomberg/news`. Takes no parameters.", "operationId": "bloomberg-news-sitemaps", "produces": [ "application/json" @@ -246522,7 +259536,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of a Bluesky account's posts, newest first, including text, engagement counts, and any attached images/link card/quoted post. Public data, sourced from the AT Protocol's public, credential-free AppView API.", + "description": "Returns a page of a Bluesky account's posts, newest first, including text, engagement counts, and any attached images/link card/quoted post.", "operationId": "bluesky-author-feed", "parameters": [ { @@ -246604,7 +259618,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of a Bluesky account's followers. Public data, sourced from the AT Protocol's public, credential-free AppView API.", + "description": "Returns a page of a Bluesky account's followers. `actor` is required and is a handle such as `bsky.app` or a DID. `limit` is 1 to 100 (default 25); pass the returned `cursor` back to continue. Each follower has `did`, `handle`, `display_name`, `description`, `avatar_url` and `created_at`, and `subject` describes the account itself.", "operationId": "bluesky-followers", "parameters": [ { @@ -246686,7 +259700,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of the accounts a Bluesky account follows. Public data, sourced from the AT Protocol's public, credential-free AppView API.", + "description": "Returns a page of the accounts a Bluesky account follows.", "operationId": "bluesky-follows", "parameters": [ { @@ -246765,7 +259779,7 @@ }, "/bluesky/post-likes": { "get": { - "description": "Returns public actors who liked a post, with an optional cursor for pagination.", + "description": "Lists the accounts that liked a Bluesky post, identified by its `at://` post `uri`, which is required. `limit` defaults to 25 and is capped at 100; pass the returned `cursor` back for the next page. Each actor has `did`, `handle`, `display_name`, `description`, `avatar_url` and `created_at`.", "operationId": "bluesky-post-likes", "parameters": [ { @@ -246844,7 +259858,7 @@ }, "/bluesky/post-quotes": { "get": { - "description": "Returns public posts that quote the specified post, with an optional cursor for pagination.", + "description": "Lists the Bluesky posts that quote a given post, identified by its `at://` post `uri`, which is required. `limit` defaults to 25 and is capped at 100; pass the returned `cursor` back for the next page. Each post has its `text`, `author`, `created_at`, `langs`, like, quote, reply and repost counts, `images` and `external` link card.", "operationId": "bluesky-post-quotes", "parameters": [ { @@ -246923,7 +259937,7 @@ }, "/bluesky/post-reposted-by": { "get": { - "description": "Returns public actors who reposted a post, with an optional cursor for pagination.", + "description": "Lists the accounts that reposted a Bluesky post, identified by its `at://` post `uri`, which is required. `limit` defaults to 25 and is capped at 100; pass the returned `cursor` back for the next page. Each actor has `did`, `handle`, `display_name`, `description`, `avatar_url` and `created_at`.", "operationId": "bluesky-post-reposted-by", "parameters": [ { @@ -247005,7 +260019,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Bluesky post along with its nested replies (and, when the post is itself a reply, its parent chain), up to `depth` levels deep. Public data, sourced from the AT Protocol's public, credential-free AppView API.", + "description": "Returns a Bluesky post along with its nested replies (and, when the post is itself a reply, its parent chain), up to `depth` levels deep.", "operationId": "bluesky-post-thread", "parameters": [ { @@ -247145,7 +260159,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Bluesky account's public profile: display name, description, avatar/banner images, and follower/follows/posts counts. Public data, sourced from the AT Protocol's public, credential-free AppView API.", + "description": "Returns a Bluesky account's public profile: display name, description, avatar/banner images, and follower/follows/posts counts.", "operationId": "bluesky-profile", "parameters": [ { @@ -247214,7 +260228,7 @@ "consumes": [ "application/json" ], - "description": "Returns Bluesky accounts matching a query against display name, handle, and profile description. Public data, sourced from the AT Protocol's public, credential-free AppView API.", + "description": "Returns Bluesky accounts matching a query against display name, handle, and profile description.", "operationId": "bluesky-search-actors", "parameters": [ { @@ -247290,7 +260304,7 @@ "consumes": [ "application/json" ], - "description": "Returns Bluesky's current trending topics and suggested feeds, each with a link to its feed. Public data, sourced from the AT Protocol's public, credential-free AppView API. This surface is less stable than the rest of this family -- Bluesky may change its shape without notice.", + "description": "Returns Bluesky's current trending topics and suggested feeds, each with a link to its feed. This surface is less stable than the rest of this family -- Bluesky may change its shape without notice.", "operationId": "bluesky-trending-topics", "produces": [ "application/json" @@ -247337,7 +260351,7 @@ "consumes": [ "application/json" ], - "description": "Searches and filters Bonhams' auctions. Default status \"upcoming\" excludes ended auctions, matching bonhams.com's own default; \"past\" browses Bonhams' full historical auction archive instead. Credential-free public data from bonhams.com's own search API.", + "description": "Searches and filters Bonhams' auctions. Default status \"upcoming\" excludes ended auctions, matching bonhams.com's own default; \"past\" browses Bonhams' full historical auction archive instead.", "operationId": "bonhams-auction-search", "parameters": [ { @@ -247451,7 +260465,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Bonhams auction's normalized facts by id: title, category, department, country, currency, sale dates, and lot count. Unlike the search endpoint, this is not restricted to upcoming/live auctions -- a historical/ended auction id resolves too. Credential-free public data from bonhams.com's own search API.", + "description": "Returns one Bonhams auction's facts by id: title, category, department, country, currency, sale dates, and lot count. Unlike the search endpoint, this is not restricted to upcoming/live auctions -- a historical/ended auction id resolves too.", "operationId": "bonhams-auction-detail", "parameters": [ { @@ -247514,7 +260528,7 @@ "consumes": [ "application/json" ], - "description": "Returns the normalized lot listing for one Bonhams auction, optionally filtered by department and/or a free-text query. Credential-free public data from bonhams.com's own search API.", + "description": "Returns the lot listing for one Bonhams auction, optionally filtered by department and/or a free-text query.", "operationId": "bonhams-auction-lots", "parameters": [ { @@ -247597,7 +260611,7 @@ "consumes": [ "application/json" ], - "description": "Searches Bonhams lots across every auction, current and historical -- including sold/prices-realized lots -- optionally filtered by department, country, a GBP-normalized estimate price range, and/or a free-text query, in a caller-selected sort order. Without a query and without an explicit sort, results are ordered by most recently active sale date first. Credential-free public data from bonhams.com's own search API.", + "description": "Searches Bonhams lots across every auction, current and historical -- including sold/prices-realized lots -- optionally filtered by department, country, a GBP-normalized estimate price range, and/or a free-text query, in a caller-selected sort order. Without a query and without an explicit sort, results are ordered by most recently active sale date first.", "operationId": "bonhams-lot-search", "parameters": [ { @@ -247704,7 +260718,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Bonhams lot's normalized facts: title, estimate range, hammer/realized price (once sold), sale date, category, department, and lot number. Full lot description prose, condition-report text, and additional images are not reproduced -- see the response fields. Credential-free public data from bonhams.com's own search API.", + "description": "Returns one Bonhams lot's facts: title, estimate range, hammer/realized price (once sold), sale date, category, department, and lot number. Full lot description prose, condition-report text, and additional images are not reproduced -- see the response fields.", "operationId": "bonhams-lot-detail", "parameters": [ { @@ -247775,7 +260789,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Booking.com attraction's detail page.", + "description": "Returns the details of one Booking.com attraction by `slug`, taken from `products[].slug` in a `booking-attractions-search` result: `name`, `short_description`, `description`, `duration`, `price` with `currency`, `review_score`, `review_count` and `city`. The returned `id` is the `product_id` for `booking-attractions-reviews`.", "operationId": "booking-attractions-detail", "parameters": [ { @@ -247838,7 +260852,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized guest reviews for a Booking.com attraction.", + "description": "Returns guest reviews for a Booking.com attraction. `product_id` is required and comes from `products[].id` in a `booking-attractions-search` result. `page` is 1-based (default 1) and `limit` is 1 to 50 (default 10). Each review has `score`, `content`, `reviewer_name`, `reviewer_country`, `language` and `reviewed_date`, and `total` gives the count.", "operationId": "booking-attractions-reviews", "parameters": [ { @@ -247915,7 +260929,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Booking.com attractions/things-to-do search results for a destination and date range, with an optional category/subcategory filter and a discoverable category taxonomy.", + "description": "Returns Booking.com attractions/things-to-do search results for a destination and date range, with an optional category/subcategory filter and a discoverable category taxonomy.", "operationId": "booking-attractions-search", "parameters": [ { @@ -248021,7 +261035,7 @@ "consumes": [ "application/json" ], - "description": "Returns Booking.com flight-search location suggestions (airports/cities) for a query string.", + "description": "Returns Booking.com flight-search location suggestions (airports and cities) for `query`, which is required. `type` is `to` (default) or `from`; `origin` and `origin_type` bias results by proximity. Each result has `name`, `code`, `type`, `country`, `country_name` and `region_name`. Combine `code` and `type` as `{code}.{TYPE}` for `booking-flights-search`.", "operationId": "booking-flights-autocomplete", "parameters": [ { @@ -248108,7 +261122,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized round-trip or one-way flight offers between two Booking.com flight-search locations.", + "description": "Returns Booking.com flight offers between two locations given as `from` and `to` (such as `SGN.AIRPORT`), for a `depart` date. `type` is `ROUNDTRIP` (default, needs `return`) or `ONEWAY`. Also takes `adults` (1 to 9), `children`, `cabin_class` and `sort`. Offers carry `price`, `currency` and segments with legs; the response adds `total_count` and `min_price`.", "operationId": "booking-flights-search", "parameters": [ { @@ -248309,7 +261323,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized guest reviews for a Booking.com hotel, with an optional free-text search over review content.", + "description": "Returns guest reviews for a Booking.com hotel. `hotel_id` and `hotel_country_code` are required, both from a `booking-search` result. `search_text` filters review content, `page` is 1-based and `limit` is 1 to 25 (default 10). Reviews have `score`, `title`, `positive_text`, `negative_text`, `room_type` and stay dates; `rating_scores` and `reviews_count` summarise the hotel.", "operationId": "booking-reviews", "parameters": [ { @@ -248415,7 +261429,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Booking.com hotel search results for a destination and date range.", + "description": "Searches Booking.com hotels for a destination `query` between `checkin` and `checkout` (`YYYY-MM-DD`, both required). `adults` is 1 to 9 (default 2), `rooms` 1 to 8 (default 1), `children` 0 to 9, and `page` is 1-based. Each property has `name`, `price`, `currency`, `review_score`, `star_rating` and `distance`; `results_count` gives the total.", "operationId": "booking-search", "parameters": [ { @@ -248698,7 +261712,7 @@ }, "/bostonglobe/news": { "get": { - "description": "Returns recent Boston Globe story metadata and RSS summaries from its public Arc feed. The feed also carries content:encoded article prose, which this endpoint intentionally omits. Article bodies, sections, headlines-by-section, and author profiles are not exposed because the public contracts are not fully verified and some stories require a subscription.", + "description": "Returns recent Boston Globe story metadata and summaries. Article bodies, sections, headlines-by-section, and author profiles are not exposed, and some stories require a subscription.", "operationId": "bostonglobe-news", "produces": [ "application/json" @@ -248739,7 +261753,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized release rows from a public Box Office Mojo brand page. Pass exactly one of `id`, `path`, or `url`.", + "description": "Returns release rows from a Box Office Mojo brand page. Pass exactly one of `id`, `path`, or `url`.", "operationId": "boxofficemojo-brand", "parameters": [ { @@ -248851,7 +261865,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized rows from Box Office Mojo's public brand chart.", + "description": "Returns Box Office Mojo's brand chart, ranked, with each brand's `name`, `id`, `path`, `url`, release count and lifetime gross (an integer in `lifetime_gross`, the displayed text in `lifetime_gross_raw`). Reorder with `sort` (`totalGross`, `numReleases` or `grossToDate`) and `sortDir` (`asc` or `desc`); they are echoed back only when applied.", "operationId": "boxofficemojo-brands", "parameters": [ { @@ -248927,7 +261941,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized grouped rows from Box Office Mojo's public domestic release schedule. Provide `year` and `month`.", + "description": "Returns Box Office Mojo's domestic release schedule for one month, grouped by date. `year` (1921 to 2100) and `month` (1 to 12) are both required. Each release has its title, `release_url`, `distributor`, `scale`, `genres`, `cast` and poster image URLs when present.", "operationId": "boxofficemojo-calendar", "parameters": [ { @@ -248998,7 +262012,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized grouped rows from Box Office Mojo's public domestic release-schedule changes page.", + "description": "Returns Box Office Mojo's list of changes to the domestic release schedule, grouped by change date. `offset` pages through the list in steps of 30, from 0 to 780. Each change has the release, `distributor`, `scale`, `old_date` and `new_date`, and `range` shows the position in the list.", "operationId": "boxofficemojo-calendar-changes", "parameters": [ { @@ -249060,7 +262074,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized release rows for one public Box Office Mojo domestic release-schedule date.", + "description": "Returns the releases scheduled on one date in Box Office Mojo's domestic release schedule. `date` is required, in `YYYY-MM-DD` form. Each release has its title, `release_url`, `distributor`, `scale`, `genres`, `cast` and poster image URLs when present. A date with no scheduled releases returns a not-found error.", "operationId": "boxofficemojo-calendar-date", "parameters": [ { @@ -249129,7 +262143,7 @@ "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.", + "description": "Returns rows from Box Office Mojo's domestic daily chart. Empty upstream daily pages return a typed not-found error rather than an empty success.", "operationId": "boxofficemojo-date-domestic", "parameters": [ { @@ -249198,7 +262212,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized release rows from a public Box Office Mojo franchise page. Pass exactly one of `id`, `path`, or `url`.", + "description": "Returns release rows from a Box Office Mojo franchise page. Pass exactly one of `id`, `path`, or `url`.", "operationId": "boxofficemojo-franchise", "parameters": [ { @@ -249310,7 +262324,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized rows from Box Office Mojo's public franchise chart.", + "description": "Returns Box Office Mojo's franchise chart, ranked, with each franchise's `name`, `id`, `path`, `url`, release count and lifetime gross (an integer in `lifetime_gross`, the displayed text in `lifetime_gross_raw`). Reorder with `sort` (`totalGross`, `numReleases` or `grossToDate`) and `sortDir` (`asc` or `desc`); they are echoed back only when applied.", "operationId": "boxofficemojo-franchises", "parameters": [ { @@ -249386,7 +262400,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized release rows from a public Box Office Mojo genre page. Pass exactly one of `id`, `path`, or `url`.", + "description": "Returns release rows from a Box Office Mojo genre page. Pass exactly one of `id`, `path`, or `url`.", "operationId": "boxofficemojo-genre", "parameters": [ { @@ -249498,7 +262512,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized rows from Box Office Mojo's public genre chart.", + "description": "Returns Box Office Mojo's genre chart, ranked, with each genre's `name`, `id`, `path`, `url`, release count and lifetime gross (an integer in `lifetime_gross`, the displayed text in `lifetime_gross_raw`). Reorder with `sort` (`totalGross`, `numTitles` or `grossToDate`) and `sortDir` (`asc` or `desc`); they are echoed back only when applied.", "operationId": "boxofficemojo-genres", "parameters": [ { @@ -249574,7 +262588,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized rows from Box Office Mojo's credential-free lifetime gross chart. `area` values: `worldwide`, `domestic`.", + "description": "Returns one page of Box Office Mojo's lifetime gross chart of movies. `area` is `worldwide` (default) or `domestic`, and `offset` pages in steps of 200 from 0 to 800. Each row has `rank`, `title`, `title_id`, `year` and `lifetime_gross` as an integer, with the displayed text in `lifetime_gross_raw`.", "operationId": "boxofficemojo-lifetime-grosses", "parameters": [ { @@ -249647,7 +262661,7 @@ "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`.", + "description": "Returns Box Office Mojo release summary fields and domestic daily rows from a release page. Pass exactly one of `id`, `path`, or `url`.", "operationId": "boxofficemojo-release", "parameters": [ { @@ -249729,7 +262743,7 @@ "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`.", + "description": "Returns market release rows grouped by region from a Box Office Mojo release-group page. Pass exactly one of `id`, `path`, or `url`.", "operationId": "boxofficemojo-release-group", "parameters": [ { @@ -249811,7 +262825,7 @@ "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`.", + "description": "Returns release comparison metrics from a Box Office Mojo showdown page. Pass exactly one of `id`, `path`, or `url`.", "operationId": "boxofficemojo-showdown", "parameters": [ { @@ -249893,7 +262907,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized comparison rows from Box Office Mojo's public showdowns page.", + "description": "Returns Box Office Mojo's showdowns, which compare groups of movies. Each row has the showdown `name`, `showdown_id`, `path`, `url`, `num_releases`, `total_gross` and the `top_release` with its gross, when Box Office Mojo shows them. Takes no parameters.", "operationId": "boxofficemojo-showdowns", "produces": [ "application/json" @@ -249940,7 +262954,7 @@ "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`.", + "description": "Returns Box Office Mojo title release-group and market-gross tables from a title page. Pass exactly one of `id`, `path`, or `url`.", "operationId": "boxofficemojo-title", "parameters": [ { @@ -250022,7 +263036,7 @@ "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.", + "description": "Returns rows from Box Office Mojo's domestic weekend chart. Empty upstream weekend pages return a typed not-found error rather than an empty success.", "operationId": "boxofficemojo-weekend-domestic", "parameters": [ { @@ -250099,7 +263113,7 @@ "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.", + "description": "Returns distributor rows from Box Office Mojo's 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": [ { @@ -250176,7 +263190,7 @@ "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.", + "description": "Returns estimate-vs-actual rows from Box Office Mojo's 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": [ { @@ -250253,7 +263267,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized release rows from Box Office Mojo's public domestic yearly calendar-grosses chart.", + "description": "Returns the Box Office Mojo domestic box office chart for one year. `year` is required and runs from 1977 to 2100. Each row has `rank`, `release`, `release_date`, `distributor`, `theaters`, `gross`, `total_gross` and `new_this_year`, each gross also with its displayed text in a `_raw` field.", "operationId": "boxofficemojo-year-domestic", "parameters": [ { @@ -250316,7 +263330,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized release-group rows from Box Office Mojo's public worldwide yearly chart.", + "description": "Returns the Box Office Mojo worldwide box office chart for one year. `year` is required and runs from 1977 to 2100. Each row is a release group with its `rank`, `worldwide`, `domestic` and `foreign` grosses, the domestic and foreign shares, and `title_id`; each gross also has its displayed text in a `_raw` field.", "operationId": "boxofficemojo-year-worldwide", "parameters": [ { @@ -250379,7 +263393,7 @@ "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.", + "description": "Returns a brand profile for a domain (title, description, brand colors as 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": [ { @@ -250472,7 +263486,7 @@ "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.", + "description": "Returns Brave image search results for a query string. Locale defaults to country=us and lang=en-us. Returns 503 when Brave serves a challenge page or unusable results.", "operationId": "brave-images", "parameters": [ { @@ -250628,7 +263642,7 @@ "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.", + "description": "Returns Brave news search results for a query string. Locale defaults to country=us and lang=en-us. Returns 503 when Brave serves a challenge page or unusable results.", "operationId": "brave-news", "parameters": [ { @@ -250812,7 +263826,7 @@ "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.", + "description": "Returns 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": [ { @@ -251130,7 +264144,7 @@ "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.", + "description": "Returns Brave video search results for a query string. Locale defaults to country=us and lang=en-us. Returns 503 when Brave serves a challenge page or unusable results.", "operationId": "brave-videos", "parameters": [ { @@ -251311,7 +264325,7 @@ }, "/breitbart/article": { "get": { - "description": "Returns public Breitbart article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Breitbart article by `url`, a canonical `https://www.breitbart.com/
///
//` address. The response has the title, description, publication and update times, section, image, `authors` and the body `paragraphs`.", "operationId": "breitbart-article", "parameters": [ { @@ -251432,7 +264446,7 @@ }, "/breitbart/headlines": { "get": { - "description": "Returns fresh headlines from one public Breitbart section hub page.", + "description": "Returns current headlines from one Breitbart section hub. `section` is required and takes one of 21 slugs, such as `politics`, `border`, `the-media` or `europe`. The `world-news`, `news` and `on-the-hill-exclusive-video` hubs aggregate stories, so their links point to articles under whichever section owns each story.", "operationId": "breitbart-headlines", "parameters": [ { @@ -251503,7 +264517,7 @@ }, "/breitbart/news": { "get": { - "description": "Returns fresh Breitbart top stories from its public RSS feed.", + "description": "Returns the latest Breitbart top stories from across the site, with no input needed. Each item has a title and canonical URL, and may also carry a summary, publication time, author and image.", "operationId": "breitbart-news", "produces": [ "application/json" @@ -251541,7 +264555,7 @@ }, "/breitbart/sections": { "get": { - "description": "Returns the live-verified public Breitbart editorial section inventory used by the headlines endpoint.", + "description": "Lists the 21 Breitbart sections accepted by `breitbart-headlines`, including `politics`, `economy`, `border`, `national-security`, `the-media`, `world-news` and `america250`. Each has a `slug`, a display `name` and the section's page `url`. The list was verified on 2026-09-23.", "operationId": "breitbart-sections", "produces": [ "application/json" @@ -251621,7 +264635,7 @@ }, "/brisbanetimes/author": { "get": { - "description": "Returns one public Brisbane Times `/by/-` profile with its name, biography, headshot, contact links, and recent story cards.", + "description": "Returns a Brisbane Times journalist profile from `url`, a canonical `https://www.brisbanetimes.com.au/by/-` address: name, biography, headshot, email, social links and recent story cards with title, URL, summary and image. Fields appear only when the profile shows them; the sampled profile returned 10 stories.", "operationId": "brisbanetimes-author", "parameters": [ { @@ -251896,7 +264910,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Brooklinen (https://www.brooklinen.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Brooklinen (https://www.brooklinen.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "brooklinen-collections", "parameters": [ { @@ -251959,7 +264973,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Brooklinen (https://www.brooklinen.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Brooklinen (https://www.brooklinen.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "brooklinen-collection-products", "parameters": [ { @@ -252036,7 +265050,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Brooklinen (https://www.brooklinen.com). The storefront URL is fixed server-side.", + "description": "Lists Brooklinen static pages, `limit` per page (default 50, max 250) and `page` starting at 1. Each page has its handle, title, URL, plain-text content and timestamps. When `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`; request each handle singly for content.", "operationId": "brooklinen-pages", "parameters": [ { @@ -252099,7 +265113,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Brooklinen (https://www.brooklinen.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one Brooklinen static page by its `handle`: id, title, URL, plain-text content, and created, published and updated times. A missing handle returns 404. When `transport_mode` is `ssr_embedded`, the content is plain text from the page's rich-text blocks and `id` is omitted.", "operationId": "brooklinen-page", "parameters": [ { @@ -252162,7 +265176,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Brooklinen's (https://www.brooklinen.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Brooklinen's (https://www.brooklinen.com) product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "brooklinen-products", "parameters": [ { @@ -252225,7 +265239,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Brooklinen (https://www.brooklinen.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Brooklinen (https://www.brooklinen.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "brooklinen-product", "parameters": [ { @@ -252288,7 +265302,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Brooklinen (https://www.brooklinen.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Brooklinen (https://www.brooklinen.com) product handle. The storefront URL is fixed server-side.", "operationId": "brooklinen-product-recommendations", "parameters": [ { @@ -252369,7 +265383,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Brooklinen's (https://www.brooklinen.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Brooklinen's (https://www.brooklinen.com) predictive search. The storefront URL is fixed server-side.", "operationId": "brooklinen-search-suggest", "parameters": [ { @@ -252440,7 +265454,7 @@ "consumes": [ "application/json" ], - "description": "Returns capped URL entries from Brooklinen's (https://www.brooklinen.com) child sitemaps matching the requested type. The storefront URL is fixed server-side.", + "description": "Lists URL entries from Brooklinen's sitemaps, filtered by `type` (`all` by default, or `products`, `collections`, `pages`, `blogs`, `agentic_discovery`, `other`) and capped by `limit` (default 50, max 250). Each entry has its `loc`, type, handle, `lastmod`, `changefreq` and, where present, images with caption and title.", "operationId": "brooklinen-sitemap-urls", "parameters": [ { @@ -252512,7 +265526,7 @@ "consumes": [ "application/json" ], - "description": "Returns child sitemap URLs from Brooklinen's (https://www.brooklinen.com) `/sitemap.xml` index with inferred sitemap types. The storefront URL is fixed server-side.", + "description": "Lists the child sitemaps that Brooklinen publishes, with no parameters. Each entry has its `loc` URL and a `type` of `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`, which tells you which sitemap to pass to the sitemap URL endpoint.", "operationId": "brooklinen-sitemaps", "produces": [ "application/json" @@ -252559,7 +265573,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Brooklinen (https://www.brooklinen.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Brooklinen (https://www.brooklinen.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "brooklinen-store", "produces": [ "application/json" @@ -252874,7 +265888,7 @@ "consumes": [ "application/json" ], - "description": "Searches Burberry's product catalog by keyword. Returns normalized product summaries plus the upstream's own available filters (facets) with live per-option result counts. offset paginates in increments of 20 (the upstream's own fixed page size). sort selects the result order. facets applies a facet selection back, a comma-separated list of property:value pairs taken from this same response's facets field (e.g. benefit:bags,dotcomreportingcolour:black). A query with no matches, or a facet combination with no matches, returns a well-formed empty result, not an error. Unlike burberry-category, this response has no true grand-total result count -- only the current page's own count.", + "description": "Searches Burberry's product catalog by keyword. Returns product summaries plus the upstream's own available filters (facets) with live per-option result counts. offset paginates in increments of 20 (the upstream's own fixed page size). sort selects the result order. facets applies a facet selection back, a comma-separated list of property:value pairs taken from this same response's facets field (e.g. benefit:bags,dotcomreportingcolour:black). A query with no matches, or a facet combination with no matches, returns a well-formed empty result, not an error. Unlike burberry-category, this response has no true grand-total result count -- only the current page's own count.", "operationId": "burberry-search", "parameters": [ { @@ -253345,7 +266359,7 @@ }, "/businessinsider/article": { "get": { - "description": "Returns public Business Insider article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Business Insider article by canonical `url`: title, description, publication and update times, section, authors, image and the body `paragraphs`. Subscriber-only or blocked content returns an error instead of partial text.", "operationId": "businessinsider-article", "parameters": [ { @@ -253399,7 +266413,7 @@ }, "/businessinsider/author": { "get": { - "description": "Returns one Business Insider author's public profile: name, job title, bio, social accounts, and their recent articles.", + "description": "Returns a Business Insider author's profile, identified by `slug` (the last segment of the author's page address) or a canonical `https://www.businessinsider.com/author/` `url`; exactly one is required. The response has name, job title, bio, image, `social_accounts` and one page of recent articles with title, URL and summary. Accounts the author does not list are simply absent.", "operationId": "businessinsider-author", "parameters": [ { @@ -253459,7 +266473,7 @@ }, "/businessinsider/headlines": { "get": { - "description": "Returns fresh headlines from one public Business Insider section.", + "description": "Returns fresh headlines for one Business Insider section. `section` is required and is one of `business`, `markets`, `technology`, `politics`, `strategy`, `finance`, `science`, `lifestyle` or `reviews`. Each item has a title and URL, and may also carry a summary, author, publication time and image.", "operationId": "businessinsider-headlines", "parameters": [ { @@ -253518,7 +266532,7 @@ }, "/businessinsider/news": { "get": { - "description": "Returns fresh Business Insider stories from the public RSS feed.", + "description": "Returns the latest Business Insider top stories, with no input needed. Each item has a title and canonical URL, and may also carry a summary, author, publication time and image.", "operationId": "businessinsider-news", "produces": [ "application/json" @@ -253550,7 +266564,7 @@ }, "/businessinsider/sections": { "get": { - "description": "Returns the public Business Insider editorial section inventory.", + "description": "Lists the Business Insider editorial sections accepted by `businessinsider-headlines`, such as `business`, `markets` and `technology`. Each entry has a stable `slug`, a display `name` and the section's page `url`.", "operationId": "businessinsider-sections", "produces": [ "application/json" @@ -253636,7 +266650,7 @@ }, "/businessstandard/author": { "get": { - "description": "Returns a Business Standard author's byline metadata, biography, social links, and recent stories from a canonical author profile URL.", + "description": "Returns a Business Standard author's profile from `url`, a canonical `https://www.business-standard.com/author/` address: name, designation, biography, image, and Twitter, Facebook, LinkedIn and YouTube links where listed, plus about 20 recent stories. Stories carry a title, URL and optionally summary, date and a `premium` flag for subscriber-only text. An unknown author returns `404`.", "operationId": "businessstandard-author", "parameters": [ { @@ -253690,7 +266704,7 @@ }, "/businessstandard/headlines": { "get": { - "description": "Returns fresh headlines from one public Business Standard section.", + "description": "Returns recent headlines for one Business Standard section: up to 35 stories, or 100 for `latest-news`. `section` is required and takes one of 25 slugs such as `companies`, `markets`, `cricket` or `todays-paper`. Some stories are premium (subscriber-only), and requesting one from the article endpoint returns `403`.", "operationId": "businessstandard-headlines", "parameters": [ { @@ -253765,7 +266779,7 @@ }, "/businessstandard/news": { "get": { - "description": "Returns fresh Business Standard (business-standard.com) top stories from its public home-page feed.", + "description": "Returns Business Standard top stories from its home page, with no input needed: title, canonical URL and, where present, publication time, summary, author and image. Some listed stories are premium (subscriber-only), and requesting one from the article endpoint returns `403`.", "operationId": "businessstandard-news", "produces": [ "application/json" @@ -253803,7 +266817,7 @@ }, "/businessstandard/sections": { "get": { - "description": "Returns the public Business Standard section inventory used by the headlines endpoint.", + "description": "Lists the 25 Business Standard section slugs accepted by `businessstandard-headlines`, from `latest-news`, `companies` and `markets` to `cricket`, `immigration` and `todays-paper`. Each entry has a `slug`, a display `name` and the section's page `url`.", "operationId": "businessstandard-sections", "produces": [ "application/json" @@ -253832,7 +266846,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Capterra product profile: name, description, category, and aggregate rating. Credential-free public Capterra data, rendered from the product page through proxied browser renderers.", + "description": "Returns a Capterra product profile: name, description, category, and aggregate rating.", "operationId": "capterra-product", "parameters": [ { @@ -253895,7 +266909,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of normalized Capterra reviews (author, headline, rating) plus the product's aggregate rating. Credential-free public Capterra data, rendered from the reviews page through proxied browser renderers.", + "description": "Returns a page of Capterra reviews (author, headline, rating) plus the product's aggregate rating.", "operationId": "capterra-reviews", "parameters": [ { @@ -253965,7 +266979,7 @@ "consumes": [ "application/json" ], - "description": "Returns Capterra search-result products (id, name, url, description, rating). Credential-free public Capterra data, rendered from the search page through proxied browser renderers. Note: Capterra renders a fallback product list even for queries with no genuine match, rather than a distinct empty-results page, so callers should treat low-relevance results as an upstream characteristic, not a bug.", + "description": "Returns Capterra search-result products (id, name, url, description, rating). Note: Capterra renders a fallback product list even for queries with no genuine match, rather than a distinct empty-results page, so callers should treat low-relevance results as an upstream characteristic, not a bug.", "operationId": "capterra-search", "parameters": [ { @@ -254022,7 +267036,7 @@ "consumes": [ "application/json" ], - "description": "Searches CarMax for used car listings, returning normalized vehicle summaries (make, model, trim, year, mileage, colors, engine, fuel economy, pricing, store, images), available search facets with live counts, and the total matching count. Credential-free public data sourced from CarMax's own mobile-app search API.", + "description": "Searches CarMax for used car listings, returning vehicle summaries (make, model, trim, year, mileage, colors, engine, fuel economy, pricing, store, images), available search facets with live counts, and the total matching count.", "operationId": "carmax-search", "parameters": [ { @@ -254141,7 +267155,7 @@ "consumes": [ "application/json" ], - "description": "Returns autocomplete suggestions for a partial search term (make/model/trim), typo-tolerant by default. Credential-free public data sourced from CarMax's own mobile-app API.", + "description": "Returns autocomplete suggestions for a partial search term (make/model/trim), typo-tolerant by default.", "operationId": "carmax-search-suggestions", "parameters": [ { @@ -254205,7 +267219,7 @@ "consumes": [ "application/json" ], - "description": "Returns CarMax's full make taxonomy for browsing by brand: every make, a display image, and CarMax's own display order. Credential-free public data sourced from CarMax's own mobile-app API.", + "description": "Returns CarMax's full make taxonomy for browsing by brand: every make, a display image, and CarMax's own display order.", "operationId": "carmax-shop-by-brand", "produces": [ "application/json" @@ -254246,7 +267260,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized CarMax store: name, full address, phone numbers, coordinates, opening hours, and store-type flags (car buying center, microstore). Credential-free public data sourced from CarMax's own server-rendered store page.", + "description": "Returns a CarMax store: name, full address, phone numbers, coordinates, opening hours, and store-type flags (car buying center, microstore).", "operationId": "carmax-store", "parameters": [ { @@ -254309,7 +267323,7 @@ "consumes": [ "application/json" ], - "description": "Searches CarMax's physical store locations by ZIP code or free-text keyword, returning normalized stores with full address, every published phone number, opening hours, and (for a ZIP-based search) live driving distance in miles. Credential-free public data sourced from CarMax's own mobile-app store-locator API.", + "description": "Searches CarMax's physical store locations by ZIP code or free-text keyword, returning stores with full address, every published phone number, opening hours, and (for a ZIP-based search) live driving distance in miles.", "operationId": "carmax-stores", "parameters": [ { @@ -254379,7 +267393,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized CarMax vehicle listing: full vehicle spec (make, model, trim, mileage, colors, engine, transmission, fuel economy, pricing), equipment features, labeled specifications, warranty coverage, accident/owner history, and CarMax's return guarantee terms. Credential-free public data sourced primarily from CarMax's own mobile-app API, backfilled with the website's server-rendered page for accident/owner history and warranty terms the mobile API doesn't expose.", + "description": "Returns a CarMax vehicle listing: full vehicle spec (make, model, trim, mileage, colors, engine, transmission, fuel economy, pricing), equipment features, labeled specifications, warranty coverage, accident/owner history, and CarMax's return guarantee terms.", "operationId": "carmax-vehicle", "parameters": [ { @@ -254449,7 +267463,7 @@ "consumes": [ "application/json" ], - "description": "Returns CarMax's own similar-vehicle recommendations for a listing: stock number, description, display mileage/price, store location, and image, for vehicles CarMax considers comparable. An empty list is a normal result, not an error. Credential-free public data sourced from CarMax's own mobile-app API.", + "description": "Returns CarMax's own similar-vehicle recommendations for a listing: stock number, description, display mileage/price, store location, and image, for vehicles CarMax considers comparable. An empty list is a normal result, not an error.", "operationId": "carmax-vehicle-recommendations", "parameters": [ { @@ -254514,7 +267528,7 @@ "consumes": [ "application/json" ], - "description": "Searches Cars.com for new and used car listings, returning normalized vehicle summaries (make, model, trim, year, mileage, exterior color, drivetrain, fuel type, pricing, seller, images) plus the total matching count. Credential-free public data sourced directly from Cars.com's own public search API.", + "description": "Searches Cars.com for new and used car listings, returning vehicle summaries (make, model, trim, year, mileage, exterior color, drivetrain, fuel type, pricing, seller, images) plus the total matching count.", "operationId": "carsdotcom-search", "parameters": [ { @@ -254597,7 +267611,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Cars.com vehicle listing: full vehicle spec (make, model, trim, mileage, colors, engine, transmission, fuel economy, a key-specs table), Cars.com's own deal-fairness rating and predicted fair price, categorized equipment features, an AutoCheck-derived vehicle history report, Cars.com's own price-change history, the seller's notes, dealer detail (name, rating, address, website, phones, hours) or private-seller detail for a for-sale-by-owner listing, and certified-pre-owned/manufacturer-program detail when applicable. Credential-free public data sourced directly from Cars.com's own public GraphQL API.", + "description": "Returns a Cars.com vehicle listing: full vehicle spec (make, model, trim, mileage, colors, engine, transmission, fuel economy, a key-specs table), Cars.com's own deal-fairness rating and predicted fair price, categorized equipment features, an AutoCheck-derived vehicle history report, Cars.com's own price-change history, the seller's notes, dealer detail (name, rating, address, website, phones, hours) or private-seller detail for a for-sale-by-owner listing, and certified-pre-owned/manufacturer-program detail when applicable.", "operationId": "carsdotcom-vehicle", "parameters": [ { @@ -254711,7 +267725,7 @@ }, "/cbc/author": { "get": { - "description": "Returns one CBC journalist's public profile: name, job title, biography, photo, profile links, and their most recent articles.", + "description": "Returns a CBC journalist's profile, identified by `slug` (ending in CBC's author id, such as `darren-major-1.4462710`) or a `https://www.cbc.ca/author/` `url`; exactly one is required and an unknown author returns 404. The response has name, title, biography, photo, profile links and usually 10 latest articles, with `has_more_articles` showing whether older ones exist.", "operationId": "cbc-author", "parameters": [ { @@ -254856,7 +267870,7 @@ }, "/cbc/news": { "get": { - "description": "Returns fresh CBC News top stories from CBC's public Top Stories RSS feed. Live-updates pages are omitted.", + "description": "Returns fresh CBC News top stories with no input needed: title, canonical story URL, publication time, byline when given and lead image. Only stories the article endpoint accepts are returned, so video player pages, CBC Radio, Music and Books links and live-updates pages are omitted.", "operationId": "cbc-news", "produces": [ "application/json" @@ -254894,7 +267908,7 @@ }, "/cbc/sections": { "get": { - "description": "Returns the CBC News sections accepted by the headlines endpoint: national desks, regional newsrooms, and CBC Sports feeds.", + "description": "Lists the 35 CBC News sections that `cbc-headlines` accepts: 8 national desks such as `politics` and `world`, 21 regional newsrooms such as `toronto` and `nova-scotia`, and 6 CBC Sports feeds such as `sports-nhl`. Each has a `slug`, a display `name` and the feed `url`. Top stories come from `cbc-news`, not a section.", "operationId": "cbc-sections", "produces": [ "application/json" @@ -254920,7 +267934,7 @@ }, "/cbr/article": { "get": { - "description": "Returns public CBR article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a CBR article by `url`, a canonical `cbr.com` address of the form `//`: title, description, publication and update times, section, authors, image and the body `paragraphs`. Section, video, author and category pages are rejected as invalid. `paywalled` is `true` only if the page declares the article not free, and then `paragraphs` may be a teaser.", "operationId": "cbr-article", "parameters": [ { @@ -254980,7 +267994,7 @@ }, "/cbr/author": { "get": { - "description": "Returns a CBR author's byline metadata, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns a CBR author profile from `url`, a canonical `https://www.cbr.com/author//` address; paginated `/page/N/` URLs are rejected. The response has name, `title`, biography, image, `social_links` and about 20 items from the profile's Latest module, with no older pages available.", "operationId": "cbr-author", "parameters": [ { @@ -255118,7 +268132,7 @@ }, "/cbr/news": { "get": { - "description": "Returns fresh CBR top stories from its public RSS feed.", + "description": "Returns about 10 of the latest CBR stories from the site's main feed, with no input needed. Each has a title, canonical URL, summary, publication time, author names (co-authors joined with a comma) and lead image.", "operationId": "cbr-news", "produces": [ "application/json" @@ -255156,7 +268170,7 @@ }, "/cbr/sections": { "get": { - "description": "Returns the public CBR RSS section inventory used by the headlines endpoint.", + "description": "Lists the 28 CBR section slugs accepted by `cbr-headlines`, grouped by movies, TV, comics, anime and games with news, reviews, features and lists variants, plus `lists` and `cbr-exclusives`. Each entry has a `slug` (for example `news-movies` or `comics/reviews`), a display `name` and the feed `url`.", "operationId": "cbr-sections", "produces": [ "application/json" @@ -255188,7 +268202,7 @@ }, "/cbsnews/article": { "get": { - "description": "Returns public CBS News article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a CBS News article by `url`, a canonical HTTPS `cbsnews.com/news/` address. The response has the title, description, publication and update times, authors, section, lead image and the body `paragraphs`.", "operationId": "cbsnews-article", "parameters": [ { @@ -255296,7 +268310,7 @@ }, "/cbsnews/headlines": { "get": { - "description": "Returns fresh headlines from one public CBS News RSS section.", + "description": "Returns fresh headlines for one CBS News section. `section` is required and is one of `main`, `us`, `world`, `politics`, `moneywatch`, `health`, `entertainment`, `science`, `technology` or `space`. Each item has a title and URL, and may also carry a summary, author, publication time and image.", "operationId": "cbsnews-headlines", "parameters": [ { @@ -255356,7 +268370,7 @@ }, "/cbsnews/news": { "get": { - "description": "Returns fresh CBS News top stories from its public RSS feed.", + "description": "Returns the latest CBS News top stories, with no input needed. Each item has a title and canonical URL, and may also carry a summary, author, publication time and image.", "operationId": "cbsnews-news", "produces": [ "application/json" @@ -255394,7 +268408,7 @@ }, "/cbsnews/sections": { "get": { - "description": "Returns the live-verified public CBS News RSS section inventory used by cbsnews-headlines.", + "description": "Lists the ten CBS News sections accepted by `cbsnews-headlines`: `main`, `us`, `world`, `politics`, `moneywatch`, `health`, `entertainment`, `science`, `technology` and `space`. Each has a `slug`, a display `name` and the feed `url`.", "operationId": "cbsnews-sections", "produces": [ "application/json" @@ -255420,7 +268434,7 @@ }, "/cbssports/article": { "get": { - "description": "Returns public CBS Sports article metadata and body paragraphs from a canonical cbssports.com//news/ URL.", + "description": "Returns a CBS Sports article by `url`, a canonical `https://www.cbssports.com//news//` address, including `nfl/draft/news/` and fantasy football news: title, description, publication and update times, authors, lead image and body `paragraphs`. Video, scores, schedule and player pages are rejected. `paywalled` is omitted because the articles are free.", "operationId": "cbssports-article", "parameters": [ { @@ -255480,7 +268494,7 @@ }, "/cbssports/author": { "get": { - "description": "Returns one CBS Sports writer's public profile: name, title, headshot, bio, X/Twitter link, and their recent articles.", + "description": "Returns a CBS Sports writer's profile, identified by `slug` (such as `david-cobb`) or a `cbssports.com/writers//` `url`; exactly one is required and an unknown slug returns not-found. The response has name, title, headshot, bio, X/Twitter link and about 15 recent articles with title, URL and summary. Profile fields the page lacks are omitted.", "operationId": "cbssports-author", "parameters": [ { @@ -255546,7 +268560,7 @@ }, "/cbssports/headlines": { "get": { - "description": "Returns fresh headlines from one public CBS Sports per-sport RSS feed.", + "description": "Returns fresh headlines from one CBS Sports per-sport feed. `section` is required and takes one of 21 slugs, such as `nfl`, `college-basketball`, `soccer`, `ufc`, `betting` or `general`. Each item has a title and URL, and may carry a summary, author, publication time and image.", "operationId": "cbssports-headlines", "parameters": [ { @@ -255623,7 +268637,7 @@ }, "/cbssports/news": { "get": { - "description": "Returns fresh CBS Sports top stories from its public headlines RSS feed.", + "description": "Returns the current CBS Sports headlines across every sport, with no input needed: news stories, analysis columns and picks or predictions articles. Only article links are returned; video, scores, schedule and player pages are filtered out. Items have `title` and `url`, plus `summary`, `published_at` and `author` when provided.", "operationId": "cbssports-news", "produces": [ "application/json" @@ -255661,7 +268675,7 @@ }, "/cbssports/sections": { "get": { - "description": "Returns the live-verified public CBS Sports per-sport RSS feed inventory used by cbssports-headlines.", + "description": "Lists the 21 CBS Sports per-sport sections accepted by `cbssports-headlines`, from `nfl`, `nba` and `soccer` to `betting`, `prediction` and `general`. Each has a `slug`, a display `name` and the feed `url`. A feed can include a story from a neighbouring sport, and off-season ones such as `olympics` can be weeks or months old.", "operationId": "cbssports-sections", "produces": [ "application/json" @@ -256203,7 +269217,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Chewy product's full normalized detail: name, brand, description, images, price, stock, rating and its star-count breakdown, category breadcrumbs, customer questions and answers, and customer reviews. id is the numeric id from a chewy.com PDP URL, e.g. 185468 from https://www.chewy.com/frisco-lion-mane-dog-cat-costume/dp/185468 -- also the same value a chewy_category response's products[].part_number field carries for that product's own default variant. The response also carries the item's shipping weight and package dimensions as Chewy states them, its per-order purchase limit, and any promotions currently attached to it (each with a type such as \"Spend $X\" or \"BOGO\", plus short and long descriptions).", + "description": "Returns one Chewy product's full detail: name, brand, description, images, price, stock, rating and its star-count breakdown, category breadcrumbs, customer questions and answers, and customer reviews. id is the numeric id from a chewy.com PDP URL, e.g. 185468 from https://www.chewy.com/frisco-lion-mane-dog-cat-costume/dp/185468 -- also the same value a chewy_category response's products[].part_number field carries for that product's own default variant. The response also carries the item's shipping weight and package dimensions as Chewy states them, its per-order purchase limit, and any promotions currently attached to it (each with a type such as \"Spend $X\" or \"BOGO\", plus short and long descriptions).", "operationId": "chewy-product", "parameters": [ { @@ -256510,7 +269524,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of a Chewy keyword search's normalized product listing (price, autoship price/discount, stock, rating, images), plus embedded facets. q is free-text search keywords, e.g. \"salmon dog food\". A generic query that strongly matches one of Chewy's own categories (e.g. \"dog food\", \"cat litter\", \"leash\") is transparently redirected to that category's listing, the same real results a chewy.com visitor would see -- source_url reflects the actual listing fetched. sort and filter narrow/reorder the listing; every facets[].value paired with one of that facet's options[].value from any prior response is a valid filter key:value pair.", + "description": "Returns one page of a Chewy keyword search's product listing (price, autoship price/discount, stock, rating, images), plus embedded facets. q is free-text search keywords, e.g. \"salmon dog food\". A generic query that strongly matches one of Chewy's own categories (e.g. \"dog food\", \"cat litter\", \"leash\") is transparently redirected to that category's listing, the same real results a chewy.com visitor would see -- source_url reflects the actual listing fetched. sort and filter narrow/reorder the listing; every facets[].value paired with one of that facet's options[].value from any prior response is a valid filter key:value pair.", "operationId": "chewy-search", "parameters": [ { @@ -256831,7 +269845,7 @@ }, "/chicagotribune/headlines": { "get": { - "description": "Returns fresh headlines from one public Chicago Tribune section page.", + "description": "Returns headlines from one Chicago Tribune section page. `section` is required and takes one of 60 slugs, such as `local-news`, `crime-public-safety`, `chicago-bears`, `restaurants-food-drink` or `naperville-sun`. Each story has a title, article URL, publication time, byline, excerpt and image where the card shows them. Most sections give about 10 stories.", "operationId": "chicagotribune-headlines", "parameters": [ { @@ -256941,7 +269955,7 @@ }, "/chicagotribune/news": { "get": { - "description": "Returns the current Chicago Tribune top stories from the public homepage.", + "description": "Returns the current Chicago Tribune top stories from its homepage, with no input needed. Each has a title and canonical article URL, plus publication time, byline, excerpt and lead image where the story card shows them.", "operationId": "chicagotribune-news", "produces": [ "application/json" @@ -256973,7 +269987,7 @@ }, "/chicagotribune/sections": { "get": { - "description": "Returns the public Chicago Tribune editorial section inventory.", + "description": "Lists the 60 Chicago Tribune sections accepted by `chicagotribune-headlines`, spanning news, suburban papers, opinion, sports teams and arts, such as `crime-public-safety`, `daily-southtown`, `chicago-cubs` and `theater`. Each has a `slug`, display `name` and page `url`. Tag pages and hubs that repeat the homepage are not included.", "operationId": "chicagotribune-sections", "produces": [ "application/json" @@ -258551,7 +271565,7 @@ "consumes": [ "application/json" ], - "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`.", + "description": "Returns 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": [ { @@ -258955,7 +271969,7 @@ "consumes": [ "application/json" ], - "description": "Returns the related-items shelf the store renders on an item's detail page. Defaults: `country=us`, `lang=en`.", + "description": "Returns the related-items shelf shown on a Chrome Web Store item's page. `id` is the required 32-character item id; `country` and `lang` default to `us` and `en`. Each card has name, publisher, category, rating, rating count, users, summary, icon and URL. An unknown or removed id returns 404.", "operationId": "chromewebstore-similar", "parameters": [ { @@ -259032,7 +272046,7 @@ "consumes": [ "application/json" ], - "description": "Returns item-name suggestions for a search prefix, drawn from the top store-search results. Defaults: `num=8`, `country=us`, `lang=en`.", + "description": "Returns search-term suggestions for a Chrome Web Store prefix given in `term`, up to `num` (default 8), with `country` and `lang` defaulting to `us` and `en`. Suggestions are the distinct item names of the top store-search results for that prefix, each returned as a `term`.", "operationId": "chromewebstore-suggest", "parameters": [ { @@ -259561,7 +272575,7 @@ "consumes": [ "application/json" ], - "description": "Searches Chrono24's luxury-watch marketplace by free-text keyword, or browses one brand's (optionally narrowed to one model's) current listings, returning normalized result cards: title, price with currency, seller type, seller country, promotional badge, image, and the listing URL to pass to chrono24-listing. At least one of query or brand is required. Optional advanced-search filters (condition, used_or_new, case_material, dial_color, bracelet_material, movement_type, gender, watch_type, stock_info) narrow results further; each filter's accepted values are discoverable from chrono24-facets and echoed back in the response's filters field.", + "description": "Searches Chrono24's luxury-watch marketplace by free-text keyword, or browses one brand's (optionally narrowed to one model's) current listings, returning result cards: title, price with currency, seller type, seller country, promotional badge, image, and the listing URL to pass to chrono24-listing. At least one of query or brand is required. Optional advanced-search filters (condition, used_or_new, case_material, dial_color, bracelet_material, movement_type, gender, watch_type, stock_info) narrow results further; each filter's accepted values are discoverable from chrono24-facets and echoed back in the response's filters field.", "operationId": "chrono24-search", "parameters": [ { @@ -259858,7 +272872,7 @@ }, "/cna/article": { "get": { - "description": "Returns public CNA article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a CNA (Channel NewsAsia) article by `url`, a canonical `channelnewsasia.com` address such as `/singapore/-` or `/commentary/-`: title, description, publication and update times, section, authors, image and the body `paragraphs`. No paywalled or gated content was found during validation.", "operationId": "cna-article", "parameters": [ { @@ -259912,7 +272926,7 @@ }, "/cna/author": { "get": { - "description": "Returns one CNA correspondent's or contributor's public profile: name, job title, biography, contact email, and their recent bylined articles.", + "description": "Returns a CNA correspondent's or contributor's profile, identified by `slug` (such as `aqil-haziq-mahmud`) or a `channelnewsasia.com/author/` `url`; exactly one is required. The response has name, job title, bio, email, image and the latest page of bylined articles, each with title, URL and label. External Commentary contributors usually have only a name and articles.", "operationId": "cna-author", "parameters": [ { @@ -259972,7 +272986,7 @@ }, "/cna/headlines": { "get": { - "description": "Returns fresh headlines from one public CNA section.", + "description": "Returns fresh CNA headlines for one section. `section` is required and is `asia`, `business`, `singapore`, `sport` or `world`. Each item has a title and URL, and may also carry a summary, author, publication time and image.", "operationId": "cna-headlines", "parameters": [ { @@ -260027,7 +273041,7 @@ }, "/cna/news": { "get": { - "description": "Returns fresh CNA (Channel NewsAsia) top stories from its public RSS feed.", + "description": "Returns the latest CNA (Channel NewsAsia) top stories, with no input needed. Each item has a title and canonical URL, and may also carry a summary, author, publication time and image.", "operationId": "cna-news", "produces": [ "application/json" @@ -260059,7 +273073,7 @@ }, "/cna/sections": { "get": { - "description": "Returns the public CNA editorial section inventory used by the headlines endpoint.", + "description": "Lists the five CNA sections accepted by `cna-headlines`: `asia`, `business`, `singapore`, `sport` and `world`. Each has a `slug`, a display `name` and the feed `url`.", "operationId": "cna-sections", "produces": [ "application/json" @@ -260448,7 +273462,7 @@ }, "/cnet/headlines": { "get": { - "description": "Returns fresh CNET headlines from one public topic feed.", + "description": "Returns fresh CNET headlines for one topic. `section` is required and takes a topic slug such as `ai`, `deals`, `smart-home`, `electric-vehicles` or `tv-and-movies`; an invalid value returns a 400 error. Each item has a title and URL, and may also carry a summary, author, publication time and image.", "operationId": "cnet-headlines", "parameters": [ { @@ -260549,7 +273563,7 @@ }, "/cnet/news": { "get": { - "description": "Returns fresh CNET top stories from the public news feed.", + "description": "Returns the latest CNET top stories, with no input needed. Each item has a title, canonical URL, summary, publication time and author name when CNET provides them.", "operationId": "cnet-news", "produces": [ "application/json" @@ -260587,7 +273601,7 @@ }, "/cnet/sections": { "get": { - "description": "Returns the public CNET topic taxonomy accepted by the headlines endpoint.", + "description": "Lists the 51 CNET topics accepted by `cnet-headlines`: top-level and second-level topics with a recently updated feed, plus `ai`, `deals` and `tv-and-movies`. Each has a `slug`, a display `name` and the feed `url`. Deeper sub-topics are not separate sections; `internet` means Home Internet and `security` means Home Security.", "operationId": "cnet-sections", "produces": [ "application/json" @@ -260837,7 +273851,7 @@ "consumes": [ "application/json" ], - "description": "Returns a CNN live story's title, description, update time, and chronological post updates. Provide a canonical cnn.com live-news URL.", + "description": "Returns a CNN live story from its canonical cnn.com live-news `url`: title, description, last update time and the posts in chronological order. Each post has an id, title, paragraphs of text, and published and updated times.", "operationId": "cnn-live-story", "parameters": [ { @@ -260906,7 +273920,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized CoinGecko category rows from the public categories page. This endpoint supports the documented `vs_currency` enum.", + "description": "Lists CoinGecko coin categories, up to `limit` rows (default and max 100), priced in the `vs_currency` you choose. Each row has its rank, id, slug, name, URL, 1h, 24h and 7d percentage changes, market cap, 24h volume and coin count, where CoinGecko shows them.", "operationId": "coingecko-categories", "parameters": [ { @@ -261032,7 +274046,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized coin rows from a CoinGecko public category page. This endpoint supports the documented `vs_currency` enum.", + "description": "Lists the coins in one CoinGecko category, identified by the required `slug` such as `stablecoins`. Paged with `page` (default 1) and `limit` (default and max 100), priced in `vs_currency`. Each coin has rank, symbol, price, 1h to 30d changes, 24h volume, market cap and fully diluted valuation.", "operationId": "coingecko-category-coins", "parameters": [ { @@ -261178,7 +274192,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized chain rows from the CoinGecko public website chains table. This endpoint supports the documented `vs_currency` enum.", + "description": "Lists blockchains from CoinGecko's chains table, up to `limit` rows (default and max 100), in the `vs_currency` you pick. Each chain has its rank, id, name, URL, logo, top gainers, 24h, 7d and 30d changes, 24h volume, TVL, dominance percent and coin count, where shown.", "operationId": "coingecko-chains", "parameters": [ { @@ -261304,7 +274318,7 @@ "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.", + "description": "Returns sections from a CoinGecko chain detail page. Sections are omitted when not present. This endpoint supports the documented `vs_currency` enum.", "operationId": "coingecko-chain", "parameters": [ { @@ -261444,7 +274458,7 @@ "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.", + "description": "Returns 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": [ { @@ -261728,7 +274742,7 @@ "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.", + "description": "Returns profile stats and market rows from a CoinGecko exchange page. This endpoint supports the documented `vs_currency` enum.", "operationId": "coingecko-exchange", "parameters": [ { @@ -261868,7 +274882,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized exchange rows from CoinGecko public website exchange tables. This endpoint supports the documented `vs_currency` enum.", + "description": "Lists CoinGecko exchanges from one table chosen by `kind`: `spot` (default), `dex`, `derivatives` or `perp_dex`. Paged with `page` and `limit` (default and max 100). Each exchange has rank, id, name, URL, logo, and, where shown, a trust score and 24h volume in `vs_currency`.", "operationId": "coingecko-exchanges", "parameters": [ { @@ -262012,7 +275026,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized rows from CoinGecko's public crypto gainers and losers table. This endpoint supports the documented `vs_currency` enum.", + "description": "Returns CoinGecko's top crypto gainers and top losers as two separate arrays, `gainers` and `losers`, each up to `limit` rows (default 20, max 100). Each coin has its rank, symbol, name, price in `vs_currency`, 24h percentage change and 24h volume.", "operationId": "coingecko-gainers-losers", "parameters": [ { @@ -262138,7 +275152,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized global market metrics from CoinGecko's public charts page.", + "description": "Returns CoinGecko's global crypto market snapshot: total market cap in USD with its 24-hour and 1-year change, Bitcoin market cap, Bitcoin and Ethereum dominance, stablecoin market cap and share, and the number of coins, exchanges and categories tracked. Takes no parameters.", "operationId": "coingecko-global", "produces": [ "application/json" @@ -262185,7 +275199,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized global chart series from public CoinGecko website JSON endpoints.", + "description": "Returns a time series for one global crypto metric from CoinGecko: total market cap (default), Bitcoin dominance, altcoin market cap or DeFi market cap. Choose a `range` from `24h` to `max` (default `90d`) and cap points per series with `limit` (default 120, max 500). Each point has a timestamp, datetime and value.", "operationId": "coingecko-global-charts", "parameters": [ { @@ -262267,7 +275281,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized article cards from CoinGecko Learn public pages.", + "description": "Lists article cards from CoinGecko Learn, optionally narrowed by `category` (`all` by default, `latest`, `guides`, `reviews`, `api` and others), up to `limit` (default 20, max 50). Each card has title, URL, image, category, excerpt, author, published date and, where present, rating score, text and votes.", "operationId": "coingecko-learn-articles", "parameters": [ { @@ -262338,7 +275352,7 @@ "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.", + "description": "Returns cryptocurrency market rows from CoinGecko. This endpoint supports the documented `vs_currency` enum and is not intended for real-time trading.", "operationId": "coingecko-markets", "parameters": [ { @@ -262476,7 +275490,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized rows from CoinGecko's public new cryptocurrencies table. This endpoint supports the documented `vs_currency` enum.", + "description": "Lists newly listed cryptocurrencies from CoinGecko, paged with `page` (default 1) and `limit` (default and max 100), priced in `vs_currency`. Each coin has its rank, symbol, name, chain, price, 1h and 24h changes, 24h volume, fully diluted valuation and when it was last added.", "operationId": "coingecko-new-coins", "parameters": [ { @@ -262608,7 +275622,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized article cards from CoinGecko's public news page.", + "description": "Returns recent crypto news cards from CoinGecko, up to `limit` articles (default 20, max 50). Each article has its title, URL, image URL, summary, publisher and `published_text`, plus the coins it mentions with their id, name, symbol, URL and `change_percent` when present.", "operationId": "coingecko-news", "parameters": [ { @@ -262663,7 +275677,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized NFT collection rows from a CoinGecko public NFT category page. This endpoint supports the documented `vs_currency` enum.", + "description": "Lists NFT collections in one CoinGecko NFT category, identified by the required `slug` such as `metaverse`. Paged with `page` and `limit` (default and max 100). Each collection has chain, floor price and market cap in native and USD terms, 24h volume, 24h sales, and 24h, 7d and 30d changes.", "operationId": "coingecko-nft-category", "parameters": [ { @@ -262809,7 +275823,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized NFT collection rows from the CoinGecko public website NFT table. This endpoint supports the documented `vs_currency` enum.", + "description": "Lists NFT collections from CoinGecko's main NFT table, paged with `page` (default 1) and `limit` (default and max 100). Each collection has rank, name, chain, floor price, market cap and 24h volume in native and USD terms, 24h sales, and 24h, 7d and 30d percentage changes.", "operationId": "coingecko-nfts", "parameters": [ { @@ -262941,7 +275955,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized CoinGecko search sections from the public website search JSON. Empty valid searches return empty arrays.", + "description": "Searches CoinGecko for the required query `q` and returns matches in separate sections: `coins`, `categories`, `markets`, `nft_contracts`, `asset_platforms` and `posts`, each up to `limit` rows (default 10, max 50). Every section is always an array, and a search with no matches returns empty arrays.", "operationId": "coingecko-search", "parameters": [ { @@ -263004,7 +276018,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized rows from CoinGecko's public incoming token unlocks page.", + "description": "Returns CoinGecko's list of upcoming token unlocks, up to 100 rows. Each row has the coin's name, symbol, rank, price, 1-hour, 24-hour and 7-day change and market cap, the share of supply already released, and the next unlock's amount, percentage, USD value and time remaining.", "operationId": "coingecko-token-unlocks", "parameters": [ { @@ -263059,7 +276073,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized entity rows from CoinGecko's public crypto treasuries tables. This endpoint supports the documented `vs_currency` enum.", + "description": "Lists entities that hold crypto treasuries, filtered by `asset` (`all`, `bitcoin`, `ethereum`, `solana`, `bnb`, `xrp`, `tron`) and `holder_type` (`all`, `companies`, `governments`), up to `limit` (default and max 100). Setting both filters to non-`all` values is rejected. Rows show holdings, cost, current value, mNAV and 30-day activity.", "operationId": "coingecko-treasuries", "parameters": [ { @@ -263211,7 +276225,7 @@ "consumes": [ "application/json" ], - "description": "Returns deduped trending coins and categories from the public CoinGecko highlights page. This endpoint supports the documented `vs_currency` enum.", + "description": "Returns trending coins and trending categories from CoinGecko's highlights, deduplicated by slug, each section up to `limit` rows (default 20, max 50). Items carry name, URL and, where CoinGecko shows them, price in `vs_currency` and 1h, 24h and 7d percentage changes.", "operationId": "coingecko-trending", "parameters": [ { @@ -263337,7 +276351,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Cole Haan (https://www.colehaan.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Cole Haan (https://www.colehaan.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "colehaan-collections", "parameters": [ { @@ -263400,7 +276414,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Cole Haan (https://www.colehaan.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Cole Haan (https://www.colehaan.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "colehaan-collection-products", "parameters": [ { @@ -263477,7 +276491,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Cole Haan (https://www.colehaan.com). The storefront URL is fixed server-side.", + "description": "Lists Cole Haan static pages, with `page` (from 1) and `limit` (default 50, max 250). Each page has handle, title, URL, plain-text content and timestamps. If `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`, so fetch a single page for its content.", "operationId": "colehaan-pages", "parameters": [ { @@ -263540,7 +276554,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Cole Haan (https://www.colehaan.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one Cole Haan static page by its `handle`: id, title, URL, plain-text content, and created, published and updated times. A missing handle returns 404. When `transport_mode` is `ssr_embedded`, `id` is omitted and the content is plain text taken from the page's rich-text blocks.", "operationId": "colehaan-page", "parameters": [ { @@ -263603,7 +276617,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Cole Haan's (https://www.colehaan.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Cole Haan's (https://www.colehaan.com) product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "colehaan-products", "parameters": [ { @@ -263666,7 +276680,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Cole Haan (https://www.colehaan.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Cole Haan (https://www.colehaan.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "colehaan-product", "parameters": [ { @@ -263729,7 +276743,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Cole Haan (https://www.colehaan.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Cole Haan (https://www.colehaan.com) product handle. The storefront URL is fixed server-side.", "operationId": "colehaan-product-recommendations", "parameters": [ { @@ -263810,7 +276824,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Cole Haan's (https://www.colehaan.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Cole Haan's (https://www.colehaan.com) predictive search. The storefront URL is fixed server-side.", "operationId": "colehaan-search-suggest", "parameters": [ { @@ -264000,7 +277014,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Cole Haan (https://www.colehaan.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Cole Haan (https://www.colehaan.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "colehaan-store", "produces": [ "application/json" @@ -264044,7 +277058,7 @@ }, "/collider/article": { "get": { - "description": "Returns public Collider article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Collider article by its `url`, which must be a single-segment `https://collider.com//` address. The response has the title, description, publish and update times, section, authors, lead image and body `paragraphs`. Section hubs and video or author pages are rejected as invalid parameters.", "operationId": "collider-article", "parameters": [ { @@ -264104,7 +277118,7 @@ }, "/collider/author": { "get": { - "description": "Returns a Collider author's byline metadata, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns a Collider author profile for a `url` of the form `https://collider.com/author//`. The response has the name, title, image, biography, `social_links` (type and URL) and the roughly 20 latest articles on the profile. Paginated author URLs are rejected, so older articles are not available.", "operationId": "collider-author", "parameters": [ { @@ -264262,7 +277276,7 @@ }, "/collider/news": { "get": { - "description": "Returns fresh Collider top stories from its public RSS feed.", + "description": "Lists the latest Collider stories, about 10 items. Each item has its title, canonical URL, summary, publish time, author names (co-authors are joined with a comma) and lead image. Takes no parameters.", "operationId": "collider-news", "produces": [ "application/json" @@ -264300,7 +277314,7 @@ }, "/collider/sections": { "get": { - "description": "Returns the public Collider RSS section inventory used by the headlines endpoint.", + "description": "Lists the Collider section slugs that `collider-headlines` accepts, such as `movie-news`, `tv-reviews`, `trailers`, `interviews`, `horror` and `video-games`. Each entry has the `slug`, display `name` and feed `url`. Takes no parameters.", "operationId": "collider-sections", "produces": [ "application/json" @@ -264569,7 +277583,7 @@ "consumes": [ "application/json" ], - "description": "Fetch a single disclosure report by its filing_url (as returned by", + "description": "Returns one US Senate disclosure report from the `filing_url` found by the stock-disclosures search, passed as `url`. Supports annual reports, periodic transaction reports and due date extension notices. Output has filer, filing date, `parts` with their rows, and a `transactions` list. House PDFs and paper filings return a validation error.", "operationId": "congress-report", "parameters": [ { @@ -264632,7 +277646,7 @@ "consumes": [ "application/json" ], - "description": "Search public congressional stock disclosure filings (House or Senate)", + "description": "Searches congressional stock-disclosure filings for the House (default) or the Senate via `chamber`. House needs `member`; Senate takes `first_name`, `last_name`, `filer_type`, state and `report_type` filters, and `from`/`to` dates. Each result has member, office, filing year, filing type and `filing_url`. Paged by `page` and `limit` (default 50, max 500).", "operationId": "congress-stock-disclosures", "parameters": [ { @@ -265584,7 +278598,7 @@ "consumes": [ "application/json" ], - "description": "Searches CourtListener's public opinion-search index by text and returns normalized opinion-result metadata with a cursor for the next page. The endpoint uses CourtListener's anonymous public search data and does not retrieve authenticated opinion detail, dockets, judges, alerts, or account data.", + "description": "Searches CourtListener's opinion-search index by text and returns opinion-result metadata with a cursor for the next page. The endpoint does not return opinion detail, dockets, judges, alerts, or account data.", "operationId": "courtlistener-search", "parameters": [ { @@ -265651,7 +278665,7 @@ }, "/cricinfo/calendar": { "get": { - "description": "Returns the dated international match calendar currently published by Cricinfo. It includes match-day names and the associated series labels.", + "description": "Returns the dated international cricket calendar that Cricinfo currently publishes, with no parameters. Each event has its ISO date, the match name such as a fixture and venue, and any series labels for that day. The response also gives the event count.", "operationId": "cricinfo-calendar", "produces": [ "application/json" @@ -265809,7 +278823,7 @@ }, "/cricinfo/live": { "get": { - "description": "Returns the current public live-score feed, including live, upcoming, and recently completed match cards with their canonical scorecard URLs.", + "description": "Returns Cricinfo's current live-score list with no parameters, covering live, upcoming and recently completed matches. Each match has its title, format, state, status text, start date, series, both teams with scores, and a scorecard `url` you can pass to the match endpoint.", "operationId": "cricinfo-live-matches", "produces": [ "application/json" @@ -266013,7 +279027,7 @@ }, "/cricinfo/rankings": { "get": { - "description": "Returns ICC rankings (team or player) from a Cricinfo rankings page. `url` must be a canonical `https://www.cricinfo.com/rankings/...` URL.", + "description": "Returns ICC rankings (team or player) from a Cricinfo rankings page, given as the required `url`, which must be a canonical `https://www.cricinfo.com/rankings/...` address. Each entry has its rank, name, country, rating, points, matches and format, plus a team or player id.", "operationId": "cricinfo-rankings", "parameters": [ { @@ -266073,7 +279087,7 @@ }, "/cricinfo/records": { "get": { - "description": "Returns a bounded normalized table from a public Cricinfo records page. `record` is a relative Statsguru record path such as `batting/most_runs_career.html`. `class` must be one of `1`, `2`, `3`, `4`, `5`, `6`, `8`, `9`, `10`, `11`, `12`, `20`, `21`, `22`, or `23`.", + "description": "Returns a bounded table from a Cricinfo records page. `record` is a relative Statsguru record path such as `batting/most_runs_career.html`. `class` must be one of `1`, `2`, `3`, `4`, `5`, `6`, `8`, `9`, `10`, `11`, `12`, `20`, `21`, `22`, or `23`.", "operationId": "cricinfo-records", "parameters": [ { @@ -266217,7 +279231,7 @@ }, "/cricinfo/rss": { "get": { - "description": "Returns a normalized public Cricinfo RSS feed. `url` must be one of Cricinfo's official news, live-score, country-story, or player-story RSS URLs.", + "description": "Returns a Cricinfo RSS feed. `url` must be one of Cricinfo's official news, live-score, country-story, or player-story RSS URLs.", "operationId": "cricinfo-rss", "parameters": [ { @@ -266429,7 +279443,7 @@ }, "/cricinfo/stats": { "get": { - "description": "Returns a bounded normalized Statsguru table. `class` must be one of `1`, `2`, `3`, `4`, `5`, `6`, `8`, `9`, `10`, `11`, `12`, `20`, `21`, `22`, or `23`; `type` must be one of `batting`, `bowling`, `fielding`, `allround`, `fow`, `team`, `official`, or `aggregate`; `view` may be `innings`, `match`, `series`, `ground`, `host`, `opposition`, `year`, or `season`.", + "description": "Returns a bounded Statsguru table. `class` must be one of `1`, `2`, `3`, `4`, `5`, `6`, `8`, `9`, `10`, `11`, `12`, `20`, `21`, `22`, or `23`; `type` must be one of `batting`, `bowling`, `fielding`, `allround`, `fow`, `team`, `official`, or `aggregate`; `view` may be `innings`, `match`, `series`, `ground`, `host`, `opposition`, `year`, or `season`.", "operationId": "cricinfo-stats", "parameters": [ { @@ -266732,7 +279746,7 @@ }, "/cricinfo/team/schedule": { "get": { - "description": "Returns a team's recent fixtures and results from its dedicated page. `url` must be a canonical `https://www.cricinfo.com/team/...` URL.", + "description": "Returns a cricket team's recent fixtures and results from its Cricinfo team page, given as the required `url`, which must be a canonical `https://www.cricinfo.com/team/...` address. The response has the team's id, name and slug, and matches with series, format, state, status text, team scores and scorecard URL.", "operationId": "cricinfo-team-schedule", "parameters": [ { @@ -266792,7 +279806,7 @@ }, "/cricinfo/teams": { "get": { - "description": "Returns Cricinfo's grouped public team directory, including international, domestic, and franchise team identities.", + "description": "Returns Cricinfo's team directory with no parameters, organised into titled groups such as popular international teams. Each team has its id, name, slug, abbreviation, country, logo URL and primary colour where Cricinfo gives them, and whether it is a national side.", "operationId": "cricinfo-teams", "produces": [ "application/json" @@ -267226,7 +280240,7 @@ }, "/ctvnews/sections": { "get": { - "description": "Returns the public CTV News section inventory (national topic sections and local newsroom sections) used by the headlines endpoint.", + "description": "Lists the 27 CTV News sections accepted by `ctvnews-headlines`: 12 national topic sections such as `canada`, `politics` and `sci-tech`, and 15 local newsrooms such as `toronto`, `calgary` and `atlantic`. Video, photo, weather, podcast, sponsored and shopping hubs are not included.", "operationId": "ctvnews-sections", "produces": [ "application/json" @@ -267359,7 +280373,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of Culver's own restaurant-URL sitemap (~1,121 restaurants). Each entry's slug is the value GET /culvers/store takes.", + "description": "Returns one page of Culver's restaurant index, which covers about 1,121 restaurants. `page` starts at 1 and `page_size` runs 1 to 500 (default 100). Each entry has a `slug`, the value the `/culvers/store` endpoint takes, and the restaurant's URL. The total and page counts are included.", "operationId": "culvers-directory", "parameters": [ { @@ -267550,7 +280564,7 @@ "consumes": [ "application/json" ], - "description": "Returns the items in one Culver's menu category, each with name, description, image, and a link to Culver's nutrition guide. Category slugs come from GET /culvers/categories. Prices are not published on the national catalog -- Culver's only prices items once a specific restaurant is selected client-side, and no credential-free per-restaurant pricing source was found; see GET /culvers/item for full modifier/topping detail.", + "description": "Returns the items in one Culver's menu category, each with name, description, image, and a link to Culver's nutrition guide. Category slugs come from GET /culvers/categories. Prices are not published on the national catalog -- Culver's only prices items once a specific restaurant is selected; see GET /culvers/item for full modifier/topping detail.", "operationId": "culvers-menu", "parameters": [ { @@ -267758,7 +280772,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of a CVS.com OTC (over-the-counter) retail category, subcategory, or brand page's product grid: normalized products with title, brand, image, current/original price, and sponsored/featured/new-product flags; the total result count; and the facets (brand, color, size, price range, and other category-specific attributes, each with its selectable values and result counts) available to filter the page further. Covers the non-prescription retail catalog only. path is the segment of a page URL after \"/shop/\", e.g. \"beauty\" (top-level category), \"health-medicine/allergy-sinus\" (subcategory), or \"brand-shop/s/safe-home\" (brand page); a full https://www.cvs.com/shop/... URL or a \"/shop/...\" path is also accepted. Any of these can also carry an optional facet-filter suffix in the site's own URL shape, e.g. \"beauty/makeup/eyes/q/CoverGirl/Black/brpc\" to filter to brand CoverGirl and color Black -- see the response's facets field for which values/type codes a given category supports; filter values are case-sensitive exactly as the site renders them. page is a 1-indexed page number (default 1). sort is an optional result order matching the site's own Sort By control. CVS.com is only available from US/US-territory egress; a request from an unsupported region returns an upstream error rather than an empty result.", + "description": "Returns one page of a CVS.com OTC (over-the-counter) retail category, subcategory, or brand page's product grid: products with title, brand, image, current/original price, and sponsored/featured/new-product flags; the total result count; and the facets (brand, color, size, price range, and other category-specific attributes, each with its selectable values and result counts) available to filter the page further. Covers the non-prescription retail catalog only. path is the segment of a page URL after \"/shop/\", e.g. \"beauty\" (top-level category), \"health-medicine/allergy-sinus\" (subcategory), or \"brand-shop/s/safe-home\" (brand page); a full https://www.cvs.com/shop/... URL or a \"/shop/...\" path is also accepted. Any of these can also carry an optional facet-filter suffix in the site's own URL shape, e.g. \"beauty/makeup/eyes/q/CoverGirl/Black/brpc\" to filter to brand CoverGirl and color Black -- see the response's facets field for which values/type codes a given category supports; filter values are case-sensitive exactly as the site renders them. page is a 1-indexed page number (default 1). sort is an optional result order matching the site's own Sort By control. CVS.com is only available from US and US-territory locations; a request served from an unsupported region returns an upstream error rather than an empty result.", "operationId": "cvs-category", "parameters": [ { @@ -267963,7 +280977,7 @@ "consumes": [ "application/json" ], - "description": "Performs a keyword search across CVS.com's non-prescription retail/OTC catalog and returns one page of results: normalized products with title, brand, image, current/original price, and sponsored/featured/new-product flags; the total result count; and the facets (brand, color, size, price range, and other attributes, each with its selectable values and result counts) available to filter the results further. This is the same product-search backend cvs-category reads, just reached by keyword instead of by category/brand path. Covers the non-prescription retail catalog only. q is the search keyword or phrase, required. page is a 1-indexed page number (default 1). sort is an optional result order matching cvs-category's own Sort By values. CVS.com is only available from US/US-territory egress; a request from an unsupported region returns an upstream error rather than an empty result.", + "description": "Performs a keyword search across CVS.com's non-prescription retail/OTC catalog and returns one page of results: products with title, brand, image, current/original price, and sponsored/featured/new-product flags; the total result count; and the facets (brand, color, size, price range, and other attributes, each with its selectable values and result counts) available to filter the results further. Covers the non-prescription retail catalog only. q is the search keyword or phrase, required. page is a 1-indexed page number (default 1). sort is an optional result order matching cvs-category's own Sort By values. CVS.com is only available from US and US-territory locations; a request served from an unsupported region returns an upstream error rather than an empty result.", "operationId": "cvs-search", "parameters": [ { @@ -268258,7 +281272,7 @@ }, "/dailycaller/headlines": { "get": { - "description": "Returns the newest headlines listed on one public The Daily Caller section page.", + "description": "Returns the newest headlines, about 40, from one Daily Caller section page. `section` is required (`politics`, `world`, `energy`, `opinion`, `patriots` and others); any other value returns a 400. Items have a title, URL, lead image and sometimes a `type` such as `opinion`. Section pages carry no publish time or byline.", "operationId": "dailycaller-headlines", "parameters": [ { @@ -268330,7 +281344,7 @@ }, "/dailycaller/news": { "get": { - "description": "Returns fresh The Daily Caller top stories from its public RSS feed.", + "description": "Returns about 25 of the newest Daily Caller top stories, mixed across sections. Each item has its title, URL, author, publication time (RFC 3339, UTC) and lead image. It takes no parameters; use the headlines endpoint when you want a single section.", "operationId": "dailycaller-news", "produces": [ "application/json" @@ -268368,7 +281382,7 @@ }, "/dailycaller/sections": { "get": { - "description": "Returns the live-verified The Daily Caller section inventory used by the headlines endpoint.", + "description": "Lists the 22 Daily Caller section slugs that the headlines endpoint accepts, from `politics` and `world` to `opinion` and `video`, each with its `name` and section page `url`. Sponsored content is not offered. A few sections such as `satire`, `two-sides` and `video` publish rarely, so their newest items can be months old.", "operationId": "dailycaller-sections", "produces": [ "application/json" @@ -268394,7 +281408,7 @@ }, "/dailyexpress/article": { "get": { - "description": "Returns public Daily Express article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Daily Express article by its canonical article `url`. The response has the title, description, publish and update times, section, authors, lead image, body `paragraphs` and a `paywalled` flag. Subscriber-only or blocked articles return an upstream error instead of partial text.", "operationId": "dailyexpress-article", "parameters": [ { @@ -268502,7 +281516,7 @@ }, "/dailyexpress/headlines": { "get": { - "description": "Returns fresh headlines from one public Daily Express RSS section.", + "description": "Returns the latest Daily Express headlines for one section. `section` is required and takes a slug such as `news`, `royal`, `showbiz-tv`, `formula-1` or `city-business`. Each item has its title, URL, summary, publication time and image.", "operationId": "dailyexpress-headlines", "parameters": [ { @@ -268581,7 +281595,7 @@ }, "/dailyexpress/news": { "get": { - "description": "Returns fresh Daily Express stories from the public News RSS feed.", + "description": "Returns the current Daily Express top stories. Each item has its title, URL, summary, publication time and image. Takes no parameters; use `dailyexpress-headlines` to read a single section instead.", "operationId": "dailyexpress-news", "produces": [ "application/json" @@ -268613,7 +281627,7 @@ }, "/dailyexpress/sections": { "get": { - "description": "Returns the live public Daily Express RSS section inventory.", + "description": "Lists the Daily Express sections that `dailyexpress-headlines` accepts, such as `news`, `uk`, `royal`, `sport` and `personal-finance`. Each entry has a stable `slug`, a display `name` and the section `url`. Takes no parameters.", "operationId": "dailyexpress-sections", "produces": [ "application/json" @@ -268693,7 +281707,7 @@ }, "/dailykos/headlines": { "get": { - "description": "Returns current stories from one verified Daily Kos category feed. Use dailykos-sections to discover the complete accepted category set.", + "description": "Returns the current stories for one Daily Kos category. `section` is required and takes one of 24 slugs such as `news/elections`, `news/courts`, `cartoon` or `announcements`; any other value returns a 400. Some categories can be empty, which comes back as an empty `items` list.", "operationId": "dailykos-headlines", "parameters": [ { @@ -268767,7 +281781,7 @@ }, "/dailykos/news": { "get": { - "description": "Returns current staff-authored Daily Kos stories from its public RSS feed.", + "description": "Returns the current staff-written Daily Kos stories, about 10 items, each with title, URL, summary, publication time and author. Community stories and image URLs are left out because the site licenses them separately. Takes no parameters.", "operationId": "dailykos-news", "produces": [ "application/json" @@ -268799,7 +281813,7 @@ }, "/dailykos/sections": { "get": { - "description": "Returns the 24 live-verified public WordPress categories accepted by dailykos-headlines.", + "description": "Lists the 24 Daily Kos categories accepted by `dailykos-headlines`, including nested slugs such as `news/elections` and `news/whitehouse`. Each entry has the `slug`, display `name` and category `url`. Dynamic tag archives are not part of this set.", "operationId": "dailykos-sections", "produces": [ "application/json" @@ -268825,7 +281839,7 @@ }, "/dailymail/article": { "get": { - "description": "Returns public Daily Mail article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Daily Mail article by its canonical `url`, which must contain an `article-` path segment. The response has the title, description, publish and update times, section, authors, lead image, body `paragraphs` and a `paywalled` flag.", "operationId": "dailymail-article", "parameters": [ { @@ -268940,7 +281954,7 @@ }, "/dailymail/headlines": { "get": { - "description": "Returns fresh headlines from one public Daily Mail RSS section.", + "description": "Returns the latest Daily Mail headlines for one section. `section` is required and must be one of `home`, `news`, `sport`, `tvshowbiz`, `health`, `femail`, `travel`, `sciencetech`, `money`, `debate`, `us` or `australia`. Each item has its title, URL, summary, publication time and image.", "operationId": "dailymail-headlines", "parameters": [ { @@ -269002,7 +282016,7 @@ }, "/dailymail/news": { "get": { - "description": "Returns fresh Daily Mail top stories from its public RSS feed.", + "description": "Returns the current Daily Mail top stories. Each item has its title, URL, summary, publication time and image. Takes no parameters; use `dailymail-headlines` for a single section.", "operationId": "dailymail-news", "produces": [ "application/json" @@ -269040,7 +282054,7 @@ }, "/dailymail/sections": { "get": { - "description": "Returns the live-verified public Daily Mail RSS section inventory.", + "description": "Lists the 12 Daily Mail sections accepted by `dailymail-headlines`: `home`, `news`, `sport`, `tvshowbiz`, `health`, `femail`, `travel`, `sciencetech`, `money`, `debate`, `us` and `australia`. Each entry has the `slug`, display `name` and feed `url`.", "operationId": "dailymail-sections", "produces": [ "application/json" @@ -269126,7 +282140,7 @@ }, "/dailymaverick/headlines": { "get": { - "description": "Returns up to 21 current article cards from the public category JSON endpoint. Use dailymaverick-sections to discover valid slugs.", + "description": "Returns up to 21 current story cards for one Daily Maverick category. `section` is required and takes one of 51 slugs such as `maverick-news`, `business-maverick`, `opinionistas`, `politics` or `sport`. Each item has its title, URL and type, plus summary, publication time, author and image when the outlet provides them.", "operationId": "dailymaverick-headlines", "parameters": [ { @@ -269233,7 +282247,7 @@ }, "/dailymaverick/news": { "get": { - "description": "Returns current article and opinionista links from Daily Maverick's public news sitemap.", + "description": "Lists recent Daily Maverick articles and opinionista pieces from a rolling set of the newest entries. Each item has its title, URL, `type`, publication time and, when available, summary, author and image. Videos, cartoons and other non-article pages are excluded.", "operationId": "dailymaverick-news", "produces": [ "application/json" @@ -269271,7 +282285,7 @@ }, "/dailymaverick/sections": { "get": { - "description": "Lists all 51 live-verified article-bearing categories accepted by dailymaverick-headlines.", + "description": "Lists the 51 article-bearing Daily Maverick categories accepted by `dailymaverick-headlines`, such as `africa`, `maverick-citizen`, `op-eds` and `sci-tech`. Each entry has the `slug`, `name` and category `url`. Empty, media-only and other non-story categories are omitted; checked 2026-09-28.", "operationId": "dailymaverick-sections", "produces": [ "application/json" @@ -269309,7 +282323,7 @@ }, "/dailyrecord/article": { "get": { - "description": "Returns public Daily Record article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Daily Record article by its canonical article `url`. The response has the title, description, publish and update times, section, authors, lead image, body `paragraphs` and a `paywalled` flag. Subscriber-only or blocked articles return an upstream error.", "operationId": "dailyrecord-article", "parameters": [ { @@ -269363,7 +282377,7 @@ }, "/dailyrecord/author": { "get": { - "description": "Returns one Daily Record author's public profile: name, job title, bio, email, X/Twitter handle, and their recent articles.", + "description": "Returns a Daily Record author profile, found by `slug` (for example `paul-hutcheon`) or by a canonical `url`; send exactly one of the two. The response has the name, job title, bio, email, X/Twitter link and recent articles with their label. Contact details the page does not list are simply absent.", "operationId": "dailyrecord-author", "parameters": [ { @@ -269423,7 +282437,7 @@ }, "/dailyrecord/headlines": { "get": { - "description": "Returns fresh headlines from one public Daily Record section.", + "description": "Returns the latest Daily Record headlines for one section. `section` is required and must be one of `news`, `scotland`, `uk-world-news`, `sport`, `football`, `showbiz`, `lifestyle`, `money`, `travel` or `in-your-area`. Every item has its title and URL; the `news` section also carries summary, publication time and image.", "operationId": "dailyrecord-headlines", "parameters": [ { @@ -269483,7 +282497,7 @@ }, "/dailyrecord/news": { "get": { - "description": "Returns fresh Daily Record stories from the public News RSS feed.", + "description": "Returns the current Daily Record top stories. Each item has its title, URL, summary, publication time and image. Takes no parameters; use `dailyrecord-headlines` for a single section.", "operationId": "dailyrecord-news", "produces": [ "application/json" @@ -269515,7 +282529,7 @@ }, "/dailyrecord/sections": { "get": { - "description": "Returns the public Daily Record editorial section inventory.", + "description": "Lists the Daily Record sections accepted by `dailyrecord-headlines`, such as `news`, `scotland`, `uk-world-news`, `football` and `in-your-area`. Each entry has a stable `slug`, a display `name` and the section `url`. Takes no parameters.", "operationId": "dailyrecord-sections", "produces": [ "application/json" @@ -269806,7 +282820,7 @@ }, "/dailystaruk/sections": { "get": { - "description": "Returns the public Daily Star (UK) editorial section inventory used by dailystaruk-headlines.", + "description": "Lists the Daily Star (UK) sections accepted by `dailystaruk-headlines`, including nested slugs such as `sport/football`, `news/weird-news` and `tech/gaming`. Each entry has the `slug`, `name` and feed `url`. Feeds were checked on 2026-09-25 and return up to about 25 entries.", "operationId": "dailystaruk-sections", "produces": [ "application/json" @@ -269946,7 +282960,7 @@ }, "/dailywire/headlines": { "get": { - "description": "Returns current Daily Wire headlines for one content-vertical section, sourced from the site's own homepage feed.", + "description": "Returns current Daily Wire headlines for one content vertical. `section` is required and takes `news`, `opinion`, `dw-opinion`, `analysis`, `news-and-commentary`, `news-and-analysis`, `exclusive`, `entertainment`, `original`, `upstream`, `sports` or `mi-x-dw`. An empty result means the front page does not currently feature that vertical.", "operationId": "dailywire-headlines", "parameters": [ { @@ -270008,7 +283022,7 @@ }, "/dailywire/news": { "get": { - "description": "Returns fresh Daily Wire top stories from its public RSS feed.", + "description": "Returns the current Daily Wire top stories. Each item has its title, URL, summary, publication time, author and image. Takes no parameters; use `dailywire-headlines` to filter by content vertical.", "operationId": "dailywire-news", "produces": [ "application/json" @@ -270046,7 +283060,7 @@ }, "/dailywire/sections": { "get": { - "description": "Returns the live-sampled public Daily Wire content-vertical inventory used by the headlines endpoint.", + "description": "Lists the Daily Wire content verticals that `dailywire-headlines` accepts, such as `news`, `opinion`, `analysis`, `entertainment`, `upstream` and `sports`. Each entry has a `slug`, `name` and `url`. Sampled on 2026-09-24, so the list may not be exhaustive.", "operationId": "dailywire-sections", "produces": [ "application/json" @@ -270075,7 +283089,7 @@ "consumes": [ "application/json" ], - "description": "Lists available read-only scraped datasets and the capabilities supported by each dataset.", + "description": "Lists the read-only scraped datasets available, with no parameters. Each item has its `id`, name, description and the capabilities it supports: `search`, `detail`, `facets`, `nearby`, `history`, `trending` or `changes`. It reads stored data and does not start a live scrape.", "operationId": "datasets-list", "produces": [ "application/json" @@ -270116,7 +283130,7 @@ "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`.", + "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). Enrichment-derived facets include a `coverage` object with the number and share of filtered listings carrying that dimension; buckets stay empty below the 20% minimum visibility gate. Coverage above the gate may still be partial. group_by enum: `country`, `market`, `admin1`, `locality`, `room_type`, `property_type`.", "operationId": "datasets-airbnb-markets-facets", "parameters": [ { @@ -270421,7 +283435,7 @@ "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, 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`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", + "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). Enrichment-derived groupings include a `coverage` object with the number and share of filtered listings carrying that dimension; the 20% minimum gate is not a completeness guarantee, and counts still describe classified rows only. 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`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", "operationId": "datasets-airbnb-markets-search", "parameters": [ { @@ -270556,7 +283570,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the Apple Podcasts shows dataset. Facet enum: `genre`, `genre_id`, `country`, `content_advisory_rating`, `run_id`.", + "description": "Returns value counts for one field of the Apple Podcasts shows dataset, chosen by the required `facet`: `genre`, `genre_id`, `country`, `content_advisory_rating` or `run_id`. The counts honour the search filters (`q`, `genre`, `country`, `min_track_count` and others) and cover the top 50 values.", "operationId": "datasets-apple-podcasts-shows-facets", "parameters": [ { @@ -270662,7 +283676,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled Apple Podcasts show record by id from dataset id enum value `apple-podcasts-shows`.", + "description": "Returns one Apple Podcasts show from the dataset by its numeric show `id`. The record has show and artist names, genres, country, episode count (`track_count`), release date, feed URL, artwork and Apple URL. An id not in the dataset returns 404.", "operationId": "datasets-apple-podcasts-shows-item", "parameters": [ { @@ -270841,7 +283855,7 @@ "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`. Platform enum (Apple device platforms, ios charts only): `phone`, `pad`, `mac`. Sort enum: `rank`, `rank_desc`, `date_desc`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", + "description": "Searches daily top-chart snapshots from the iOS App Store and Google Play (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`. Platform enum (Apple device platforms, ios charts only): `phone`, `pad`, `mac`. Sort enum: `rank`, `rank_desc`, `date_desc`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", "operationId": "datasets-apps-charts-search", "parameters": [ { @@ -270977,7 +283991,7 @@ "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`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", + "description": "Searches user reviews from the iOS App Store and Google Play (one document per review). Store enum: `ios`, `android`. Sort enum: `recent`, `score_desc`, `score_asc`, `helpful_desc`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", "operationId": "datasets-apps-reviews-search", "parameters": [ { @@ -271222,13 +284236,14 @@ "consumes": [ "application/json" ], - "description": "Returns the values of one field of the BBB businesses index (dataset id enum value `bbb-businesses`) with the number of records for each, honoring the same filters as search. Facet enum: `country`, `category`, `state`, `city`, `rating`, `accredited`, `entity_type`, `run_id`, `alert_title`, `has_alerts`. country enum: `us`, `ca`. Values come most frequent first, 50 per page by default; page through all of them with `limit` (up to 1000) and `offset` while `has_more` is true. The response also returns `total` (records matching the filters), `total_values` (distinct values) and `missing` (records with no value for the facet), so the counts can be checked against the total. Values of the `accredited` and `has_alerts` facets are `1` (true) and `0` (false). Use it to split a search that would exceed 10,000 records: `facet=state` lists every state and province, and `facet=city` with a `state` filter lists every city in it.", + "description": "Returns the values of one field of the BBB businesses index (dataset id enum value `bbb-businesses`) with the number of records for each, honoring the same filters as search. Facet enum: `country`, `address_country`, `category`, `state`, `city`, `rating`, `accredited`, `entity_type`, `run_id`, `alert_title`, `has_alerts`. The `country` facet is parsed from profile URLs; `address_country` is derived from business addresses. Both enums are `us`, `ca`. Values come most frequent first, 50 per page by default; page through all of them with `limit` (up to 1000) and `offset` while `has_more` is true. The response also returns `total` (records matching the filters), `total_values` (distinct values) and `missing` (records with no value for the facet), so the counts can be checked against the total. Values of the `accredited` and `has_alerts` facets are `1` (true) and `0` (false). Use it to split a search that would exceed 10,000 records: `facet=state` lists every state and province, and `facet=city` with a `state` filter lists every city in it.", "operationId": "datasets-bbb-businesses-facets", "parameters": [ { - "description": "Facet enum: country, category, state, city, rating, accredited, entity_type, run_id, alert_title, has_alerts", + "description": "Facet enum: country, address_country, category, state, city, rating, accredited, entity_type, run_id, alert_title, has_alerts", "enum": [ "country", + "address_country", "category", "state", "city", @@ -271279,6 +284294,16 @@ "name": "country", "type": "string" }, + { + "description": "Country filter derived from the business address, separate from the profile-URL country (case-insensitive). Enum: us, ca", + "enum": [ + "us", + "ca" + ], + "in": "query", + "name": "address_country", + "type": "string" + }, { "description": "Exact 2-letter state or province code as in the profile URL, e.g. tx (case-insensitive). Use the values returned by facet=state", "in": "query", @@ -271463,7 +284488,7 @@ "consumes": [ "application/json" ], - "description": "Searches the BBB (Better Business Bureau) businesses index (dataset id enum value `bbb-businesses`) — business profiles crawled from bbb.org's own search/category-browse pages: computed A+-F letter-grade rating, paid-accreditation status, category, contact info, business details, operating hours, and products/services. Complaints, full reviews, and the full \"reasons for rating\"/service-area detail are NOT embedded here; each record instead carries complaints_url/reviews_url/more_info_url pointing at the live bbb-business-complaints/bbb-business-reviews/bbb-business-more-info endpoints for on-demand lookup. rating enum: `A+`, `A`, `A-`, `B+`, `B`, `B-`, `C+`, `C`, `C-`, `D+`, `D`, `D-`, `F`. Each record also stores BBB's complaint and review counts (total_complaints and related fields) and the BBB alerts on the profile (has_alerts, alert_titles, alerts[] with full text), so businesses with complaints or with a given alert can be listed without calling the live endpoints; these fields are filled as records are re-crawled and are absent on a record not refreshed since they were added. sort enum: `relevance`, `rating_desc`, `rating_asc`, `accredited_first`, `name_asc`, `years_in_business_desc`, `complaints_desc`. country enum: `us`, `ca`. A query returns at most 10,000 records; to read more, split it with the values and counts from the facets endpoint (for example one request per state, then per city) so each part stays under that limit. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100); the item and facets endpoints cost 1.", + "description": "Searches the BBB (Better Business Bureau) businesses index (dataset id enum value `bbb-businesses`) — business profiles crawled from bbb.org's own search/category-browse pages: computed A+-F letter-grade rating, paid-accreditation status, category, contact info, business details, operating hours, and products/services. Complaints, full reviews, and the full \"reasons for rating\"/service-area detail are NOT embedded here; each record instead carries complaints_url/reviews_url/more_info_url pointing at the live bbb-business-complaints/bbb-business-reviews/bbb-business-more-info endpoints for on-demand lookup. rating enum: `A+`, `A`, `A-`, `B+`, `B`, `B-`, `C+`, `C`, `C-`, `D+`, `D`, `D-`, `F`. Each record also stores BBB's complaint and review counts (total_complaints and related fields) and the BBB alerts on the profile (has_alerts, alert_titles, alerts[] with full text), so businesses with complaints or with a given alert can be listed without calling the live endpoints; these fields are filled as records are re-crawled and are absent on a record not refreshed since they were added. `country` is parsed from the profile URL; `address_country` is derived separately from the business address. Both enums are `us`, `ca`. sort enum: `relevance`, `rating_desc`, `rating_asc`, `accredited_first`, `name_asc`, `years_in_business_desc`, `complaints_desc`. A query returns at most 10,000 records; to read more, split it with the values and counts from the facets endpoint (for example one request per state, then per city) so each part stays under that limit. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100); the item and facets endpoints cost 1.", "operationId": "datasets-bbb-businesses-search", "parameters": [ { @@ -271488,6 +284513,16 @@ "name": "country", "type": "string" }, + { + "description": "Country filter derived from the business address, separate from the profile-URL country (case-insensitive). Enum: us, ca", + "enum": [ + "us", + "ca" + ], + "in": "query", + "name": "address_country", + "type": "string" + }, { "description": "Exact 2-letter state or province code as in the profile URL, e.g. tx (case-insensitive). Use the values returned by facets?facet=state", "in": "query", @@ -272167,7 +285202,7 @@ "consumes": [ "application/json" ], - "description": "Searches theatrical box-office records from public Box Office Mojo charts and title pages, stored in a search index. Filter by title id, year, franchise/brand/genre, gross band, lifetime top-1000 membership, hydration status, and worldwide/domestic gross ranges. Sort enum: `relevance`, `worldwide_desc`, `domestic_desc`, `peak_worldwide_desc`, `lifetime_rank_asc`, `year_desc`, `year_asc`. gross_band enum: `under_50m`, `50_100m`, `100_250m`, `250_500m`, `500m_1b`, `over_1b`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", + "description": "Searches theatrical box-office records from Box Office Mojo charts and title pages. Filter by title id, year, franchise/brand/genre, gross band, lifetime top-1000 membership, hydration status, and worldwide/domestic gross ranges. Sort enum: `relevance`, `worldwide_desc`, `domestic_desc`, `peak_worldwide_desc`, `lifetime_rank_asc`, `year_desc`, `year_asc`. gross_band enum: `under_50m`, `50_100m`, `100_250m`, `250_500m`, `500m_1b`, `over_1b`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", "operationId": "datasets-boxofficemojo-search", "parameters": [ { @@ -272344,7 +285379,7 @@ }, "/datasets/chrome-extensions/changes": { "get": { - "description": "Returns recent change observations. Change type enum: `users`, `rating`, `rating_count`, `version`, `developer`, `permissions`, `privacy`, `status`.", + "description": "Lists recent change observations across Chrome Web Store items in the dataset, optionally for one `change_type`: `users`, `rating`, `rating_count`, `version`, `developer`, `permissions`, `privacy` or `status`. Returns up to `limit` (default 100, max 500), each with the item's name, category, developer, observed time and the figures that changed.", "operationId": "datasets-chrome-extensions-changes", "parameters": [ { @@ -272583,7 +285618,7 @@ }, "/datasets/chrome-extensions/history/{id}": { "get": { - "description": "Returns chronological change-only observations for a Chrome Web Store item.", + "description": "Returns the change history of one Chrome Web Store item by `id`. A point is recorded only when a tracked field changed, with users, rating, version, permissions and the list of `change_types`. Narrow with `from` and `to` (YYYY-MM-DD); `limit` defaults to 365, max 1000.", "operationId": "datasets-chrome-extensions-history", "parameters": [ { @@ -272655,7 +285690,7 @@ }, "/datasets/chrome-extensions/items/{id}": { "get": { - "description": "Returns one stored extension, theme or legacy app snapshot by its 32-character Chrome Web Store id.", + "description": "Returns the stored record of one Chrome Web Store extension, theme or app by its 32-character `id`. It has name, `item_type`, category, users, rating, version, developer and disclosed email, declared permissions, host access flags, privacy disclosures and screenshots, taken from the latest observation.", "operationId": "datasets-chrome-extensions-item", "parameters": [ { @@ -273507,7 +286542,7 @@ "consumes": [ "application/json" ], - "description": "Searches the DoorDash merchant-location directory (dataset id `doordash-stores`), built by grid-tiling the anonymous guest Explore feed and hydrating every discovered store. Identity and marketplace fields (name, marketplace tags, price range, ratings, DashPass eligibility) come from Explore; contact, address, and coordinates come from the hydration pass, so a store that has not been hydrated yet can appear without them. `display_status`, `display_asap_time`, `asap_available`, and `pickup_available` are a point-in-time observation of the PICKUP surface at crawl time, not a durable capability. Geographic coverage is best-effort: Explore caps at 40 stores per call with no pagination, so the census saturates a tile rather than draining it. Supports full-text `q`, `country`/`state`/`city`/`tag` filters, `dash_pass_only`, `min_price`/`max_price`/`min_rating`, `lat`/`lon`/`radius_m` radius filtering, and `sort` (relevance, rating, distance, distance_asc). `sort=relevance` ranks by text-match score when `q` is supplied; without `q` it sorts by store name. Use `pagination=cursor` and the returned `next_cursor` to enumerate beyond the 10,000-result offset window against a point-in-time snapshot. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", + "description": "Searches the DoorDash merchant-location directory (dataset id `doordash-stores`). Identity and marketplace fields (name, marketplace tags, price range, ratings, DashPass eligibility) are available for each store; contact, address, and coordinates can be missing for a store that has not been fully processed yet. `display_status`, `display_asap_time`, `asap_available`, and `pickup_available` are a point-in-time observation of the PICKUP surface at crawl time, not a durable capability. Geographic coverage is best-effort. Supports full-text `q`, `country`/`state`/`city`/`tag` filters, `dash_pass_only`, `min_price`/`max_price`/`min_rating`, `lat`/`lon`/`radius_m` radius filtering, and `sort` (relevance, rating, distance, distance_asc). `sort=relevance` ranks by text-match score when `q` is supplied; without `q` it sorts by store name. Use `pagination=cursor` and the returned `next_cursor` to enumerate beyond the 10,000-result offset window against a point-in-time snapshot. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", "operationId": "datasets-doordash-stores-search", "parameters": [ { @@ -273668,7 +286703,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the Facebook Pages dataset. Facet enum: `category`, `discovery_source`.", + "description": "Returns value counts for the Facebook Pages dataset, by the required `facet`: `category` or `discovery_source`. Search filters such as `q`, `min_likes` and `has_email` narrow the counts. Default order is most common first; `order=value_asc` pages alphabetically using `after` and `next_after`, with `limit` up to 200.", "operationId": "datasets-facebook-pages-facets", "parameters": [ { @@ -273842,7 +286877,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Facebook Page record by page id from dataset id enum value `facebook-pages`.", + "description": "Returns one public Facebook Page contact record from the dataset by `page_id`: title, username, category, address, website, email, phones, WhatsApp, like count and source URL. `contact_observed_at` marks when contact fields were last seen complete. A Page not in the dataset returns 404.", "operationId": "datasets-facebook-pages-item", "parameters": [ { @@ -274316,7 +287351,7 @@ "consumes": [ "application/json" ], - "description": "Returns one enriched GitHub user record by login from dataset id enum value `github-users`.", + "description": "Returns one GitHub user from the dataset by `login`, with profile fields (name, bio, company, blog, location, email), follower, repo and 30-day activity counts, `influence_tier`, `rank_score`, geo, linked social accounts and bot or organisation flags. An unknown login returns 404.", "operationId": "datasets-github-users-item", "parameters": [ { @@ -274733,7 +287768,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the Goodreads authors dataset. Facet enum: `genres`, `run_id`.", + "description": "Returns value counts over the Goodreads authors dataset for the required `facet`, either `genres` or `run_id`. Filters `q`, `name`, `genre`, `run_id`, `min_rating` (0 to 5) and `min_ratings_count` narrow the result, which lists the top 50 values with their counts.", "operationId": "datasets-goodreads-authors-facets", "parameters": [ { @@ -274830,7 +287865,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled Goodreads author profile record by id from dataset id enum value `goodreads-authors`.", + "description": "Returns one Goodreads author from the dataset by numeric author `id`. The record has name, about text, genres, birth and death dates, website, average rating, ratings and reviews counts, image and Goodreads URL. An id not in the dataset returns 404.", "operationId": "datasets-goodreads-authors-item", "parameters": [ { @@ -275172,7 +288207,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled Goodreads book record by id from dataset id enum value `goodreads-books`.", + "description": "Returns one Goodreads book from the dataset by `id`. The record has title, authors, series, genres, format, page count, publisher, publication date, ISBN and ISBN-13, language, description, average rating with a one-to-five-star breakdown, and review counts. An unknown id returns 404.", "operationId": "datasets-goodreads-books-item", "parameters": [ { @@ -276463,7 +289498,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the Instagram users dataset. Facet enum: `is_verified`, `is_business_account`, `has_bio`, `has_external_url`, `category_name`, `source_tier`.", + "description": "Returns value counts for the Instagram users dataset by the required `facet`: `is_verified`, `is_business_account`, `has_bio`, `has_external_url`, `category_name` or `source_tier`. The counts follow the search filters, including follower ranges and creation dates, and cover up to 50 values.", "operationId": "datasets-instagram-users-facets", "parameters": [ { @@ -276651,7 +289686,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Instagram user record by username from dataset id enum value `instagram-users`.", + "description": "Returns one Instagram user from the dataset by `username`, with or without a leading @, matched case-insensitively. The record has full name, biography, external URL, avatar, verified and business flags, category, followers, following, posts and follower-to-following ratio. An unknown user returns 404.", "operationId": "datasets-instagram-users-item", "parameters": [ { @@ -277119,7 +290154,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled job posting by its dataset posting id. Returns 404 when absent.", + "description": "Returns one crawled job posting by its dataset posting id, the `posting_id` of a search result. Alongside the posting itself, `seniority_level` is `entry`, `mid` or `senior`, and occupation fields appear only when title and skills support a reliable match. An id not in the index returns 404.", "operationId": "datasets-jobs-item", "parameters": [ { @@ -278683,7 +291718,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the Numbeo cities dataset. Facet enum: `country`.", + "description": "Returns city counts per country for the Numbeo cities dataset; `facet` is required and accepts only `country`. Narrow the counts with `q`, `country` and index thresholds such as `min_cost_of_living_index`, `min_safety_index` or `max_pollution_index`. Items are value and count pairs.", "operationId": "datasets-numbeo-cities-facets", "parameters": [ { @@ -278809,7 +291844,7 @@ "consumes": [ "application/json" ], - "description": "Returns one composite Numbeo city record by city slug from dataset id enum value `numbeo-cities`.", + "description": "Returns one Numbeo city from the dataset by `slug` such as `Los-Angeles`. The record has the city, country, `coverage` list and the cost of living, rent, quality of life, crime, safety, health care, pollution, traffic and property indices. Indices appear only where the city was ranked.", "operationId": "datasets-numbeo-cities-item", "parameters": [ { @@ -279016,7 +292051,7 @@ "consumes": [ "application/json" ], - "description": "Returns one composite Numbeo country record by country name from dataset id enum value `numbeo-countries`.", + "description": "Returns one Numbeo country from the dataset by `country`, spelled as Numbeo does, such as `Vietnam`. The record has a `coverage` list and country-level indices for cost of living, rent, quality of life, crime, safety, health care, pollution, traffic and property, present only where ranked.", "operationId": "datasets-numbeo-countries-item", "parameters": [ { @@ -279217,7 +292252,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the PitchBook advisors dataset. Facet enum: `service_type`, `hq_country`, `hq_state`, `run_id`.", + "description": "Returns value counts for the PitchBook advisors dataset by the required `facet`: `service_type`, `hq_country`, `hq_state` or `run_id`. The counts honour the search filters, including `q`, `min_year_founded` and `max_year_founded`, and list the top 50 values.", "operationId": "datasets-pitchbook-advisors-facets", "parameters": [ { @@ -279322,7 +292357,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled PitchBook advisor record by id from dataset id enum value `pitchbook-advisors`.", + "description": "Returns one PitchBook advisor from the dataset by `id`, such as `676215-64`. The record has name, description, service type, headquarters, founding year, website, contact, overview fields, serviced companies and deals, FAQs and data tables. An id not in the dataset returns 404.", "operationId": "datasets-pitchbook-advisors-item", "parameters": [ { @@ -279500,7 +292535,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the PitchBook companies dataset. Facet enum: `status`, `primary_industry`, `financing_status`, `ownership_status`, `hq_country`, `hq_state`, `run_id`.", + "description": "Returns value counts for the PitchBook companies dataset by the required `facet`: `status`, `primary_industry`, `financing_status`, `ownership_status`, `hq_country`, `hq_state` or `run_id`. Filters such as `q`, `min_year_founded` and `min_investor_count` apply, and the top 50 values come back.", "operationId": "datasets-pitchbook-companies-facets", "parameters": [ { @@ -279632,7 +292667,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled PitchBook company record by id from dataset id enum value `pitchbook-companies`.", + "description": "Returns one PitchBook company from the dataset by `id`, such as `752821-12`. The record has name, description, status, primary industry, financing and ownership status, headquarters, founding year, employees, investor count, latest deal type, website, FAQs and data tables. An unknown id returns 404.", "operationId": "datasets-pitchbook-companies-item", "parameters": [ { @@ -279835,7 +292870,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the PitchBook funds dataset. Facet enum: `fund_strategy`, `fund_status`, `run_id`.", + "description": "Returns value counts for the PitchBook funds dataset by the required `facet`: `fund_strategy`, `fund_status` or `run_id`. The search filters `q`, `fund_strategy`, `fund_status`, `min_vintage_year` and `max_vintage_year` apply to the counts, which list the top 50 values.", "operationId": "datasets-pitchbook-funds-facets", "parameters": [ { @@ -279933,7 +292968,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled PitchBook fund record by id from dataset id enum value `pitchbook-funds`.", + "description": "Returns one PitchBook fund from the dataset by `id`, such as `19719-91F`. The record has name, strategy, status, fund size, vintage year, managing firm, contact details and data tables such as limited partners and benchmarks. An id not in the dataset returns 404.", "operationId": "datasets-pitchbook-funds-item", "parameters": [ { @@ -280105,7 +293140,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the PitchBook investors dataset. Facet enum: `status`, `investor_type`, `hq_country`, `hq_state`, `run_id`.", + "description": "Returns value counts for the PitchBook investors dataset by the required `facet`: `status`, `investor_type`, `hq_country`, `hq_state` or `run_id`. The counts follow search filters including `q`, `min_portfolio_count` and `min_exits_count`, and show the top 50 values.", "operationId": "datasets-pitchbook-investors-facets", "parameters": [ { @@ -280217,7 +293252,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled PitchBook investor record by id from dataset id enum value `pitchbook-investors`.", + "description": "Returns one PitchBook investor from the dataset by `id`, such as `294471-37`. The record has name, description, investor type, status, headquarters, investment, portfolio and exit counts, contact and website, FAQs and data tables. An unknown id returns 404.", "operationId": "datasets-pitchbook-investors-item", "parameters": [ { @@ -280401,7 +293436,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the PitchBook limited partners dataset. Facet enum: `institution_type`, `hq_country`, `hq_state`, `run_id`.", + "description": "Returns value counts for the PitchBook limited partners dataset by the required `facet`: `institution_type`, `hq_country`, `hq_state` or `run_id`. Filters `q`, `min_year_founded` and `max_year_founded` also apply, and the top 50 values are returned.", "operationId": "datasets-pitchbook-limited-partners-facets", "parameters": [ { @@ -280506,7 +293541,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled PitchBook limited partner record by id from dataset id enum value `pitchbook-limited-partners`.", + "description": "Returns one PitchBook limited partner from the dataset by `id`, such as `864326-44`. The record has name, description, institution type, headquarters, founding year, commitments, contact and data tables. `faqs` can be empty, since PitchBook writes FAQs only for richer profiles. An unknown id returns 404.", "operationId": "datasets-pitchbook-limited-partners-item", "parameters": [ { @@ -280917,7 +293952,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled PlayStation Store record by product_id from dataset id enum value `playstation-games`.", + "description": "Returns one PlayStation Store game from the `playstation-games` dataset by product id such as `UP0001-PPSA01491_00-GAME000000000000`: name, publisher, genres, platforms, region, release date, base and discounted price with currency and discount end time, star rating and rating count, content rating, and edition and add-on counts. An id that is not in the dataset returns `404`.", "operationId": "datasets-playstation-games-item", "parameters": [ { @@ -281647,7 +294682,7 @@ "consumes": [ "application/json" ], - "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/twitter_url/pricing/makers are filled in as hydration runs. Sort enum: `relevance`, `votes_desc`, `launched_desc`, `launched_asc`, `rating_desc`, `best_rank_asc`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", + "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/twitter_url/pricing/makers are filled in over time. Sort enum: `relevance`, `votes_desc`, `launched_desc`, `launched_asc`, `rating_desc`, `best_rank_asc`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", "operationId": "datasets-producthunt-products-search", "parameters": [ { @@ -281998,7 +295033,7 @@ "consumes": [ "application/json" ], - "description": "Searches daily snapshots of each tracked subreddit's hot-feed post order, stored in a search index (one document per subreddit × snapshot × rank) so history accumulates. With no `date` the latest snapshot is returned (today's trending); pair `subreddit` with `sort=date_desc` for a subreddit's trending history over time. There is no score or comment-count field — the underlying credential-free scraper does not expose vote counts, so `rank` reflects Reddit's own hot-feed order rather than a locally computed score. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", + "description": "Searches daily snapshots of each tracked subreddit's hot-feed post order (one document per subreddit × snapshot × rank) so history accumulates. With no `date` the latest snapshot is returned (today's trending); pair `subreddit` with `sort=date_desc` for a subreddit's trending history over time. There is no score or comment-count field, so `rank` reflects Reddit's own hot-feed order rather than a locally computed score. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", "operationId": "datasets-reddit-trending-search", "parameters": [ { @@ -282214,7 +295249,7 @@ "consumes": [ "application/json" ], - "description": "Returns a company's normalized financial-statement history (income statement, balance sheet, cash flow) from the SEC companies dataset, newest fiscal year first. An unknown CIK or a company with no XBRL data returns an empty series rather than a 404 — most filers without a current ticker have no financial-statement history at all. `lines` keys are the same normalized concept names the live `/sec/financials` endpoint uses (e.g. `revenue`, `net_income`, `total_assets`); `ratios` keys include `gross_margin`, `operating_margin`, `net_margin`, `revenue_growth_yoy`, `current_ratio`, `debt_to_equity`, `free_cash_flow` where derivable. statement enum: `income`, `balance`, `cash_flow`. period enum: `annual`, `quarterly`.", + "description": "Returns a company's financial-statement history (income statement, balance sheet, cash flow) from the SEC companies dataset, newest fiscal year first. An unknown CIK or a company with no XBRL data returns an empty series rather than a 404 — most filers without a current ticker have no financial-statement history at all. `lines` keys are the same concept names the live `/sec/financials` endpoint uses (e.g. `revenue`, `net_income`, `total_assets`); `ratios` keys include `gross_margin`, `operating_margin`, `net_margin`, `revenue_growth_yoy`, `current_ratio`, `debt_to_equity`, `free_cash_flow` where derivable. statement enum: `income`, `balance`, `cash_flow`. period enum: `annual`, `quarterly`.", "operationId": "datasets-sec-companies-financials", "parameters": [ { @@ -282454,7 +295489,7 @@ "consumes": [ "application/json" ], - "description": "Searches SEC-reporting companies stored in a search index — normalized filing history, financial-statement rollups (latest annual/quarterly revenue, net income, total assets) and trailing-90-day insider (Form 3/4/5) activity. Sort enum: `relevance`, `name_asc`, `revenue_desc`, `net_income_desc`, `filing_recent_desc`, `insider_activity_desc`. `entity_type`, `sic`, `sic_description`, `exchange`, and `state_of_incorporation` are open filters over the exact values EDGAR reports for each filer (not a fixed enum) — discover real values via the matching facet. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", + "description": "Searches SEC-reporting companies — filing history, financial-statement rollups (latest annual/quarterly revenue, net income, total assets) and trailing-90-day insider (Form 3/4/5) activity. Sort enum: `relevance`, `name_asc`, `revenue_desc`, `net_income_desc`, `filing_recent_desc`, `insider_activity_desc`. `entity_type`, `sic`, `sic_description`, `exchange`, and `state_of_incorporation` are open filters over the exact values EDGAR reports for each filer (not a fixed enum) — discover real values via the matching facet. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).", "operationId": "datasets-sec-companies-search", "parameters": [ { @@ -283624,7 +296659,7 @@ "consumes": [ "application/json" ], - "description": "Returns one enriched Steam catalog record by appid from dataset id enum value `steam-games`.", + "description": "Returns one Steam game from the `steam-games` dataset by numeric appid: name, developers and publishers, genres and categories, price and discount, supported platforms, positive and negative review counts, owner estimates, average and median playtime, concurrent players, Metacritic score and language count. It reads the stored dataset and does not trigger a live scrape; an appid that is not in the dataset returns `404`.", "operationId": "datasets-steam-games-item", "parameters": [ { @@ -285407,7 +298442,7 @@ "consumes": [ "application/json" ], - "description": "Returns one crawled vehicle listing by id from dataset id enum value `vehicle-listings`. id is `:`, e.g. `carmax:28187774`.", + "description": "Returns one vehicle listing from the dataset by `id`, formatted `:`, such as `carmax:28187774`. The record has VIN, year, make, model, trim, mileage, price and previous price, colours, drivetrain, seller, location and first and last seen times. An unknown id returns 404.", "operationId": "datasets-vehicle-listings-item", "parameters": [ { @@ -285729,7 +298764,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the X users dataset. Facet enum: `is_blue_verified`, `has_bio`, `has_external_url`, `source_tier`.", + "description": "Returns value counts for the X users dataset by the required `facet`: `is_blue_verified`, `has_bio`, `has_external_url` or `source_tier`. The counts follow the search filters, including `q`, follower and ratio ranges, and creation or crawl dates. At most 50 values come back, largest count first.", "operationId": "datasets-x-users-facets", "parameters": [ { @@ -285891,7 +298926,7 @@ "consumes": [ "application/json" ], - "description": "Returns one X user record by username from dataset id enum value `x-users`.", + "description": "Returns one X user from the dataset by `username`, with or without a leading @. The record has name, bio, location, external URL, avatar and banner, followers, following, posts, likes, listed count, blue-verified flag and verified type. An unknown username returns 404; no live scrape runs.", "operationId": "datasets-x-users-item", "parameters": [ { @@ -286114,7 +299149,7 @@ "consumes": [ "application/json" ], - "description": "Returns terms aggregation counts for the YouTube creators dataset. Facet enum: `region`, `discovery_source`.", + "description": "Returns value counts for the YouTube creators dataset by the required `facet`: `region` or `discovery_source`. The counts honour the search filters, such as subscriber, video and view ranges and join or refresh dates, and cover the top 50 values.", "operationId": "datasets-youtube-creators-facets", "parameters": [ { @@ -286304,7 +299339,7 @@ "consumes": [ "application/json" ], - "description": "Returns one YouTube channel record by channel id from dataset id enum value `youtube-creators`.", + "description": "Returns one YouTube channel from the dataset by `channel_id`. The record has channel name and URL, bio, region, join date, links, profile picture, and subscriber, video and view counts, each with an availability flag. A channel not in the dataset returns 404.", "operationId": "datasets-youtube-creators-item", "parameters": [ { @@ -286554,7 +299589,7 @@ }, "/dawn/article": { "get": { - "description": "Returns public Dawn article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Dawn article by its canonical `url` in the form `https://www.dawn.com/news//`. The response has the title, description, publish and update times, section, authors, lead image and body `paragraphs`. Blocked or malformed pages return an upstream error.", "operationId": "dawn-article", "parameters": [ { @@ -286662,7 +299697,7 @@ }, "/dawn/headlines": { "get": { - "description": "Returns fresh headlines from one public Dawn section.", + "description": "Returns the latest Dawn headlines for one section. `section` is required and takes a slug such as `pakistan`, `pakistan-sindh`, `world-south-asia`, `business-finance`, `sport-cricket`, `opinion` or `prism`. Each item has its title, URL, summary, publication time and, when the outlet provides one, image.", "operationId": "dawn-headlines", "parameters": [ { @@ -286729,7 +299764,7 @@ }, "/dawn/news": { "get": { - "description": "Returns fresh Dawn (Pakistan) stories from the public RSS feed.", + "description": "Returns the current top stories from Dawn, the Pakistani newspaper. Each item has its title, URL, summary, publication time and, when the outlet provides one, image. Takes no parameters; use `dawn-headlines` for a single section.", "operationId": "dawn-news", "produces": [ "application/json" @@ -286902,7 +299937,7 @@ }, "/deadline/headlines": { "get": { - "description": "Returns fresh headlines from one public Deadline section or vertical feed.", + "description": "Returns the latest Deadline headlines for one section or vertical. `section` is required and takes one of 48 slugs, for example `film`, `tv`, `box-office`, `awards`, `casting`, `reviews` or `obituaries`. Each item has its title, URL, summary, publication time, author and image.", "operationId": "deadline-headlines", "parameters": [ { @@ -287000,7 +300035,7 @@ }, "/deadline/news": { "get": { - "description": "Returns fresh Deadline Hollywood Entertainment top stories from its public RSS feed.", + "description": "Returns the current Deadline Hollywood top stories from its main feed. Each item has its title, URL, summary, publication time, author and image. Takes no parameters; use `deadline-headlines` for a single section or vertical.", "operationId": "deadline-news", "produces": [ "application/json" @@ -287038,7 +300073,7 @@ }, "/deadline/sections": { "get": { - "description": "Returns the complete public section inventory accepted by /api/v1/deadline/headlines (both Deadline's editorial categories and its verticals).", + "description": "Lists the 48 Deadline sections accepted by `deadline-headlines`: 28 editorial categories such as `news`, `reviews` and `festivals`, and 20 verticals such as `film`, `tv`, `business` and `awards`. Each entry has the `slug`, `name` and feed `url`.", "operationId": "deadline-sections", "produces": [ "application/json" @@ -287552,7 +300587,7 @@ }, "/denverpost/article": { "get": { - "description": "Returns article metadata and paragraphs present in the public HTML response. Subscriber-only pages may expose only an anonymous preview; this service does not bypass access controls.", + "description": "Returns article metadata and paragraphs present on the public page. Subscriber-only pages may expose only an anonymous preview; this service does not bypass access controls.", "operationId": "denverpost-article", "parameters": [ { @@ -287606,7 +300641,7 @@ }, "/denverpost/author": { "get": { - "description": "Returns one author's public profile and the articles listed on its first page.", + "description": "Returns a Denver Post author's profile and the articles on the first page of their archive. Give exactly one of `slug` (for example `aldo-svaldi`) or `url` (a denverpost.com/author// link). The profile has name, job title, bio, email and Twitter handle where the page shows them; each article has a title, URL, summary and publication time.", "operationId": "denverpost-author", "parameters": [ { @@ -287666,7 +300701,7 @@ }, "/denverpost/headlines": { "get": { - "description": "Returns current headlines from one public editorial section or topic archive.", + "description": "Returns current headlines for one Denver Post section or topic archive. `section` is required and must be a slug from the sections endpoint, such as `business`, `denver-broncos`, `colorado` or `weather`; an invalid value returns an invalid-params error. Items carry title and URL, plus summary, author, publication time and image when the card shows them. Cards without a dated Denver Post article URL are skipped.", "operationId": "denverpost-headlines", "parameters": [ { @@ -287791,7 +300826,7 @@ }, "/denverpost/news": { "get": { - "description": "Returns current top stories from the public Denver Post homepage.", + "description": "Returns the article cards on the Denver Post homepage, about 91 when last checked, though the count varies as the site updates. Each item has a title and URL and can carry a summary, author, publication time, image and `type`. It takes no parameters.", "operationId": "denverpost-news", "produces": [ "application/json" @@ -287823,7 +300858,7 @@ }, "/denverpost/sections": { "get": { - "description": "Returns the live-verified public editorial section and topic archive values accepted by headlines.", + "description": "Lists the Denver Post slugs that the headlines endpoint accepts: 56 editorial sections and 19 topic archives, checked on 2026-09-30. Examples are `colorado`, `denver-broncos`, `economy` and `hiking`. Each entry has a `slug`, `name` and `url`. Branded content and cartoons are left out.", "operationId": "denverpost-sections", "produces": [ "application/json" @@ -287928,7 +300963,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Depop item-detail page: description, all photos, price, condition, brand, size, seller info, and a \"similar items\" carousel when the page has one. Public data sourced from Depop's own item pages.", + "description": "Returns a Depop item-detail page: description, all photos, price, condition, brand, size, seller info, and a \"similar items\" carousel when the page has one.", "operationId": "depop-item", "parameters": [ { @@ -288067,7 +301102,7 @@ "consumes": [ "application/json" ], - "description": "Searches Depop's resale-fashion marketplace by free-text keyword, with optional price, condition, colour, category, subcategory, gender, kids-department, brand, discount, and sort filters, returning normalized listing summaries (title, price, brand, condition, like count, photos, sizes), a pagination cursor, and the total matching count. Public data sourced from Depop's own search API.", + "description": "Searches Depop's resale-fashion marketplace by free-text keyword, with optional price, condition, colour, category, subcategory, gender, kids-department, brand, discount, and sort filters, returning listing summaries (title, price, brand, condition, like count, photos, sizes), a pagination cursor, and the total matching count.", "operationId": "depop-search", "parameters": [ { @@ -288739,7 +301774,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Discogs artist profile: real name, bio, links, name variations, aliases, and group memberships. Credential-free official Discogs database data.", + "description": "Returns a Discogs artist profile: real name, bio, links, name variations, aliases, and group memberships.", "operationId": "discogs-artist", "parameters": [ { @@ -288802,7 +301837,7 @@ "consumes": [ "application/json" ], - "description": "Returns an artist's paginated release/master credits (role, format, label, year, want/collection counts). Credential-free official Discogs database data.", + "description": "Returns the releases and masters credited to a Discogs artist, identified by the required `id`. Paged with `page` (default 1) and `per_page` (default 50, max 100). Each entry has its `id`, `type` (`release` or `master`), title, artist, role, format, label, year, thumbnail, and want and collection counts, alongside the total item count and page count.", "operationId": "discogs-artist-releases", "parameters": [ { @@ -288877,7 +301912,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Discogs label profile: profile text, contact info, parent label, and sub-labels. Credential-free official Discogs database data.", + "description": "Returns the profile of a Discogs label by its required label `id`: name, profile text, contact info, website URLs, images, data quality rating, and Discogs page URI. The parent label and the list of sub-labels are included, and the parent label appears only when the label has one.", "operationId": "discogs-label", "parameters": [ { @@ -288940,7 +301975,7 @@ "consumes": [ "application/json" ], - "description": "Returns a label's paginated release catalog (title, artist, format, catalog number, year). Credential-free official Discogs database data.", + "description": "Lists the releases on a Discogs label, identified by the required label `id`. Paged with `page` (default 1) and `per_page` (default 50, max 100). Each entry has its release `id`, title, artist, format, catalogue number (`catno`), status, year and thumbnail, and the response reports the total item count across all pages.", "operationId": "discogs-label-releases", "parameters": [ { @@ -289015,7 +302050,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Discogs master release: the version-agnostic grouping of a release across pressings/reissues (artists, tracklist, genres/styles, videos, images, marketplace stats). Credential-free official Discogs database data.", + "description": "Returns a Discogs master release: the version-agnostic grouping of a release across pressings/reissues (artists, tracklist, genres/styles, videos, images, marketplace stats).", "operationId": "discogs-master", "parameters": [ { @@ -289078,7 +302113,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Discogs release: artists, labels, formats, tracklist, credits, identifiers, videos, images, and community want/have/rating. Credential-free official Discogs database data (api.discogs.com).", + "description": "Returns a Discogs release: artists, labels, formats, tracklist, credits, identifiers, videos, images, and community want/have/rating.", "operationId": "discogs-release", "parameters": [ { @@ -289141,7 +302176,7 @@ "consumes": [ "application/json" ], - "description": "Searches Discogs releases, masters, artists, and labels. Credential-free official Discogs database data.", + "description": "Searches the Discogs database for releases, masters, artists and labels, optionally filtered to one `type`, with `page` and `per_page` (max 100). Release and master results carry country, year, formats, labels, genres, styles, catalog number and barcodes; artist and label results carry id, title and thumbnail.", "operationId": "discogs-search", "parameters": [ { @@ -289285,7 +302320,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Domino's US store's full build-your-own customization catalog, grouped by product category (Domino's own internal names, e.g. \"BuildYourOwnDomino\" for pizza, \"GSalad\" for garden salads): every selectable size, crust/flavor style, topping, and side, each with its own code, name, description, dietary/placement flags (e.g. Meat, Vege, Sauce, WholeOnly), and any other attributes Domino's attaches (e.g. ExclusiveGroup for mutually-exclusive options). Also returns cooking instructions (bake level, cut style, seasoning), grouped. Reads the same structured menu response as GET /dominos/menu, so it costs no additional upstream request. Store ids come from GET /dominos/store-locator. An unknown store id returns 404.", + "description": "Returns one Domino's US store's full build-your-own customization catalog, grouped by product category (Domino's own names, e.g. \"BuildYourOwnDomino\" for pizza, \"GSalad\" for garden salads): every selectable size, crust/flavor style, topping, and side, each with its own code, name, description, dietary/placement flags (e.g. Meat, Vege, Sauce, WholeOnly), and any other attributes Domino's attaches (e.g. ExclusiveGroup for mutually-exclusive options). Also returns cooking instructions (bake level, cut style, seasoning), grouped. Store ids come from GET /dominos/store-locator. An unknown store id returns 404.", "operationId": "dominos-customization", "parameters": [ { @@ -289348,7 +302383,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Domino's US store's full menu, normalized into a flat list of categories (each with a stable code/name path, e.g. \"Pizza > Specialty Pizzas\") and their items. Each item carries its code, name, description, and product type, plus every purchasable variant (size/style) with its own code, name, and price. Store ids come from GET /dominos/store-locator. An unknown store id returns 404.", + "description": "Returns one Domino's US store's full menu, as a flat list of categories (each with a stable code/name path, e.g. \"Pizza > Specialty Pizzas\") and their items. Each item carries its code, name, description, and product type, plus every purchasable variant (size/style) with its own code, name, and price. Store ids come from GET /dominos/store-locator. An unknown store id returns 404.", "operationId": "dominos-menu", "parameters": [ { @@ -290149,7 +303184,7 @@ "consumes": [ "application/json" ], - "description": "Returns location-aware DoorDash store metadata through the Android mobile guest flow. No DoorDash account or caller-supplied token is required.", + "description": "Returns public metadata for a DoorDash store by its numeric `store_id`, as seen from the delivery location given by the required `latitude` and `longitude`. The response has the name, URL, images, average rating, rating count, and menu section and item counts. Address, coordinates and price range appear only when DoorDash supplies them. Missing or out-of-range coordinates return `400`.", "operationId": "doordash-store", "parameters": [ { @@ -290631,7 +303666,7 @@ "consumes": [ "application/json" ], - "description": "Returns one event's metadata (league id, sport id, teams, status, start time) from DraftKings' credential-free public JSON. `event_id` is a numeric DraftKings event identifier (find it from an event's DraftKings Sportsbook page, or from the `id` field of an event returned by /draftkings/sportsbook/odds). The returned `league_id` is accepted by /draftkings/sportsbook/odds and /draftkings/sportsbook/futures. This endpoint does not include betting markets/odds.", + "description": "Returns one event's metadata (league id, sport id, teams, status, start time). `event_id` is a numeric DraftKings event identifier (find it from an event's DraftKings Sportsbook page, or from the `id` field of an event returned by /draftkings/sportsbook/odds). The returned `league_id` is accepted by /draftkings/sportsbook/odds and /draftkings/sportsbook/futures. This endpoint does not include betting markets/odds.", "operationId": "draftkings-event", "parameters": [ { @@ -290754,7 +303789,7 @@ "consumes": [ "application/json" ], - "description": "Returns one event's betting markets and selections for a specific market category, from DraftKings' credential-free public JSON. `event_id` is a numeric DraftKings event identifier (find it from the `id` field of an event returned by /draftkings/sportsbook/odds). `subcategory_id` selects the market category (e.g. game lines, a player-prop category, an alternate-line category) -- find one from the `subcategory_id` field on a market returned by /draftkings/sportsbook/odds, or from a DraftKings Sportsbook event page's own network traffic. An empty `markets` list is a valid response when the category has no markets currently posted for this event.", + "description": "Returns one event's betting markets and selections for a specific market category. `event_id` is a numeric DraftKings event identifier (find it from the `id` field of an event returned by /draftkings/sportsbook/odds). `subcategory_id` selects the market category (e.g. game lines, a player-prop category, an alternate-line category) -- find one from the `subcategory_id` field on a market returned by /draftkings/sportsbook/odds. An empty `markets` list is a valid response when the category has no markets currently posted for this event.", "operationId": "draftkings-event-markets", "parameters": [ { @@ -290866,7 +303901,7 @@ "consumes": [ "application/json" ], - "description": "Returns league-level futures markets and selections for a specific DraftKings market category, from DraftKings' credential-free public JSON. `league_id` is a numeric DraftKings league identifier and `subcategory_id` is a numeric futures category identifier. An empty `events` list is a valid response when the category has no markets currently posted for that league.", + "description": "Returns league-level futures markets and selections for a specific DraftKings market category. `league_id` is a numeric DraftKings league identifier and `subcategory_id` is a numeric futures category identifier. An empty `events` list is a valid response when the category has no markets currently posted for that league.", "operationId": "draftkings-futures", "parameters": [ { @@ -291082,7 +304117,7 @@ "consumes": [ "application/json" ], - "description": "Returns the primary betting markets (moneyline, spread, total) for every upcoming event in a DraftKings Sportsbook league, from DraftKings' credential-free public JSON. `league_id` is a numeric DraftKings league identifier (find it from a league's DraftKings Sportsbook page). An empty `events` list is a valid response when nothing is currently scheduled.", + "description": "Returns the primary betting markets (moneyline, spread, total) for every upcoming event in a DraftKings Sportsbook league. `league_id` is a numeric DraftKings league identifier (find it from a league's DraftKings Sportsbook page). An empty `events` list is a valid response when nothing is currently scheduled.", "operationId": "draftkings-odds", "parameters": [ { @@ -291336,7 +304371,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized DuckDuckGo image results for a query string: title, source page URL, image URL, thumbnail, dimensions, and hostname, plus page-based pagination. Results are fetched from DuckDuckGo's own image JSON API.", + "description": "Returns DuckDuckGo image results for a query string: title, source page URL, image URL, thumbnail, dimensions, and hostname, plus page-based pagination.", "operationId": "duckduckgo-image", "parameters": [ { @@ -291419,7 +304454,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized DuckDuckGo news results for a query string: title, destination URL, source, excerpt, thumbnail, and relative/published time, plus page-based pagination. Results are fetched from DuckDuckGo's own news JSON API.", + "description": "Returns DuckDuckGo news results for a query string: title, destination URL, source, excerpt, thumbnail, and relative/published time, plus page-based pagination.", "operationId": "duckduckgo-news", "parameters": [ { @@ -291502,7 +304537,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized DuckDuckGo web search results for a query string: title, destination URL, description, and hostname, plus page-based pagination. DuckDuckGo wraps every result link in its own click-tracking redirect; this endpoint always returns the decoded destination URL, never the raw redirect link. Results are fetched from DuckDuckGo's own server-rendered search page.", + "description": "Returns DuckDuckGo web search results for a query string: title, destination URL, description, and hostname, plus page-based pagination. DuckDuckGo wraps every result link in its own click-tracking redirect; this endpoint always returns the decoded destination URL, never the raw redirect link.", "operationId": "duckduckgo-search", "parameters": [ { @@ -291608,7 +304643,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized DuckDuckGo shopping results for a query string: title, brand, merchant, description, price, rating, and review count, plus total page count. DuckDuckGo's shopping vertical is ad-funded, syndicated product listings, not organic content; every product link is wrapped in an ad-click-tracking redirect with no clean destination to unwrap, so no destination URL is returned. DuckDuckGo's own pagination token for this vertical is an opaque per-response blob rather than a plain page offset, so only the first page is supported.", + "description": "Returns DuckDuckGo shopping results for a query string: title, brand, merchant, description, price, rating, and review count, plus total page count. DuckDuckGo's shopping vertical is ad-funded, syndicated product listings, not organic content; every product link is wrapped in an ad-click-tracking redirect with no clean destination to unwrap, so no destination URL is returned. DuckDuckGo's own pagination token for this vertical is an opaque per-response blob rather than a plain page offset, so only the first page is supported.", "operationId": "duckduckgo-shopping", "parameters": [ { @@ -291763,7 +304798,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized DuckDuckGo video results for a query string: title, destination URL, description, duration, thumbnail, publisher/uploader, published time, and view count, plus page-based pagination. Results are fetched from DuckDuckGo's own video JSON API.", + "description": "Returns DuckDuckGo video results for a query string: title, destination URL, description, duration, thumbnail, publisher/uploader, published time, and view count, plus page-based pagination.", "operationId": "duckduckgo-video", "parameters": [ { @@ -292101,7 +305136,7 @@ }, "/dw/article": { "get": { - "description": "Returns public Deutsche Welle article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Deutsche Welle article by its canonical `url`, either a standard `/en//a-` article or a `/en//live-` live-blog page. The response has the title, description, publish time, section, authors, lead image and body `paragraphs`. Blocked or malformed pages return an upstream error.", "operationId": "dw-article", "parameters": [ { @@ -292209,7 +305244,7 @@ }, "/dw/headlines": { "get": { - "description": "Returns fresh headlines from one public Deutsche Welle section.", + "description": "Returns the latest Deutsche Welle headlines for one section. `section` is required and takes one of 18 slugs, such as `africa`, `middle-east`, `germany`, `climate`, `migration`, `human-rights`, `business` or `sports`. Each item has its title and URL, plus an image when the card shows one.", "operationId": "dw-headlines", "parameters": [ { @@ -292277,7 +305312,7 @@ }, "/dw/news": { "get": { - "description": "Returns fresh Deutsche Welle stories from the public RSS feed.", + "description": "Returns the current Deutsche Welle top stories. Each item has its title, URL, summary and publication time. Takes no parameters; use `dw-headlines` for a single region, topic or category.", "operationId": "dw-news", "produces": [ "application/json" @@ -292309,7 +305344,7 @@ }, "/dw/sections": { "get": { - "description": "Returns the complete public Deutsche Welle English-edition section inventory (regions, topics, and categories) accepted by /dw/headlines.", + "description": "Lists the DW English-edition sections accepted by `dw-headlines`, grouped under the site's three navigation groups: regions, topics and categories. Each entry has a stable `slug`, display `name` and the section `url`. Takes no parameters.", "operationId": "dw-sections", "produces": [ "application/json" @@ -292338,7 +305373,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized details for a public eBay item listing.", + "description": "Returns the details of one eBay listing by `item_id`: title, link, images, price and price text, condition, availability, item specifics, description, location and shipping. It also carries the seller's name, store, feedback score, followers and items sold, along with the listing's rating and rating count.", "operationId": "ebay-item", "parameters": [ { @@ -292407,7 +305442,7 @@ "consumes": [ "application/json" ], - "description": "Returns currently live and upcoming eBay Live streams for a category channel.", + "description": "Lists live and upcoming eBay Live streams for one category channel, set with `category` (default `explore`; other values are channel ids such as `IPqZx79LNuwFcSVt` for Sports Singles). Each stream has its title, state, start time, watch count, hosts, tags and preview media. Host feedback is not included. Page on with `next_request_number` and `session_id`, passed back as `request_number` and `session_id`.", "operationId": "ebay-live-streams", "parameters": [ { @@ -292499,7 +305534,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized summaries for multiple eBay Live streams/events in one call, up to 9 ids per request.", + "description": "Returns summaries for several eBay Live streams in one call. `ids` is required and takes up to 9 stream ids, comma-separated or repeated. Each stream has its title, state, watch count, hosts, tags and preview media, without the per-host feedback summary. Ids that do not resolve are silently omitted, and the order may differ from the request.", "operationId": "ebay-live-streams-batch", "parameters": [ { @@ -292562,7 +305597,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized detail for a single eBay Live stream/event, including each host's feedback summary for the last 365 days.", + "description": "Returns one eBay Live stream or event by `id`, taken from the `streams[].id` of the stream list. The response has title, description, state, start and end times, viewer, watch and like counts, tags, channels and the live, preview and replay URLs. Each host carries a 365-day feedback summary and four average ratings. An unknown id returns `404`.", "operationId": "ebay-live-stream", "parameters": [ { @@ -292631,7 +305666,7 @@ "consumes": [ "application/json" ], - "description": "Returns the currently featured/auction items for an eBay Live stream, including live bidding state.", + "description": "Lists the items currently featured in an eBay Live stream, identified by the required event `id`. Each item has its listing id, title, price and currency, bid count, sale type, leader and winner usernames, and `auction_status` (`READY`, `LIVE` or `ENDED`). A stream with no featured items, or an unknown id, returns an empty `items` array.", "operationId": "ebay-live-stream-items", "parameters": [ { @@ -292694,7 +305729,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized eBay search results.", + "description": "Searches eBay listings by keyword from a JSON body, with page, page size (60, 120 or 240) and a listing-status filter (`active`, `sold`, `completed` or `sold_completed`). Each result has the item id, title, link, image, price or price range, bid count, seller and rating, location, shipping information, and sold and watcher counts.", "operationId": "ebay-search", "parameters": [ { @@ -292758,7 +305793,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized details for a public eBay seller profile.", + "description": "Returns the public profile of an eBay seller by the required `seller` username: display name, store name and URL, profile URL, description, location, member-since date, positive feedback percentage, feedback count, items sold, followers, and detailed seller ratings. Feedback details are included when eBay provides them.", "operationId": "ebay-seller", "parameters": [ { @@ -292827,7 +305862,7 @@ "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.", + "description": "Returns seller about information from the eBay store about tab, including seller stats, top-rated status, optional location/member-since fields, and cleaned store categories.", "operationId": "ebay-seller-about", "parameters": [ { @@ -292896,7 +305931,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized seller feedback summary, detailed ratings, and recent review cards from the public eBay seller feedback tab.", + "description": "Returns the feedback eBay shows for a seller, identified by the required `seller` username. The response has the total feedback count, positive feedback percentage, overall rating summary, detailed seller ratings, and review cards with buyer, comment, rating, period and verified-purchase flag. Page with `page` (default 1) and `per_page` (24, 48 or 72; default 48), using `has_more` and `next_page`.", "operationId": "ebay-seller-feedback", "parameters": [ { @@ -292984,7 +306019,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized listings from the public eBay seller shop tab, with pagination backed by the store odtRefresh response.", + "description": "Lists the items in an eBay seller's shop, identified by the required `seller` username, one page at a time with `page` (default 1). Each result has its item id, title, link, image, price or price range, shipping note, location, bid count and watcher count. The response gives the `total` and a `has_more` flag.", "operationId": "ebay-seller-shop", "parameters": [ { @@ -293117,7 +306152,7 @@ }, "/economictimes/author": { "get": { - "description": "Returns one Economic Times reporter's public profile: name, job title, biography, headshot, and their recent articles.", + "description": "Returns an Economic Times reporter profile for a `url` like `https://economictimes.indiatimes.com/etreporter/author--.cms`. The response has the name, job title (role and desk in one string), biography, headshot and recent articles with title and URL. Job title, biography and image may be empty; no email field exists.", "operationId": "economictimes-author", "parameters": [ { @@ -293171,7 +306206,7 @@ }, "/economictimes/headlines": { "get": { - "description": "Returns fresh headlines from one public Economic Times section feed.", + "description": "Returns the latest Economic Times headlines for one section. `section` is required and takes a slug such as `top-stories`, `markets-stocks`, `mf-mf-news`, `industry-banking-finance`, `jobs-fresher` or `news-india`. Each item has its title, URL, summary, publication time and image.", "operationId": "economictimes-headlines", "parameters": [ { @@ -293379,7 +306414,7 @@ }, "/economictimes/news": { "get": { - "description": "Returns fresh Economic Times top-stories headline metadata from its public RSS feed.", + "description": "Returns the current Economic Times top stories. Each item has its title, URL and publication time, plus a summary for some stories. Takes no parameters; use `economictimes-headlines` for a single section.", "operationId": "economictimes-news", "produces": [ "application/json" @@ -293615,7 +306650,7 @@ }, "/engadget/headlines": { "get": { - "description": "Returns fresh Engadget headlines from one public category feed.", + "description": "Returns the latest Engadget headlines for one category. `section` is required and takes one of 48 slugs such as `ai`, `gaming`, `apple`, `laptop-pc-reviews` or `transportation-evs`; other values return an invalid-parameter error. Small categories, such as buying guides, may hold only a few items.", "operationId": "engadget-headlines", "parameters": [ { @@ -293713,7 +306748,7 @@ }, "/engadget/news": { "get": { - "description": "Returns fresh Engadget technology news from the public homepage feed. Engadget articles are free to read.", + "description": "Returns the current Engadget technology news. Each item has a title, URL, summary, publish time, author and image when available. Engadget articles are free to read. Takes no parameters; use `engadget-headlines` for a single category.", "operationId": "engadget-news", "produces": [ "application/json" @@ -293751,7 +306786,7 @@ }, "/engadget/sections": { "get": { - "description": "Returns the public Engadget category taxonomy (48 categories) accepted by the headlines endpoint.", + "description": "Lists the 48 Engadget categories accepted by `engadget-headlines`, such as `ai`, `cybersecurity`, `smartphone-reviews`, `space` and `xbox`. Each entry has the `slug`, display `name` and category feed `url`. Categories with an empty feed are not listed.", "operationId": "engadget-sections", "produces": [ "application/json" @@ -293777,7 +306812,7 @@ }, "/eonline/article": { "get": { - "description": "Returns public E! News article metadata, byline and body paragraphs from a canonical article URL.", + "description": "Returns one E! News article by its `url`, in the form `https://www.eonline.com/news//`. The response has the title, description, publish time, byline, lead image, body `paragraphs` and `section`, which is the article's first tag. Photo galleries, videos and show pages are rejected; an unknown id returns not-found.", "operationId": "eonline-article", "parameters": [ { @@ -293831,7 +306866,7 @@ }, "/eonline/author": { "get": { - "description": "Returns an E! News writer's name and the articles listed on their author page, from a canonical author URL.", + "description": "Returns an E! News writer's `name` and the articles on their author page, about 45 per page, for a `url` like `https://www.eonline.com/authors/natalie-finn` (add `/page/` for older ones). There is no biography or photo. `published_at` is the page's own text, such as `18 minutes ago`, not a timestamp.", "operationId": "eonline-author", "parameters": [ { @@ -293885,7 +306920,7 @@ }, "/eonline/headlines": { "get": { - "description": "Returns fresh headlines from one E! News section feed.", + "description": "Returns up to 30 E! News headlines for one section. `section` is required and must be one of `top_stories`, `tv`, `movies`, `music`, `celebrities`, `couples`, `royals`, `red_carpet`, `influencer`, `style`, `fashion` or `shop`. Each item has its title, URL, summary, publication time, author and image.", "operationId": "eonline-headlines", "parameters": [ { @@ -293947,7 +306982,7 @@ }, "/eonline/news": { "get": { - "description": "Returns fresh E! News (US edition) top stories from its public RSS feed.", + "description": "Returns up to 30 top stories from the US edition of E! News. Each item has its title, canonical article URL, summary, publication time, byline and thumbnail. Takes no parameters; use `eonline-headlines` for a single section.", "operationId": "eonline-news", "produces": [ "application/json" @@ -293985,7 +307020,7 @@ }, "/eonline/sections": { "get": { - "description": "Returns the E! News section inventory used by the headlines endpoint.", + "description": "Lists the 12 E! News sections accepted by `eonline-headlines`, from `top_stories`, `tv` and `movies` to `royals`, `fashion` and `shop`. Each entry has the `slug`, `name` and feed `url`. The list is curated from the main navigation hubs and major tag feeds, not every tag.", "operationId": "eonline-sections", "produces": [ "application/json" @@ -294014,7 +307049,7 @@ "consumes": [ "application/json" ], - "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.", + "description": "Returns one athlete's bio/overview (name, position, jersey, physicals, current team). 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": [ { @@ -294117,7 +307152,7 @@ "consumes": [ "application/json" ], - "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.", + "description": "Returns one game's matchup, betting odds, and boxscore stat totals. 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": [ { @@ -294220,7 +307255,7 @@ "consumes": [ "application/json" ], - "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.", + "description": "Returns recent news articles (headline, description, link) for a league. 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": [ { @@ -294315,7 +307350,7 @@ "consumes": [ "application/json" ], - "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`.", + "description": "Returns poll rankings (e.g. AP Top 25) for a college league. 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": [ { @@ -294395,7 +307430,7 @@ "consumes": [ "application/json" ], - "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).", + "description": "Returns games (scores, schedule, status, and odds when available) for a sport and league. 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": [ { @@ -294517,7 +307552,7 @@ "consumes": [ "application/json" ], - "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).", + "description": "Returns league standings grouped by conference/division. 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": [ { @@ -294631,7 +307666,7 @@ "consumes": [ "application/json" ], - "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.", + "description": "Returns one team's detail (identity, colors, record, standing summary). 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": [ { @@ -294734,7 +307769,7 @@ "consumes": [ "application/json" ], - "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.", + "description": "Returns a team's roster (players with position, jersey, age, and experience) plus head coach. 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": [ { @@ -294837,7 +307872,7 @@ "consumes": [ "application/json" ], - "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.", + "description": "Returns the full team list for a sport and league. 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": [ { @@ -294932,7 +307967,7 @@ "consumes": [ "application/json" ], - "description": "Returns Etsy listing detail: title, price, images, materials, tags, and shop.", + "description": "Returns the details of one Etsy listing by its numeric `id`: title, description, URL, price and currency, quantity, favorites, views, materials, tags, images and category. It also has the shop id and name, listing state, sold-out, customizable and digital flags, when it was made, shipping origin country, and create and update dates.", "operationId": "etsy-listing", "parameters": [ { @@ -295001,7 +308036,7 @@ "consumes": [ "application/json" ], - "description": "Returns buyer reviews for an Etsy listing.", + "description": "Returns buyer reviews for an Etsy listing, identified by the numeric `id`. Start from `offset` (0-based, default 0) and order with `sort` (`newest`, `oldest`, `highest_rating`, `lowest_rating` or `most_relevant`). The response has the average rating and total rating count; each review has buyer, date, rating, text, language and whether the seller replied.", "operationId": "etsy-listing-reviews", "parameters": [ { @@ -295091,7 +308126,7 @@ "consumes": [ "application/json" ], - "description": "Returns Etsy product search results across shops for a keyword query.", + "description": "Searches Etsy listings across shops for the required keywords `q`, in Etsy's default relevance order. Page with `offset` (default 0) and `limit` (default 36, max 100). The response gives the total match `count`, and each result has listing id, title, URL, image, price, shop name and rating, quantity and sold-out flag. Read `currency`, since it is not fixed to USD.", "operationId": "etsy-search", "parameters": [ { @@ -295168,7 +308203,7 @@ "consumes": [ "application/json" ], - "description": "Returns Etsy shops matching a keyword.", + "description": "Searches Etsy shops by the required keyword `q`, returning up to `limit` shops (default 10). Each shop has its id, name, avatar, location, active listing count, open date and a vacation-mode flag.", "operationId": "etsy-shop-search", "parameters": [ { @@ -295307,7 +308342,7 @@ "consumes": [ "application/json" ], - "description": "Returns a shop's listing catalog, optionally filtered by keyword. Accepts a numeric shop id or a shop name.", + "description": "Lists the listings in an Etsy shop, identified by the required `id` (a numeric shop id or a shop name). Narrow with `q` to filter within the shop's own catalogue, and page with `offset` (default 0) and `limit` (default 24). Each listing has its id, title, URL, image, price, currency, quantity, shop rating and sold-out flag.", "operationId": "etsy-shop-listings", "parameters": [ { @@ -295397,7 +308432,7 @@ "consumes": [ "application/json" ], - "description": "Returns buyer reviews for an Etsy shop. Accepts a numeric shop id or a shop name.", + "description": "Returns buyer reviews for an Etsy shop, identified by the required `id` (a numeric shop id or a shop name). Page with `offset` (default 0) and `limit` (default 14). The response has the average rating and total rating count. Each review has buyer, date, rating, text, language, the reviewed listing, and whether the seller replied.", "operationId": "etsy-shop-reviews", "parameters": [ { @@ -295477,7 +308512,7 @@ }, "/euronews/article": { "get": { - "description": "Returns public Euronews article metadata and body paragraphs from a canonical English-edition article URL.", + "description": "Returns one Euronews English-edition article by its `url`, in the form `https://www.euronews.com/YYYY/MM/DD/`. The response has the title, description, publish and update times, section, authors, lead image and body `paragraphs`.", "operationId": "euronews-article", "parameters": [ { @@ -295531,7 +308566,7 @@ }, "/euronews/author": { "get": { - "description": "Returns a Euronews author's byline metadata and recent articles from a canonical profile URL.", + "description": "Returns a Euronews author profile for a `url` like `https://www.euronews.com/profiles/`. The response has the name, job title, editorial team, `social_links` (usually one X/Twitter link, empty if none) and recent articles. There is no headshot or biography, and `job_title` is repeated as Euronews gives it.", "operationId": "euronews-author", "parameters": [ { @@ -295585,7 +308620,7 @@ }, "/euronews/headlines": { "get": { - "description": "Returns fresh headlines from one public Euronews English-edition section.", + "description": "Returns the latest Euronews English-edition headlines for one section. `section` is required and takes one of 42 slugs, including themes (`business`, `culture`, `earth`, `health`, `next`, `travel`) and their sub-sections such as `business-markets` or `next-space`. Each item has its title and URL; the `news` and `business` sections also carry summary and publication time.", "operationId": "euronews-headlines", "parameters": [ { @@ -295677,7 +308712,7 @@ }, "/euronews/news": { "get": { - "description": "Returns fresh Euronews English-edition top stories from its public RSS feed.", + "description": "Returns the current Euronews English-edition top stories. Each item has its title, URL, summary and publication time. Takes no parameters; use `euronews-headlines` for a single theme or sub-section.", "operationId": "euronews-news", "produces": [ "application/json" @@ -295715,7 +308750,7 @@ }, "/euronews/sections": { "get": { - "description": "Returns the public Euronews English-edition section inventory used by the headlines endpoint.", + "description": "Lists the 42 Euronews English-edition sections accepted by `euronews-headlines`. Top-level themes include `news`, `business`, `culture`, `earth`, `health`, `my-europe`, `next` and `travel`, each with sub-sections such as `news-africa` or `earth-climate`. Each entry has the `slug`, `name` and `url`.", "operationId": "euronews-sections", "produces": [ "application/json" @@ -295744,7 +308779,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Everlane (https://www.everlane.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Everlane (https://www.everlane.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "everlane-collections", "parameters": [ { @@ -295807,7 +308842,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Everlane (https://www.everlane.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Everlane (https://www.everlane.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "everlane-collection-products", "parameters": [ { @@ -295884,7 +308919,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Everlane (https://www.everlane.com). The storefront URL is fixed server-side.", + "description": "Lists Everlane static pages, 50 per page by default (`limit`, max 250), with `page` starting at 1. Each page has its handle, title, URL, plain-text content, and created, updated and published dates. In a fallback mode flagged by `transport_mode: \"ssr_embedded\"`, items carry only `handle`, `url` and `updated_at`.", "operationId": "everlane-pages", "parameters": [ { @@ -295947,7 +308982,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Everlane (https://www.everlane.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one Everlane static page by its required `handle`: title, URL, plain-text content, and created, updated and published dates. An unknown handle returns `404`. In a fallback mode flagged by `transport_mode: \"ssr_embedded\"`, the response omits `id`.", "operationId": "everlane-page", "parameters": [ { @@ -296010,7 +309045,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Everlane's (https://www.everlane.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Everlane's (https://www.everlane.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "everlane-products", "parameters": [ { @@ -296073,7 +309108,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Everlane (https://www.everlane.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Everlane (https://www.everlane.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "everlane-product", "parameters": [ { @@ -296136,7 +309171,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Everlane (https://www.everlane.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Everlane (https://www.everlane.com) product handle. The storefront URL is fixed server-side.", "operationId": "everlane-product-recommendations", "parameters": [ { @@ -296217,7 +309252,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Everlane's (https://www.everlane.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Everlane's (https://www.everlane.com) predictive search. The storefront URL is fixed server-side.", "operationId": "everlane-search-suggest", "parameters": [ { @@ -296288,7 +309323,7 @@ "consumes": [ "application/json" ], - "description": "Returns capped URL entries from Everlane's (https://www.everlane.com) child sitemaps matching the requested type. The storefront URL is fixed server-side.", + "description": "Lists URL entries from Everlane's sitemaps, filtered by `type` (`all` by default, or `products`, `collections`, `pages`, `blogs`, `agentic_discovery`, `other`) and capped by `limit` (default 50, max 250). Each entry has its `loc`, inferred type, handle, last modified date, change frequency, and images with caption and title when present.", "operationId": "everlane-sitemap-urls", "parameters": [ { @@ -296360,7 +309395,7 @@ "consumes": [ "application/json" ], - "description": "Returns child sitemap URLs from Everlane's (https://www.everlane.com) `/sitemap.xml` index with inferred sitemap types. The storefront URL is fixed server-side.", + "description": "Lists the child sitemaps in Everlane's sitemap index. Each entry has its `loc` URL and an inferred `type`: `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`. It takes no parameters.", "operationId": "everlane-sitemaps", "produces": [ "application/json" @@ -296407,7 +309442,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Everlane (https://www.everlane.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Everlane (https://www.everlane.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "everlane-store", "produces": [ "application/json" @@ -296451,7 +309486,7 @@ }, "/ew/article": { "get": { - "description": "Returns public Entertainment Weekly article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Entertainment Weekly article by its canonical `url` in the form `ew.com/-`. The response has the title, description, publish and update times, section, authors, lead image, body `paragraphs` and a `paywalled` flag. Blocked or malformed pages return an upstream error.", "operationId": "ew-article", "parameters": [ { @@ -296559,7 +309594,7 @@ }, "/ew/headlines": { "get": { - "description": "Returns fresh headlines from one public Entertainment Weekly section.", + "description": "Returns the latest Entertainment Weekly headlines for one section. `section` is required and must be one of `tv`, `movies`, `music`, `what-to-watch`, `binge`, `celebrity`, `awardist`, `books` or `theater`. Each item has its title and URL, plus an image when the card shows one.", "operationId": "ew-headlines", "parameters": [ { @@ -296618,7 +309653,7 @@ }, "/ew/news": { "get": { - "description": "Returns fresh Entertainment Weekly stories from its homepage.", + "description": "Returns the current Entertainment Weekly top stories. Each item has its title and URL, plus an image when the card shows one. Takes no parameters; use `ew-headlines` for a single section.", "operationId": "ew-news", "produces": [ "application/json" @@ -296650,7 +309685,7 @@ }, "/ew/sections": { "get": { - "description": "Returns the complete public Entertainment Weekly primary-navigation section inventory accepted by /ew/headlines.", + "description": "Lists the nine Entertainment Weekly primary-navigation sections accepted by `ew-headlines`: `tv`, `movies`, `music`, `what-to-watch`, `binge`, `celebrity`, `awardist`, `books` and `theater`. Each entry has the `slug`, display `name` and section `url`.", "operationId": "ew-sections", "produces": [ "application/json" @@ -296679,7 +309714,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Expedia Things To Do (activities/tours) search results for a free-text destination and date range.", + "description": "Searches Expedia things to do (activities and tours) for a free-text `destination` between `start_date` and `end_date` (`YYYY-MM-DD`), all required in the JSON body. Optional `page`, `page_size` (1-50, default 20), `currency` (default `USD`) and `locale` (default `en_US`). Each activity has its id, name, duration, price, review score and label, review count, free-cancellation flag and thumbnail.", "operationId": "expedia-activities-search", "parameters": [ { @@ -296743,7 +309778,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Expedia Flights search results (departing-leg offers) for an origin/destination IATA pair and date range.", + "description": "Searches Expedia flights between two IATA airport codes, `origin` and `destination`, on `departure_date` (`YYYY-MM-DD`). `return_date` is required for the default `round_trip`; `one_way` is the alternative `trip_type`. Optional `adults` (1-9, default 1), `cabin_class` (default `COACH`), `currency` and `locale`. Returns departing-leg offers only, with airline, times, duration, stops, route and price.", "operationId": "expedia-flights-search", "parameters": [ { @@ -296807,7 +309842,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized destination/property typeahead suggestions (cities, airports, neighborhoods, hotels) for a free-text term.", + "description": "Returns Expedia destination and property suggestions for a free-text `term` (required, 100 characters or fewer), with optional `currency` and `locale`. Each item has its type, geo type, primary and secondary text, full location name, coordinates, and `region_id`, `property_id` or `airport_code` where they exist.", "operationId": "expedia-locations-search", "parameters": [ { @@ -296871,7 +309906,7 @@ "consumes": [ "application/json" ], - "description": "Returns a hotel's detail summary (name, star rating, address/coordinates, top amenities) for a known property id.", + "description": "Returns a summary for one Expedia hotel by `property_id`, for the stay given by `check_in` and `check_out` (`YYYY-MM-DD`), all required in the JSON body. Optional `adults` (1-9, default 2), `currency` and `locale`. The response has the name, star rating, address, city, province, country code, coordinates, top amenities and VIP message.", "operationId": "expedia-properties-detail", "parameters": [ { @@ -297011,7 +310046,7 @@ "consumes": [ "application/json" ], - "description": "Returns a hotel's overall rating and highlighted/recent guest reviews (reviewer, date, rating, message) for a known property id.", + "description": "Returns the overall rating and a short set of guest reviews, typically around six, for one Expedia hotel. `property_id`, `check_in` and `check_out` (`YYYY-MM-DD`) are required in the JSON body; `adults` (1-9, default 2), `currency` and `locale` are optional. Each review has the reviewer name, date, rating label, message and verified flag. It is not the full review archive.", "operationId": "expedia-properties-reviews", "parameters": [ { @@ -297081,7 +310116,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Expedia Stays (hotel) search results for a free-text destination and date range. Promotional banners and sponsored ad slots are dropped, so every returned property has an id and name.", + "description": "Returns Expedia Stays (hotel) search results for a free-text destination and date range. Promotional banners and sponsored ad slots are dropped, so every returned property has an id and name.", "operationId": "expedia-properties-search", "parameters": [ { @@ -297148,7 +310183,7 @@ }, "/expresstribune/article": { "get": { - "description": "Returns public story metadata and body paragraphs from a canonical tribune.com.pk/story// URL.", + "description": "Returns one Express Tribune story by `url`, which must be a canonical `tribune.com.pk/story//` link. The response has the title, description, section, authors, publication and update times, lead image URL, body `paragraphs` and a `paywalled` flag.", "operationId": "expresstribune-article", "parameters": [ { @@ -297408,7 +310443,7 @@ "consumes": [ "application/json" ], - "description": "Scrapes a public URL into clean Markdown, then returns data that strictly conforms to the supplied bounded JSON Schema. The response includes `truncated`, which is true when the page was too long and only its first part was used.", + "description": "Reads a public URL as clean Markdown, then returns data that strictly conforms to the supplied bounded JSON Schema. The response includes `truncated`, which is true when the page was too long and only its first part was used.", "operationId": "extract", "parameters": [ { @@ -297849,7 +310884,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of Fanatics' own keyword search results (name, brand, price, availability, image, url).", + "description": "Searches Fanatics products by the required `query`. Choose `page_size` (24, 48 or 72; default 24), `page_number` (default 1) and `sort` (`TopSellers`, `LowestPrice`, `HighestPrice` or `NewestArrivals`; default `TopSellers`). Each item has product id, name, brand, category, price, currency, availability, image and URL. Also returns `total_items` and `has_next_page`. An invalid `page_size` or `sort` returns `400`.", "operationId": "fanatics-search", "parameters": [ { @@ -297927,7 +310962,7 @@ "consumes": [ "application/json" ], - "description": "Returns Fanatics Collect's current and recent weekly and premier auction events -- the same short list the site's own header auction switcher and countdown banner show. This is the discovery endpoint for Search's auction_urn param: copy an event's urn value to browse every lot in that auction. A small, current/recent set (observed live: around 6 events), not a full historical archive -- older auctions' urn values found on a Search result or a GetListing response remain valid for Search even once they no longer appear here. Credential-free public data from Fanatics Collect's own GraphQL API.", + "description": "Returns Fanatics Collect's current and recent weekly and premier auction events -- the same short list the site's own header auction switcher and countdown banner show. This is the discovery endpoint for Search's auction_urn param: copy an event's urn value to browse every lot in that auction. A small, current/recent set (observed live: around 6 events), not a full historical archive -- older auctions' urn values found on a Search result or a GetListing response remain valid for Search even once they no longer appear here.", "operationId": "fanaticscollect-auctions", "produces": [ "application/json" @@ -298015,7 +311050,7 @@ "consumes": [ "application/json" ], - "description": "Returns every category Fanatics Collect's \"Instant Rips\" mystery-pack product (fanaticscollect.com/instant-rips) currently advertises on its homepage: id, name, and price range. Instant Rips is a \"buy a randomized pack, a real graded card is revealed\" product; each category's id is a real listing id, fetchable through GetListing with type=FIXED for that entry point's own full detail. This does not cover the individual pack-tier tiles within a category or the homepage's \"Recently ripped\" live feed -- both are hydrated client-side in a form this repo cannot reliably parse. Credential-free public data, server-rendered on Fanatics Collect's own page.", + "description": "Returns every category Fanatics Collect's \"Instant Rips\" mystery-pack product (fanaticscollect.com/instant-rips) currently advertises on its homepage: id, name, and price range. Instant Rips is a \"buy a randomized pack, a real graded card is revealed\" product; each category's id is a real listing id, fetchable through GetListing with type=FIXED for that entry point's own full detail. This does not cover the individual pack-tier tiles within a category or the homepage's \"Recently ripped\" live feed.", "operationId": "fanaticscollect-instant-rips-categories", "produces": [ "application/json" @@ -298056,7 +311091,7 @@ "consumes": [ "application/json" ], - "description": "Returns full detail for a single Fanatics Collect listing: a weekly-auction lot, a premier-auction lot, or a fixed-price \"buy now\" item (including an Instant Rips pack). Fields include title, current bid/starting/asking price, bid count, auction window and status, images, description, completed sale history, and -- when the card is stored in Fanatics' vault -- grading/authentication metadata including a direct PSA cert-verification link. Credential-free public data from Fanatics Collect's own GraphQL API.", + "description": "Returns full detail for a single Fanatics Collect listing: a weekly-auction lot, a premier-auction lot, or a fixed-price \"buy now\" item (including an Instant Rips pack). Fields include title, current bid/starting/asking price, bid count, auction window and status, images, description, completed sale history, and -- when the card is stored in Fanatics' vault -- grading/authentication metadata including a direct PSA cert-verification link.", "operationId": "fanaticscollect-listing", "parameters": [ { @@ -298136,7 +311171,7 @@ "consumes": [ "application/json" ], - "description": "Searches Fanatics Collect's full marketplace -- weekly auctions, premier auctions, and the fixed-price \"Buy Now\" marketplace -- by free-text query, category, grading service, price/year/grade range, and listing status, in a caller-selected sort order. Credential-free public data from Fanatics Collect's own public search index. See GetCategories for the accepted category, grading-service, status, and sort values.", + "description": "Searches Fanatics Collect's full marketplace -- weekly auctions, premier auctions, and the fixed-price \"Buy Now\" marketplace -- by free-text query, category, grading service, price/year/grade range, and listing status, in a caller-selected sort order. See GetCategories for the accepted category, grading-service, status, and sort values.", "operationId": "fanaticscollect-search", "parameters": [ { @@ -298375,7 +311410,7 @@ "consumes": [ "application/json" ], - "description": "Searches Fanatics Collect's sales-history archive -- every completed sale across every marketplace, not just what the live search index currently surfaces. A separate product from Search, reached from the \"View all sold items\" link on every marketplace search page. purchase_price is what the buyer paid in US dollars: for WEEKLY and PREMIER auction sales it includes the buyer's premium, so it is higher than the listing's final bid; for FIXED sales it equals the asking price. Credential-free public data from Fanatics Collect's own public sales-history API. See GetCategories for the accepted category, grading-service, eye-appeal-grade, and sort values.", + "description": "Searches Fanatics Collect's sales-history archive -- every completed sale across every marketplace, not just what the live search index currently surfaces. A separate product from Search, reached from the \"View all sold items\" link on every marketplace search page. purchase_price is what the buyer paid in US dollars: for WEEKLY and PREMIER auction sales it includes the buyer's premium, so it is higher than the listing's final bid; for FIXED sales it equals the asking price. See GetCategories for the accepted category, grading-service, eye-appeal-grade, and sort values.", "operationId": "fanaticscollect-sold-items", "parameters": [ { @@ -298536,7 +311571,7 @@ "consumes": [ "application/json" ], - "description": "Returns Fanatics Collect's own currently trending search terms -- the same list shown in the site's own header search box before the visitor types anything. Credential-free public data from Fanatics Collect's own GraphQL API.", + "description": "Returns Fanatics Collect's own currently trending search terms -- the same list shown in the site's own header search box before the visitor types anything.", "operationId": "fanaticscollect-trending-searches", "parameters": [ { @@ -298592,7 +311627,7 @@ "consumes": [ "application/json" ], - "description": "Returns the live and upcoming shows currently listed under a Fanatics Live league: name, status, cover image, viewers, and the hosting channel/shop. Public data sourced from Fanatics Live's own GraphQL API.", + "description": "Returns the live and upcoming shows currently listed under a Fanatics Live league: name, status, cover image, viewers, and the hosting channel/shop.", "operationId": "fanaticslive-browse", "parameters": [ { @@ -298674,7 +311709,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Fanatics Live channel's own detail page: its parent shop, and a first page of its live/upcoming and past/replay shows. A shop can run several channels (e.g. a league-specific sub-feed) -- see /fanaticslive/shop/{slug} for a shop's full channel list and /fanaticslive/shop/{slug}/shows for cursor-paginated access to a full show history. Public data sourced from Fanatics Live's own GraphQL API.", + "description": "Returns a Fanatics Live channel's own detail page: its parent shop, and a first page of its live/upcoming and past/replay shows. A shop can run several channels (e.g. a league-specific sub-feed) -- see /fanaticslive/shop/{slug} for a shop's full channel list and /fanaticslive/shop/{slug}/shows for cursor-paginated access to a full show history.", "operationId": "fanaticslive-channel", "parameters": [ { @@ -298737,7 +311772,7 @@ "consumes": [ "application/json" ], - "description": "Returns Fanatics Live's full league/category list (e.g. \"Pokemon\", \"NFL\", \"MTG\"). Each entry's type is usable directly with /fanaticslive/browse's league filter. Public data sourced from Fanatics Live's own GraphQL API.", + "description": "Returns Fanatics Live's full league/category list (e.g. \"Pokemon\", \"NFL\", \"MTG\"). Each entry's type is usable directly with /fanaticslive/browse's league filter.", "operationId": "fanaticslive-leagues", "produces": [ "application/json" @@ -298778,7 +311813,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Fanatics Live shop's public profile page: description, social links, follower count, and its channels and staffers. Public data sourced from Fanatics Live's own GraphQL API.", + "description": "Returns a Fanatics Live shop's public profile page: description, social links, follower count, and its channels and staffers.", "operationId": "fanaticslive-shop", "parameters": [ { @@ -298841,7 +311876,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Fanatics Live shop's own live/upcoming or past/replay show list -- distinct from /fanaticslive/browse, which lists shows across all shops filtered by league. status=replay is the only credential-free way to observe a COMPLETE-status show. Public data sourced from Fanatics Live's own GraphQL API.", + "description": "Returns a Fanatics Live shop's own live/upcoming or past/replay show list -- distinct from /fanaticslive/browse, which lists shows across all shops filtered by league. status=replay is the only way to observe a COMPLETE-status show.", "operationId": "fanaticslive-shop-shows", "parameters": [ { @@ -298929,7 +311964,7 @@ "consumes": [ "application/json" ], - "description": "Returns Fanatics Live's full public shop directory: every shop's id, name, slug, logo, and follower count. Each entry's slug is usable directly with /fanaticslive/shop/{slug}. Public data sourced from Fanatics Live's own GraphQL API.", + "description": "Returns Fanatics Live's full public shop directory: every shop's id, name, slug, logo, and follower count. Each entry's slug is usable directly with /fanaticslive/shop/{slug}.", "operationId": "fanaticslive-shops", "produces": [ "application/json" @@ -298970,7 +312005,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Fanatics Live live show's detail page: status, viewers, hosting channel/shop, its currently active break/lot, and its full break/lot list. Public data sourced from Fanatics Live's own GraphQL API.", + "description": "Returns a Fanatics Live live show's detail page: status, viewers, hosting channel/shop, its currently active break/lot, and its full break/lot list.", "operationId": "fanaticslive-show", "parameters": [ { @@ -299033,7 +312068,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Fanatics Live show's current break's digital-instant-rip state: spot claim/rip progress and the currently revealing item, when a rip is actively in progress. current_break is omitted when the show has no active break at request time. Public data sourced from Fanatics Live's own GraphQL API.", + "description": "Returns a Fanatics Live show's current break's digital-instant-rip state: spot claim/rip progress and the currently revealing item, when a rip is actively in progress. current_break is omitted when the show has no active break at request time.", "operationId": "fanaticslive-instant-rips", "parameters": [ { @@ -299265,7 +312300,7 @@ "consumes": [ "application/json" ], - "description": "Browses Farfetch's luxury multi-brand marketplace by department plus a designer and/or category filter (at least one is required), returning normalized listing summaries (name, brand, price, image, availability) and the upstream page count. Public data sourced from Farfetch's own listing pages.", + "description": "Browses Farfetch's luxury multi-brand marketplace by department plus a designer and/or category filter (at least one is required), returning listing summaries (name, brand, price, image, availability) and the upstream page count.", "operationId": "farfetch-search", "parameters": [ { @@ -299343,7 +312378,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Fashion Nova (https://www.fashionnova.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Fashion Nova (https://www.fashionnova.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "fashionnova-collections", "parameters": [ { @@ -299406,7 +312441,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Fashion Nova (https://www.fashionnova.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Fashion Nova (https://www.fashionnova.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "fashionnova-collection-products", "parameters": [ { @@ -299483,7 +312518,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Fashion Nova (https://www.fashionnova.com). The storefront URL is fixed server-side.", + "description": "Lists Fashion Nova static pages, 50 per page by default (`limit`, max 250), with `page` starting at 1. Each page has its handle, title, URL, plain-text content, and created, updated and published dates. When `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`. An empty result returns an empty `pages` array.", "operationId": "fashionnova-pages", "parameters": [ { @@ -299546,7 +312581,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Fashion Nova (https://www.fashionnova.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one Fashion Nova static page by its required `handle`: title, URL, plain-text content, and created, updated and published dates. An unknown handle returns `404`. In a fallback mode flagged by `transport_mode: \"ssr_embedded\"`, the response omits `id`.", "operationId": "fashionnova-page", "parameters": [ { @@ -299609,7 +312644,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Fashion Nova's (https://www.fashionnova.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Fashion Nova's (https://www.fashionnova.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "fashionnova-products", "parameters": [ { @@ -299672,7 +312707,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Fashion Nova (https://www.fashionnova.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Fashion Nova (https://www.fashionnova.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "fashionnova-product", "parameters": [ { @@ -299735,7 +312770,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Fashion Nova (https://www.fashionnova.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Fashion Nova (https://www.fashionnova.com) product handle. The storefront URL is fixed server-side.", "operationId": "fashionnova-product-recommendations", "parameters": [ { @@ -299816,7 +312851,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Fashion Nova's (https://www.fashionnova.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Fashion Nova's (https://www.fashionnova.com) predictive search. The storefront URL is fixed server-side.", "operationId": "fashionnova-search-suggest", "parameters": [ { @@ -300006,7 +313041,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Fashion Nova (https://www.fashionnova.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Fashion Nova (https://www.fashionnova.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "fashionnova-store", "produces": [ "application/json" @@ -300053,7 +313088,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Fashionphile (https://www.fashionphile.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Fashionphile (https://www.fashionphile.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "fashionphile-collections", "parameters": [ { @@ -300116,7 +313151,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Fashionphile (https://www.fashionphile.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Fashionphile (https://www.fashionphile.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "fashionphile-collection-products", "parameters": [ { @@ -300193,7 +313228,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Fashionphile (https://www.fashionphile.com). The storefront URL is fixed server-side.", + "description": "Lists Fashionphile static pages, 50 per page by default (`limit`, max 250), with `page` starting at 1. Each page has its handle, title, URL, plain-text content, and created, updated and published dates. When `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`. Fetch a single page for its full content.", "operationId": "fashionphile-pages", "parameters": [ { @@ -300256,7 +313291,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Fashionphile (https://www.fashionphile.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one Fashionphile static page by its required `handle`, such as `about`: title, URL, plain-text content, and created, updated and published dates. An unknown handle returns `404`. In a fallback mode flagged by `transport_mode: \"ssr_embedded\"`, the response omits `id`.", "operationId": "fashionphile-page", "parameters": [ { @@ -300319,7 +313354,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Fashionphile's (https://www.fashionphile.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Fashionphile's (https://www.fashionphile.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "fashionphile-products", "parameters": [ { @@ -300382,7 +313417,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Fashionphile (https://www.fashionphile.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Fashionphile (https://www.fashionphile.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "fashionphile-product", "parameters": [ { @@ -300445,7 +313480,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Fashionphile (https://www.fashionphile.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Fashionphile (https://www.fashionphile.com) product handle. The storefront URL is fixed server-side.", "operationId": "fashionphile-product-recommendations", "parameters": [ { @@ -300526,7 +313561,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized, ranked products from Fashionphile's (https://www.fashionphile.com) own full-text and faceted product search, including condition grade, discount percentage, and other filter attributes not available from the classic catalog JSON endpoints in this family. The storefront URL is fixed server-side. Omitting `q` browses the full catalog subject to any condition/vendor/availability filters and the chosen sort. By default only in-stock listings are searched, matching the storefront; `availability=sold` searches the sold archive instead. `total_items` is the exact number of products matching the query and all filters.", + "description": "Returns ranked products from Fashionphile's (https://www.fashionphile.com) own full-text and faceted product search, including condition grade, discount percentage, and other filter attributes not available from the classic catalog endpoints in this family. The storefront URL is fixed server-side. Omitting `q` browses the full catalog subject to any condition/vendor/availability filters and the chosen sort. By default only in-stock listings are searched, matching the storefront; `availability=sold` searches the sold archive instead. `total_items` is the exact number of products matching the query and all filters.", "operationId": "fashionphile-search", "parameters": [ { @@ -300644,7 +313679,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Fashionphile's (https://www.fashionphile.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Fashionphile's (https://www.fashionphile.com) predictive search. The storefront URL is fixed server-side.", "operationId": "fashionphile-search-suggest", "parameters": [ { @@ -300715,7 +313750,7 @@ "consumes": [ "application/json" ], - "description": "Returns capped URL entries from Fashionphile's (https://www.fashionphile.com) child sitemaps matching the requested type. The storefront URL is fixed server-side.", + "description": "Lists URL entries from Fashionphile's sitemaps, filtered by `type` (`all` by default, or `products`, `collections`, `pages`, `blogs`, `agentic_discovery`, `other`) and capped by `limit` (default 50, max 250). Each entry has its `loc`, inferred type, handle, last modified date, change frequency, and optional images.", "operationId": "fashionphile-sitemap-urls", "parameters": [ { @@ -300787,7 +313822,7 @@ "consumes": [ "application/json" ], - "description": "Returns child sitemap URLs from Fashionphile's (https://www.fashionphile.com) `/sitemap.xml` index with inferred sitemap types. The storefront URL is fixed server-side.", + "description": "Lists the child sitemaps in Fashionphile's sitemap index, with no parameters. Each entry has its `loc` URL and an inferred `type`: `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`. Product sitemap URLs may carry `from` and `to` query values.", "operationId": "fashionphile-sitemaps", "produces": [ "application/json" @@ -300834,7 +313869,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Fashionphile (https://www.fashionphile.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Fashionphile (https://www.fashionphile.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "fashionphile-store", "produces": [ "application/json" @@ -300878,7 +313913,7 @@ }, "/fastcompany/article": { "get": { - "description": "Returns public Fast Company article metadata and body paragraphs from a canonical article URL. The service uses the configured production browser fleet when ordinary HTTP transport encounters Fast Company's bot-verification challenge; it does not bypass authentication or access controls.", + "description": "Returns public Fast Company article metadata and body paragraphs from a canonical article URL. It does not bypass authentication or access controls.", "operationId": "fastcompany-article", "parameters": [ { @@ -300932,7 +313967,7 @@ }, "/fastcompany/author": { "get": { - "description": "Returns a Fast Company contributor's name, biography, and recent articles from a canonical contributor URL. Recent articles and the contributor's name come from their own public RSS feed; the biography comes from the contributor's profile page and is omitted if that page's bot-verification challenge cannot be cleared. The service uses the configured production browser fleet when ordinary HTTP transport encounters that challenge; it does not bypass authentication or access controls.", + "description": "Returns a Fast Company contributor's name, biography, and recent articles from a canonical contributor URL. The biography is omitted if the contributor's profile page cannot be loaded. It does not bypass authentication or access controls.", "operationId": "fastcompany-author", "parameters": [ { @@ -301034,7 +314069,7 @@ }, "/fastcompany/news": { "get": { - "description": "Returns fresh Fast Company stories from its public RSS feed.", + "description": "Returns the current Fast Company top stories. Each item has its title, canonical URL, summary, publication time, author and image. Takes no parameters, so there is no section or paging control.", "operationId": "fastcompany-news", "produces": [ "application/json" @@ -301797,7 +314832,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Fiverr gig detail page: title, description, category, pricing packages (basic/standard/premium tiers with price and delivery time), rating, review count, orders in queue, tags, gallery images, and a seller summary (level, rating, response time, languages). Public data sourced from Fiverr's own server-rendered gig pages via a real browser-rendering backend. Seller level uses the same values on the search, seller and gig endpoints: level_one_seller, level_two_seller, top_rated_seller, or new_seller.", + "description": "Returns a Fiverr gig detail page: title, description, category, pricing packages (basic/standard/premium tiers with price and delivery time), rating, review count, orders in queue, tags, gallery images, and a seller summary (level, rating, response time, languages). Seller level uses the same values on the search, seller and gig endpoints: level_one_seller, level_two_seller, top_rated_seller, or new_seller.", "operationId": "fiverr-gig", "parameters": [ { @@ -301868,7 +314903,7 @@ "consumes": [ "application/json" ], - "description": "Searches Fiverr's public gig listings by free-text keyword, returning normalized gig summaries (title, seller username, seller level, rating, review count, starting price, category, thumbnail image). Public data sourced from Fiverr's own server-rendered search pages via a real browser-rendering backend. Seller level uses the same values on the search, seller and gig endpoints: level_one_seller, level_two_seller, top_rated_seller, or new_seller.", + "description": "Searches Fiverr's public gig listings by free-text keyword, returning gig summaries (title, seller username, seller level, rating, review count, starting price, category, thumbnail image). Seller level uses the same values on the search, seller and gig endpoints: level_one_seller, level_two_seller, top_rated_seller, or new_seller.", "operationId": "fiverr-search", "parameters": [ { @@ -301932,7 +314967,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Fiverr seller profile: display name, one-liner title, description, country, seller level, verification status, hourly rate, spoken languages, join date, and the seller's gig ids. Public data sourced from Fiverr's own server-rendered seller profile pages via a real browser-rendering backend. Seller level uses the same values on the search, seller and gig endpoints: level_one_seller, level_two_seller, top_rated_seller, or new_seller.", + "description": "Returns a Fiverr seller profile: display name, one-liner title, description, country, seller level, verification status, hourly rate, spoken languages, join date, and the seller's gig ids. Seller level uses the same values on the search, seller and gig endpoints: level_one_seller, level_two_seller, top_rated_seller, or new_seller.", "operationId": "fiverr-seller", "parameters": [ { @@ -302060,7 +315095,7 @@ "consumes": [ "application/json" ], - "description": "Lists the current ATP, WTA, golf, badminton, and Formula 1 calendar pages.", + "description": "Lists the Flashscore season calendar sections currently available, covering ATP, WTA, golf, badminton and Formula 1. Each category has its `key`, name, sport and canonical path. Use a `key` with the Flashscore calendar endpoint. It takes no parameters.", "operationId": "flashscore-calendar-categories", "produces": [ "application/json" @@ -302787,7 +315822,7 @@ "consumes": [ "application/json" ], - "description": "Returns bookmaker odds for a match in one viewer market, grouped by betting type and scope with every bookmaker's priced outcomes, opening odds, handicap or total lines, and a normalized selection label. Bookmakers and prices depend on the market, so pick geo (and subdivision for US or CA) from flashscore-odds-geos. A market with no licensed bookmakers returns empty lists. Promotional bonus text is not included.", + "description": "Returns bookmaker odds for a match in one viewer market, grouped by betting type and scope with every bookmaker's priced outcomes, opening odds, handicap or total lines, and a selection label. Bookmakers and prices depend on the market, so pick geo (and subdivision for US or CA) from flashscore-odds-geos. A market with no licensed bookmakers returns empty lists. Promotional bonus text is not included.", "operationId": "flashscore-match-odds", "parameters": [ { @@ -304583,7 +317618,7 @@ "consumes": [ "application/json" ], - "description": "Lists the live-verified public ranking categories, including tennis live rankings.", + "description": "Lists the Flashscore ranking categories currently available, including the tennis live-rankings pages. Each category has its `key`, name, sport, page path and a `live` flag. Use a `key` with the Flashscore rankings endpoint. It takes no parameters.", "operationId": "flashscore-ranking-categories", "produces": [ "application/json" @@ -306686,7 +319721,7 @@ }, "/forbes/article": { "get": { - "description": "Returns public Forbes article metadata and body content from Forbes's same-host content JSON endpoint. The response preserves rich body HTML, normalized paragraphs, headings, and public embed metadata. Accepts dated /sites//... and /councils//... URLs; it does not bypass login, subscription, or bot challenges.", + "description": "Returns public Forbes article metadata and body content. The response preserves rich body HTML, paragraphs, headings, and public embed metadata. Accepts dated /sites//... and /councils//... URLs; it does not bypass login, subscription, or bot challenges.", "operationId": "forbes-article", "parameters": [ { @@ -306947,7 +319982,7 @@ }, "/forbes/headlines": { "get": { - "description": "Returns current Forbes article-card metadata from a public Forbes navigation path. Use /forbes/categories to discover paths.", + "description": "Returns up to 50 unique Forbes article cards for one navigation path. `section` is required and takes a `path` value from the Forbes categories endpoint, such as `/business/`. Each card has the title, article URL, description, author, and publication time and image URL when present. A blocked section returns an error, not an empty list.", "operationId": "forbes-headlines", "parameters": [ { @@ -307297,7 +320332,7 @@ }, "/foreignaffairs/topics": { "get": { - "description": "Returns the complete research-backed directory of topic values accepted by foreignaffairs-topic, including each topic's public RSS feed URL.", + "description": "Lists the 19 Foreign Affairs topics accepted by the topic endpoint, such as `economics`, `nato`, `sanctions` and `us-foreign-policy`. Each topic has its `slug`, display name and RSS `feed_url`. It takes no parameters.", "operationId": "foreignaffairs-topics", "produces": [ "application/json" @@ -307780,7 +320815,7 @@ }, "/fortune/article": { "get": { - "description": "Returns public Fortune article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Fortune article by its canonical `url`. The response has the title, description, publish and update times, section, authors, lead image, body `paragraphs` and a `paywalled` flag. Subscriber-only or blocked articles return an upstream error.", "operationId": "fortune-article", "parameters": [ { @@ -307901,7 +320936,7 @@ }, "/fortune/companies": { "get": { - "description": "Returns companies from Fortune's public company directory (9,000+ companies as of 2026-09-23) with search, filtering, and pagination.", + "description": "Searches Fortune's company directory, 30 companies per page, with `page` starting at 1. Filter by `search` (company name), `country`, `industry` (exact title), `ranking` with `year`, and ranges `min_revenue` and `max_revenue` (in $M) and `min_employees` and `max_employees`. Each item has name, slug, URL, country, revenues and description. Invalid `country` or `industry` values return `400`.", "operationId": "fortune-companies", "parameters": [ { @@ -308011,7 +321046,7 @@ }, "/fortune/companies/filters": { "get": { - "description": "Returns the complete country, industry, and ranking filter inventory (exact values) and revenue/employee ranges accepted by fortune/companies.", + "description": "Lists the filter values the Fortune company directory accepts: countries and industries (each with slug and title), the rankings usable with the `ranking` filter and their available years, and the minimum and maximum revenue and employee counts. The rankings are a subset of all Fortune rankings. It takes no parameters.", "operationId": "fortune-company-filters", "produces": [ "application/json" @@ -308103,7 +321138,7 @@ }, "/fortune/headlines": { "get": { - "description": "Returns fresh headlines from one public Fortune section.", + "description": "Returns the latest Fortune headlines for one section. `section` is required and takes one of 36 slugs such as `latest`, `fortune-500`, `finance`, `artificial-intelligence`, `crypto`, `leadership` or `europe`. Each item has its title and URL.", "operationId": "fortune-headlines", "parameters": [ { @@ -308189,7 +321224,7 @@ }, "/fortune/news": { "get": { - "description": "Returns fresh Fortune stories from the public RSS feed.", + "description": "Returns the current Fortune top stories. Each item has its title, URL, summary, publication time, author and image. Takes no parameters; use `fortune-headlines` for a single section.", "operationId": "fortune-news", "produces": [ "application/json" @@ -308353,7 +321388,7 @@ }, "/fortune/ranking/filters": { "get": { - "description": "Returns the complete list/year-specific filter fields, exact options, and sortable columns from Fortune's public ranking source.", + "description": "Returns the filter fields and sortable columns for one Fortune ranking list. `list` selects the ranking (default `fortune500`) and `year` a historical edition; omit `year` for the list's current year. Each search field has its field name, title, type and accepted options, and each sortable column has a title and type.", "operationId": "fortune-ranking-filters", "parameters": [ { @@ -308407,7 +321442,7 @@ }, "/fortune/ranking/lists": { "get": { - "description": "Returns every public ranking accepted by the other fortune/ranking endpoints -- the Fortune 500 franchise's regional/global variants (including Fortune China 500) plus Fortune's award and culture rankings. Fortune China 500 is parsed from its public server-rendered English list page.", + "description": "Returns every public ranking accepted by the other fortune/ranking endpoints -- the Fortune 500 franchise's regional/global variants (including Fortune China 500) plus Fortune's award and culture rankings.", "operationId": "fortune-ranking-lists", "produces": [ "application/json" @@ -308480,7 +321515,7 @@ }, "/fortune/sections": { "get": { - "description": "Returns the public Fortune editorial section inventory.", + "description": "Lists the Fortune sections accepted by `fortune-headlines`, such as `latest`, `fortune-500`, `finance`, `tech`, `leadership` and `crypto`. Each entry has a stable `slug`, display `name` and the section `url`. Takes no parameters.", "operationId": "fortune-sections", "produces": [ "application/json" @@ -308544,7 +321579,7 @@ "consumes": [ "application/json" ], - "description": "Returns every ranking period currently offered by FotMob for the selected gender. Use a returned periodId with /fotmob/fifa-rankings.", + "description": "Lists the FIFA ranking periods FotMob currently offers for the required `gender` (`men` or `women`). Each period has a `periodId` and a `periodName` date label. Pass a `periodId` to the FotMob FIFA rankings endpoint; the ids change over time and are not a fixed set.", "operationId": "fotmob-fifa-ranking-periods", "parameters": [ { @@ -309566,7 +322601,7 @@ "consumes": [ "application/json" ], - "description": "Returns the complete list of season values accepted by the FotMob league endpoint for one competition.", + "description": "Lists the season values FotMob offers for one league, identified by the required numeric `league_id` (from the FotMob leagues endpoint). The response has the league id, name and a `seasons` list such as `2026/2027`. Pass a season to the FotMob league endpoint; the list varies by league.", "operationId": "fotmob-seasons", "parameters": [ { @@ -310560,7 +323595,7 @@ "consumes": [ "application/json" ], - "description": "Lists all country codes exposed by FotMob's public football TV guide country selector.", + "description": "Lists the countries in FotMob's football TV guide country selector, each with a country `code` (such as `us`, `gb`, `de` or `jp`) and a name. Use a code with the FotMob TV guide and TV guide channels endpoints. It takes no parameters.", "operationId": "fotmob-tv-guide-countries", "produces": [ "application/json" @@ -310718,7 +323753,7 @@ }, "/foxnews/headlines": { "get": { - "description": "Returns fresh headlines from one public Fox News article RSS section. Use foxnews-sections for the current value space.", + "description": "Returns the latest 25 Fox News headlines for one section. `section` is required and must be one of `us`, `world`, `politics`, `science`, `health`, `sports`, `travel`, `tech`, `opinion`, `entertainment`, `media` or `lifestyle`. Each item has its title, URL, summary, publication time and image.", "operationId": "foxnews-headlines", "parameters": [ { @@ -310830,7 +323865,7 @@ }, "/foxnews/search": { "get": { - "description": "Searches Fox News' public credential-free Moxie search surface. Results may include article, video, or slideshow records; use type to restrict the result kind.", + "description": "Searches Fox News. Results may include article, video, or slideshow records; use type to restrict the result kind.", "operationId": "foxnews-search", "parameters": [ { @@ -310998,7 +324033,7 @@ }, "/foxsports/headlines": { "get": { - "description": "Returns current headlines from one public FOX Sports editorial RSS feed.", + "description": "Returns current FOX Sports headlines for one sport or topic. `section` is required and takes one of 23 slugs such as `top`, `nfl`, `nba`, `college-football`, `ufc`, `golf` or `fifa-world-cup`; others return an invalid-parameter error. Feeds follow FOX Sports' own curation and can include related cross-sport items.", "operationId": "foxsports-headlines", "parameters": [ { @@ -311077,7 +324112,7 @@ }, "/foxsports/news": { "get": { - "description": "Returns current FOX Sports top stories from the official public All Headlines RSS feed.", + "description": "Returns current cross-sport stories from FOX Sports' All Headlines feed. Each item has its title and canonical story URL, plus summary, publication time, author and image when FOX Sports supplies them. Takes no parameters.", "operationId": "foxsports-news", "produces": [ "application/json" @@ -311115,7 +324150,7 @@ }, "/foxsports/sections": { "get": { - "description": "Returns the live-verified public editorial RSS feed inventory used by foxsports-headlines.", + "description": "Lists the 23 FOX Sports editorial feeds accepted by `foxsports-headlines`, including `top`, `mlb`, `nfl`, `soccer`, `olympics` and `wwe`. Each entry has the `slug`, `name` and feed `url`. The All Headlines feed is served by `foxsports-news`, not as a section; checked 2026-09-28.", "operationId": "foxsports-sections", "produces": [ "application/json" @@ -311249,7 +324284,7 @@ }, "/france24/headlines": { "get": { - "description": "Returns fresh headlines from one public France 24 English-edition section.", + "description": "Returns the latest France 24 English-edition headlines for one section. `section` is required and must be one of `africa`, `americas`, `asia-pacific`, `europe`, `france`, `middle-east`, `business-tech`, `culture`, `environment`, `sport`, `live-news` or `tv-shows`. Each item has its title, URL, summary, publication time and author.", "operationId": "france24-headlines", "parameters": [ { @@ -311311,7 +324346,7 @@ }, "/france24/news": { "get": { - "description": "Returns fresh France 24 English-edition stories from the public RSS feed.", + "description": "Returns the current France 24 English-edition top stories. Each item has its title, URL, summary, publication time and author. Takes no parameters; use `france24-headlines` for a single region or topic.", "operationId": "france24-news", "produces": [ "application/json" @@ -311343,7 +324378,7 @@ }, "/france24/sections": { "get": { - "description": "Returns the complete public France 24 English-edition section inventory (regions, topics, and other public hubs) accepted by /france24/headlines.", + "description": "Lists the 12 France 24 English-edition sections accepted by `france24-headlines`: six regions, four topics, the `live-news` wire-briefs hub and the `tv-shows` programmes hub. Each entry has the `slug`, display `name` and section `url`.", "operationId": "france24-sections", "produces": [ "application/json" @@ -311830,7 +324865,7 @@ }, "/gamerant/article": { "get": { - "description": "Returns public Game Rant article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Game Rant article by its `https://gamerant.com//` `url`. The response has the title, description, publish and update times, section, authors, lead image and body `paragraphs`. Section hubs, video pages and author pages are rejected as invalid parameters; `paywalled` is set only if the page declares the article not free.", "operationId": "gamerant-article", "parameters": [ { @@ -311890,7 +324925,7 @@ }, "/gamerant/author": { "get": { - "description": "Returns a Game Rant author's byline metadata, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns a Game Rant author profile for a `url` of the form `https://gamerant.com/author//`. The response has the name, title, image, biography, `social_links` (type and URL) and about 20 latest articles. Paginated author URLs are rejected, so older articles are not available.", "operationId": "gamerant-author", "parameters": [ { @@ -312178,7 +325213,7 @@ }, "/gamerant/news": { "get": { - "description": "Returns fresh Game Rant top stories from its public RSS feed.", + "description": "Lists the latest Game Rant stories, about 10 items. Each item has its title, canonical URL, summary, publish time, author names (co-authors are joined with a comma) and lead image. Takes no parameters.", "operationId": "gamerant-news", "produces": [ "application/json" @@ -312216,7 +325251,7 @@ }, "/gamerant/sections": { "get": { - "description": "Returns the public Game Rant RSS section inventory used by the headlines endpoint.", + "description": "Lists the 178 Game Rant section slugs accepted by `gamerant-headlines`, covering platforms (`pc-news`, `ps5-news`, `nintendo-switch-news`), franchises (`fortnite-news`, `pokemon-news`, `fallout-news`), `anime` and `game-reviews`. Each entry has the `slug`, `name` and feed `url`.", "operationId": "gamerant-sections", "produces": [ "application/json" @@ -312248,7 +325283,7 @@ }, "/gamesradar/article": { "get": { - "description": "Returns public GamesRadar+ article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one GamesRadar+ article by its canonical `gamesradar.com` `url`. The response has the title, description, publish and update times, section, authors, lead image and body `paragraphs`. Game and hardware review pages work too, taking the author from the page byline when no article-level author exists.", "operationId": "gamesradar-article", "parameters": [ { @@ -312302,7 +325337,7 @@ }, "/gamesradar/author": { "get": { - "description": "Returns one GamesRadar+ author's public profile: name, job title, biography, social links, and one page of their recent articles.", + "description": "Returns a GamesRadar+ author profile, found by `slug` (for example `rosalie-newcombe`) or by `url`; send exactly one. `page` (1-based, default 1) overrides any page in the URL. The response has the name, job title, biography, `social_links`, one page of articles, `page` and `has_next_page`.", "operationId": "gamesradar-author", "parameters": [ { @@ -312369,7 +325404,7 @@ }, "/gamesradar/headlines": { "get": { - "description": "Returns fresh GamesRadar+ headlines from one public section hub page.", + "description": "Returns the latest GamesRadar+ headlines for one section. `section` is required and takes one of 21 slugs such as `games`, `games-reviews`, `hardware-news`, `entertainment-tv`, `lego` or `dungeons-and-dragons`. Each item has its title, URL and `type`, plus publication time, author and image when the section page shows them.", "operationId": "gamesradar-headlines", "parameters": [ { @@ -312440,7 +325475,7 @@ }, "/gamesradar/news": { "get": { - "description": "Returns fresh GamesRadar+ top stories from the public RSS feed.", + "description": "Returns the current GamesRadar+ top stories. Each item has its title, URL, summary, publication time, author and image. Takes no parameters; use `gamesradar-headlines` for a single games, hardware or entertainment section.", "operationId": "gamesradar-news", "produces": [ "application/json" @@ -312478,7 +325513,7 @@ }, "/gamesradar/sections": { "get": { - "description": "Returns the public GamesRadar+ editorial taxonomy used by the headlines endpoint.", + "description": "Lists the 21 GamesRadar+ sections accepted by `gamesradar-headlines`, from top-level hubs like `games`, `hardware` and `entertainment` to sub-sections such as `games-guides`, `hardware-reviews` and `entertainment-streaming`. Each entry has the `slug`, `name` and `url`.", "operationId": "gamesradar-sections", "produces": [ "application/json" @@ -312504,7 +325539,7 @@ }, "/gbnews/article": { "get": { - "description": "Returns public GB News article metadata and body paragraphs from a canonical story URL.", + "description": "Returns one GB News story by its `gbnews.com` `url` (news, opinion or sport; query strings are ignored). The response has the title, description, publish and update times, section label, authors, lead image and body `paragraphs`, without captions or widgets. `paywalled` is never set. Video, audio, author and hub pages return an error.", "operationId": "gbnews-article", "parameters": [ { @@ -312618,7 +325653,7 @@ }, "/gbnews/headlines": { "get": { - "description": "Returns fresh GB News headlines from one public section or topic feed.", + "description": "Returns the latest GB News headlines for one section or topic. `section` is required and takes a site path such as `news`, `news/uk/london`, `news/world/ukraine`, `news/us` or `news/migrant-crisis`; the accepted values are listed by `gbnews-sections`. Each item has its title, URL, summary, publication time, author and image.", "operationId": "gbnews-headlines", "parameters": [ { @@ -313058,7 +326093,7 @@ }, "/gbnews/news": { "get": { - "description": "Returns fresh GB News top stories from the public news feed.", + "description": "Returns the latest 30 GB News top stories. Each item has a title, canonical URL, summary (the story's first paragraph), publication time, author name and lead image, when GB News provides them. Takes no parameters.", "operationId": "gbnews-news", "produces": [ "application/json" @@ -313096,7 +326131,7 @@ }, "/gbnews/sections": { "get": { - "description": "Returns the public GB News section and topic taxonomy accepted by the headlines endpoint.", + "description": "Lists the 390 GB News sections and topics accepted by `gbnews-headlines`. Each entry has a `slug` that is the path on the site, such as `news/uk/scotland` or `news/world/china`, a display `name` and the feed `url`. Takes no parameters.", "operationId": "gbnews-sections", "produces": [ "application/json" @@ -313137,7 +326172,7 @@ "consumes": [ "application/json" ], - "description": "Search recent (last 72 hours) GDELT-monitored news for", + "description": "Searches the last 72 hours of GDELT-monitored news for sentences where every term of the required `query` appears together. Returns up to `maxrecords` rows (default 75, max 200), each with the matching sentence, its surrounding context, title, URL, domain, language and an `is_quote` flag. Filter with `domain`, `language`, `is_quote`, `timespan` or `from` and `to`, and order with `sort`.", "operationId": "gdelt-context", "parameters": [ { @@ -313256,7 +326291,7 @@ "consumes": [ "application/json" ], - "description": "Search the GDELT Project's continuously updated global news", + "description": "Searches global news coverage indexed by GDELT for the required `query`, which accepts quoted phrases, `(a OR b)`, `theme:`, `tone//` or `/the-curator///`. The response has the title, description, section, authors, lead image, publish and update times, the body as `paragraphs`, and a `paywalled` flag.", "operationId": "globalnews-article", "parameters": [ { @@ -317073,7 +330108,7 @@ }, "/globalnews/author": { "get": { - "description": "Returns a Global News author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns a Global News author profile by `url`, a canonical `https://globalnews.ca/author//` link. The response has the author's `name`, `biography`, `image_url` and a list of recent articles. `title`, `image_url` and `biography` appear only if the author page shows them, and each article's `published_at` is relative text such as `2 hours` or `Sep 16`, not a timestamp.", "operationId": "globalnews-author", "parameters": [ { @@ -317127,7 +330162,7 @@ }, "/globalnews/headlines": { "get": { - "description": "Returns fresh headlines from one public Global News RSS section.", + "description": "Returns recent Global News headlines for one section. `section` is required and takes a slug such as `canada`, `world`, `money`, `us-news`, `the-curator` or a local-station slug like `toronto` or `calgary`. Each item has its title and URL, plus summary, author, publication time and image when the outlet provides them.", "operationId": "globalnews-headlines", "parameters": [ { @@ -317210,7 +330245,7 @@ }, "/globalnews/news": { "get": { - "description": "Returns fresh Global News (globalnews.ca) top stories from its public RSS feed.", + "description": "Returns the latest top stories from Global News (globalnews.ca), with no parameters. Each item has its title and URL, plus summary, author, publication time and image when the outlet provides them, so it works as a quick check on what the outlet is leading with.", "operationId": "globalnews-news", "produces": [ "application/json" @@ -317604,7 +330639,7 @@ }, "/gmanews/headlines": { "get": { - "description": "Returns fresh GMA News Online headlines from one public section RSS feed.", + "description": "Returns up to 15 of the newest GMA News Online stories for one section, newest first. `section` is required and takes one of 44 slugs such as `topstories-world`, `money-economy`, `sports-nba` or `showbiz`. Each item has `title`, `url`, `summary`, `published_at` (UTC) and `image_url`. Quiet sections can return only a few items. An invalid or missing `section` returns 400.", "operationId": "gmanews-headlines", "parameters": [ { @@ -317736,7 +330771,7 @@ }, "/gmanews/sections": { "get": { - "description": "Returns the public GMA News Online section feeds accepted by the headlines endpoint.", + "description": "Lists the 44 GMA News Online sections accepted by `gmanews-headlines`, each with a `slug`, display `name` and `url`. Slugs run from `topstories` and `money` to sub-sections such as `sports-basketball` and `lifestyle-travel`. Video, photo and TV-show sections are excluded. Takes no parameters.", "operationId": "gmanews-sections", "produces": [ "application/json" @@ -317771,7 +330806,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of one of GOAT's curated product collections (an editorial rail like \"top trending\" or \"new arrivals\"), the same call GOAT's own product-page \"you may also like\" rails and homepage modules use. Collection slugs are not enumerable by this API -- capture one from a live GOAT page. Credential-free public data.", + "description": "Returns a page of one of GOAT's curated product collections (an editorial rail like \"top trending\" or \"new arrivals\"), as shown in GOAT's own product-page \"you may also like\" rails and homepage modules. Collection slugs are not enumerable by this API -- capture one from a live GOAT page.", "operationId": "goat-collection", "parameters": [ { @@ -317855,7 +330890,7 @@ "consumes": [ "application/json" ], - "description": "Returns every country GOAT recognizes -- the accepted values for GET /goat/product/{slug}'s country_code parameter -- with the currency and size unit (us, uk, eu) GOAT localizes to for each, plus whether GOAT ships and accepts returns there. Every country is listed, not only the shippable ones, because country_code localizes pricing and is accepted for all of them; filter on ships_to if you want only GOAT's shipping destinations. Credential-free public data.", + "description": "Returns every country GOAT recognizes -- the accepted values for GET /goat/product/{slug}'s country_code parameter -- with the currency and size unit (us, uk, eu) GOAT localizes to for each, plus whether GOAT ships and accepts returns there. Every country is listed, not only the shippable ones, because country_code localizes pricing and is accepted for all of them; filter on ships_to if you want only GOAT's shipping destinations.", "operationId": "goat-countries", "produces": [ "application/json" @@ -317896,7 +330931,7 @@ "consumes": [ "application/json" ], - "description": "Returns the shelf of editorially curated links GOAT is currently promoting in its own search box: seasonal collections, specific product searches, and browse-all entry points. Every link is actionable against this API -- a collection link carries a value for GET /goat/collection, a search link carries a query for GET /goat/search. Credential-free public data.", + "description": "Returns the shelf of editorially curated links GOAT is currently promoting in its own search box: seasonal collections, specific product searches, and browse-all entry points. Every link is actionable against this API -- a collection link carries a value for GET /goat/collection, a search link carries a query for GET /goat/search.", "operationId": "goat-curated", "produces": [ "application/json" @@ -317937,7 +330972,7 @@ "consumes": [ "application/json" ], - "description": "Returns how many listings GOAT currently has live across its whole marketplace. This is the only way to see GOAT's true catalog size, because GET /goat/search's total_results saturates at 10000 on a broad query and cannot report a total above that ceiling. Credential-free public data.", + "description": "Returns how many listings GOAT currently has live across its whole marketplace. This is the only way to see GOAT's true catalog size, because GET /goat/search's total_results saturates at 10000 on a broad query and cannot report a total above that ceiling.", "operationId": "goat-listings-count", "produces": [ "application/json" @@ -317978,7 +331013,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized GOAT product: identity/descriptive metadata (name, brand, SKU, colorway, designer, silhouette, taxonomy, materials, release date, retail price, editorial story, images, full size range, other products featured alongside it), plus live per-size/condition pricing and stock status (lowest price, GOAT Instant Ship price, last sold price, highest current buyer offer). Credential-free public data combining GOAT's own product-page payload with its live pricing and offers APIs.", + "description": "Returns a GOAT product: identity/descriptive metadata (name, brand, SKU, colorway, designer, silhouette, taxonomy, materials, release date, retail price, editorial story, images, full size range, other products featured alongside it), plus live per-size/condition pricing and stock status (lowest price, GOAT Instant Ship price, last sold price, highest current buyer offer).", "operationId": "goat-product", "parameters": [ { @@ -318048,7 +331083,7 @@ "consumes": [ "application/json" ], - "description": "Returns the recommended/related products GOAT's own product page shows for a given product (other colorways, similar products) -- descriptive metadata only, no live pricing. Credential-free public data from GOAT's own product-page recommendation API.", + "description": "Returns the recommended/related products GOAT's own product page shows for a given product (other colorways, similar products) -- descriptive metadata only, no live pricing.", "operationId": "goat-product-recommended", "parameters": [ { @@ -318118,7 +331153,7 @@ "consumes": [ "application/json" ], - "description": "Searches or browses GOAT's sneaker/streetwear/collectibles catalog by free-text query and/or facet filters (category, footwear sub-type, activity, color, gender, condition, brand, release year, price range, release-date range, silhouette, designer, in-stock/under-retail/instant-ship, curated collection), returning normalized product summaries (brand, silhouette, category, image, stock status, headline pricing across all sizes) plus the total matching count. Query is optional -- a facet filter alone browses the catalog the same way GOAT's own category/brand pages do. Credential-free public data from the same JSON API backing GOAT's own search page.", + "description": "Searches or browses GOAT's sneaker/streetwear/collectibles catalog by free-text query and/or facet filters (category, footwear sub-type, activity, color, gender, condition, brand, release year, price range, release-date range, silhouette, designer, in-stock/under-retail/instant-ship, curated collection), returning product summaries (brand, silhouette, category, image, stock status, headline pricing across all sizes) plus the total matching count. Query is optional -- a facet filter alone browses the catalog the same way GOAT's own category/brand pages do.", "operationId": "goat-search", "parameters": [ { @@ -318387,7 +331422,7 @@ "consumes": [ "application/json" ], - "description": "Returns the accepted values for goat_search's filter parameters: categories, colors, genders, conditions, brands, and years are read live from GOAT's own search API so a value GOAT adds is discoverable without any client-side change, while product_types and activities are served from a maintained list because GOAT exposes no live facet for them. brands is GOAT's top brands ordered by product count, not the complete brand list -- when brands_truncated is true, brands beyond the ones listed exist and remain valid goat_search values. Credential-free public data.", + "description": "Returns the accepted values for goat_search's filter parameters: categories, colors, genders, conditions, brands, and years are returned live so a value GOAT adds is discoverable without any client-side change, while product_types and activities are served from a maintained list because GOAT exposes no live facet for them. brands is GOAT's top brands ordered by product count, not the complete brand list -- when brands_truncated is true, brands beyond the ones listed exist and remain valid goat_search values.", "operationId": "goat-search-facets", "produces": [ "application/json" @@ -318428,7 +331463,7 @@ "consumes": [ "application/json" ], - "description": "Returns the search terms GOAT is currently surfacing as popular, in GOAT's own ranking order -- the same list its own search box shows. Each term is free text ready to pass to GET /goat/search's query parameter. Credential-free public data.", + "description": "Returns the search terms GOAT is currently surfacing as popular, in GOAT's own ranking order -- the same list its own search box shows. Each term is free text ready to pass to GET /goat/search's query parameter.", "operationId": "goat-trending-searches", "produces": [ "application/json" @@ -318469,7 +331504,7 @@ "consumes": [ "application/json" ], - "description": "Returns GOAT's own search-box autocomplete for a partial query: matching curated collections and matching products. The collections carry the slug values accepted by GET /goat/collection and by GET /goat/search's collection_slug parameter, making this the way to discover collection slugs. Credential-free public data.", + "description": "Returns GOAT's own search-box autocomplete for a partial query: matching curated collections and matching products. The collections carry the slug values accepted by GET /goat/collection and by GET /goat/search's collection_slug parameter, making this the way to discover collection slugs.", "operationId": "goat-suggest", "parameters": [ { @@ -318898,7 +331933,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Goodreads author profile: bio, birth/death dates, website, genres, photo, and aggregate rating stats. Credential-free public Goodreads data.", + "description": "Returns a Goodreads author profile: bio, birth/death dates, website, genres, photo, and aggregate rating stats.", "operationId": "goodreads-author", "parameters": [ { @@ -318961,7 +331996,7 @@ "consumes": [ "application/json" ], - "description": "Returns an author's paginated works list (title, author, average rating, ratings count). Credential-free public Goodreads data.", + "description": "Lists the books of a Goodreads author by author `id`, about 30 per page; `page` is 1-based and defaults to 1. Each book has its `id`, title, author, average rating, ratings count and Goodreads URL, and the `id` can be used to look up the full book.", "operationId": "goodreads-author-books", "parameters": [ { @@ -319030,7 +332065,7 @@ "consumes": [ "application/json" ], - "description": "Returns an author's paginated attributed-quotes list (quote text, tags, like count, and — when the quote is credited to a specific book — that book's title, id, and work id). Credential-free public Goodreads data.", + "description": "Returns an author's paginated attributed-quotes list (quote text, tags, like count, and — when the quote is credited to a specific book — that book's title, id, and work id).", "operationId": "goodreads-author-quotes", "parameters": [ { @@ -319099,7 +332134,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Goodreads book: description, authors, series, genres, format, pages, publisher, publication date, ISBNs, and aggregate rating with the full 1-5 star distribution. Credential-free public Goodreads data (goodreads.com), parsed from the book page's embedded GraphQL cache.", + "description": "Returns a Goodreads book: description, authors, series, genres, format, pages, publisher, publication date, ISBNs, and aggregate rating with the full 1-5 star distribution.", "operationId": "goodreads-book", "parameters": [ { @@ -319162,7 +332197,7 @@ "consumes": [ "application/json" ], - "description": "Returns a work's paginated edition list (per-edition book id, format, page count, publication date, publisher, ISBN/ISBN13/ASIN, language, and rating) — every other translation, printing, and format of the requested book id. Goodreads keys editions by a separate \"work id\", not the book id in the path, so this makes one extra internal request to resolve it; requests against a book with no editions data return an upstream error.", + "description": "Returns a work's paginated edition list (per-edition book id, format, page count, publication date, publisher, ISBN/ISBN13/ASIN, language, and rating) — every other translation, printing, and format of the requested book id. Goodreads keys editions by a separate \"work id\", not the book id in the path; requests against a book with no editions data return an upstream error.", "operationId": "goodreads-book-editions", "parameters": [ { @@ -319231,7 +332266,7 @@ "consumes": [ "application/json" ], - "description": "Returns a book's featured reviews (reviewer, rating, text, date, like/comment counts, spoiler flag), sorted by like count. Credential-free public Goodreads data.", + "description": "Returns a book's featured reviews (reviewer, rating, text, date, like/comment counts, spoiler flag), sorted by like count.", "operationId": "goodreads-book-reviews", "parameters": [ { @@ -319300,7 +332335,7 @@ "consumes": [ "application/json" ], - "description": "Returns up to 50 books on a Goodreads genre/shelf tag page (e.g. fantasy, romance, science-fiction), Goodreads' credential-free per-tag \"top books\" view: title, author, average rating, ratings count, publication year, and how many times the book was shelved under this specific tag. Goodreads' genre/shelf taxonomy is an open, user-generated folksonomy of thousands of tags, not a small fixed list, so there is no directory endpoint — pass any known tag slug, e.g. from a book's genres[] field or a value seen on goodreads.com. There is no pagination beyond the first 50.", + "description": "Returns up to 50 books on a Goodreads genre/shelf tag page (e.g. fantasy, romance, science-fiction), Goodreads' per-tag \"top books\" view: title, author, average rating, ratings count, publication year, and how many times the book was shelved under this specific tag. Goodreads' genre/shelf taxonomy is an open, user-generated folksonomy of thousands of tags, not a small fixed list, so there is no directory endpoint — pass any known tag slug, e.g. from a book's genres[] field or a value seen on goodreads.com. There is no pagination beyond the first 50.", "operationId": "goodreads-genre", "parameters": [ { @@ -319363,7 +332398,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Goodreads Listopia list (ranked book list) by id, paginated. Credential-free public Goodreads data; page 1 of well-known lists may be served from a faster live source, with the public list page itself as fallback for every other case.", + "description": "Returns a Goodreads Listopia list (ranked book list) by id, paginated.", "operationId": "goodreads-list", "parameters": [ { @@ -319473,7 +332508,7 @@ "consumes": [ "application/json" ], - "description": "Searches Goodreads books by title/author. Credential-free public Goodreads data via the autocomplete endpoint (book results only).", + "description": "Searches Goodreads for books by title or author using `q`, returning up to `limit` results (default 10, max 50). Each result has its id, title, author and author id, average rating, ratings count, page count, a truncated description, cover image URL and Goodreads URL. Only books are returned, not authors or lists.", "operationId": "goodreads-search", "parameters": [ { @@ -319640,7 +332675,7 @@ "consumes": [ "application/json" ], - "description": "Returns the brand-name medications GoodRx features on its brand-name drugs page, with price-page slugs.", + "description": "Lists the brand-name drugs GoodRx features on its brand-name drugs page. Each entry has the drug name, `slug`, GoodRx URL, description, information URL and lowest price where shown. The `slug` feeds the drug prices endpoint. If GoodRx is unreachable, a retained copy up to about a day old is returned and flagged with an `X-Availability-Mode: stale` header.", "operationId": "goodrx-brands", "produces": [ "application/json" @@ -319744,7 +332779,7 @@ "consumes": [ "application/json" ], - "description": "Returns every drug class in GoodRx's class directory with slugs for /goodrx/class.", + "description": "Lists the drug classes in GoodRx's class directory, such as ACE Inhibitors, with each class name, GoodRx URL and the `slug` used to look up that class. If GoodRx is unreachable, a retained copy up to about a day old is returned and flagged with an `X-Availability-Mode: stale` header.", "operationId": "goodrx-classes", "produces": [ "application/json" @@ -319848,7 +332883,7 @@ "consumes": [ "application/json" ], - "description": "Returns GoodRx's head-to-head drug comparisons grouped by health topic, with slugs for /goodrx/comparison.", + "description": "Lists GoodRx's head-to-head drug comparisons grouped by health topic, for example ADHD. Each comparison has a name, a `slug` for the comparison lookup and its GoodRx URL. If GoodRx is unreachable, a retained copy up to about a day old is returned and flagged with an `X-Availability-Mode: stale` header.", "operationId": "goodrx-comparisons", "produces": [ "application/json" @@ -320015,7 +333050,7 @@ "consumes": [ "application/json" ], - "description": "Returns every health condition in GoodRx's conditions directory, with slugs and whether GoodRx publishes a medications list for /goodrx/condition-drugs.", + "description": "Lists the health conditions in GoodRx's conditions directory, with each condition's name, `slug` and GoodRx URL. `has_medications` tells you whether GoodRx publishes a medications list for that condition. If GoodRx is unreachable, a retained copy up to about a day old is returned and flagged with an `X-Availability-Mode: stale` header.", "operationId": "goodrx-conditions", "produces": [ "application/json" @@ -320455,7 +333490,7 @@ "consumes": [ "application/json" ], - "description": "Returns every drug in one letter of GoodRx's A-Z drug directory, with the price-page slug and drug-information URL.", + "description": "Lists the drugs GoodRx files under one letter of its A-Z directory, chosen with the required `letter` (`a` to `z`). Each drug has its name, price-page `slug`, GoodRx URL and drug-information URL. If GoodRx is unreachable, a retained copy up to about a day old is returned and flagged with an `X-Availability-Mode: stale` header.", "operationId": "goodrx-drugs", "parameters": [ { @@ -320768,7 +333803,7 @@ "consumes": [ "application/json" ], - "description": "Returns the drugs that have a GoodRx cat and dog information page, with slugs for /goodrx/drug-info with audience=pets.", + "description": "Lists the drugs that have a GoodRx information page for cats and dogs (21 on 2026-10-03). Each entry has the drug `slug` and the URL of its pet page; the `slug` can be passed to the drug information lookup with `audience=pets`. A retained copy up to about a day old is returned, flagged `X-Availability-Mode: stale`, if GoodRx is unreachable.", "operationId": "goodrx-pet-medications", "produces": [ "application/json" @@ -320809,7 +333844,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Google Careers posting by its numeric job id (the `id` field returned by search). Parsed from careers.google.com's server-rendered job detail page.", + "description": "Returns one Google Careers posting by its numeric job id (the `id` field returned by search).", "operationId": "google-jobs-job", "parameters": [ { @@ -320943,7 +333978,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized analyst article results for a quote.", + "description": "Returns the analyst articles Google Finance shows for a quote such as `AAPL:NASDAQ`. Each article has its title, source, URL, publication time (ISO and Unix), thumbnail and the related instruments with price, change and exchange. Articles come back only when Google Finance has them for that quote.", "operationId": "google-finance-analyst-articles", "parameters": [ { @@ -321006,7 +334041,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized chart points for a quote and window.", + "description": "Returns the price chart for a Google Finance quote such as `AAPL:NASDAQ` or `BTC-USD` over a window from `1d` to `max` (default `1d`). Each point has a time, price and volume; the response also carries the instrument's name, exchange, currency, current price, change and previous close.", "operationId": "google-finance-chart", "parameters": [ { @@ -321075,7 +334110,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized classification strings for a quote.", + "description": "Returns the category labels Google Finance assigns to a quote such as `AAPL:NASDAQ`, for example Technology, in `categories`. The response also carries the instrument itself: ticker, exchange, name, current price, change, previous close, currency and after-hours data.", "operationId": "google-finance-classification", "parameters": [ { @@ -321138,7 +334173,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized company information from Google Finance.", + "description": "Returns Google Finance company details for a quote such as `AAPL:NASDAQ`: description, CEO, employee count, headquarters, sector, market capitalisation, P/E ratio, open, day high and low, 52-week high and low, and volume.", "operationId": "google-finance-company", "parameters": [ { @@ -321201,7 +334236,7 @@ "consumes": [ "application/json" ], - "description": "Searches Google Finance for instruments matching a company name or ticker query and returns normalized results with ticker, exchange, name, price, currency, and change data. Use a returned ticker with quote, company, chart, or news endpoints.", + "description": "Searches Google Finance for instruments matching a company name or ticker query and returns results with ticker, exchange, name, price, currency, and change data. Use a returned ticker with quote, company, chart, or news endpoints.", "operationId": "google-finance-context", "parameters": [ { @@ -321264,7 +334299,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized annual and quarterly financial rows when Google Finance has statement data for the quote.", + "description": "Returns the financial statements Google Finance holds for a quote such as `AAPL:NASDAQ`, as `annual` and `quarterly` rows plus a `currency`. Each row has revenue, net income, EBITDA, EPS, margins, cash flow, assets, liabilities and equity. The rows are empty when Google Finance has no statement data for the quote.", "operationId": "google-finance-financials", "parameters": [ { @@ -321327,7 +334362,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized news for a Google Finance category.", + "description": "Returns Google Finance news for one market category, identified by the `category` path id. Use `offset` to page through results. Each item has its title, URL and publication time (ISO and Unix), plus the source, a thumbnail and any related quotes with price, change and percent change when Google provides them. The response also echoes `category` and `offset`.", "operationId": "google-finance-markets-category-news", "parameters": [ { @@ -321396,7 +334431,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized instruments for a Google Finance category.", + "description": "Lists the instruments in one Google Finance market category, chosen by the required `category` id and paged with `offset`. Each item has its ticker, exchange, name, price, change and change percent, previous close, currency, country and after-hours data.", "operationId": "google-finance-markets-category-stocks", "parameters": [ { @@ -321465,7 +334500,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized earnings calendar instruments.", + "description": "Returns the Google Finance earnings calendar. Each item has the company name, fiscal period, event time (including a Unix timestamp), conference call phone and URL when listed, and the instrument with its ticker, exchange, price and change.", "operationId": "google-finance-markets-earnings", "produces": [ "application/json" @@ -321506,7 +334541,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized featured instruments.", + "description": "Returns the stocks Google Finance features on its markets page. Each instrument has its ticker, exchange, name, price, change and change percent, previous close, currency, country, time zone and after-hours data.", "operationId": "google-finance-markets-featured", "produces": [ "application/json" @@ -321547,7 +334582,7 @@ "consumes": [ "application/json" ], - "description": "Returns the top Google Finance headline.", + "description": "Returns the top headline on Google Finance markets as one article: title, source, URL, publication time (ISO and Unix), thumbnail and the related instruments with price and change. The article is present only when Google Finance shows a headline.", "operationId": "google-finance-markets-headline", "produces": [ "application/json" @@ -321588,7 +334623,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized market index instruments.", + "description": "Returns the market indices Google Finance lists, such as the Dow Jones Industrial Average. Each index has its ticker, exchange, name, current value, change and change percent, previous close and last update time.", "operationId": "google-finance-markets-indices", "produces": [ "application/json" @@ -321629,7 +334664,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized market mover instruments.", + "description": "Lists Google Finance market movers. `categories` takes comma-separated numeric categories, `count` sets how many items to return (default 20) and `offset` skips ahead. Each item has its ticker, exchange, name, price, change and change percent, and previous close.", "operationId": "google-finance-markets-movers", "parameters": [ { @@ -321702,7 +334737,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized top instruments for a Google Finance metric.", + "description": "Lists the top Google Finance instruments for a ranking metric. `metric` is a Google Finance metric id (default 6) and `page` is the page number (default 1). Each item has its ticker, exchange, name, price, change and change percent, and previous close.", "operationId": "google-finance-markets-top", "parameters": [ { @@ -321757,7 +334792,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized trending instruments.", + "description": "Returns the instruments currently trending on Google Finance, up to `limit` items (default 18). Each has its ticker, exchange, name, price, change and change percent, previous close, currency and after-hours data.", "operationId": "google-finance-markets-trending", "parameters": [ { @@ -321806,7 +334841,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized news articles for a quote.", + "description": "Returns recent Google Finance news for one quote, such as `AAPL:NASDAQ`, given in the `quote` path parameter. `limit` caps the number of articles and defaults to 6. Each article has its title, source, URL, publication time (ISO and Unix), thumbnail, and related quotes with price and change data.", "operationId": "google-finance-news", "parameters": [ { @@ -321875,7 +334910,7 @@ "consumes": [ "application/json" ], - "description": "Fetches the latest quote data for a provided stock symbol from Google Finance https://www.google.com/finance/quote/AAPL:NASDAQ?hl=en.", + "description": "Returns the Google Finance quote page for a symbol such as `AAPL:NASDAQ` or `BTC-USD`. The response carries key stats, an about section (CEO, employees, founded, headquarters, website), news, and investment tables for the income statement, balance sheet and cash flow by quarter and year.", "operationId": "google-finance-quote", "parameters": [ { @@ -321926,7 +334961,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized related instruments for a quote.", + "description": "Returns the instruments Google Finance lists as related to a quote such as `AAPL:NASDAQ`. The response gives the queried `instrument` and an `items` list, each with ticker, exchange, name, price, change and change percent, and previous close.", "operationId": "google-finance-related", "parameters": [ { @@ -321989,7 +335024,7 @@ "consumes": [ "application/json" ], - "description": "Fetches normalized search results for a provided keyword from Google Finance.", + "description": "Searches Google Finance for instruments matching `q`, such as a company name. Each match has its ticker, exchange, company name, currency, price, change and percentage change.", "operationId": "google-finance-search", "parameters": [ { @@ -322046,7 +335081,7 @@ "consumes": [ "application/json" ], - "description": "Fetches chart ticker data from Google Finance based on a provided ticker and window period.", + "description": "Returns the price series Google Finance charts for a ticker such as `AAPL:NASDAQ` or `BTC-USD`. `window` sets the range: `1d` (default), `5d`, `1m`, `6m`, `ytd`, `1y`, `5y` or `max`. Each point has a `time`, `price` and `volume`.", "operationId": "google-finance-ticker", "parameters": [ { @@ -322109,7 +335144,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Google Jobs results parsed from public Google web responses.", + "description": "Searches Google Jobs for the `query` in the request body, optionally narrowed by `location` and paged with `page`. Each result has the job title, company, location, employment type, posting time, snippet, source and URL. The response echoes the query, location and page.", "operationId": "google-jobs", "parameters": [ { @@ -322167,7 +335202,7 @@ "consumes": [ "application/json" ], - "description": "Returns detailed information for a specified place_id. Rate limit is enforced at 1 request per second.", + "description": "Returns the Google Maps details of one place by its Google `place_id`: name, categories, address, coordinates, phone, website, description, image, amenities, rating and review count. `rating` is `null` when the place has no aggregate rating on Google.", "operationId": "google-map-place", "parameters": [ { @@ -322368,7 +335403,7 @@ "consumes": [ "application/json" ], - "description": "Returns results from Google Maps based on search options. Rate limit is enforced at 1 request per second.", + "description": "Searches Google Maps with a request body of `keyword`, `language` and `country` (an ISO-2 code such as `us`), all required. Each place has its name, place id, categories, address, coordinates, phone, website, rating and review count. `rating` is `null` when Google has no aggregate rating.", "operationId": "google-map-search", "parameters": [ { @@ -322432,7 +335467,7 @@ "consumes": [ "application/json" ], - "description": "Returns current Google News search results using anonymous HTTP requests with fresh proxy profiles, without browser rendering. Pages slice the finite result snapshot; they do not traverse the Google Search index. Results include title, source, publisher article URL, age, and thumbnail when available. Valid no-results searches and exhausted pages return an empty array. Locale defaults to country=us and lang=en. Returns 503 for blocked or malformed upstream responses.", + "description": "Returns current Google News search results. Pages slice the finite result snapshot; they do not traverse the Google Search index. Results include title, source, publisher article URL, age, and thumbnail when available. Valid no-results searches and exhausted pages return an empty array. Locale defaults to country=us and lang=en. Returns 503 for blocked or malformed upstream responses.", "operationId": "google-news", "parameters": [ { @@ -322524,7 +335559,7 @@ "consumes": [ "application/json" ], - "description": "Restored JSON compatibility endpoint. Returns current Google News articles using anonymous HTTP requests with fresh proxy profiles, without browser rendering. Pages slice the finite current result snapshot. Uses the legacy result array and field names; no-results searches and exhausted pages return an empty result array.", + "description": "Restored JSON compatibility endpoint. Returns current Google News articles. Pages slice the finite current result snapshot. Uses the legacy result array and field names; no-results searches and exhausted pages return an empty result array.", "operationId": "google-news-search", "parameters": [ { @@ -322690,7 +335725,7 @@ }, "/google/trends/categories": { "get": { - "description": "Returns supported top-level Google Trends category ids and labels for Trending Now category filters.", + "description": "Returns the top-level Google Trends categories as id and name pairs, such as 0 for All and 20 for Sports. These are the ids accepted by the Trending Now category filter.", "operationId": "google-trends-categories", "produces": [ "application/json" @@ -322769,7 +335804,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Google Trends keyword analytics from internal Trends widget requests: interest over time, interest by region, related queries, and related topics when available.", + "description": "Returns Google Trends keyword analytics: interest over time, interest by region, related queries, and related topics when available.", "operationId": "google-trends-explore", "parameters": [ { @@ -322897,7 +335932,7 @@ "consumes": [ "application/json" ], - "description": "Returns only the interest-over-time timeline from the Google Trends Explore widget flow. Supports multiple comparison terms.", + "description": "Returns Google Trends interest over time for 1 to 5 `keywords`. Optional inputs are `geo` (default worldwide), `time_range` (default `today 12-m`), `hl`, `tz`, `category` and `type` (`web`, `image`, `news`, `youtube` or `shopping`). Each time point carries a value per keyword, with a `has_data` flag.", "operationId": "google-trends-explore-interest-over-time", "parameters": [ { @@ -323150,7 +336185,7 @@ }, "/google/trends/locations": { "get": { - "description": "Returns supported Google Trends location codes. Explore endpoints also accept WORLDWIDE.", + "description": "Returns the list of location codes that Google Trends supports, such as `US`, `HK` and `GB`, in `locations`. The Explore endpoints also accept `WORLDWIDE`, which appears in the list. It takes no parameters.", "operationId": "google-trends-locations", "produces": [ "application/json" @@ -323191,7 +336226,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Google Trends Trending Now rows from the internal TrendsUi batch RPC replay.", + "description": "Returns Google Trends Trending Now for a country or territory (`geo`, default `US`): each trend's query, rank, search traffic, status, start and update time, related terms and news articles, with explore and share links. Filter by time window, category and status, and choose the sort order.", "operationId": "google-trends-trending", "parameters": [ { @@ -323675,7 +336710,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Google video vertical results (title, platform, link, duration, age) parsed from the public Google video results page. Locale defaults to country=us and lang=en. Returns 503 when Google serves a challenge page or unusable HTML.", + "description": "Returns Google video vertical results (title, platform, link, duration, age). Locale defaults to country=us and lang=en. Returns 503 when Google serves a challenge page or an unusable response.", "operationId": "google-videos", "parameters": [ { @@ -323885,7 +336920,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single patent's normalized detail: title, abstract, inventors, assignees, dates, legal status, CPC/IPC classifications, claims, description, patent citations, cited-by patents, family members, and similar documents. `number` is a publication number such as `US10758101B2`, `EP1000000A1`, or `WO2020123456A1`. Public data, sourced from Google Patents' server-rendered detail pages. To search or browse by keyword, inventor, or assignee instead of a known publication number, use `/googlepatents/search`.", + "description": "Returns a single patent's detail: title, abstract, inventors, assignees, dates, legal status, CPC/IPC classifications, claims, description, patent citations, cited-by patents, family members, and similar documents. `number` is a publication number such as `US10758101B2`, `EP1000000A1`, or `WO2020123456A1`. To search or browse by keyword, inventor, or assignee instead of a known publication number, use `/googlepatents/search`.", "operationId": "googlepatents-detail", "parameters": [ { @@ -324030,7 +337065,7 @@ "consumes": [ "application/json" ], - "description": "Searches Google Patents' full index by free-text query, with optional inventor, assignee, patent office, status, type, language, and date filters. Returns a page of normalized hits plus top-assignee/top-inventor/top-classification breakdowns over the full result set. Public data, sourced from Google Patents' own search API.", + "description": "Searches Google Patents' full index by free-text query, with optional inventor, assignee, patent office, status, type, language, and date filters. Returns a page of hits plus top-assignee/top-inventor/top-classification breakdowns over the full result set.", "operationId": "googlepatents-search", "parameters": [ { @@ -324288,7 +337323,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized app metadata from a Google Play details page, including installs, ratings, pricing, version info, developer metadata, media assets, release state, selected user comments, and \"More by this developer\" and \"Similar apps\" recommendation rails. For a per-device (phone/tablet/Chromebook) ratings-and-reviews breakdown, see `/googleplay/ratings`. Defaults: `country=us`, `lang=en`.", + "description": "Returns app metadata from a Google Play details page, including installs, ratings, pricing, version info, developer metadata, media assets, release state, selected user comments, and \"More by this developer\" and \"Similar apps\" recommendation rails. For a per-device (phone/tablet/Chromebook) ratings-and-reviews breakdown, see `/googleplay/ratings`. Defaults: `country=us`, `lang=en`.", "operationId": "googleplay-app", "parameters": [ { @@ -324365,7 +337400,7 @@ "consumes": [ "application/json" ], - "description": "Returns category ids found in the Google Play apps navigation.", + "description": "Lists the Google Play app categories and subcategories, each with an id such as `PRODUCTIVITY` and a display name. `country` and `lang` take two-letter codes to pick the storefront and the language of the names.", "operationId": "googleplay-categories", "parameters": [ { @@ -324434,7 +337469,7 @@ "consumes": [ "application/json" ], - "description": "Returns the data safety information displayed on Google Play.", + "description": "Returns the data safety section Google Play shows for an app, by the required `app_id`. It lists the data the app collects and shares, each with its type, purpose and whether it is optional, plus the app's security practices and privacy policy URL. `lang` sets the language.", "operationId": "googleplay-datasafety", "parameters": [ { @@ -324504,7 +337539,7 @@ "consumes": [ "application/json" ], - "description": "Returns apps published by a developer id or developer name.", + "description": "Lists the Google Play apps published by one developer, by developer id or name, for an optional country and language. `num` sets how many apps to return, and `full_detail=true` resolves each app to its full detail record instead of the listing summary. Returns the developer id and name with the app list.", "operationId": "googleplay-developer", "parameters": [ { @@ -324595,7 +337630,7 @@ "consumes": [ "application/json" ], - "description": "Returns apps from a Google Play collection and category.", + "description": "Lists apps from a Google Play chart. `collection` is `TOP_FREE`, `TOP_PAID`, `GROSSING`, `NEW_FREE` or `NEW_PAID`, and `category`, `device`, `age`, `num`, `country` and `lang` narrow it. Set `full_detail` to get full app details instead of the compact card.", "operationId": "googleplay-list", "parameters": [ { @@ -324722,7 +337757,7 @@ "consumes": [ "application/json" ], - "description": "Returns Google Play permission groups or a short permission name list.", + "description": "Returns the permissions a Google Play app requests, by the required `app_id`. Each entry has the permission name and its type. Set `short` to get only the permission names as a flat list. `country` and `lang` pick the storefront and language.", "operationId": "googleplay-permissions", "parameters": [ { @@ -324883,7 +337918,7 @@ "consumes": [ "application/json" ], - "description": "Returns one or more pages of app reviews. Set `paginate=true` to fetch only the requested page.", + "description": "Returns Google Play reviews for an app by `app_id`. `sort` is `newest` (default), `helpfulness` or `rating`, and `num` is up to 1000 per request (default 100). Each review has its text, score, date, thumbs-up count, app version and any developer reply. Pass `next_pagination_token` back to continue.", "operationId": "googleplay-reviews", "parameters": [ { @@ -324992,7 +338027,7 @@ "consumes": [ "application/json" ], - "description": "Returns Google Play search results for a term.", + "description": "Searches Google Play for apps matching the required `term`, up to `num` results (default 20, max 250). `price` is `all` (default), `free` or `paid`, and `country` and `lang` default to `us` and `en`. A strong exact match is placed first. An empty list means no apps matched.", "operationId": "googleplay-search", "parameters": [ { @@ -325095,7 +338130,7 @@ "consumes": [ "application/json" ], - "description": "Returns apps from the \"Similar apps\" cluster on an app details page.", + "description": "Returns the apps in the Similar apps cluster on a Google Play app page, for the required `app_id`. `num` limits how many are returned, `country` and `lang` set the storefront and language, and `full_detail` returns full app details instead of compact cards.", "operationId": "googleplay-similar", "parameters": [ { @@ -325186,7 +338221,7 @@ "consumes": [ "application/json" ], - "description": "Returns up to 10 suggestions for a search term.", + "description": "Returns up to 10 Google Play search suggestions for the term prefix in the path. `country` and `lang` take two-letter codes to pick the storefront and language. Each suggestion is a `term`.", "operationId": "googleplay-suggest", "parameters": [ { @@ -325320,7 +338355,7 @@ }, "/gq/author": { "get": { - "description": "Returns one GQ contributor's public profile: name, biography, headshot, social links, and one page of their recent articles.", + "description": "Returns a GQ contributor profile, identified by `slug` (such as `tom-ward`) or by a canonical `url`; provide exactly one. The response has the name, job title, biography, headshot, social links and one page of recent articles. `page` runs from 1 to 100 (default 1) and `has_next_page` signals more. Unknown contributors return 404.", "operationId": "gq-author", "parameters": [ { @@ -325387,7 +338422,7 @@ }, "/gq/headlines": { "get": { - "description": "Returns the current story cards from one GQ section page: headline, standfirst, byline, publish date, and image.", + "description": "Returns the story cards currently on one GQ section page. `section` is required and takes one of 11 slugs such as `style`, `grooming`, `watches` or `gqsports`. Each item has its `title`, `url`, `summary`, `author`, `image_url` and a `published_at` date (`YYYY-MM-DD`). Only `/story/` articles are listed, and fields GQ does not show are omitted.", "operationId": "gq-headlines", "parameters": [ { @@ -325448,7 +338483,7 @@ }, "/gq/news": { "get": { - "description": "Returns fresh GQ top stories from the public RSS feed.", + "description": "Returns GQ's current top stories, with no parameters. Each item has its `title`, `url`, `summary`, `author`, `image_url` and `published_at` as an RFC 3339 UTC timestamp. Only `/story/` articles are included; galleries and other content types are skipped.", "operationId": "gq-news", "produces": [ "application/json" @@ -325486,7 +338521,7 @@ }, "/gq/sections": { "get": { - "description": "Returns the GQ section (channel) slugs accepted by the headlines endpoint, each verified to list live stories.", + "description": "Lists the 11 GQ sections accepted by `gq-headlines`: `culture`, `entertainment`, `fitness`, `gq-hype`, `gq-recommends`, `gqsports`, `grooming`, `politics`, `style`, `watches` and `wellness`. Each entry has a `slug`, display `name` and section `url`. Pages that list no stories are not included.", "operationId": "gq-sections", "produces": [ "application/json" @@ -325730,7 +338765,7 @@ "consumes": [ "application/json" ], - "description": "Returns full normalized listing-detail data for one Grailed listing: description, every photo, measurements, designers, and the seller's full profile -- richer than the flattened summary grailed-search/grailed-sold-listings return per listing. id is the listing's numeric id, from a search or sold-listings result's own listings[].id field.", + "description": "Returns full listing-detail data for one Grailed listing: description, every photo, measurements, designers, and the seller's full profile -- richer than the flattened summary grailed-search/grailed-sold-listings return per listing. id is the listing's numeric id, from a search or sold-listings result's own listings[].id field.", "operationId": "grailed-listing", "parameters": [ { @@ -325793,7 +338828,7 @@ "consumes": [ "application/json" ], - "description": "Searches or browses Grailed's (grailed.com) peer-to-peer resale marketplace for currently-active listings. q, designer, department, category, size, color, condition, min_price, and max_price are all optional and combine as an AND -- a free-text q can be combined with any of the facet filters in the same request, or every field can be omitted to browse the full active catalog by Grailed's own \"heat\" relevance ranking. designer accepts one of the values grailed-designers' own designers[].name field returns; department, category, size, and color accept values from grailed-categories' own departments[].value/categories[].value/sizes[].value/colors[].value fields. condition and sort are fixed, closed enums (listed below). Keyword search is Algolia's own typo-tolerant relevance ranking, not a guaranteed exact match. A query with genuinely zero matches returns a well-formed empty result rather than an error.", + "description": "Searches or browses Grailed's (grailed.com) peer-to-peer resale marketplace for currently-active listings. q, designer, department, category, size, color, condition, min_price, and max_price are all optional and combine as an AND -- a free-text q can be combined with any of the facet filters in the same request, or every field can be omitted to browse the full active catalog by Grailed's own \"heat\" relevance ranking. designer accepts one of the values grailed-designers' own designers[].name field returns; department, category, size, and color accept values from grailed-categories' own departments[].value/categories[].value/sizes[].value/colors[].value fields. condition and sort are fixed, closed enums (listed below). Keyword search uses typo-tolerant relevance ranking, not a guaranteed exact match. A query with genuinely zero matches returns a well-formed empty result rather than an error.", "operationId": "grailed-search", "parameters": [ { @@ -327860,7 +340895,7 @@ }, "/guardian/article": { "get": { - "description": "Returns a Guardian article's public metadata and body paragraphs from a canonical article URL. Live-blog timelines are not supported.", + "description": "Returns a Guardian article by `url`, a canonical `www.theguardian.com` article link. The response has the title, description, section, authors, lead image, publication and update times, and the body as `paragraphs`. Live-blog timelines are not supported.", "operationId": "guardian-article", "parameters": [ { @@ -327995,7 +341030,7 @@ }, "/guardian/headlines": { "get": { - "description": "Returns fresh headlines from a public Guardian RSS section. section defaults to world.", + "description": "Returns recent Guardian headlines for one section. `section` is optional and defaults to `world`; the other values are `uk-news`, `us-news`, `politics`, `business`, `technology`, `environment`, `science`, `sport`, `culture`, `lifeandstyle` and `commentisfree`. Each item has a title, URL, summary, publication time and author, plus its section when available.", "operationId": "guardian-headlines", "parameters": [ { @@ -328255,7 +341290,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Gucci category/browse listing: normalized products (name, price, colors, images, stock) plus the upstream's own product count, page count, sibling-category counts, and sort options. category comes from gucci-categories' own category field. page selects how many of the upstream's own batches to accumulate -- Gucci's own category pages page this way: requesting page=N returns every product from page 1 through page N combined (its own \"Load All\" button simply requests the last page), not a single page's worth. Defaults to 1 (the upstream's own first batch, 36 products); request page equal to the response's own pages_count to fetch a category's complete listing in one call.", + "description": "Returns one Gucci category/browse listing: products (name, price, colors, images, stock) plus the upstream's own product count, page count, sibling-category counts, and sort options. category comes from gucci-categories' own category field. page selects how many of the upstream's own batches to accumulate -- Gucci's own category pages page this way: requesting page=N returns every product from page 1 through page N combined (its own \"Load All\" button simply requests the last page), not a single page's worth. Defaults to 1 (the upstream's own first batch, 36 products); request page equal to the response's own pages_count to fetch a category's complete listing in one call.", "operationId": "gucci-category", "parameters": [ { @@ -328388,7 +341423,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Gucci recommendations shelf: normalized product summaries (name, price, image, stock) from either a given product's own \"You May Also Like\" carousel (style_code set) or the site's general trending-items shelf (style_code omitted). style_code comes from gucci-search's or gucci-category's own style_code field.", + "description": "Returns one Gucci recommendations shelf: product summaries (name, price, image, stock) from either a given product's own \"You May Also Like\" carousel (style_code set) or the site's general trending-items shelf (style_code omitted). style_code comes from gucci-search's or gucci-category's own style_code field.", "operationId": "gucci-recommendations", "parameters": [ { @@ -328878,7 +341913,7 @@ }, "/gulfnews/article": { "get": { - "description": "Returns public Gulf News article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Gulf News article by `url`, a canonical `gulfnews.com` link whose path ends in the `-1.` suffix. The response has the title, description, section, authors, lead image, publish and update times, and body `paragraphs`. Section and author pages are rejected, and `paywalled` is omitted because sampled articles were freely readable.", "operationId": "gulfnews-article", "parameters": [ { @@ -328932,7 +341967,7 @@ }, "/gulfnews/author": { "get": { - "description": "Returns one Gulf News author's public profile: name, job title, bio, and their recent articles.", + "description": "Returns a Gulf News author profile, identified by `slug` (such as `nathaniel-lacsina`) or by a canonical `gulfnews.com/author/` `url`; provide exactly one. The response has the name, job title, bio and the single page of recent articles on the profile, each with `title`, `url` and sometimes a `summary`. Unknown authors return not found.", "operationId": "gulfnews-author", "parameters": [ { @@ -328992,7 +342027,7 @@ }, "/gulfnews/headlines": { "get": { - "description": "Returns fresh headlines from one public Gulf News section.", + "description": "Returns current Gulf News headlines for one section. `section` is required and takes one of 19 slugs such as `latest-news`, `business`, `uae`, `sport`, `living-in-uae` or `your-money`; other values return an invalid-params error. Each item has a title and canonical article URL.", "operationId": "gulfnews-headlines", "parameters": [ { @@ -329061,7 +342096,7 @@ }, "/gulfnews/news": { "get": { - "description": "Returns fresh Gulf News stories from the public site-wide RSS feed.", + "description": "Returns the latest Gulf News stories across all sections, with no parameters. Each item has its title, canonical article URL, publication time and lead image. The listing carries no summary text.", "operationId": "gulfnews-news", "produces": [ "application/json" @@ -329093,7 +342128,7 @@ }, "/gulfnews/sections": { "get": { - "description": "Returns the public Gulf News editorial section inventory.", + "description": "Lists the 19 top-level Gulf News sections accepted by `gulfnews-headlines`, such as `latest-news`, `business`, `uae`, `world`, `sport` and `things-to-do`. Each entry has a `slug`, display `name` and section `url`. Sub-sections such as `business/aviation` are not separate values; their stories appear under the parent.", "operationId": "gulfnews-sections", "produces": [ "application/json" @@ -329122,7 +342157,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Gymshark (https://row.gymshark.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Gymshark (https://row.gymshark.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "gymshark-collections", "parameters": [ { @@ -329185,7 +342220,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Gymshark (https://row.gymshark.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Gymshark (https://row.gymshark.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "gymshark-collection-products", "parameters": [ { @@ -329262,7 +342297,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Gymshark (https://row.gymshark.com). The storefront URL is fixed server-side.", + "description": "Lists Gymshark static pages, 50 per page by default (`limit` up to 250) with a 1-based `page`. Each has its handle, title, URL, plain-text content and timestamps. When `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`.", "operationId": "gymshark-pages", "parameters": [ { @@ -329325,7 +342360,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Gymshark (https://row.gymshark.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one Gymshark static page by its `handle`, such as `sports-bras`: title, handle, URL, plain-text content, and created, published and updated times. Page HTML is not returned. An unknown handle returns a 404. `id` is absent when `transport_mode` is `ssr_embedded`.", "operationId": "gymshark-page", "parameters": [ { @@ -329388,7 +342423,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Gymshark's (https://row.gymshark.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Gymshark's (https://row.gymshark.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "gymshark-products", "parameters": [ { @@ -329451,7 +342486,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Gymshark (https://row.gymshark.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Gymshark (https://row.gymshark.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "gymshark-product", "parameters": [ { @@ -329514,7 +342549,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Gymshark (https://row.gymshark.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Gymshark (https://row.gymshark.com) product handle. The storefront URL is fixed server-side.", "operationId": "gymshark-product-recommendations", "parameters": [ { @@ -329595,7 +342630,7 @@ "consumes": [ "application/json" ], - "description": "Returns capped URL entries from Gymshark's (https://row.gymshark.com) child sitemaps matching the requested type. The storefront URL is fixed server-side.", + "description": "Lists URL entries from Gymshark's sitemaps, filtered by `type` (`all` by default, `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`) and capped by `limit` (default 50, max 250). Each has its `loc`, type, handle, last modified date, change frequency and any images.", "operationId": "gymshark-sitemap-urls", "parameters": [ { @@ -329667,7 +342702,7 @@ "consumes": [ "application/json" ], - "description": "Returns child sitemap URLs from Gymshark's (https://row.gymshark.com) `/sitemap.xml` index with inferred sitemap types. The storefront URL is fixed server-side.", + "description": "Lists the child sitemaps in Gymshark's sitemap index. Each entry has its `loc` and a type of `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`. The type is worked out from the sitemap URL.", "operationId": "gymshark-sitemaps", "produces": [ "application/json" @@ -329714,7 +342749,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Gymshark (https://row.gymshark.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Gymshark (https://row.gymshark.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "gymshark-store", "produces": [ "application/json" @@ -329856,7 +342891,7 @@ }, "/hbr/headlines": { "get": { - "description": "Returns fresh entries from Harvard Business Review's public, site-wide \"The Latest\" content stream.", + "description": "Returns the latest items from Harvard Business Review's site-wide The Latest stream, with no parameters. Each item has its `title`, `url`, `summary`, `topic`, `content_type` (for example Digital Article), and `authors` and an `image_url` when available. Items carry no publication time.", "operationId": "hbr-headlines", "produces": [ "application/json" @@ -331168,7 +344203,7 @@ "consumes": [ "application/json" ], - "description": "Returns every specialty name and directory URL shown on Healthgrades' public A-Z specialty directory. Requests use US egress and Safari browser impersonation because the site restricts some content by region.", + "description": "Returns every specialty name and directory URL shown on Healthgrades' public A-Z specialty directory.", "operationId": "healthgrades-specialties", "produces": [ "application/json" @@ -331209,7 +344244,7 @@ "consumes": [ "application/json" ], - "description": "Returns Healthgrades' current popular specialty search suggestions.", + "description": "Returns the popular specialty searches Healthgrades currently suggests, in `groups`. Each group has a category, a title such as Popular Healthcare Specialties, and suggestions with a label and value. The set changes over time and is not a fixed list.", "operationId": "healthgrades-top-searches", "produces": [ "application/json" @@ -331345,7 +344380,7 @@ "consumes": [ "application/json" ], - "description": "Browses one Hermès product category and returns a page of normalized products (SKU, title, price with currency, colour, size, stock, images) plus the facet groups Hermès offers for that category, and the category's own title and description. The category parameter takes a category code from hermes-categories, which is the discovery endpoint for every accepted value. Page size is fixed at 48 by Hermès and cannot be changed. Prices are returned with the ISO-4217 currency for the selected market, since Hermès itself publishes bare numbers.", + "description": "Browses one Hermès product category and returns a page of products (SKU, title, price with currency, colour, size, stock, images) plus the facet groups Hermès offers for that category, and the category's own title and description. The category parameter takes a category code from hermes-categories, which is the discovery endpoint for every accepted value. Page size is fixed at 48 by Hermès and cannot be changed. Prices are returned with the ISO-4217 currency for the selected market, since Hermès itself publishes bare numbers.", "operationId": "hermes-category", "parameters": [ { @@ -331577,7 +344612,7 @@ "consumes": [ "application/json" ], - "description": "Returns the cross-sell shelves Hermès shows on a product page: \"keep exploring\" (similar items) and \"perfect partner\" (items styled with it), each a list of normalized products with price, stock and image. Takes the same sku forms as hermes-product. A product Hermès offers no recommendations for returns an empty shelves list rather than an error.", + "description": "Returns the cross-sell shelves Hermès shows on a product page: \"keep exploring\" (similar items) and \"perfect partner\" (items styled with it), each a list of products with price, stock and image. Takes the same sku forms as hermes-product. A product Hermès offers no recommendations for returns an empty shelves list rather than an error.", "operationId": "hermes-product-recommendations", "parameters": [ { @@ -331805,7 +344840,7 @@ "consumes": [ "application/json" ], - "description": "Searches the Hermès catalogue by keyword and returns a page of normalized products in the same shape as hermes-category. A query Hermès has no match for returns total 0 with an empty products array: Hermès itself renders unrelated fallback recommendations on a no-results page, and those are deliberately not returned as results. When Hermès applies its own spelling correction the corrected term is reported in results_for. Page size is fixed at 48 by Hermès and cannot be changed.", + "description": "Searches the Hermès catalogue by keyword and returns a page of products in the same shape as hermes-category. A query Hermès has no match for returns total 0 with an empty products array: Hermès itself renders unrelated fallback recommendations on a no-results page, and those are deliberately not returned as results. When Hermès applies its own spelling correction the corrected term is reported in results_for. Page size is fixed at 48 by Hermès and cannot be changed.", "operationId": "hermes-search", "parameters": [ { @@ -332238,7 +345273,7 @@ }, "/hindustantimes/headlines": { "get": { - "description": "Returns fresh headlines from one public Hindustan Times section.", + "description": "Returns current Hindustan Times headlines for one section. `section` is required and takes one of 24 slugs such as `india-news`, `world-news`, `cricket`, `business`, `htcity` or `editorials`. Each item has its title, URL, summary, author, publication time and image where the site provides them.", "operationId": "hindustantimes-headlines", "parameters": [ { @@ -332312,7 +345347,7 @@ }, "/hindustantimes/news": { "get": { - "description": "Returns fresh Hindustan Times top stories from its public \"Latest News\" feed.", + "description": "Returns Hindustan Times' current top stories from its Latest News listing, with no parameters. Each item has its title, URL, summary, author, publication time and image where available.", "operationId": "hindustantimes-news", "produces": [ "application/json" @@ -332350,7 +345385,7 @@ }, "/hindustantimes/sections": { "get": { - "description": "Returns the public Hindustan Times section inventory used by the headlines endpoint.", + "description": "Lists the 24 Hindustan Times sections accepted by `hindustantimes-headlines`, including `india-news`, `world-news`, `cricket`, `real-estate`, `nri` and `editors-pick`. Each entry has a `slug`, display `name` and section `url`. Takes no parameters.", "operationId": "hindustantimes-sections", "produces": [ "application/json" @@ -332441,7 +345476,7 @@ "consumes": [ "application/json" ], - "description": "Returns one H&M category's product listing page: normalized products with pricing, images, colors, and per-size stock, sourced from H&M's own app-backend listing data. category_id is an H&M category slug (e.g. ladies_newarrivals_all, men_newarrivals_all, ladies_jeans) -- this build does not expose a category/nav-tree discovery endpoint, so category_id values are currently sourced from known H&M storefront paths rather than a lookup call. Pagination is page-based and real: requesting a page beyond the category's real last page returns a normal response with an empty products array rather than an error.", + "description": "Returns one H&M category's product listing page: products with pricing, images, colors, and per-size stock. category_id is an H&M category slug (e.g. ladies_newarrivals_all, men_newarrivals_all, ladies_jeans) -- there is no category/nav-tree discovery endpoint, so category_id values come from known H&M storefront paths rather than a lookup call. Pagination is page-based and real: requesting a page beyond the category's real last page returns a normal response with an empty products array rather than an error.", "operationId": "hm-listing", "parameters": [ { @@ -332650,7 +345685,7 @@ "consumes": [ "application/json" ], - "description": "Runs a free-text keyword search against H&M's own app-backend search data and returns normalized products with pricing, images, colors, and per-size stock, plus search-quality metadata (a spelling-correction suggestion, related searches, and a content-filter flag). Unlike category browsing, an obscure or nonsense keyword returns a genuine empty result (zero products) rather than a fallback set. Pagination is page-based and real: requesting a page beyond the real last page returns a normal response with an empty products array rather than an error.", + "description": "Runs a free-text keyword search on H&M and returns products with pricing, images, colors, and per-size stock, plus search-quality metadata (a spelling-correction suggestion, related searches, and a content-filter flag). Unlike category browsing, an obscure or nonsense keyword returns a genuine empty result (zero products) rather than a fallback set. Pagination is page-based and real: requesting a page beyond the real last page returns a normal response with an empty products array rather than an error.", "operationId": "hm-search", "parameters": [ { @@ -332721,7 +345756,7 @@ "consumes": [ "application/json" ], - "description": "Returns H&M's own search-box typeahead suggestions, sourced from the same credential-free app-backend host as hm-listing/hm-search. When query is given, returns spelling-complete phrase suggestions and merchandised content results. When query is omitted or empty, instead returns trending searches and popular-search shortcuts (phrase/content suggestions are both empty in that mode). search_history is part of the real upstream response but confirmed NOT session-scoped -- it returned the identical list across separate cookie-free requests, so treat it as fixed default content rather than a real per-caller history.", + "description": "Returns H&M's own search-box typeahead suggestions. When query is given, returns spelling-complete phrase suggestions and merchandised content results. When query is omitted or empty, instead returns trending searches and popular-search shortcuts (phrase/content suggestions are both empty in that mode). search_history is not session-scoped -- it returns the identical list for every request, so treat it as fixed default content rather than a real per-caller history.", "operationId": "hm-search-suggestions", "parameters": [ { @@ -332960,7 +345995,7 @@ }, "/hollywoodreporter/headlines": { "get": { - "description": "Returns fresh headlines from one public The Hollywood Reporter section or editorial-vertical feed.", + "description": "Returns recent Hollywood Reporter headlines for one section or editorial vertical. `section` is required and takes one of 37 slugs such as `movie-reviews`, `tv-news`, `music-industry-news`, `awards`, `heat-vision` or `thr-esq`. Each item has its title and URL, plus summary, author, publication time and image when the outlet provides them.", "operationId": "hollywoodreporter-headlines", "parameters": [ { @@ -333047,7 +346082,7 @@ }, "/hollywoodreporter/news": { "get": { - "description": "Returns fresh The Hollywood Reporter entertainment-industry top stories from its public RSS feed.", + "description": "Returns The Hollywood Reporter's current top entertainment-industry stories from its home feed, with no parameters. Each item has its title and URL, plus summary, author, publication time and image when the outlet provides them.", "operationId": "hollywoodreporter-news", "produces": [ "application/json" @@ -333155,7 +346190,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of a Home Depot category or brand browse page's product grid: normalized products with title, image, model, current/original price, and rating/review count, plus the category's total result count and the refinement facets the page offers. path is the segment of a /b/ URL after \"/b/\", e.g. \"Tools-Power-Tools-Drills-Impact-Drivers/N-5yc1vZc29x\"; a full https://www.homedepot.com/b/... URL or a \"/b/...\" path is also accepted. sort selects the result ordering and is one of best_match, top_sellers, top_rated, price_low_to_high, price_high_to_low, most_popular, delivery_date; omit it to keep the site's default ordering. page is a 1-indexed page number (default 1, maximum 42), 24 products per page. Each returned facet's path is directly usable as this endpoint's own path parameter to drill down. An unrecognized or blocked path returns an upstream error rather than an empty result.", + "description": "Returns one page of a Home Depot category or brand browse page's product grid: products with title, image, model, current/original price, and rating/review count, plus the category's total result count and the refinement facets the page offers. path is the segment of a /b/ URL after \"/b/\", e.g. \"Tools-Power-Tools-Drills-Impact-Drivers/N-5yc1vZc29x\"; a full https://www.homedepot.com/b/... URL or a \"/b/...\" path is also accepted. sort selects the result ordering and is one of best_match, top_sellers, top_rated, price_low_to_high, price_high_to_low, most_popular, delivery_date; omit it to keep the site's default ordering. page is a 1-indexed page number (default 1, maximum 42), 24 products per page. Each returned facet's path is directly usable as this endpoint's own path parameter to drill down. An unrecognized or blocked path returns an upstream error rather than an empty result.", "operationId": "homedepot-category", "parameters": [ { @@ -333361,7 +346396,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of a Home Depot keyword search's product listing: normalized products with title, image, model, current/original price, and rating/review count, plus the search's total result count. A page carries up to 24 products, or up to 12 when Home Depot answers the query with a category page. q is free-text search keywords, e.g. \"impact driver\". page is a 1-indexed page number (default 1). An unrecognized/blocked query returns an upstream error rather than an empty result.", + "description": "Returns one page of a Home Depot keyword search's product listing: products with title, image, model, current/original price, and rating/review count, plus the search's total result count. A page carries up to 24 products, or up to 12 when Home Depot answers the query with a category page. q is free-text search keywords, e.g. \"impact driver\". page is a 1-indexed page number (default 1). An unrecognized/blocked query returns an upstream error rather than an empty result.", "operationId": "homedepot-search", "parameters": [ { @@ -333479,7 +346514,7 @@ }, "/hotels/autocomplete": { "get": { - "description": "Returns anonymous Hotels.com search-box suggestions for a partial destination or property name. Availability and prices are not included.", + "description": "Returns Hotels.com search-box suggestions for a partial destination or property name in `q` (up to 120 characters). Each suggestion has its type, primary and secondary text, full location name, coordinates, and region or property id. A query with no match returns an empty `suggestions` list.", "operationId": "hotels-autocomplete", "parameters": [ { @@ -333676,7 +346711,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Hotels.com property's date-bound rates and availability: the same normalized property card Search returns, with the live per-night and per-stay prices Hotels.com shows for the requested dates. property_id is the numeric global property id from a Search response's properties[].id; it is distinct from the legacy /ho/ URL id.", + "description": "Returns one Hotels.com property's date-bound rates and availability: the same property card Search returns, with the live per-night and per-stay prices Hotels.com shows for the requested dates. property_id is the numeric global property id from a Search response's properties[].id; it is distinct from the legacy /ho/ URL id.", "operationId": "hotels-rates", "parameters": [ { @@ -333886,7 +346921,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of date-bound Hotels.com hotel search results for either a free-text destination or a numeric Hotels.com region_id: normalized property cards with per-night and per-stay prices, review score and count, location, thumbnail, amenities, and promotional badges. Provide exactly one of query or region_id; region_id skips destination typeahead resolution. Prices are the live rates Hotels.com shows for the requested check-in and check-out dates.", + "description": "Returns a page of date-bound Hotels.com hotel search results for either a free-text destination or a numeric Hotels.com region_id: property cards with per-night and per-stay prices, review score and count, location, thumbnail, amenities, and promotional badges. Provide exactly one of query or region_id; region_id skips destination typeahead resolution. Prices are the live rates Hotels.com shows for the requested check-in and check-out dates.", "operationId": "hotels-search", "parameters": [ { @@ -334007,7 +347042,7 @@ }, "/houston-chronicle/author": { "get": { - "description": "Returns an author's public profile and recent story cards from a canonical Houston Chronicle author URL.", + "description": "Returns a Houston Chronicle author profile by `url`, a canonical `houstonchronicle.com/author//` link. The response has the `name`, `job_title`, `biography`, `image_url`, social profile links in `same_as`, and recent article cards with title, URL and summary.", "operationId": "houston-chronicle-author", "parameters": [ { @@ -334146,7 +347181,7 @@ }, "/houston-chronicle/news": { "get": { - "description": "Returns current public Houston Chronicle homepage stories. The public RSS endpoint returned no usable items; this uses the credential-free homepage and preserves publisher premium markers on article responses.", + "description": "Returns current public Houston Chronicle homepage stories. Publisher premium markers are preserved on article responses.", "operationId": "houston-chronicle-news", "produces": [ "application/json" @@ -334248,7 +347283,7 @@ }, "/huffpost/article": { "get": { - "description": "Returns public HuffPost article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a HuffPost article by `url`, a canonical `huffpost.com/entry/__` link. The response has the title, description, section, authors, lead image, publish and update times, body `paragraphs` and a `paywalled` flag.", "operationId": "huffpost-article", "parameters": [ { @@ -334302,7 +347337,7 @@ }, "/huffpost/author": { "get": { - "description": "Returns one HuffPost author or contributor's public profile: name, job title, headshot, biography, social links, and their recent articles.", + "description": "Returns a HuffPost author or contributor profile by `url`, a canonical `https://www.huffpost.com/author/` link. The response has the name, recent articles, and, when the profile shows them, `job_title`, `image_url`, `biography` and `social_links` (platform and URL). Outside contributors often lack most of these optional fields.", "operationId": "huffpost-author", "parameters": [ { @@ -334356,7 +347391,7 @@ }, "/huffpost/headlines": { "get": { - "description": "Returns fresh headlines from one public HuffPost topic hub.", + "description": "Returns current HuffPost headlines for one topic hub. `section` is required and takes a slug that can include a path, such as `news/politics`, `impact/green`, `entertainment/tv`, `life/travel` or `voices/black-voices`. Each item has its title, URL and image. Summary, author and publication time are not returned.", "operationId": "huffpost-headlines", "parameters": [ { @@ -334446,7 +347481,7 @@ }, "/huffpost/news": { "get": { - "description": "Returns fresh HuffPost top stories from its public homepage.", + "description": "Returns HuffPost's current top stories from its homepage, with no parameters. Each item has its title, URL and image where available. Summary, author and publication time are not returned.", "operationId": "huffpost-news", "produces": [ "application/json" @@ -334478,7 +347513,7 @@ }, "/huffpost/sections": { "get": { - "description": "Returns the live-verified public HuffPost topic-hub inventory used by the headlines endpoint.", + "description": "Lists the topic hubs accepted by `huffpost-headlines`, such as `news/politics`, `impact/business`, `life/travel` and `voices/latino-voices`. Each entry has a `slug`, display `name` and hub `url`. Games, Horoscopes, Newsletters and HuffPost's international editions are excluded.", "operationId": "huffpost-sections", "produces": [ "application/json" @@ -334558,7 +347593,7 @@ }, "/ign/author": { "get": { - "description": "Returns one IGN author's public profile: name, job title, location, biography, social links, and their recent articles.", + "description": "Returns an IGN author profile by `url`, a canonical `https://www.ign.com/person/` link. The response has the `username`, name, job title, location, biography, headshot, `social_links` (platform and URL) and the author's recent articles.", "operationId": "ign-author", "parameters": [ { @@ -334612,7 +347647,7 @@ }, "/ign/headlines": { "get": { - "description": "Returns fresh IGN headlines from one public section feed.", + "description": "Returns current IGN headlines for one section. `section` is required and takes one of `news`, `reviews`, `games`, `movies`, `tv`, `tech`, `nintendo`, `playstation`, `xbox`, `pc`, `mobile` or `comics`. Each item has its title and URL, plus summary, author, publication time and image when the outlet provides them.", "operationId": "ign-headlines", "parameters": [ { @@ -334674,7 +347709,7 @@ }, "/ign/news": { "get": { - "description": "Returns fresh IGN top stories (gaming and entertainment news) from the public RSS feed.", + "description": "Returns IGN's current top stories on gaming and entertainment, with no parameters. Each item has its title and URL, plus summary, author, publication time and image when the outlet provides them, covering games, film and TV news in one list.", "operationId": "ign-news", "produces": [ "application/json" @@ -334712,7 +347747,7 @@ }, "/ign/sections": { "get": { - "description": "Returns the public IGN section taxonomy used by the headlines endpoint.", + "description": "Lists the 12 IGN sections accepted by `ign-headlines`: `news`, `reviews`, `games`, `movies`, `tv`, `tech`, `nintendo`, `playstation`, `xbox`, `pc`, `mobile` and `comics`. Each entry has a `slug`, display `name` and `url`.", "operationId": "ign-sections", "produces": [ "application/json" @@ -335001,7 +348036,7 @@ }, "/ikea/product": { "get": { - "description": "Returns one IKEA item's full normalized detail: name, price, rating, every product image, quick facts, and category breadcrumb path. item_no is IKEA's own item number (8 digits, optionally prefixed with \"s\" for a combination/set article), taken from a search result's item_no field or an ikea.com product page's own URL.", + "description": "Returns one IKEA item's full detail: name, price, rating, every product image, quick facts, and category breadcrumb path. item_no is IKEA's own item number (8 digits, optionally prefixed with \"s\" for a combination/set article), taken from a search result's item_no field or an ikea.com product page's own URL.", "operationId": "ikea-product", "parameters": [ { @@ -335149,7 +348184,7 @@ }, "/ikea/search": { "get": { - "description": "Searches IKEA products and returns normalized name, price, rating, images, colors, and variant data. q is a free-text query; an IKEA item number also resolves as its own single result. country and language select IKEA's per-country site (default us/en). A zero total with an empty products list is a valid no-results response.", + "description": "Searches IKEA products and returns name, price, rating, images, colors, and variant data. q is a free-text query; an IKEA item number also resolves as its own single result. country and language select IKEA's per-country site (default us/en). A zero total with an empty products list is a valid no-results response.", "operationId": "ikea-search", "parameters": [ { @@ -335440,7 +348475,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized rows from public IMDb title charts. Chart values: `top_rated_movies`, `top_rated_tv_shows`, `most_popular_movies`, `most_popular_tv_shows`, `top_rated_english_movies`, `lowest_rated_movies`.", + "description": "Returns an IMDb title chart, chosen with `chart`: `top_rated_movies` (default), `top_rated_tv_shows`, `most_popular_movies`, `most_popular_tv_shows`, `top_rated_english_movies` or `lowest_rated_movies`. `limit` sets the rows (default 25, max 250). Each title has its rank, id, year, rating, rating count and credits.", "operationId": "imdb-charts", "parameters": [ { @@ -335564,7 +348599,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb person metadata and known-for rows. Pass exactly one of `id` or `url`.", + "description": "Returns an IMDb person's profile. Pass exactly one of `id` (such as `nm0634240`) or `url`. The response has the name, biography, birth and death dates, birth place, professions, image and a known-for list of titles with year and credit category.", "operationId": "imdb-name", "parameters": [ { @@ -335639,7 +348674,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb award rows for a person. Pass exactly one of `id` or `url`.", + "description": "Returns the awards IMDb lists for a person. Pass exactly one of `id` or `url`. Each row has the event, year, category, `win` or `nomination` result, award name, recipients and related titles. `total` is the count IMDb lists, and `has_more` is true when fewer rows are returned.", "operationId": "imdb-name-awards", "parameters": [ { @@ -335714,7 +348749,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb filmography sections for a person. Pass exactly one of `id` or `url`.", + "description": "Returns a person's IMDb filmography, grouped into sections such as Actor, Director and Self. Pass exactly one of `id` or `url`. Each credit has its title, year, role and episode count. A section returns up to 100 credits, so `total` can exceed the rows returned.", "operationId": "imdb-name-credits", "parameters": [ { @@ -335970,7 +349005,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized IMDb title search rows from credential-free public IMDb pages. Limit defaults to 10 and clamps to 20.", + "description": "Searches IMDb titles by `query`, returning up to `limit` rows (default 10, max 20). Each result has the title id, title, URL, year, title type, image and a description holding the lead cast. A query with no matches returns an empty `results` list.", "operationId": "imdb-search", "parameters": [ { @@ -336046,7 +349081,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized IMDb advanced title-search results (imdb.com/search/title/) from a credential-free public IMDb page. At least one filter is required; sort/limit alone are not enough. Limit defaults to 25 and clamps to 50; only IMDb's first rendered page of results is returned (see `total`/`has_more`), there is no deeper cursor pagination. Genre/company/certificate/country/language/keyword/characters/role are include-only lists; there is no exclude support. Unsupported: genre exclude, three curated `groups` values (best-picture-nominee, best-director-nominee, national-film-registry), and the non-plot \"page topic\" search fields.", + "description": "Returns IMDb advanced title-search results (imdb.com/search/title/). At least one filter is required; sort/limit alone are not enough. Limit defaults to 25 and clamps to 50; only IMDb's first page of results is returned (see `total`/`has_more`), there is no deeper cursor pagination. Genre/company/certificate/country/language/keyword/characters/role are include-only lists; there is no exclude support. Unsupported: genre exclude, three curated `groups` values (best-picture-nominee, best-director-nominee, national-film-registry), and the non-plot \"page topic\" search fields.", "operationId": "imdb-search-title", "parameters": [ { @@ -336295,7 +349330,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized IMDb title metadata from a credential-free public IMDb title page. Pass exactly one of `id` or `url`.", + "description": "Returns an IMDb title's details. Pass exactly one of `id` (such as `tt1375666`) or `url`. The response has the title, type, year, release date, runtime, genres, plot, content rating, rating and count, popularity rank, directors and up to three lead cast. Rating and cast fields appear only when present.", "operationId": "imdb-title", "parameters": [ { @@ -336370,7 +349405,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb award rows for a title. Pass exactly one of `id` or `url`.", + "description": "Returns the awards IMDb lists for a title. Pass exactly one of `id` or `url`. Each row has the event, year, category, `win` or `nomination` result, award name, recipients and notes. `total` is the number IMDb lists and `has_more` is true when only part is returned.", "operationId": "imdb-title-awards", "parameters": [ { @@ -336520,7 +349555,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb company-credit sections for a title. Pass exactly one of `id` or `url`.", + "description": "Returns the company credits IMDb lists for a title, in sections such as production companies and distributors. Pass exactly one of `id` or `url`. Each company has its name, URL and a qualifier note. `total` is the count IMDb lists, so a short list is normal on popular titles.", "operationId": "imdb-title-company-credits", "parameters": [ { @@ -336677,7 +349712,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb full cast and crew sections. Pass exactly one of `id` or `url`.", + "description": "Returns the full cast and crew IMDb lists for a title, in named sections. Pass exactly one of `id` or `url`. Each credit has a name, IMDb name URL, role and, for cast, the character. The cast returns up to 2,000 rows and other sections up to 100.", "operationId": "imdb-title-credits", "parameters": [ { @@ -336752,7 +349787,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb episode rows for a series title. Limit defaults to 10 and clamps to 20. Optional `season` filters the upstream episodes page. Pass exactly one of `id` or `url`.", + "description": "Returns public IMDb episode rows for a series title. Limit defaults to 10 and clamps to 20. Optional `season` filters the episodes returned. Pass exactly one of `id` or `url`.", "operationId": "imdb-title-episodes", "parameters": [ { @@ -336841,7 +349876,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb filming-location rows for a title. Pass exactly one of `id` or `url`.", + "description": "Returns the filming locations IMDb lists for a title. Pass exactly one of `id` or `url`. Each location has its text and an optional note. `total` is the count IMDb lists, `has_more` shows when the list is cut short, and a title with none returns an empty list with `total` 0.", "operationId": "imdb-title-filming-locations", "parameters": [ { @@ -336916,7 +349951,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb goof rows for a title. Pass exactly one of `id` or `url`.", + "description": "Returns the goofs IMDb lists for a title. Pass exactly one of `id` or `url`. Each entry in `facts` has the text, a `spoiler` flag and, when IMDb groups it, a category such as Continuity. `total` is the count IMDb lists and `has_more` is true when only part is returned.", "operationId": "imdb-title-goofs", "parameters": [ { @@ -337090,7 +350125,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb keyword rows for a title. Pass exactly one of `id` or `url`.", + "description": "Returns the plot keywords IMDb lists for a title. Pass exactly one of `id` or `url`. Each keyword has its text and an IMDb search URL for that keyword. `total` is the count IMDb lists, so a short list is normal on popular titles.", "operationId": "imdb-title-keywords", "parameters": [ { @@ -337165,7 +350200,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb parental-guide categories and severity signals. Pass exactly one of `id` or `url`.", + "description": "Returns the IMDb parental guide for a title. Pass exactly one of `id` or `url`. Categories such as violence, profanity and frightening scenes carry a severity of `none`, `mild`, `moderate` or `severe` and the guide text. A `summary` gives counts and the highest severity. Spoiler items are excluded.", "operationId": "imdb-title-parental-guide", "parameters": [ { @@ -337315,7 +350350,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb quote rows for a title. Pass exactly one of `id` or `url`.", + "description": "Returns the quotes IMDb lists for a title. Pass exactly one of `id` or `url`. Each entry in `facts` is a whole exchange, with lines prefixed by the speaker, plus a `spoiler` flag. `total` is the count IMDb lists, so a short list is normal on popular titles.", "operationId": "imdb-title-quotes", "parameters": [ { @@ -337447,7 +350482,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb release date rows and alternate titles. Pass exactly one of `id` or `url`.", + "description": "Returns the release dates and alternate titles IMDb lists for a title. Pass exactly one of `id` or `url`. Releases have a country, date and note; alternate titles have a country, title and type. Both lists are often shorter than `total` and `alternate_titles_total`.", "operationId": "imdb-title-release-info", "parameters": [ { @@ -337522,7 +350557,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb user review rows. Limit defaults to 10 and clamps to 20. Pass exactly one of `id` or `url`.", + "description": "Returns public IMDb user review rows. Limit defaults to 10 and clamps to 20. Pass exactly one of `id` or `url`.", "operationId": "imdb-title-reviews", "parameters": [ { @@ -337604,7 +350639,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized titles from IMDb's public More like this recommendations. Pass exactly one of `id` or `url`.", + "description": "Returns the titles in IMDb's More like this recommendations for a title. Pass exactly one of `id` (such as `tt0111161`) or `url`. Each title has its id, name, URL, year, type, runtime, content rating, rating, rating count and image.", "operationId": "imdb-title-similar", "parameters": [ { @@ -337661,7 +350696,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb technical specifications such as runtime, sound mix, color, and aspect ratio. Pass exactly one of `id` or `url`.", + "description": "Returns public IMDb technical specifications such as runtime, sound mix, color, and aspect ratio. Pass exactly one of `id` or `url`.", "operationId": "imdb-title-technical-specs", "parameters": [ { @@ -337736,7 +350771,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public IMDb trivia rows for a title. Pass exactly one of `id` or `url`.", + "description": "Returns the trivia IMDb lists for a title. Pass exactly one of `id` or `url`. Each entry in `facts` has the text, a `spoiler` flag and, for grouped items, a category such as Director Trademark. `total` is the count IMDb lists and `has_more` is true when only part is returned.", "operationId": "imdb-title-trivia", "parameters": [ { @@ -337893,7 +350928,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized ImportYeti company report: identity, headline US customs shipment-volume metrics (total shipments, average TEU, last shipment date, estimated shipping spend), its supplier list, and recent bill-of-lading shipment activity. Credential-free public data, rendered from the company report page through proxied browser renderers.", + "description": "Returns an ImportYeti company report: identity, headline US customs shipment-volume metrics (total shipments, average TEU, last shipment date, estimated shipping spend), its supplier list, and recent bill-of-lading shipment activity.", "operationId": "importyeti-company", "parameters": [ { @@ -337956,7 +350991,7 @@ "consumes": [ "application/json" ], - "description": "Searches ImportYeti for companies and suppliers matching a name, returning each match's kind (company or supplier), slug, country, address, and headline shipment stats. A \"company\" result's slug chains into GET /importyeti/company. Credential-free public data, sourced from ImportYeti's own JSON search API (distinct from its human-facing /search results page, which does not render due to a client-side bug in ImportYeti's own app).", + "description": "Searches ImportYeti for companies and suppliers matching a name, returning each match's kind (company or supplier), slug, country, address, and headline shipment stats. A \"company\" result's slug chains into GET /importyeti/company.", "operationId": "importyeti-search", "parameters": [ { @@ -338020,7 +351055,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Indeed job posting by its job key (the `job_key` field returned by search). Primary transport is Indeed's own credential-free GraphQL API; falls back to the original web-page transport if that fails.", + "description": "Returns one Indeed job posting by its job key (the `job_key` field returned by search).", "operationId": "indeed-job", "parameters": [ { @@ -338083,7 +351118,7 @@ "consumes": [ "application/json" ], - "description": "Returns Indeed's own location-search autocomplete suggestions for a partial location string -- the same suggestions the app's search bar offers -- for building a valid `l` value for search. Credential-free GraphQL only; there is no page-based fallback for this endpoint.", + "description": "Returns Indeed's own location-search autocomplete suggestions for a partial location string -- the same suggestions the app's search bar offers -- for building a valid `l` value for search.", "operationId": "indeed-locations-suggest", "parameters": [ { @@ -338147,7 +351182,7 @@ "consumes": [ "application/json" ], - "description": "Searches Indeed job postings by keyword and location. Primary transport is Indeed's own credential-free GraphQL API; a page 1, unfiltered-by-date request uses it directly. Requesting page 2+ or the `fromage` filter (not yet expressible over the primary transport) uses the original web-page transport instead, with the same normalized response shape either way. `sort` enum: `relevance` (default), `date`.", + "description": "Searches Indeed job postings by keyword and location. `sort` enum: `relevance` (default), `date`.", "operationId": "indeed-search", "parameters": [ { @@ -338239,7 +351274,7 @@ }, "/independent/article": { "get": { - "description": "Returns public The Independent article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one The Independent article by `url`, which must be a canonical HTTPS `independent.co.uk` article link. The response has the title, description, section, authors, publication and update times, lead image URL, body `paragraphs` and a `paywalled` flag.", "operationId": "independent-article", "parameters": [ { @@ -338293,7 +351328,7 @@ }, "/independent/author": { "get": { - "description": "Returns one Independent author's public profile: name, job title, bio, X/Twitter handle, and their recent articles.", + "description": "Returns one Independent author's profile by `slug` (for example `lizzie-dearden`) or `url`; exactly one is required. The response has name, job title, bio, X/Twitter handle and the author's recent articles with title, URL, section and section URL. It is a single page of articles with no further pagination.", "operationId": "independent-author", "parameters": [ { @@ -338353,7 +351388,7 @@ }, "/independent/headlines": { "get": { - "description": "Returns fresh headlines from one public The Independent RSS section.", + "description": "Returns the current headlines for one The Independent section. `section` is required and takes one of 17 slugs, such as `news/uk`, `news/world`, `sport`, `voices`, `money` or `bulletin`. Each item has its title and URL, plus summary, author, publication time and image when the outlet provides them, and the response echoes the `section`.", "operationId": "independent-headlines", "parameters": [ { @@ -338420,7 +351455,7 @@ }, "/independent/news": { "get": { - "description": "Returns fresh The Independent top stories from its public RSS feed.", + "description": "Returns the current top stories from The Independent. It takes no parameters. Each item has its title, URL and, where the outlet gives them, a summary, author, publication time, image URL and `type`. Use the headlines endpoint for one section.", "operationId": "independent-news", "produces": [ "application/json" @@ -338458,7 +351493,7 @@ }, "/independent/sections": { "get": { - "description": "Returns the live-verified public RSS section inventory for The Independent.", + "description": "Lists the 17 The Independent section slugs that the headlines endpoint accepts, from `news` and `news/uk` to `life-style`, `voices`, `money` and `bulletin`. Each entry has a `slug`, a display `name` and a `url`.", "operationId": "independent-sections", "produces": [ "application/json" @@ -338544,7 +351579,7 @@ }, "/indianexpress/author": { "get": { - "description": "Returns a The Indian Express author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns a The Indian Express author's profile by `url`, a canonical `indianexpress.com/profile/author//` link: name, image URL, biography and recent articles with title, URL, summary and image. `image_url` and `biography` may be missing, and `published_at` is the page's date text such as `Sep 24, 2026 16:36 IST`, not a timestamp.", "operationId": "indianexpress-author", "parameters": [ { @@ -338598,7 +351633,7 @@ }, "/indianexpress/headlines": { "get": { - "description": "Returns fresh headlines from one public The Indian Express RSS section.", + "description": "Returns the current headlines for one The Indian Express section. `section` is required and takes a slug such as `india`, `explained`, `cities-delhi`, `entertainment-bollywood`, `sports-cricket` or `political-pulse`. Items carry title, URL, summary, author, publication time and image, and the response echoes the `section`.", "operationId": "indianexpress-headlines", "parameters": [ { @@ -338704,7 +351739,7 @@ }, "/indianexpress/news": { "get": { - "description": "Returns fresh The Indian Express top stories from its public RSS feed.", + "description": "Returns the current top stories from The Indian Express. It takes no parameters. Each item has its title, URL and, where the outlet gives them, a summary, author, publication time, image URL and `type`. Use the headlines endpoint to read one section.", "operationId": "indianexpress-news", "produces": [ "application/json" @@ -338742,7 +351777,7 @@ }, "/indianexpress/sections": { "get": { - "description": "Returns the public The Indian Express RSS section inventory used by the headlines endpoint.", + "description": "Lists the The Indian Express section slugs that the headlines endpoint accepts, including `politics`, `india`, `explained`, `cities-mumbai`, `entertainment-tamil`, `lifestyle-health` and `smart-stocks`. Each entry has a `slug`, a display `name` and a section `url`.", "operationId": "indianexpress-sections", "produces": [ "application/json" @@ -338822,7 +351857,7 @@ }, "/indiatoday/author": { "get": { - "description": "Returns an India Today author's name, job title, headshot, biography, and recent stories from a canonical author URL.", + "description": "Returns an India Today author profile by `url`, a canonical `https://www.indiatoday.in/author/` link; desk bylines such as `india-today-business-desk` work too. The response has the name, job title, headshot, biography and the first page of recent text stories (typically 20), each with title, URL, section, summary and image. Stories carry no dates.", "operationId": "indiatoday-author", "parameters": [ { @@ -338876,7 +351911,7 @@ }, "/indiatoday/headlines": { "get": { - "description": "Returns current headlines from one India Today section hub page.", + "description": "Returns the text stories listed on one India Today section page, typically 12 to 60. `section` is required and takes one of 35 slugs such as `top-news`, `cricket`, `markets`, `bollywood` or `fact-check`; other values return 400. Items have title, URL, `type`, summary and image when shown, but no `published_at`.", "operationId": "indiatoday-headlines", "parameters": [ { @@ -338999,7 +352034,7 @@ }, "/indiatoday/sections": { "get": { - "description": "Returns the live-verified India Today section inventory used by the headlines endpoint.", + "description": "Lists the 35 India Today sections accepted by `indiatoday-headlines`, such as `top-news`, `south-india`, `markets`, `ott`, `elections` and `history-of-it`. Each entry has a `slug`, display `name` and the section page `url`. Takes no parameters.", "operationId": "indiatoday-sections", "produces": [ "application/json" @@ -339222,7 +352257,7 @@ }, "/indiewire/news": { "get": { - "description": "Returns fresh IndieWire independent film, TV and awards top stories from its public RSS feed.", + "description": "Returns IndieWire's current top stories on independent film, TV and awards, with no parameters. Each item has its title, URL, one-sentence summary, author and publication time. Gallery and list pages are left out because they are not text articles.", "operationId": "indiewire-news", "produces": [ "application/json" @@ -339260,7 +352295,7 @@ }, "/indiewire/sections": { "get": { - "description": "Returns the complete public section inventory accepted by /api/v1/indiewire/headlines (IndieWire's 32 editorial categories).", + "description": "Lists IndieWire's 32 editorial categories accepted by `indiewire-headlines`, such as `analysis`, `box-office`, `festivals`, `interviews`, `obituary` and `trailers`. Each entry has a `slug`, display `name` and the category feed `url`. Categories nest under the roots `news`, `features`, `awards` and `criticism`.", "operationId": "indiewire-sections", "produces": [ "application/json" @@ -339346,7 +352381,7 @@ }, "/inews/author": { "get": { - "description": "Returns an i author's name, biography, social links, and most recent articles from a canonical author URL.", + "description": "Returns an author profile from i (inews.co.uk) by `url`, a canonical `https://inews.co.uk/author/` link. The response has `name`, `bio`, `image_url`, `same_as` social profiles and up to about 30 recent articles, each with title, URL, summary, section and `published_at`. Paginated or non-author URLs return 400, and an unknown author returns 404.", "operationId": "inews-author", "parameters": [ { @@ -339527,7 +352562,7 @@ }, "/inews/sections": { "get": { - "description": "Returns every i section slug accepted by the headlines endpoint, with its display name and public RSS feed URL.", + "description": "Lists the 45 i sections accepted by `inews-headlines`, from `home` and `news` to `football`, `money` and `relationships`. Each entry has a `slug`, display `name` and `url`. `home` is the site-wide listing, and low-volume sections such as `golf` or `comedy` may hold only one or two items.", "operationId": "inews-sections", "produces": [ "application/json" @@ -339667,7 +352702,7 @@ }, "/inquirer/headlines": { "get": { - "description": "Returns fresh headlines from one Philippine Daily Inquirer section's public RSS feed.", + "description": "Returns the latest Philippine Daily Inquirer stories for one section. `section` is required and takes `newsinfo`, `globalnation`, `business`, `sports`, `entertainment`, `lifestyle`, `technology`, `opinion`, `usa` or `cebudailynews`. Each item has its title, URL, summary, publication time, author and lead image.", "operationId": "inquirer-headlines", "parameters": [ { @@ -339727,7 +352762,7 @@ }, "/inquirer/news": { "get": { - "description": "Returns fresh Philippine Daily Inquirer top stories from its public news RSS feed.", + "description": "Returns the latest top stories from the Philippine Daily Inquirer's flagship national-news site, newsinfo.inquirer.net. Takes no parameters. Each item has its title, URL, summary, publication time, author and lead image.", "operationId": "inquirer-news", "produces": [ "application/json" @@ -339765,7 +352800,7 @@ }, "/inquirer/sections": { "get": { - "description": "Returns the Philippine Daily Inquirer section inventory: the ten public news subdomains accepted by inquirer-headlines.", + "description": "Lists the ten Philippine Daily Inquirer sections that `inquirer-headlines` accepts, from `newsinfo` to `cebudailynews`. Each entry has a `slug`, a display `name` and the section's `url`. Takes no parameters.", "operationId": "inquirer-sections", "produces": [ "application/json" @@ -340303,7 +353338,7 @@ "consumes": [ "application/json" ], - "description": "Returns public profile details for a specified Instagram username.", + "description": "Returns the public profile of an Instagram account by `username`. The response has the user id, full name, biography, bio links, external URL, category, follower, following and post counts, verified and private flags, location, profile picture, recent posts with captions and like counts, and related profiles.", "operationId": "instagram-profile", "parameters": [ { @@ -340709,7 +353744,7 @@ }, "/iol/article": { "get": { - "description": "Returns public IOL article metadata and body paragraphs from a canonical article URL.", + "description": "Returns an IOL article by `url`, a canonical `iol.co.za` story link. The response has the title, description, section (the deepest in the breadcrumb, such as `Crime and Courts`), authors, lead image, publish and update times, and body `paragraphs`. Section, author, tag and search pages are rejected. `paywalled` is never set.", "operationId": "iol-article", "parameters": [ { @@ -340763,7 +353798,7 @@ }, "/iol/author": { "get": { - "description": "Returns one IOL author's public profile: name, role, photo, and the recent articles listed on their page.", + "description": "Returns an IOL author profile, identified by `slug` (such as `xolile-mtembu`) or a canonical `iol.co.za/authors//` `url`; provide exactly one. The response has the name, `role` and `image_url` when present, and up to 25 recent articles with title, URL, summary, section and a `published_date` taken from the article URL. Unknown authors return not found.", "operationId": "iol-author", "parameters": [ { @@ -340823,7 +353858,7 @@ }, "/iol/headlines": { "get": { - "description": "Returns fresh headlines from one public IOL section feed.", + "description": "Returns recent IOL headlines for one section path. `section` is required and takes a value such as `news`, `news/south-africa/gauteng`, `sport/rugby/springboks`, `business/economy` or `entertainment/music`. Each item has its title, URL, summary, publication time and image, plus the author when the outlet names one. Unlisted values are rejected.", "operationId": "iol-headlines", "parameters": [ { @@ -340996,7 +354031,7 @@ }, "/iol/news": { "get": { - "description": "Returns fresh IOL (Independent Online, South Africa) stories from the public news feed.", + "description": "Returns the 30 newest stories from IOL (Independent Online, South Africa), with no parameters. Each item has its title, canonical article URL, short summary, publication time, author byline and lead image.", "operationId": "iol-news", "produces": [ "application/json" @@ -341512,7 +354547,7 @@ }, "/irishtimes/headlines": { "get": { - "description": "Returns fresh headlines from one public Irish Times section.", + "description": "Returns current Irish Times headlines for one section. `section` is required and takes one of 16 slugs such as `ireland`, `politics`, `your-money`, `life-style`, `motors` or `abroad`; other values return 400. Some listed articles are subscriber-only, and `irishtimes-article` returns a permission error for those.", "operationId": "irishtimes-headlines", "parameters": [ { @@ -341578,7 +354613,7 @@ }, "/irishtimes/news": { "get": { - "description": "Returns fresh Irish Times top stories from its public Irish news feed.", + "description": "Returns up to 100 current Irish Times top stories from its Irish news listing, with no parameters. Each item has its title, URL, summary, author, publication time and image where available.", "operationId": "irishtimes-news", "produces": [ "application/json" @@ -341616,7 +354651,7 @@ }, "/irishtimes/sections": { "get": { - "description": "Returns the public Irish Times section inventory used by the headlines endpoint.", + "description": "Lists the 16 Irish Times sections accepted by `irishtimes-headlines`: `ireland`, `opinion`, `politics`, `business`, `your-money`, `world`, `sport`, `life-style`, `health`, `technology`, `culture`, `property`, `food`, `motors`, `history` and `abroad`. Each entry has a `slug`, `name` and `url`.", "operationId": "irishtimes-sections", "produces": [ "application/json" @@ -341696,7 +354731,7 @@ }, "/japantimes/author": { "get": { - "description": "Returns a public author name and linked article cards. Pagination paths are excluded because robots.txt disallows */page/*.", + "description": "Returns a The Japan Times author's name and the article cards linked from their profile page. `url` is required and must be a canonical HTTPS profile link in the form `/author///`. Each article has a title, URL, summary, author, image, `type` and publication time. Paginated `/page//` URLs are not followed.", "operationId": "japantimes-author", "parameters": [ { @@ -341860,7 +354895,7 @@ }, "/japantimes/news": { "get": { - "description": "Returns current top stories from the public RSS feed. RSS descriptions are short publisher-provided teasers.", + "description": "Returns the current top stories from The Japan Times. It takes no parameters. Each item has its title, URL, publication time and a short publisher-written teaser in `summary`, not the article text, plus the author and image when the outlet provides them.", "operationId": "japantimes-news", "produces": [ "application/json" @@ -341892,7 +354927,7 @@ }, "/japantimes/sections": { "get": { - "description": "Returns the complete 60-link editorial navigation inventory used by japantimes-headlines.", + "description": "Lists the 60 sections linked from The Japan Times main navigation, which the headlines endpoint accepts, for example `news-japan`, `business-markets`, `sports-sumo`, `culture-film` and `community-voices`. Each entry has a `slug`, a display `name` and a section `url`.", "operationId": "japantimes-sections", "produces": [ "application/json" @@ -342222,7 +355257,7 @@ "consumes": [ "application/json" ], - "description": "Searches the product catalog for either storefront (select with site, default jcrew). Returns normalized product summaries with USD pricing, gender, and a description, plus the search index's own facets (gender, fabric, category, size, color, price range, and others) with live per-option counts. sort selects relevance (default), price_asc, or price_desc. filter narrows results by one or more facet name:value pairs (comma-separated, e.g. productGender:Men,styleFabric:Cashmere) taken from a prior response's own facets[].name/facets[].options[].value fields -- not curated against a fixed list, since the facet set is large and can change. This is best-effort relevance, not a guaranteed keyword match: for an obscure alphanumeric keyword the upstream search index falls back to its own semantically-related results instead of an empty list, and there is no reliable field in the response to distinguish a true keyword match from that fallback.", + "description": "Searches the product catalog for either storefront (select with site, default jcrew). Returns product summaries with USD pricing, gender, and a description, plus the search index's own facets (gender, fabric, category, size, color, price range, and others) with live per-option counts. sort selects relevance (default), price_asc, or price_desc. filter narrows results by one or more facet name:value pairs (comma-separated, e.g. productGender:Men,styleFabric:Cashmere) taken from a prior response's own facets[].name/facets[].options[].value fields -- not curated against a fixed list, since the facet set is large and can change. This is best-effort relevance, not a guaranteed keyword match: for an obscure alphanumeric keyword the search index falls back to its own semantically-related results instead of an empty list, and there is no reliable field in the response to distinguish a true keyword match from that fallback.", "operationId": "jcrew-search", "parameters": [ { @@ -342594,7 +355629,7 @@ }, "/jerusalempost/author": { "get": { - "description": "Returns a public author or blogger profile and article cards from its first-party profile page.", + "description": "Returns a Jerusalem Post author or blogger profile by `url`, a canonical `/author/` or `/blogger/` link. The response has the profile `type`, name, `description`, `image_url` and article cards with title, URL, summary and publication time.", "operationId": "jerusalempost-author", "parameters": [ { @@ -342680,7 +355715,7 @@ }, "/jerusalempost/headlines": { "get": { - "description": "Returns fresh non-premium stories from one public Jerusalem Post RSS section. Premium feed snippets are omitted.", + "description": "Returns current Jerusalem Post stories for one section. `section` is required and takes one of 40 slugs such as `israel-news`, `iran-news`, `middle-east`, `tech-and-startups` or `torah-portion`. Each item has its title, URL, author, publication time and image, plus a summary except on premium items, which have none.", "operationId": "jerusalempost-headlines", "parameters": [ { @@ -342770,7 +355805,7 @@ }, "/jerusalempost/news": { "get": { - "description": "Returns fresh non-premium Jerusalem Post stories from its public front-page RSS feed. Premium feed snippets are omitted.", + "description": "Returns recent Jerusalem Post front-page stories, with no parameters. Each item has its title, URL, author, publication time and image where available. Premium items keep their title and metadata but have no summary. Use `jerusalempost-article` to read an article and check its paywall flag.", "operationId": "jerusalempost-news", "produces": [ "application/json" @@ -342802,7 +355837,7 @@ }, "/jerusalempost/sections": { "get": { - "description": "Returns the live-verified public RSS sections accepted by jerusalempost-headlines.", + "description": "Lists the 40 English-language editorial sections accepted by `jerusalempost-headlines`, such as `world-news`, `israel-politics`, `archaeology` and `jewish-holidays`. Each entry has a `slug`, display `name` and section `url`. Takes no parameters.", "operationId": "jerusalempost-sections", "produces": [ "application/json" @@ -343187,7 +356222,7 @@ "consumes": [ "application/json" ], - "description": "Lists an organization's public Ashby board postings with inline detail (description, compensation when include_compensation=true). The org is the Ashby slug from its careers URL. An unknown org returns an empty board (Ashby does not 404). Credential-free public ATS JSON.", + "description": "Lists an organization's public Ashby board postings with inline detail (description, compensation when include_compensation=true). The org is the Ashby slug from its careers URL. An unknown org returns an empty board (Ashby does not 404).", "operationId": "jobs-ashby-board", "parameters": [ { @@ -343244,7 +356279,7 @@ "consumes": [ "application/json" ], - "description": "Probes Greenhouse, Lever, Ashby, SmartRecruiters, Workable, Recruitee, Rippling, Teamtailor, and Pinpoint in parallel for a slug and reports the providers where it resolves to a non-empty board (with the open-role count and board URL). Workday is excluded (its board needs tenant + datacenter + site). Credential-free public ATS JSON.", + "description": "Probes Greenhouse, Lever, Ashby, SmartRecruiters, Workable, Recruitee, Rippling, Teamtailor, and Pinpoint in parallel for a slug and reports the providers where it resolves to a non-empty board (with the open-role count and board URL). Workday is excluded (its board needs tenant + datacenter + site).", "operationId": "jobs-company-search", "parameters": [ { @@ -343295,7 +356330,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public Eightfold AI job board, paged via limit/offset. tenant is the {tenant}.eightfold.ai subdomain from the careers URL; domain is the hiring organization's own domain (e.g. microsoft.com), also visible on the tenant's careers page. Tries the newer PCSX search first, falling back to the legacy SmartApply generation when PCSX is not enabled for the tenant. Credential-free public ATS JSON.", + "description": "Lists a company's public Eightfold AI job board, paged via limit/offset. tenant is the {tenant}.eightfold.ai subdomain from the careers URL; domain is the hiring organization's own domain (e.g. microsoft.com), also visible on the tenant's careers page.", "operationId": "jobs-eightfold-board", "parameters": [ { @@ -343378,7 +356413,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single Eightfold position with its full HTML/text description. id is the position id from a board listing; tenant/domain as in the board endpoint. Tries the newer PCSX detail first, falling back to the legacy SmartApply detail generation. Credential-free public ATS JSON.", + "description": "Returns a single Eightfold position with its full HTML/text description. id is the position id from a board listing; tenant/domain as in the board endpoint.", "operationId": "jobs-eightfold-job", "parameters": [ { @@ -343451,7 +356486,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public Gem (gem.com) board postings with inline detail (full HTML description, and compensation when the company publishes a pay range). The company is the Gem vanity URL slug from its careers URL. Credential-free public GraphQL.", + "description": "Lists a company's public Gem (gem.com) board postings with inline detail (full HTML description, and compensation when the company publishes a pay range). The company is the Gem vanity URL slug from its careers URL.", "operationId": "jobs-gem-board", "parameters": [ { @@ -343508,7 +356543,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public Greenhouse board postings, normalized to the shared Job shape. Set content=true to include each job's full HTML description in one call. The token is the company's Greenhouse board slug from its careers URL. Credential-free public ATS JSON.", + "description": "Lists a company's public Greenhouse board postings in the shared Job shape. Set content=true to include each job's full HTML description in one call. The token is the company's Greenhouse board slug from its careers URL.", "operationId": "jobs-greenhouse-board", "parameters": [ { @@ -343571,7 +356606,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single Greenhouse job with its full HTML/text description, department, and offices. Credential-free public ATS JSON.", + "description": "Returns one Greenhouse job, identified by the board `token` and job `id`, both required. The response has the title, company, department, team, location and offices, workplace type, employment type, posting and apply URLs, posting date, compensation, and the description as HTML and plain text. An unknown token or id returns `404`.", "operationId": "jobs-greenhouse-job", "parameters": [ { @@ -343636,7 +356671,7 @@ "consumes": [ "application/json" ], - "description": "Aggregates a company's ATS board into a hiring snapshot: total open roles, breakdowns by department/location/title, remote share, and how many roles are new in the last 7/30 days — a leading indicator of company growth. Supply provider plus that provider's slug params (token / company / org / tenant+datacenter+site / domain). Breakdowns are computed over the fetched postings. Credential-free public ATS JSON.", + "description": "Aggregates a company's ATS board into a hiring snapshot: total open roles, breakdowns by department/location/title, remote share, and how many roles are new in the last 7/30 days — a leading indicator of company growth. Supply provider plus that provider's slug params (token / company / org / tenant+datacenter+site / domain). Breakdowns are computed over the fetched postings.", "operationId": "jobs-hiring-signals", "parameters": [ { @@ -343765,7 +356800,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public iCIMS job board (served through the tenant's white-labeled careers domain, e.g. careers.costco.com — not the bare {company}.icims.com subdomain, which is an OAuth-gated employee portal), paged via page/limit, with the full description inline per job. domain is the tenant's careers domain from its careers URL. Credential-free public ATS JSON.", + "description": "Lists a company's public iCIMS job board (served through the tenant's white-labeled careers domain, e.g. careers.costco.com — not the bare {company}.icims.com subdomain, which is an OAuth-gated employee portal), paged via page/limit, with the full description inline per job. domain is the tenant's careers domain from its careers URL.", "operationId": "jobs-icims-board", "parameters": [ { @@ -343840,7 +356875,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single iCIMS job with its full HTML/text description, department, and benefits. id is the req_id/slug from a board listing; lang defaults to en-us. Credential-free public ATS JSON.", + "description": "Returns a single iCIMS job with its full HTML/text description, department, and benefits. id is the req_id/slug from a board listing; lang defaults to en-us.", "operationId": "jobs-icims-job", "parameters": [ { @@ -343912,7 +356947,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single Lever posting with its full HTML/text description. Credential-free public ATS JSON.", + "description": "Returns one Lever posting, identified by the `company` slug and posting `id`, both required. The response has the title, department, team, location, workplace type, employment type, posting and apply URLs, posting date, compensation, and the description as HTML and plain text. An unknown company or id returns `404`.", "operationId": "jobs-lever-posting", "parameters": [ { @@ -343977,7 +357012,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public Lever postings (detail is inline), optionally filtered by department, location, or remote. The company is the Lever slug from its careers URL. Credential-free public ATS JSON.", + "description": "Lists a company's public Lever postings (detail is inline), optionally filtered by department, location, or remote. The company is the Lever slug from its careers URL.", "operationId": "jobs-lever-postings", "parameters": [ { @@ -344052,7 +357087,7 @@ "consumes": [ "application/json" ], - "description": "Lists an Oracle Recruiting Cloud tenant's public requisitions, paged via limit/offset. host and site both come from the careers URL https://{host}/hcmUI/CandidateExperience/en/sites/{site}/ (host must be an *.oraclecloud.com hostname; site looks like CX_1). The listing carries a short description; use the single-job endpoint for full detail. Credential-free public ATS JSON.", + "description": "Lists an Oracle Recruiting Cloud tenant's public requisitions, paged via limit/offset. host and site both come from the careers URL https://{host}/hcmUI/CandidateExperience/en/sites/{site}/ (host must be an *.oraclecloud.com hostname; site looks like CX_1). The listing carries a short description; use the single-job endpoint for full detail.", "operationId": "jobs-oracle-board", "parameters": [ { @@ -344129,7 +357164,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single Oracle Recruiting requisition with its full HTML/text description (description, responsibilities, qualifications). id is the requisition Id from a board listing; host/site as in the board endpoint. Credential-free public ATS JSON.", + "description": "Returns a single Oracle Recruiting requisition with its full HTML/text description (description, responsibilities, qualifications). id is the requisition Id from a board listing; host/site as in the board endpoint.", "operationId": "jobs-oracle-job", "parameters": [ { @@ -344202,7 +357237,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public Personio board feed (XML), normalized to the shared Job shape with detail inline, optionally filtered by department, location, or remote. The company is the Personio subdomain from its careers URL https://{company}.jobs.personio.de/. Credential-free public ATS feed.", + "description": "Lists a company's public Personio board feed in the shared Job shape with detail inline, optionally filtered by department, location, or remote. The company is the Personio subdomain from its careers URL https://{company}.jobs.personio.de/.", "operationId": "jobs-personio-feed", "parameters": [ { @@ -344277,7 +357312,7 @@ "consumes": [ "application/json" ], - "description": "Searches a company's public Phenom People career site (a white-labeled domain such as careers.whataburger.com or jobs.cvshealth.com — Phenom serves the search-results page as server-rendered HTML with the job data embedded inline, not a JSON API, but this is still credential-free public data with no auth, cookie, or session required). domain is the tenant's careers domain from its careers URL. Paged via offset/limit; limit is a best-effort page-size hint some tenants ignore, so count always reflects what actually came back.", + "description": "Searches a company's public Phenom People career site (a white-labeled domain such as careers.whataburger.com or jobs.cvshealth.com). domain is the tenant's careers domain from its careers URL. Paged via offset/limit; limit is a best-effort page-size hint some tenants ignore, so count always reflects what actually came back.", "operationId": "jobs-phenom-board", "parameters": [ { @@ -344433,7 +357468,7 @@ "consumes": [ "application/json" ], - "description": "Lists a tenant's public Pinpoint (pinpointhq.com) board postings with inline detail (full HTML description, key responsibilities, skills, and benefits, plus structured compensation when the tenant publishes a pay range). The company is the tenant subdomain from its careers URL https://{company}.pinpointhq.com/. Credential-free public JSON.", + "description": "Lists a tenant's public Pinpoint (pinpointhq.com) board postings with inline detail (full HTML description, key responsibilities, skills, and benefits, plus structured compensation when the tenant publishes a pay range). The company is the tenant subdomain from its careers URL https://{company}.pinpointhq.com/.", "operationId": "jobs-pinpoint-board", "parameters": [ { @@ -344490,7 +357525,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single Recruitee offer with its full HTML/text description and structured compensation when the board exposes it. Credential-free public ATS JSON.", + "description": "Returns a single Recruitee offer with its full HTML/text description and structured compensation when the board exposes it.", "operationId": "jobs-recruitee-offer", "parameters": [ { @@ -344555,7 +357590,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public Recruitee offers (detail is inline), optionally filtered by department, location, or remote. The company is the Recruitee subdomain from its careers URL https://{company}.recruitee.com/. Credential-free public ATS JSON.", + "description": "Lists a company's public Recruitee offers (detail is inline), optionally filtered by department, location, or remote. The company is the Recruitee subdomain from its careers URL https://{company}.recruitee.com/.", "operationId": "jobs-recruitee-offers", "parameters": [ { @@ -344630,7 +357665,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public Rippling board postings (thin listing — title, department, work location). The company is the Rippling board slug from its careers URL https://ats.rippling.com/{company}/jobs. Detail (full description, employment type) is fetched per job via the single-job endpoint. Credential-free public ATS JSON.", + "description": "Lists a company's public Rippling board postings (thin listing — title, department, work location). The company is the Rippling board slug from its careers URL https://ats.rippling.com/{company}/jobs. Detail (full description, employment type) is fetched per job via the single-job endpoint.", "operationId": "jobs-rippling-board", "parameters": [ { @@ -344705,7 +357740,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single Rippling job with its full HTML/text description, employment type, and work locations. The id is the job uuid from a listing. Credential-free public ATS JSON.", + "description": "Returns a single Rippling job with its full HTML/text description, employment type, and work locations. The id is the job uuid from a listing.", "operationId": "jobs-rippling-job", "parameters": [ { @@ -344770,7 +357805,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single SmartRecruiters posting with its jobAd description. Recruiter personal data is intentionally omitted. Credential-free public ATS JSON.", + "description": "Returns one SmartRecruiters posting, identified by the `company` id and posting `id`, both required. The response has the title, department, location, employment type, posting and apply URLs, posting date, compensation, and the job ad description as HTML and text. Recruiter personal data is left out. An unknown company or id returns `404`.", "operationId": "jobs-smartrecruiters-posting", "parameters": [ { @@ -344835,7 +357870,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public SmartRecruiters postings, paged via limit/offset. The company is the SmartRecruiters identifier from its careers URL. Credential-free public ATS JSON.", + "description": "Lists a company's public SmartRecruiters postings, paged via limit/offset. The company is the SmartRecruiters identifier from its careers URL.", "operationId": "jobs-smartrecruiters-postings", "parameters": [ { @@ -344904,7 +357939,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public Teamtailor board feed (JSON Feed), normalized to the shared Job shape with detail inline, optionally filtered by department, location, or remote. The company is the Teamtailor subdomain from its careers URL https://{company}.teamtailor.com/. Credential-free public ATS feed.", + "description": "Lists a company's public Teamtailor board feed in the shared Job shape with detail inline, optionally filtered by department, location, or remote. The company is the Teamtailor subdomain from its careers URL https://{company}.teamtailor.com/.", "operationId": "jobs-teamtailor-jobs", "parameters": [ { @@ -344979,7 +358014,7 @@ "consumes": [ "application/json" ], - "description": "Lists a UKG Pro Recruiting (formerly UltiPro) tenant's public opportunities, paged via limit/offset. tenant and board both come from the careers URL https://recruiting.ultipro.com/{tenant}/JobBoard/{board}. Each posting carries a brief description inline (UKG's full detail page is HTML, not JSON). Credential-free public ATS JSON.", + "description": "Lists a UKG Pro Recruiting (formerly UltiPro) tenant's public opportunities, paged via limit/offset. tenant and board both come from the careers URL https://recruiting.ultipro.com/{tenant}/JobBoard/{board}. Each posting carries a brief description inline.", "operationId": "jobs-ukg-board", "parameters": [ { @@ -345056,7 +358091,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single Workable posting with its full HTML/text description. The id is the posting shortcode from a listing. Credential-free public ATS JSON.", + "description": "Returns a single Workable posting with its full HTML/text description. The id is the posting shortcode from a listing.", "operationId": "jobs-workable-posting", "parameters": [ { @@ -345121,7 +358156,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public Workable postings, normalized to the shared Job shape, optionally filtered by department, location, or remote. The company is the Workable account slug from its careers URL https://apply.workable.com/{company}/. Detail (full description) is fetched per job via the single-posting endpoint. Credential-free public ATS JSON.", + "description": "Lists a company's public Workable postings in the shared Job shape, optionally filtered by department, location, or remote. The company is the Workable account slug from its careers URL https://apply.workable.com/{company}/. Detail (full description) is fetched per job via the single-posting endpoint.", "operationId": "jobs-workable-postings", "parameters": [ { @@ -345202,7 +358237,7 @@ "consumes": [ "application/json" ], - "description": "Lists a company's public Workday (CXS) postings, paged via limit/offset. tenant, datacenter (wd1/wd3/wd5/...), and site all come from the careers URL https://{tenant}.wd5.myworkdayjobs.com/{site}. Credential-free public ATS JSON.", + "description": "Lists a company's public Workday (CXS) postings, paged via limit/offset. tenant, datacenter (wd1/wd3/wd5/...), and site all come from the careers URL https://{tenant}.wd5.myworkdayjobs.com/{site}.", "operationId": "jobs-workday-board", "parameters": [ { @@ -345287,7 +358322,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single Workday posting's full detail (description, location, req id). path is the externalPath from a board listing. tenant/datacenter/site as in the board endpoint. Credential-free public ATS JSON.", + "description": "Returns a single Workday posting's full detail (description, location, req id). path is the externalPath from a board listing. tenant/datacenter/site as in the board endpoint.", "operationId": "jobs-workday-job", "parameters": [ { @@ -345368,7 +358403,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Just Eat restaurant's detail by unique_name: name, address, primary cuisine, rating, and whether it currently accepts orders.", + "description": "Returns one Just Eat restaurant by `unique_name`, the slug found in a search result. The response has the restaurant id, name, address, city, postal code, country, image, primary cuisine, rating and rating count, and `is_active`, which says whether it currently accepts orders. `rating` can read `0` even when the site shows one. An unknown `unique_name` returns `404`.", "operationId": "justeat-restaurant", "parameters": [ { @@ -345617,7 +358652,7 @@ "consumes": [ "application/json" ], - "description": "Returns JustWatch age certification technical names for a country.", + "description": "Lists the JustWatch age certification technical names for a country, such as `PG-13` for the US. `country` is a two-letter code and defaults to `US`. An invalid country returns `400`, and an unexpectedly empty result returns `503`.", "operationId": "justwatch-age-certifications", "parameters": [ { @@ -345808,7 +358843,7 @@ "consumes": [ "application/json" ], - "description": "Looks up an episode by raw JustWatch GraphQL id such as `tse5550494` and returns normalized metadata and offers.", + "description": "Looks up one JustWatch episode by its raw `id` (`tse` followed by digits, such as `tse5550494`), in the `country` (default `US`) and `language` (default `en`) you choose. Returns the title, year, episode number, description, poster, paths, and streaming offers with provider, monetization type, presentation type, price and currency. A valid id with no match returns `404`.", "operationId": "justwatch-episode-by-id", "parameters": [ { @@ -345887,7 +358922,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized offers for a raw JustWatch episode id across one to five comma-separated country codes.", + "description": "Returns the streaming offers for one JustWatch episode `id` (`tse` followed by digits) across one to five comma-separated country codes in `countries` (default `US`), with `language` defaulting to `en`. Each country entry lists offers by provider, monetization type, presentation type, price and currency, with the episode details. An unknown id returns `404`.", "operationId": "justwatch-episode-offers", "parameters": [ { @@ -345966,7 +359001,7 @@ "consumes": [ "application/json" ], - "description": "Returns popular titles for one JustWatch genre short name such as `act`. Type accepts only `all`, `movie`, or `show`.", + "description": "Lists popular JustWatch titles for one genre short name in `genre`, such as `act`. `type` is `all`, `movie` or `show` (default `all`), `limit` defaults to 20 and is capped at 50, and `country` and `language` default to `US` and `en`. Each title has its id, year, path, poster, production countries and offers. Find genre names with the genres endpoint.", "operationId": "justwatch-genre-titles", "parameters": [ { @@ -346059,7 +359094,7 @@ "consumes": [ "application/json" ], - "description": "Returns JustWatch genre short names and localized translations.", + "description": "Lists the JustWatch genres, each with its `short_name` (such as `act`) and a translated name in the `language` you choose (two-letter code, default `en`). Use the short names as the `genre` input of the genre titles endpoint. An invalid language returns `400`.", "operationId": "justwatch-genres", "parameters": [ { @@ -346216,7 +359251,7 @@ "consumes": [ "application/json" ], - "description": "Returns newly available movies and shows from the public JustWatch website GraphQL endpoint. Type accepts only `all`, `movie`, or `show`; limit defaults to 20 and clamps to 50.", + "description": "Returns newly available movies and shows. Type accepts only `all`, `movie`, or `show`; limit defaults to 20 and clamps to 50.", "operationId": "justwatch-new", "parameters": [ { @@ -346301,7 +359336,7 @@ "consumes": [ "application/json" ], - "description": "Returns popular movies and shows from the public JustWatch website GraphQL endpoint. Type accepts only `all`, `movie`, or `show`; limit defaults to 20 and clamps to 50.", + "description": "Returns popular movies and shows. Type accepts only `all`, `movie`, or `show`; limit defaults to 20 and clamps to 50.", "operationId": "justwatch-popular", "parameters": [ { @@ -346393,7 +359428,7 @@ "consumes": [ "application/json" ], - "description": "Returns popular movie/show titles available through a JustWatch provider short name such as `nfx`.", + "description": "Returns popular movies and shows available on one streaming provider, by JustWatch provider short name such as `nfx`, for a country (default `US`) and language (default `en`). Filter to movies or shows with `type` and cap results with `limit` (default 20, max 50). Each title has its name, year, type, poster, JustWatch URL and offers with price, currency and monetization type.", "operationId": "justwatch-provider-titles", "parameters": [ { @@ -346486,7 +359521,7 @@ "consumes": [ "application/json" ], - "description": "Returns the credential-free public JustWatch provider catalog for a country.", + "description": "Lists the streaming providers JustWatch tracks in a country. `country` is a two-letter code and defaults to `US`. Each provider has its id, clear name, short name, technical name and an absolute icon URL. An invalid country returns `400`.", "operationId": "justwatch-providers", "parameters": [ { @@ -346543,7 +359578,7 @@ "consumes": [ "application/json" ], - "description": "Searches JustWatch titles using the public credential-free website GraphQL endpoint. Country must be a two-letter ISO code such as `US`; language must be a two-letter code such as `en`.", + "description": "Searches JustWatch titles. Country must be a two-letter ISO code such as `US`; language must be a two-letter code such as `en`.", "operationId": "justwatch-search", "parameters": [ { @@ -346629,7 +359664,7 @@ "consumes": [ "application/json" ], - "description": "Looks up a season by raw JustWatch GraphQL id such as `tss297253`.", + "description": "Looks up one JustWatch season by its raw `id` (`tss` followed by digits, such as `tss297253`), in the `country` (default `US`) and `language` (default `en`) you choose. Returns the season title, number, year, description, path, URL and poster. A valid id with no match returns `404`.", "operationId": "justwatch-season-by-id", "parameters": [ { @@ -346708,7 +359743,7 @@ "consumes": [ "application/json" ], - "description": "Returns episodes and normalized episode offers for a raw JustWatch season id such as `tss297253`.", + "description": "Lists the episodes of a JustWatch season given as `season_id` (`tss` followed by digits), with `country` defaulting to `US` and `language` to `en`. Each episode has its number, title, description and streaming offers with provider, price and currency. Path, URL and poster appear only when JustWatch has them for that episode. An unknown season returns `404`.", "operationId": "justwatch-season-episodes", "parameters": [ { @@ -346787,7 +359822,7 @@ "consumes": [ "application/json" ], - "description": "Returns seasons for a raw JustWatch show id such as `ts287292`.", + "description": "Lists the seasons of a JustWatch show given as `show_id` (`ts` followed by digits, such as `ts287292`), with `country` defaulting to `US` and `language` to `en`. Each season has its number, title, year, description, path and poster. The show itself comes back with genres, scoring, runtime and offers. An unknown show returns `404`.", "operationId": "justwatch-show-seasons", "parameters": [ { @@ -346866,7 +359901,7 @@ "consumes": [ "application/json" ], - "description": "Fetches a JustWatch title page and returns normalized metadata and current offers. Pass exactly one of `path` or `url`.", + "description": "Returns the details of a JustWatch movie or show. Pass exactly one of `path` (such as `/us/movie/inception`) or `url` (an absolute JustWatch address). The response has the title, year, genres, runtime, content rating, `scoring` (IMDb and TMDB scores, tomato meter, JustWatch rating) and current offers. Titles with no offers still return metadata; a missing page returns `404`.", "operationId": "justwatch-title", "parameters": [ { @@ -347004,7 +360039,7 @@ "consumes": [ "application/json" ], - "description": "Looks up a movie or show by raw JustWatch GraphQL id such as `tm92641` or `ts287292`.", + "description": "Looks up a JustWatch movie or show by its raw `id` (`tm` or `ts` followed by digits, such as `tm92641`), with `country` defaulting to `US` and `language` to `en`. Returns the title, year, genres, runtime, content rating, description, scoring, and offers with provider, monetization type, price and currency. A valid id with no match returns `404`.", "operationId": "justwatch-title-by-id", "parameters": [ { @@ -347083,7 +360118,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized credits, clips, and backdrops for a raw JustWatch movie/show id such as `tm92641`.", + "description": "Returns the media for a JustWatch movie or show `id` (`tm` or `ts` followed by digits): credits with role, name, character and person id, video clips with provider and URL, and backdrop image URLs. `country` defaults to `US` and `language` to `en`. YouTube clips carry a watch URL. An unknown id returns `404`.", "operationId": "justwatch-title-media", "parameters": [ { @@ -347162,7 +360197,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized offers for a raw JustWatch movie/show id across one to five comma-separated country codes.", + "description": "Returns the streaming offers for a JustWatch movie or show `id` across one to five comma-separated country codes in `countries` (default `US`), with `language` defaulting to `en`. Each country entry has its offers (provider, monetization type, presentation type, price, currency) and the title details. An unknown id returns `404`.", "operationId": "justwatch-title-offers", "parameters": [ { @@ -347241,7 +360276,7 @@ "consumes": [ "application/json" ], - "description": "Returns similar titles for a raw JustWatch movie/show id such as `tm92641`.", + "description": "Lists titles similar to a JustWatch movie or show `id` (`tm` or `ts` followed by digits). `limit` defaults to 10 and is capped at 25; `country` defaults to `US` and `language` to `en`. Each result has its id, type, title, year, path, poster, production countries and offers. An unknown id returns `404`.", "operationId": "justwatch-title-similar", "parameters": [ { @@ -347327,7 +360362,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Kalshi event row and its normalized markets from credential-free public market-data JSON.", + "description": "Returns one Kalshi event by `event_ticker` (such as `KXELONMARS-99`) together with its markets. The event has its series ticker, title, subtitle, category, strike period and mutually-exclusive flag; each market has prices, bid and ask, volume, open interest, status and rules. An unknown ticker returns a not-found error.", "operationId": "kalshi-event", "parameters": [ { @@ -347396,7 +360431,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Kalshi candlesticks grouped by market for one event from credential-free public market-data JSON.", + "description": "Returns candlesticks for the markets in a Kalshi event, grouped by market, for `event_ticker`. `start_ts` defaults to 7 days ago, `end_ts` to now, `period_interval` to 1440 minutes, and `series_ticker` to the ticker prefix before the last dash. Each candle has price, yes bid and ask, volume and open interest. Ranges are capped at 366 days.", "operationId": "kalshi-event-history", "parameters": [ { @@ -347495,7 +360530,7 @@ "consumes": [ "application/json" ], - "description": "Returns media, market metadata, settlement sources, and optional competition context for one Kalshi event from credential-free public market-data JSON.", + "description": "Returns the media and market metadata for one Kalshi event by `event_ticker`. The response has the event image and featured image, a color code and image for each market, settlement sources with name and URL, and competition context when it applies. An unknown ticker returns a not-found error.", "operationId": "kalshi-event-metadata", "parameters": [ { @@ -347564,7 +360599,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Kalshi event rows from credential-free public market-data JSON.", + "description": "Lists Kalshi events, up to `limit` rows (default 25, max 200), continued with `cursor`. Filter by `series_ticker`, `category`, `status` (`open`, `closed` or `settled`), `min_close_ts` and `min_updated_ts`. `with_nested_markets` adds each event's markets. Each event has its ticker, title, category and strike period. A `cursor` is returned when more rows exist.", "operationId": "kalshi-events", "parameters": [ { @@ -347684,7 +360719,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Kalshi multivariate event rows from credential-free public market-data JSON. Kalshi's regular events endpoint excludes these MVE rows.", + "description": "Lists Kalshi multivariate events, which the regular events list leaves out, up to `limit` rows (default 25, max 200), continued with `cursor`. Each event has its ticker, series ticker, title, subtitle, category and markets. A `cursor` is returned when more rows exist.", "operationId": "kalshi-multivariate-events", "parameters": [ { @@ -347757,7 +360792,7 @@ "consumes": [ "application/json" ], - "description": "Returns public exchange standard hours and maintenance windows from Kalshi market-data JSON.", + "description": "Returns the Kalshi exchange schedule, with no inputs. `standard_hours` are date-bounded blocks listing `open_time` and `close_time` for each weekday, and `maintenance_windows` list start time, end time and reason. The maintenance list can be empty. Informational only.", "operationId": "kalshi-exchange-schedule", "produces": [ "application/json" @@ -347816,7 +360851,7 @@ "consumes": [ "application/json" ], - "description": "Returns public exchange and trading active flags from Kalshi market-data JSON.", + "description": "Returns the current Kalshi exchange status, with no inputs: `exchange_active` says whether the exchange is up, and `trading_active` says whether trading is open at the time of the request. Informational only, not real-time trading data.", "operationId": "kalshi-exchange-status", "produces": [ "application/json" @@ -347875,7 +360910,7 @@ "consumes": [ "application/json" ], - "description": "Returns the cutoff timestamps Kalshi uses for historical market, order, and trade data migration.", + "description": "Returns the three cutoff timestamps Kalshi uses to split live from historical data: `market_settled_at`, `orders_updated_at` and `trades_created_at`. Use them to decide when settled market data should be read from the historical endpoints. Takes no parameters.", "operationId": "kalshi-historical-cutoff", "produces": [ "application/json" @@ -347934,7 +360969,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized settled Kalshi historical market row from credential-free public market-data JSON.", + "description": "Returns one settled Kalshi market from historical storage by `ticker`. The response has the title, subtitle, event ticker, status, result, open, close and expiration times, last and previous price, yes and no bid and ask, volume, open interest, liquidity and primary rules text. Invalid tickers are rejected.", "operationId": "kalshi-historical-market", "parameters": [ { @@ -348003,7 +361038,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Kalshi candlesticks for one settled historical market from credential-free public market-data JSON.", + "description": "Returns candlesticks for one settled Kalshi market by `ticker`. `start_ts` defaults to 7 days ago, `end_ts` to now and `period_interval` to 1440 minutes. Each candle has end time, price, yes bid and ask, volume and open interest. Ranges are capped at 366 days.", "operationId": "kalshi-historical-market-history", "parameters": [ { @@ -348090,7 +361125,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized settled Kalshi historical market rows from credential-free public market-data JSON. `tickers`, `event_ticker`, and `series_ticker` are mutually exclusive. The `mve_filter` enum accepts `exclude`.", + "description": "Returns settled Kalshi historical market rows. `tickers`, `event_ticker`, and `series_ticker` are mutually exclusive. The `mve_filter` enum accepts `exclude`.", "operationId": "kalshi-historical-markets", "parameters": [ { @@ -348190,7 +361225,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized older Kalshi trades from credential-free historical market-data JSON.", + "description": "Lists older Kalshi trades that have moved into historical storage, up to `limit` rows (default 25, max 200), continued with `cursor`. Filter by market `ticker` and by created time with `min_ts` and `max_ts` (Unix seconds). Each trade has its id, count, yes and no price, taker side and created time.", "operationId": "kalshi-historical-trades", "parameters": [ { @@ -348281,7 +361316,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Kalshi market row from credential-free public market-data JSON.", + "description": "Returns one Kalshi market by `ticker` (such as `KXELONMARS-99`). The response has the title, subtitle, event ticker, status, result, open, close and expiration times, last and previous price, yes and no bid and ask, volume, 24-hour volume, open interest, liquidity and rules text. An unknown ticker returns a not-found error.", "operationId": "kalshi-market", "parameters": [ { @@ -348350,7 +361385,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Kalshi candlesticks for one market from credential-free public market-data JSON.", + "description": "Returns candlesticks for one Kalshi market by `ticker`. `series_ticker` defaults to the ticker prefix before the last dash, `start_ts` to 7 days ago, `end_ts` to now and `period_interval` to 1440 minutes. `include_latest_before_start` adds the last candle before the start. Ranges are capped at 366 days.", "operationId": "kalshi-market-history", "parameters": [ { @@ -348449,7 +361484,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized yes/no bid levels for one Kalshi market ticker from public orderbook JSON.", + "description": "Returns the order book for one Kalshi market by `ticker`: bid levels for the `yes` side and the `no` side, each with `price` and `size`. Kalshi publishes bids only, so ask levels are not listed. The response also carries a `raw_unit_hint` for the price unit.", "operationId": "kalshi-market-orderbook", "parameters": [ { @@ -348518,7 +361553,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Kalshi market rows from credential-free public market-data JSON. The `status` enum accepts `unopened`, `open`, `closed`, and `settled`.", + "description": "Lists Kalshi markets, up to `limit` rows (default 25, max 200), continued with `cursor`. Filter by `event_ticker`, `series_ticker`, `ticker`, or `status` (`unopened`, `open`, `closed` or `settled`). Each market has its title, status, prices, bid and ask, volume, open interest and rules text. A returned status can read `active` even though the filter does not accept it.", "operationId": "kalshi-markets", "parameters": [ { @@ -348621,7 +361656,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Kalshi candlesticks for up to 25 market tickers from credential-free public market-data JSON.", + "description": "Returns candlesticks for up to 25 Kalshi markets in one call. `market_tickers` is required, as a comma-separated list or repeated values. `start_ts` defaults to 7 days ago, `end_ts` to now and `period_interval` to 1440 minutes. Results are grouped by market. Ranges are capped at 366 days.", "operationId": "kalshi-markets-history", "parameters": [ { @@ -348714,7 +361749,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized yes/no bid levels for up to 25 Kalshi market tickers from public orderbook JSON.", + "description": "Returns order books for up to 25 Kalshi markets in one call. `tickers` is required, as a comma-separated list or repeated values. Each book has the `yes` and `no` bid levels with `price` and `size`; ask levels are not listed. Books come back in the order requested.", "operationId": "kalshi-markets-orderbooks", "parameters": [ { @@ -348783,7 +361818,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Kalshi series rows from credential-free public market-data JSON.", + "description": "Lists Kalshi series, up to `limit` rows (default 25, max 200). Each series has its ticker, title, category, frequency, fee type and multiplier, settlement sources, and contract and contract-terms URLs. The catalogue comes back in one page, so `cursor` has no effect on this endpoint.", "operationId": "kalshi-series", "parameters": [ { @@ -348856,7 +361891,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Kalshi series row from credential-free public market-data JSON.", + "description": "Returns one Kalshi series by `series_ticker` (such as `KXELONMARS`). The response has the title, category, frequency, fee type and multiplier, settlement sources with name and URL, contract and contract-terms URLs, and last update time. An unknown ticker returns a not-found error.", "operationId": "kalshi-series-detail", "parameters": [ { @@ -348925,7 +361960,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recent Kalshi market trades from credential-free public market-data JSON.", + "description": "Lists recent Kalshi trades, up to `limit` rows (default 25, max 200), continued with `cursor`. Filter by market `ticker` and by created time with `min_ts` and `max_ts` (Unix seconds, at most 366 days apart). Each trade has its id, count, yes and no price, taker side and created time.", "operationId": "kalshi-trades", "parameters": [ { @@ -349534,7 +362569,7 @@ "consumes": [ "application/json" ], - "description": "Returns KFC restaurants matching a city/state/postal code/name/franchise code/store number filter. At least one filter is required -- an unfiltered call would enumerate every US restaurant in one response, which this endpoint intentionally does not expose. Each restaurant carries its store number (the value /kfc/menu and /kfc/promotions take), full address with coordinates, phone, whether it currently accepts online orders, and its timezone. appear_in_store_results (default true) excludes internal/test records KFC's own storefront does not surface in customer-facing search -- confirmed live that a raw filter can otherwise return non-orderable administrative entries alongside real restaurants.", + "description": "Returns KFC restaurants matching a city/state/postal code/name/franchise code/store number filter. At least one filter is required -- an unfiltered call would enumerate every US restaurant in one response, which this endpoint intentionally does not expose. Each restaurant carries its store number (the value /kfc/menu and /kfc/promotions take), full address with coordinates, phone, whether it currently accepts online orders, and its timezone. appear_in_store_results (default true) excludes internal/test records KFC's own storefront does not surface in customer-facing search -- a raw filter can otherwise return non-orderable administrative entries alongside real restaurants.", "operationId": "kfc-stores", "parameters": [ { @@ -349759,7 +362794,7 @@ }, "/khaleejtimes/headlines": { "get": { - "description": "Returns fresh headlines from one public Khaleej Times section (top-level sections and sub-sections).", + "description": "Returns current Khaleej Times headlines for one section or sub-section. `section` is required; its slug is the section's URL path with slashes turned into hyphens, so `/business/markets` is `business-markets`. Top-level sections mix their sub-sections' stories. Each item has its title, URL and publication time, plus summary, author and image when the outlet provides them. Call `khaleejtimes-sections` for the slugs.", "operationId": "khaleejtimes-headlines", "parameters": [ { @@ -350292,7 +363327,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Kohl's category or curated campaign page's product grid (page 1 only), with normalized products (title, image, colors, pricing, rating, availability) and facets for discovering further category values. category is Kohl's own catalog taxonomy string, e.g. \"Room:Dorm\" or \"Department:Kitchen & Dining\" -- combine multiple dimensions with a literal \"+\", percent-encoded as \"%2B\" so it survives as \"+\" rather than being decoded to a space (e.g. \"Room%3ADorm%2BDepartment%3ABedding\"). Every facets[].options[].category value in a response is a ready-to-use category string for a follow-up call, so a caller can discover the full taxonomy by starting from a known category (e.g. \"Room:Dorm\") and following facets. A category value Kohl's does not recognize returns a 404 rather than an unfiltered listing; a recognized dimension with no matching products returns a genuine zero-result response instead.", + "description": "Returns a Kohl's category or curated campaign page's product grid (page 1 only), with products (title, image, colors, pricing, rating, availability) and facets for discovering further category values. category is Kohl's own catalog taxonomy string, e.g. \"Room:Dorm\" or \"Department:Kitchen & Dining\" -- combine multiple dimensions with a literal \"+\", percent-encoded as \"%2B\" so it survives as \"+\" rather than being decoded to a space (e.g. \"Room%3ADorm%2BDepartment%3ABedding\"). Every facets[].options[].category value in a response is a ready-to-use category string for a follow-up call, so a caller can discover the full taxonomy by starting from a known category (e.g. \"Room:Dorm\") and following facets. A category value Kohl's does not recognize returns a 404 rather than an unfiltered listing; a recognized dimension with no matching products returns a genuine zero-result response instead.", "operationId": "kohls-category", "parameters": [ { @@ -350355,7 +363390,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of a Kohl's product's normalized customer reviews (title, text, rating, secondary ratings such as quality/durability/value/style, reviewer name and location, submission date, and photo URLs). web_id is the same identifier a GET /kohls/category response's products[].web_id field carries. A web_id with zero reviews returns a genuine zero-result response rather than an error.", + "description": "Returns one page of a Kohl's product's customer reviews (title, text, rating, secondary ratings such as quality/durability/value/style, reviewer name and location, submission date, and photo URLs). web_id is the same identifier a GET /kohls/category response's products[].web_id field carries. A web_id with zero reviews returns a genuine zero-result response rather than an error.", "operationId": "kohls-product-reviews", "parameters": [ { @@ -350584,7 +363619,7 @@ }, "/kotaku/author": { "get": { - "description": "Returns a Kotaku author's name, biography, headshot, social links, and most recent articles from a canonical author URL.", + "description": "Returns a Kotaku author profile by `url`, a canonical `https://kotaku.com/author/` link. The response has the `name`, `biography`, `image_url`, `social_links` (a `type` label and URL) and recent articles. The article `published_at` is the page's own date text, such as `Published September 23, 2026 at 11:20 am`, not a timestamp.", "operationId": "kotaku-author", "parameters": [ { @@ -350638,7 +363673,7 @@ }, "/kotaku/headlines": { "get": { - "description": "Returns fresh headlines from one Kotaku section's public RSS feed.", + "description": "Returns recent Kotaku headlines for one section. `section` is required and takes one of 17 slugs such as `news`, `reviews`, `games`, `game-tips`, `retro`, `horror` or `deals`. Each item has its title, URL, summary, author, publication time and image.", "operationId": "kotaku-headlines", "parameters": [ { @@ -350705,7 +363740,7 @@ }, "/kotaku/news": { "get": { - "description": "Returns fresh Kotaku gaming stories from its public RSS feed.", + "description": "Returns Kotaku's current top gaming stories, with no parameters. Each item has its title, URL, summary, author, publication time and image where Kotaku provides them. Use `kotaku-headlines` for a single section instead.", "operationId": "kotaku-news", "produces": [ "application/json" @@ -350813,7 +363848,7 @@ "consumes": [ "application/json" ], - "description": "Browses a Kroger product category and returns normalized product cards plus facet groups, in the same shape as kroger-search. slug and category_id together identify the category (e.g. \"pet\" and \"27\" for kroger.com/pl/pet/27) -- call kroger-categories to discover every valid slug/category_id pair. Served from Kroger's own search JSON API using category_id as a taxonomy filter, with real upstream pagination; it falls back to parsing the rendered category page if that path is unavailable, and the source field reports which path answered. Facet filters and sort apply to the JSON path only: when any of them is set, a JSON-path failure returns an error rather than silently falling back to unfiltered results.", + "description": "Browses a Kroger product category and returns product cards plus facet groups, in the same shape as kroger-search. slug and category_id together identify the category (e.g. \"pet\" and \"27\" for kroger.com/pl/pet/27) -- call kroger-categories to discover every valid slug/category_id pair. It uses category_id as a taxonomy filter, with real pagination, and the source field reports which path answered. Facet filters and sort apply to the primary path only: when any of them is set, a failure of that path returns an error rather than silently falling back to unfiltered results.", "operationId": "kroger-category", "parameters": [ { @@ -351041,7 +364076,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Kroger item: title, description, image, brand, category trail, price/availability, and rating, sourced from the product page's own schema.org structured data.", + "description": "Returns product detail for one Kroger item: title, description, image, brand, category trail, price/availability, and rating.", "operationId": "kroger-product", "parameters": [ { @@ -351178,7 +364213,7 @@ "consumes": [ "application/json" ], - "description": "Returns full normalized detail for up to 50 Kroger products in one call, from Kroger's own product API. Carries materially more than kroger-product: a nutrition-facts panel with ingredients, allergens and dietary flags; store-specific price and stock level; a full star-rating histogram; the merchandising hierarchy; and every image perspective. location_id scopes price and stock to one store.", + "description": "Returns full detail for up to 50 Kroger products in one call. Carries materially more than kroger-product: a nutrition-facts panel with ingredients, allergens and dietary flags; store-specific price and stock level; a full star-rating histogram; the merchandising hierarchy; and every image perspective. location_id scopes price and stock to one store.", "operationId": "kroger-products", "parameters": [ { @@ -351306,7 +364341,7 @@ "consumes": [ "application/json" ], - "description": "Searches Kroger products by keyword and returns normalized product cards (price, unit price, brand, size, stock level) plus the facet groups Kroger offers for the query (brands, nutrition, savings, price range and more). Served from Kroger's own search JSON API with real upstream pagination; if that path is unavailable it falls back to parsing the rendered search page, and the source field reports which path answered. Facet filters and sort apply to the JSON path only: when any of them is set, a JSON-path failure returns an error rather than silently falling back to unfiltered results.", + "description": "Searches Kroger products by keyword and returns product cards (price, unit price, brand, size, stock level) plus the facet groups Kroger offers for the query (brands, nutrition, savings, price range and more). It supports real pagination, and the source field reports which path answered. Facet filters and sort apply to the primary path only: when any of them is set, a failure of that path returns an error rather than silently falling back to unfiltered results.", "operationId": "kroger-search", "parameters": [ { @@ -351559,7 +364594,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Kylie Cosmetics (https://www.kyliecosmetics.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Kylie Cosmetics (https://www.kyliecosmetics.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "kyliecosmetics-collections", "parameters": [ { @@ -351622,7 +364657,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Kylie Cosmetics (https://www.kyliecosmetics.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Kylie Cosmetics (https://www.kyliecosmetics.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "kyliecosmetics-collection-products", "parameters": [ { @@ -351699,7 +364734,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Kylie Cosmetics (https://www.kyliecosmetics.com). The storefront URL is fixed server-side.", + "description": "Lists static pages from the Kylie Cosmetics store, paged with `page` (default 1) and `limit` (default 50, max 250). Each page has its id, handle, title, URL, plain-text content and timestamps. When `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`.", "operationId": "kyliecosmetics-pages", "parameters": [ { @@ -351762,7 +364797,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Kylie Cosmetics (https://www.kyliecosmetics.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one static page from the Kylie Cosmetics store by `handle`. The response has the page id, title, URL, handle, plain-text content, and created, updated and published times. Content is text, not HTML. In some cases `transport_mode` is `ssr_embedded` and `id` is omitted. An unknown handle returns `404`.", "operationId": "kyliecosmetics-page", "parameters": [ { @@ -351825,7 +364860,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Kylie Cosmetics's (https://www.kyliecosmetics.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Kylie Cosmetics's (https://www.kyliecosmetics.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "kyliecosmetics-products", "parameters": [ { @@ -351888,7 +364923,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Kylie Cosmetics (https://www.kyliecosmetics.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Kylie Cosmetics (https://www.kyliecosmetics.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "kyliecosmetics-product", "parameters": [ { @@ -351951,7 +364986,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Kylie Cosmetics (https://www.kyliecosmetics.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Kylie Cosmetics (https://www.kyliecosmetics.com) product handle. The storefront URL is fixed server-side.", "operationId": "kyliecosmetics-product-recommendations", "parameters": [ { @@ -352032,7 +365067,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Kylie Cosmetics's (https://www.kyliecosmetics.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Kylie Cosmetics's (https://www.kyliecosmetics.com) predictive search. The storefront URL is fixed server-side.", "operationId": "kyliecosmetics-search-suggest", "parameters": [ { @@ -352222,7 +365257,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Kylie Cosmetics (https://www.kyliecosmetics.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Kylie Cosmetics (https://www.kyliecosmetics.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "kyliecosmetics-store", "produces": [ "application/json" @@ -352326,7 +365361,7 @@ }, "/latimes/author": { "get": { - "description": "Returns a Los Angeles Times author's byline metadata, biography, contact/social links, and recent articles from a canonical author URL.", + "description": "Returns a Los Angeles Times author profile by `url`, a canonical `https://www.latimes.com/people/` link; other hosts or paths return a bad-request error. The response has the `name`, `job_title`, `bio`, `email`, `image_url`, `social_accounts` and recent articles with title, URL, summary, publication time and lead image. Accounts the page does not list are absent.", "operationId": "latimes-author", "parameters": [ { @@ -352918,7 +365953,7 @@ }, "/leboncoin/listing": { "get": { - "description": "Returns normalized public metadata for one supplied Leboncoin ad URL. It excludes seller identity and contacts, precise location, payment, delivery, and account data.", + "description": "Returns public metadata for one supplied Leboncoin ad URL. It excludes seller identity and contacts, precise location, payment, delivery, and account data.", "operationId": "leboncoin-listing", "parameters": [ { @@ -352978,7 +366013,7 @@ }, "/leboncoin/search": { "get": { - "description": "Returns normalized public listing cards from one Leboncoin location page. This endpoint excludes contacts, seller profiles, accounts, and transaction data.", + "description": "Returns public listing cards from one Leboncoin location page. This endpoint excludes contacts, seller profiles, accounts, and transaction data.", "operationId": "leboncoin-search", "parameters": [ { @@ -353035,7 +366070,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Letterboxd film: synopsis, director, cast, genres, countries, languages, runtime, and aggregate member rating. Credential-free public Letterboxd data (letterboxd.com), parsed from the film page's schema.org structured data.", + "description": "Returns a Letterboxd film: synopsis, director, cast, genres, countries, languages, runtime, and aggregate member rating.", "operationId": "letterboxd-film", "parameters": [ { @@ -353098,7 +366133,7 @@ "consumes": [ "application/json" ], - "description": "Returns a film's full star-rating distribution (0.5 to 5.0 in half-star buckets) with counts and percentages. Credential-free public Letterboxd data.", + "description": "Returns a film's full star-rating distribution (0.5 to 5.0 in half-star buckets) with counts and percentages.", "operationId": "letterboxd-film-rating-histogram", "parameters": [ { @@ -353155,7 +366190,7 @@ "consumes": [ "application/json" ], - "description": "Returns a film's popular reviews (reviewer, rating, date, text, like/comment counts, spoiler flag). Credential-free public Letterboxd data.", + "description": "Returns popular reviews for a Letterboxd film by `slug`, up to `limit` (default 10, max 50). Each review has the username, display name, rating from 0.5 to 5.0 when the reviewer gave one, liked flag, date, text, spoiler flag, and like and comment counts.", "operationId": "letterboxd-film-reviews", "parameters": [ { @@ -353218,7 +366253,7 @@ "consumes": [ "application/json" ], - "description": "Returns films Letterboxd recommends as similar to the given film. Credential-free public Letterboxd data.", + "description": "Lists films Letterboxd recommends as similar to the film given by `slug`, up to `limit` (default 10, max 50). Each film has its `slug`, title and Letterboxd URL. Use the slug to look up that film's details.", "operationId": "letterboxd-film-similar", "parameters": [ { @@ -353281,7 +366316,7 @@ "consumes": [ "application/json" ], - "description": "Returns a member's public profile stats (films watched, lists, following/followers). No private data — everything is visible to a logged-out visitor. Credential-free public Letterboxd data.", + "description": "Returns a member's public profile stats (films watched, lists, following/followers). No private data — everything is visible to a logged-out visitor.", "operationId": "letterboxd-member", "parameters": [ { @@ -353344,7 +366379,7 @@ "consumes": [ "application/json" ], - "description": "Returns a person's Letterboxd filmography for a credit role. Credential-free public Letterboxd data.", + "description": "Returns a person's Letterboxd filmography by `slug`, ranked by popularity for one credit role. `role` is `actor` (default) or `director`, and `limit` defaults to 10 with a max of 50. The response has the person's name, role, and films with `slug`, title and Letterboxd URL.", "operationId": "letterboxd-person", "parameters": [ { @@ -353417,7 +366452,7 @@ "consumes": [ "application/json" ], - "description": "Returns a popularity-ranked film chart, optionally scoped to a time window, genre, and/or decade. Credential-free public Letterboxd data.", + "description": "Returns a Letterboxd film chart ranked by popularity. Omit `period` for all-time, or set `day`, `week`, `month` or `year`. `genre` takes a genre slug, `decade` a value like `2010s`, and `limit` defaults to 10 with a max of 50. Each film has its `slug`, title and Letterboxd URL.", "operationId": "letterboxd-popular", "parameters": [ { @@ -353498,7 +366533,7 @@ "consumes": [ "application/json" ], - "description": "Searches Letterboxd films, people, lists, and tags. Credential-free public Letterboxd data.", + "description": "Searches Letterboxd for films, people, lists and tags by `q`, required. `type` can be set to `film` to return films only; `limit` defaults to 10 with a max of 50. Fields vary by result type: films carry `slug` and `year`, people carry `slug` and `role`, lists carry `owner`, and tags carry only a title and URL.", "operationId": "letterboxd-search", "parameters": [ { @@ -353570,7 +366605,7 @@ "consumes": [ "application/json" ], - "description": "Returns detailed company information by LinkedIn ID.", + "description": "Returns a LinkedIn company page by its company `id`. The response has the name, headline, about text, industry, company size, employee count on LinkedIn, follower count, founding year, headquarters, locations, specialties, website, logo, Products section cards, affiliated and similar pages, and recent updates with reactions and comment counts.", "operationId": "linkedin-company", "parameters": [ { @@ -353682,7 +366717,7 @@ "consumes": [ "application/json" ], - "description": "Returns detailed product information from LinkedIn by product ID.", + "description": "Returns a LinkedIn product page by its product `id`. The response has the name, about text, category, owning organization, external link, logo, cover image, media items, featured customers with industry and follower count, and lists of other and similar products.", "operationId": "linkedin-product", "parameters": [ { @@ -353817,7 +366852,7 @@ "consumes": [ "application/json" ], - "description": "Returns detailed information about a LinkedIn showcase page by ID.", + "description": "Returns a LinkedIn showcase page by its showcase page `id`. The response has the name, headline, about text, industry, follower count, employees on LinkedIn, headquarters, locations, specialties, website, logo, Products section cards when present, affiliated and similar pages, and recent updates with reactions and comment counts.", "operationId": "linkedin-showcase", "parameters": [ { @@ -353931,7 +366966,7 @@ }, "/livemint/author": { "get": { - "description": "Returns a Mint author's byline metadata, biography, and social links from a canonical author profile URL.", + "description": "Returns a Mint author profile from a required `url` in the form `https://www.livemint.com/authors/`. The response has `name`, `job_title`, `biography`, `image_url` and Twitter, Facebook, LinkedIn and Instagram links, each present only when the profile carries it. It does not list the author's articles.", "operationId": "livemint-author", "parameters": [ { @@ -353985,7 +367020,7 @@ }, "/livemint/headlines": { "get": { - "description": "Returns fresh headlines from one public Mint section.", + "description": "Returns recent Mint headlines for one section. `section` is required and takes one of 15 slugs, including `companies`, `markets`, `money`, `ai` and `videos`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "livemint-headlines", "parameters": [ { @@ -354050,7 +367085,7 @@ }, "/livemint/news": { "get": { - "description": "Returns fresh Mint (livemint.com) top stories from its public \"news\" feed.", + "description": "Returns the current Mint (livemint.com) top stories, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. For one topic area, use `livemint-headlines` with a `section`.", "operationId": "livemint-news", "produces": [ "application/json" @@ -354088,7 +367123,7 @@ }, "/livemint/sections": { "get": { - "description": "Returns the public Mint section inventory used by the headlines endpoint.", + "description": "Lists the 15 Mint section slugs accepted by `livemint-headlines`, such as `companies`, `markets`, `money`, `budget` and `videos`. Each entry has its `slug`, display `name` and page `url`.", "operationId": "livemint-sections", "produces": [ "application/json" @@ -354369,7 +367404,7 @@ }, "/liverpoolecho/sections": { "get": { - "description": "Returns the public Liverpool Echo editorial section inventory used by liverpoolecho-headlines.", + "description": "Lists the Liverpool Echo sections accepted by `liverpoolecho-headlines`, such as `news/liverpool-news`, `sport/football/transfer-news`, `whats-on/theatre-news` and `in-your-area`. Each entry has a `slug`, display `name` and feed `url`. Each listed section had at least one current entry when last checked, and feeds hold up to about 25 entries.", "operationId": "liverpoolecho-sections", "produces": [ "application/json" @@ -354395,7 +367430,7 @@ }, "/livescience/article": { "get": { - "description": "Returns public Live Science article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Live Science article by `url`, a canonical HTTPS `livescience.com` article link. The response has the title, description, section, authors, lead image, publish and update times, body `paragraphs` and a `paywalled` flag.", "operationId": "livescience-article", "parameters": [ { @@ -354516,7 +367551,7 @@ }, "/livescience/headlines": { "get": { - "description": "Returns fresh Live Science headlines from one public section hub page.", + "description": "Returns current Live Science headlines for one section. `section` is required and takes one of 14 slugs: `animals`, `archaeology`, `chemistry`, `features`, `health`, `human-behavior`, `interviews`, `news`, `opinion`, `physics-mathematics`, `planet-earth`, `products`, `space` or `technology`. Each item has a title and URL, plus author, publication time and image when the section page shows them.", "operationId": "livescience-headlines", "parameters": [ { @@ -354580,7 +367615,7 @@ }, "/livescience/news": { "get": { - "description": "Returns fresh Live Science top stories from the public RSS feed.", + "description": "Returns Live Science's current top stories across the site, with no parameters. Each item has its title, URL, summary, author, publication time and image where available. Use `livescience-headlines` to narrow to one section.", "operationId": "livescience-news", "produces": [ "application/json" @@ -354618,7 +367653,7 @@ }, "/livescience/sections": { "get": { - "description": "Returns the public Live Science top-level editorial taxonomy used by the headlines endpoint.", + "description": "Lists the 14 top-level Live Science sections accepted by `livescience-headlines`, including `animals`, `archaeology`, `human-behavior`, `physics-mathematics`, `planet-earth` and `space`. Each entry has a `slug`, display `name` and section `url`.", "operationId": "livescience-sections", "produces": [ "application/json" @@ -354891,7 +367926,7 @@ "consumes": [ "application/json" ], - "description": "Returns the statistics section for a LiveScore match when the source exposes it. The current Next.js build id is resolved from the public match page at request time.", + "description": "Returns the statistics section for a LiveScore match when the source exposes it.", "operationId": "livescore-match-stats", "parameters": [ { @@ -354948,7 +367983,7 @@ "consumes": [ "application/json" ], - "description": "Returns public article-card metadata for a LiveScore news route. Discover sport, competition, team, tips, and daily-feed paths from /livescore/news-categories.", + "description": "Returns the article cards for one LiveScore news route. `category` is required: `all` for the home feed, or a lowercase route path of up to six segments, such as `football/premier-league`, found via `livescore-news-categories`. The response carries `source_url` and the page `data`. Some articles link to third-party publishers, article bodies are not returned, and unknown paths return not found or an upstream error.", "operationId": "livescore-news", "parameters": [ { @@ -355509,7 +368544,7 @@ "consumes": [ "application/json" ], - "description": "Returns the complete five-sport set shown in LiveScore's fixture navigation. Use a sport id with /livescore/scores.", + "description": "Lists the five sports in LiveScore's fixture navigation, with no inputs. The ids are `soccer` (shown as Football on the site), `hockey`, `basketball`, `tennis` and `cricket`. Use an id as the sport input of the LiveScore scores endpoint.", "operationId": "livescore-sports", "produces": [ "application/json" @@ -355659,7 +368694,7 @@ "consumes": [ "application/json" ], - "description": "Returns one lululemon category's product listing page: normalized products with pricing, sale detection, sizes, colors, and style numbers, sourced from lululemon's own app-backend category data. category and cdp_hash are the two path segments of a lululemon category URL (https://shop.lululemon.com/c/{category}/{cdp_hash}), e.g. women-new-styles and n14f1wz6o10 -- both are also available from lululemon-categories's own category and cdp_hash fields. Pagination is page-based and real: requesting a page beyond the category's real last page returns a normal response with an empty products array rather than an error. An unrecognized category/cdp_hash pair returns 404.", + "description": "Returns one lululemon category's product listing page: products with pricing, sale detection, sizes, colors, and style numbers. category and cdp_hash are the two path segments of a lululemon category URL (https://shop.lululemon.com/c/{category}/{cdp_hash}), e.g. women-new-styles and n14f1wz6o10 -- both are also available from lululemon-categories's own category and cdp_hash fields. Pagination is page-based and real: requesting a page beyond the category's real last page returns a normal response with an empty products array rather than an error. An unrecognized category/cdp_hash pair returns 404.", "operationId": "lululemon-category", "parameters": [ { @@ -355878,7 +368913,7 @@ "consumes": [ "application/json" ], - "description": "Returns lululemon's own complete physical store directory (480 US and 86 Canada locations as of this endpoint's own research), including regular weekly hours and in-store amenities. All filters are optional and applied locally after fetching the full directory -- there is no live geo-search API on a credential-free host for this platform. country and state are free-text equality filters against the values this directory actually carries (2-letter codes, e.g. US/CA, NY/CA), not an enforced enum. lat and lng (both required together) filter to stores within radius_miles (1 to 500, defaults to 50), sorted nearest-first.", + "description": "Returns lululemon's own complete physical store directory (480 US and 86 Canada locations), including regular weekly hours and in-store amenities. All filters are optional and applied to the full directory. country and state are free-text equality filters against the values this directory actually carries (2-letter codes, e.g. US/CA, NY/CA), not an enforced enum. lat and lng (both required together) filter to stores within radius_miles (1 to 500, defaults to 50), sorted nearest-first.", "operationId": "lululemon-stores", "parameters": [ { @@ -355959,7 +368994,7 @@ }, "/macrumors/article": { "get": { - "description": "Returns public MacRumors article metadata and body paragraphs from a canonical news, guide, how-to or review URL.", + "description": "Returns a MacRumors article by `url`: a dated news post, or a `/guide/`, `/how-to/` or `/review/` page. The response has the title, description, section, authors, lead image, publish time, `updated_at` and body `paragraphs`. Roundup, author and forum URLs are rejected. Reviews have no `updated_at`, and `paywalled` is omitted.", "operationId": "macrumors-article", "parameters": [ { @@ -356013,7 +369048,7 @@ }, "/macrumors/author": { "get": { - "description": "Returns one MacRumors author's public profile: name, bio, avatar, and their recent articles.", + "description": "Returns a MacRumors author profile, identified by `slug` (such as `juli-clover`) or a canonical `macrumors.com/author/` `url`; provide exactly one. The response has the name, `bio`, `image_url` and about 20 recent articles with title, URL, publication time and, when shown, summary and image. Unknown authors return not found.", "operationId": "macrumors-author", "parameters": [ { @@ -356073,7 +369108,7 @@ }, "/macrumors/headlines": { "get": { - "description": "Returns fresh headlines from one public MacRumors section.", + "description": "Returns the newest 20 MacRumors entries for one section. `section` is required and takes `front-page`, `guides`, `how-to` or `reviews`; other values return an invalid-params error. Each item has its title, URL, author, publication time and short summary. Items from `guides`, `how-to` and `reviews` also carry a thumbnail `image_url`.", "operationId": "macrumors-headlines", "parameters": [ { @@ -356127,7 +369162,7 @@ }, "/macrumors/news": { "get": { - "description": "Returns fresh MacRumors Apple news and rumor stories from the public all-stories RSS feed.", + "description": "Returns the latest 20 stories across MacRumors, with no parameters. Each item has its title, canonical article URL, author, publication time and a plain-text summary of about 300 characters. Items carry no lead image.", "operationId": "macrumors-news", "produces": [ "application/json" @@ -356159,7 +369194,7 @@ }, "/macrumors/sections": { "get": { - "description": "Returns the public MacRumors editorial section inventory.", + "description": "Lists the four MacRumors sections accepted by `macrumors-headlines`: `front-page` (all stories mixed), `guides`, `how-to` and `reviews`. Each entry has a `slug`, display `name` and `url`. Roundups, the Buyer's Guide and the forums are not sections.", "operationId": "macrumors-sections", "produces": [ "application/json" @@ -356188,7 +369223,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of a Macy's product's normalized customer reviews, plus a site-wide rating summary (rating count, average rating, recommended ratio, rating histogram) for the product. Sourced from a separate review platform Macy's own product pages embed, distinct from the product catalog itself. product_id is a numeric id, the same one used by GET /macys/product/{productId}. A product with zero reviews, or a well-formed but unrecognized product_id, returns a normal, empty result rather than an error.", + "description": "Returns one page of a Macy's product's customer reviews, plus a site-wide rating summary (rating count, average rating, recommended ratio, rating histogram) for the product. product_id is a numeric id, the same one used by GET /macys/product/{productId}. A product with zero reviews, or a well-formed but unrecognized product_id, returns a normal, empty result rather than an error.", "operationId": "macys-product-reviews", "parameters": [ { @@ -356369,7 +369404,7 @@ }, "/makeuseof/article": { "get": { - "description": "Returns public MakeUseOf article metadata and readable body paragraphs from a canonical article URL.", + "description": "Returns a MakeUseOf article by `url`, a canonical HTTPS article link. The response has the title, description, section, authors, lead image, publish and update times, the article body as `paragraphs`, and a `paywalled` flag. Section, author, tag, utility and video pages are not article URLs.", "operationId": "makeuseof-article", "parameters": [ { @@ -356477,7 +369512,7 @@ }, "/makeuseof/headlines": { "get": { - "description": "Returns current headlines from one of the 14 public MakeUseOf category RSS feeds. Use a slug from makeuseof_sections.", + "description": "Returns current MakeUseOf headlines for one category. `section` is required and takes one of 14 slugs such as `windows`, `linux`, `google-android`, `security`, `smart-home` or `news`; tag archives are not accepted. Each item has its title, URL, summary, author, publication time and image.", "operationId": "makeuseof-headlines", "parameters": [ { @@ -356547,7 +369582,7 @@ }, "/makeuseof/news": { "get": { - "description": "Returns current MakeUseOf top stories from its public RSS feed.", + "description": "Returns MakeUseOf's current top stories, with no parameters. Each item has its title, canonical article URL, short summary, publication time, and author and image when available.", "operationId": "makeuseof-news", "produces": [ "application/json" @@ -356585,7 +369620,7 @@ }, "/makeuseof/sections": { "get": { - "description": "Returns all 14 live-verified MakeUseOf primary-navigation sections accepted by the headlines endpoint.", + "description": "Lists the 14 MakeUseOf sections accepted by `makeuseof-headlines`, including `windows`, `linux`, `apple`, `networking`, `productivity`, `streaming` and `news`. Each entry has a `slug`, display `name` and `url`. Open-ended tag archives are not sections.", "operationId": "makeuseof-sections", "produces": [ "application/json" @@ -356623,7 +369658,7 @@ }, "/malaymail/article": { "get": { - "description": "Extracts public article metadata and readable body paragraphs from a canonical Malay Mail story URL.", + "description": "Returns a Malay Mail article by `url`, an absolute canonical link in the dated form `/news/
/////`. The response has the title, description, section, authors, lead image, publish and update times, body `paragraphs` and a `paywalled` flag.", "operationId": "malaymail-article", "parameters": [ { @@ -356683,7 +369718,7 @@ }, "/malaymail/headlines": { "get": { - "description": "Returns current headline cards for one of Malay Mail's public News sections.", + "description": "Returns current Malay Mail headline cards for one News section. `section` is required and takes one of `malaysia`, `singapore`, `money`, `world`, `life`, `eat-drink`, `showbiz`, `opinion`, `sports`, `tech-gadgets` or `what-you-think`. Each item has its title and URL; no summary, author, time or image is returned.", "operationId": "malaymail-headlines", "parameters": [ { @@ -356788,7 +369823,7 @@ }, "/malaymail/sections": { "get": { - "description": "Returns the verified public Malay Mail News navigation sections accepted by malaymail-headlines.", + "description": "Lists the 11 Malay Mail News sections accepted by `malaymail-headlines`, from `malaysia` and `singapore` to `eat-drink`, `tech-gadgets` and `what-you-think`. Each entry has a `slug`, display `name` and section `url`. Takes no parameters.", "operationId": "malaymail-sections", "produces": [ "application/json" @@ -356829,7 +369864,7 @@ "consumes": [ "application/json" ], - "description": "Returns a filterable, sorted manga ranking. Credential-free public AniList data. Filter by format, genre, and status.", + "description": "Returns a ranked list of manga from AniList. `sort` defaults to `TRENDING_DESC`; other values are `POPULARITY_DESC`, `SCORE_DESC`, `FAVOURITES_DESC`, `START_DATE_DESC` and `UPDATED_AT_DESC`. Filter by `format`, `genre` or `status`. Paged with `page` (default 1) and `per_page` (default 20, max 50); `has_next_page` shows if more exist.", "operationId": "manga-rankings", "parameters": [ { @@ -356934,7 +369969,7 @@ "consumes": [ "application/json" ], - "description": "Searches manga by free-text query. Credential-free public manga data from AniList. Returns normalized entries: titles, scores, popularity, format, status, chapters, volumes, genres, and tags.", + "description": "Searches manga by free-text query. Returns entries: titles, scores, popularity, format, status, chapters, volumes, genres, and tags.", "operationId": "manga-search", "parameters": [ { @@ -357017,7 +370052,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized manga by AniList id: titles, MyAnimeList id, scores, popularity, favourites, format, status, chapters, volumes, genres, ranked tags, dates, description, and images. Pass mal=true to additionally enrich the response with the MyAnimeList community score (mal block: score on a 0-10 scale, plus scored-by count), scraped credential-free from the public MAL page. Credential-free public AniList data.", + "description": "Returns a manga by AniList id: titles, MyAnimeList id, scores, popularity, favourites, format, status, chapters, volumes, genres, ranked tags, dates, description, and images. Pass mal=true to additionally enrich the response with the MyAnimeList community score (mal block: score on a 0-10 scale, plus scored-by count).", "operationId": "manga-title", "parameters": [ { @@ -357086,7 +370121,7 @@ "consumes": [ "application/json" ], - "description": "Returns a manga's cast (character name, native name, billed role, image, favourites), paginated. The AniList id space is shared between anime and manga but the two do not overlap, so an anime id here returns 404 -- use GET /anime/title/{id}/characters for those. Credential-free public AniList data.", + "description": "Returns a manga's cast (character name, native name, billed role, image, favourites), paginated. The AniList id space is shared between anime and manga but the two do not overlap, so an anime id here returns 404 -- use GET /anime/title/{id}/characters for those.", "operationId": "manga-title-characters", "parameters": [ { @@ -357161,7 +370196,7 @@ "consumes": [ "application/json" ], - "description": "Returns the titles AniList users recommend alongside a manga, most-recommended first, each with its community rating and full title record. Recommendations can cross media types -- a manga's list may include anime -- so read each entry's own type rather than assuming manga. An anime id here returns 404 -- use GET /anime/title/{id}/recommendations for those. Credential-free public AniList data.", + "description": "Returns the titles AniList users recommend alongside a manga, most-recommended first, each with its community rating and full title record. Recommendations can cross media types -- a manga's list may include anime -- so read each entry's own type rather than assuming manga. An anime id here returns 404 -- use GET /anime/title/{id}/recommendations for those.", "operationId": "manga-title-recommendations", "parameters": [ { @@ -357236,7 +370271,7 @@ "consumes": [ "application/json" ], - "description": "Returns the people credited on a manga -- author, artist, assistants, and per-language translation and lettering credits -- with each person's role, occupations and image, paginated. Manga roles carry detail anime credits do not: a long-running series records volume ranges per credit (e.g. \"Story & Art (vols 1-41)\", \"Supervisor (vols 41- )\"). An anime id here returns 404 -- use GET /anime/title/{id}/staff for those. Credential-free public AniList data.", + "description": "Returns the people credited on a manga -- author, artist, assistants, and per-language translation and lettering credits -- with each person's role, occupations and image, paginated. Manga roles carry detail anime credits do not: a long-running series records volume ranges per credit (e.g. \"Story & Art (vols 1-41)\", \"Supervisor (vols 41- )\"). An anime id here returns 404 -- use GET /anime/title/{id}/staff for those.", "operationId": "manga-title-staff", "parameters": [ { @@ -357308,7 +370343,7 @@ }, "/marketwatch/article": { "get": { - "description": "Returns public MarketWatch article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a MarketWatch article by `url`, a canonical HTTPS article link. The response has the title, description, section, authors, lead image, publish and update times, body `paragraphs` and a `paywalled` flag. Subscriber-only or blocked articles return an upstream error, so some URLs may fail.", "operationId": "marketwatch-article", "parameters": [ { @@ -357362,7 +370397,7 @@ }, "/marketwatch/author": { "get": { - "description": "Returns one MarketWatch author's public profile: name, job title, bio, and their recent articles.", + "description": "Returns a MarketWatch author profile, identified by `slug` (such as `hannah-pedone`) or a canonical `marketwatch.com/author/` `url`; provide exactly one. The response has the name, job title, bio, `works_for` and one page of recent articles with title and URL. The `?mod=` attribution query is removed from article URLs.", "operationId": "marketwatch-author", "parameters": [ { @@ -357422,7 +370457,7 @@ }, "/marketwatch/headlines": { "get": { - "description": "Returns fresh headlines from one public MarketWatch section.", + "description": "Returns current MarketWatch headlines for one section. `section` is required and takes `latest-news`, `markets`, `investing`, `personal-finance`, `economy-politics`, `technology`, `retirement` or `real-estate`. Each item has its title, URL, summary, author, publication time and image where available.", "operationId": "marketwatch-headlines", "parameters": [ { @@ -357480,7 +370515,7 @@ }, "/marketwatch/news": { "get": { - "description": "Returns fresh MarketWatch stories from the public Top Stories RSS feed.", + "description": "Returns MarketWatch's current top stories, with no parameters. Each item has its title, URL, summary, author, publication time and image where available. Use `marketwatch-headlines` to read a single section instead.", "operationId": "marketwatch-news", "produces": [ "application/json" @@ -357512,7 +370547,7 @@ }, "/marketwatch/sections": { "get": { - "description": "Returns the public MarketWatch editorial section inventory.", + "description": "Lists the eight MarketWatch sections accepted by `marketwatch-headlines`: `latest-news`, `markets`, `investing`, `personal-finance`, `economy-politics`, `technology`, `retirement` and `real-estate`. Each entry has a `slug`, display `name` and section `url`.", "operationId": "marketwatch-sections", "produces": [ "application/json" @@ -358334,7 +371369,7 @@ }, "/mediaite/author": { "get": { - "description": "Returns one Mediaite author's public profile: name, biography, avatar, email and X/Twitter links, and their recent articles.", + "description": "Returns a Mediaite author profile by `slug` (for example `michael-luciano`) or by a mediaite.com author `url`; supply exactly one. The response has `name`, `bio`, `avatar_url`, `email`, `twitter` and about 10 recent articles, each with `title`, `url` and a short `date` label such as `Sep 24th` (no year or time). Contact fields are omitted when the page shows none.", "operationId": "mediaite-author", "parameters": [ { @@ -358394,7 +371429,7 @@ }, "/mediaite/headlines": { "get": { - "description": "Returns fresh Mediaite headlines from one public category feed.", + "description": "Returns up to 20 recent Mediaite stories for one category. `section` is required and takes a slug such as `tv`, `politics`, `opinion` or `premium`; any other value returns an invalid-parameter error. Each item has a title, URL and publication time, and may include author, summary and image.", "operationId": "mediaite-headlines", "parameters": [ { @@ -358459,7 +371494,7 @@ }, "/mediaite/news": { "get": { - "description": "Returns fresh Mediaite top stories from the public news feed.", + "description": "Returns the 20 most recent Mediaite stories across the site, with no parameters. Each item has its title, canonical URL, summary, publication time and author. Use `mediaite-headlines` to read a single category instead.", "operationId": "mediaite-news", "produces": [ "application/json" @@ -358497,7 +371532,7 @@ }, "/mediaite/sections": { "get": { - "description": "Returns the public Mediaite category taxonomy accepted by the headlines endpoint.", + "description": "Lists the 15 Mediaite category slugs accepted as `section` by `mediaite-headlines`, such as `tv`, `politics`, `opinion` and `crime`. Each entry has its `slug`, display `name` and `url`. `premium` is the Mediaite One Sheet newsletter category, and `election-2020` is a legacy category that still publishes occasionally.", "operationId": "mediaite-sections", "produces": [ "application/json" @@ -358589,7 +371624,7 @@ }, "/medicalnewstoday/author": { "get": { - "description": "Returns an author's public profile and recent articles. Supply either the author slug or profile URL.", + "description": "Returns a Medical News Today author profile by `slug` including its numeric id (for example `peter-brown-1595`) or by the profile `url`; provide one of the two. The response has the author's `name`, a `bio` when one is listed, and recent articles with title and URL, plus summary, date and image where present.", "operationId": "medicalnewstoday-author", "parameters": [ { @@ -358649,7 +371684,7 @@ }, "/medicalnewstoday/headlines": { "get": { - "description": "Returns dated article cards from the dedicated Health News stream.", + "description": "Returns the dated story cards from the Medical News Today Health News stream. `section` is required and currently accepts only `news`; `medicalnewstoday-sections` shows the accepted value. Each item has a title and URL, with a publication date such as `2026-09-26`, author, summary and image when the card shows them.", "operationId": "medicalnewstoday-headlines", "parameters": [ { @@ -358706,7 +371741,7 @@ }, "/medicalnewstoday/news": { "get": { - "description": "Returns current stories from the site's dedicated Health News listing.", + "description": "Returns the current article cards from Medical News Today's Health News listing, with no parameters. Each item has a title and URL, plus publication date, author, summary and image when the card shows them. It is the way to read the latest health stories without choosing a section.", "operationId": "medicalnewstoday-news", "produces": [ "application/json" @@ -358764,7 +371799,7 @@ }, "/men/article": { "get": { - "description": "Returns public Manchester Evening News article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Manchester Evening News article by `url`, a canonical HTTPS article link. The response has the title, description, section, authors, lead image, publish and update times, body `paragraphs` and a `paywalled` flag. Subscriber-only or blocked articles return an upstream error.", "operationId": "men-article", "parameters": [ { @@ -358818,7 +371853,7 @@ }, "/men/author": { "get": { - "description": "Returns one Manchester Evening News author's public profile: name, job title, bio, email, X/Twitter handle, and their recent articles.", + "description": "Returns a Manchester Evening News author profile, identified by `slug` (such as `lee-swettenham`) or a canonical `manchestereveningnews.co.uk/authors//` `url`; provide exactly one. The response has the name, job title, bio, `email`, `twitter` and one page of recent articles with title, URL and label. Contact fields are absent when unlisted.", "operationId": "men-author", "parameters": [ { @@ -358878,7 +371913,7 @@ }, "/men/headlines": { "get": { - "description": "Returns fresh headlines from one public Manchester Evening News section.", + "description": "Returns current Manchester Evening News headlines for one section. `section` is required and takes a slug such as `news`, `news/greater-manchester-news`, `sport/football/transfer-news`, `whats-on/theatre-news` or `trips-and-breaks`. Each item has its title, URL, summary, publication time and image.", "operationId": "men-headlines", "parameters": [ { @@ -358955,7 +371990,7 @@ }, "/men/news": { "get": { - "description": "Returns fresh Manchester Evening News top stories from the public News RSS feed.", + "description": "Returns the Manchester Evening News' current top stories, with no parameters. Each item has its title, URL, summary, author, publication time and image where available.", "operationId": "men-news", "produces": [ "application/json" @@ -358987,7 +372022,7 @@ }, "/men/sections": { "get": { - "description": "Returns the public Manchester Evening News editorial section inventory used by men-headlines.", + "description": "Lists the Manchester Evening News sections accepted by `men-headlines`, such as `news`, `news/uk-news`, `sport/football`, `whats-on/music-nightlife-news` and `trips-and-breaks`. Each entry has a stable `slug`, display `name` and section `url`. Takes no parameters.", "operationId": "men-sections", "produces": [ "application/json" @@ -359016,7 +372051,7 @@ "consumes": [ "application/json" ], - "description": "Returns Mercari's own search-suggestion list for a partial keyword, in the upstream's own relevance order. An empty suggestion list is a normal outcome for obscure or gibberish input. Credential-free public data sourced from Mercari's own mobile-app API using an anonymous, login-free session.", + "description": "Returns Mercari's own search-suggestion list for a partial keyword, in its own relevance order. An empty suggestion list is a normal outcome for obscure or gibberish input.", "operationId": "mercari-autocomplete", "parameters": [ { @@ -359073,7 +372108,7 @@ "consumes": [ "application/json" ], - "description": "Returns Mercari's own curated home-feed recommendations: normalized listing summaries (title, price, thumbnail, condition, seller). Credential-free public data sourced from Mercari's own mobile-app API using an anonymous, login-free session.", + "description": "Returns Mercari's own curated home-feed recommendations: listing summaries (title, price, thumbnail, condition, seller).", "operationId": "mercari-home", "produces": [ "application/json" @@ -359114,7 +372149,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Mercari item-detail page: description, all photos, price, condition, category, hashtags, the shipping origin state, and a \"similar items\" carousel of related listings. Credential-free public data sourced from Mercari's own mobile-app API using an anonymous, login-free session.", + "description": "Returns a Mercari item-detail page: description, all photos, price, condition, category, hashtags, the shipping origin state, and a \"similar items\" carousel of related listings.", "operationId": "mercari-item", "parameters": [ { @@ -359177,7 +372212,7 @@ "consumes": [ "application/json" ], - "description": "Returns Mercari's full reference taxonomy in one call: every category (with parent linkage), every recognized brand, and every clothing/shoe/apparel size. Large (tens of thousands of brand entries) and effectively static -- cache this response rather than polling it. Credential-free public data sourced from Mercari's own mobile-app API using an anonymous, login-free session.", + "description": "Returns Mercari's full reference taxonomy in one call: every category (with parent linkage), every recognized brand, and every clothing/shoe/apparel size. Large (tens of thousands of brand entries) and effectively static -- cache this response rather than polling it.", "operationId": "mercari-master", "produces": [ "application/json" @@ -359218,7 +372253,7 @@ "consumes": [ "application/json" ], - "description": "Searches Mercari's live resale marketplace by free-text keyword, returning normalized listing summaries (title, price, thumbnail, condition, seller) plus the total matching count. Credential-free public data sourced from Mercari's own mobile-app API using an anonymous, login-free session.", + "description": "Searches Mercari's live resale marketplace by free-text keyword, returning listing summaries (title, price, thumbnail, condition, seller) plus the total matching count.", "operationId": "mercari-search", "parameters": [ { @@ -359275,7 +372310,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Meta Careers posting by its numeric job id (the `id` field returned by search or list). Parsed from metacareers.com's server-rendered job detail page.", + "description": "Returns one Meta Careers posting by its numeric job id (the `id` field returned by search or list).", "operationId": "meta-jobs-job", "parameters": [ { @@ -359401,7 +372436,7 @@ "consumes": [ "application/json" ], - "description": "Searches Meta's public careers site (metacareers.com) via its own anonymous jobsearch GraphQL endpoint, with the same team/technology/location/employment-type/keyword/remote/sort filters the live search page offers. All filters are optional and combine with AND semantics; an empty request returns Meta's entire open-requisition catalog in one response. `q` matches team, technology, location, or ref/req-code names -- it is NOT a free-text search over job titles or descriptions. `teams` enum (org teams + technologies, both use the same field): `Advertising Technology`, `AR/VR`, `Artificial Intelligence`, `Business Development & Partnerships`, `Communications & Public Policy`, `Creative`, `Data & Analytics`, `Data Center`, `Design & User Experience`, `Enterprise Engineering`, `Global Operations`, `Infrastructure`, `Internship - Business`, `Internship - Engineering, Tech & Design`, `Internship - PhD`, `Legal, Finance, Facilities & Admin`, `People & Recruiting`, `Product Management`, `Research`, `Sales & Marketing`, `Security`, `Software Engineering`, `Technical Program Management`, `University Grad - Business`, `University Grad - Engineering, Tech & Design`, `University Grad - PhD & Postdoc`, `Facebook`, `Messenger`, `Instagram`, `WhatsApp`, `Meta Quest`. `roles` enum: `Full time employment`, `Internship`, `Short term employment`. `results_per_page` enum: `all`, `five`, `ten`.", + "description": "Searches Meta's public careers site (metacareers.com) with the same team/technology/location/employment-type/keyword/remote/sort filters the live search page offers. All filters are optional and combine with AND semantics; an empty request returns Meta's entire open-requisition catalog in one response. `q` matches team, technology, location, or ref/req-code names -- it is NOT a free-text search over job titles or descriptions. `teams` enum (org teams + technologies, both use the same field): `Advertising Technology`, `AR/VR`, `Artificial Intelligence`, `Business Development & Partnerships`, `Communications & Public Policy`, `Creative`, `Data & Analytics`, `Data Center`, `Design & User Experience`, `Enterprise Engineering`, `Global Operations`, `Infrastructure`, `Internship - Business`, `Internship - Engineering, Tech & Design`, `Internship - PhD`, `Legal, Finance, Facilities & Admin`, `People & Recruiting`, `Product Management`, `Research`, `Sales & Marketing`, `Security`, `Software Engineering`, `Technical Program Management`, `University Grad - Business`, `University Grad - Engineering, Tech & Design`, `University Grad - PhD & Postdoc`, `Facebook`, `Messenger`, `Instagram`, `WhatsApp`, `Meta Quest`. `roles` enum: `Full time employment`, `Internship`, `Short term employment`. `results_per_page` enum: `all`, `five`, `ten`.", "operationId": "meta-jobs-search", "parameters": [ { @@ -359513,7 +372548,7 @@ "consumes": [ "application/json" ], - "description": "Browse Metacritic titles by content type, optionally filtered by genre and ordered by Metascore, popularity, or release date. Returns paginated title cards with Metascore and user score. Credential-free public Metacritic data.", + "description": "Browse Metacritic titles by content type, optionally filtered by genre and ordered by Metascore, popularity, or release date. Returns paginated title cards with Metascore and user score.", "operationId": "metacritic-browse", "parameters": [ { @@ -359611,7 +372646,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Metacritic game: Metascore (critic) and user score with sentiment and review counts, genres, per-platform scores, developer/publisher, rating, release date, and trailer. Credential-free public Metacritic data.", + "description": "Returns a Metacritic game: Metascore (critic) and user score with sentiment and review counts, genres, per-platform scores, developer/publisher, rating, release date, and trailer.", "operationId": "metacritic-game", "parameters": [ { @@ -359674,7 +372709,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated professional/publication reviews for a game: publication, score, quote, author, platform, and source URL. Credential-free public Metacritic data.", + "description": "Lists critic reviews for a Metacritic game by `slug` (such as `elden-ring`). Each review has the publication, score, quote, author, date, platform and source URL. `sort` is `date` (default), `score` or `publication`; `page` defaults to 1 and `per_page` to 20 with a max of 50. The response includes the `total` count.", "operationId": "metacritic-game-critic-reviews", "parameters": [ { @@ -359760,7 +372795,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated user reviews for a game: author, score (0-10), quote, date, platform, helpfulness, and spoiler flag. Credential-free public Metacritic data.", + "description": "Returns paginated user reviews for a game: author, score (0-10), quote, date, platform, helpfulness, and spoiler flag.", "operationId": "metacritic-game-user-reviews", "parameters": [ { @@ -359846,7 +372881,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Metacritic movie: Metascore (critic) and user score with sentiment and review counts, genres, cast/crew, rating, runtime, release date, IMDb id, and trailer. Credential-free public Metacritic data.", + "description": "Returns a Metacritic movie: Metascore (critic) and user score with sentiment and review counts, genres, cast/crew, rating, runtime, release date, IMDb id, and trailer.", "operationId": "metacritic-movie", "parameters": [ { @@ -359909,7 +372944,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated professional/publication reviews for a movie: publication, score, quote, author, and source URL. Credential-free public Metacritic data.", + "description": "Lists critic reviews for a Metacritic movie by `slug` (such as `oppenheimer`). Each review has the publication, score, quote, author, date and source URL. `sort` is `date` (default), `score` or `publication`; `page` defaults to 1 and `per_page` to 20 with a max of 50. The response includes the `total` count.", "operationId": "metacritic-movie-critic-reviews", "parameters": [ { @@ -359995,7 +373030,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated user reviews for a movie: author, score (0-10), quote, date, helpfulness, and spoiler flag. Credential-free public Metacritic data.", + "description": "Returns paginated user reviews for a movie: author, score (0-10), quote, date, helpfulness, and spoiler flag.", "operationId": "metacritic-movie-user-reviews", "parameters": [ { @@ -360081,7 +373116,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Metacritic TV show: Metascore (critic) and user score with sentiment and review counts, genres, networks, season count, rating, release date, IMDb id, and trailer. Credential-free public Metacritic data.", + "description": "Returns a Metacritic TV show: Metascore (critic) and user score with sentiment and review counts, genres, networks, season count, rating, release date, IMDb id, and trailer.", "operationId": "metacritic-tv", "parameters": [ { @@ -360144,7 +373179,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated professional/publication reviews for a TV show: publication, score, quote, author, and source URL. Credential-free public Metacritic data.", + "description": "Lists critic reviews for a Metacritic TV show by `slug` (such as `breaking-bad`). Each review has the publication, score, quote, author, date and source URL. `sort` is `date` (default), `score` or `publication`; `page` defaults to 1 and `per_page` to 20 with a max of 50. The response includes the `total` count.", "operationId": "metacritic-tv-critic-reviews", "parameters": [ { @@ -360230,7 +373265,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated user reviews for a TV show: author, score (0-10), quote, date, helpfulness, and spoiler flag. Credential-free public Metacritic data.", + "description": "Returns paginated user reviews for a TV show: author, score (0-10), quote, date, helpfulness, and spoiler flag.", "operationId": "metacritic-tv-user-reviews", "parameters": [ { @@ -360316,7 +373351,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Metaculus question rows from a credential-free public category feed page. Allowed category slugs: artificial-intelligence, computing-and-math, cryptocurrencies, economy-business, elections, environment-climate, geopolitics, health-pandemics, law, metaculus, natural-sciences, nuclear, politics, social-sciences, space, sports-entertainment, technology.", + "description": "Returns Metaculus question rows for a category. Allowed category slugs: artificial-intelligence, computing-and-math, cryptocurrencies, economy-business, elections, environment-climate, geopolitics, health-pandemics, law, metaculus, natural-sciences, nuclear, politics, social-sciences, space, sports-entertainment, technology.", "operationId": "metaculus-category-questions", "parameters": [ { @@ -360410,7 +373445,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Metaculus question rows for the questions referenced by the most recent public comments, in comment recency order. Derived from credential-free public Metaculus data; upstream comment bodies are not exposed.", + "description": "Returns Metaculus question rows for the questions referenced by the most recent public comments, in comment recency order. Comment bodies are not exposed.", "operationId": "metaculus-comments-feed", "parameters": [ { @@ -360483,7 +373518,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Metaculus question rows for one public project, filtered by its slug. A slug that does not exist returns 404.", + "description": "Returns Metaculus question rows for one public project, filtered by its slug. A slug that does not exist returns 404.", "operationId": "metaculus-project-questions", "parameters": [ { @@ -360558,7 +373593,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Metaculus question from credential-free public page data.", + "description": "Returns one Metaculus question by numeric `id` (a question or post id). The response has the title, status, question type, unit, open, close and resolve times, forecaster and forecast counts, comment count, latest forecast center and bounds, categories, projects and URL.", "operationId": "metaculus-question", "parameters": [ { @@ -360627,7 +373662,7 @@ "consumes": [ "application/json" ], - "description": "Returns public aggregation forecast history points for one Metaculus question from credential-free public page data. The `method` enum accepts `recency_weighted`, `unweighted`, and `single_aggregation`.", + "description": "Returns public aggregation forecast history points for one Metaculus question. The `method` enum accepts `recency_weighted`, `unweighted`, and `single_aggregation`.", "operationId": "metaculus-question-forecast-history", "parameters": [ { @@ -360715,7 +373750,7 @@ "consumes": [ "application/json" ], - "description": "Returns compact public latest forecast summaries by aggregation method for one Metaculus question.", + "description": "Returns the latest forecast summary per aggregation method for one Metaculus question, by numeric `id`. Each method has its name, forecaster count, center, lower and upper values, and number of history points. `recency_weighted`, `unweighted` and `single_aggregation` are listed first when present. The question details come with it.", "operationId": "metaculus-question-forecasts", "parameters": [ { @@ -360934,7 +373969,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Metaculus question rows from credential-free public page data. The endpoint fails closed on authenticated API responses or Cloudflare challenge pages.", + "description": "Returns Metaculus question rows. The endpoint fails closed, returning an error instead of partial data, when the source responds with an authenticated-only response or a challenge page.", "operationId": "metaculus-questions", "parameters": [ { @@ -361007,7 +374042,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Metaculus question rows for the questions whose recent public comments collected the highest vote scores over roughly the last week. Derived from credential-free public Metaculus data; upstream comment bodies are not exposed.", + "description": "Returns Metaculus question rows for the questions whose recent public comments collected the highest vote scores over roughly the last week. Comment bodies are not exposed.", "operationId": "metaculus-top-comments", "parameters": [ { @@ -361080,7 +374115,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Metaculus question rows for one public tournament, filtered by its slug. A slug that does not exist returns 404.", + "description": "Returns Metaculus question rows for one public tournament, filtered by its slug. A slug that does not exist returns 404.", "operationId": "metaculus-tournament-questions", "parameters": [ { @@ -361384,7 +374419,7 @@ }, "/metro/sections": { "get": { - "description": "Returns every Metro section slug accepted by the headlines endpoint, with its display name and public RSS feed URL.", + "description": "Lists the 42 Metro section slugs accepted by `metro-headlines`, each with its display name and URL. Slugs include `uk`, `football`, `showbiz` and `coronation-street`. `home` is the site-wide stream, the same stories as `metro-news`, and parent sections such as `news` and `sport` aggregate their child sections.", "operationId": "metro-sections", "produces": [ "application/json" @@ -361413,7 +374448,7 @@ "consumes": [ "application/json" ], - "description": "Returns every accepted category for a department, and -- apps only -- each category's own finer subcategories (e.g. Books & reference -> E-reader, Fiction, Nonfiction, Reference). This is the discovery endpoint for the category/subcategory values accepted by /microsoftstore/search, /microsoftstore/category, and /microsoftstore/charts. Subcategories are apps-only: games categories have none. Credential-free public Microsoft Store data, live-verified and pinned rather than a passthrough call.", + "description": "Returns every accepted category for a department, and -- apps only -- each category's own finer subcategories (e.g. Books & reference -> E-reader, Fiction, Nonfiction, Reference). This is the discovery endpoint for the category/subcategory values accepted by /microsoftstore/search, /microsoftstore/category, and /microsoftstore/charts. Subcategories are apps-only: games categories have none.", "operationId": "microsoftstore-categories", "parameters": [ { @@ -361467,7 +374502,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of a single department+category listing, cursor-paginated, with no search keyword required -- the credential-free way to list an entire category (search requires a non-empty query and returns nothing for an empty one). category is required; the accepted set depends on media_type (see /microsoftstore/search's markdown doc for the full per-department lists). media_type defaults to apps; all is not accepted here since it has no category filter upstream. Credential-free public Microsoft Store data, read directly from the store's own category-filter API.", + "description": "Returns a page of a single department+category listing, cursor-paginated, with no search keyword required -- the way to list an entire category (search requires a non-empty query and returns nothing for an empty one). category is required; the accepted set depends on media_type (see /microsoftstore/search's markdown doc for the full per-department lists). media_type defaults to apps; all is not accepted here since it has no category filter.", "operationId": "microsoftstore-category", "parameters": [ { @@ -361555,7 +374590,7 @@ "consumes": [ "application/json" ], - "description": "Returns a curated Microsoft Store chart (top free, top paid, top grossing, trending, deals, new releases, getting-started picks, or -- apps only -- most popular), optionally scoped to a category/subcategory and, for games, by Xbox Game Pass availability or player count. Some charts (notably NewAndRising) can legitimately return fewer items than page_size even at the first page -- that reflects real upstream sparsity for that chart, not a parsing gap. Credential-free public Microsoft Store data, read directly from the store's own curated-list API.", + "description": "Returns a curated Microsoft Store chart (top free, top paid, top grossing, trending, deals, new releases, getting-started picks, or -- apps only -- most popular), optionally scoped to a category/subcategory and, for games, by Xbox Game Pass availability or player count. Some charts (notably NewAndRising) can legitimately return fewer items than page_size even at the first page -- that reflects real sparsity for that chart.", "operationId": "microsoftstore-charts", "parameters": [ { @@ -361701,7 +374736,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Microsoft Store editorial article (currently only seen in the wild as a per-product Microsoft Store Awards writeup). There is no discovery endpoint for editorial ids: they are only found embedded in a product's own award.editorial_id field, returned by /microsoftstore/search, /microsoftstore/category, /microsoftstore/charts, /microsoftstore/publisher, and /microsoftstore/related when that product carries an award. An unknown/invalid id returns a 503 upstream error, not a clean 404 -- the upstream itself does not distinguish the two. Credential-free public Microsoft Store data, read directly from the store's own editorial-page API.", + "description": "Returns a Microsoft Store editorial article (currently only seen in the wild as a per-product Microsoft Store Awards writeup). There is no discovery endpoint for editorial ids: they are only found embedded in a product's own award.editorial_id field, returned by /microsoftstore/search, /microsoftstore/category, /microsoftstore/charts, /microsoftstore/publisher, and /microsoftstore/related when that product carries an award. An unknown/invalid id returns a 503 upstream error, not a clean 404 -- the upstream itself does not distinguish the two.", "operationId": "microsoftstore-editorial", "parameters": [ { @@ -361772,7 +374807,7 @@ "consumes": [ "application/json" ], - "description": "Returns a department's \"Special events\" promotional shelf -- featured/limited-time products, distinct from the ranked charts (/microsoftstore/charts) and the curated home/department spotlight (/microsoftstore/spotlight). Only apps and games have this shelf; any other media_type is rejected. Credential-free public Microsoft Store data, read directly from the store's own promotional-events API.", + "description": "Returns a department's \"Special events\" promotional shelf -- featured/limited-time products, distinct from the ranked charts (/microsoftstore/charts) and the curated home/department spotlight (/microsoftstore/spotlight). Only apps and games have this shelf; any other media_type is rejected.", "operationId": "microsoftstore-events", "parameters": [ { @@ -361854,7 +374889,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Microsoft Store listing details for a single product id: title, description, publisher, category, media type, aggregate rating and content-rating breakdown, price and SKU summary, size, supported platforms/languages, capabilities, version/release/update timestamps, feature callouts, and media (icon, poster art, screenshots, trailers). Credential-free public Microsoft Store data, read directly from the store's own page-data API.", + "description": "Returns Microsoft Store listing details for a single product id: title, description, publisher, category, media type, aggregate rating and content-rating breakdown, price and SKU summary, size, supported platforms/languages, capabilities, version/release/update timestamps, feature callouts, and media (icon, poster art, screenshots, trailers).", "operationId": "microsoftstore-product", "parameters": [ { @@ -361925,7 +374960,7 @@ "consumes": [ "application/json" ], - "description": "Returns every product a publisher/developer has listed on the Microsoft Store, cursor-paginated. publisher_name must match the publisher name exactly as shown on a listing (e.g. the publisher field returned by /microsoftstore/product or /microsoftstore/search). Credential-free public Microsoft Store data, read directly from the store's own browse-by-publisher API.", + "description": "Returns every product a publisher/developer has listed on the Microsoft Store, cursor-paginated. publisher_name must match the publisher name exactly as shown on a listing (e.g. the publisher field returned by /microsoftstore/product or /microsoftstore/search).", "operationId": "microsoftstore-publisher", "parameters": [ { @@ -361996,7 +375031,7 @@ "consumes": [ "application/json" ], - "description": "Returns the store's default, query-less \"Recommended for you\" shelf -- the same recommendations the search box shows before a caller types anything. No query parameters beyond region/locale. Credential-free public Microsoft Store data, read directly from the store's own zero-state search API.", + "description": "Returns the store's default, query-less \"Recommended for you\" shelf -- the same recommendations the search box shows before a caller types anything. No query parameters beyond region/locale.", "operationId": "microsoftstore-recommended", "parameters": [ { @@ -362047,7 +375082,7 @@ "consumes": [ "application/json" ], - "description": "Returns products related to a seed product id, paginated. product_type must match the seed product's own media type (apps -> Application, games -> Game, passes -> Passes) -- any other value is rejected upstream. Omit product_type to have it resolved automatically from product_id via one extra lightweight lookup; pass it explicitly to skip that lookup. Credential-free public Microsoft Store data, read directly from the store's own recommendation API.", + "description": "Returns products related to a seed product id, paginated. product_type must match the seed product's own media type (apps -> Application, games -> Game, passes -> Passes) -- any other value is rejected upstream. Omit product_type to have it resolved automatically from product_id via one extra lightweight lookup; pass it explicitly to skip that lookup.", "operationId": "microsoftstore-related", "parameters": [ { @@ -362137,7 +375172,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of written Microsoft Store reviews for a product id, each with rating, title, text, submission time, helpful-vote counts, and device/OS info. sort controls ordering (MostHelpful or MostRecent -- the only two values the upstream API itself accepts; any other value is rejected). Credential-free public Microsoft Store data, read directly from the store's own review-listing API.", + "description": "Returns one page of written Microsoft Store reviews for a product id, each with rating, title, text, submission time, helpful-vote counts, and device/OS info. sort controls ordering (MostHelpful or MostRecent -- the only two values the upstream API itself accepts; any other value is rejected).", "operationId": "microsoftstore-reviews", "parameters": [ { @@ -362227,7 +375262,7 @@ "consumes": [ "application/json" ], - "description": "Returns a product's aggregate rating: average rating, total review count, a 1-5 star rating distribution, and the upstream-selected most critical and most favorable written reviews. Credential-free public Microsoft Store data, read directly from the store's own review-summary API.", + "description": "Returns a product's aggregate rating: average rating, total review count, a 1-5 star rating distribution, and the upstream-selected most critical and most favorable written reviews.", "operationId": "microsoftstore-reviews-summary", "parameters": [ { @@ -362292,7 +375327,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of Microsoft Store search results (apps, games, devices, and other listings) for a keyword, with cursor-based pagination and per-item publisher, rating, price, and media. media_type selects the department (apps, games, devices, passes, fonts, themes, tencent-android, tencent-mini, or all); category further filters within that department (the accepted set depends on media_type -- see the markdown doc for the full per-department lists). Pass the previous response's next_cursor to fetch the next page. Credential-free public Microsoft Store data, read directly from the store's own web API.", + "description": "Returns a page of Microsoft Store search results (apps, games, devices, and other listings) for a keyword, with cursor-based pagination and per-item publisher, rating, price, and media. media_type selects the department (apps, games, devices, passes, fonts, themes, tencent-android, tencent-mini, or all); category further filters within that department (the accepted set depends on media_type -- see the markdown doc for the full per-department lists). Pass the previous response's next_cursor to fetch the next page.", "operationId": "microsoftstore-search", "parameters": [ { @@ -362426,7 +375461,7 @@ "consumes": [ "application/json" ], - "description": "Returns the curated hero/spotlight shelf shown at the top of the store's home page or one department's landing page (the large featured banners, not the ranked charts or the smaller \"Special events\" shelf). Only home, apps, and games have a spotlight; any other media_type is rejected. Credential-free public Microsoft Store data, read directly from the store's own promotion-products API.", + "description": "Returns the curated hero/spotlight shelf shown at the top of the store's home page or one department's landing page (the large featured banners, not the ranked charts or the smaller \"Special events\" shelf). Only home, apps, and games have a spotlight; any other media_type is rejected.", "operationId": "microsoftstore-spotlight", "parameters": [ { @@ -362495,7 +375530,7 @@ "consumes": [ "application/json" ], - "description": "Returns typeahead-style Microsoft Store search suggestions for a partial search term: plain-text completions plus a short list of matching products (id, title, icon, department, and store URL). Credential-free public Microsoft Store data, read directly from the store's own autocomplete API.", + "description": "Returns typeahead-style Microsoft Store search suggestions for a partial search term: plain-text completions plus a short list of matching products (id, title, icon, department, and store URL).", "operationId": "microsoftstore-suggest", "parameters": [ { @@ -362557,7 +375592,7 @@ }, "/mirror/article": { "get": { - "description": "Returns public Mirror article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Mirror article by its canonical `url`: title, description, section, authors, lead image, publication and update times, a `paywalled` flag and the body `paragraphs`. Only public content is returned; subscriber-only or blocked articles return an upstream error.", "operationId": "mirror-article", "parameters": [ { @@ -362611,7 +375646,7 @@ }, "/mirror/author": { "get": { - "description": "Returns one Mirror author's public profile: name, job title, bio, email, X/Twitter handle, and their recent articles.", + "description": "Returns a Mirror author profile by `slug` (for example `neil-shaw`) or by a mirror.co.uk author `url`; supply exactly one. The response has `name`, `job_title`, `bio`, `email`, `twitter` and one page of recent articles with title, URL and label. There is no paging, and unlisted contact details are omitted rather than raising an error.", "operationId": "mirror-author", "parameters": [ { @@ -362671,7 +375706,7 @@ }, "/mirror/headlines": { "get": { - "description": "Returns fresh headlines from one public Mirror section.", + "description": "Returns recent Mirror headlines for one section. `section` is required and takes one of 34 slugs or paths, such as `news/uk-news`, `sport/football`, `3am` or `lifestyle/food-drink`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "mirror-headlines", "parameters": [ { @@ -362755,7 +375790,7 @@ }, "/mirror/news": { "get": { - "description": "Returns fresh Mirror top stories from the public News RSS feed.", + "description": "Returns the current Mirror top stories, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. Use `mirror-headlines` to read a single section.", "operationId": "mirror-news", "produces": [ "application/json" @@ -362787,7 +375822,7 @@ }, "/mirror/sections": { "get": { - "description": "Returns the public Mirror editorial section inventory used by mirror-headlines.", + "description": "Lists the Mirror section slugs accepted by `mirror-headlines`. Each entry has a stable `slug`, a display `name` and a section `url`. Slugs can contain a path, such as `news/uk-news` or `sport/football`.", "operationId": "mirror-sections", "produces": [ "application/json" @@ -362925,7 +375960,7 @@ "consumes": [ "application/json" ], - "description": "Returns a compact MLB game feed with status, teams, score, innings, probable pitchers, decisions, and team box-score totals.", + "description": "Returns an MLB game summary by numeric `id`. The response has the status, both teams with records and score, inning-by-inning runs, probable pitchers, winning, losing and save pitchers, and team box-score totals. It does not include the full play-by-play. Use the play-by-play endpoint for that.", "operationId": "mlb-game", "parameters": [ { @@ -362985,7 +376020,7 @@ }, "/mlb/game-boxscore": { "get": { - "description": "Returns both teams' player batting, pitching, and fielding lines for a game.", + "description": "Returns the player box score for an MLB game by numeric `id`. For the home and away teams it lists each player used with position, batting order and batting, pitching and fielding stats, plus team totals.", "operationId": "mlb-game-boxscore", "parameters": [ { @@ -363039,7 +376074,7 @@ }, "/mlb/game-play-by-play": { "get": { - "description": "Returns every at-bat and pitch/event record for an MLB game.", + "description": "Returns the at-bats of an MLB game by numeric `id`. Each play has its inning and half, batter, pitcher, event and description, and a list of individual pitch and event records with timing and pitch data. The response includes a `total` count of plays.", "operationId": "mlb-game-play-by-play", "parameters": [ { @@ -363205,7 +376240,7 @@ "consumes": [ "application/json" ], - "description": "Returns ranked MLB season stat splits across both leagues. The group enum accepts every value returned by mlb_discovery.", + "description": "Returns ranked MLB stat splits across both leagues. `group` is required (`hitting`, `pitching`, `fielding`, `catching`, `running`, `game`, `team` or `streak`). `season` defaults to the current year and `stat_type` to `season`. Narrow with `league_id`, `team_id`, `position`, `player_pool`, and page with `limit` (1 to 100) and `offset` (0 to 10000).", "operationId": "mlb-league-stats", "parameters": [ { @@ -363453,7 +376488,7 @@ "consumes": [ "application/json" ], - "description": "Returns an MLB player's identity, biographical information, position, handedness, active status, and current team.", + "description": "Returns an MLB player by numeric `id`. The response has the full name, position, bats and throws sides, birth date, city and country, current age, height, weight, jersey number, MLB debut date, active flag and current team. Unknown players return `404`.", "operationId": "mlb-player", "parameters": [ { @@ -363516,7 +376551,7 @@ "consumes": [ "application/json" ], - "description": "Returns one player's MLB season statistics. The group enum accepts every value returned by mlb_discovery.", + "description": "Returns one MLB player's statistics. `id` and `group` (`hitting`, `pitching`, `fielding`, `catching`, `running`, `game`, `team` or `streak`) are required. `season` defaults to the current year and `stat_type` to `season`. Other `stat_type` values cover career, game logs and splits. Use `start_date` with `end_date` for date ranges.", "operationId": "mlb-player-stats", "parameters": [ { @@ -365208,7 +378243,7 @@ }, "/mlb/statcast-arm-strength-player": { "get": { - "description": "Returns the player's individual Arm Strength throw records for a verified season or all years.", + "description": "Returns the individual Arm Strength throw records for one player, by positive `player_id`. `year` can be 2020 to 2026, or `9999` for all years, and defaults to the current verified season. Each throw has its year, fielder id, position, the measured arm-strength value and a play id.", "operationId": "mlb-statcast-arm-strength-player", "parameters": [ { @@ -372121,7 +385156,7 @@ }, "/mlb/statcast-pitch-tempo-player": { "get": { - "description": "Returns game-level time buckets for the selected pitcher or batter. Use entity_id from an mlb_statcast_pitch_tempo result.", + "description": "Returns game-level Pitch Tempo detail rows for one pitcher or batter. `entity_id` is required, taken from a Pitch Tempo result. `type` is `Pit` (default) or `Bat`, `season_start` and `season_end` run from 2010 to 2026 and default to the current year, and `game_type` is `Regular` (default), `Playoff` or `All`. Rows hold elapsed seconds, counts and frequencies; empty when nothing matches.", "operationId": "mlb-statcast-pitch-tempo-player", "parameters": [ { @@ -375193,7 +388228,7 @@ }, "/mlb/team-stats": { "get": { - "description": "Returns one team's season statistics. Group accepts every value returned by mlb_discovery.", + "description": "Returns one MLB team's statistics. `team_id` and `group` (`hitting`, `pitching`, `fielding`, `catching`, `running`, `game`, `team` or `streak`) are required. `season` defaults to the current year and `stat_type` to `season`. Other `stat_type` values cover splits and logs. Use `start_date` with `end_date` for date ranges.", "operationId": "mlb-team-stats", "parameters": [ { @@ -375379,7 +388414,7 @@ "consumes": [ "application/json" ], - "description": "Returns the 30 MLB clubs for a season with league, division, venue, and abbreviation metadata.", + "description": "Lists the 30 MLB clubs for a `season` (four-digit year, default the current year). Each team has its id, name, club name, location, abbreviation, league, division, venue, first year of play and active flag.", "operationId": "mlb-teams", "parameters": [ { @@ -375432,7 +388467,7 @@ }, "/mlb/transactions": { "get": { - "description": "Lists signings, trades, options, assignments, injured-list moves, and other MLB transactions for a date range.", + "description": "Lists MLB transactions between `start_date` and `end_date`, both required in `YYYY-MM-DD` format. Covers signings, trades, options, assignments, injured-list moves and releases. Narrow with `team_id` or `player_id`. Each entry has the date, effective date, type, description, player, and from and to teams, with a total `count`.", "operationId": "mlb-transactions", "parameters": [ { @@ -375500,7 +388535,7 @@ }, "/mlive/news": { "get": { - "description": "Returns current MLive top stories from its anonymous Arc RSS feed, including title, canonical URL, brief summary, author, publication time, and image where available. Article pages are currently blocked by DataDome; category endpoints are deferred because the full accepted section set could not be verified.", + "description": "Returns current MLive top stories, including title, canonical URL, brief summary, author, publication time, and image where available. Article pages are not currently available, and category endpoints are deferred.", "operationId": "mlive-news", "produces": [ "application/json" @@ -375576,7 +388611,7 @@ "consumes": [ "application/json" ], - "description": "Returns the live designer facet for one department. Every returned slug is valid for modaoperandi-search.", + "description": "Lists the designers currently available in one Moda Operandi department, chosen with the required `gender` (`women` or `men`). Each designer has its name, slug and item count, and each slug can be passed as `designer` to `modaoperandi-search`. The response also carries the `count` of designers.", "operationId": "modaoperandi-designers", "parameters": [ { @@ -375631,7 +388666,7 @@ "consumes": [ "application/json" ], - "description": "Returns public product detail, price, availability, size inventory, description, designer, color, and images for a Moda Operandi product URL.", + "description": "Returns one Moda Operandi product by its product page `url`: id, name, designer, color, price and currency, description, details, images, and the available sizes. It also reports `availability` and an `in_stock` flag for the product.", "operationId": "modaoperandi-product", "parameters": [ { @@ -375688,7 +388723,7 @@ "consumes": [ "application/json" ], - "description": "Searches or browses Moda Operandi's public catalog with category, designer, color, size, availability, price, sale, sort, and page filters.", + "description": "Searches or browses the Moda Operandi catalogue for one department, with `gender` (`women` or `men`) required and either `q` or `category` needed as well. Filter by `designer`, `color`, `size`, `availability`, price range or `on_sale`, and sort with `sort`. `limit` is 1 to 180 per page. Returns products plus facet counts and the `total`.", "operationId": "modaoperandi-search", "parameters": [ { @@ -375895,7 +388930,7 @@ "consumes": [ "application/json" ], - "description": "Lists products within one category. category_id must be a value returned by moncler-categories' own category_id field -- a closed set the upstream defines. Returns the same normalized result and facet shape as moncler-search. Narrow the same results with the filter param below.", + "description": "Lists products within one category. category_id must be a value returned by moncler-categories' own category_id field -- a closed set the upstream defines. Returns the same result and facet shape as moncler-search. Narrow the same results with the filter param below.", "operationId": "moncler-category", "parameters": [ { @@ -376060,7 +389095,7 @@ "consumes": [ "application/json" ], - "description": "Searches Moncler's product catalog by keyword. Returns normalized product results (name, price, image, orderable color/size variant ids, and live stock level) plus the search index's own sort options and facets (gender, category, color, size, and others) with live per-option result counts. Narrow the same results with the filter param below.", + "description": "Searches Moncler's product catalog by keyword. Returns product results (name, price, image, orderable color/size variant ids, and live stock level) plus the search index's own sort options and facets (gender, category, color, size, and others) with live per-option result counts. Narrow the same results with the filter param below.", "operationId": "moncler-search", "parameters": [ { @@ -376371,7 +389406,7 @@ }, "/moneycontrol/headlines": { "get": { - "description": "Returns the current headlines of one Moneycontrol news section (25 to 50 stories, without publication times).", + "description": "Returns the current front page of one Moneycontrol section: 25 or 50 stories, each with `title`, `url`, a short `summary` and `image_url`. `section` is required and takes one of 52 slugs such as `markets`, `ipo` or `cricket`; other values return `400`. Publication time and author are omitted, and only the first page is available.", "operationId": "moneycontrol-headlines", "parameters": [ { @@ -376473,7 +389508,7 @@ }, "/moneycontrol/news": { "get": { - "description": "Returns the 50 newest Moneycontrol stories across all sections, newest first, with publication time and image.", + "description": "Returns the 50 newest Moneycontrol stories across all sections, newest first, with no parameters. Each item has `title`, `url`, `published_at` (RFC3339 UTC) and `image_url`. Videos, podcasts, photo galleries and sponsored brand-connect posts are left out.", "operationId": "moneycontrol-news", "produces": [ "application/json" @@ -376511,7 +389546,7 @@ }, "/moneycontrol/sections": { "get": { - "description": "Returns the Moneycontrol news sections accepted by the headlines endpoint.", + "description": "Lists the 52 Moneycontrol news section slugs accepted by `moneycontrol-headlines`, such as `markets`, `economy`, `ipo` and `cricket`. Each entry has its `slug`, display `name` and page `url`. Moneycontrol Pro-only research, video, podcast and photo hubs are not sections.", "operationId": "moneycontrol-sections", "produces": [ "application/json" @@ -376540,7 +389575,7 @@ "consumes": [ "application/json" ], - "description": "Returns the caller's own monitors (most recently created first, capped at 100). Free to call.", + "description": "Lists the website-change monitors on your account, most recently created first, up to 100. Each monitor has its `target_type` (`page` or `sitemap`), URL, name, cadence in minutes, enabled flag, last checked and last changed times, next check time, failure count, last error, and notification and sitemap settings.", "operationId": "monitors-list", "produces": [ "application/json" @@ -376579,7 +389614,7 @@ "consumes": [ "application/json" ], - "description": "Creates a monitor that periodically checks a page or sitemap for changes and can notify a webhook. Free to call -- only completed check runs consume credits, at 1 credit per completed run regardless of target type or whether a change was detected. `target_type` defaults to \"page\" (exact-fingerprint diff of the scraped page). \"sitemap\" watches the sitemap at `url` for added/removed entries instead, honoring `sitemap.include_patterns`/`exclude_patterns` (shell-style globs matched against each URL's path) and `sitemap.max_urls` (default 5000, hard cap 10000).", + "description": "Creates a monitor that periodically checks a page or sitemap for changes and can notify a webhook. Free to call -- only completed check runs consume credits, at 1 credit per completed run regardless of target type or whether a change was detected. `target_type` defaults to \"page\" (exact-fingerprint diff of the page). \"sitemap\" watches the sitemap at `url` for added/removed entries instead, honoring `sitemap.include_patterns`/`exclude_patterns` (shell-style globs matched against each URL's path) and `sitemap.max_urls` (default 5000, hard cap 10000).", "operationId": "monitors-create", "parameters": [ { @@ -376637,7 +389672,7 @@ "consumes": [ "application/json" ], - "description": "Deletes one of the caller's own monitors. Free to call. Does not delete its past check history.", + "description": "Deletes one website-change monitor by its `id`, which must belong to the calling account. Returns `deleted: true` on success. The monitor's past check history is not removed.", "operationId": "monitors-delete", "parameters": [ { @@ -376692,7 +389727,7 @@ "consumes": [ "application/json" ], - "description": "Returns one of the caller's own monitors by id. Free to call.", + "description": "Returns one of your website-change monitors by `id`. The monitor includes its `target_type` (`page` or `sitemap`), URL, name, check cadence in minutes, enabled flag, last and next check times, failure count and last error, plus notification and sitemap settings.", "operationId": "monitors-get", "parameters": [ { @@ -376873,7 +389908,7 @@ }, "/motleyfool/article": { "get": { - "description": "Returns public metadata and body paragraphs from a canonical Fool investing article URL.", + "description": "Returns one Motley Fool investing article by `url`, which must look like `https://www.fool.com/investing/YYYY/MM/DD/slug/`; only public `/investing/` URLs are accepted. The response has the title, description, section, authors, publication and update times, image URL, body `paragraphs` and a `paywalled` flag.", "operationId": "motleyfool-article", "parameters": [ { @@ -376927,7 +389962,7 @@ }, "/motleyfool/author": { "get": { - "description": "Returns a public Fool author's name, biography, image, and recent articles from a canonical author URL.", + "description": "Returns a Motley Fool author's name, biography when published, image when available and recent investing articles from their author page. `url` is required, for example `https://www.fool.com/author/2104/`. Each article has a title, URL, summary, author, image, `type` and publication time.", "operationId": "motleyfool-author", "parameters": [ { @@ -376981,7 +390016,7 @@ }, "/motleyfool/headlines": { "get": { - "description": "Returns article headlines from one live-verified public Fool investing-news section.", + "description": "Returns the article cards of one Motley Fool investing-news section. `section` is required: `trending-news`, `news`, `market-movers`, `tech-stock-news`, `market-trends`, `crypto-news`, `markets`, `most-active-stocks`, `top-stock-gainers` or `top-stock-losers`. Other values return a 400. Items carry the title, URL and, where present, summary, author and publication time.", "operationId": "motleyfool-headlines", "parameters": [ { @@ -377041,7 +390076,7 @@ }, "/motleyfool/news": { "get": { - "description": "Returns recent public investing stories from The Motley Fool's news sitemap.", + "description": "Returns up to 50 recent Motley Fool investing stories, newest first, each with its title, URL and publication time. Only stories at `/investing/YYYY/MM/DD/slug/` URLs are included. It takes no parameters; use the headlines endpoint for a named section.", "operationId": "motleyfool-news", "produces": [ "application/json" @@ -377079,7 +390114,7 @@ }, "/motleyfool/sections": { "get": { - "description": "Returns the complete article-bearing Stock Market News section set accepted by motleyfool_headlines.", + "description": "Lists the 10 Motley Fool Stock Market News section slugs that the headlines endpoint accepts, from `trending-news` and `news` to `most-active-stocks`, `top-stock-gainers` and `top-stock-losers`. Each entry has a `slug`, a display `name` (`news` is named Stock News) and a section `url`.", "operationId": "motleyfool-sections", "produces": [ "application/json" @@ -377316,7 +390351,7 @@ }, "/nationafrica/news": { "get": { - "description": "Returns the newest Nation Africa (Daily Nation, Kenya) stories from the site's public news sitemap: headline, publication time and lead image. Video pages are excluded.", + "description": "Returns the newest Nation Africa (Daily Nation, Kenya) stories from its public news sitemap: headline, publication time and lead image. If the sitemap returns 404, it falls back to the public News section hub, whose relative timestamps may omit publication time. Video pages are excluded.", "operationId": "nationafrica-news", "produces": [ "application/json" @@ -377348,7 +390383,7 @@ }, "/nationafrica/sections": { "get": { - "description": "Returns the public Nation Africa (Kenya edition) editorial section inventory.", + "description": "Lists the 47 section slugs of Nation Africa's Kenya edition accepted by `nationafrica-headlines`, such as `news`, `politics`, `counties`, `football` and `fact-checks`. Each entry has its `slug`, display `name` and section page `url`. Photo, video, audio, puzzle, newsletter and cartoon pages are not included.", "operationId": "nationafrica-sections", "produces": [ "application/json" @@ -377488,7 +390523,7 @@ }, "/national/headlines": { "get": { - "description": "Returns current The National stories from a public Arc category RSS feed. Pass one of the editorial section slugs from national_sections. A valid category with no current stories returns an empty items list.", + "description": "Returns current The National stories for a category. Pass one of the editorial section slugs from national_sections. A valid category with no current stories returns an empty items list.", "operationId": "national-headlines", "parameters": [ { @@ -377595,7 +390630,7 @@ }, "/national/news": { "get": { - "description": "Returns current The National UAE stories from its public Arc RSS feed. Article and section extraction uses anonymous public responses.", + "description": "Returns current The National UAE stories.", "operationId": "national-news", "produces": [ "application/json" @@ -377633,7 +390668,7 @@ }, "/national/sections": { "get": { - "description": "Returns all 57 editorial categories in The National's Arc section sitemap taxonomy that are accepted by national_headlines. Podcast, newsletter, puzzle, partner and promotional surfaces are excluded.", + "description": "Returns all 57 editorial categories in The National's section taxonomy that are accepted by national_headlines. Podcast, newsletter, puzzle, partner and promotional surfaces are excluded.", "operationId": "national-sections", "produces": [ "application/json" @@ -377773,7 +390808,7 @@ }, "/nationalpost/headlines": { "get": { - "description": "Returns fresh headlines from one public National Post section.", + "description": "Returns National Post headlines for one section; `section` is required and takes one of 45 slugs such as `canada`, `hockey` or `deals`. The top-level sections `health`, `opinion`, `longreads`, `modern-life`, `travel`, `entertainment`, `shopping-essentials` and `sports` return 10 stories with publication time and byline. Others return up to about 45 without either. Sponsored stories are left out.", "operationId": "nationalpost-headlines", "parameters": [ { @@ -377868,7 +390903,7 @@ }, "/nationalpost/news": { "get": { - "description": "Returns fresh National Post stories from the public site-wide RSS feed.", + "description": "Returns the latest 10 National Post stories across all sections, with no parameters. Each item has a title, canonical article URL, one-line summary, publication time and byline. Use `nationalpost-headlines` to read a single section.", "operationId": "nationalpost-news", "produces": [ "application/json" @@ -377900,7 +390935,7 @@ }, "/nationalpost/sections": { "get": { - "description": "Returns the public National Post editorial section inventory (the site's own primary navigation).", + "description": "Lists the 45 National Post section slugs accepted by `nationalpost-headlines`, such as `canada`, `opinion`, `hockey` and `gift-guide`, each with its display `name` and category page `url`. Links that leave nationalpost.com (Financial Post, Driving.ca, puzzles, classifieds, e-paper) and the paid Sponsored categories are not included.", "operationId": "nationalpost-sections", "produces": [ "application/json" @@ -378046,7 +391081,7 @@ }, "/nbc/headlines": { "get": { - "description": "Returns fresh headlines from one public NBC News RSS section. Use nbc-sections for the current value space.", + "description": "Returns recent NBC News stories for one section. `section` is required and must be one of `news`, `world`, `us-news`, `politics`, `business`, `science` or `health`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "nbc-headlines", "parameters": [ { @@ -378115,7 +391150,7 @@ }, "/nbc/news": { "get": { - "description": "Returns fresh NBC News top stories from the public site-wide RSS feed.", + "description": "Returns the current NBC News top stories across the site, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. Use `nbc-headlines` to read one section.", "operationId": "nbc-news", "produces": [ "application/json" @@ -378153,7 +391188,7 @@ }, "/nbc/sections": { "get": { - "description": "Returns the exact live-verified public RSS section slugs accepted by nbc-headlines.", + "description": "Lists the seven NBC News section slugs accepted by `nbc-headlines`: `news`, `world`, `us-news`, `politics`, `business`, `science` and `health`. Each entry has its `slug`, display `name` and `url`.", "operationId": "nbc-sections", "produces": [ "application/json" @@ -378463,7 +391498,7 @@ }, "/ndtv/live-blog": { "get": { - "description": "Returns live-blog metadata and the ordered BlogPosting updates embedded in NDTV's public LiveBlogPosting JSON-LD. Regular article URLs are rejected.", + "description": "Returns the metadata and ordered updates of an NDTV live blog, given its canonical article `url`. The blog carries title, description, section, authors, image and publish and update times. Each update has its title, URL, body text, timestamps, authors and image when NDTV gives them. A regular article URL is rejected with an error.", "operationId": "ndtv-live-blog", "parameters": [ { @@ -378673,7 +391708,7 @@ }, "/ndtv/sections": { "get": { - "description": "Returns every NDTV section slug accepted by the headlines endpoint, with its display name and page URL.", + "description": "Lists the NDTV section slugs accepted by `ndtv-headlines`, each with its display name and page URL. They cover national and world news (`latest`, `india`, `world`), city and state pages such as `mumbai-news` and `kerala-news`, and topics such as `education` and `food`. `spotlight` is NDTV's Premium hub; video, podcasts and sister sites are excluded.", "operationId": "ndtv-sections", "produces": [ "application/json" @@ -378860,7 +391895,7 @@ }, "/news18/article": { "get": { - "description": "Returns public News18 article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a News18 article by canonical `url` in the form `/
/-.html`, optionally with a subsection. The response has title, description, authors, lead image, publication and update times, a `paywalled` flag and body `paragraphs`. `section` is the article's own category, so it can be a subsection such as `business/markets` that `news18-sections` does not list.", "operationId": "news18-article", "parameters": [ { @@ -378914,7 +391949,7 @@ }, "/news18/author": { "get": { - "description": "Returns a News18 author's byline metadata, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns a News18 author profile from a required `url` in the form `https://www.news18.com/byline/.html`. The response has `name`, `biography`, `image_url`, `social_links` (whichever of website, X/Twitter, Facebook, Instagram, YouTube and LinkedIn are set) and recent articles with `published_at` in RFC3339 UTC. Wire and staff bylines often have no bio or links.", "operationId": "news18-author", "parameters": [ { @@ -378968,7 +392003,7 @@ }, "/news18/headlines": { "get": { - "description": "Returns fresh headlines from one public News18 RSS section.", + "description": "Returns recent News18 stories for one section. `section` is required and takes one of 18 slugs, such as `india`, `cricket`, `elections`, `viral` or `breaking-news`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "news18-headlines", "parameters": [ { @@ -379036,7 +392071,7 @@ }, "/news18/news": { "get": { - "description": "Returns fresh News18 top stories from its public RSS feed.", + "description": "Returns the current News18 top stories, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. Use `news18-headlines` to read one section.", "operationId": "news18-news", "produces": [ "application/json" @@ -379074,7 +392109,7 @@ }, "/news18/sections": { "get": { - "description": "Returns the public News18 RSS section inventory used by the headlines endpoint.", + "description": "Lists the 18 News18 section slugs accepted by `news18-headlines`, such as `india`, `world`, `cricket`, `explainers` and `education-career`. Each entry has its `slug`, display `name` and `url`.", "operationId": "news18-sections", "produces": [ "application/json" @@ -379154,7 +392189,7 @@ }, "/news24/headlines": { "get": { - "description": "Returns fresh News24 headlines from one public section page. Cards that News24 marks subscriber-only carry type \"subscriber\".", + "description": "Returns News24 headlines for one section. `section` is required and takes a path such as `business/markets`, `sport/rugby/springboks` or `politics`, from the 73 listed by `news24-sections`. Each item has a title and URL, and `type` is `subscriber` on cards News24 marks subscriber-only. Summary, author, publication time and image appear when available.", "operationId": "news24-headlines", "parameters": [ { @@ -379277,7 +392312,7 @@ }, "/news24/news": { "get": { - "description": "Returns fresh News24 top stories from the public homepage. Cards that News24 marks subscriber-only carry type \"subscriber\".", + "description": "Returns the current News24 top stories, with no parameters. Each item has a title, canonical URL and image. `type` is `subscriber` when News24 marks the story subscriber-only and is omitted for freely readable stories.", "operationId": "news24-news", "produces": [ "application/json" @@ -379315,7 +392350,7 @@ }, "/news24/sections": { "get": { - "description": "Returns the public News24 section navigation accepted by the headlines endpoint.", + "description": "Lists the 73 News24 sections accepted by `news24-headlines`. Each entry has a `slug` (the URL path under news24.com, which may contain `/`, as in `sport/rugby/springboks`), a display `name` and a page `url`. Top-level groups include `business`, `life`, `opinions`, `southafrica`, `sport` and `world`.", "operationId": "news24-sections", "produces": [ "application/json" @@ -379347,7 +392382,7 @@ }, "/newscomau/article": { "get": { - "description": "Returns public News.com.au article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a News.com.au article by canonical `url`, which must be a `www.news.com.au` link ending in `/news-story/<32-character-id>`. The response has title, description, section, authors, lead image, publication and update times, a `paywalled` flag and body `paragraphs`. `authors` is empty for wire or agency pieces with no byline.", "operationId": "newscomau-article", "parameters": [ { @@ -379503,7 +392538,7 @@ }, "/newscomau/news": { "get": { - "description": "Returns fresh News.com.au stories from the public homepage.", + "description": "Returns the current News.com.au top stories, with no parameters and no section filter. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "newscomau-news", "produces": [ "application/json" @@ -379567,7 +392602,7 @@ }, "/newsmax/article": { "get": { - "description": "Returns public Newsmax article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Newsmax article by canonical `url` in the form `/
//YYYY/MM/DD/id/`: title, description, section, authors, lead image, publication and update times, and body `paragraphs`. `authors` may be empty for wire or staff-aggregated stories. Paywalled Platinum URLs are not accepted.", "operationId": "newsmax-article", "parameters": [ { @@ -379621,7 +392656,7 @@ }, "/newsmax/author": { "get": { - "description": "Returns a Newsmax Insiders (opinion columnist) author's byline metadata, biography, and recent columns from a canonical author URL.", + "description": "Returns a Newsmax Insiders (opinion columnist) profile from a required `url` such as `https://www.newsmax.com/insiders//id-/`. The response has `name`, `biography`, `image_url` and recent columns. `biography` is omitted when Newsmax's separate profile page is unavailable, and article `published_at` is date text such as `Sep 23, 2026`.", "operationId": "newsmax-author", "parameters": [ { @@ -379675,7 +392710,7 @@ }, "/newsmax/headlines": { "get": { - "description": "Returns fresh headlines from one public Newsmax RSS section.", + "description": "Returns recent Newsmax stories for one section. `section` is required and takes one of 20 slugs, such as `newsfront`, `politics`, `health-news`, `finance-news` or `insiders`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "newsmax-headlines", "parameters": [ { @@ -379745,7 +392780,7 @@ }, "/newsmax/news": { "get": { - "description": "Returns fresh Newsmax top stories from its public RSS feed.", + "description": "Returns the current Newsmax top stories from the Newsfront section, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. Use `newsmax-headlines` for other sections.", "operationId": "newsmax-news", "produces": [ "application/json" @@ -379783,7 +392818,7 @@ }, "/newsmax/sections": { "get": { - "description": "Returns the public Newsmax RSS section inventory used by the headlines endpoint.", + "description": "Lists the 20 Newsmax section slugs accepted by `newsmax-headlines`, such as `newsfront`, `scitech`, `street-talk` and `global-talk`. Each entry has its `slug`, display `name` and `url`. `insiders` is the combined opinion section, and `finance-headlines` is the finance section's Headlines listing.", "operationId": "newsmax-sections", "produces": [ "application/json" @@ -379809,7 +392844,7 @@ }, "/newsweek/article": { "get": { - "description": "Returns public Newsweek article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Newsweek article by canonical `url`, which must be a `newsweek.com` link ending in a numeric article id. The response has title, description, section, authors, lead image, publication and update times, a `paywalled` flag and body `paragraphs`.", "operationId": "newsweek-article", "parameters": [ { @@ -379863,7 +392898,7 @@ }, "/newsweek/author": { "get": { - "description": "Returns one Newsweek author's public profile: name, job title, bio, email, and one page of their recent articles.", + "description": "Returns a Newsweek author profile by `slug` (for example `jennifer-fink`) or a newsweek.com authors `url`; supply exactly one. `page` selects the 1-based page of recent articles (default 1) and overrides any page in `url`. The response has `name`, `job_title`, `bio`, `email`, `image_url`, articles and `has_next_page`; a page past the end gives an empty `articles` list, not an error.", "operationId": "newsweek-author", "parameters": [ { @@ -379930,7 +392965,7 @@ }, "/newsweek/headlines": { "get": { - "description": "Returns fresh Newsweek section headlines from the public category page.", + "description": "Returns recent Newsweek stories for one section. `section` is required and takes one of 21 slugs, such as `politics`, `fact-check`, `better-planet`, `personal-finance` or `my-turn`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "newsweek-headlines", "parameters": [ { @@ -380001,7 +393036,7 @@ }, "/newsweek/news": { "get": { - "description": "Returns fresh Newsweek top stories from its public RSS feed.", + "description": "Returns the current Newsweek top stories, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. Use `newsweek-headlines` to read one section.", "operationId": "newsweek-news", "produces": [ "application/json" @@ -380039,7 +393074,7 @@ }, "/newsweek/sections": { "get": { - "description": "Returns the public Newsweek editorial section inventory used by the headlines endpoint.", + "description": "Lists the 21 Newsweek section slugs accepted by `newsweek-headlines`, such as `news`, `world`, `us`, `fact-check` and `pets`. Each entry has its `slug`, display `name` and section page `url`.", "operationId": "newsweek-sections", "produces": [ "application/json" @@ -380374,7 +393409,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product-detail data for one color variant: title, description, pricing, images, every offered size, and every other available color. slug and style_color together reproduce Nike's own product page URL (nike.com/t//) and are both returned by nike-search's product colors[].slug and colors[].style_color fields.", + "description": "Returns product-detail data for one color variant: title, description, pricing, images, every offered size, and every other available color. slug and style_color together reproduce Nike's own product page URL (nike.com/t//) and are both returned by nike-search's product colors[].slug and colors[].style_color fields.", "operationId": "nike-product", "parameters": [ { @@ -380628,7 +393663,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of a Nike product's normalized customer reviews, plus an aggregate rating summary (average rating and a per-star rating breakdown) that Nike's own product-detail endpoint does not otherwise expose. slug and style_color are the same values nike-product accepts (from a search result's colors[].slug/colors[].style_color fields). A product with no reviews yet returns a well-formed empty result rather than an error. Requesting a page beyond the available result pages returns a not-found error.", + "description": "Returns one page of a Nike product's customer reviews, plus an aggregate rating summary (average rating and a per-star rating breakdown) that Nike's own product-detail endpoint does not otherwise expose. slug and style_color are the same values nike-product accepts (from a search result's colors[].slug/colors[].style_color fields). A product with no reviews yet returns a well-formed empty result rather than an error. Requesting a page beyond the available result pages returns a not-found error.", "operationId": "nike-product-reviews", "parameters": [ { @@ -380706,7 +393741,7 @@ "consumes": [ "application/json" ], - "description": "Searches Nike.com product listings by keyword, or browses a category/subcategory listing by slug, with real pagination. Exactly one of keyword or category is required. Returns normalized product groups with pricing, colorway images, and every purchasable color variant, plus filter and subcategory navigation data (facet_nav) already present on the same response -- both keyword search and a category listing's first page include filter groups (Gender, Color, Price, Size, and similar); only a category listing includes a breadcrumb trail and subcategory drill-down options, and only its first page (a category listing's later pages do not repeat navigation data). Keyword search is best-effort relevance, not a guaranteed keyword match: for an obscure or nonsense keyword, Nike's own search index falls back to its own recommended results instead of returning an empty list, and there is currently no reliable signal in the response to distinguish a true keyword match from that fallback behavior. A keyword Nike's own search router treats as structurally empty (for example a punctuation-only query) does return a genuine empty result. Category values come from nike-categories' own slug field, or from a prior response's own facet_nav navigation paths (with the leading /w/ stripped). Requesting a page beyond the available result pages returns a not-found error.", + "description": "Searches Nike.com product listings by keyword, or browses a category/subcategory listing by slug, with real pagination. Exactly one of keyword or category is required. Returns product groups with pricing, colorway images, and every purchasable color variant, plus filter and subcategory navigation data (facet_nav) already present on the same response -- both keyword search and a category listing's first page include filter groups (Gender, Color, Price, Size, and similar); only a category listing includes a breadcrumb trail and subcategory drill-down options, and only its first page (a category listing's later pages do not repeat navigation data). Keyword search is best-effort relevance, not a guaranteed keyword match: for an obscure or nonsense keyword, Nike's own search index falls back to its own recommended results instead of returning an empty list, and there is currently no reliable signal in the response to distinguish a true keyword match from that fallback behavior. A keyword Nike's own search router treats as structurally empty (for example a punctuation-only query) does return a genuine empty result. Category values come from nike-categories' own slug field, or from a prior response's own facet_nav navigation paths (with the leading /w/ stripped). Requesting a page beyond the available result pages returns a not-found error.", "operationId": "nike-search", "parameters": [ { @@ -380975,7 +394010,7 @@ }, "/ninetofivegoogle/author": { "get": { - "description": "Returns a 9to5Google author's name, avatar, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns a 9to5Google author profile from `url`, a canonical `https://9to5google.com/author//` address. The response has the author's `name`, avatar, `biography`, `social_links` and the first page of recent articles, each with title, URL, summary and image. Social-link types and dates are as the author's page shows them.", "operationId": "ninetofivegoogle-author", "parameters": [ { @@ -381029,7 +394064,7 @@ }, "/ninetofivegoogle/headlines": { "get": { - "description": "Returns current headlines from one public guide or editorial archive RSS feed.", + "description": "Returns recent 9to5Google headlines for one guide or editorial archive. `section` is required and takes a slug such as `gemini`, `google-pixel-9` or `wear-os`; an unknown or missing value returns an invalid-params error. There are 58 guide feeds and five editorial archives, and some hold fewer than 100 entries.", "operationId": "ninetofivegoogle-headlines", "parameters": [ { @@ -381142,7 +394177,7 @@ }, "/ninetofivegoogle/news": { "get": { - "description": "Returns recent 9to5Google story metadata and short summaries from its public RSS feed.", + "description": "Returns recent 9to5Google stories with no input needed. Each item has a title, canonical URL, summary, publication time and author. Cross-network links are filtered out, so returned items use canonical 9to5Google story URLs.", "operationId": "ninetofivegoogle-news", "produces": [ "application/json" @@ -381206,7 +394241,7 @@ }, "/ninetofivemac/article": { "get": { - "description": "Returns public 9to5Mac article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a 9to5Mac article by `url`, a canonical `9to5mac.com` address in the form `/YYYY/MM/DD//`: title, description, publication and update times, `authors`, `section`, image and the body `paragraphs`. The affiliate FTC disclaimer and embedded-tweet text are left out, and `paywalled` is never set because the articles are free.", "operationId": "ninetofivemac-article", "parameters": [ { @@ -381260,7 +394295,7 @@ }, "/ninetofivemac/author": { "get": { - "description": "Returns a 9to5Mac author's name, avatar, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns a 9to5Mac author profile from `url`, a canonical `https://9to5mac.com/author//` address: name, avatar, `biography`, `social_links` and the first page of recent articles. Each social link's `type` comes from the page's icon, and each article's `published_at` is the page's own text, such as `9 hours ago`, not a timestamp.", "operationId": "ninetofivemac-author", "parameters": [ { @@ -381314,7 +394349,7 @@ }, "/ninetofivemac/headlines": { "get": { - "description": "Returns fresh headlines from one public 9to5Mac topic guide RSS feed.", + "description": "Returns the newest posts from one 9to5Mac topic guide, up to 100. `section` is required and takes a guide slug such as `iphone`, `macbook-pro`, `vision-pro` or `how-to`; an unknown or missing value returns an invalid-params error. Smaller guides, such as `apple-watch-se`, return fewer. Items carry title, URL, summary, time and author.", "operationId": "ninetofivemac-headlines", "parameters": [ { @@ -381399,7 +394434,7 @@ }, "/ninetofivemac/news": { "get": { - "description": "Returns fresh 9to5Mac (9to5mac.com) Apple news top stories from its public RSS feed.", + "description": "Returns the latest 9to5Mac Apple news stories with no input needed. Each item has a title, canonical article URL, summary, publication time, author and image when present. The list can include podcast episode posts, such as Happy Hour and 9to5Mac Daily, alongside news articles.", "operationId": "ninetofivemac-news", "produces": [ "application/json" @@ -381437,7 +394472,7 @@ }, "/ninetofivemac/sections": { "get": { - "description": "Returns the public 9to5Mac topic guides (each with its own RSS feed) accepted by the headlines endpoint.", + "description": "Lists the 35 9to5Mac topic guides that the headlines endpoint accepts as `section`. Each has a `slug` (for example `iphone`, `mac-studio` or `carplay`), a display `name` and the guide's feed `url`.", "operationId": "ninetofivemac-sections", "produces": [ "application/json" @@ -381463,7 +394498,7 @@ }, "/njcom/news": { "get": { - "description": "Returns current NJ.com top stories from its anonymous Arc RSS feed, including title, canonical URL, short feed summary, author, publication time, and image where available. Category discovery and section headlines are deferred because the complete accepted feed taxonomy could not be verified; article and author routes remain unverified behind the site's DataDome challenge.", + "description": "Returns current NJ.com top stories, including title, canonical URL, short summary, author, publication time, and image where available. Category discovery, section headlines, and article and author routes are not available.", "operationId": "njcom-news", "produces": [ "application/json" @@ -381501,7 +394536,7 @@ }, "/npr/article": { "get": { - "description": "Returns a public NPR article's metadata and body paragraphs from a canonical article URL.", + "description": "Returns an NPR article by canonical `url` in the form `https://www.npr.org/YYYY/MM/DD/...`: title, description, section, authors, lead image, publication and update times, and body `paragraphs`. Tracking query strings and fragments are ignored; other hosts, encoded paths and non-article paths are rejected.", "operationId": "npr-article", "parameters": [ { @@ -381561,7 +394596,7 @@ }, "/npr/author": { "get": { - "description": "Returns an NPR author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns an NPR author profile from a required `url` in the form `https://www.npr.org/people//`. The response has `name`, `job_title`, `bio` and the recent stories listed under Stories By, each with title, URL, summary, publication date and a lead image where the card has one. Other hosts or paths return a bad-request error.", "operationId": "npr-author", "parameters": [ { @@ -381621,7 +394656,7 @@ }, "/npr/categories": { "get": { - "description": "Returns NPR's current public section navigation. Use a returned slug directly as the topic parameter on npr-topic.", + "description": "Lists the sections in NPR's current navigation, each with its name, slug and URL. Pass a returned `slug` as the `topic` parameter of `npr-topic`. The list is not a fixed set, so it follows whatever sections NPR currently shows.", "operationId": "npr-categories", "produces": [ "application/json" @@ -381659,7 +394694,7 @@ }, "/npr/headlines": { "get": { - "description": "Returns fresh headlines from NPR's public, site-wide RSS feed.", + "description": "Returns the current NPR headlines across the site, with no parameters and no section filter. Each item has a title, canonical URL, summary, publication time and author when one is given.", "operationId": "npr-headlines", "produces": [ "application/json" @@ -381760,7 +394795,7 @@ "consumes": [ "application/json" ], - "description": "Returns itemized cost-of-living prices for one city (restaurants, markets, transportation, utilities, rent, and more), grouped by category. Credential-free public Numbeo data (numbeo.com).", + "description": "Returns itemized cost-of-living prices for one city (restaurants, markets, transportation, utilities, rent, and more), grouped by category.", "operationId": "numbeo-cost-of-living-city", "parameters": [ { @@ -381823,7 +394858,7 @@ "consumes": [ "application/json" ], - "description": "Returns aggregate itemized cost-of-living prices for a country, plus the headline cost-of-living indices for every city Numbeo tracks there. Credential-free public Numbeo data (numbeo.com).", + "description": "Returns aggregate itemized cost-of-living prices for a country, plus the headline cost-of-living indices for every city Numbeo tracks there.", "operationId": "numbeo-cost-of-living-country", "parameters": [ { @@ -381886,7 +394921,7 @@ "consumes": [ "application/json" ], - "description": "Returns the global cost-of-living city ranking (Cost of Living, Rent, Cost of Living Plus Rent, Groceries, Restaurant Price, and Local Purchasing Power indices), either the continuously-updated current index or a historical periodic snapshot. Credential-free public Numbeo data (numbeo.com).", + "description": "Returns the global cost-of-living city ranking (Cost of Living, Rent, Cost of Living Plus Rent, Groceries, Restaurant Price, and Local Purchasing Power indices), either the continuously-updated current index or a historical periodic snapshot.", "operationId": "numbeo-cost-of-living-rankings", "parameters": [ { @@ -381952,7 +394987,7 @@ "consumes": [ "application/json" ], - "description": "Returns the global country-level cost-of-living ranking (Cost of Living, Rent, Cost of Living Plus Rent, Groceries, Restaurant Price, and Local Purchasing Power indices). Credential-free public Numbeo data (numbeo.com).", + "description": "Returns the global country-level cost-of-living ranking (Cost of Living, Rent, Cost of Living Plus Rent, Groceries, Restaurant Price, and Local Purchasing Power indices).", "operationId": "numbeo-cost-of-living-rankings-by-country", "produces": [ "application/json" @@ -381993,7 +395028,7 @@ "consumes": [ "application/json" ], - "description": "Returns one city's data for a Numbeo index family (quality of life, crime, health care, pollution, traffic, or property investment): headline indices, and (depending on the family) titled sub-index sections and/or itemized prices. Credential-free public Numbeo data (numbeo.com).", + "description": "Returns one city's data for a Numbeo index family (quality of life, crime, health care, pollution, traffic, or property investment): headline indices, and (depending on the family) titled sub-index sections and/or itemized prices.", "operationId": "numbeo-indices-city", "parameters": [ { @@ -382072,7 +395107,7 @@ "consumes": [ "application/json" ], - "description": "Returns one country's aggregate data for a Numbeo index family, plus every city Numbeo tracks there with its index breakdown. Credential-free public Numbeo data (numbeo.com).", + "description": "Returns one country's aggregate data for a Numbeo index family, plus every city Numbeo tracks there with its index breakdown.", "operationId": "numbeo-indices-country", "parameters": [ { @@ -382151,7 +395186,7 @@ "consumes": [ "application/json" ], - "description": "Returns the global city ranking for a Numbeo index family, either the continuously-updated current index or a historical periodic snapshot. Credential-free public Numbeo data (numbeo.com).", + "description": "Returns the global city ranking for a Numbeo index family, either the continuously-updated current index or a historical periodic snapshot.", "operationId": "numbeo-indices-rankings", "parameters": [ { @@ -382233,7 +395268,7 @@ "consumes": [ "application/json" ], - "description": "Returns the global country-level ranking for a Numbeo index family. Credential-free public Numbeo data (numbeo.com).", + "description": "Returns the global Numbeo ranking of countries for one index family, selected by the required `index`: `quality-of-life`, `crime`, `health-care`, `pollution`, `traffic` or `property-investment`. Each row has its `rank`, country and a list of named index values, such as the Crime Index and Safety Index for `crime`.", "operationId": "numbeo-indices-rankings-by-country", "parameters": [ { @@ -382409,7 +395444,7 @@ }, "/nydailynews/headlines": { "get": { - "description": "Returns fresh headlines from one public New York Daily News section page.", + "description": "Returns New York Daily News headlines for one section, newest first, up to about 100 stories. `section` is required and takes one of 36 slugs such as `crime-public-safety`, `new-york-yankees` or `opinion`; other values return an invalid-params error. Items carry a title and URL, plus publication time, byline, excerpt and lead image where shown. Team pages can list fewer stories out of season.", "operationId": "nydailynews-headlines", "parameters": [ { @@ -382495,7 +395530,7 @@ }, "/nydailynews/news": { "get": { - "description": "Returns the current New York Daily News top stories from the public homepage.", + "description": "Returns the current New York Daily News top stories, with no parameters. Each item has a title and canonical article URL, plus publication time, byline, excerpt and lead image where the story card shows them. Use `nydailynews-headlines` for a single section.", "operationId": "nydailynews-news", "produces": [ "application/json" @@ -382527,7 +395562,7 @@ }, "/nydailynews/sections": { "get": { - "description": "Returns the public New York Daily News editorial section inventory.", + "description": "Lists the 36 New York Daily News section slugs accepted by `nydailynews-headlines`, such as `crime-public-safety`, `new-york-mets`, `nfl` and `things-to-do`. Each entry has its `slug` (the last path segment of the section URL), display `name` and `url`. Topic (`/tag/...`) pages and off-site properties are not sections.", "operationId": "nydailynews-sections", "produces": [ "application/json" @@ -382553,7 +395588,7 @@ }, "/nymag/article": { "get": { - "description": "Returns public New York Magazine article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a New York Magazine article by its canonical `url`: title, description, section, authors, lead image, publication and update times, a `paywalled` flag and the body `paragraphs`. Subscriber-only or blocked articles return an upstream error.", "operationId": "nymag-article", "parameters": [ { @@ -382607,7 +395642,7 @@ }, "/nymag/author": { "get": { - "description": "Returns a New York Magazine author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns a New York Magazine author profile from a required `url` in the form `https://nymag.com/author//`. The response has `name`, `job_title` (empty for some contributors), `bio` and recent articles with title, URL, `excerpt` and a `section` label. Each article's `published_at` is the page's date text, such as `Sept. 20, 2026`, not a timestamp.", "operationId": "nymag-author", "parameters": [ { @@ -382661,7 +395696,7 @@ }, "/nymag/headlines": { "get": { - "description": "Returns fresh headlines from one public New York Magazine section.", + "description": "Returns recent New York Magazine stories for one site section. `section` is required and takes one of nine slugs: `intelligencer`, `thecut`, `vulture`, `grub-street`, `curbed`, `strategist`, `select-all`, `science` or `daily`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "nymag-headlines", "parameters": [ { @@ -382720,7 +395755,7 @@ }, "/nymag/news": { "get": { - "description": "Returns fresh New York Magazine stories from the public homepage.", + "description": "Returns the current New York Magazine top stories, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. Use `nymag-headlines` to read one of its sections.", "operationId": "nymag-news", "produces": [ "application/json" @@ -382752,7 +395787,7 @@ }, "/nymag/sections": { "get": { - "description": "Returns the public New York Magazine section inventory.", + "description": "Lists the New York Magazine section slugs accepted by `nymag-headlines`, such as `intelligencer`, `thecut`, `vulture` and `grub-street`. Each entry has its stable `slug`, display `name` and section `url`.", "operationId": "nymag-sections", "produces": [ "application/json" @@ -382778,7 +395813,7 @@ }, "/nypost/article": { "get": { - "description": "Returns public New York Post article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a New York Post article by canonical `url` in the form `https://nypost.com/YYYY/MM/DD/
//`: title, description, section, authors, lead image, publication and update times, a `paywalled` flag and the body `paragraphs`.", "operationId": "nypost-article", "parameters": [ { @@ -382832,7 +395867,7 @@ }, "/nypost/author": { "get": { - "description": "Returns a New York Post author's byline metadata, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns a New York Post author profile from a required `url` in the form `https://nypost.com/author//`. The response has `name`, `biography`, `image_url`, `social_links` and recent articles. Staff and wire bylines often have no headshot or bio, and each article's `published_at` is the page's date text such as `September 20, 2026 | 10:06pm`.", "operationId": "nypost-author", "parameters": [ { @@ -382886,7 +395921,7 @@ }, "/nypost/headlines": { "get": { - "description": "Returns fresh headlines from one public New York Post RSS section.", + "description": "Returns recent New York Post stories for one section. `section` is required and takes one of 54 slugs, such as `us-news`, `metro`, `nfl`, `business`, `real-estate` or `astrology`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "nypost-headlines", "parameters": [ { @@ -382990,7 +396025,7 @@ }, "/nypost/news": { "get": { - "description": "Returns fresh New York Post top stories from its public RSS feed.", + "description": "Returns the current New York Post top stories, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. Use `nypost-headlines` to read a single section.", "operationId": "nypost-news", "produces": [ "application/json" @@ -383028,7 +396063,7 @@ }, "/nypost/sections": { "get": { - "description": "Returns the public New York Post RSS section inventory used by the headlines endpoint.", + "description": "Lists the 54 New York Post section slugs accepted by `nypost-headlines`, such as `us-news`, `politics`, `nfl`, `celebrities` and `mental-health`. Each entry has its `slug`, display `name` and `url`.", "operationId": "nypost-sections", "produces": [ "application/json" @@ -383054,7 +396089,7 @@ }, "/nyt/article": { "get": { - "description": "Returns one public New York Times article's metadata and body paragraphs from a canonical article URL.", + "description": "Returns a New York Times article by canonical `url`, with `title`, `description`, `published_at`, `updated_at`, `section`, `authors`, `keywords`, `image_url` and the body `paragraphs` in order. Query strings and fragments are stripped. A subscription barrier returns `403`, and non-article or non-NYT URLs return `400`.", "operationId": "nyt-article", "parameters": [ { @@ -383284,7 +396319,7 @@ }, "/nyt/sections": { "get": { - "description": "Lists every New York Times section accepted by /nyt/headlines, with its slug, display name, and public feed URL.", + "description": "Lists the New York Times section slugs accepted by `nyt-headlines`, such as `World` and `Business`, each with its display `name` and `url`. It covers only the sections that endpoint takes; use `nyt-categories` for the broader site navigation, including Politics, DealBook and Wirecutter.", "operationId": "nyt-sections", "produces": [ "application/json" @@ -383388,7 +396423,7 @@ }, "/nzherald/author": { "get": { - "description": "Returns an NZ Herald author's byline metadata, biography, headshot, contact details, and recent articles from a canonical author URL.", + "description": "Returns an NZ Herald author profile from a required `url` in the form `https://www.nzherald.co.nz/author//`. The response has `name`, `job_title`, `location`, `email`, `biography`, `image_url` and recent articles. Each field reflects what the author's page shows, and article `published_at` is RFC3339 where the page gives a machine-readable timestamp.", "operationId": "nzherald-author", "parameters": [ { @@ -383442,7 +396477,7 @@ }, "/nzherald/headlines": { "get": { - "description": "Returns fresh headlines from one public NZ Herald section.", + "description": "Returns recent NZ Herald headlines for one section. `section` is required and takes a slug listed by `nzherald-sections`, such as `nz`, `business`, `rugby`, `politics` or `world`. Each item has a title and URL. A URL may point at a premium article, which `nzherald-article` rejects with a permission error.", "operationId": "nzherald-headlines", "parameters": [ { @@ -383536,7 +396571,7 @@ }, "/nzherald/news": { "get": { - "description": "Returns fresh New Zealand Herald top stories from its public homepage.", + "description": "Returns the current New Zealand Herald top stories, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. Use `nzherald-headlines` to read one section.", "operationId": "nzherald-news", "produces": [ "application/json" @@ -383574,7 +396609,7 @@ }, "/nzherald/sections": { "get": { - "description": "Returns the public NZ Herald section inventory used by the headlines endpoint.", + "description": "Lists the NZ Herald section slugs accepted by `nzherald-headlines`, such as `nz`, `business`, `rugby`, `technology` and `world`. Each entry has its `slug`, a display `name` (for example `New Zealand` for `nz`) and a `url`.", "operationId": "nzherald-sections", "produces": [ "application/json" @@ -383603,7 +396638,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Oh Polly (https://www.ohpolly.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Oh Polly (https://www.ohpolly.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "ohpolly-collections", "parameters": [ { @@ -383666,7 +396701,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Oh Polly (https://www.ohpolly.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Oh Polly (https://www.ohpolly.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "ohpolly-collection-products", "parameters": [ { @@ -383743,7 +396778,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Oh Polly (https://www.ohpolly.com). The storefront URL is fixed server-side.", + "description": "Lists Oh Polly's static pages, paged with `page` (default 1) and `limit` (default 50, max 250). Each page has its handle, title, URL, plain-text content and timestamps. In some responses `transport_mode` is `ssr_embedded` and items carry only `handle`, `url` and `updated_at`, so fetch a single page for its content.", "operationId": "ohpolly-pages", "parameters": [ { @@ -383806,7 +396841,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Oh Polly (https://www.ohpolly.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one Oh Polly static page by its `handle`: title, page URL, plain-text content, and created, published and updated times. Content is cleaned text, not HTML. An unknown handle returns 404. The store is fixed to Oh Polly, so no store URL is needed. Some responses include `transport_mode` set to `ssr_embedded` and omit `id`.", "operationId": "ohpolly-page", "parameters": [ { @@ -383869,7 +396904,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Oh Polly's (https://www.ohpolly.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Oh Polly's (https://www.ohpolly.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "ohpolly-products", "parameters": [ { @@ -383932,7 +396967,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Oh Polly (https://www.ohpolly.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Oh Polly (https://www.ohpolly.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "ohpolly-product", "parameters": [ { @@ -383995,7 +397030,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Oh Polly (https://www.ohpolly.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Oh Polly (https://www.ohpolly.com) product handle. The storefront URL is fixed server-side.", "operationId": "ohpolly-product-recommendations", "parameters": [ { @@ -384076,7 +397111,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Oh Polly's (https://www.ohpolly.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Oh Polly's (https://www.ohpolly.com) predictive search. The storefront URL is fixed server-side.", "operationId": "ohpolly-search-suggest", "parameters": [ { @@ -384266,7 +397301,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Oh Polly (https://www.ohpolly.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Oh Polly (https://www.ohpolly.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "ohpolly-store", "produces": [ "application/json" @@ -384313,7 +397348,7 @@ "consumes": [ "application/json" ], - "description": "Lists Old Navy's own storefront navigation as name/cid pairs, resolving the cid-discovery gap oldnavy-search, oldnavy-product, and oldnavy-category all document. Omit cid to list Old Navy's top-level divisions (e.g. Women, Men, Boys, Toddler). Pass a cid (a division's own, or any deeper category's) to list the related categories for that part of the storefront instead, in the same order the live storefront menu shows them -- this is section-level, not necessarily unique per leaf category. Currently only available for brand=on (Old Navy) -- Gap, Banana Republic, and Athleta render their storefront navigation as client-side-only JavaScript with no server-rendered category id to scrape.", + "description": "Lists Old Navy's own storefront navigation as name/cid pairs, resolving the cid-discovery gap oldnavy-search, oldnavy-product, and oldnavy-category all document. Omit cid to list Old Navy's top-level divisions (e.g. Women, Men, Boys, Toddler). Pass a cid (a division's own, or any deeper category's) to list the related categories for that part of the storefront instead, in the same order the live storefront menu shows them -- this is section-level, not necessarily unique per leaf category. Currently only available for brand=on (Old Navy).", "operationId": "oldnavy-categories", "parameters": [ { @@ -384379,7 +397414,7 @@ "consumes": [ "application/json" ], - "description": "Returns a category/browse listing for one storefront category id (cid). cid is an opaque Gap Inc category id assigned by the storefront's own navigation -- neither oldnavy-search nor oldnavy-category currently surface a category-id list, so find one from the storefront's own category page URLs (the cid query parameter on a /browse/... page) for now. Select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`) -- it must match the brand the cid was found under. Returns the category's subcategory breakdown, normalized product summaries with per-color inventory data, and available search facets with live counts.", + "description": "Returns a category/browse listing for one storefront category id (cid). cid is an opaque Gap Inc category id assigned by the storefront's own navigation -- neither oldnavy-search nor oldnavy-category currently surface a category-id list, so find one from the storefront's own category page URLs (the cid query parameter on a /browse/... page) for now. Select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`) -- it must match the brand the cid was found under. Returns the category's subcategory breakdown, product summaries with per-color inventory data, and available search facets with live counts.", "operationId": "oldnavy-category", "parameters": [ { @@ -384464,7 +397499,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product-detail data for one color variant: name, description, images, aggregate rating, and every size offered in that color as a separate priced offer. pid is a color-specific product id, as returned by oldnavy-search's product colors[].id field (not the bare base product id). Select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`) -- it must match the brand the pid was found under.", + "description": "Returns product-detail data for one color variant: name, description, images, aggregate rating, and every size offered in that color as a separate priced offer. pid is a color-specific product id, as returned by oldnavy-search's product colors[].id field (not the bare base product id). Select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`) -- it must match the brand the pid was found under.", "operationId": "oldnavy-product", "parameters": [ { @@ -384729,7 +397764,7 @@ "consumes": [ "application/json" ], - "description": "Searches product listings across Old Navy, Gap, Banana Republic, and Athleta -- select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`). Returns normalized product summaries with pricing, review scores, and every purchasable color variant. This search is best-effort relevance, not a guaranteed keyword match: for an obscure or nonsense keyword the upstream search index falls back to its own recommended results instead of returning an empty list, and there is currently no reliable signal in the response to distinguish a true keyword match from that fallback behavior.", + "description": "Searches product listings across Old Navy, Gap, Banana Republic, and Athleta -- select the storefront with the brand parameter (`on` for Old Navy, `gap` for Gap, `br` for Banana Republic, `at` for Athleta; defaults to `on`). Returns product summaries with pricing, review scores, and every purchasable color variant. This search is best-effort relevance, not a guaranteed keyword match: for an obscure or nonsense keyword the upstream search index falls back to its own recommended results instead of returning an empty list, and there is currently no reliable signal in the response to distinguish a true keyword match from that fallback behavior.", "operationId": "oldnavy-search", "parameters": [ { @@ -387583,7 +400618,7 @@ "consumes": [ "application/json" ], - "description": "Returns a restaurant's profile (location, cuisines, hours, price band, review summary) plus real-time bookable timeslots for the given date/time and party size. Credential-free.", + "description": "Returns a restaurant's profile (location, cuisines, hours, price band, review summary) plus real-time bookable timeslots for the given date/time and party size.", "operationId": "opentable-restaurant", "parameters": [ { @@ -387660,7 +400695,7 @@ "consumes": [ "application/json" ], - "description": "Returns a restaurant's menus (sections, items, prices). Credential-free.", + "description": "Returns the menus of one OpenTable restaurant, identified by the required `restaurant_id`. Each menu has a title, a currency and sections, and each section lists items with title, price and description. The price is returned as a string in the menu's currency, for example HK$.", "operationId": "opentable-restaurant-menus", "parameters": [ { @@ -387723,7 +400758,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of diner reviews (author, text, per-category ratings) for a restaurant. Credential-free.", + "description": "Returns one page of diner reviews for an OpenTable restaurant, identified by the required `restaurant_id`. `page` defaults to 1 and `size` to 20. Each review has its id, author and author's metro area, reservation and posted dates, text, a recommended flag, and ratings for overall, food, service, ambience, value and noise.", "operationId": "opentable-restaurant-reviews", "parameters": [ { @@ -387800,7 +400835,7 @@ "consumes": [ "application/json" ], - "description": "Searches restaurants by free-text term (cuisine, name, neighborhood) near a latitude/longitude, for a given date/time and party size, including inline live availability per result. Credential-free.", + "description": "Searches restaurants by free-text term (cuisine, name, neighborhood) near a latitude/longitude, for a given date/time and party size, including inline live availability per result.", "operationId": "opentable-search", "parameters": [ { @@ -387891,7 +400926,7 @@ }, "/otto/categories": { "get": { - "description": "Returns the public top-level category navigation from Otto.de's server-rendered homepage. Each entry includes its canonical browsing URL.", + "description": "Lists the top-level categories shown in Otto.de's homepage navigation, each with its name and its canonical browse URL. The response also gives the `count` of categories and a `fetched_at` time. It takes no parameters.", "operationId": "otto-categories", "produces": [ "application/json" @@ -388050,7 +401085,7 @@ }, "/pagesix/article": { "get": { - "description": "Returns public Page Six article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Page Six article by canonical `url` in the form `https://pagesix.com/YYYY/MM/DD/
//`: title, description, section, authors, lead image, publication and update times, a `paywalled` flag and the body `paragraphs`.", "operationId": "pagesix-article", "parameters": [ { @@ -388104,7 +401139,7 @@ }, "/pagesix/author": { "get": { - "description": "Returns a Page Six author's byline metadata, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns a Page Six author profile from a required `url` in the form `https://pagesix.com/author//`. The response has `name`, `biography`, `image_url`, `social_links` and recent articles. An RSS feed link is the only social link always present, and each article's `published_at` is the page's date text such as `September 23, 2026 | 8:16pm`.", "operationId": "pagesix-author", "parameters": [ { @@ -388158,7 +401193,7 @@ }, "/pagesix/headlines": { "get": { - "description": "Returns fresh headlines from one public Page Six RSS section.", + "description": "Returns recent Page Six stories for one section. `section` is required and takes one of 30 slugs, such as `celebrity-news`, `royal-family`, `taylor-swift` or `new-york-city-society`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "pagesix-headlines", "parameters": [ { @@ -388238,7 +401273,7 @@ }, "/pagesix/news": { "get": { - "description": "Returns fresh Page Six top stories from its public RSS feed.", + "description": "Returns the current Page Six top stories, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. Use `pagesix-headlines` to read one section.", "operationId": "pagesix-news", "produces": [ "application/json" @@ -388276,7 +401311,7 @@ }, "/pagesix/sections": { "get": { - "description": "Returns the public Page Six RSS section inventory used by the headlines endpoint.", + "description": "Lists the 30 Page Six section slugs accepted by `pagesix-headlines`, such as `celebrity-news`, `royal-family`, `taylor-swift` and `palm-beach-society`. Each entry has its `slug`, display `name` and `url`.", "operationId": "pagesix-sections", "produces": [ "application/json" @@ -388479,7 +401514,7 @@ "consumes": [ "application/json" ], - "description": "Returns one darkstore's full category tree: every category and sub-category, each with the upstream-reported product count and (for top-level categories) an image. Sourced from the same page /pandamart/store/products reads, so it costs no extra request beyond a plain store lookup. This lists what categories exist and how large they are -- it does not fetch the items inside any one category, which still requires a resolved delivery-address session this repo could not reproduce. Sub-category product counts are frequently 0 upstream; only top-level counts are reliably populated.", + "description": "Returns one darkstore's full category tree: every category and sub-category, each with the upstream-reported product count and (for top-level categories) an image. This lists what categories exist and how large they are -- it does not fetch the items inside any one category. Sub-category product counts are frequently 0 upstream; only top-level counts are reliably populated.", "operationId": "pandamart-store-categories", "parameters": [ { @@ -388631,7 +401666,7 @@ "consumes": [ "application/json" ], - "description": "Returns one darkstore's product showcase: every named shelf its own home page displays (deals, new arrivals, category highlights, etc.), each with real prices, stock, and availability. This is the curated set of shelves the store's home page surfaces, not the full category-browsable catalog -- browsing into a specific category page requires a resolved delivery-address session this repo could not reproduce server-side.", + "description": "Returns one darkstore's product showcase: every named shelf its own home page displays (deals, new arrivals, category highlights, etc.), each with real prices, stock, and availability. This is the curated set of shelves the store's home page surfaces, not the full category-browsable catalog.", "operationId": "pandamart-store-products", "parameters": [ { @@ -389283,7 +402318,7 @@ "consumes": [ "application/json" ], - "description": "Returns one cafe's full category tree (with subcategories) and its complete item catalog, priced for that specific cafe -- Panera's prices are genuinely per-cafe, not a national list (the same salad has been confirmed live at different prices in Chicago and New York). Each item carries its price, product type, whether it is customizable, its published nutrients (Panera's placard API only ever publishes Calories and Caffeine on this surface -- a fuller macro/micronutrient breakdown is not available credential-free), its allergen statement (contains / may-contain, each with an id and display name), Panera's own wellness/dietary labels (for example Vegan, Vegetarian, Gluten Conscious), and a live in_stock flag from this cafe's current stockout feed. Cafe ids come from GET /panera/locations. An unknown cafe id returns a 404.", + "description": "Returns one cafe's full category tree (with subcategories) and its complete item catalog, priced for that specific cafe -- Panera's prices are genuinely per-cafe, not a national list (the same salad has been confirmed live at different prices in Chicago and New York). Each item carries its price, product type, whether it is customizable, its published nutrients (only Calories and Caffeine are published -- a fuller macro/micronutrient breakdown is not available), its allergen statement (contains / may-contain, each with an id and display name), Panera's own wellness/dietary labels (for example Vegan, Vegetarian, Gluten Conscious), and a live in_stock flag reflecting this cafe's current stockouts. Cafe ids come from GET /panera/locations. An unknown cafe id returns a 404.", "operationId": "panera-menu", "parameters": [ { @@ -391558,7 +404593,7 @@ }, "/pcgamer/article": { "get": { - "description": "Returns public PC Gamer article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a PC Gamer article by canonical `pcgamer.com` `url`; review pages work the same way as news articles. The response has title, description, section, authors, lead image, publication and update times, a `paywalled` flag and body `paragraphs`.", "operationId": "pcgamer-article", "parameters": [ { @@ -391612,7 +404647,7 @@ }, "/pcgamer/author": { "get": { - "description": "Returns one PC Gamer author's public profile: name, biography, social links, and one page of their recent articles.", + "description": "Returns a PC Gamer author profile by `slug` (for example `harvey-randall`) or a pcgamer.com author `url`; supply exactly one. `page` picks the 1-based page of recent articles (default 1) and overrides a `/page/` segment in `url`. The response has `name`, `job_title`, `biography`, `social_links`, articles, `page` and `has_next_page`.", "operationId": "pcgamer-author", "parameters": [ { @@ -391679,7 +404714,7 @@ }, "/pcgamer/headlines": { "get": { - "description": "Returns fresh PC Gamer headlines from one public section hub page.", + "description": "Returns recent PC Gamer headlines for one section. `section` is required and takes one of eight slugs: `deals`, `games`, `gaming-industry`, `guides`, `hardware`, `movies-tv`, `news` or `software`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "pcgamer-headlines", "parameters": [ { @@ -391737,7 +404772,7 @@ }, "/pcgamer/news": { "get": { - "description": "Returns fresh PC Gamer top stories from the public RSS feed.", + "description": "Returns the current PC Gamer top stories, with no parameters. Each item has a title and URL, and may include summary, author, publication time and image. Use `pcgamer-headlines` to read one section.", "operationId": "pcgamer-news", "produces": [ "application/json" @@ -391775,7 +404810,7 @@ }, "/pcgamer/sections": { "get": { - "description": "Returns the public PC Gamer top-level editorial taxonomy used by the headlines endpoint.", + "description": "Lists the eight top-level PC Gamer sections accepted by `pcgamer-headlines`: `deals`, `games`, `gaming-industry`, `guides`, `hardware`, `movies-tv`, `news` and `software`. Each entry has its `slug`, display `name` and `url`.", "operationId": "pcgamer-sections", "produces": [ "application/json" @@ -391801,7 +404836,7 @@ }, "/pcmag/article": { "get": { - "description": "Returns public PCMag article or product-review metadata and body paragraphs from a canonical article URL.", + "description": "Returns a PCMag article or product review by canonical `pcmag.com` `url`, such as `/news/` or `/reviews/`. The response has title, description, publication time, section label, authors, lead image and body `paragraphs`. Hub pages, author pages and pages without a readable body return an upstream error.", "operationId": "pcmag-article", "parameters": [ { @@ -391855,7 +404890,7 @@ }, "/pcmag/author": { "get": { - "description": "Returns one PCMag author's public profile: name, role, biography, areas of expertise, social links, and their recent articles.", + "description": "Returns a PCMag author profile by `slug` (for example `michael-kan`) or a pcmag.com authors `url`; supply exactly one. The response has `name`, `role`, `biography`, `image_url`, `expertise` topics linked to category hubs, `social_links` (X, LinkedIn, Bluesky, Threads) as full URLs, and recent articles.", "operationId": "pcmag-author", "parameters": [ { @@ -391915,7 +404950,7 @@ }, "/pcmag/headlines": { "get": { - "description": "Returns fresh PCMag headlines from one public topic/category hub.", + "description": "Returns recent PCMag headlines for one product or topic category. `section` is required and takes a category slug such as `ai`, `antivirus`, `cameras`, `crm-software` or `gaming-systems`; `pcmag-sections` lists them. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "pcmag-headlines", "parameters": [ { @@ -392197,7 +405232,7 @@ }, "/pcmag/news": { "get": { - "description": "Returns fresh PCMag top stories from the public news feed.", + "description": "Returns the current PCMag top stories, with no parameters. Each item has a title, canonical URL, summary, publication time and author name when available. Use `pcmag-headlines` to read one product or topic category.", "operationId": "pcmag-news", "produces": [ "application/json" @@ -392235,7 +405270,7 @@ }, "/pcmag/sections": { "get": { - "description": "Returns the public PCMag product/topic taxonomy accepted by the headlines endpoint.", + "description": "Lists the PCMag product and topic category slugs accepted by `pcmag-headlines`, such as `3d-printers`, `ai`, `antivirus`, `crm-software` and `drones`. Each entry has a `slug`, a display `name` and the category hub `url`.", "operationId": "pcmag-sections", "produces": [ "application/json" @@ -392261,7 +405296,7 @@ }, "/people/article": { "get": { - "description": "Returns public PEOPLE article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a PEOPLE article by canonical `people.com` `url`, such as `https://people.com/example-headline-12345678`. The response has title, description, section, authors, lead image, publication and update times, a `paywalled` flag and body `paragraphs`. `authors` is empty for pieces with no byline.", "operationId": "people-article", "parameters": [ { @@ -392417,7 +405452,7 @@ }, "/people/news": { "get": { - "description": "Returns fresh PEOPLE celebrity and entertainment stories from the public homepage.", + "description": "Returns the current PEOPLE celebrity and entertainment top stories, with no parameters and no section filter. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "people-news", "produces": [ "application/json" @@ -392481,7 +405516,7 @@ }, "/phillyinquirer/article": { "get": { - "description": "Returns public Philadelphia Inquirer article metadata and body paragraphs from a canonical story URL.", + "description": "Returns a Philadelphia Inquirer story by canonical `inquirer.com` `url` ending in `-.html`: title, description, publication and update times, section, authors, lead image and body `paragraphs` in reading order. Captions, teasers and comments are excluded. Associated Press `/wires/` pages, section pages and author pages return `400`.", "operationId": "phillyinquirer-article", "parameters": [ { @@ -392535,7 +405570,7 @@ }, "/phillyinquirer/author": { "get": { - "description": "Returns one Philadelphia Inquirer staff author's public profile: name, role, biography, social links, and their latest listed stories.", + "description": "Returns a Philadelphia Inquirer staff author profile by `slug` (for example `gammage_jeff`) or an inquirer.com author `url`; supply exactly one. The response has `name`, `role`, `biography`, `image_url`, public web social links (no email or phone) and the latest 20 stories, with no paging. An unknown slug returns a 404 error.", "operationId": "phillyinquirer-author", "parameters": [ { @@ -392595,7 +405630,7 @@ }, "/phillyinquirer/headlines": { "get": { - "description": "Returns fresh Philadelphia Inquirer headlines from one public section feed. Associated Press wire copy is not included.", + "description": "Returns recent Philadelphia Inquirer stories for one section, without Associated Press wire copy. `section` is required and takes one of 24 slugs, such as `news`, `sixers`, `eagles`, `south-jersey` or `real-estate`; invalid values return `400`. Each item has a title and URL, and may include summary, author, publication time and image.", "operationId": "phillyinquirer-headlines", "parameters": [ { @@ -392669,7 +405704,7 @@ }, "/phillyinquirer/news": { "get": { - "description": "Returns fresh Philadelphia Inquirer top stories from the public news feed. Associated Press wire copy is not included.", + "description": "Returns the current Philadelphia Inquirer top stories, with no parameters. Each item has a title, canonical URL, summary, publication time and author name when available. Associated Press wire copy, which makes up much of the source, is excluded.", "operationId": "phillyinquirer-news", "produces": [ "application/json" @@ -392707,7 +405742,7 @@ }, "/phillyinquirer/sections": { "get": { - "description": "Returns the public Philadelphia Inquirer section taxonomy accepted by the headlines endpoint.", + "description": "Lists the 24 Philadelphia Inquirer section slugs accepted by `phillyinquirer-headlines`, such as `news`, `sixers`, `eagles` and `south-jersey`. Each entry has a `slug`, display `name` and `url`. Sub-sections such as `news/philadelphia` are not listed because the `news` section already contains them.", "operationId": "phillyinquirer-sections", "produces": [ "application/json" @@ -393265,7 +406300,7 @@ }, "/phonearena/sections": { "get": { - "description": "Returns the public PhoneArena listings accepted by the headlines endpoint: recent news, current-month news and current-year reviews.", + "description": "Lists the three PhoneArena listings that `phonearena-headlines` accepts: `news` (the last two days of news), `news-month` (the newest news of the current calendar month) and `reviews` (the newest reviews, comparisons and hands-on articles of the current year). Each entry has a `slug`, a display `name` and a source `url`.", "operationId": "phonearena-sections", "produces": [ "application/json" @@ -393357,7 +406392,7 @@ }, "/physorg/headlines": { "get": { - "description": "Returns current stories from one verified public Phys.org RSS feed. The accepted values are the seven Topics menu feeds plus the Breaking and Editorials feeds. Search and tag feeds are excluded because their paths are disallowed in robots.txt.", + "description": "Returns current stories from one Phys.org feed. The accepted values are the seven Topics menu feeds plus the Breaking and Editorials feeds. Search and tag feeds are not included.", "operationId": "physorg-headlines", "parameters": [ { @@ -393454,7 +406489,7 @@ }, "/physorg/sections": { "get": { - "description": "Lists the seven topic feeds in Phys.org's Topics menu and its two additional public Breaking and Editorials feeds. Every returned slug is accepted by physorg-headlines. Search and tag feeds are excluded because their paths are disallowed in robots.txt.", + "description": "Lists the seven topic feeds in Phys.org's Topics menu and its two additional public Breaking and Editorials feeds. Every returned slug is accepted by physorg-headlines. Search and tag feeds are not included.", "operationId": "physorg-sections", "produces": [ "application/json" @@ -393483,7 +406518,7 @@ "consumes": [ "application/json" ], - "description": "Returns public release metadata for deploy verification. Root `/ping` returns the same payload as a compatibility alias.", + "description": "Returns the API's release metadata: `status`, `service`, `api` name, `version`, full and short `commit`, `build_time` and a `dirty` flag. The root `/ping` path returns the same payload.", "operationId": "ping", "produces": [ "application/json" @@ -394422,7 +407457,7 @@ "consumes": [ "application/json" ], - "description": "Checks whether a Pizza Hut restaurant's delivery integration can deliver to a given address and, when it can, the estimated delivery fee (broken down by fee line item) and pickup/dropoff time. This reads the same checkout-time estimate Pizza Hut's own site calls -- it does not add an item to a cart or place an order, and takes no payment or account information. serviceable is true only when the upstream returned a real estimate; a false value with reason populated covers every other case seen live, such as the requested delivery_provider not being enabled at that store. For the default INTERNAL provider, a serviceable result does not by itself confirm the address is within a real deliverable radius -- see this endpoint's markdown doc for the caveat. order_subtotal materially affects the fee estimate, so it is required rather than defaulted. pickup_at defaults to 30 minutes from now (an \"order now\" style estimate) when omitted.", + "description": "Checks whether a Pizza Hut restaurant's delivery integration can deliver to a given address and, when it can, the estimated delivery fee (broken down by fee line item) and pickup/dropoff time. This is a checkout-time estimate -- it does not add an item to a cart or place an order, and takes no payment or account information. serviceable is true only when the upstream returned a real estimate; a false value with reason populated covers every other case seen live, such as the requested delivery_provider not being enabled at that store. For the default INTERNAL provider, a serviceable result does not by itself confirm the address is within a real deliverable radius -- see this endpoint's markdown doc for the caveat. order_subtotal materially affects the fee estimate, so it is required rather than defaulted. pickup_at defaults to 30 minutes from now (an \"order now\" style estimate) when omitted.", "operationId": "pizzahut-delivery-estimate", "parameters": [ { @@ -394946,7 +407981,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of the PlayStation Store \"all games\" grid with per-item price, platforms, and media, plus the available filter facets (price, genre, platform, subscription, content type, etc.) with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.", + "description": "Returns a page of the PlayStation Store \"all games\" grid with per-item price, platforms, and media, plus the available filter facets (price, genre, platform, subscription, content type, etc.) with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.", "operationId": "playstation-browse", "parameters": [ { @@ -395010,7 +408045,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of a specific PlayStation Store category grid (by category UUID) with per-item price, platforms, and media, plus the available filter facets with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.", + "description": "Returns a page of a specific PlayStation Store category grid (by category UUID) with per-item price, platforms, and media, plus the available filter facets with value counts. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.", "operationId": "playstation-category", "parameters": [ { @@ -395088,7 +408123,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized store metadata for a PlayStation concept: title, publisher, release date, platforms, genres, description, content rating, aggregate star rating, the default product's purchase price, media, and the full lists of purchasable editions and add-ons. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.", + "description": "Returns store metadata for a PlayStation concept: title, publisher, release date, platforms, genres, description, content rating, aggregate star rating, the default product's purchase price, media, and the full lists of purchasable editions and add-ons. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.", "operationId": "playstation-concept", "parameters": [ { @@ -395159,7 +408194,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of written PlayStation Store reviews for a concept (game hub), each with its title, body, rating, helpful count, spoiler flag, the edition the reviewer owned, and reviewer identity (online id, PS Plus subscriber status, verified-purchase status, avatar). Also includes the concept's aggregate star rating (including its rating distribution). page/page_size page through the full review list (total_count reports the true upstream review count, has_next_page whether a later page has more), sort controls ordering, and rating optionally filters to one star value. Reviews are region-scoped: cc selects the store region whose reviews are returned (and the price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.", + "description": "Returns one page of written PlayStation Store reviews for a concept (game hub), each with its title, body, rating, helpful count, spoiler flag, the edition the reviewer owned, and reviewer identity (online id, PS Plus subscriber status, verified-purchase status, avatar). Also includes the concept's aggregate star rating (including its rating distribution). page/page_size page through the full review list (total_count reports the true upstream review count, has_next_page whether a later page has more), sort controls ordering, and rating optionally filters to one star value. Reviews are region-scoped: cc selects the store region whose reviews are returned (and the price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.", "operationId": "playstation-concept-reviews", "parameters": [ { @@ -395268,7 +408303,7 @@ "consumes": [ "application/json" ], - "description": "Returns the PlayStation Store deals landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.", + "description": "Returns the PlayStation Store deals landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.", "operationId": "playstation-deals", "parameters": [ { @@ -395325,7 +408360,7 @@ "consumes": [ "application/json" ], - "description": "Returns the PlayStation Store latest-releases landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.", + "description": "Returns the PlayStation Store latest-releases landing page as a list of merchandising shelves (sections), each with its titles and per-item price, plus a flattened, de-duplicated item list across all shelves. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.", "operationId": "playstation-latest", "parameters": [ { @@ -395382,7 +408417,7 @@ "consumes": [ "application/json" ], - "description": "Reads any PlayStation Store merchandising page by alias (e.g. collections, subscriptions, or a promotional alias) and returns its shelves (sections) plus the curated collection links found on the page. Each collection link carries a category_id (UUID) you can pass to /playstation/category to fetch that collection's full, paginated title grid — the credential-free way to browse themed/curated selections. Known aliases: collections, subscriptions, deals, latest. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.", + "description": "Reads any PlayStation Store merchandising page by alias (e.g. collections, subscriptions, or a promotional alias) and returns its shelves (sections) plus the curated collection links found on the page. Each collection link carries a category_id (UUID) you can pass to /playstation/category to fetch that collection's full, paginated title grid. Known aliases: collections, subscriptions, deals, latest. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.", "operationId": "playstation-page", "parameters": [ { @@ -395447,7 +408482,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized store metadata for a single PlayStation product/edition: title, np title id, parent concept id, product type and store classification, edition name, publisher, release date, platforms, genres, spoken/screen languages, content rating, aggregate star rating, purchase price, and media. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.", + "description": "Returns store metadata for a single PlayStation product/edition: title, np title id, parent concept id, product type and store classification, edition name, publisher, release date, platforms, genres, spoken/screen languages, content rating, aggregate star rating, purchase price, and media. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.", "operationId": "playstation-product", "parameters": [ { @@ -395518,7 +408553,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of PlayStation Store search results (concepts and products) for a term, with pagination and per-item price, platforms, classification, and media. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.", + "description": "Returns a page of PlayStation Store search results (concepts and products) for a term, with pagination and per-item price, platforms, classification, and media. Pass page to advance; next_page is set when more results exist. cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.", "operationId": "playstation-search", "parameters": [ { @@ -395597,7 +408632,7 @@ "consumes": [ "application/json" ], - "description": "Returns typeahead-style PlayStation Store search suggestions for a partial or full term: id, name, classification, platforms, publisher, release date, price, a representative image, and a direct store URL per match. Matching is upstream-ordered and loose (it may include titles that only loosely relate to the term), not a ranked exact-substring search. limit caps how many suggestions are returned (max 20; the upstream API does not honor a higher value). cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text. Credential-free public PlayStation Store data.", + "description": "Returns typeahead-style PlayStation Store search suggestions for a partial or full term: id, name, classification, platforms, publisher, release date, price, a representative image, and a direct store URL per match. Matching is upstream-ordered and loose (it may include titles that only loosely relate to the term), not a ranked exact-substring search. limit caps how many suggestions are returned (max 20; the upstream API does not honor a higher value). cc selects the store region (and price currency); l accepts a language code or locale such as en or en-US, with the locale's primary language used for text.", "operationId": "playstation-suggest", "parameters": [ { @@ -395666,7 +408701,7 @@ }, "/politico/article": { "get": { - "description": "Returns a public Politico article's metadata and full body paragraphs from a canonical article URL.", + "description": "Returns a Politico article by its canonical `url`, in the form `https://www.politico.com/news/YYYY/MM/DD/slug`. The response has the title, description, authors, publication and update times, lead image URL and the body `paragraphs`.", "operationId": "politico-article", "parameters": [ { @@ -395830,7 +408865,7 @@ }, "/politico/headlines": { "get": { - "description": "Returns fresh headlines from Politico's public, site-wide RSS feed.", + "description": "Returns the latest Politico stories across the whole site, not limited to one section. Takes no parameters. Each item has its title, URL, a short summary, publication time and author.", "operationId": "politico-headlines", "produces": [ "application/json" @@ -395928,7 +408963,7 @@ }, "/polygon/article": { "get": { - "description": "Returns public Polygon article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Polygon article by canonical `url` (`https://www.polygon.com//`): title, description, section, authors, publication and update times, lead image, body `paragraphs` and a `paywalled` flag. Section, guide and other non-article URLs, such as `/gaming-news/` or `/guides/`, are rejected as an invalid parameter.", "operationId": "polygon-article", "parameters": [ { @@ -395982,7 +409017,7 @@ }, "/polygon/author": { "get": { - "description": "Returns a Polygon author's byline metadata, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns a Polygon author profile by canonical `url` (`https://www.polygon.com/author//`): name, `title`, `image_url`, `biography`, social links and the articles in the profile's Latest module. Title, image and biography appear only as the profile shows them. `social_links` holds the author's own accounts, not Polygon's internal follow link.", "operationId": "polygon-author", "parameters": [ { @@ -396036,7 +409071,7 @@ }, "/polygon/headlines": { "get": { - "description": "Returns fresh headlines from one public Polygon RSS section.", + "description": "Returns the latest Polygon stories for one section. `section` is required and takes one of 15 slugs, including `gaming-news`, `gaming-reviews`, `movie-tv-reviews`, `anime`, `guides` and `videos`. Each item has its title, URL, summary, publication time, author and image.", "operationId": "polygon-headlines", "parameters": [ { @@ -396101,7 +409136,7 @@ }, "/polygon/news": { "get": { - "description": "Returns fresh Polygon top stories from its public RSS feed.", + "description": "Returns Polygon's latest top stories across the site, covering games and entertainment. Takes no parameters, and `polygon-headlines` narrows by section instead. Each item has its title, URL, summary, publication time, author and image.", "operationId": "polygon-news", "produces": [ "application/json" @@ -396139,7 +409174,7 @@ }, "/polygon/sections": { "get": { - "description": "Returns the public Polygon RSS section inventory used by the headlines endpoint.", + "description": "Lists the Polygon sections that `polygon-headlines` accepts, from `gaming-news` and `gaming-reviews` to `guides` and `videos`. Each entry has a `slug`, a display `name` and the section's feed `url`.", "operationId": "polygon-sections", "produces": [ "application/json" @@ -396168,7 +409203,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public trade rows used by Polymarket's `/activity` page from credential-free Data API trades JSON. The `taker_only` enum accepts `true` and `false`; the `filter_type` enum accepts `CASH`; the `filter_amount` enum accepts `1`, `5`, `10`, `100`, `1000`, `10000`, and `100000`.", + "description": "Returns public trade rows used by Polymarket's `/activity` page. The `taker_only` enum accepts `true` and `false`; the `filter_type` enum accepts `CASH`; the `filter_amount` enum accepts `1`, `5`, `10`, `100`, `1000`, `10000`, and `100000`.", "operationId": "polymarket-activity-trades", "parameters": [ { @@ -396345,7 +409380,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized macroeconomic event rows for Polymarket's `/dashboards/macro` page using credential-free Gamma `events/keyset` JSON with the `macro` tag.", + "description": "Lists events from Polymarket's macro dashboard, tagged `macro`, up to `limit` events (default 20, max 100). Each event has its title, slug, dates, volume, liquidity, open interest, tags and nested markets with outcomes and prices. Pass the returned `cursor` back to fetch the next page; `has_more` shows whether there is one.", "operationId": "polymarket-dashboard-macro", "parameters": [ { @@ -396407,7 +409442,7 @@ "consumes": [ "application/json" ], - "description": "Returns public follower rows for one Polymarket address from Gamma v1 data JSON.", + "description": "Returns the public followers of one Polymarket wallet address. Page with `limit` and `offset` or `after_cursor`, and sort with `order` and `ascending`. The rows are passed through unchanged in `data`, with the source URL and the time they were fetched.", "operationId": "polymarket-data-followers", "parameters": [ { @@ -396498,7 +409533,7 @@ "consumes": [ "application/json" ], - "description": "Returns public following rows for one Polymarket address from Gamma v1 data JSON.", + "description": "Returns the accounts that one Polymarket wallet `address` follows, as rows under `data`. Optional `limit`, `offset`, `order`, `ascending` and `after_cursor` control the page. An invalid address returns an invalid-parameter error. The data is for reference and is not investment advice.", "operationId": "polymarket-data-following", "parameters": [ { @@ -396589,7 +409624,7 @@ "consumes": [ "application/json" ], - "description": "Returns public follower and following counts for one Polymarket address from Gamma v1 data JSON.", + "description": "Returns the follower and following counts for one Polymarket wallet `address` under `data`, with a `fetched_at` timestamp. An invalid address returns an invalid-parameter error. The counts are a snapshot and are not real-time trading data.", "operationId": "polymarket-data-follows-counts", "parameters": [ { @@ -396646,7 +409681,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Polymarket event from credential-free public Gamma event JSON. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns one Polymarket event. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-event-detail-by-id", "parameters": [ { @@ -396709,7 +409744,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public trade rows for one Polymarket event from credential-free Data API trades JSON. The `taker_only` enum accepts `true` and `false`; the `filter_type` enum accepts `CASH`; the `filter_amount` enum accepts `1`, `5`, `10`, `100`, `1000`, `10000`, and `100000`. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns public trade rows for one Polymarket event. The `taker_only` enum accepts `true` and `false`; the `filter_type` enum accepts `CASH`; the `filter_amount` enum accepts `1`, `5`, `10`, `100`, `1000`, `10000`, and `100000`. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-event-activity-by-id", "parameters": [ { @@ -396823,7 +409858,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Polymarket event from credential-free public Gamma event JSON. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns one Polymarket event. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-event-detail", "parameters": [ { @@ -396886,7 +409921,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public trade rows for one Polymarket event from credential-free Data API trades JSON. The `taker_only` enum accepts `true` and `false`; the `filter_type` enum accepts `CASH`; the `filter_amount` enum accepts `1`, `5`, `10`, `100`, `1000`, `10000`, and `100000`. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns public trade rows for one Polymarket event. The `taker_only` enum accepts `true` and `false`; the `filter_type` enum accepts `CASH`; the `filter_amount` enum accepts `1`, `5`, `10`, `100`, `1000`, `10000`, and `100000`. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-event-activity", "parameters": [ { @@ -397000,7 +410035,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized event rows from Polymarket's credential-free public Gamma events JSON.", + "description": "Lists Polymarket events with their markets. Sort by 24-hour volume, total volume, liquidity, end date and more, filter to open or closed events, and page with `limit` (default 25, max 100) and `offset`. Each event has its slug, description, end date, liquidity, open interest and comment count; each market has its question, outcomes, best bid and ask, last trade price and volume.", "operationId": "polymarket-events", "parameters": [ { @@ -397100,7 +410135,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized similar events from Polymarket's credential-free public Gamma events/similar JSON.", + "description": "Finds Polymarket events similar to a given one. Supply at least one of `id`, `event_title`, `event_slug`, `market_title` or `market_slug`; `limit` defaults to 10 (max 50) and `closed` (`true` or `false`) filters by closed state. Each event has its title, dates, volume, liquidity, tags and nested markets.", "operationId": "polymarket-events-similar", "parameters": [ { @@ -397201,7 +410236,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized tag rows attached to one Polymarket event id.", + "description": "Lists the tags attached to one Polymarket event, identified by the required event `id`. Each tag has its id, label and slug. An invalid id returns an invalid-parameter error.", "operationId": "polymarket-event-tags", "parameters": [ { @@ -397258,7 +410293,7 @@ "consumes": [ "application/json" ], - "description": "Returns public fee type data from Polymarket Gamma. This is a normalized wrapper around credential-free public JSON.", + "description": "Returns Polymarket's fee type reference data as rows under `data`, optionally narrowed with `active` (`true` or `false`) or a `search` term. The response includes a `fetched_at` time. An invalid `active` value returns an invalid-parameter error.", "operationId": "polymarket-fee-types", "parameters": [ { @@ -397324,7 +410359,7 @@ "consumes": [ "application/json" ], - "description": "Returns public game rows from Polymarket Gamma.", + "description": "Returns Polymarket's sports game rows under `data`, optionally filtered by `sport` or `ticker`. The response includes a `fetched_at` time. The data is a snapshot, not real-time trading data.", "operationId": "polymarket-games", "parameters": [ { @@ -397387,7 +410422,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized rows for Polymarket homepage feeds discovered from the public web app and backed by credential-free Gamma JSON. The `feed` enum accepts `trending`, `breaking`, `new`, `politics`, `sports`, `crypto`, `esports`, `iran`, `finance`, `geopolitics`, `tech`, `culture`, `economy`, `weather`, `mentions`, and `elections`. Most feeds return events from Gamma `events/keyset`; `breaking` returns high-movement market rows and `mentions` returns open event search matches.", + "description": "Returns rows for Polymarket homepage feeds. The `feed` enum accepts `trending`, `breaking`, `new`, `politics`, `sports`, `crypto`, `esports`, `iran`, `finance`, `geopolitics`, `tech`, `culture`, `economy`, `weather`, `mentions`, and `elections`. Most feeds return events; `breaking` returns high-movement market rows and `mentions` returns open event search matches.", "operationId": "polymarket-homepage-feed", "parameters": [ { @@ -397474,7 +410509,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized trader leaderboard rows from Polymarket's credential-free Data API leaderboard JSON. The `window` enum accepts `1d`, `7d`, `30d`, and `all`; the `sort_by` enum accepts `profit` and `volume`.", + "description": "Returns trader leaderboard rows. The `window` enum accepts `1d`, `7d`, `30d`, and `all`; the `sort_by` enum accepts `profit` and `volume`.", "operationId": "polymarket-leaderboard", "parameters": [ { @@ -397554,7 +410589,7 @@ "consumes": [ "application/json" ], - "description": "Returns public market clarification rows from Polymarket Gamma.", + "description": "Returns Polymarket market clarification rows under `data`, with a `fetched_at` time. Filter by `market_id`, `event_id`, `state`, `question_id` or `tx_hash`, and page with `limit`, `offset`, `order`, `ascending` and `after_cursor`. All filters are optional.", "operationId": "polymarket-market-clarifications", "parameters": [ { @@ -397670,7 +410705,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Polymarket market from credential-free public Gamma market JSON by condition id. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns one Polymarket market by condition id. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-market-detail-by-condition", "parameters": [ { @@ -397733,7 +410768,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public trade rows for one Polymarket market condition id from credential-free Data API trades JSON. The `taker_only` enum accepts `true` and `false`; the `filter_type` enum accepts `CASH`; the `filter_amount` enum accepts `1`, `5`, `10`, `100`, `1000`, `10000`, and `100000`. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns public trade rows for one Polymarket market condition id. The `taker_only` enum accepts `true` and `false`; the `filter_type` enum accepts `CASH`; the `filter_amount` enum accepts `1`, `5`, `10`, `100`, `1000`, `10000`, and `100000`. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-market-activity-by-condition", "parameters": [ { @@ -397847,7 +410882,7 @@ "consumes": [ "application/json" ], - "description": "Returns a public market liquidity snapshot that joins Gamma market detail with credential-free public CLOB market-data reads when token ids are available. This endpoint is not a trading endpoint and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns a public market liquidity snapshot that joins market detail with public CLOB market data when token ids are available. This endpoint is not a trading endpoint and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-market-liquidity-by-condition", "parameters": [ { @@ -397910,7 +410945,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Polymarket market from credential-free public Gamma market JSON. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns one Polymarket market. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-market-detail-by-slug", "parameters": [ { @@ -397973,7 +411008,7 @@ "consumes": [ "application/json" ], - "description": "Returns a public market liquidity snapshot that joins Gamma market detail with credential-free public CLOB market-data reads when token ids are available. This endpoint is not a trading endpoint and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns a public market liquidity snapshot that joins market detail with public CLOB market data when token ids are available. This endpoint is not a trading endpoint and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-market-liquidity-by-slug", "parameters": [ { @@ -398036,7 +411071,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Polymarket market from credential-free public Gamma market JSON. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns one Polymarket market. This endpoint does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-market-detail", "parameters": [ { @@ -398099,7 +411134,7 @@ "consumes": [ "application/json" ], - "description": "Returns a public market liquidity snapshot that joins Gamma market detail with credential-free public CLOB market-data reads when token ids are available. This endpoint is not a trading endpoint and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns a public market liquidity snapshot that joins market detail with public CLOB market data when token ids are available. This endpoint is not a trading endpoint and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-market-liquidity", "parameters": [ { @@ -398162,7 +411197,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized tag rows attached to one Polymarket market id.", + "description": "Lists the tags attached to one Polymarket market, identified by the required market `id`. Each tag has its id, label and slug. An invalid id returns an invalid-parameter error.", "operationId": "polymarket-market-tags", "parameters": [ { @@ -398219,7 +411254,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized market rows from Polymarket's credential-free public Gamma markets JSON.", + "description": "Lists Polymarket markets, up to `limit` rows (default 25, max 100), starting at `offset` (default 0, max 10000). Sort with `order`, such as `volume24hr` or `liquidity`, flip direction with `ascending`, and filter with `closed`. Each market has its question, slug, prices, volume, liquidity, token ids and outcomes.", "operationId": "polymarket-markets", "parameters": [ { @@ -398319,7 +411354,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized event rows for the Polymarket `/predictions` page using credential-free Gamma `events/keyset` JSON. The `status` enum accepts `active`, `resolved`, and `all`; the `sort` enum accepts `competitive`, `volume`, `volume_24hr`, `ending_soon`, `liquidity`, `newest`, and `closed_time`; the `recurrence` enum accepts `hourly`, `daily`, `weekly`, `monthly`, and `yearly`.", + "description": "Returns event rows for the Polymarket `/predictions` page. The `status` enum accepts `active`, `resolved`, and `all`; the `sort` enum accepts `competitive`, `volume`, `volume_24hr`, `ending_soon`, `liquidity`, `newest`, and `closed_time`; the `recurrence` enum accepts `hourly`, `daily`, `weekly`, `monthly`, and `yearly`.", "operationId": "polymarket-predictions", "parameters": [ { @@ -398429,7 +411464,7 @@ "consumes": [ "application/json" ], - "description": "Returns one public rewards-market row from Polymarket CLOB rewards JSON by market condition id.", + "description": "Returns the liquidity-rewards details of one Polymarket market by condition id: the question, daily reward rate, rewards minimum size and maximum spread, each reward configuration with its start and end dates and rate per day, total configured rewards, 24-hour volume and outcome token prices. A condition id with no rewards row returns `404`.", "operationId": "polymarket-rewards-market", "parameters": [ { @@ -398492,7 +411527,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public rewards-market rows used by Polymarket's `/rewards` page. The `order_by` enum accepts `market`, `earnings`, `max_spread`, `min_size`, `rate_per_day`, `price`, `earning_percentage`, and `spread`; the `position` enum accepts `asc` and `desc`; the `tag_slug` enum accepts `all`, `politics`, `sports`, `crypto`, `pop-culture`, `middle-east`, `business`, and `science`.", + "description": "Returns public rewards-market rows used by Polymarket's `/rewards` page. The `order_by` enum accepts `market`, `earnings`, `max_spread`, `min_size`, `rate_per_day`, `price`, `earning_percentage`, and `spread`; the `position` enum accepts `asc` and `desc`; the `tag_slug` enum accepts `all`, `politics`, `sports`, `crypto`, `pop-culture`, `middle-east`, `business`, and `science`.", "operationId": "polymarket-rewards-markets", "parameters": [ { @@ -398614,7 +411649,7 @@ "consumes": [ "application/json" ], - "description": "Searches Polymarket's credential-free public search JSON and returns normalized event results. The `status` enum accepts `open`, `closed`, and `all`; the `sort` enum accepts `relevance`, `volume24hr`, `volume`, `liquidity`, and `endDate`.", + "description": "Searches Polymarket and returns event results. The `status` enum accepts `open`, `closed`, and `all`; the `sort` enum accepts `relevance`, `volume24hr`, `volume`, `liquidity`, and `endDate`.", "operationId": "polymarket-search", "parameters": [ { @@ -398731,7 +411766,7 @@ "consumes": [ "application/json" ], - "description": "Returns public sports reference data from Polymarket Gamma.", + "description": "Returns Polymarket's sports reference list under `data`, with a `fetched_at` time. It takes no parameters. The data is reference data, not real-time trading data or investment advice.", "operationId": "polymarket-sports", "produces": [ "application/json" @@ -398778,7 +411813,7 @@ "consumes": [ "application/json" ], - "description": "Returns public sports reference data from Polymarket Gamma filtered by partner identifiers.", + "description": "Looks up Polymarket sports by a partner's identifiers, using `partner` (the partner name) and `external_id` (the partner's own id for the sport). Matching sports come back as rows under `data`, with a `fetched_at` time.", "operationId": "polymarket-sports-by-partner", "parameters": [ { @@ -398841,7 +411876,7 @@ "consumes": [ "application/json" ], - "description": "Returns public sports market type reference data from Polymarket Gamma.", + "description": "Returns the list of sports market types Polymarket uses, as reference data under `data`, together with a `fetched_at` time. It takes no parameters, so every call returns the same kind of reference list for the current moment.", "operationId": "polymarket-sports-market-types", "produces": [ "application/json" @@ -398888,7 +411923,7 @@ "consumes": [ "application/json" ], - "description": "Returns public sports summary data from Polymarket Gamma.", + "description": "Returns Polymarket's sports summary under `data`, together with a `fetched_at` time. It takes no parameters. The result is a snapshot of the summary at request time and is not real-time trading data or investment advice.", "operationId": "polymarket-sports-summary", "produces": [ "application/json" @@ -398935,7 +411970,7 @@ "consumes": [ "application/json" ], - "description": "Returns public sport detail data from Polymarket Gamma.", + "description": "Returns the Polymarket reference record for one sport, identified by the required sport `id`, under `data`. The response includes a `fetched_at` time. An invalid id returns an invalid-parameter error.", "operationId": "polymarket-sport", "parameters": [ { @@ -398998,7 +412033,7 @@ "consumes": [ "application/json" ], - "description": "Returns public external partner data for one sport from Polymarket Gamma.", + "description": "Returns the external partner records linked to one Polymarket sport, identified by the required sport `id`, under `data`. The response includes a `fetched_at` time. An invalid id returns an invalid-parameter error.", "operationId": "polymarket-sport-external-partners", "parameters": [ { @@ -399061,7 +412096,7 @@ "consumes": [ "application/json" ], - "description": "Returns public external partner data for one sport partner reference from Polymarket Gamma.", + "description": "Returns the external partner record for one Polymarket sport, identified by the sport `id` and a `partner_ref`, both required. The record comes back under `data` with a `fetched_at` time. Invalid identifiers return an invalid-parameter error.", "operationId": "polymarket-sport-external-partner", "parameters": [ { @@ -399132,7 +412167,7 @@ "consumes": [ "application/json" ], - "description": "Returns public spotlight data from Polymarket Gamma.", + "description": "Returns Polymarket's list of spotlights under `data`, with a `fetched_at` time. It takes no parameters. The data is a reference list, not real-time trading data or investment advice.", "operationId": "polymarket-spotlights", "produces": [ "application/json" @@ -399179,7 +412214,7 @@ "consumes": [ "application/json" ], - "description": "Returns public spotlight keyset data from Polymarket Gamma.", + "description": "Returns Polymarket spotlights as a cursor-paged list under `data`. Control the page with `limit`, `offset`, `order`, `ascending` and `after_cursor`. The response includes a `fetched_at` time.", "operationId": "polymarket-spotlights-keyset", "parameters": [ { @@ -399262,7 +412297,7 @@ "consumes": [ "application/json" ], - "description": "Returns public spotlight detail data from Polymarket Gamma.", + "description": "Returns one Polymarket spotlight, identified by the required `slug`, under `data`, together with a `fetched_at` time. A slug that fails validation returns an invalid-parameter error. The data is a snapshot and is not investment advice.", "operationId": "polymarket-spotlight", "parameters": [ { @@ -399325,7 +412360,7 @@ "consumes": [ "application/json" ], - "description": "Returns public Polymarket Gamma status data.", + "description": "Returns the service status reported by Polymarket's public market-data API. The payload is passed through unchanged in `data`, with the source URL and the time it was fetched. Takes no parameters.", "operationId": "polymarket-status", "produces": [ "application/json" @@ -399372,7 +412407,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Polymarket tag from credential-free public Gamma tag JSON.", + "description": "Returns one Polymarket tag by its required `slug` instead of an id: its id, label and slug. An optional `locale` adjusts the lookup. An invalid slug returns an invalid-parameter error.", "operationId": "polymarket-tag-by-slug", "parameters": [ { @@ -399442,7 +412477,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized related tag rows from Polymarket's credential-free public Gamma related-tags JSON.", + "description": "Lists the Polymarket tags related to one tag, identified by the required tag `slug` instead of an id. Optional `omit_empty` (`true` or `false`), `status` and `locale` narrow the result. Each tag has its id, label and slug.", "operationId": "polymarket-related-tags-by-slug", "parameters": [ { @@ -399523,7 +412558,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized related tag rows from Polymarket's credential-free public Gamma related-tags/tags JSON.", + "description": "Returns the related-tag relationship rows for one Polymarket tag, identified by the required tag `slug` instead of an id. Optional `omit_empty` (`true` or `false`), `status` and `locale` narrow the result. Each row has an id, label and slug.", "operationId": "polymarket-related-tag-rows-by-slug", "parameters": [ { @@ -399604,7 +412639,7 @@ "consumes": [ "application/json" ], - "description": "Returns one normalized Polymarket tag from credential-free public Gamma tag JSON.", + "description": "Returns one Polymarket tag by its required `id`: its id, label and slug. Optional `include_template` and `locale` adjust the lookup. An invalid id returns an invalid-parameter error.", "operationId": "polymarket-tag", "parameters": [ { @@ -399681,7 +412716,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized related tag rows from Polymarket's credential-free public Gamma related-tags JSON.", + "description": "Lists the Polymarket tags related to one tag, identified by the required tag `id`. Optional `omit_empty` (`true` or `false`), `status` and `locale` narrow the result. Each tag has its id, label and slug. An invalid id returns an invalid-parameter error.", "operationId": "polymarket-related-tags", "parameters": [ { @@ -399762,7 +412797,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized related tag rows from Polymarket's credential-free public Gamma related-tags/tags JSON.", + "description": "Returns the related-tag relationship rows for one Polymarket tag, identified by the required tag `id`. Optional `omit_empty` (`true` or `false`), `status` and `locale` narrow the result. Each row has an id, label and slug. An invalid id returns an invalid-parameter error.", "operationId": "polymarket-related-tag-rows", "parameters": [ { @@ -399843,7 +412878,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized tag rows from Polymarket's credential-free public Gamma tags JSON.", + "description": "Lists Polymarket tags, up to `limit` rows (default 25, max 100), starting at `offset` (default 0, max 10000). Sort with `order` and flip direction with `ascending` (`true` or `false`); `locale` is optional. Each tag has its id, label and slug.", "operationId": "polymarket-tags", "parameters": [ { @@ -399943,7 +412978,7 @@ "consumes": [ "application/json" ], - "description": "Returns public team reference data from Polymarket Gamma.", + "description": "Lists Polymarket sports teams as rows under `data`. Filter by `league`, `name`, `abbreviation` or `provider_id`, and page with `limit`, `offset`, `order` and `ascending`. The response includes a `fetched_at` time.", "operationId": "polymarket-teams", "parameters": [ { @@ -400047,7 +413082,7 @@ "consumes": [ "application/json" ], - "description": "Returns public team reference data from Polymarket Gamma filtered by partner identifiers.", + "description": "Looks up Polymarket teams by a partner's identifiers, using `partner` (the partner name) and `external_id` (the partner's own id for the team). Matching teams come back as rows under `data`, with a `fetched_at` time.", "operationId": "polymarket-teams-by-partner", "parameters": [ { @@ -400110,7 +413145,7 @@ "consumes": [ "application/json" ], - "description": "Returns public team detail data from Polymarket Gamma.", + "description": "Returns the Polymarket reference record for one sports team, identified by the required team `id`, under `data`. The response includes a `fetched_at` time. An invalid id returns an invalid-parameter error.", "operationId": "polymarket-team", "parameters": [ { @@ -400173,7 +413208,7 @@ "consumes": [ "application/json" ], - "description": "Returns public external partner data for one team from Polymarket Gamma.", + "description": "Returns the external partner records linked to one Polymarket team, identified by the required team `id`, under `data`. The response includes a `fetched_at` time. An invalid id returns an invalid-parameter error.", "operationId": "polymarket-team-external-partners", "parameters": [ { @@ -400236,7 +413271,7 @@ "consumes": [ "application/json" ], - "description": "Returns public external partner data for one team partner reference from Polymarket Gamma.", + "description": "Returns the external partner record for one Polymarket team, identified by the team `id` and a `partner_ref`, both required. The record comes back under `data` with a `fetched_at` time. Invalid identifiers return an invalid-parameter error.", "operationId": "polymarket-team-external-partner", "parameters": [ { @@ -400307,7 +413342,7 @@ "consumes": [ "application/json" ], - "description": "Returns the public CLOB midpoint for one Polymarket token id.", + "description": "Returns the current midpoint price for one Polymarket outcome token, identified by the required `token_id`, as a single `midpoint` number such as 0.285. It is a read-only snapshot, returned with a `fetched_at` time and the `token_id`, and is not investment advice.", "operationId": "polymarket-token-midpoint", "parameters": [ { @@ -400370,7 +413405,7 @@ "consumes": [ "application/json" ], - "description": "Returns public CLOB order-book depth for one Polymarket token id.", + "description": "Returns the order book for one Polymarket outcome token, identified by the required `token_id`. The `book` has `bids` and `asks` as price and size pairs, the last trade price, tick size, minimum order size, condition id and a timestamp. Prices and sizes are numbers.", "operationId": "polymarket-token-orderbook", "parameters": [ { @@ -400433,7 +413468,7 @@ "consumes": [ "application/json" ], - "description": "Returns the public CLOB buy or sell price for one Polymarket token id.", + "description": "Returns the current price for one Polymarket outcome token, identified by the required `token_id`. `side` is `buy` or `sell` and defaults to `buy`. The response gives the `price` as a number, the `side` used and a `fetched_at` time. It is a snapshot, not trading advice.", "operationId": "polymarket-token-price", "parameters": [ { @@ -400507,7 +413542,7 @@ "consumes": [ "application/json" ], - "description": "Returns public CLOB price-history points for one Polymarket token id.", + "description": "Returns price history points for one Polymarket outcome token, identified by the required `token_id`. `interval` is one of `1m`, `1h`, `6h`, `1d` (default), `1w`, `all` or `max`; `fidelity` sets minutes per point (0 means 60, max 1440); `start_ts` and `end_ts` bound the range. Each point has a Unix `timestamp` and `price`. No points returns 404.", "operationId": "polymarket-token-price-history", "parameters": [ { @@ -400607,7 +413642,7 @@ "consumes": [ "application/json" ], - "description": "Returns the public CLOB spread for one Polymarket token id.", + "description": "Returns the current bid-ask spread for one Polymarket outcome token, identified by the required `token_id`, as a single `spread` number. It is a read-only snapshot with a `fetched_at` time and is not investment advice.", "operationId": "polymarket-token-spread", "parameters": [ { @@ -400670,7 +413705,7 @@ "consumes": [ "application/json" ], - "description": "Returns public CLOB midpoints for up to 25 Polymarket token ids. This uses credential-free public CLOB market-data JSON and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns public CLOB midpoints for up to 25 Polymarket token ids. This does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-tokens-midpoints", "parameters": [ { @@ -400734,7 +413769,7 @@ "consumes": [ "application/json" ], - "description": "Returns public CLOB order-book depth for up to 25 Polymarket token ids. This uses credential-free public CLOB market-data JSON and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns public CLOB order-book depth for up to 25 Polymarket token ids. This does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-tokens-orderbooks", "parameters": [ { @@ -400798,7 +413833,7 @@ "consumes": [ "application/json" ], - "description": "Returns public CLOB buy and sell prices for up to 25 Polymarket token ids. The `side` enum accepts `buy` and `sell`; when omitted, both sides are returned. This uses credential-free public CLOB market-data JSON and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns public CLOB buy and sell prices for up to 25 Polymarket token ids. The `side` enum accepts `buy` and `sell`; when omitted, both sides are returned. This does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-tokens-prices", "parameters": [ { @@ -400862,7 +413897,7 @@ "consumes": [ "application/json" ], - "description": "Returns public CLOB spreads for up to 25 Polymarket token ids. This uses credential-free public CLOB market-data JSON and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", + "description": "Returns public CLOB spreads for up to 25 Polymarket token ids. This does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.", "operationId": "polymarket-tokens-spreads", "parameters": [ { @@ -400926,7 +413961,7 @@ "consumes": [ "application/json" ], - "description": "Returns public tournament reference data from Polymarket Gamma.", + "description": "Lists Polymarket tournaments as rows under `data`, with a `fetched_at` time. Page with `limit` and `offset`, and sort with `order` and `ascending`. The data is reference data, not real-time trading data or investment advice.", "operationId": "polymarket-tournaments", "parameters": [ { @@ -401003,7 +414038,7 @@ "consumes": [ "application/json" ], - "description": "Returns public tournament detail data from Polymarket Gamma.", + "description": "Returns the Polymarket reference record for one tournament, identified by the required tournament `id`, under `data`. The response includes a `fetched_at` time. An invalid id returns an invalid-parameter error.", "operationId": "polymarket-tournament", "parameters": [ { @@ -401679,7 +414714,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of normalized Poshmark listings for a given brand name (e.g. Nike), the same browsing view as Poshmark's own brand pages. Pass a previous response's next_max_id back as max_id to fetch the next page. Credential-free public data sourced from Poshmark's own server-rendered brand page and, for pages past the first, Poshmark's own JSON pagination API.", + "description": "Returns a page of Poshmark listings for a given brand name (e.g. Nike), the same browsing view as Poshmark's own brand pages. Pass a previous response's next_max_id back as max_id to fetch the next page.", "operationId": "poshmark-brand", "parameters": [ { @@ -401748,7 +414783,7 @@ "consumes": [ "application/json" ], - "description": "Returns Poshmark's full brand directory: every brand Poshmark recognizes (name, slug, logo, known aliases), not just brands with active listings for a given search or category filter. Useful for resolving a brand name to the exact value the brand/search filters expect. Credential-free public data sourced from Poshmark's own server-rendered brand directory page.", + "description": "Returns Poshmark's full brand directory: every brand Poshmark recognizes (name, slug, logo, known aliases), not just brands with active listings for a given search or category filter. Useful for resolving a brand name to the exact value the brand/search filters expect.", "operationId": "poshmark-brands", "produces": [ "application/json" @@ -401789,7 +414824,7 @@ "consumes": [ "application/json" ], - "description": "Returns Poshmark's full department/category browse taxonomy (e.g. Women > Shoes, Men > Jackets & Coats). Each entry's path resolves directly against the category endpoint. This is reference data that changes rarely, so responses are cached. Credential-free public data sourced from Poshmark's own server-rendered category pages.", + "description": "Returns Poshmark's full department/category browse taxonomy (e.g. Women > Shoes, Men > Jackets & Coats). Each entry's path resolves directly against the category endpoint. This is reference data that changes rarely, so responses are cached.", "operationId": "poshmark-categories", "produces": [ "application/json" @@ -401830,7 +414865,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of normalized Poshmark listings for a given category path (e.g. Women-Shoes, Men-Shirts), the same browsing view as Poshmark's own category pages. Pass a previous response's next_max_id back as max_id to fetch the next page. Credential-free public data sourced from Poshmark's own server-rendered category page and, for pages past the first, Poshmark's own JSON pagination API.", + "description": "Returns a page of Poshmark listings for a given category path (e.g. Women-Shoes, Men-Shirts), the same browsing view as Poshmark's own category pages. Pass a previous response's next_max_id back as max_id to fetch the next page.", "operationId": "poshmark-category", "parameters": [ { @@ -401899,7 +414934,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Poshmark closet (seller storefront) page: the seller's public profile and reputation stats (followers, ratings, items sold) plus a first page of their currently available listings and total listing count. Pass a previous response's next_max_id back as max_id to fetch the next page of listings; paginated responses omit the seller profile to avoid a second upstream fetch, so fetch without max_id first to get seller fields. Credential-free public data sourced from Poshmark's own server-rendered closet page and, for pages past the first, Poshmark's own JSON pagination API.", + "description": "Returns a Poshmark closet (seller storefront) page: the seller's public profile and reputation stats (followers, ratings, items sold) plus a first page of their currently available listings and total listing count. Pass a previous response's next_max_id back as max_id to fetch the next page of listings; paginated responses omit the seller profile, so fetch without max_id first to get seller fields.", "operationId": "poshmark-closet", "parameters": [ { @@ -401968,7 +415003,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Poshmark item-detail page: the full listing (description, all photos, size/brand/condition, inventory), its seller's profile, public comments, and similar listings Poshmark itself surfaces on the same page. Credential-free public data sourced from Poshmark's own server-rendered listing page.", + "description": "Returns a Poshmark item-detail page: the full listing (description, all photos, size/brand/condition, inventory), its seller's profile, public comments, and similar listings Poshmark itself surfaces on the same page.", "operationId": "poshmark-listing", "parameters": [ { @@ -402031,7 +415066,7 @@ "consumes": [ "application/json" ], - "description": "Searches Poshmark for clothing, shoes, and accessory listings, returning normalized listing summaries (title, price, brand, size, condition, seller, images) plus the total matching count and an opaque pagination cursor. Pass a previous response's next_max_id back as max_id to fetch the next page. Credential-free public data sourced from Poshmark's own server-rendered search page and, for pages past the first, Poshmark's own JSON pagination API.", + "description": "Searches Poshmark for clothing, shoes, and accessory listings, returning listing summaries (title, price, brand, size, condition, seller, images) plus the total matching count and an opaque pagination cursor. Pass a previous response's next_max_id back as max_id to fetch the next page.", "operationId": "poshmark-search", "parameters": [ { @@ -402101,7 +415136,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of normalized Poshmark listings for a curated trend/showroom collection (e.g. \"Vintage Celine Handbags\"), the same browsing view as Poshmark's own trend pages. Pass a previous response's next_max_id back as max_id to fetch the next page. Credential-free public data sourced from Poshmark's own server-rendered trend page and, for pages past the first, Poshmark's own JSON pagination API.", + "description": "Returns a page of Poshmark listings for a curated trend/showroom collection (e.g. \"Vintage Celine Handbags\"), the same browsing view as Poshmark's own trend pages. Pass a previous response's next_max_id back as max_id to fetch the next page.", "operationId": "poshmark-trend", "parameters": [ { @@ -402306,7 +415341,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product-detail data for one Prada product/color variant: name, price, stock, available sizes, breadcrumb, alternate colors, and images. pv is the product/color identifier, returned by prada-search's, prada-category's, and this endpoint's own products[].pv/other_colors[] fields (also the trailing path segment of a Prada product URL). description and the full image gallery are populated on a best-effort basis from the product's own page and may be briefly absent even for a valid pv; every other field is always populated. An unknown pv returns a not-found error.", + "description": "Returns product-detail data for one Prada product/color variant: name, price, stock, available sizes, breadcrumb, alternate colors, and images. pv is the product/color identifier, returned by prada-search's, prada-category's, and this endpoint's own products[].pv/other_colors[] fields (also the trailing path segment of a Prada product URL). description and the full image gallery are populated on a best-effort basis and may be briefly absent even for a valid pv; every other field is always populated. An unknown pv returns a not-found error.", "operationId": "prada-product", "parameters": [ { @@ -402660,7 +415695,7 @@ "consumes": [ "application/json" ], - "description": "Returns one pristineauction.com lot's full detail: title, description, image gallery, price (current high bid, or realized/sold price once the auction has ended), auction end time, sport/collectible category, auction type, no-reserve flag, and view/watch/bid counts. lot_number comes from pristine-auction-search's results[].lot_number. Credential-free public data -- see the endpoint markdown for the transport used.", + "description": "Returns one pristineauction.com lot's full detail: title, description, image gallery, price (current high bid, or realized/sold price once the auction has ended), auction end time, sport/collectible category, auction type, no-reserve flag, and view/watch/bid counts. lot_number comes from pristine-auction-search's results[].lot_number.", "operationId": "pristine-auction-lot-detail", "parameters": [ { @@ -402723,7 +415758,7 @@ "consumes": [ "application/json" ], - "description": "Browses or searches pristineauction.com's current sports card and memorabilia auction lots. term or category is required, matching pristineauction.com's own search form. All enum values (category, auction_type, sort, status) come from pristine-auction-categories. status=completed browses ended/sold lots (a prices-realized view); the default (all statuses) mirrors the site's own default. Every filter is optional and combines with AND semantics. Credential-free public data -- see the endpoint markdown for the transport used.", + "description": "Browses or searches pristineauction.com's current sports card and memorabilia auction lots. term or category is required, matching pristineauction.com's own search form. All enum values (category, auction_type, sort, status) come from pristine-auction-categories. status=completed browses ended/sold lots (a prices-realized view); the default (all statuses) mirrors the site's own default. Every filter is optional and combines with AND semantics.", "operationId": "pristine-auction-search", "parameters": [ { @@ -402892,7 +415927,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Pristine Marketplace (https://www.pristinemarketplace.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Pristine Marketplace (https://www.pristinemarketplace.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "pristine-marketplace-collections", "parameters": [ { @@ -402955,7 +415990,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Pristine Marketplace (https://www.pristinemarketplace.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug (typically a player, team, or memorabilia-type collection, e.g. `pop-culture`).", + "description": "Returns products from one Pristine Marketplace (https://www.pristinemarketplace.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug (typically a player, team, or memorabilia-type collection, e.g. `pop-culture`).", "operationId": "pristine-marketplace-collection-products", "parameters": [ { @@ -403032,7 +416067,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Pristine Marketplace (https://www.pristinemarketplace.com). The storefront URL is fixed server-side. The storefront's \"Shop by Sport\" navigation (NFL, MLB, NBA, NHL, NASCAR) resolves to pages here (handles `nfl`, `mlb`, `nba`, `nhl`, `nascar`), not to a separate collections-style resource -- each is a landing page linking into many player/team collections.", + "description": "Returns static pages from Pristine Marketplace (https://www.pristinemarketplace.com). The storefront URL is fixed server-side. The storefront's \"Shop by Sport\" navigation (NFL, MLB, NBA, NHL, NASCAR) resolves to pages here (handles `nfl`, `mlb`, `nba`, `nhl`, `nascar`), not to a separate collections-style resource -- each is a landing page linking into many player/team collections.", "operationId": "pristine-marketplace-pages", "parameters": [ { @@ -403095,7 +416130,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Pristine Marketplace (https://www.pristinemarketplace.com) page handle. The storefront URL is fixed server-side. The \"Shop by Sport\" nav landing pages are reachable here as handles `nfl`, `mlb`, `nba`, `nhl`, and `nascar`.", + "description": "Returns static page detail for one Pristine Marketplace (https://www.pristinemarketplace.com) page handle. The storefront URL is fixed server-side. The \"Shop by Sport\" nav landing pages are reachable here as handles `nfl`, `mlb`, `nba`, `nhl`, and `nascar`.", "operationId": "pristine-marketplace-page", "parameters": [ { @@ -403158,7 +416193,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Pristine Marketplace's (https://www.pristinemarketplace.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Pristine Marketplace's (https://www.pristinemarketplace.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "pristine-marketplace-products", "parameters": [ { @@ -403221,7 +416256,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Pristine Marketplace (https://www.pristinemarketplace.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Pristine Marketplace (https://www.pristinemarketplace.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "pristine-marketplace-product", "parameters": [ { @@ -403284,7 +416319,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Pristine Marketplace (https://www.pristinemarketplace.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Pristine Marketplace (https://www.pristinemarketplace.com) product handle. The storefront URL is fixed server-side.", "operationId": "pristine-marketplace-product-recommendations", "parameters": [ { @@ -403421,7 +416456,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Pristine Marketplace's (https://www.pristinemarketplace.com) own native full-text search results page, distinct from `/pristine-marketplace/search/suggest`'s predictive suggestions. The storefront URL is fixed server-side. Per-page size is fixed by the storefront's own theme (16 products per page) and is not adjustable; `limit` is honored only as an upper bound on the returned page.", + "description": "Returns products from Pristine Marketplace's (https://www.pristinemarketplace.com) own full-text search, distinct from `/pristine-marketplace/search/suggest`'s predictive suggestions. The storefront URL is fixed server-side. Per-page size is fixed (16 products per page) and is not adjustable; `limit` is honored only as an upper bound on the returned page.", "operationId": "pristine-marketplace-search", "parameters": [ { @@ -403492,7 +416527,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Pristine Marketplace's (https://www.pristinemarketplace.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Pristine Marketplace's (https://www.pristinemarketplace.com) predictive search. The storefront URL is fixed server-side.", "operationId": "pristine-marketplace-search-suggest", "parameters": [ { @@ -403682,7 +416717,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Pristine Marketplace (https://www.pristinemarketplace.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Pristine Marketplace (https://www.pristinemarketplace.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "pristine-marketplace-store", "produces": [ "application/json" @@ -403729,7 +416764,7 @@ "consumes": [ "application/json" ], - "description": "Returns the category page payload for a Product Hunt category slug.", + "description": "Returns a Product Hunt category by its `slug`, such as `vibe-coding`: name, description, meta title, last update time, parent category and its sub-categories, hero products, questions with top answers, and related discussions.", "operationId": "producthunt-category", "parameters": [ { @@ -403895,7 +416930,7 @@ "consumes": [ "application/json" ], - "description": "Fetches Product Hunt leaderboard data for daily, weekly, monthly, or yearly scopes via Product Hunt GraphQL.", + "description": "Returns the Product Hunt leaderboard for a `scope` of `daily` (default), `weekly`, `monthly` or `yearly`, positioned with `date` (YYYY-MM-DD) or `year`, `month`, `day` and `week`. Only the first page is served, so a non-empty `cursor` returns an error. `featured` and `order` are accepted but do not change the default view.", "operationId": "producthunt-leaderboard", "parameters": [ { @@ -404081,7 +417116,7 @@ "consumes": [ "application/json" ], - "description": "Returns the richer Product Hunt about-page payload, including launch, forum, review tags, and media data.", + "description": "Returns the about-page data for a Product Hunt product, looked up by its slug in `id`. It covers the product's launch details with badges, ranks, comment count and detailed reviews with alternative products, along with the product's ad, forum and media information.", "operationId": "producthunt-about", "parameters": [ { @@ -404144,7 +417179,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated alternatives, tags, and related discussions for a Product Hunt product.", + "description": "Lists alternatives to a Product Hunt product, looked up by its slug in `id`. `first` sets the page size (default 10), `order` defaults to `most_relevant`, and `tags` takes comma-separated tag slugs. Returns alternative items with ratings, badges and scores, alternative tags with counts, and related discussions. Use `end_cursor` as `cursor` for the next page.", "operationId": "producthunt-alternatives", "parameters": [ { @@ -404233,7 +417268,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated customer products for a Product Hunt product using Product Hunt's ProductCustomersPage GraphQL operation.", + "description": "Lists the customer products of a Product Hunt product, looked up by its slug in `id`. `order` is `customers` (default) or `latest_launch`, `page` defaults to 1 and `page_size` to 10. Each item has its name, categories, badges, review and follower counts, and founder shoutouts. An unknown slug returns 404.", "operationId": "producthunt-customers", "parameters": [ { @@ -404321,7 +417356,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated launch posts for a Product Hunt product using Product Hunt's ProductPageLaunches GraphQL operation.", + "description": "Lists the launch posts of a Product Hunt product, looked up by its slug in `id`. `order` defaults to `DATE`; pass the returned `end_cursor` as `cursor` for the next page. Each launch has its name, tagline, ranks, scores, comment count, badges and dates. An unknown slug returns 404.", "operationId": "producthunt-launches", "parameters": [ { @@ -404398,7 +417433,7 @@ "consumes": [ "application/json" ], - "description": "Returns maker items for a Product Hunt product.", + "description": "Lists the makers of a Product Hunt product, looked up by its slug in `id`. Each maker has a name, username, headline, avatar, follower count and the posts they made. The response includes `total_count` and claim status, and the returned `end_cursor` can be passed as `cursor` for the next page.", "operationId": "producthunt-makers", "parameters": [ { @@ -404467,7 +417502,7 @@ "consumes": [ "application/json" ], - "description": "Returns detailed review items for a Product Hunt product.", + "description": "Lists the detailed reviews of a Product Hunt product, looked up by its slug in `id`. Each review has its ratings, such as ease of use and customization, comment count, creation time, the launch it came from and any alternative products named. The response also gives the review counts and an `end_cursor`.", "operationId": "producthunt-reviews", "parameters": [ { @@ -404530,7 +417565,7 @@ "consumes": [ "application/json" ], - "description": "Performs a full-text Product Hunt search and returns matching products, users, or launches.", + "description": "Searches Product Hunt for the required `query`. `type` is `product` (default), `user` or `launch`, and `page` starts at 1. `featured` and `topics` apply to launch search only. Results come as `edges` with `pageInfo` and `pagesCount`; launch search also returns topic aggregations.", "operationId": "producthunt-search", "parameters": [ { @@ -404624,7 +417659,7 @@ }, "/propublica/article": { "get": { - "description": "Returns public ProPublica article metadata (title, author(s), published/updated dates, dek) and body paragraphs from a canonical article URL.", + "description": "Returns a ProPublica article by canonical `url` (`propublica.org/article/`): title, authors, publication and update dates, the dek as `description`, lead image where available, section, a `paywalled` flag and the body `paragraphs`.", "operationId": "propublica-article", "parameters": [ { @@ -404739,7 +417774,7 @@ }, "/propublica/headlines": { "get": { - "description": "Returns fresh headlines from one public ProPublica topic feed.", + "description": "Returns the latest ProPublica stories for one topic. `section` is required and takes one of 33 topic slugs, such as `politics`, `health-care`, `immigration`, `courts`, `environment` or `trump-administration`. Each item has its title, URL, publication time and author.", "operationId": "propublica-headlines", "parameters": [ { @@ -404822,7 +417857,7 @@ }, "/propublica/news": { "get": { - "description": "Returns fresh ProPublica top stories from its public RSS feed.", + "description": "Returns the latest ProPublica top stories across topics. Takes no parameters. Each item has its title, URL, summary, publication time and image, plus the author byline, which can name more than one reporter.", "operationId": "propublica-news", "produces": [ "application/json" @@ -404860,7 +417895,7 @@ }, "/propublica/sections": { "get": { - "description": "Returns the complete public topic inventory accepted by /api/v1/propublica/headlines.", + "description": "Lists the 33 topics from ProPublica's Browse Topics menu that `propublica-headlines` accepts. Each entry has a stable `slug`, a display `name` and the topic's feed `url`. Takes no parameters.", "operationId": "propublica-sections", "produces": [ "application/json" @@ -405938,7 +418973,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from the PSA Team Store (https://store.psacard.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from the PSA Team Store (https://store.psacard.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "psastore-collections", "parameters": [ { @@ -406001,7 +419036,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one PSA Team Store (https://store.psacard.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one PSA Team Store (https://store.psacard.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "psastore-collection-products", "parameters": [ { @@ -406078,7 +419113,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from the PSA Team Store (https://store.psacard.com). The storefront URL is fixed server-side.", + "description": "Lists static pages from the PSA Team Store, 50 per page by default (`limit` up to 250, `page` starts at 1). Each page has its `handle`, `title`, `url`, plain-text `content` and timestamps. When `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`.", "operationId": "psastore-pages", "parameters": [ { @@ -406141,7 +419176,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one PSA Team Store (https://store.psacard.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one PSA Team Store static page by its `handle`: title, URL, plain-text `content` (HTML is stripped), and created, published and updated times. An unknown handle returns 404. When the store's standard page data is unavailable, `transport_mode` is `ssr_embedded` and `id` is omitted.", "operationId": "psastore-page", "parameters": [ { @@ -406204,7 +419239,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from the PSA Team Store's (https://store.psacard.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from the PSA Team Store's (https://store.psacard.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "psastore-products", "parameters": [ { @@ -406267,7 +419302,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one PSA Team Store (https://store.psacard.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one PSA Team Store (https://store.psacard.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "psastore-product", "parameters": [ { @@ -406330,7 +419365,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one PSA Team Store (https://store.psacard.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one PSA Team Store (https://store.psacard.com) product handle. The storefront URL is fixed server-side.", "operationId": "psastore-product-recommendations", "parameters": [ { @@ -406411,7 +419446,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from the PSA Team Store's (https://store.psacard.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from the PSA Team Store's (https://store.psacard.com) predictive search. The storefront URL is fixed server-side.", "operationId": "psastore-search-suggest", "parameters": [ { @@ -406601,7 +419636,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for the PSA Team Store (https://store.psacard.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for the PSA Team Store (https://store.psacard.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "psastore-store", "produces": [ "application/json" @@ -406645,7 +419680,7 @@ }, "/punch/article": { "get": { - "description": "Returns public Punch article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Punch article by canonical `url` (`https://punchng.com//`): title, description, publication and update times, section, authors, image and the body `paragraphs`. Punch articles are free to read, so `paywalled` is never set. Video-led stories may have only a short text summary.", "operationId": "punch-article", "parameters": [ { @@ -406699,7 +419734,7 @@ }, "/punch/author": { "get": { - "description": "Returns a Punch author's byline name and recent articles from a canonical author URL.", + "description": "Returns a Punch author's name and their most recent articles (the first archive page, about 30) from a canonical `url` (`https://punchng.com/author//`). `total_pages` is the number of archive pages. Punch author pages have no biography, photo or social links, so none are returned. An unknown author returns not-found.", "operationId": "punch-author", "parameters": [ { @@ -406753,7 +419788,7 @@ }, "/punch/headlines": { "get": { - "description": "Returns fresh headlines from one Punch topic page.", + "description": "Returns the current stories, about 30, from one Punch topic page. `section` is required and takes a topic slug such as `news`, `politics`, `business`, `sports`, `metro-plus` or `top-stories`; any other value is an invalid-parameter error. Each item has a title and article URL, plus summary, publication time and image URL when the page shows them.", "operationId": "punch-headlines", "parameters": [ { @@ -406839,7 +419874,7 @@ }, "/punch/news": { "get": { - "description": "Returns fresh Punch top stories from its public RSS feed.", + "description": "Returns the latest Punch stories from punchng.com: title, article URL, summary, author and publication time. Takes no parameters. Punch labels its times as UTC but publishes them in West Africa Time (UTC+1), and `published_at` is corrected for that one-hour skew.", "operationId": "punch-news", "produces": [ "application/json" @@ -406877,7 +419912,7 @@ }, "/punch/sections": { "get": { - "description": "Returns the live-verified Punch topic (section) inventory used by the headlines endpoint.", + "description": "Lists the Punch topic slugs that `punch-headlines` accepts, such as `news`, `politics`, `business` and `sports`. Each entry has a `slug`, a display `name` and the topic page `url`. The list covers top-level topics linked from Punch's navigation or active in the 90 days before 2026-09-25.", "operationId": "punch-sections", "produces": [ "application/json" @@ -406906,7 +419941,7 @@ "consumes": [ "application/json" ], - "description": "Returns Quince's full product facet taxonomy sourced from the same Algolia index quince-search uses: every business department (Women, Men, Kids & Baby, Home, CPG, Emerging), department, category, material, primary color, and size value Quince currently has products for, each with its own live product count. The returned business_departments[].value/categories[].value/materials[].value/colors[].value/sizes[].value values are exactly what quince-search accepts as its own department/category/material/color/size parameters. sizes spans every product type Quince sells (apparel letter sizes, shoe sizes, rug/furniture dimensions, bedding sizes, and more) since it is one index-wide facet.", + "description": "Returns Quince's full product facet taxonomy: every business department (Women, Men, Kids & Baby, Home, CPG, Emerging), department, category, material, primary color, and size value Quince currently has products for, each with its own live product count. The returned business_departments[].value/categories[].value/materials[].value/colors[].value/sizes[].value values are exactly what quince-search accepts as its own department/category/material/color/size parameters. sizes spans every product type Quince sells (apparel letter sizes, shoe sizes, rug/furniture dimensions, bedding sizes, and more) since it is one catalog-wide facet.", "operationId": "quince-categories", "produces": [ "application/json" @@ -406947,7 +419982,7 @@ "consumes": [ "application/json" ], - "description": "Returns Quince's full header navigation mega-menu: top-level tabs (Women, Men, Home, Baby & Kids, Travel, Bags & Accessories, Jewelry, Beauty & Wellness, Gifts, plus promotional tabs like New Arrivals/Best Sellers/$50 Cashmere), each broken into the same named subcategory groups (for example Apparel, Jewelry, Shoes) shown in Quince's own nav dropdown, with a directly browsable slug on every category and link. This is a distinct taxonomy from quince-categories' Algolia facets: navigation is Quince's own curated site structure, while quince-categories reports live per-value product counts for quince-search's own filter parameters.", + "description": "Returns Quince's full header navigation mega-menu: top-level tabs (Women, Men, Home, Baby & Kids, Travel, Bags & Accessories, Jewelry, Beauty & Wellness, Gifts, plus promotional tabs like New Arrivals/Best Sellers/$50 Cashmere), each broken into the same named subcategory groups (for example Apparel, Jewelry, Shoes) shown in Quince's own nav dropdown, with a directly browsable slug on every category and link. This is a distinct taxonomy from quince-categories' facets: navigation is Quince's own curated site structure, while quince-categories reports live per-value product counts for quince-search's own filter parameters.", "operationId": "quince-navigation", "produces": [ "application/json" @@ -406988,7 +420023,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product-detail data for one Quince product: title, description, review summary, every selectable option (color swatches with hex codes, sizes), and every color/size variant with its own price, original (\"traditional retail\") price, stock status, and SKU. handle is the product's URL path on quince.com (for example women/cashmere/cashmere-crewneck-sweater), returned by quince-search's own products[].handle field.", + "description": "Returns product-detail data for one Quince product: title, description, review summary, every selectable option (color swatches with hex codes, sizes), and every color/size variant with its own price, original (\"traditional retail\") price, stock status, and SKU. handle is the product's URL path on quince.com (for example women/cashmere/cashmere-crewneck-sweater), returned by quince-search's own products[].handle field.", "operationId": "quince-product", "parameters": [ { @@ -407114,7 +420149,7 @@ "consumes": [ "application/json" ], - "description": "Returns a sample of a Quince product's normalized customer reviews (author, date, rating, review body), plus the product's overall aggregate rating and review count. handle is the same value quince-product accepts. The reviews returned are the sample Quince's own page carries in its structured product data (confirmed live: 25 reviews on every product sampled during research), not a paginated feed of the full review history. A product with no reviews yet returns a well-formed empty result.", + "description": "Returns a sample of a Quince product's customer reviews (author, date, rating, review body), plus the product's overall aggregate rating and review count. handle is the same value quince-product accepts. The reviews returned are a sample (25 reviews on every product sampled), not a paginated feed of the full review history. A product with no reviews yet returns a well-formed empty result.", "operationId": "quince-product-reviews", "parameters": [ { @@ -407177,7 +420212,7 @@ "consumes": [ "application/json" ], - "description": "Searches or browses Quince's (quince.com) product catalog through its own public Algolia search index. q, department, category, material, color, size, min_price, and max_price are all optional and combine as an AND -- unlike some other families' search/category-browse split, a free-text q can be combined with any of the facet filters in the same request, or every field can be omitted to browse the full catalog by Quince's own relevance/popularity ranking. department accepts one of the values quince-categories' own business_departments[].value field returns (for example Women, Men, Kids & Baby, Home, CPG, Emerging); category, material, color, and size similarly accept values from quince-categories' own categories[].value/materials[].value/colors[].value/sizes[].value fields (or quince-navigation's own browsable category/subcategory slugs for a curated, hierarchical alternative to the flat category facet). Keyword search is Algolia's own typo-tolerant relevance ranking, not a guaranteed exact match. A query with genuinely zero matches (for example a nonsense string) returns a well-formed empty result rather than an error.", + "description": "Searches or browses Quince's (quince.com) product catalog. q, department, category, material, color, size, min_price, and max_price are all optional and combine as an AND -- unlike some other families' search/category-browse split, a free-text q can be combined with any of the facet filters in the same request, or every field can be omitted to browse the full catalog by Quince's own relevance/popularity ranking. department accepts one of the values quince-categories' own business_departments[].value field returns (for example Women, Men, Kids & Baby, Home, CPG, Emerging); category, material, color, and size similarly accept values from quince-categories' own categories[].value/materials[].value/colors[].value/sizes[].value fields (or quince-navigation's own browsable category/subcategory slugs for a curated, hierarchical alternative to the flat category facet). Keyword search uses typo-tolerant relevance ranking, not a guaranteed exact match. A query with genuinely zero matches (for example a nonsense string) returns a well-formed empty result rather than an error.", "operationId": "quince-search", "parameters": [ { @@ -407968,7 +421003,7 @@ }, "/rappler/author": { "get": { - "description": "Returns one Rappler author's public profile: name, bio, public social links, and their most recent articles.", + "description": "Returns a Rappler author's profile, looked up by `slug` (for example `delfin-dioquino`) or by canonical `url`; exactly one is required. The response has the name, `bio`, `social_links` and the 10 most recent articles, each with title, URL, section and publication time. There is no further paging. `bio` and `social_links` are omitted when empty; an unknown author returns not-found.", "operationId": "rappler-author", "parameters": [ { @@ -408028,7 +421063,7 @@ }, "/rappler/headlines": { "get": { - "description": "Returns fresh headlines from one public Rappler section feed.", + "description": "Returns the latest Rappler stories for one section. `section` is required and takes one of the site's category slugs, such as `business`, `nation`, `entertainment`, `fact-check`, `investigative` or `climate-change`. Each item has its title, URL, summary, publication time and author, plus an image when the outlet provides one.", "operationId": "rappler-headlines", "parameters": [ { @@ -408253,7 +421288,7 @@ }, "/rappler/news": { "get": { - "description": "Returns fresh Rappler stories from the public site-wide RSS feed.", + "description": "Returns the newest Rappler stories across all sections. Takes no parameters. Each item has its title, canonical article URL, a short summary, publication time, author byline and lead image.", "operationId": "rappler-news", "produces": [ "application/json" @@ -408285,7 +421320,7 @@ }, "/rappler/sections": { "get": { - "description": "Returns the public Rappler editorial section inventory: every category the site publishes with a live feed.", + "description": "Lists the 175 Rappler categories that have a live feed and are accepted by `rappler-headlines`, such as `news-updates`, `business`, `nation`, `fact-check` and `climate-change`. Each entry has a `slug`, a display `name` and the category `url`.", "operationId": "rappler-sections", "produces": [ "application/json" @@ -408311,7 +421346,7 @@ }, "/rawstory/article": { "get": { - "description": "Returns public Raw Story article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Raw Story article by canonical `url` on `rawstory.com`, for example `https://www.rawstory.com/trump-media-ban-2677933730/`: title, description, publication and update times, section, authors, image and body `paragraphs` (embedded videos excluded). `section` is omitted for slug-only URLs. Hub, tag and author URLs return an invalid-params error; a missing story returns not-found.", "operationId": "rawstory-article", "parameters": [ { @@ -408365,7 +421400,7 @@ }, "/rawstory/author": { "get": { - "description": "Returns one Raw Story author's public profile: name, bio, avatar, public social links, and their 15 most recent stories.", + "description": "Returns a Raw Story author's profile, looked up by `slug` (for example `bennitokelty`) or canonical `url`; exactly one is required. The response has the name, `bio`, avatar, social links and the 15 most recent stories, each with title, URL and a `YYYY-MM-DD` date. Older stories are not reachable, and an unknown author returns not-found.", "operationId": "rawstory-author", "parameters": [ { @@ -408425,7 +421460,7 @@ }, "/rawstory/headlines": { "get": { - "description": "Returns fresh headlines from one public Raw Story section feed.", + "description": "Returns the latest Raw Story stories, up to 30, for one section hub. `section` is required and takes one of 15 slugs such as `us-news`, `trump-news`, `world`, `commentary` or `supreme-court`. Each item has its title, URL, lead-paragraph summary, publication time, author and image when given. The dormant `presidential-campaign-issues` hub returns 9 stories.", "operationId": "rawstory-headlines", "parameters": [ { @@ -408490,7 +421525,7 @@ }, "/rawstory/news": { "get": { - "description": "Returns fresh Raw Story stories from the public site-wide RSS feed.", + "description": "Returns the 30 newest Raw Story stories across all sections. Takes no parameters. Each item has its title, story URL, a lead-paragraph summary capped at 500 characters, publication time, author byline and lead image.", "operationId": "rawstory-news", "produces": [ "application/json" @@ -408522,7 +421557,7 @@ }, "/rawstory/sections": { "get": { - "description": "Returns the public Raw Story section and topic hub inventory: every hub the site publishes with a live feed.", + "description": "Lists the 15 section and topic hubs that `rawstory-headlines` accepts. Each entry has a `slug`, a display `name` such as `U.S. News` or `Raw Exclusives`, and the hub page `url`. Hubs overlap: `us-news`, `trump-news` and `smartnews` share most recent stories, and `presidential-campaign-issues` is dormant.", "operationId": "rawstory-sections", "produces": [ "application/json" @@ -408575,7 +421610,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Rebag (https://shop.rebag.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Rebag (https://shop.rebag.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "rebag-collections", "parameters": [ { @@ -408638,7 +421673,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Rebag (https://shop.rebag.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Rebag (https://shop.rebag.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "rebag-collection-products", "parameters": [ { @@ -408715,7 +421750,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Rebag (https://shop.rebag.com). The storefront URL is fixed server-side.", + "description": "Lists the static pages on Rebag's storefront, paged with `page` (from 1) and `limit` (default 50, max 250). Each entry has `handle`, `title`, `url`, plain-text `content` and its dates. An empty page of results returns an empty `pages` array. In `ssr_embedded` mode only `handle`, `url` and `updated_at` are filled.", "operationId": "rebag-pages", "parameters": [ { @@ -408778,7 +421813,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Rebag (https://shop.rebag.com) page handle. The storefront URL is fixed server-side.", + "description": "Looks up a single Rebag static page by `handle`, for example `welcome-trendlee`. The response has the page's id, title, URL, publication and update times, and its `content` as plain text. Unknown handles return 404. If `transport_mode` is `ssr_embedded`, `id` is left out.", "operationId": "rebag-page", "parameters": [ { @@ -408841,7 +421876,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Rebag's (https://shop.rebag.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Rebag's (https://shop.rebag.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "rebag-products", "parameters": [ { @@ -408904,7 +421939,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Rebag (https://shop.rebag.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Rebag (https://shop.rebag.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "rebag-product", "parameters": [ { @@ -408967,7 +422002,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Rebag (https://shop.rebag.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Rebag (https://shop.rebag.com) product handle. The storefront URL is fixed server-side.", "operationId": "rebag-product-recommendations", "parameters": [ { @@ -409048,7 +422083,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized, ranked products from Rebag's (https://shop.rebag.com) own full-text product search (Shopify's Storefront API), including a best-effort condition grade and colour derived from the product's own catalog tags -- attributes not available from the classic catalog JSON endpoints in this family. The storefront URL is fixed server-side.", + "description": "Returns ranked products from Rebag's (https://shop.rebag.com) own full-text product search, including a best-effort condition grade and colour derived from the product's own catalog tags -- attributes not available from the other catalog endpoints in this family. The storefront URL is fixed server-side.", "operationId": "rebag-search", "parameters": [ { @@ -409131,7 +422166,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Rebag's (https://shop.rebag.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Rebag's (https://shop.rebag.com) predictive search. The storefront URL is fixed server-side.", "operationId": "rebag-search-suggest", "parameters": [ { @@ -409202,7 +422237,7 @@ "consumes": [ "application/json" ], - "description": "Returns capped URL entries from Rebag's (https://shop.rebag.com) child sitemaps matching the requested type. The storefront URL is fixed server-side.", + "description": "Lists URL entries from Rebag's sitemaps, filtered by `type` (`all`, `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`; default `all`). Collection stops at `limit` entries (default 50, max 250). Each entry has `loc`, `type`, `handle`, `lastmod`, `changefreq` and, where present, `images` with caption, title and URL.", "operationId": "rebag-sitemap-urls", "parameters": [ { @@ -409274,7 +422309,7 @@ "consumes": [ "application/json" ], - "description": "Returns child sitemap URLs from Rebag's (https://shop.rebag.com) `/sitemap.xml` index with inferred sitemap types. The storefront URL is fixed server-side.", + "description": "Lists the child sitemaps in Rebag's sitemap index. Each entry has its `loc` and a `type` of `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`, worked out from the sitemap URL. The endpoint takes no parameters.", "operationId": "rebag-sitemaps", "produces": [ "application/json" @@ -409321,7 +422356,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Rebag (https://shop.rebag.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Rebag (https://shop.rebag.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "rebag-store", "produces": [ "application/json" @@ -409368,7 +422403,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Reddit post with its public comments. The default 1-credit mode uses RSS. Set `include_metrics=true` to use the anonymous HTML post page as the sole content request and return the server-rendered comments with public net score and award count plus post engagement metrics for 3 credits. Large threads may expose only an initial comment subset in anonymous HTML. Reddit does not expose per-comment upvote ratios or exact upvote/downvote totals anonymously. 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. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Returns a Reddit post with its public comments. The default mode is 1 credit. Set `include_metrics=true` to return the comments with public net score and award count plus post engagement metrics for 3 credits. Large threads may expose only an initial comment subset. Reddit does not expose per-comment upvote ratios or exact upvote/downvote totals anonymously. 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. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-comments", "parameters": [ { @@ -409466,7 +422501,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public posts submitted from a linked domain. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Returns public posts submitted from a linked domain. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-domain-posts", "parameters": [ { @@ -409568,7 +422603,7 @@ "consumes": [ "application/json" ], - "description": "Scans a Reddit search page for people actively asking for a product or service, scores each post 0-10 for buying intent, and returns them ranked highest-first with the signals that fired. Self-promotion, hiring posts, freelancer service adverts, revenue-milestone posts, duplicate reposts, and Title Case article headlines are filtered out before scoring. A deterministic prefilter always runs; when `classifier` resolves to `llm` the surviving candidates are additionally refined in one batched model call. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. Native Reddit search failures can use the internal Redlib provider while the existing lead-response fields and credit weights are preserved.", + "description": "Scans a Reddit search page for people actively asking for a product or service, scores each post 0-10 for buying intent, and returns them ranked highest-first with the signals that fired. Self-promotion, hiring posts, freelancer service adverts, revenue-milestone posts, duplicate reposts, and Title Case article headlines are filtered out before scoring. A deterministic prefilter always runs; when `classifier` resolves to `llm` the surviving candidates are additionally refined in one batched model call. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. The lead-response fields and credit weights are preserved regardless of the underlying Reddit data source.", "operationId": "reddit-leads", "parameters": [ { @@ -409690,7 +422725,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized public Reddit post. The default 1-credit mode uses RSS. Set `include_metrics=true` to use the anonymous HTML post page as the sole content request and return public net score, upvote ratio, comment count, award count, and estimated upvote/downvote totals for 3 credits. Reddit fuzzes voting data, so estimates are approximate; share, repost/crosspost, and view counts are not exposed anonymously. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Returns a public Reddit post. The default mode is 1 credit. Set `include_metrics=true` to return public net score, upvote ratio, comment count, award count, and estimated upvote/downvote totals for 3 credits. Reddit fuzzes voting data, so estimates are approximate; share, repost/crosspost, and view counts are not exposed anonymously. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-post", "parameters": [ { @@ -409760,7 +422795,7 @@ "consumes": [ "application/json" ], - "description": "Searches public Reddit content and returns normalized public post entries. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Searches public Reddit content and returns public post entries. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-search", "parameters": [ { @@ -409869,7 +422904,7 @@ "consumes": [ "application/json" ], - "description": "Returns public metadata and sample posts for a subreddit. Subscriber counts, icons, and banners are omitted because they are not available on anonymous Reddit pages. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Returns public metadata and sample posts for a subreddit. Subscriber counts, icons, and banners are omitted because they are not available on anonymous Reddit pages. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-subreddit-about", "parameters": [ { @@ -409938,7 +422973,7 @@ "consumes": [ "application/json" ], - "description": "Returns flat public comment entries from a subreddit latest-comments feed. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Returns flat public comment entries from a subreddit latest-comments feed. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-subreddit-comments", "parameters": [ { @@ -410013,7 +423048,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public posts from a subreddit. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Returns public posts from a subreddit. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-subreddit-posts", "parameters": [ { @@ -410115,7 +423150,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public posts from a combined multi-subreddit feed. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Returns public posts from a combined multi-subreddit feed. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-subreddits-posts", "parameters": [ { @@ -410217,7 +423252,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public posts from broad Reddit hot, new, rising, or top feeds. For subreddit-specific trends, use `/reddit/subreddit/{subreddit}/posts` with `sort=hot`, `sort=new`, `sort=rising`, or `sort=top`. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Returns public posts from broad Reddit hot, new, rising, or top feeds. For subreddit-specific trends, use `/reddit/subreddit/{subreddit}/posts` with `sort=hot`, `sort=new`, `sort=rising`, or `sort=top`. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-trends", "parameters": [ { @@ -410311,7 +423346,7 @@ "consumes": [ "application/json" ], - "description": "Returns flat public comment entries from a public Reddit user's comments feed. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Returns flat public comment entries from a public Reddit user's comments feed. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-user-comments", "parameters": [ { @@ -410386,7 +423421,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public posts from a public Reddit user's submitted feed. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. Native-source failures can use the internal Redlib fallback; source.type is redlib and public fields/credit weights are preserved.", + "description": "Returns public posts from a public Reddit user's submitted feed. A `503` with a `Retry-After` header means Reddit is temporarily throttling the request; wait that many seconds and retry. If source.type is redlib, public fields and credit weights are preserved.", "operationId": "reddit-user-posts", "parameters": [ { @@ -410518,7 +423553,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Redfin public property details. Provide a listing url, or a property_id (optionally with listing_id) to use Redfin's public stingray detail API.", + "description": "Returns Redfin public property details. Provide a listing url, or a property_id (optionally with listing_id).", "operationId": "redfin-property", "parameters": [ { @@ -410660,7 +423695,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Redfin public listing search results from Redfin's credential-free region CSV endpoint. Pass region_id/region_type from autocomplete to skip location resolution.", + "description": "Returns Redfin public listing search results. Pass region_id/region_type from autocomplete to skip location resolution.", "operationId": "redfin-search", "parameters": [ { @@ -410773,7 +423808,7 @@ "consumes": [ "application/json" ], - "description": "Returns Redfin's comparable (\"similar\") listings for a property as normalized listing rows. Faithful pass-through of Redfin's public similars resource.", + "description": "Returns the comparable listings Redfin shows for a property, identified by the required `property_id`. Each row has the address, city, state, zip, price, beds, baths, `sqft`, `price_per_sqft`, days on market, MLS number, `hoa_monthly`, lot size, year built, status, image and URL, plus coordinates when present.", "operationId": "redfin-similar", "parameters": [ { @@ -410830,7 +423865,7 @@ "consumes": [ "application/json" ], - "description": "Records sanitized referral click metadata for attribution analytics.", + "description": "Records a click on a referral link. The body requires the referral `code`; `click_id`, `landing_path` and `utm_source`, `utm_medium` and `utm_campaign` are optional. Returns the `click_id` to keep in the referral click cookie. An invalid code returns the standard invalid-params error.", "operationId": "referrals-click", "parameters": [ { @@ -410877,7 +423912,7 @@ "consumes": [ "application/json" ], - "description": "Returns the authenticated user's referral code, share path, reward settings, aggregate stats, and recent referral records.", + "description": "Returns the signed-in user's referral summary: referral `code`, `share_path`, `reward_credits` and `referred_reward_credits`, `attribution_window_days` (30 by default), `monthly_referrer_reward_cap`, counts by status in `stats`, and recent `items` with the user's `role`. Creates the code on first use.", "operationId": "referrals-me", "produces": [ "application/json" @@ -410918,7 +423953,7 @@ "consumes": [ "application/json" ], - "description": "Returns recent referral attribution records where the authenticated user is either the referrer or referred account.", + "description": "Lists the signed-in user's recent referral records, newest first, whether they were the referrer or the referred account. `limit` caps the count at 100. Each item has its code, campaign, `role`, `status` (including `clawed_back`), `reward_credits` and created, qualified, rewarded and expiry times.", "operationId": "referrals-me-events", "parameters": [ { @@ -411022,7 +424057,7 @@ }, "/research/jobs/{job_id}": { "get": { - "description": "Returns the authenticated owner's research job state, progress, and cumulative usage.", + "description": "Returns the state of a research job by `job_id`: queued, running, cancelling, succeeded, failed or cancelled. The response carries `progress` counts, `research` progress (round, searches completed, sources read, questions answered), usage, warnings, `partial`, `deadline_at` and any error. A job not started within 30 minutes fails with `timeout`.", "operationId": "research-status", "parameters": [ { @@ -411070,7 +424105,7 @@ }, "/research/jobs/{job_id}/cancel": { "post": { - "description": "Requests cancellation of the authenticated owner's research job. The existing job kind is checked before the state is changed.", + "description": "Requests cancellation of the caller's own research job, given by `job_id`. Returns the job's current state (such as `cancelling`), `cancel_requested`, `partial`, progress counts, research progress and usage. Results already retained stay readable and are marked partial where appropriate.", "operationId": "research-cancel", "parameters": [ { @@ -411118,7 +424153,7 @@ }, "/research/jobs/{job_id}/events": { "get": { - "description": "Reads a signed owner-bound page of research job events. `limit` defaults to 50 and accepts 1 through 100.", + "description": "Reads a page of events for one of the caller's research jobs, by `job_id`. `limit` is 1 to 100 (default 50); pass `next_cursor` back as `cursor` to continue, with `has_more` showing whether more remain. Each event has `sequence`, `type` (such as `source_fetched` or `round_completed`), `timestamp`, `message` and `source_id`.", "operationId": "research-events", "parameters": [ { @@ -411234,7 +424269,7 @@ }, "/research/papers/metadata": { "get": { - "description": "Return normalized paper records including titles, abstracts when available, authors, publication dates and verified identifier aliases. Europe PMC resolution is limited to MED-backed PMID, PMCID and DOI records; no full-text body is fetched.", + "description": "Return paper records including titles, abstracts when available, authors, publication dates and verified identifier aliases. Europe PMC resolution is limited to MED-backed PMID, PMCID and DOI records; no full-text body is fetched.", "operationId": "research-inspect-paper", "parameters": [ { @@ -411519,7 +424554,7 @@ }, "/research/papers/search": { "get": { - "description": "Search arXiv papers with an owner-bound frozen result window and cursor-only continuation.", + "description": "Search arXiv papers with an owner-bound frozen result window and cursor-only continuation. When arXiv is rate limited or unavailable, an undated search is answered from OpenAlex's index of arXiv papers and the response says so in coverage and warnings.", "operationId": "research-search-papers", "parameters": [ { @@ -411848,7 +424883,7 @@ "consumes": [ "application/json" ], - "description": "Returns a ticketed dining event's full description, event-day instructions, and per-ticket-tier package breakdown (price, what's included, live ticket availability). All three identifiers come from a prior resy-events result: event_url_slug is that result's url_slug, restaurant_url_slug is its restaurant_url_slug, and location is the same city identifier resy-events was called with. Credential-free, read-only discovery -- does not purchase a ticket.", + "description": "Returns a ticketed dining event's full description, event-day instructions, and per-ticket-tier package breakdown (price, what's included, live ticket availability). All three identifiers come from a prior resy-events result: event_url_slug is that result's url_slug, restaurant_url_slug is its restaurant_url_slug, and location is the same city identifier resy-events was called with. Read-only discovery -- does not purchase a ticket.", "operationId": "resy-event-detail", "parameters": [ { @@ -411934,7 +424969,7 @@ "consumes": [ "application/json" ], - "description": "Returns ticketed dining events (fixed-price, fixed-capacity experiences a restaurant hosts and sells tickets for, distinct from a regular reservation) in a Resy location. Credential-free, read-only discovery -- does not create, hold, or purchase a ticket.", + "description": "Returns ticketed dining events (fixed-price, fixed-capacity experiences a restaurant hosts and sells tickets for, distinct from a regular reservation) in a Resy location. Read-only discovery -- does not create, hold, or purchase a ticket.", "operationId": "resy-events", "parameters": [ { @@ -412012,7 +425047,7 @@ "consumes": [ "application/json" ], - "description": "Returns Resy's full list of operating locations (cities), optionally filtered by a free-text substring and/or country. This is the discovery source for the location value used throughout the rest of this family (resy-search's/resy-restaurant's location_code, resy-cuisines'/resy-events'/resy-event-detail's location). Credential-free.", + "description": "Returns Resy's full list of operating locations (cities), optionally filtered by a free-text substring and/or country. This is the discovery source for the location value used throughout the rest of this family (resy-search's/resy-restaurant's location_code, resy-cuisines'/resy-events'/resy-event-detail's location).", "operationId": "resy-locations", "parameters": [ { @@ -412069,7 +425104,7 @@ "consumes": [ "application/json" ], - "description": "Returns a restaurant's profile: name, cuisine, price tier, rating/review count, address/neighborhood, contact info, and description text. Credential-free.", + "description": "Returns a Resy restaurant's profile by the required `restaurant_id`: name, cuisine, `price_range` (1 to 4), rating, review count, address, neighborhood, coordinates, phone, website, menu URL, party size limits, description, `why_we_like_it`, `need_to_know` and images. `location_code` is a short city identifier.", "operationId": "resy-restaurant", "parameters": [ { @@ -412132,7 +425167,7 @@ "consumes": [ "application/json" ], - "description": "Searches restaurants by free-text term (name, cuisine, or neighborhood) near a latitude/longitude, optionally including live bookable-timeslot availability for a given date and party size. Credential-free.", + "description": "Searches restaurants by free-text term (name, cuisine, or neighborhood) near a latitude/longitude, optionally including live bookable-timeslot availability for a given date and party size.", "operationId": "resy-search", "parameters": [ { @@ -412570,7 +425605,7 @@ "consumes": [ "application/json" ], - "description": "Returns the cash-back offers on RetailMeNot's cash-back hub (featured, top, and all cash-back offers) with each store's cash-back rate.", + "description": "Lists the offers on RetailMeNot's cash-back page, grouped into sections such as Today's Featured Cash Back, Top Cash Back and All Cash Back Offers. Each offer has its position, store name, domain and RetailMeNot URL, the cash-back rate in `discount`, and a title. It takes no parameters.", "operationId": "retailmenot-cashback", "produces": [ "application/json" @@ -412611,7 +425646,7 @@ "consumes": [ "application/json" ], - "description": "Returns RetailMeNot's full three-level coupon category tree (parent, child, and grandchild categories) with slugs for /retailmenot/category.", + "description": "Lists RetailMeNot's coupon category tree as a flat list with no parameters. Each entry has `name`, `slug`, `url` and `level` (1 parent, 2 child, 3 grandchild); levels 2 and 3 also carry `parent_slug`. The `slug` is what RetailMeNot's category endpoint takes.", "operationId": "retailmenot-categories", "produces": [ "application/json" @@ -412785,7 +425820,7 @@ "consumes": [ "application/json" ], - "description": "Returns RetailMeNot's seasonal and holiday deal events (for example Black Friday, Cyber Monday, Back-to-School) with slugs for /retailmenot/deal-event.", + "description": "Lists the seasonal and holiday deal events linked from RetailMeNot's deals hub, such as Black Friday or Back-to-School, each with `name`, `slug` and `url`. The `slug` feeds the deal-event endpoint. Out-of-season events may list fewer offers. It takes no parameters.", "operationId": "retailmenot-deal-events", "produces": [ "application/json" @@ -413155,7 +426190,7 @@ }, "/reuters/author": { "get": { - "description": "Returns a Reuters author's byline metadata, contact/social links, and recent articles from a canonical author URL.", + "description": "Returns a Reuters author's profile by canonical `url` (`https://www.reuters.com/authors//`): name, company, editorial email, social accounts, profile image, `total_articles` and the first 20 recent articles, each with title, URL, summary, publication time and an image when the story card has one. Accounts the page does not list are absent.", "operationId": "reuters-author", "parameters": [ { @@ -413358,7 +426393,7 @@ }, "/reuters/sections": { "get": { - "description": "Lists every top-level Reuters section accepted by /reuters/section, with its slug, display name, and landing-page URL.", + "description": "Lists the top-level Reuters sections accepted by the `section` parameter of `/reuters/section`, returned under `items`. Each entry has a `slug`, a display `name` and the landing-page `url`. Takes no parameters.", "operationId": "reuters-sections", "produces": [ "application/json" @@ -413400,6 +426435,594 @@ ] } }, + "/reverb/categories": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Reverb's full category/product-type taxonomy -- the value space reverb-search's own category/product_type parameters accept. product_types is a fixed, exhaustive 14-value closed set; categories is the full, exhaustive leaf-category value space as of the request (306 values as of 2026-10-15). A leaf category's slug is NOT always globally unique across product types -- always pass a category's own product_type field alongside its slug to reverb-search, not category alone, when disambiguation matters.", + "operationId": "reverb-categories", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/reverb.categoriesResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List Reverb's category/product-type taxonomy", + "tags": [ + "Reverb" + ] + } + }, + "/reverb/listing": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns full listing-detail data for one Reverb listing: description, every photo, shipping/payment/return policies, and the seller's shop reputation -- richer than the flattened summary reverb-search returns per listing. id is the listing's numeric id, from a search result's own listings[].id field.", + "operationId": "reverb-listing", + "parameters": [ + { + "description": "Listing id, from a search result's own listings[].id field", + "in": "query", + "name": "id", + "required": true, + "type": "integer", + "x-example": 36356670 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/reverb.listingResponseDoc" + } + }, + "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 a Reverb listing", + "tags": [ + "Reverb" + ] + } + }, + "/reverb/makes": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns Reverb's full manufacturer/make list -- the value space reverb-search's own make parameter accepts (2,795 values as of 2026-10-15). Does not include a model list -- Reverb's own /api/listings silently ignores a model filter value, so reverb-search has no Model parameter and a model list would have no corresponding filter to use it with.", + "operationId": "reverb-makes", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/reverb.makesResponseDoc" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Service Unavailable", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "List Reverb's manufacturer/make list", + "tags": [ + "Reverb" + ] + } + }, + "/reverb/price-guide": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns one gear model's Reverb Price Guide detail: its specific finish/year variants, monthly average sale-price history, and a page of individual recent sales. slug is the model's slug, from reverb-price-guide-search's own models[].slug field. canonical_product_id optionally scopes to one specific variant from this model's own canonical_products[].id field (from a prior call without it); omitting it aggregates price history and recent sales across every variant, a broader, more heavily-sampled view. condition optionally scopes by Reverb's own Price Guide condition scale (listed below) -- a separate, 6-value enum from reverb-search's own listing condition field. range selects how far back the price history/recent-sales window looks. An unknown slug returns a typed not-found error.", + "operationId": "reverb-price-guide", + "parameters": [ + { + "description": "Model slug, from reverb-price-guide-search's own models[].slug field", + "in": "query", + "name": "slug", + "required": true, + "type": "string", + "x-example": "fender-american-professional-ii-stratocaster" + }, + { + "description": "Specific finish/year variant id, from this model's own canonical_products[].id field", + "in": "query", + "name": "canonical_product_id", + "type": "string", + "x-example": "320883" + }, + { + "description": "Price Guide condition filter", + "enum": [ + "mint", + "excellent", + "very-good", + "good", + "fair", + "poor" + ], + "in": "query", + "name": "condition", + "type": "string", + "x-example": "excellent" + }, + { + "description": "Date-range window, defaults to years_1", + "enum": [ + "months_6", + "years_1", + "years_2" + ], + "in": "query", + "name": "range", + "type": "string", + "x-example": "years_1" + }, + { + "description": "Recent sales to return, defaults to 24, maximum 100", + "in": "query", + "name": "limit", + "type": "integer", + "x-example": 24 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/reverb.priceGuideResponseDoc" + } + }, + "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 a gear model's Reverb Price Guide detail", + "tags": [ + "Reverb" + ] + } + }, + "/reverb/price-guide-search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Searches Reverb's Price Guide (reverb.com/price-guide) for gear models by free-text brand/model query (e.g. \"fender stratocaster\"). Each result's slug is the value reverb-price-guide's own slug parameter accepts. query is full-text relevance search, not an exact match -- unlike reverb-search's own query, a nonsensical query is not guaranteed to return an empty result; the upstream can fall back to loosely related or generically popular models instead, so a low result count should be treated cautiously rather than read as \"no real matches.\"", + "operationId": "reverb-price-guide-search", + "parameters": [ + { + "description": "Free-text brand/model search query", + "in": "query", + "name": "query", + "required": true, + "type": "string", + "x-example": "fender stratocaster" + }, + { + "description": "Results to return, defaults to 24, maximum 100", + "in": "query", + "name": "limit", + "type": "integer", + "x-example": 24 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/reverb.priceGuideSearchResponseDoc" + } + }, + "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 Reverb's Price Guide model catalog", + "tags": [ + "Reverb" + ] + } + }, + "/reverb/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Searches or browses Reverb's (reverb.com) marketplace for new and used musical instruments and gear. query, category, product_type, make, min_price, and max_price are all optional and combine as an AND -- a free-text query can be combined with category/product_type/make/price filters in the same request, or every field can be omitted to browse the full active catalog. category accepts a leaf slug from reverb-categories' own categories[].slug field; product_type is a fixed, closed 14-value enum (listed below) that should be passed together with category from the SAME reverb-categories entry, since a category slug alone is not always globally unique (e.g. \"cables\" exists under both Accessories and Home Audio). An unrecognized category value is silently ignored by the upstream (returns the unfiltered catalog, not zero results or an error) -- a known upstream quirk. make accepts a manufacturer name from reverb-makes' own makes[] field and is a confirmed, real filter. A query with genuinely zero matches returns a well-formed empty result rather than an error.", + "operationId": "reverb-search", + "parameters": [ + { + "description": "Free-text search query", + "in": "query", + "name": "query", + "type": "string", + "x-example": "fender stratocaster" + }, + { + "description": "Category facet filter, from reverb-categories' own categories[].slug field -- pass together with product_type from the same entry", + "in": "query", + "name": "category", + "type": "string", + "x-example": "amp-covers" + }, + { + "description": "Product-type filter", + "enum": [ + "accessories", + "acoustic-guitars", + "amps", + "band-and-orchestra", + "bass-guitars", + "dj-and-lighting-gear", + "drums-and-percussion", + "effects-and-pedals", + "electric-guitars", + "folk-instruments", + "home-audio", + "keyboards-and-synths", + "parts", + "pro-audio" + ], + "in": "query", + "name": "product_type", + "type": "string", + "x-example": "accessories" + }, + { + "description": "Manufacturer name filter, from reverb-makes' own makes[] field", + "in": "query", + "name": "make", + "type": "string", + "x-example": "Fender" + }, + { + "description": "Minimum price (inclusive), in USD", + "in": "query", + "name": "min_price", + "type": "number", + "x-example": 50 + }, + { + "description": "Maximum price (inclusive), in USD", + "in": "query", + "name": "max_price", + "type": "number", + "x-example": 500 + }, + { + "description": "One-based page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer", + "x-example": 1 + }, + { + "description": "Results per page, defaults to 24, maximum 50 (the upstream's own silent cap)", + "in": "query", + "name": "limit", + "type": "integer", + "x-example": 24 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/reverb.searchResponseDoc" + } + }, + "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 or browse Reverb musical-instrument listings", + "tags": [ + "Reverb" + ] + } + }, + "/reverb/shop": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns a Reverb shop's public profile plus a page of its current active listings (Reverb's own \"shop\" view of a seller). slug is the shop's slug, from a listing's own shop link or reverb.com/shop/{slug}. query is an optional free-text filter scoping the listings sub-page to a keyword within that shop. An unknown slug returns a typed not-found error.", + "operationId": "reverb-shop", + "parameters": [ + { + "description": "Shop slug", + "in": "query", + "name": "slug", + "required": true, + "type": "string", + "x-example": "mtsmusic" + }, + { + "description": "Free-text filter scoping the shop's own listings sub-page", + "in": "query", + "name": "query", + "type": "string", + "x-example": "pickup" + }, + { + "description": "One-based page number for the shop's listings, defaults to 1", + "in": "query", + "name": "page", + "type": "integer", + "x-example": 1 + }, + { + "description": "Listings per page, defaults to 24, maximum 50", + "in": "query", + "name": "limit", + "type": "integer", + "x-example": 24 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/reverb.shopResponseDoc" + } + }, + "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 a Reverb shop's profile and active listings", + "tags": [ + "Reverb" + ] + } + }, + "/reverb/shop-feedback": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns a page of a Reverb shop's individual buyer feedback entries (rating, message, and the order each review was left for) -- reputation detail reverb-shop does not carry (reverb-shop only exposes the aggregate feedback_count/rating_percentage). slug is the shop's slug, from a listing's own shop link or reverb.com/shop/{slug}. An unknown slug returns a typed not-found error.", + "operationId": "reverb-shop-feedback", + "parameters": [ + { + "description": "Shop slug", + "in": "query", + "name": "slug", + "required": true, + "type": "string", + "x-example": "mtsmusic" + }, + { + "description": "One-based page number, defaults to 1", + "in": "query", + "name": "page", + "type": "integer", + "x-example": 1 + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/reverb.shopFeedbackResponseDoc" + } + }, + "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 a Reverb shop's buyer feedback", + "tags": [ + "Reverb" + ] + } + }, "/rightmove/agents": { "get": { "consumes": [ @@ -413549,7 +427172,7 @@ "consumes": [ "application/json" ], - "description": "Returns location suggestions from Rightmove's autocomplete API for a given query", + "description": "Returns Rightmove location suggestions for the required `query` (up to 200 characters). `limit` defaults to 10 and is capped at 20. Each result has an `id` such as `REGION^87490`, a `name`, a `full_name` when Rightmove gives one, and an `entity_type` such as `REGION` or `POSTCODE`. Use the `id` as `location` in Rightmove search.", "operationId": "rightmove-autocomplete", "parameters": [ { @@ -413911,7 +427534,7 @@ "consumes": [ "application/json" ], - "description": "Returns detailed information for a specific Rightmove property by ID", + "description": "Returns one Rightmove listing by `id`: title, address, price and `price_text`, bedrooms, bathrooms, receptions, property type, status, description, features, floor plan, EPC rating, council tax band, tenure, agent reviews and nearby schools with Ofsted ratings. Removed or invalid ids return 404.", "operationId": "rightmove-property", "parameters": [ { @@ -413986,7 +427609,7 @@ "consumes": [ "application/json" ], - "description": "Search for properties on Rightmove with filters for location, price, bedrooms, etc.", + "description": "Searches Rightmove listings for a required `location` id, for sale (default) or `to_let`, 1-indexed by `page`. Filter by price, bedrooms, bathrooms, `property_type`, `radius`, `must_have`, `dont_show` and `tenure_types`; `sort` defaults to `newest_listed`. Returns `total` and results with price, address, beds, baths, size and tenure.", "operationId": "rightmove-search", "parameters": [ { @@ -414413,7 +428036,7 @@ }, "/rnz/headlines": { "get": { - "description": "Returns fresh headlines from one public RNZ section feed.", + "description": "Returns the latest RNZ (Radio New Zealand) stories for one section. `section` is required and takes one of 19 slugs such as `news`, `national`, `political`, `business`, `pacific`, `te-manu-korihi` or `weather`; others return a 400. Each item has its title, URL, summary and publication time. Smaller sections can carry items from earlier weeks, so check `published_at`.", "operationId": "rnz-headlines", "parameters": [ { @@ -414482,7 +428105,7 @@ }, "/rnz/news": { "get": { - "description": "Returns fresh RNZ (Radio New Zealand) top stories from the public all-news RSS feed.", + "description": "Returns RNZ (Radio New Zealand) top stories from its all-news feed: title, article URL, summary and publication time in UTC. Takes no parameters. Lifestyle guides, audio programme pages and section hubs are left out, and article URLs use RNZ's current section names.", "operationId": "rnz-news", "produces": [ "application/json" @@ -414514,7 +428137,7 @@ }, "/rnz/sections": { "get": { - "description": "Returns the public RNZ news section inventory (one RSS feed each) accepted by rnz-headlines.", + "description": "Lists the 19 RNZ news sections that `rnz-headlines` accepts, such as `news`, `national`, `political`, `pacific` and `te-manu-korihi`. Each entry has a `slug`, a display `name` and the section's feed `url`. RNZ's programme-schedule and recipe feeds are not included.", "operationId": "rnz-sections", "produces": [ "application/json" @@ -414662,7 +428285,7 @@ }, "/roblox/rankings": { "get": { - "description": "Returns a public Roblox game shelf. Allowed sort_id values: top-trending, up-and-coming, top-playing-now, fun-with-friends, top-revisited.", + "description": "Returns one Roblox game ranking shelf, chosen by `sort_id`: `top-trending` (default), `up-and-coming`, `top-playing-now`, `fun-with-friends` or `top-revisited`. Each experience has its name, creator, genre, player count, up and down votes, maturity label, minimum age and URL. Shelves are global, not personalised.", "operationId": "roblox-rankings", "parameters": [ { @@ -414722,7 +428345,7 @@ }, "/roblox/search": { "get": { - "description": "Searches anonymous public Roblox game experiences. The opaque page_token continues the same search.", + "description": "Searches Roblox experiences for `q` (1 to 256 characters). Each result has its universe and place ids, name, creator, genre, `player_count`, up and down votes, maturity and URL. Pass `next_page` back unchanged as `page_token` for the next page. No account, friend, purchase or inventory data is included.", "operationId": "roblox-search", "parameters": [ { @@ -414782,7 +428405,7 @@ }, "/rollingstone/article": { "get": { - "description": "Returns public Rolling Stone article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Rolling Stone article by canonical `url`, a `rollingstone.com` address ending in a numeric article id: title, description, section, authors, publication and update times, image, body `paragraphs` and a `paywalled` flag.", "operationId": "rollingstone-article", "parameters": [ { @@ -414890,7 +428513,7 @@ }, "/rollingstone/headlines": { "get": { - "description": "Returns fresh headlines from one public Rolling Stone section.", + "description": "Returns the latest Rolling Stone stories for one section. `section` is required and takes one of 34 slugs, including `music`, `music-news`, `music-album-reviews`, `politics`, `tv-movie-reviews`, `culture` and `rs-gaming`. Each item has its title, URL, summary, publication time and author.", "operationId": "rollingstone-headlines", "parameters": [ { @@ -414974,7 +428597,7 @@ }, "/rollingstone/news": { "get": { - "description": "Returns fresh Rolling Stone top stories from its public RSS feed.", + "description": "Returns Rolling Stone's latest top stories across the site. Takes no parameters, and `rollingstone-headlines` narrows by section instead. Each item has its title, URL, summary, publication time and author.", "operationId": "rollingstone-news", "produces": [ "application/json" @@ -415041,7 +428664,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Rothy's (https://www.rothys.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Rothy's (https://www.rothys.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "rothys-collections", "parameters": [ { @@ -415104,7 +428727,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Rothy's (https://www.rothys.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Rothy's (https://www.rothys.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "rothys-collection-products", "parameters": [ { @@ -415181,7 +428804,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Rothy's (https://www.rothys.com). The storefront URL is fixed server-side.", + "description": "Lists static pages from Rothy's. `page` starts at 1 and `limit` defaults to 50, up to 250. Each item has `handle`, `title`, `url`, plain-text `content` and dates. A valid but empty page returns an empty `pages` array. With `transport_mode` set to `ssr_embedded`, items hold only `handle`, `url` and `updated_at`.", "operationId": "rothys-pages", "parameters": [ { @@ -415244,7 +428867,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Rothy's (https://www.rothys.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns a single Rothy's static page for the given `handle`: its title, URL, created, published and updated times, and body as plain text in `content`. A handle that does not exist returns 404. In `ssr_embedded` mode `id` is absent, because that source has no numeric id.", "operationId": "rothys-page", "parameters": [ { @@ -415307,7 +428930,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Rothy's's (https://www.rothys.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Rothy's's (https://www.rothys.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "rothys-products", "parameters": [ { @@ -415370,7 +428993,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Rothy's (https://www.rothys.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Rothy's (https://www.rothys.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "rothys-product", "parameters": [ { @@ -415433,7 +429056,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Rothy's (https://www.rothys.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Rothy's (https://www.rothys.com) product handle. The storefront URL is fixed server-side.", "operationId": "rothys-product-recommendations", "parameters": [ { @@ -415514,7 +429137,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Rothy's's (https://www.rothys.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Rothy's's (https://www.rothys.com) predictive search. The storefront URL is fixed server-side.", "operationId": "rothys-search-suggest", "parameters": [ { @@ -415585,7 +429208,7 @@ "consumes": [ "application/json" ], - "description": "Returns capped URL entries from Rothy's's (https://www.rothys.com) child sitemaps matching the requested type. The storefront URL is fixed server-side.", + "description": "Lists URL entries from Rothy's sitemaps for one `type` (`all` by default, or `products`, `collections`, `pages`, `blogs`, `agentic_discovery`, `other`), up to `limit` entries (default 50, max 250). Each has `loc`, `type`, `handle`, `lastmod`, `changefreq` and optional `images`.", "operationId": "rothys-sitemap-urls", "parameters": [ { @@ -415657,7 +429280,7 @@ "consumes": [ "application/json" ], - "description": "Returns child sitemap URLs from Rothy's's (https://www.rothys.com) `/sitemap.xml` index with inferred sitemap types. The storefront URL is fixed server-side.", + "description": "Lists the child sitemaps in Rothy's sitemap index, each with its `loc` and a `type` (`products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`) inferred from the URL. No parameters are needed.", "operationId": "rothys-sitemaps", "produces": [ "application/json" @@ -415704,7 +429327,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Rothy's (https://www.rothys.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Rothy's (https://www.rothys.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "rothys-store", "produces": [ "application/json" @@ -415825,7 +429448,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized movie rows from Rotten Tomatoes' public browse JSON route. Use `/rottentomatoes/browse/filters` to discover current values for each list. Filters accept comma-separated values; pagination uses the opaque `after` cursor from the previous response.", + "description": "Returns movie rows from Rotten Tomatoes' browse listing. Use `/rottentomatoes/browse/filters` to discover current values for each list. Filters accept comma-separated values; pagination uses the opaque `after` cursor from the previous response.", "operationId": "rottentomatoes-browse-movies", "parameters": [ { @@ -416038,7 +429661,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized TV series rows from Rotten Tomatoes' public browse JSON route. Use `/rottentomatoes/browse/filters?list=tv_series_browse` to discover current filters; pagination uses the opaque `after` cursor from the previous response.", + "description": "Returns TV series rows from Rotten Tomatoes' browse listing. Use `/rottentomatoes/browse/filters?list=tv_series_browse` to discover current filters; pagination uses the opaque `after` cursor from the previous response.", "operationId": "rottentomatoes-browse-tv", "parameters": [ { @@ -416593,7 +430216,7 @@ "consumes": [ "application/json" ], - "description": "Searches public Rotten Tomatoes editorial content, including articles and guides. Results come from its anonymous WordPress REST search endpoint and include content subtype plus total-page metadata.", + "description": "Searches public Rotten Tomatoes editorial content, including articles and guides. Results include content subtype plus total-page metadata.", "operationId": "rottentomatoes-editorial-search", "parameters": [ { @@ -416978,7 +430601,7 @@ "consumes": [ "application/json" ], - "description": "Returns the complete live-verified set of editorial type values accepted by the editorial content endpoint.", + "description": "Lists the editorial content types Rotten Tomatoes accepts as `type` on its editorial content endpoint, each with a `value` and `label` (for example `article`, `guide`, `gallery`, `rt-hub` and `pages`). The set was last verified on 2026-09-26, shown in `verified_at`. The `pages` type returns metadata and permalinks, not page bodies.", "operationId": "rottentomatoes-editorial-types", "produces": [ "application/json" @@ -417025,7 +430648,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Rotten Tomatoes TV episode metadata, scorecard data, parent series/season metadata, and public video metadata from a credential-free public episode page. Pass exactly one of `path` or `url`.", + "description": "Returns Rotten Tomatoes TV episode metadata, scorecard data, parent series/season metadata, and public video metadata. Pass exactly one of `path` or `url`.", "operationId": "rottentomatoes-episode", "parameters": [ { @@ -417100,7 +430723,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Rotten Tomatoes movie metadata, scorecard data, and representative embedded audience reviews. Pass exactly one of `path` or `url`.", + "description": "Returns Rotten Tomatoes movie metadata, scorecard data, and representative audience reviews. Pass exactly one of `path` or `url`.", "operationId": "rottentomatoes-movie", "parameters": [ { @@ -417175,7 +430798,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized critic or audience reviews from Rotten Tomatoes public review JSON hydrated by the movie review page, including pagination metadata. Pass exactly one of `path` or `url`. Supported `type` values are `critics`, `top-critics`, `audience`, and `verified-audience`.", + "description": "Returns critic or audience reviews from Rotten Tomatoes, including pagination metadata. Pass exactly one of `path` or `url`. Supported `type` values are `critics`, `top-critics`, `audience`, and `verified-audience`.", "operationId": "rottentomatoes-movie-reviews", "parameters": [ { @@ -417276,7 +430899,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Rotten Tomatoes celebrity/person metadata and filmography rows from public Person JSON-LD and the credential-free filmography module. Pass exactly one of `path` or `url`.", + "description": "Returns Rotten Tomatoes celebrity/person metadata and filmography rows. Pass exactly one of `path` or `url`.", "operationId": "rottentomatoes-person", "parameters": [ { @@ -417351,7 +430974,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Rotten Tomatoes movie search rows from credential-free server-rendered search HTML.", + "description": "Searches Rotten Tomatoes movies by the required `query`, returning up to `limit` rows (default 10, max 20). Each row has the title, URL, release year or start and end year, `tomatometer_score` and sentiment, `certified_fresh`, cast and image. No matches returns an empty `results` array.", "operationId": "rottentomatoes-search", "parameters": [ { @@ -417427,7 +431050,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Rotten Tomatoes TV season metadata, scorecard data, parent series metadata, and episode rows from a credential-free public season page. Pass exactly one of `path` or `url`.", + "description": "Returns Rotten Tomatoes TV season metadata, scorecard data, parent series metadata, and episode rows. Pass exactly one of `path` or `url`.", "operationId": "rottentomatoes-season", "parameters": [ { @@ -417502,7 +431125,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Rotten Tomatoes TV series metadata and scorecard data from a credential-free public series page. Pass exactly one of `path` or `url`.", + "description": "Returns Rotten Tomatoes TV series metadata and scorecard data. Pass exactly one of `path` or `url`.", "operationId": "rottentomatoes-series", "parameters": [ { @@ -417707,7 +431330,7 @@ "consumes": [ "application/json" ], - "description": "Searches Rover's public sitter/walker listings by location and service type, returning normalized sitter summaries (name, profile image, rating, review count, repeat-client count, years of experience, neighborhood/city/state, starting price, Star Sitter status, and a short bio). Public data sourced from Rover's own server-rendered search pages.", + "description": "Searches Rover's public sitter/walker listings by location and service type, returning sitter summaries (name, profile image, rating, review count, repeat-client count, years of experience, neighborhood/city/state, starting price, Star Sitter status, and a short bio).", "operationId": "rover-sitter-search", "parameters": [ { @@ -417813,7 +431436,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Rover sitter/walker profile: name, photo, bio, star rating, review count, repeat-client count, years of experience, neighborhood/city/state, starting price, Star Sitter status, the services offered with per-service pricing, and public review excerpts from the sitter's own profile page. Public data sourced from Rover's own server-rendered profile pages.", + "description": "Returns a Rover sitter/walker profile: name, photo, bio, star rating, review count, repeat-client count, years of experience, neighborhood/city/state, starting price, Star Sitter status, the services offered with per-service pricing, and public review excerpts from the sitter's own profile page.", "operationId": "rover-sitter-profile", "parameters": [ { @@ -417876,7 +431499,7 @@ "consumes": [ "application/json" ], - "description": "Searches Rover's public dog trainer listings by location, returning normalized trainer summaries (name, profile image, headline, experience details, rating, review count, repeat-client count, years of experience, city/state/zip, starting price, training methodology, and skill/behavior tags). Public data sourced from Rover's own server-rendered training search pages.", + "description": "Searches Rover's public dog trainer listings by location, returning trainer summaries (name, profile image, headline, experience details, rating, review count, repeat-client count, years of experience, city/state/zip, starting price, training methodology, and skill/behavior tags).", "operationId": "rover-trainer-search", "parameters": [ { @@ -417939,7 +431562,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Rover dog trainer profile: name, photo, headline, experience and availability details, training methodology, rating, review count, repeat-client count, years of training, skill/behavior tags, and education credentials. Public data sourced from Rover's own server-rendered training profile pages.", + "description": "Returns a Rover dog trainer profile: name, photo, headline, experience and availability details, training methodology, rating, review count, repeat-client count, years of training, skill/behavior tags, and education credentials.", "operationId": "rover-trainer-profile", "parameters": [ { @@ -418053,7 +431676,7 @@ }, "/rte/author": { "get": { - "description": "Returns an RTÉ News author's byline name, role, headshot and recent articles from a canonical author URL.", + "description": "Returns an RTÉ News author's profile by canonical `url` (`https://www.rte.ie/author/-/`, the author link on an article byline): name, headshot, `role` and recent articles, each with title, URL, summary, publication time and image. `role` is the job title the page shows, for example Political Correspondent, and is omitted when there is none.", "operationId": "rte-author", "parameters": [ { @@ -418107,7 +431730,7 @@ }, "/rte/headlines": { "get": { - "description": "Returns fresh headlines from one public RTÉ News section.", + "description": "Returns the latest RTÉ News stories for one section. `section` is required and takes one of 29 slugs such as `ireland`, `world`, `politics`, `dublin`, `courts` or `nuacht` (Irish-language); others return a 400. Each item has its title, URL, summary, publication time and image. Small sections like `science` return only a handful of items.", "operationId": "rte-headlines", "parameters": [ { @@ -418224,7 +431847,7 @@ }, "/rte/sections": { "get": { - "description": "Returns the public RTÉ News section inventory used by the headlines endpoint.", + "description": "Lists the 29 RTÉ News section hubs that `rte-headlines` accepts, such as `ireland`, `politics`, `dublin`, `ukraine` and `investigations-unit`. Each entry has a `slug`, a display `name` and the feed `url`. The list is curated to hubs with their own article feed, so narrower topic pages are not included.", "operationId": "rte-sections", "produces": [ "application/json" @@ -418250,7 +431873,7 @@ }, "/salon/article": { "get": { - "description": "Returns public Salon article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Salon article by canonical `url` on `www.salon.com` in the `/YYYY/MM/DD//` form: title, description, section, authors, publication and update times, image, body `paragraphs` and a `paywalled` flag.", "operationId": "salon-article", "parameters": [ { @@ -418304,7 +431927,7 @@ }, "/salon/author": { "get": { - "description": "Returns a Salon writer's byline metadata, biography, and recent articles from a canonical writer URL.", + "description": "Returns a Salon writer's profile by canonical `url` (`https://www.salon.com/writer/`): name, `job_title`, `bio`, `image_url`, `same_as` links and a list of articles. Each article carries only a title and URL, with no date or category. Job title, photo and `same_as` appear only when the writer page shows them.", "operationId": "salon-author", "parameters": [ { @@ -418358,7 +431981,7 @@ }, "/salon/headlines": { "get": { - "description": "Returns fresh headlines from one public Salon RSS section.", + "description": "Returns the latest Salon stories for one section. `section` is required and takes one of 32 slugs, including `home`, `news-and-politics`, `politics`, `opinion`, `culture`, `science-and-health` and `technology`. Each item has its title, URL, summary, publication time, author and image.", "operationId": "salon-headlines", "parameters": [ { @@ -418440,7 +432063,7 @@ }, "/salon/news": { "get": { - "description": "Returns fresh Salon top stories from its public RSS feed.", + "description": "Returns Salon's latest top stories across the site. Takes no parameters, and `salon-headlines` narrows by section instead. Each item has its title, URL, summary, publication time, author and image.", "operationId": "salon-news", "produces": [ "application/json" @@ -418478,7 +432101,7 @@ }, "/salon/sections": { "get": { - "description": "Returns the public Salon RSS section inventory used by the headlines endpoint.", + "description": "Lists the 32 Salon sections that `salon-headlines` accepts, from `home` and `news-and-politics` to `working_ahead`. Each entry has a `slug`, a display `name` and the section's feed `url`. The list includes older event slugs such as `oscars_2012` and `sxsw_2013`.", "operationId": "salon-sections", "produces": [ "application/json" @@ -418507,7 +432130,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Sam's Club category or collection page's product grid, with real page-based pagination. id accepts a bare numeric category id (from a nav link's /browse/{id} URL) or a full /browse/{slug}/{id} URL copied from samsclub.com -- only the trailing id is used. Returns normalized products with name, brand, pricing, availability, rating, and image. An id samsclub.com does not recognize returns a genuine zero-result response rather than an error, matching upstream's own behavior.", + "description": "Returns a Sam's Club category or collection page's product grid, with real page-based pagination. id accepts a bare numeric category id (from a nav link's /browse/{id} URL) or a full /browse/{slug}/{id} URL copied from samsclub.com -- only the trailing id is used. Returns products with name, brand, pricing, availability, rating, and image. An id samsclub.com does not recognize returns a genuine zero-result response rather than an error.", "operationId": "samsclub-category", "parameters": [ { @@ -418738,7 +432361,7 @@ "consumes": [ "application/json" ], - "description": "Returns the related-item carousels shown on a Sam's Club product page, each a named shelf (e.g. \"Members also considered\", \"Items you may like\") of normalized products with pricing, rating, and image. id is the numeric product id from a Sam's Club product page's /ip/ URL. This upstream source does not distinguish an unrecognized id from a known one -- an unrecognized id still returns generic fallback shelves rather than an error.", + "description": "Returns the related-item carousels shown on a Sam's Club product page, each a named shelf (e.g. \"Members also considered\", \"Items you may like\") of products with pricing, rating, and image. id is the numeric product id from a Sam's Club product page's /ip/ URL. An unrecognized id is not distinguished from a known one -- it still returns generic fallback shelves rather than an error.", "operationId": "samsclub-product-related", "parameters": [ { @@ -418846,7 +432469,7 @@ }, "/sbsnews/author": { "get": { - "description": "Returns a public SBS News byline collection with author name, profile image, biography, pagination state, and recent articles.", + "description": "Returns an SBS News byline collection by canonical `url`, for example `https://www.sbs.com.au/news/collection/jennifer-scherer`: name, headshot, biography and the articles on the requested archive `page` (1-based, default 1), with `has_next_page` for paging. Articles are limited to SBS News article, Insight and Dateline links.", "operationId": "sbsnews-author", "parameters": [ { @@ -418907,7 +432530,7 @@ }, "/sbsnews/headlines": { "get": { - "description": "Returns current SBS News headlines for a supported navigation or featured topic section.", + "description": "Returns current SBS News headlines for one section. `section` is required and takes one of 15 slugs from `sbsnews-sections`, such as `top`, `latest`, `australia`, `world`, `politics`, `indigenous`, `cost-of-living` or `sport`. Every item has its title and URL. The `top`, `latest`, `australia` and `world` sections also include summary, publication time and image.", "operationId": "sbsnews-headlines", "parameters": [ { @@ -418972,7 +432595,7 @@ }, "/sbsnews/news": { "get": { - "description": "Returns current SBS News Top Stories from its public RSS feed.", + "description": "Returns the current SBS News Top Stories. Takes no parameters. Each item has its title, canonical SBS News article URL and summary, with publication time, author and image when present.", "operationId": "sbsnews-news", "produces": [ "application/json" @@ -419004,7 +432627,7 @@ }, "/sbsnews/sections": { "get": { - "description": "Returns the SBS News navigation and featured public topic/collection pages accepted by sbsnews-headlines.", + "description": "Lists the SBS News sections that `sbsnews-headlines` accepts: the seven primary navigation sections, the Top Stories feed and featured topic and collection pages. Each entry has a `slug`, a display `name` and a `url`. News Podcasts and video surfaces are not included.", "operationId": "sbsnews-sections", "produces": [ "application/json" @@ -419030,7 +432653,7 @@ }, "/sciencealert/article": { "get": { - "description": "Returns public article metadata and body paragraphs from a canonical ScienceAlert article URL.", + "description": "Returns a ScienceAlert article by absolute canonical `url`: title, description, section, authors, publication and update times, image, the cleaned body `paragraphs` and a `paywalled` flag. Section pages and author listing URLs are rejected.", "operationId": "sciencealert-article", "parameters": [ { @@ -419084,7 +432707,7 @@ }, "/sciencealert/author": { "get": { - "description": "Returns a journalist's public profile, biography, social links, and one page of recent articles.", + "description": "Returns a ScienceAlert author's profile and one page of articles, from an author listing `url` in the form `https://www.sciencealert.com//page/`; the first observed page is `/page/0`. The response has the name, `slug`, biography, image, social links, that page's articles, and `page` and `has_next_page` for paging.", "operationId": "sciencealert-author", "parameters": [ { @@ -419138,7 +432761,7 @@ }, "/sciencealert/headlines": { "get": { - "description": "Returns headlines from one public ScienceAlert section.", + "description": "Returns the latest ScienceAlert stories for one section. `section` is required and takes `space`, `health`, `environment`, `humans`, `tech`, `nature`, `physics` or `this-week-in-science`; other values are rejected. Each item has its title and URL.", "operationId": "sciencealert-headlines", "parameters": [ { @@ -419196,7 +432819,7 @@ }, "/sciencealert/news": { "get": { - "description": "Returns fresh ScienceAlert top stories from its public RSS feed.", + "description": "Returns ScienceAlert's latest top stories across the site. Takes no parameters, and `sciencealert-headlines` narrows by section instead. Each item has its title, URL, summary, author and publication time.", "operationId": "sciencealert-news", "produces": [ "application/json" @@ -419234,7 +432857,7 @@ }, "/sciencealert/sections": { "get": { - "description": "Returns the complete public top-level ScienceAlert taxonomy used by headlines.", + "description": "Lists the eight top-level ScienceAlert sections that `sciencealert-headlines` accepts: `space`, `health`, `environment`, `humans`, `tech`, `nature`, `physics` and `this-week-in-science`. Each entry has a `slug`, a display `name` and the section page `url`.", "operationId": "sciencealert-sections", "produces": [ "application/json" @@ -419574,7 +433197,7 @@ }, "/screenrant/article": { "get": { - "description": "Returns public ScreenRant article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a ScreenRant article by canonical `url` of the form `https://screenrant.com//`: title, description, section, authors, publication and update times, image and body `paragraphs`. Warning and note callouts and Related cards are left out of `paragraphs`. Section hubs and multi-segment URLs such as `/video//` are rejected as invalid.", "operationId": "screenrant-article", "parameters": [ { @@ -419628,7 +433251,7 @@ }, "/screenrant/author": { "get": { - "description": "Returns a ScreenRant author's byline metadata, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns a ScreenRant author's profile by canonical `url` (`https://screenrant.com/author//`): name, `title`, `biography`, image, social links (such as `x`, `linkedin`, `youtube` or `muckrack`) and about 20 articles from the profile's Latest module. Older pages are not available.", "operationId": "screenrant-author", "parameters": [ { @@ -419682,7 +433305,7 @@ }, "/screenrant/headlines": { "get": { - "description": "Returns fresh headlines from one public ScreenRant RSS section.", + "description": "Returns about 10 of the most recent ScreenRant items for one section. `section` is required and takes one of 34 slugs such as `movie-news`, `tv-reviews`, `reality-tv`, `comics`, `game-news` or `anime`. Items in `videos`, and some in `interviews` and `movie-trailers`, link to `/video//` pages that `screenrant-article` rejects.", "operationId": "screenrant-headlines", "parameters": [ { @@ -419772,7 +433395,7 @@ }, "/screenrant/news": { "get": { - "description": "Returns fresh ScreenRant top stories from its public RSS feed.", + "description": "Returns ScreenRant's main feed of latest stories, about 10 items. Takes no parameters. Each item has its title, URL, summary, publication time, author and image.", "operationId": "screenrant-news", "produces": [ "application/json" @@ -419810,7 +433433,7 @@ }, "/screenrant/sections": { "get": { - "description": "Returns the public ScreenRant RSS section inventory used by the headlines endpoint.", + "description": "Lists the 34 ScreenRant sections that `screenrant-headlines` accepts, spanning movies, TV, reality TV, comics, gaming, anime, books, interviews and videos. Each entry has a `slug`, a display `name` and the section's feed `url`.", "operationId": "screenrant-sections", "produces": [ "application/json" @@ -420344,7 +433967,7 @@ "consumes": [ "application/json" ], - "description": "Returns SeatGeek's own geo-personalized \"trending near you\" event feed for a coordinate -- the same list its homepage renders.", + "description": "Returns SeatGeek's ranked \"trending near you\" events for the required `lat` and `lon`. Each item has the event name, URL and image, local and UTC start times, `lowest_price` on the secondary market where available, current `rank` and `rank_change`. The list is identified by `list_id`, `list_type` and `list_display_name`.", "operationId": "seatgeek-trending", "parameters": [ { @@ -420654,7 +434277,7 @@ }, "/seattletimes/headlines": { "get": { - "description": "Returns fresh headlines from one public Seattle Times section feed.", + "description": "Returns about 30 to 35 of the latest Seattle Times stories for one section. `section` is required and takes a section slug such as `seattle-news`, `politics`, `boeing-aerospace`, `mariners`, `seahawks` or `obituaries`. Each item has its title, canonical URL without tracking parameters, summary, publication time and author. Only the newest page is available.", "operationId": "seattletimes-headlines", "parameters": [ { @@ -420802,7 +434425,7 @@ }, "/seattletimes/news": { "get": { - "description": "Returns fresh Seattle Times stories from the public site-wide RSS feed.", + "description": "Returns about 30 of the newest Seattle Times stories across all sections, including Associated Press wire stories. Takes no parameters. Each item has its title, canonical URL without tracking parameters, summary, publication time, author byline and lead image.", "operationId": "seattletimes-news", "produces": [ "application/json" @@ -420863,7 +434486,7 @@ "consumes": [ "application/json" ], - "description": "Aggregates a company's profile, a latest-annual financial snapshot, the latest 10-K/10-Q/8-K, and recent material events into one call. Provide cik or ticker. Optionally fuse live cross-source data with enrich (a comma list of market, news, hiring): market and news are keyed on the ticker; hiring needs ats plus that ATS's careers slug (or tenant/datacenter/site for Workday). Enrichment is best-effort — requested-but-unavailable sources are listed under degraded and never fail the SEC-native response. Credential-free public data.", + "description": "Aggregates a company's profile, a latest-annual financial snapshot, the latest 10-K/10-Q/8-K, and recent material events into one call. Provide cik or ticker. Optionally fuse live cross-source data with enrich (a comma list of market, news, hiring): market and news are keyed on the ticker; hiring needs ats plus that ATS's careers slug (or tenant/datacenter/site for Workday). Enrichment is best-effort — requested-but-unavailable sources are listed under degraded and never fail the SEC-native response.", "operationId": "sec-company-intelligence", "parameters": [ { @@ -420980,7 +434603,7 @@ "consumes": [ "application/json" ], - "description": "Resolves a ticker symbol or company-name query to SEC EDGAR companies (CIK, ticker, name) using the official company_tickers map. Credential-free public SEC data.", + "description": "Resolves a ticker symbol or company-name query to SEC EDGAR companies (CIK, ticker, name).", "operationId": "sec-company-search", "parameters": [ { @@ -421043,7 +434666,7 @@ "consumes": [ "application/json" ], - "description": "Returns a company's recent SEC filings (form, dates, primary document URL) filtered by form type and date range, plus company profile fields as reported by EDGAR: entity_type, former_names, exchanges, category, fiscal_year_end, state_of_incorporation. Provide cik or ticker. Credential-free public SEC data.", + "description": "Returns a company's recent SEC filings (form, dates, primary document URL) filtered by form type and date range, plus company profile fields as reported by EDGAR: entity_type, former_names, exchanges, category, fiscal_year_end, state_of_incorporation. Provide cik or ticker.", "operationId": "sec-company-submissions", "parameters": [ { @@ -421137,7 +434760,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single SEC filing's metadata and primary document URL. Provide accession plus cik or ticker. Credential-free public SEC data.", + "description": "Returns a single SEC filing's metadata and primary document URL. Provide accession plus cik or ticker.", "operationId": "sec-filing", "parameters": [ { @@ -421214,7 +434837,7 @@ "consumes": [ "application/json" ], - "description": "Extracts item sections (e.g. 1A Risk Factors, 7 MD&A) from a 10-K/10-Q/8-K primary document as clean text. Provide accession plus cik or ticker. Credential-free public SEC data.", + "description": "Extracts item sections (e.g. 1A Risk Factors, 7 MD&A) from a 10-K/10-Q/8-K primary document as clean text. Provide accession plus cik or ticker.", "operationId": "sec-filing-sections", "parameters": [ { @@ -421304,7 +434927,7 @@ "consumes": [ "application/json" ], - "description": "Returns a company's normalized financial statements across recent periods, resolving EDGAR's inconsistent XBRL tags to a stable schema. Provide cik or ticker. Credential-free public SEC data.", + "description": "Returns a company's financial statements across recent periods, resolving EDGAR's inconsistent XBRL tags to a stable schema. Provide cik or ticker.", "operationId": "sec-financials", "parameters": [ { @@ -421400,7 +435023,7 @@ "consumes": [ "application/json" ], - "description": "Returns every filer's reported value for one XBRL concept in one reporting period (an EDGAR \"frame\"). Credential-free public SEC data.", + "description": "Returns every filer's reported value for one XBRL concept in one reporting period (an EDGAR \"frame\").", "operationId": "sec-frames", "parameters": [ { @@ -421496,7 +435119,7 @@ "consumes": [ "application/json" ], - "description": "Searches the full text of SEC EDGAR filings (efts), filtered by form and date, with pagination. Credential-free public SEC data; free where incumbents gate full-text search behind paid tiers.", + "description": "Searches the full text of SEC EDGAR filings, filtered by form and date, with pagination. Free where incumbents gate full-text search behind paid tiers.", "operationId": "sec-full-text-search", "parameters": [ { @@ -421578,7 +435201,7 @@ "consumes": [ "application/json" ], - "description": "Returns a company's recent insider transactions parsed from Form 3/4/5 ownership filings (owner, role, security, shares, price). Provide cik or ticker. Credential-free public SEC data.", + "description": "Returns a company's recent insider transactions from Form 3/4/5 ownership filings (owner, role, security, shares, price). Provide cik or ticker.", "operationId": "sec-insider", "parameters": [ { @@ -421653,7 +435276,7 @@ "consumes": [ "application/json" ], - "description": "Returns the latest 13F-HR holdings for an institutional manager (by CIK): issuer, value, shares, sorted by value. Credential-free public SEC data.", + "description": "Returns the latest 13F-HR holdings for an institutional manager (by CIK): issuer, value, shares, sorted by value.", "operationId": "sec-institutional-holdings", "parameters": [ { @@ -421966,7 +435589,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Sephora product's full detail (every color/shade variant with its own price and availability, rating, review count, and a sample of recent reviews), from Sephora's credential-free public JSON-LD. `product_id` is the full product-page slug, e.g. `lip-sleeping-mask-P420652` -- copy it from the path segment after sephora.com/product/ on any product page; unlike some other retailers, an arbitrary or partial slug does not resolve.", + "description": "Returns one Sephora product's full detail (every color/shade variant with its own price and availability, rating, review count, and a sample of recent reviews). `product_id` is the full product-page slug, e.g. `lip-sleeping-mask-P420652` -- copy it from the path segment after sephora.com/product/ on any product page; unlike some other retailers, an arbitrary or partial slug does not resolve.", "operationId": "sephora-product", "parameters": [ { @@ -422157,7 +435780,7 @@ "consumes": [ "application/json" ], - "description": "Searches Sephora's product catalog by keyword, with real page-based pagination. Returns normalized products with brand, pricing, rating, and review count. Sephora's own search never returns a genuine zero-result state for a nonempty keyword -- an unrecognized/nonsense keyword still returns a full, unrelated fallback result set rather than an empty one. price_min/price_max must be provided together (whole dollars) -- upstream silently ignores a one-sided price range rather than filtering or erroring, so this endpoint rejects a one-sided range as invalid instead of passing it through. brand and filter each accept multiple values (OR'd together within the same facet); brand/rating_min/is_new/filter/price_min/price_max can all be combined with each other (AND'd together across different facets).", + "description": "Searches Sephora's product catalog by keyword, with real page-based pagination. Returns products with brand, pricing, rating, and review count. Sephora's own search never returns a genuine zero-result state for a nonempty keyword -- an unrecognized/nonsense keyword still returns a full, unrelated fallback result set rather than an empty one. price_min/price_max must be provided together (whole dollars) -- upstream silently ignores a one-sided price range rather than filtering or erroring, so this endpoint rejects a one-sided range as invalid instead of passing it through. brand and filter each accept multiple values (OR'd together within the same facet); brand/rating_min/is_new/filter/price_min/price_max can all be combined with each other (AND'd together across different facets).", "operationId": "sephora-search", "parameters": [ { @@ -422540,7 +436163,7 @@ }, "/sevennewsau/headlines": { "get": { - "description": "Returns fresh 7NEWS headlines from one public topic feed (the 100 most recent stories tagged with that topic).", + "description": "Returns the 100 most recent 7NEWS Australia stories for one topic. `section` is required and takes a topic slug such as `news-sydney`, `sport-afl` or `business-property`, which is the site path with slashes replaced by hyphens. Each item has its title, URL, summary, publication time, author when credited, and lead image.", "operationId": "sevennewsau-headlines", "parameters": [ { @@ -422699,7 +436322,7 @@ }, "/sevennewsau/news": { "get": { - "description": "Returns fresh 7NEWS (7news.com.au) top stories from the public site-wide news feed.", + "description": "Returns the 100 most recent 7NEWS Australia stories across every section, with no input needed. Each item has its title, canonical URL, summary, publication time, lead image, and the author when one is credited. Agency copy is often credited to `Digital Staff`.", "operationId": "sevennewsau-news", "produces": [ "application/json" @@ -422883,7 +436506,7 @@ }, "/sfgate/headlines": { "get": { - "description": "Returns fresh headlines from one SFGATE public RSS feed.", + "description": "Returns the latest SFGATE stories for one section. `section` is required and takes `top-news`, `bay-area`, `business-technology`, `entertainment`, `celebrity`, `food-dining`, `travel`, `routes`, `top-sports`, `giants`, `49ers` or `warriors`. Feeds hold 12 to 30 items, and the `warriors` feed is quiet in the off-season.", "operationId": "sfgate-headlines", "parameters": [ { @@ -422945,7 +436568,7 @@ }, "/sfgate/news": { "get": { - "description": "Returns fresh SFGATE stories from its public \"Top News Stories\" RSS feed.", + "description": "Returns the latest stories from SFGATE's Top News Stories feed: title, canonical URL, summary, author and publication time in UTC. Takes no parameters. The feed carries no images.", "operationId": "sfgate-news", "produces": [ "application/json" @@ -423286,7 +436909,7 @@ "consumes": [ "application/json" ], - "description": "Returns the filter facets (sizes, colors, materials, …) and price range for a SHEIN category.", + "description": "Returns the filter facets for a SHEIN category by the required numeric `cat_id`, such as sizes, colours and composition. Each group has a `node_id`, `node_name` and a list of options with their own ids and names. Also returns `min_price`, `max_price` and the `currency`.", "operationId": "shein-category-filters", "parameters": [ { @@ -423343,7 +436966,7 @@ "consumes": [ "application/json" ], - "description": "Returns SHEIN's product listing for a category, with the same normalized product-card fields as product search.", + "description": "Lists products in a SHEIN category, by the required numeric `cat_id`. `page` starts at 1 and `page_size` defaults to 20; `sort` is a non-negative integer, `0` by default. Each product has its id, name, images, sale, retail and USD prices, rating, review count, and `on_sale` and `sold_out` flags. `total` is the category's listing count.", "operationId": "shein-category-goods", "parameters": [ { @@ -423421,7 +437044,7 @@ "consumes": [ "application/json" ], - "description": "Returns the subcategory navigation tabs for a SHEIN category, each with a representative product.", + "description": "Returns the subcategory navigation tabs for a SHEIN category, by the required numeric `cat_id`. Each tab has its `nav_id`, `nav_name`, `nav_type`, `nav_img` and the `goods_id` of a representative product.", "operationId": "shein-category-nav", "parameters": [ { @@ -423478,7 +437101,7 @@ "consumes": [ "application/json" ], - "description": "Returns the selectable category/brand/size/color filter facets and price range for a SHEIN search query.", + "description": "Returns the filter facets for a SHEIN search, given the required `keyword` and an optional `cat_id` that narrows them. The response has filter groups (id, name, options), a recursive `category` drill-down with `children`, and the `min_price` and `max_price` for the query.", "operationId": "shein-products-aggregation-filters", "parameters": [ { @@ -423542,7 +437165,7 @@ "consumes": [ "application/json" ], - "description": "Returns a SHEIN product's detail: identity, copy, price, images, sizes/stock, color variants, and category/brand.", + "description": "Returns a SHEIN product by the required numeric `goods_id`; `goods_sn` is optional and narrows the lookup. The response has the name, description, category, brand code, sale, retail and USD prices, images, video URL, size options, per-SKU stock and prices, and colour variants.", "operationId": "shein-products-detail", "parameters": [ { @@ -423606,7 +437229,7 @@ "consumes": [ "application/json" ], - "description": "Returns SHEIN's product search results for a free-text keyword, with normalized name/price/rating/image fields per card.", + "description": "Searches SHEIN products for the required `keyword`. `page` starts at 1, `page_size` defaults to 20 and `sort` is a non-negative integer, `0` by default. Each product card has its id, name, images, prices, rating, review count and stock flags. Also returns `total` and spelling suggestions in `suggest_words`.", "operationId": "shein-products-search", "parameters": [ { @@ -423684,7 +437307,7 @@ "consumes": [ "application/json" ], - "description": "Returns SHEIN's search typeahead suggestions for a partial search query.", + "description": "Returns SHEIN search suggestions for a partial query in the required `word`. Each suggestion has its `word`, `word_id` and `type`. A word with no matching phrase returns an empty list, not an error.", "operationId": "shein-search-autocomplete", "parameters": [ { @@ -423741,7 +437364,7 @@ "consumes": [ "application/json" ], - "description": "Returns the trending search keywords SHEIN's app surfaces in its search box.", + "description": "Returns the trending search keywords SHEIN shows in its search box. `scene` defaults to `trendStoreChannel` and `word_type` to `1`. Each keyword has its `word`, `word_id`, `type` and `from`.", "operationId": "shein-search-keywords", "parameters": [ { @@ -423892,7 +437515,7 @@ "consumes": [ "application/json" ], - "description": "Returns public Shop.app product categories.", + "description": "Returns the Shop.app product category tree, with no parameters. Each category has its `id`, `gid`, `name`, `slug`, `image`, `has_children`, nested `children` and a `path` of ancestors. Ids are taken from Shopify product category GIDs where present.", "operationId": "shop-app-categories", "produces": [ "application/json" @@ -423933,7 +437556,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public product details from Shop.app.", + "description": "Returns a Shop.app product by `id`: title, description, price and original price, currency, availability, images, option groups, rating, review count with reviews, related products and the selling shop. Pass `variant_id` to mark a variant as selected. Missing products return an error.", "operationId": "shop-app-product", "parameters": [ { @@ -424003,7 +437626,7 @@ "consumes": [ "application/json" ], - "description": "Returns related product cards from a public Shop.app product page.", + "description": "Lists products related to a Shop.app product, by `id`. `limit` defaults to 20 and is capped at 50. Each card has the product's id, title, price, original price, currency, `on_sale` flag, image, shop name and URL. A product page with no related items returns an error.", "operationId": "shop-app-product-related", "parameters": [ { @@ -424067,7 +437690,7 @@ "consumes": [ "application/json" ], - "description": "Returns public product reviews from a Shop.app product page.", + "description": "Lists customer reviews for a Shop.app product, by `id`, up to `limit` (default 20, max 50). Each review has its rating, title, body, author, date, helpful count and variant label, where present. A product with no reviews returns an error.", "operationId": "shop-app-product-reviews", "parameters": [ { @@ -424131,7 +437754,7 @@ "consumes": [ "application/json" ], - "description": "Resolves the public Shop.app merchant profile for a product id.", + "description": "Finds the Shop.app merchant that sells a product, by the product `id`. Returns the shop's handle, name, description, logo, banner, rating, review count, storefront URL, and its collections. Unknown products, or ones with no public shop, return not found.", "operationId": "shop-app-product-shop", "parameters": [ { @@ -424335,7 +437958,7 @@ "consumes": [ "application/json" ], - "description": "Searches Shop.app product results using the credential-free public web search flow. Limit defaults to 20 and accepts values up to 50.", + "description": "Searches Shop.app product results. Limit defaults to 20 and accepts values up to 50.", "operationId": "shop-app-search", "parameters": [ { @@ -424423,7 +438046,7 @@ "consumes": [ "application/json" ], - "description": "Returns public Shop.app merchant profile details.", + "description": "Returns a Shop.app merchant profile by shop `handle`: name, description, logo, banner, rating, review count, storefront and Shop.app URLs, and collection summaries when the shop page lists them. Unknown handles return an error.", "operationId": "shop-app-shop", "parameters": [ { @@ -424486,7 +438109,7 @@ "consumes": [ "application/json" ], - "description": "Returns public product cards from a Shop.app merchant collection. sort_by allowed values: MOST_SALES, PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, RELEVANCE.", + "description": "Lists products in one collection of a Shop.app merchant, by shop `handle` and `collection_id`. `limit` defaults to 30 (max 60), `sort_by` is `MOST_SALES` (default), `PRICE_LOW_TO_HIGH`, `PRICE_HIGH_TO_LOW` or `RELEVANCE`, and `in_stock` defaults to true. Each card has its title, price, original price, image and URL.", "operationId": "shop-app-collection-products", "parameters": [ { @@ -424580,7 +438203,7 @@ "consumes": [ "application/json" ], - "description": "Returns public retail locations for a Shop.app merchant profile.", + "description": "Returns the public retail locations of a Shop.app merchant by shop handle, up to `limit` (default 10, max 50). Each location has its id, name, latitude and longitude, and street address; the response also carries the total count and a cursor for the next page. A shop with no public retail locations returns an error.", "operationId": "shop-app-shop-locations", "parameters": [ { @@ -424650,7 +438273,7 @@ "consumes": [ "application/json" ], - "description": "Returns public product cards from a Shop.app merchant profile. sort_by allowed values: MOST_SALES, PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, RELEVANCE.", + "description": "Lists products from a Shop.app merchant, by shop `handle`. `limit` defaults to 30 (max 60), `sort_by` is `MOST_SALES` (default), `PRICE_LOW_TO_HIGH`, `PRICE_HIGH_TO_LOW` or `RELEVANCE`, and `in_stock` defaults to true. Each card has its id, title, price, original price, image and URL. An invalid `sort_by` is rejected.", "operationId": "shop-app-shop-products", "parameters": [ { @@ -424736,7 +438359,7 @@ "consumes": [ "application/json" ], - "description": "Returns public reviews for a Shop.app merchant profile.", + "description": "Lists customer reviews for a Shop.app merchant, by shop `handle`, up to `limit` (default 20, max 50). Each review has its rating, body, author, date, helpful count and the product reviewed. Also returns `total_count` and `next_cursor`. Unknown shops return not found.", "operationId": "shop-app-shop-reviews", "parameters": [ { @@ -424806,7 +438429,7 @@ "consumes": [ "application/json" ], - "description": "Returns public store typeahead suggestions for a Shop.app merchant profile.", + "description": "Returns search suggestions inside one Shop.app shop, for the shop `handle` and required `query`. `limit` defaults to 20, which is also the maximum. Suggestions are `type` term, product or collection, with text, position and a product or collection object where relevant. Unknown shops return not found.", "operationId": "shop-app-shop-typeahead", "parameters": [ { @@ -424884,7 +438507,7 @@ "consumes": [ "application/json" ], - "description": "Returns Shop.app autocomplete suggestions. Limit defaults to 10 and supports up to 20.", + "description": "Returns Shop.app autocomplete suggestions for the required `query`. `limit` defaults to 10 and is capped at 20. Each suggestion is either a search query or a shop, with its `text`, `type`, URL and, for shops, the shop handle, name, rating and image.", "operationId": "shop-app-suggestions", "parameters": [ { @@ -424948,7 +438571,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from a public Shopify `/collections.json` endpoint. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from a public Shopify storefront. Valid empty result pages return `200` with an empty collections array.", "operationId": "shopify-collections", "parameters": [ { @@ -425019,7 +438642,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from a public Shopify collection `/products.json` endpoint. `sortBy` and dynamic facet-filter query params (e.g. `fit`, `canonicalColour`) only take effect for headless storefronts served via the embedded-SSR-JSON fallback transport (`transport_mode: \"ssr_embedded\"`) and return an invalid-param error if supplied against a classic-transport store, since Shopify's classic public catalog JSON has no server-side sort or filter support. `sort_by`, `min_price`, `max_price`, `product_type`, `in_stock_only`, and `option_`-prefixed params (e.g. `option_size=Small,Medium`) drive a separate, independent mechanism -- Shopify's own native Storefront Filtering collection-page feature (`transport_mode: \"storefront_filtered\"`) -- which works for both classic- and SSR-fallback-transport stores; supplying any of these takes precedence over sortBy/dynamic facet filters.", + "description": "Returns products from a Shopify collection. `sortBy` and dynamic facet-filter query params (e.g. `fit`, `canonicalColour`) only take effect for headless storefronts (`transport_mode: \"ssr_embedded\"`) and return an invalid-param error if supplied against a classic store, since classic Shopify storefronts have no server-side sort or filter support. `sort_by`, `min_price`, `max_price`, `product_type`, `in_stock_only`, and `option_`-prefixed params (e.g. `option_size=Small,Medium`) drive a separate, independent mechanism -- Shopify's own native Storefront Filtering collection-page feature (`transport_mode: \"storefront_filtered\"`) -- which works for both classic and headless stores; supplying any of these takes precedence over sortBy/dynamic facet filters.", "operationId": "shopify-collection-products", "parameters": [ { @@ -425168,7 +438791,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from a public Shopify `/pages.json` endpoint. Page body HTML is returned as cleaned text only.", + "description": "Lists static pages from a Shopify storefront given by the required `url`, paged with `page` (from 1) and `limit` (default 50, max 250). Each has `handle`, `title`, `url`, plain-text `content` and dates. If `transport_mode` is `ssr_embedded`, items hold only `handle`, `url` and `updated_at`.", "operationId": "shopify-pages", "parameters": [ { @@ -425239,7 +438862,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized page detail from Shopify's credential-free `/pages/{handle}.json` endpoint. Page body HTML is returned as cleaned text only.", + "description": "Returns one static page from any public Shopify storefront, by path `handle` and the required `url` of the store. The response has the page's title, URL, times and its `content` as plain text. Unknown handles return 404. Localhost, private-network and credentialed URLs are rejected.", "operationId": "shopify-page", "parameters": [ { @@ -425310,7 +438933,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from a public Shopify `/products.json` endpoint. Valid empty result pages return `200` with an empty products array. `sortBy` and dynamic facet-filter query params (e.g. `fit`, `canonicalColour`) only take effect for headless storefronts served via the embedded-SSR-JSON fallback transport (`transport_mode: \"ssr_embedded\"`) and return an invalid-param error if supplied against a classic-transport store, since Shopify's classic public catalog JSON has no server-side sort or filter support. `sort_by`, `min_price`, `max_price`, `product_type`, `in_stock_only`, and `option_`-prefixed params (e.g. `option_size=Small,Medium`) drive a separate, independent mechanism -- Shopify's own native Storefront Filtering collection-page feature (`transport_mode: \"storefront_filtered\"`) -- which works for both classic- and SSR-fallback-transport stores; supplying any of these takes precedence over sortBy/dynamic facet filters.", + "description": "Returns products from a public Shopify storefront. Valid empty result pages return `200` with an empty products array. `sortBy` and dynamic facet-filter query params (e.g. `fit`, `canonicalColour`) only take effect for headless storefronts (`transport_mode: \"ssr_embedded\"`) and return an invalid-param error if supplied against a classic store, since classic Shopify storefronts have no server-side sort or filter support. `sort_by`, `min_price`, `max_price`, `product_type`, `in_stock_only`, and `option_`-prefixed params (e.g. `option_size=Small,Medium`) drive a separate, independent mechanism -- Shopify's own native Storefront Filtering collection-page feature (`transport_mode: \"storefront_filtered\"`) -- which works for both classic and headless stores; supplying any of these takes precedence over sortBy/dynamic facet filters.", "operationId": "shopify-products", "parameters": [ { @@ -425445,7 +439068,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail from Shopify's credential-free product handle `.js` endpoint.", + "description": "Returns one product from any Shopify storefront, given the store URL and the product handle: title, description, product type, tags, price and compare-at price, availability, options, images, and each variant with its own price, availability and barcode. Prices are in decimal currency units; an unknown handle returns `404`.", "operationId": "shopify-product", "parameters": [ { @@ -425516,7 +439139,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products from Shopify's credential-free recommendations Ajax endpoint. The route handle is resolved to a Shopify product id before fetching recommendations.", + "description": "Returns recommended products from Shopify's product recommendations.", "operationId": "shopify-product-recommendations", "parameters": [ { @@ -425605,7 +439228,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Shopify's credential-free predictive search Ajax endpoint.", + "description": "Returns predictive search suggestions from any Shopify storefront for a query: matching products, collections and suggested queries. Choose which with `types` (default all three) and cap results per type with `limit` (default 10, max 20). Products carry price, availability, images and options; collections carry title, handle, description and product count.", "operationId": "shopify-search-suggest", "parameters": [ { @@ -425684,7 +439307,7 @@ "consumes": [ "application/json" ], - "description": "Fetches capped URL entries from Shopify child sitemaps matching the requested type.", + "description": "Lists URL entries from a Shopify storefront's sitemaps, for the required `url`. `type` filters (`all` by default, `products`, `collections`, `pages`, `blogs`, `agentic_discovery`, `other`) and `limit` caps entries (default 50, max 250). Each has `loc`, `type`, `handle`, `lastmod`, `changefreq` and optional `images`.", "operationId": "shopify-sitemap-urls", "parameters": [ { @@ -425764,7 +439387,7 @@ "consumes": [ "application/json" ], - "description": "Returns child sitemap URLs from a public Shopify `/sitemap.xml` index with inferred sitemap types.", + "description": "Lists the child sitemaps in a Shopify storefront's sitemap index, for the required `url`. Each has a `loc` and a `type` (`products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`) inferred from its URL. Localhost, private-network and credentialed URLs are rejected.", "operationId": "shopify-sitemaps", "parameters": [ { @@ -425821,7 +439444,7 @@ "consumes": [ "application/json" ], - "description": "Resolves a public Shopify storefront and returns normalized metadata from credential-free storefront JSON. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page.", + "description": "Resolves a public Shopify storefront and returns its metadata.", "operationId": "shopify-store", "parameters": [ { @@ -425878,7 +439501,7 @@ "consumes": [ "application/json" ], - "description": "Returns SimilarWeb data for a given query (typically a domain).", + "description": "Looks up a domain or keyword on SimilarWeb and returns the matching websites, companies (name, domain and logo) and apps on the App Store and Google Play.", "operationId": "similarweb-search", "parameters": [ { @@ -425935,7 +439558,7 @@ "consumes": [ "application/json" ], - "description": "Returns traffic and engagement data from SimilarWeb for a specific domain.", + "description": "Returns SimilarWeb's traffic profile for one domain: global, country and category rank, estimated monthly visits, engagement (bounce rate, pages per visit, time on site), top countries, traffic sources, top keywords and similar sites. `DataSource` shows whether the full source or the narrower public-page fallback answered; the fallback omits several fields.", "operationId": "similarweb-web", "parameters": [ { @@ -425992,7 +439615,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from SKIMS (https://skims.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from SKIMS (https://skims.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", "operationId": "skims-collections", "parameters": [ { @@ -426055,7 +439678,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one SKIMS (https://skims.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one SKIMS (https://skims.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", "operationId": "skims-collection-products", "parameters": [ { @@ -426132,7 +439755,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from SKIMS (https://skims.com). The storefront URL is fixed server-side.", + "description": "Lists SKIMS static pages, 50 per request by default (`limit` up to 250), with `page` starting at 1. Each page has its handle, title, URL, plain-text content and timestamps. An empty result is a normal 200. When `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`.", "operationId": "skims-pages", "parameters": [ { @@ -426195,7 +439818,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one SKIMS (https://skims.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one SKIMS static page by its `handle`: id, title, URL, plain-text `content` and the created, published and updated timestamps. Page text is cleaned, not raw HTML. An unknown handle returns 404. When the reduced form is served, `transport_mode` is `ssr_embedded` and `id` is omitted.", "operationId": "skims-page", "parameters": [ { @@ -426258,7 +439881,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from SKIMS's (https://skims.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from SKIMS's (https://skims.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "skims-products", "parameters": [ { @@ -426321,7 +439944,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one SKIMS (https://skims.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one SKIMS (https://skims.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "skims-product", "parameters": [ { @@ -426384,7 +440007,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one SKIMS (https://skims.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one SKIMS (https://skims.com) product handle. The storefront URL is fixed server-side.", "operationId": "skims-product-recommendations", "parameters": [ { @@ -426465,7 +440088,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from SKIMS's (https://skims.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from SKIMS's (https://skims.com) predictive search. The storefront URL is fixed server-side.", "operationId": "skims-search-suggest", "parameters": [ { @@ -426536,7 +440159,7 @@ "consumes": [ "application/json" ], - "description": "Returns capped URL entries from SKIMS's (https://skims.com) child sitemaps matching the requested type. The storefront URL is fixed server-side.", + "description": "Lists URL entries from SKIMS sitemaps, filtered by `type` (`all` by default, or `products`, `collections`, `pages`, `blogs`, `agentic_discovery`, `other`). Stops at `limit` entries (default 50, max 250). Each entry has `loc`, its type, handle, `lastmod`, `changefreq` and, where present, images with caption and title.", "operationId": "skims-sitemap-urls", "parameters": [ { @@ -426608,7 +440231,7 @@ "consumes": [ "application/json" ], - "description": "Returns child sitemap URLs from SKIMS's (https://skims.com) `/sitemap.xml` index with inferred sitemap types. The storefront URL is fixed server-side.", + "description": "Lists the child sitemaps in the SKIMS sitemap index, each with its `loc` URL and a `type` of `products`, `collections`, `pages`, `blogs`, `agentic_discovery` or `other`. Takes no parameters. Use it to see which sitemap files exist before listing their URLs.", "operationId": "skims-sitemaps", "produces": [ "application/json" @@ -426655,7 +440278,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for SKIMS (https://skims.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for SKIMS (https://skims.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "skims-store", "produces": [ "application/json" @@ -426699,7 +440322,7 @@ }, "/skynews/article": { "get": { - "description": "Returns public Sky News article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Sky News article by canonical `url` of the form `https://news.sky.com/story/...-`: title, description, section, authors, publication and update times, image, body `paragraphs` and a `paywalled` flag.", "operationId": "skynews-article", "parameters": [ { @@ -426753,7 +440376,7 @@ }, "/skynews/author": { "get": { - "description": "Returns a Sky News author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns a Sky News author's profile by canonical `url` (`https://news.sky.com/author/-`): name, `job_title`, biography paragraphs and recent articles. An `info` list carries whatever else the page shows, as label and value entries with an optional link, such as expertise, location, social handles or email.", "operationId": "skynews-author", "parameters": [ { @@ -426871,7 +440494,7 @@ }, "/skynews/news": { "get": { - "description": "Returns fresh Sky News top stories from its public RSS feed.", + "description": "Returns Sky News's latest top stories across the site. Takes no parameters. Each item has its title, URL, summary, publication time and image. Pass an item's URL to `skynews-article` for its body paragraphs.", "operationId": "skynews-news", "produces": [ "application/json" @@ -426989,7 +440612,7 @@ }, "/skynews/videos": { "get": { - "description": "Returns recent videos from the public Sky News videos hub.", + "description": "Lists recent videos from the Sky News videos hub. Takes no parameters. Each item has its title, URL, summary, author, lead image, publication time and type. An item's `url` can be passed to `skynews-video` to get that video's own metadata.", "operationId": "skynews-videos", "produces": [ "application/json" @@ -427021,7 +440644,7 @@ }, "/skysports/article": { "get": { - "description": "Returns public Sky Sports article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Sky Sports article by `url`, an HTTPS `skysports.com` address with a sport news path such as `/football/news//`: title, description, section, authors, publication and update times, image and body `paragraphs`. The returned URL uses `www.skysports.com`, and query strings and fragments are discarded.", "operationId": "skysports-article", "parameters": [ { @@ -427075,7 +440698,7 @@ }, "/skysports/author": { "get": { - "description": "Returns public author metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns a Sky Sports author's name, current `job_title`, biography paragraphs and the article links on their profile page, from an author `url` such as `https://www.skysports.com/author/kaveh-solhekol-773`. Each article has a title and URL, with summary, author, publication time and image where present.", "operationId": "skysports-author", "parameters": [ { @@ -427129,7 +440752,7 @@ }, "/skysports/headlines": { "get": { - "description": "Returns current headlines from one live Sky Sports section page.", + "description": "Returns the article cards from one Sky Sports section listing page. `section` is required and takes one of 22 slugs such as `football`, `f1`, `cricket`, `rugby-union`, `golf`, `boxing`, `nfl` or `darts`. The site's Show More pagination is not exposed, so only the first listing comes back.", "operationId": "skysports-headlines", "parameters": [ { @@ -427201,7 +440824,7 @@ }, "/skysports/news": { "get": { - "description": "Returns the latest Sky Sports top stories from its public RSS feed.", + "description": "Returns the 20 latest Sky Sports top stories. Takes no parameters. Each item has its title, canonical `www.skysports.com` article URL, summary, publication time and image.", "operationId": "skysports-news", "produces": [ "application/json" @@ -427233,7 +440856,7 @@ }, "/skysports/sections": { "get": { - "description": "Returns the 22 currently reachable sections in the live Sky Sports sports navigation.", + "description": "Lists the 22 Sky Sports sections that `skysports-headlines` accepts, from `football` and `f1` to `wwe` and `olympics`. Each entry has a `slug`, a display `name` and the section `url`. Winter Sports and Commonwealth Games pages returned 404 in the 2026-09-28 check and are not accepted.", "operationId": "skysports-sections", "produces": [ "application/json" @@ -427553,7 +441176,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Slickdeals deal thread's full comment thread: for each comment, the public username who posted it (with their forum rank/title and total post count -- the same public-forum-post attribution class this repo already exposes for Reddit), the comment content (as HTML and as cleaned plain text), when it was posted, a permalink, and reaction counts (like, funny, helpful, not helpful). Give either url (the exact value returned by GET /slickdeals/search or GET /slickdeals/deal) or thread_id; at least one is required. has_more indicates whether Slickdeals' own page truncated the reply list (no further pagination is currently exposed by this endpoint).", + "description": "Returns one Slickdeals deal thread's full comment thread: for each comment, the public username who posted it (with their forum rank/title and total post count), the comment content (as HTML and as cleaned plain text), when it was posted, a permalink, and reaction counts (like, funny, helpful, not helpful). Give either url (the exact value returned by GET /slickdeals/search or GET /slickdeals/deal) or thread_id; at least one is required. has_more indicates whether Slickdeals' own page truncated the reply list (no further pagination is currently exposed by this endpoint).", "operationId": "slickdeals-comments", "parameters": [ { @@ -427622,7 +441245,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Slickdeals deal thread's full detail: title, store, final/list price, community vote score, comment count, whether the deal is marked expired, the deal's product category and taxonomy (category/sub_category/category_paths, and separately the legacy forum/forum_id the thread was posted under), the public Slickdeals username who posted it (\"found by\" attribution, the same public-forum-post class this repo already exposes for Reddit) with a public community-standing summary (reputation, join date, deals posted, total votes/comments), a related_deals sidebar (Slickdeals' own Popular/Trending picks), the outbound merchant link, and the deal's own description. Give either url (the exact value returned by GET /slickdeals/search) or thread_id (Slickdeals' own numeric thread id, e.g. from a deal's URL path /f/{thread_id}-...); at least one is required. An unknown or removed deal returns 404.", + "description": "Returns one Slickdeals deal thread's full detail: title, store, final/list price, community vote score, comment count, whether the deal is marked expired, the deal's product category and taxonomy (category/sub_category/category_paths, and separately the legacy forum/forum_id the thread was posted under), the public Slickdeals username who posted it (\"found by\" attribution) with a public community-standing summary (reputation, join date, deals posted, total votes/comments), a related_deals sidebar (Slickdeals' own Popular/Trending picks), the outbound merchant link, and the deal's own description. Give either url (the exact value returned by GET /slickdeals/search) or thread_id (Slickdeals' own numeric thread id, e.g. from a deal's URL path /f/{thread_id}-...); at least one is required. An unknown or removed deal returns 404.", "operationId": "slickdeals-deal", "parameters": [ { @@ -427954,7 +441577,7 @@ "consumes": [ "application/json" ], - "description": "Searches Slickdeals (slickdeals.net), a community deal/coupon aggregator, for deal threads matching a free-text keyword query -- the same search this repo already exposes for Reddit, applied to Slickdeals' own deal-posting community. Each result is one community-submitted deal thread with its title (which conventionally embeds the deal price), a best-effort price extracted from that title, the merchant domain, the community vote (\"thumb\") score, the public Slickdeals username who posted it, and when it was posted. Pair a result's thread_id or url with GET /slickdeals/deal for the full detail record, including comment count and category. An optional forum_id restricts results to one Slickdeals legacy sub-forum (e.g. Hot Deals, Coupons) -- obtain a value from GET /slickdeals/forums, a closed enum validated before the request reaches upstream. An optional deal_type_id restricts results to one Slickdeals deal-type tag (e.g. Coupon, Free / Freebie, YMMV) -- obtain a value from GET /slickdeals/deal-types, also a closed enum validated before the request reaches upstream; composes with forum_id.", + "description": "Searches Slickdeals (slickdeals.net), a community deal/coupon aggregator, for deal threads matching a free-text keyword query. Each result is one community-submitted deal thread with its title (which conventionally embeds the deal price), a best-effort price extracted from that title, the merchant domain, the community vote (\"thumb\") score, the public Slickdeals username who posted it, and when it was posted. Pair a result's thread_id or url with GET /slickdeals/deal for the full detail record, including comment count and category. An optional forum_id restricts results to one Slickdeals legacy sub-forum (e.g. Hot Deals, Coupons) -- obtain a value from GET /slickdeals/forums, a closed enum validated before the request is made. An optional deal_type_id restricts results to one Slickdeals deal-type tag (e.g. Coupon, Free / Freebie, YMMV) -- obtain a value from GET /slickdeals/deal-types, also a closed enum validated before the request is made; composes with forum_id.", "operationId": "slickdeals-search", "parameters": [ { @@ -428025,7 +441648,7 @@ "consumes": [ "application/json" ], - "description": "Searches Slickdeals' modern search surface -- a richer alternative to GET /slickdeals/search's keyword-only RSS feed. Returns real pagination (page/total_pages/per_page/result_count), integer vote/comment/view counts read directly from the page's own data (not parsed from free text), a fuller per-deal record (store id, discount percent, status flags), and facets -- Categories, Stores, and Brands available for the current query, each option carrying a value usable as category_id/brand_id/store_id. Facet values and counts are scoped to the current query, not a site-wide enumeration -- category_id/brand_id/store_id are passthrough filters (obtain a value from a prior response's own facets), not validated against a closed enum. sort defaults to relevance; other values are passed through unvalidated since no server-side enumeration of the full accepted set was found.", + "description": "Searches Slickdeals' modern search surface -- a richer alternative to GET /slickdeals/search's keyword-only search. Returns real pagination (page/total_pages/per_page/result_count), integer vote/comment/view counts (not parsed from free text), a fuller per-deal record (store id, discount percent, status flags), and facets -- Categories, Stores, and Brands available for the current query, each option carrying a value usable as category_id/brand_id/store_id. Facet values and counts are scoped to the current query, not a site-wide enumeration -- category_id/brand_id/store_id are passthrough filters (obtain a value from a prior response's own facets), not validated against a closed enum. sort defaults to relevance; other values are passed through unvalidated.", "operationId": "slickdeals-search-advanced", "parameters": [ { @@ -428271,7 +441894,7 @@ }, "/sloanreview/headlines": { "get": { - "description": "Returns article cards from MIT Sloan Management Review's public homepage feed.", + "description": "Returns the article cards on the MIT Sloan Management Review homepage, including editor picks and tiled feeds, with no parameters. Each item has a `title` and `url` and, when present, `topic`, `authors` and `published_at`. It covers the homepage only; the articles endpoint finds URLs beyond it.", "operationId": "sloanreview-headlines", "produces": [ "application/json" @@ -429052,7 +442675,7 @@ "consumes": [ "application/json" ], - "description": "Returns one resource of one esports game from SofaScore's credential-free public JSON, chosen with `part`: `statistics` (team totals such as kills, towers and barracks for Dota 2, gold and drakes for League of Legends), `lineups` (every player with hero or champion and per-player statistics such as net worth, gold or ADR), `bans` (banned heroes or champions per side) and `rounds` (Counter-Strike round history with outcome, winner and side per round, including overtime). Only the requested block is returned. Get the game id from sofascore-event-esports-games. Statistics and bans exist for Dota 2 and League of Legends only (404 for Counter-Strike), rounds fill for Counter-Strike only (an empty list otherwise) and lineups work for all three. Returns 404 when SofaScore has no such data for the game.", + "description": "Returns one resource of one esports game from SofaScore, chosen with `part`: `statistics` (team totals such as kills, towers and barracks for Dota 2, gold and drakes for League of Legends), `lineups` (every player with hero or champion and per-player statistics such as net worth, gold or ADR), `bans` (banned heroes or champions per side) and `rounds` (Counter-Strike round history with outcome, winner and side per round, including overtime). Only the requested block is returned. Get the game id from sofascore-event-esports-games. Statistics and bans exist for Dota 2 and League of Legends only (404 for Counter-Strike), rounds fill for Counter-Strike only (an empty list otherwise) and lineups work for all three. Returns 404 when SofaScore has no such data for the game.", "operationId": "sofascore-esports-game", "parameters": [ { @@ -429129,7 +442752,7 @@ "consumes": [ "application/json" ], - "description": "Returns one match's detail (teams, score, status, venue, referee) from SofaScore's credential-free public JSON.", + "description": "Returns one SofaScore match by event id: home and away teams and scores, status, start time, tournament, attendance and winner code, plus venue and referee when SofaScore has them. An unknown or malformed id surfaces as an upstream error.", "operationId": "sofascore-event", "parameters": [ { @@ -429192,7 +442815,7 @@ "consumes": [ "application/json" ], - "description": "Returns every pitch of one baseball at-bat from SofaScore's credential-free public JSON, in pitch order: the ball-strike-out count, outcome code, pitch type and name, speed in kilometres per hour, zone, plate location, strike-zone bounds, batter and pitcher hand, the score, and for balls put in play the hit type, trajectory, hardness and location plus runner movements and fielder credits. Get the at-bat id (`at_bat_id`) from sofascore-event-at-bats for the same event. Returns 404 when SofaScore has no pitches for that at-bat, which includes an at-bat id that does not belong to the event.", + "description": "Returns every pitch of one baseball at-bat from SofaScore, in pitch order: the ball-strike-out count, outcome code, pitch type and name, speed in kilometres per hour, zone, plate location, strike-zone bounds, batter and pitcher hand, the score, and for balls put in play the hit type, trajectory, hardness and location plus runner movements and fielder credits. Get the at-bat id (`at_bat_id`) from sofascore-event-at-bats for the same event. Returns 404 when SofaScore has no pitches for that at-bat, which includes an at-bat id that does not belong to the event.", "operationId": "sofascore-event-at-bat-pitches", "parameters": [ { @@ -429263,7 +442886,7 @@ "consumes": [ "application/json" ], - "description": "Returns a baseball match's at-bat timeline from SofaScore's credential-free public JSON, in play order: for each plate appearance the inning and half (`top` or `bottom`), pitcher, hitter, their teams, when it ended and the home and away win probabilities before and after it. Use an at-bat `id` with sofascore-event-at-bat-pitches to read its pitches. Returns 404 when SofaScore has no at-bat data for the match, which includes matches that have not started and sports other than baseball.", + "description": "Returns a baseball match's at-bat timeline from SofaScore, in play order: for each plate appearance the inning and half (`top` or `bottom`), pitcher, hitter, their teams, when it ended and the home and away win probabilities before and after it. Use an at-bat `id` with sofascore-event-at-bat-pitches to read its pitches. Returns 404 when SofaScore has no at-bat data for the match, which includes matches that have not started and sports other than baseball.", "operationId": "sofascore-event-at-bats", "parameters": [ { @@ -429389,7 +443012,7 @@ "consumes": [ "application/json" ], - "description": "Returns a baseball match's top performers from SofaScore's credential-free public JSON: each pitcher or batter (`role`) with a rating, their team and a snake_case map of the statistics that earned the mention (for example pitching strike outs, batting home runs and runs batted in). Returns 404 when SofaScore has no top performers for the match, which includes matches that have not started and sports other than baseball.", + "description": "Returns a baseball match's top performers from SofaScore: each pitcher or batter (`role`) with a rating, their team and a snake_case map of the statistics that earned the mention (for example pitching strike outs, batting home runs and runs batted in). Returns 404 when SofaScore has no top performers for the match, which includes matches that have not started and sports other than baseball.", "operationId": "sofascore-event-baseball-top-performers", "parameters": [ { @@ -429452,7 +443075,7 @@ "consumes": [ "application/json" ], - "description": "Returns a match's best-rated players per side, the overall top-rated list, and the player of the match (each with team and value) from SofaScore's credential-free public JSON. Covers football (value is the match rating, label `rating`) and ice hockey (label `pts`, value the points scored; a goalkeeper with no points has no numeric `value` and carries the upstream dash in `value_text`). The basketball, baseball and tennis matches checked returned no summary. Returns 404 when SofaScore has no best-players summary for the match, which includes matches that have not started, sports without one and fixtures without rated players.", + "description": "Returns a match's best-rated players per side, the overall top-rated list, and the player of the match (each with team and value) from SofaScore. Covers football (value is the match rating, label `rating`) and ice hockey (label `pts`, value the points scored; a goalkeeper with no points has no numeric `value` and carries SofaScore's dash in `value_text`). The basketball, baseball and tennis matches checked returned no summary. Returns 404 when SofaScore has no best-players summary for the match, which includes matches that have not started, sports without one and fixtures without rated players.", "operationId": "sofascore-event-best-players", "parameters": [ { @@ -429515,7 +443138,7 @@ "consumes": [ "application/json" ], - "description": "Returns a match's text commentary (minute, type, text, and the players involved, plus the running score on scoring lines) from SofaScore's credential-free public JSON, newest first. Works for football and basketball matches that have commentary. An empty `comments` list is a valid response (a live match with no lines yet). Returns 404 when SofaScore has no commentary for the match, which includes matches that have not started.", + "description": "Returns a match's text commentary (minute, type, text, and the players involved, plus the running score on scoring lines) from SofaScore, newest first. Works for football and basketball matches that have commentary. An empty `comments` list is a valid response (a live match with no lines yet). Returns 404 when SofaScore has no commentary for the match, which includes matches that have not started.", "operationId": "sofascore-event-comments", "parameters": [ { @@ -429578,7 +443201,7 @@ "consumes": [ "application/json" ], - "description": "Returns the games (maps) of an esports match from SofaScore's credential-free public JSON: each game's id, status, start time, length in seconds, winner, score per side (kills for Dota 2 and League of Legends, rounds with half and overtime split for Counter-Strike), the map for Counter-Strike, and whether complete statistics exist. Use a game `id` with sofascore-esports-game to read its statistics, lineups, bans or rounds. Returns 404 when SofaScore has no games for the event, which includes sports other than esports.", + "description": "Returns the games (maps) of an esports match from SofaScore: each game's id, status, start time, length in seconds, winner, score per side (kills for Dota 2 and League of Legends, rounds with half and overtime split for Counter-Strike), the map for Counter-Strike, and whether complete statistics exist. Use a game `id` with sofascore-esports-game to read its statistics, lineups, bans or rounds. Returns 404 when SofaScore has no games for the event, which includes sports other than esports.", "operationId": "sofascore-event-esports-games", "parameters": [ { @@ -429641,7 +443264,7 @@ "consumes": [ "application/json" ], - "description": "Returns a match's momentum graph as minute and value points (positive values favour the home side) plus period length information, from SofaScore's credential-free public JSON. Covers football, ice hockey and basketball. An empty `points` list is a valid response (a live match that has just started). Returns 404 when SofaScore has no momentum graph for the match, which includes matches that have not started and sports without one such as tennis and baseball.", + "description": "Returns a match's momentum graph as minute and value points (positive values favour the home side) plus period length information, from SofaScore. Covers football, ice hockey and basketball. An empty `points` list is a valid response (a live match that has just started). Returns 404 when SofaScore has no momentum graph for the match, which includes matches that have not started and sports without one such as tennis and baseball.", "operationId": "sofascore-event-graph", "parameters": [ { @@ -429704,7 +443327,7 @@ "consumes": [ "application/json" ], - "description": "Returns the historical head-to-head win/draw record between a match's two teams (and managers, when available) from SofaScore's credential-free public JSON.", + "description": "Returns the historical head-to-head win/draw record between a match's two teams (and managers, when available) from SofaScore.", "operationId": "sofascore-event-h2h", "parameters": [ { @@ -429830,7 +443453,7 @@ "consumes": [ "application/json" ], - "description": "Returns one match's goal, card, substitution, and period timeline from SofaScore's credential-free public JSON. An empty `incidents` list is a valid response before kickoff.", + "description": "Returns one match's goal, card, substitution, and period timeline from SofaScore. An empty `incidents` list is a valid response before kickoff.", "operationId": "sofascore-event-incidents", "parameters": [ { @@ -429893,7 +443516,7 @@ "consumes": [ "application/json" ], - "description": "Returns a cricket match's innings scorecards from SofaScore's credential-free public JSON. Each innings has the batting and bowling teams, runs, wickets, overs in cricket notation (18.4 is 18 overs and 4 balls), extras (wides, no balls, byes, leg byes, penalty), every batter's line (runs, balls, fours, sixes, dismissal with the bowler and fielder, fall-of-wicket score and over), every bowler's figures (overs, maidens, runs, wickets, wides, no balls), the partnerships and a derived fall-of-wickets list. Works for T20, one-day and Test matches (a Test lists up to four innings). Returns 404 when SofaScore has no innings data for the match, which includes matches that have not started and sports other than cricket.", + "description": "Returns a cricket match's innings scorecards from SofaScore. Each innings has the batting and bowling teams, runs, wickets, overs in cricket notation (18.4 is 18 overs and 4 balls), extras (wides, no balls, byes, leg byes, penalty), every batter's line (runs, balls, fours, sixes, dismissal with the bowler and fielder, fall-of-wicket score and over), every bowler's figures (overs, maidens, runs, wickets, wides, no balls), the partnerships and a derived fall-of-wickets list. Works for T20, one-day and Test matches (a Test lists up to four innings). Returns 404 when SofaScore has no innings data for the match, which includes matches that have not started and sports other than cricket.", "operationId": "sofascore-event-innings", "parameters": [ { @@ -429956,7 +443579,7 @@ "consumes": [ "application/json" ], - "description": "Returns one match's starting XI and substitutes per side, with formation, from SofaScore's credential-free public JSON. Returns 404 when SofaScore has no lineups for the match. A missing-lineup result may be reused for up to two minutes before checking again.", + "description": "Returns one match's starting XI and substitutes per side, with formation. Returns 404 when SofaScore has no lineups for the match. A missing-lineup result may be reused for up to two minutes before checking again.", "operationId": "sofascore-event-lineups", "parameters": [ { @@ -430082,7 +443705,7 @@ "consumes": [ "application/json" ], - "description": "Returns one match's betting markets and choices from SofaScore's credential-free public JSON. Returns 404 when SofaScore has no odds for the match.", + "description": "Returns one match's betting markets and choices. Returns 404 when SofaScore has no odds for the match.", "operationId": "sofascore-event-odds", "parameters": [ { @@ -430216,7 +443839,7 @@ "consumes": [ "application/json" ], - "description": "Returns one player's statistics inside one football match (minutes, rating, passes, duels, shots, expected goals, and more) as a snake_case metric map from SofaScore's credential-free public JSON. The set of metrics depends on the player's position, so absent metrics are omitted rather than zero. Get `player_id` from event-lineups. Returns 404 when SofaScore has no statistics for that player in that match.", + "description": "Returns one player's statistics inside one football match (minutes, rating, passes, duels, shots, expected goals, and more) as a snake_case metric map. The set of metrics depends on the player's position, so absent metrics are omitted rather than zero. Get `player_id` from event-lineups. Returns 404 when SofaScore has no statistics for that player in that match.", "operationId": "sofascore-event-player-statistics", "parameters": [ { @@ -430287,7 +443910,7 @@ "consumes": [ "application/json" ], - "description": "Returns a racket-sport match's point-by-point timeline from SofaScore's credential-free public JSON, with sets and games in play order. Tennis sets list games and each game lists every point with the running score (`0`, `15`, `30`, `40`, `A`, or a plain count in a tie-break), the server, the game winner, a `description` of `ace` or `double_fault` where SofaScore flags it, and break point (`break_point`) or set or match point (`set_or_match_point`) markers per player. Table tennis and badminton sets list their points directly. The ace flag is a lower bound of the match's real ace count. Darts matches are not covered. Returns 404 when SofaScore has no point-by-point data for the match, which includes matches that have not started and sports without it.", + "description": "Returns a racket-sport match's point-by-point timeline, with sets and games in play order. Tennis sets list games and each game lists every point with the running score (`0`, `15`, `30`, `40`, `A`, or a plain count in a tie-break), the server, the game winner, a `description` of `ace` or `double_fault` where SofaScore flags it, and break point (`break_point`) or set or match point (`set_or_match_point`) markers per player. Table tennis and badminton sets list their points directly. The ace flag is a lower bound of the match's real ace count. Darts matches are not covered. Returns 404 when SofaScore has no point-by-point data for the match, which includes matches that have not started and sports without it.", "operationId": "sofascore-event-point-by-point", "parameters": [ { @@ -430413,7 +444036,7 @@ "consumes": [ "application/json" ], - "description": "Returns every shot in a football or ice hockey match from SofaScore's credential-free public JSON. Football shots carry the shooter, side, outcome (`shot_type`), situation, body part, expected goals (xG and xGOT), minute, and pitch and goal-mouth coordinates. Ice hockey shots carry the shooter, team, side, shot technique (`shot_type`, for example `wrist`), `outcome` (`made`, `saved`, `missed` or `blocked`), `strength` (`even`, `powerplay` or `shorthanded`), period and period clock, rink `coordinates` and, for most shots, `xg`. An empty `shots` list is a valid response (a live match with no shots yet). Returns 404 when SofaScore has no shot map for the match, which includes matches that have not started, basketball and other sports without one, and fixtures without expected-goals coverage.", + "description": "Returns every shot in a football or ice hockey match. Football shots carry the shooter, side, outcome (`shot_type`), situation, body part, expected goals (xG and xGOT), minute, and pitch and goal-mouth coordinates. Ice hockey shots carry the shooter, team, side, shot technique (`shot_type`, for example `wrist`), `outcome` (`made`, `saved`, `missed` or `blocked`), `strength` (`even`, `powerplay` or `shorthanded`), period and period clock, rink `coordinates` and, for most shots, `xg`. An empty `shots` list is a valid response (a live match with no shots yet). Returns 404 when SofaScore has no shot map for the match, which includes matches that have not started, basketball and other sports without one, and fixtures without expected-goals coverage.", "operationId": "sofascore-event-shotmap", "parameters": [ { @@ -430476,7 +444099,7 @@ "consumes": [ "application/json" ], - "description": "Returns one match's statistics (possession, shots, passes, and more, grouped and split by period) from SofaScore's credential-free public JSON. Returns 404 when SofaScore has no tracked statistics for the match.", + "description": "Returns one match's statistics (possession, shots, passes, and more, grouped and split by period). Returns 404 when SofaScore has no tracked statistics for the match.", "operationId": "sofascore-event-statistics", "parameters": [ { @@ -430610,7 +444233,7 @@ "consumes": [ "application/json" ], - "description": "Returns a match's team streaks and trends from SofaScore's credential-free public JSON: `general` statements about each side's recent matches (for example `Wins` 6 or `No goals conceded` 4) and `head2head` statements about their meetings. Each item names the streak, a `value` that is either a run length (`6`) or a ratio (`5/5`), the `team` it refers to (`home`, `away` or `both`) and, where SofaScore reports it, whether the streak `continued` into this match. Returns 404 when SofaScore lists no streaks for the match, which includes tennis matches.", + "description": "Returns a match's team streaks and trends: `general` statements about each side's recent matches (for example `Wins` 6 or `No goals conceded` 4) and `head2head` statements about their meetings. Each item names the streak, a `value` that is either a run length (`6`) or a ratio (`5/5`), the `team` it refers to (`home`, `away` or `both`) and, where SofaScore reports it, whether the streak `continued` into this match. Returns 404 when SofaScore lists no streaks for the match, which includes tennis matches.", "operationId": "sofascore-event-team-streaks", "parameters": [ { @@ -430673,7 +444296,7 @@ "consumes": [ "application/json" ], - "description": "Returns a tennis match's per-game momentum series from SofaScore's credential-free public JSON: for each game of each set a `value` (positive favours the home player or team, negative the away side) and whether a break of serve `break_occurred`. An empty `games` list is a valid response (a live match with no completed game yet). Returns 404 when SofaScore has no tennis power data for the match, which includes matches that have not started and sports other than tennis.", + "description": "Returns a tennis match's per-game momentum series: for each game of each set a `value` (positive favours the home player or team, negative the away side) and whether a break of serve `break_occurred`. An empty `games` list is a valid response (a live match with no completed game yet). Returns 404 when SofaScore has no tennis power data for the match, which includes matches that have not started and sports other than tennis.", "operationId": "sofascore-event-tennis-power", "parameters": [ { @@ -430806,7 +444429,7 @@ "consumes": [ "application/json" ], - "description": "Returns a match's community vote tallies from SofaScore's credential-free public JSON: the match result vote (`match_result` with `home`, `away`, `total` and `draw`, where `draw` is absent for two-way sports such as basketball and tennis), both teams to score, which team scores first and who should have won (when SofaScore has opened that vote). A block that holds no votes is omitted. Returns 404 when SofaScore has no votes for the match.", + "description": "Returns a match's community vote tallies: the match result vote (`match_result` with `home`, `away`, `total` and `draw`, where `draw` is absent for two-way sports such as basketball and tennis), both teams to score, which team scores first and who should have won (when SofaScore has opened that vote). A block that holds no votes is omitted. Returns 404 when SofaScore has no votes for the match.", "operationId": "sofascore-event-votes", "parameters": [ { @@ -430869,7 +444492,7 @@ "consumes": [ "application/json" ], - "description": "Returns currently live events for a sport from SofaScore's credential-free public JSON. The `sport` enum accepts `american-football`, `aussie-rules`, `badminton`, `bandy`, `baseball`, `basketball`, `beach-volley`, `cricket`, `darts`, `esports`, `floorball`, `football`, `futsal`, `handball`, `ice-hockey`, `mma`, `minifootball`, `padel`, `rugby`, `snooker`, `table-tennis`, `tennis`, `volleyball`, and `waterpolo`; the sports endpoint lists them. An empty `events` list is a valid response when nothing is live right now.", + "description": "Returns currently live events for a sport. The `sport` enum accepts `american-football`, `aussie-rules`, `badminton`, `bandy`, `baseball`, `basketball`, `beach-volley`, `cricket`, `darts`, `esports`, `floorball`, `football`, `futsal`, `handball`, `ice-hockey`, `mma`, `minifootball`, `padel`, `rugby`, `snooker`, `table-tennis`, `tennis`, `volleyball`, and `waterpolo`; the sports endpoint lists them. An empty `events` list is a valid response when nothing is live right now.", "operationId": "sofascore-live-events", "parameters": [ { @@ -430952,7 +444575,7 @@ "consumes": [ "application/json" ], - "description": "Returns a manager's (coach's) profile (nationality, birth date, preferred formation, current team and teams, and the career win/draw/loss and goals record) from SofaScore's credential-free public JSON. Get a manager id from sofascore-search results of type `manager`.", + "description": "Returns a manager's (coach's) profile (nationality, birth date, preferred formation, current team and teams, and the career win/draw/loss and goals record). Get a manager id from sofascore-search results of type `manager`.", "operationId": "sofascore-manager", "parameters": [ { @@ -431015,7 +444638,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of the matches a manager (coach) has recently taken charge of, newest first, across all clubs they managed, from SofaScore's credential-free public JSON. Only past matches are available; SofaScore publishes no upcoming list for managers. Returns 404 for a page past the end of the manager's history.", + "description": "Returns a page of the matches a manager (coach) has recently taken charge of, newest first, across all clubs they managed. Only past matches are available; SofaScore publishes no upcoming list for managers. Returns 404 for a page past the end of the manager's history.", "operationId": "sofascore-manager-events", "parameters": [ { @@ -431085,7 +444708,7 @@ "consumes": [ "application/json" ], - "description": "Returns the bouts of one MMA fight card from SofaScore's credential-free public JSON, main event first, narrowed with `part` to `all` bouts, the `maincard`, the `prelims` or the `earlyprelims`. Each bout has the fighters (country, nickname, ranking where 0 is the champion, record), weight class, scheduled rounds, status, and for finished bouts the winner, win type, final round and fight time. Get `org_id` and `card_id` from sofascore-mma-schedule. Returns 404 when the card is unknown or has no bouts in that segment (for example a card without early prelims).", + "description": "Returns the bouts of one MMA fight card, main event first, narrowed with `part` to `all` bouts, the `maincard`, the `prelims` or the `earlyprelims`. Each bout has the fighters (country, nickname, ranking where 0 is the champion, record), weight class, scheduled rounds, status, and for finished bouts the winner, win type, final round and fight time. Get `org_id` and `card_id` from sofascore-mma-schedule. Returns 404 when the card is unknown or has no bouts in that segment (for example a card without early prelims).", "operationId": "sofascore-mma-card", "parameters": [ { @@ -431170,7 +444793,7 @@ "consumes": [ "application/json" ], - "description": "Returns the main event of every fight card an MMA organisation holds in one calendar month from SofaScore's credential-free public JSON, with the card id and name, fighters (country, nickname, ranking where 0 is the champion, record), weight class, scheduled rounds, status, and for finished fights the winner, win type and final round. Find organisation ids (UFC 19906, PFL 19910, ONE 20269, Rizin 19905, Fight Nation Championship 20463, KSW 19946, OKTAGON 20258, Absolute Championship Akhmat 20254, Cage Warriors 19909, Dana White's Contender Series 20264, Brave CF 20267, Jungle Fight 20253) with sofascore-categories (sport `mma`) and sofascore-category-tournaments (category 1708). Use the `card_id` with sofascore-mma-card to read every bout. Returns 404 when the organisation has no card in that month or the id is not an MMA organisation.", + "description": "Returns the main event of every fight card an MMA organisation holds in one calendar month, with the card id and name, fighters (country, nickname, ranking where 0 is the champion, record), weight class, scheduled rounds, status, and for finished fights the winner, win type and final round. Find organisation ids (UFC 19906, PFL 19910, ONE 20269, Rizin 19905, Fight Nation Championship 20463, KSW 19946, OKTAGON 20258, Absolute Championship Akhmat 20254, Cage Warriors 19909, Dana White's Contender Series 20264, Brave CF 20267, Jungle Fight 20253) with sofascore-categories (sport `mma`) and sofascore-category-tournaments (category 1708). Use the `card_id` with sofascore-mma-card to read every bout. Returns 404 when the organisation has no card in that month or the id is not an MMA organisation.", "operationId": "sofascore-mma-schedule", "parameters": [ { @@ -431419,7 +445042,7 @@ "consumes": [ "application/json" ], - "description": "Returns one player's bio (position, height, market value, current team) from SofaScore's credential-free public JSON.", + "description": "Returns one SofaScore player by numeric `id`: name, short name, position, jersey number, date of birth, height, preferred foot, country, market value and currency, and the current team. `deceased` is `true` for historical players. An unknown or malformed id returns an upstream error.", "operationId": "sofascore-player", "parameters": [ { @@ -431977,7 +445600,7 @@ "consumes": [ "application/json" ], - "description": "Returns a player's statistics for one competition season (appearances, rating, goals, assists, passing, duels, and more) as a snake_case metric map, plus the team and a rating breakdown when available, from SofaScore's credential-free public JSON. The `type` enum accepts `overall`, `home`, `away`, `regular_season`, and `playoffs` and defaults to `overall`; only the types listed for that season by player-statistics-seasons exist (football players have `overall`, `home`, `away`; basketball, ice hockey and baseball players have `regular_season` and `playoffs`). Returns 404 when SofaScore has no statistics of that type for the combination.", + "description": "Returns a player's statistics for one competition season (appearances, rating, goals, assists, passing, duels, and more) as a snake_case metric map, plus the team and a rating breakdown when available. The `type` enum accepts `overall`, `home`, `away`, `regular_season`, and `playoffs` and defaults to `overall`; only the types listed for that season by player-statistics-seasons exist (football players have `overall`, `home`, `away`; basketball, ice hockey and baseball players have `regular_season` and `playoffs`). Returns 404 when SofaScore has no statistics of that type for the combination.", "operationId": "sofascore-player-season-statistics", "parameters": [ { @@ -432151,7 +445774,7 @@ "consumes": [ "application/json" ], - "description": "Lists the competitions and seasons a player has statistics for, with the statistics `types` available for each season, from SofaScore's credential-free public JSON. Use a returned competition id (`unique_tournament_id`), season `id` and one of its `types` with player-season-statistics. The `types` values are `overall`, `home`, `away`, `regular_season`, and `playoffs`. Returns 404 for players with no tracked statistics (for example tennis players).", + "description": "Lists the competitions and seasons a player has statistics for, with the statistics `types` available for each season. Use a returned competition id (`unique_tournament_id`), season `id` and one of its `types` with player-season-statistics. The `types` values are `overall`, `home`, `away`, `regular_season`, and `playoffs`. Returns 404 for players with no tracked statistics (for example tennis players).", "operationId": "sofascore-player-statistics-seasons", "parameters": [ { @@ -432277,7 +445900,7 @@ "consumes": [ "application/json" ], - "description": "Returns a player's transfer history (clubs moved from and to, date, fee, and SofaScore's numeric transfer type code), newest first, from SofaScore's credential-free public JSON. An empty `transfers` list is a valid response for a player who has never moved clubs. Returns 404 when SofaScore has no transfer record for the player (seen for ice hockey and baseball players). The `type_code` values are SofaScore's own opaque codes and are not translated.", + "description": "Returns a player's transfer history (clubs moved from and to, date, fee, and SofaScore's numeric transfer type code), newest first. An empty `transfers` list is a valid response for a player who has never moved clubs. Returns 404 when SofaScore has no transfer record for the player (seen for ice hockey and baseball players). The `type_code` values are SofaScore's own opaque codes and are not translated.", "operationId": "sofascore-player-transfers", "parameters": [ { @@ -432678,7 +446301,7 @@ "consumes": [ "application/json" ], - "description": "Returns fixtures for one round of a competition season from SofaScore's credential-free public JSON. Get `id` from search or category-tournaments, `season` from tournament-seasons, and the round values from tournament-rounds. Round numbers are not unique in cups, and knockout or named rounds return 404 unless the round's `slug` is passed (plus its `prefix` when tournament-rounds lists one): the UEFA Champions League has a qualifying and a league-phase round 1, and a playoff round 636 both with the `Qualification` prefix and without. Plain numbered league rounds need only `round`. `slug` is lowercase letters, digits, and hyphens (up to 64 characters); `prefix` is letters, digits, spaces, and hyphens (up to 64 characters) and is only valid together with `slug`.", + "description": "Returns fixtures for one round of a competition season. Get `id` from search or category-tournaments, `season` from tournament-seasons, and the round values from tournament-rounds. Round numbers are not unique in cups, and knockout or named rounds return 404 unless the round's `slug` is passed (plus its `prefix` when tournament-rounds lists one): the UEFA Champions League has a qualifying and a league-phase round 1, and a playoff round 636 both with the `Qualification` prefix and without. Plain numbered league rounds need only `round`. `slug` is lowercase letters, digits, and hyphens (up to 64 characters); `prefix` is letters, digits, spaces, and hyphens (up to 64 characters) and is only valid together with `slug`.", "operationId": "sofascore-round-events", "parameters": [ { @@ -432942,7 +446565,7 @@ "consumes": [ "application/json" ], - "description": "Searches SofaScore's credential-free public JSON for teams, players, and competitions matching a free-text query. An empty `results` list is a valid response when nothing matches.", + "description": "Searches SofaScore for teams, players, and competitions matching a free-text query. An empty `results` list is a valid response when nothing matches.", "operationId": "sofascore-search", "parameters": [ { @@ -432999,7 +446622,7 @@ "consumes": [ "application/json" ], - "description": "Searches SofaScore for one entity type and returns up to 20 ranked results per page, each normalized for its type: `events` (matches), `teams`, `players` (with team and position), `managers`, `referees`, `venues` (with city and capacity) and `unique_tournaments` (competitions with category). Page with the zero-based `page`; an empty page means there are no further results. The optional `sport` filter (any key listed by sofascore/sports, such as `football`, `basketball`, `tennis` or `mma`) narrows `teams`, `players`, `managers` and `unique_tournaments`, and is rejected for `events`, `referees` and `venues`, which ignore it. Use the returned ids with the matching endpoints (team, player, manager, venue, tournament-seasons, event).", + "description": "Searches SofaScore for one entity type and returns up to 20 ranked results per page: `events` (matches), `teams`, `players` (with team and position), `managers`, `referees`, `venues` (with city and capacity) and `unique_tournaments` (competitions with category). Page with the zero-based `page`; an empty page means there are no further results. The optional `sport` filter (any key listed by sofascore/sports, such as `football`, `basketball`, `tennis` or `mma`) narrows `teams`, `players`, `managers` and `unique_tournaments`, and is rejected for `events`, `referees` and `venues`, which ignore it. Use the returned ids with the matching endpoints (team, player, manager, venue, tournament-seasons, event).", "operationId": "sofascore-search-typed", "parameters": [ { @@ -433764,7 +447387,7 @@ "consumes": [ "application/json" ], - "description": "Returns a league table for a competition season from SofaScore's credential-free public JSON. The `type` enum accepts `total`, `home`, and `away`. Get `id` from search and `season` from tournament-seasons.", + "description": "Returns a league table for a competition season. The `type` enum accepts `total`, `home`, and `away`. Get `id` from search and `season` from tournament-seasons.", "operationId": "sofascore-standings", "parameters": [ { @@ -433848,7 +447471,7 @@ "consumes": [ "application/json" ], - "description": "Returns one team's detail (identity, manager, venue, primary competition) from SofaScore's credential-free public JSON.", + "description": "Returns one SofaScore team by numeric `id`: name, short name, country, sport, manager, venue with its city and capacity, primary colour, and national-team flag. `tournament_id` and `tournament_name` give the team's primary competition, such as its domestic league. An unknown id returns an upstream error.", "operationId": "sofascore-team", "parameters": [ { @@ -433974,7 +447597,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of a team's upcoming or recent fixtures from SofaScore's credential-free public JSON. The `direction` enum accepts `next` and `last`. An empty `events` list is a valid response when there is no fixture on that page.", + "description": "Returns a page of a team's upcoming or recent fixtures. The `direction` enum accepts `next` and `last`. An empty `events` list is a valid response when there is no fixture on that page.", "operationId": "sofascore-team-events", "parameters": [ { @@ -434567,7 +448190,7 @@ "consumes": [ "application/json" ], - "description": "Returns a team's full squad from SofaScore's credential-free public JSON.", + "description": "Returns a team's full squad from SofaScore by team id: each player's name, position, jersey number, date of birth, height, country and preferred foot, plus SofaScore's market value estimate and its currency when available.", "operationId": "sofascore-team-players", "parameters": [ { @@ -434693,7 +448316,7 @@ "consumes": [ "application/json" ], - "description": "Returns a team's statistics for one competition season (goals, shots, passing, duels, discipline, and the matching conceded-side metrics) as a snake_case metric map from SofaScore's credential-free public JSON. The `type` enum accepts `overall`, `home`, `away`, `regular_season`, and `playoffs` and defaults to `overall`; only the types listed for that season by team-statistics-seasons exist (football teams have `overall` only; basketball, ice hockey and baseball teams have `regular_season` and `playoffs`). Returns 404 when SofaScore has no statistics of that type for the combination.", + "description": "Returns a team's statistics for one competition season (goals, shots, passing, duels, discipline, and the matching conceded-side metrics) as a snake_case metric map. The `type` enum accepts `overall`, `home`, `away`, `regular_season`, and `playoffs` and defaults to `overall`; only the types listed for that season by team-statistics-seasons exist (football teams have `overall` only; basketball, ice hockey and baseball teams have `regular_season` and `playoffs`). Returns 404 when SofaScore has no statistics of that type for the combination.", "operationId": "sofascore-team-season-statistics", "parameters": [ { @@ -434786,7 +448409,7 @@ "consumes": [ "application/json" ], - "description": "Lists the competitions and seasons a team has statistics for, with the statistics `types` available for each season, from SofaScore's credential-free public JSON. Use a returned competition id (`unique_tournament_id`), season `id` and one of its `types` with team-season-statistics. The `types` values are `overall`, `home`, `away`, `regular_season`, and `playoffs`. Returns 404 for teams with no tracked statistics.", + "description": "Lists the competitions and seasons a team has statistics for, with the statistics `types` available for each season. Use a returned competition id (`unique_tournament_id`), season `id` and one of its `types` with team-season-statistics. The `types` values are `overall`, `home`, `away`, `regular_season`, and `playoffs`. Returns 404 for teams with no tracked statistics.", "operationId": "sofascore-team-statistics-seasons", "parameters": [ { @@ -435019,7 +448642,7 @@ "consumes": [ "application/json" ], - "description": "Returns a team's recent incoming (`transfers_in`) and outgoing (`transfers_out`) transfers with player, clubs, date, fee, and SofaScore's numeric transfer type code from SofaScore's credential-free public JSON. Empty lists are valid for a quiet transfer window. Returns 404 when SofaScore has no transfer record for the team (seen for ice hockey and baseball teams). The `type_code` values are SofaScore's own opaque codes and are not translated.", + "description": "Returns a team's recent incoming (`transfers_in`) and outgoing (`transfers_out`) transfers with player, clubs, date, fee, and SofaScore's numeric transfer type code. Empty lists are valid for a quiet transfer window. Returns 404 when SofaScore has no transfer record for the team (seen for ice hockey and baseball teams). The `type_code` values are SofaScore's own opaque codes and are not translated.", "operationId": "sofascore-team-transfers", "parameters": [ { @@ -435641,7 +449264,7 @@ "consumes": [ "application/json" ], - "description": "Returns the season list for a competition from SofaScore's credential-free public JSON. Use a returned season id with the standings and round-events endpoints.", + "description": "Returns the season list for a competition. Use a returned season id with the standings and round-events endpoints.", "operationId": "sofascore-tournament-seasons", "parameters": [ { @@ -437481,7 +451104,7 @@ "consumes": [ "application/json" ], - "description": "Returns one user/artist's profile: bio, avatar, followers/followings/track/playlist/likes counts, and verified status. Public data sourced from SoundCloud's own JSON API.", + "description": "Returns a SoundCloud user or artist profile for a full profile `url` such as `https://soundcloud.com/artist`. Fields are username, full name, bio, avatar, city, country, verified status, and counts of followers, followings, tracks, playlists and likes. A URL for a track or other entity returns 400; an unresolvable URL returns 404.", "operationId": "soundcloud-profile", "parameters": [ { @@ -437544,7 +451167,7 @@ "consumes": [ "application/json" ], - "description": "Returns tracks matching a query: title, artwork, playback/likes/comment/repost counts, and uploader. Public data sourced from SoundCloud's own JSON API.", + "description": "Searches SoundCloud tracks for `query`, in SoundCloud's default relevance order. `limit` defaults to 20 and is capped at 50. Each track has its title, artwork, genre, tags, `duration_ms`, play, like, comment and repost counts, and uploader details including follower count and verified status.", "operationId": "soundcloud-search", "parameters": [ { @@ -437738,7 +451361,7 @@ }, "/space/article": { "get": { - "description": "Returns public Space.com article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Space.com article by canonical `url` in any of the site's URL shapes, including older `.html` reference pages: title, description, section, authors, publication and update times, image and body `paragraphs`. `/news/live/` pages return only their introductory paragraphs, and membership-gated content returns only its public preview.", "operationId": "space-article", "parameters": [ { @@ -437792,7 +451415,7 @@ }, "/space/author": { "get": { - "description": "Returns one Space.com author's public profile: name, job title, biography, and their most recent articles.", + "description": "Returns a Space.com author's profile, looked up by `slug` (for example `elizabeth-howell`) or canonical `url`; exactly one is required. The response has the name, `job_title`, biography, image and the first batch of recent articles on the author page. That page has no URL-based pagination, so no further articles are available.", "operationId": "space-author", "parameters": [ { @@ -437852,7 +451475,7 @@ }, "/space/headlines": { "get": { - "description": "Returns fresh Space.com headlines from one public category hub.", + "description": "Returns the latest Space.com stories for one category. `section` is required and takes a slug from `space-sections`, which joins nested category paths with hyphens, such as `astronomy`, `astronomy-solar-system-mars` or `stargazing-meteor-showers`. Each item has its title, URL, summary, author, publication time and image. Other values return a 400.", "operationId": "space-headlines", "parameters": [ { @@ -437963,7 +451586,7 @@ }, "/space/news": { "get": { - "description": "Returns fresh Space.com top stories (space, astronomy, and skywatching news) from the site's own latest-news hub.", + "description": "Returns the latest Space.com top stories (space, astronomy and skywatching news) from the site's latest-news hub. Takes no parameters. Each item has its title, URL, summary, author, publication time and image.", "operationId": "space-news", "produces": [ "application/json" @@ -438001,7 +451624,7 @@ }, "/space/sections": { "get": { - "description": "Returns the public Space.com category taxonomy used by the headlines endpoint.", + "description": "Lists the Space.com categories that `space-headlines` accepts, from `astronomy`, `entertainment`, `science`, `space-exploration`, `stargazing` and `technology` down to their subcategories. Each entry has a `slug`, a display `name` and the category `url`. Slugs join the nested path with hyphens, so `astronomy-solar-system-mars` maps to `/astronomy/solar-system/mars`.", "operationId": "space-sections", "produces": [ "application/json" @@ -438027,7 +451650,7 @@ }, "/sparkfun/categories": { "get": { - "description": "Lists public SparkFun top-level browse categories with URL keys for sparkfun-category.", + "description": "Lists SparkFun's top-level browse categories. Each has an id, name, `url_key` and `url_path`. Pass a category's `url_key` to `sparkfun-category` to browse it. Takes no parameters, and the set follows the live storefront catalogue.", "operationId": "sparkfun-categories", "produces": [ "application/json" @@ -438154,7 +451777,7 @@ }, "/sparkfun/product": { "get": { - "description": "Returns public product metadata, price, stock status, images, categories, a cleaned description, and SparkFun-related product recommendations for one SKU.", + "description": "Returns one SparkFun product by `sku`, for example `DEV-18158`: name, URL, stock status, current minimum price and currency, main image and media gallery, categories, and a cleaned short description. `recommendations` lists related, upsell or crosssell products when available. An unknown SKU returns 404.", "operationId": "sparkfun-product", "parameters": [ { @@ -438297,7 +451920,7 @@ }, "/sportingnews/article": { "get": { - "description": "Returns public Sporting News US article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a Sporting News US article by canonical `url`, such as `https://www.sportingnews.com/us/nfl/dallas-cowboys/news//`: title, description, section (the sport or topic in the URL, for example `NFL`), authors, publication and update times, image and body `paragraphs`. Tables, embeds, ad slots and related-story lists are excluded. Non-US editions and hub pages are rejected.", "operationId": "sportingnews-article", "parameters": [ { @@ -438351,7 +451974,7 @@ }, "/sportingnews/author": { "get": { - "description": "Returns one Sporting News US author's public profile: name, bio, photo, public social links, and their most recent articles.", + "description": "Returns a Sporting News US author's profile, looked up by `slug` (for example `anne-erickson`) or canonical `url`; exactly one is required. The response has the name, `bio`, photo, social links and about 20 recent articles, each with title, URL, section, author, publication time and image. There is no pagination, and an unknown author returns not-found.", "operationId": "sportingnews-author", "parameters": [ { @@ -438411,7 +452034,7 @@ }, "/sportingnews/headlines": { "get": { - "description": "Returns fresh headlines from one public Sporting News US sport, league or topic feed.", + "description": "Returns up to 20 of the newest Sporting News US stories for one sport, league or topic. `section` is required and takes one of 44 slugs such as `nfl`, `nba`, `mlb`, `premier-league`, `formula-1`, `ufc` or `college`. Each item has its title, URL, summary, publication time, author and image. Off-season leagues may return older stories.", "operationId": "sportingnews-headlines", "parameters": [ { @@ -438543,7 +452166,7 @@ }, "/sportingnews/sections": { "get": { - "description": "Returns the public Sporting News US sport, league and topic feeds accepted by the headlines endpoint.", + "description": "Lists the 44 Sporting News US sport, league and topic feeds that `sportingnews-headlines` accepts. Each entry has a `slug`, a display `name` and the feed `url`. Off-season leagues such as `club-world-cup` and `softball` are listed and may return older items. Team feeds and non-US editions are not covered.", "operationId": "sportingnews-sections", "produces": [ "application/json" @@ -438641,7 +452264,7 @@ }, "/sportskeeda/author": { "get": { - "description": "Returns one public Sportskeeda author's name and recent article links from the canonical author profile.", + "description": "Returns a Sportskeeda author's profile, looked up by `slug` (for example `sripad`) or canonical `url`; at least one is required. The response has the name and the articles listed on the profile, each with title and URL, and can also carry `biography`, `role` and `image_url`.", "operationId": "sportskeeda-author", "parameters": [ { @@ -439263,7 +452886,7 @@ }, "/sportskeeda/event-calendar-options": { "get": { - "description": "Returns the live region-specific sport and month filters from Sportskeeda's embedded event calendar feed. Use these values with /sportskeeda/event-calendar.", + "description": "Lists the regions (`us` and `india`) of the Sportskeeda event calendar, each with the sport names and `YYYY-MM` months currently on offer. Takes no parameters. Pass the exact `region`, `sport` and `month` values to `/sportskeeda/event-calendar`; no year parameter exists.", "operationId": "sportskeeda-event-calendar-options", "produces": [ "application/json" @@ -439584,7 +453207,7 @@ }, "/sportskeeda/guessing-games": { "get": { - "description": "Discovers every currently linked player-guessing game and returns its host-free page slug for the daily instance and entity endpoints.", + "description": "Lists the player-guessing games currently linked on Sportskeeda. Each has a display `name`, a host-free page `slug` such as `wwe/brainbuster-wwe-player-guessing-game`, and its `game_slug`. Pass `slug` to `/sportskeeda/guessing-game` or `/sportskeeda/guessing-game-entities`. Takes no parameters.", "operationId": "sportskeeda-guessing-games", "produces": [ "application/json" @@ -439721,7 +453344,7 @@ }, "/sportskeeda/page-data": { "get": { - "description": "Returns server-rendered team, player, roster, leaderboard, ranking, depth, playoff, and game-log tables. NFL team stats include team-leader cards, player-category tables, and Basic, Advanced, and Expert team tables. Season and type are accepted only if offered by the selected page; discover their values with page-options. Player game-log seasons use their discovered season-specific path and return every table offered by the page; NFL category tabs are listed by page-options. College-football schedule slugs accept a discovered conference slug and filter the embedded schedule rows locally; an offered group with no games on that week returns status no_data. The trade value chart uses its public JSON asset and has a separate endpoint. A page with no structured tables returns an upstream error.", + "description": "Returns team, player, roster, leaderboard, ranking, depth, playoff, and game-log tables. NFL team stats include team-leader cards, player-category tables, and Basic, Advanced, and Expert team tables. Season and type are accepted only if offered by the selected page; discover their values with page-options. Player game-log seasons use their discovered season-specific path and return every table offered by the page; NFL category tabs are listed by page-options. College-football schedule slugs accept a discovered conference slug and filter the schedule rows; an offered group with no games on that week returns status no_data. The trade value chart has a separate endpoint. A page with no structured tables returns an upstream error.", "operationId": "sportskeeda-page-data", "parameters": [ { @@ -439881,7 +453504,7 @@ }, "/sportskeeda/player-stats": { "get": { - "description": "Reads the anonymous season-stats JSON embedded in an NFL or NBA player stats page. Without event_type, returns all event phases offered by that page's selector. NBA source data may contain extra internal phases that the page does not offer; these are excluded. Discover the current event_type values with sportskeeda-page-options for the same slug.", + "description": "Returns the season stats for an NFL or NBA player stats page. Without event_type, returns all event phases offered by that page's selector. NBA data may contain extra phases that the page does not offer; these are excluded. Discover the current event_type values with sportskeeda-page-options for the same slug.", "operationId": "sportskeeda-player-stats", "parameters": [ { @@ -439948,7 +453571,7 @@ }, "/sportskeeda/profile": { "get": { - "description": "Returns facts and available news cards from a public player or team profile path, including sport-specific slugs.", + "description": "Returns a Sportskeeda player or team profile by host-free `slug`, such as `player/jannik-sinner` or `nfl/green-bay-packers`. The response has its name, `kind`, a description, fact rows as name and value pairs (names vary by sport), and any news cards. A page without fact rows returns an upstream error.", "operationId": "sportskeeda-profile", "parameters": [ { @@ -440056,7 +453679,7 @@ }, "/sportskeeda/quiz-categories": { "get": { - "description": "Discovers every quiz category linked from the public quiz hub. Use a returned host-free category slug with /sportskeeda/quizzes.", + "description": "Lists the quiz categories currently linked from Sportskeeda's quiz hub, each with a `name` and a host-free `slug` such as `cricket/quiz`. Pass a `slug` to `sportskeeda-quizzes`. Takes no parameters, and the list changes with the site, so fetch it rather than assuming fixed categories.", "operationId": "sportskeeda-quiz-categories", "produces": [ "application/json" @@ -440252,7 +453875,7 @@ }, "/sportskeeda/schedule": { "get": { - "description": "Parses public cricket and football match cards or sport-specific schedule tables. A genuine no-matches widget returns status no_matches.", + "description": "Returns a Sportskeeda fixtures or schedule page by host-free `slug`, such as `nfl/schedule` or `cricket/schedule`. Cricket and football give `matches` with teams, time, status, score, competition, venue and result; other sports give `tables` with `columns` and `rows`. An empty fixture widget returns `status` `no_matches`.", "operationId": "sportskeeda-schedule", "parameters": [ { @@ -440410,7 +454033,7 @@ }, "/sportskeeda/sitemaps": { "get": { - "description": "Returns current public sitemaps from Sportskeeda's sitemap index and robots.txt. Pass a returned slug to /sportskeeda/sitemap-items to page through its complete URL set.", + "description": "Returns Sportskeeda's current public sitemaps. Pass a returned slug to /sportskeeda/sitemap-items to page through its complete URL set.", "operationId": "sportskeeda-sitemaps", "produces": [ "application/json" @@ -440442,7 +454065,7 @@ }, "/sportskeeda/standings": { "get": { - "description": "Parses current standings tables. College basketball supports a live-discovered season value; its unpopulated current season returns status no_data.", + "description": "Returns Sportskeeda standings or rankings tables for a host-free `slug`, such as `nfl/standings`, with column labels, rows, linked cell slugs and view slugs. `season` (starting year, 2013 to 2026) applies only to college basketball standings. The current college basketball season returns `status` `no_data` with empty `tables`.", "operationId": "sportskeeda-standings", "parameters": [ { @@ -440519,7 +454142,7 @@ }, "/sportskeeda/standings-options": { "get": { - "description": "Returns all live-offered college basketball season years and the conference slugs for the selected season.", + "description": "Lists the seasons and conferences available for Sportskeeda college basketball standings. `slug` is required and must be `college-basketball/college-basketball-standings`. Without `season` you get all offered season years and the current season's conferences; with it, that season's conferences, each with a name and a slug usable as the standings `slug`.", "operationId": "sportskeeda-standings-options", "parameters": [ { @@ -441028,7 +454651,7 @@ }, "/sportskeeda/video": { "get": { - "description": "Returns the public video player's ID, title, poster, and stream URL for a video page slug.", + "description": "Returns metadata for one Sportskeeda video page by host-free `slug`, such as `cricket/sunil-naraine-batting-cpl`: its id, title, poster image, stream URL and, when available, a description. A page without a video player returns an upstream error, and stream availability can depend on geography.", "operationId": "sportskeeda-video", "parameters": [ { @@ -441082,7 +454705,7 @@ }, "/sportskeeda/videos": { "get": { - "description": "Lists public video cards from the main video library or a sport/event video listing.", + "description": "Lists video cards from Sportskeeda's main video library, or from a listing given by `slug` (default `videos`, for example `go/epl/videos`). Items have a title, slug, URL, and thumbnail, duration and channel when present. The response also lists channels with their slugs. An empty or blocked listing returns an upstream error.", "operationId": "sportskeeda-videos", "parameters": [ { @@ -441296,7 +454919,7 @@ }, "/sportskeeda/wiki-categories": { "get": { - "description": "Returns the nested live category menu for one Sportskeeda Wiki project, including child categories beneath expandable groups.", + "description": "Returns the nested category menu of one Sportskeeda Wiki project, chosen by `wiki` (`minecraft`, `terraria`, `naruto`, `tiktok`, `youtube`, `gta`, `one-piece` or `sk-communities`). Each category has a title, slug, `path_slug`, taxonomy id, sequence and `children`. Category names, ids and paths change over time.", "operationId": "sportskeeda-wiki-categories", "parameters": [ { @@ -441556,7 +455179,7 @@ }, "/sportskeeda/wiki-options": { "get": { - "description": "Returns the live-verified project slugs and taxonomy mappings accepted by the Wiki category, catalog, and article endpoints.", + "description": "Lists the Sportskeeda Wiki projects, each with a `slug`, display `name`, `taxonomy_id` and `taxonomy_slug`. Current slugs are `minecraft`, `terraria`, `naruto`, `tiktok`, `youtube`, `gta`, `one-piece` and `sk-communities`. Use a `slug` with `wiki-categories` and `wiki-pages`. Takes no parameters.", "operationId": "sportskeeda-wiki-options", "produces": [ "application/json" @@ -441776,7 +455399,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify podcast category sections and items from Spotify's all-categories browsePage Pathfinder response.", + "description": "Returns the Spotify podcast categories page as sections of items such as Arts, for `uri` (default `spotify:page:0JQ5DArNBzkmxXHCqFLx2U`). Each section has a title, `totalCount` and items with title, image and Spotify URL. `page_limit` and `section_limit` default to 10 and run 1 to 50; the offsets default to 0.", "operationId": "spotify-podcasts-categories", "parameters": [ { @@ -441867,7 +455490,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify podcast chart rankings from podcastcharts.byspotify.com. The chart and region parameters are validated against Spotify's supported podcast chart slugs and countries. Category charts are available only in au, br, de, gb, mx, se, and us.", + "description": "Returns Spotify podcast chart rankings from podcastcharts.byspotify.com. The chart and region parameters are validated against Spotify's supported podcast chart slugs and countries. Category charts are available only in au, br, de, gb, mx, se, and us.", "operationId": "spotify-podcasts-charts", "parameters": [ { @@ -441987,7 +455610,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public episode metadata from Spotify's getEpisodeOrChapter Pathfinder response, with episode page, embed page, and anonymous oEmbed fallbacks when Pathfinder is unavailable. Provide either uri or id; defaults to a known public episode when omitted.", + "description": "Returns public episode metadata. Provide either uri or id; defaults to a known public episode when omitted.", "operationId": "spotify-podcasts-episode", "parameters": [ { @@ -442050,7 +455673,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized sections and items from Spotify's podcast home browsePage Pathfinder response.", + "description": "Returns the Spotify podcasts home page as sections of items, for `uri` (default `spotify:genre:podcasts-web`). Each section has a title and items with type, title, publisher, images and Spotify URL. `page_limit` and `section_limit` default to 10 and run 1 to 50; the offsets default to 0.", "operationId": "spotify-podcasts-home", "parameters": [ { @@ -442141,7 +455764,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify podcast shows, episodes, and top results for a search term.", + "description": "Searches Spotify podcasts for `q`, returning matching `shows`, `episodes` and `topResults`, with counts in `meta`. `limit` and `number_of_top_results` run 1 to 50. Optional flags (`include_pre_releases`, `include_audiobooks`, `include_authors`) widen the results. Episodes carry duration and release date; shows carry publisher.", "operationId": "spotify-podcasts-search", "parameters": [ { @@ -442254,7 +455877,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized podcast show metadata from Spotify Pathfinder.", + "description": "Returns metadata for one Spotify podcast show by `uri` (default `spotify:show:1QQJ7FElLE0K6CIfZNCxU4`): name, publisher, description, media type, explicit flag, `totalEpisodes`, cover images and Spotify URL. The two `include_` flags request extra content capability and content rating fields when Spotify supplies them.", "operationId": "spotify-podcasts-show", "parameters": [ { @@ -442324,7 +455947,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized podcast episodes for a Spotify show URI.", + "description": "Returns the episodes of a Spotify podcast by show URI, with `offset` and `limit` (1-50). Each episode has its name, description, release date, duration in milliseconds, explicit and playable flags, Spotify URI, external URL and images; `total` gives the show's episode count.", "operationId": "spotify-podcasts-show-episodes", "parameters": [ { @@ -442401,7 +456024,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized related Spotify shows and episodes from Spotify's show recommendations response.", + "description": "Lists shows and episodes that Spotify recommends alongside a podcast show given by `uri`. Each recommendation has a type, title, publisher, description, images and Spotify URL, and `meta.count` gives the number returned. The response echoes the show `uri` it was requested for.", "operationId": "spotify-podcasts-show-recommendations", "parameters": [ { @@ -442457,7 +456080,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player album metadata and tracks from private Pathfinder responses.", + "description": "Returns a Spotify album from `uri` (a Spotify URI or open.spotify.com URL) or `id`: name, album type, artists, release date, copyrights, cover images, total tracks and duration. The `tracks` page is set by `offset` (default 0) and `limit` (1 to 50, default 50). A missing or invalid identifier returns 400.", "operationId": "spotify-album", "parameters": [ { @@ -442534,7 +456157,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player album tracks from private Pathfinder responses.", + "description": "Lists the tracks of a Spotify album, identified by `uri` (a Spotify URI or open.spotify.com URL) or `id`. `offset` defaults to 0 and `limit` runs 1 to 50, default 50. Each track has its title, URI, subtitle, image and URL. The album's name, artists and track total come back alongside. An invalid identifier returns 400.", "operationId": "spotify-album-tracks", "parameters": [ { @@ -442611,7 +456234,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player album search results for a search term. The endpoint fetches anonymous Spotify credentials at request time; caller-supplied Spotify bearer or client tokens are not required.", + "description": "Returns Spotify album search results for a search term. Caller-supplied Spotify bearer or client tokens are not required.", "operationId": "spotify-albums-search", "parameters": [ { @@ -442724,7 +456347,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player artist overview data from private Pathfinder responses.", + "description": "Returns a Spotify artist's profile by artist URI, `open.spotify.com` URL or id: name, verified flag, follower count, monthly listeners (`monthlyUsers`), biography and images, plus top tracks, selected discography, related artists and artist playlists when Spotify returns them.", "operationId": "spotify-artist", "parameters": [ { @@ -442787,7 +456410,7 @@ "consumes": [ "application/json" ], - "description": "Returns artist discography items from Spotify Web Player private Pathfinder responses.", + "description": "Returns an artist's Spotify discography by artist URI, `open.spotify.com` URL or id. Choose `type` (`album`, `single`, `compilation`, `appears_on` or `all`; default `album`) and `order` (default `date_desc`), and page with `offset` and `limit` (1-50, default 50). Each item has a type, title, subtitle, Spotify URI, external URL and images; `total` gives the full count.", "operationId": "spotify-artist-albums", "parameters": [ { @@ -442891,7 +456514,7 @@ "consumes": [ "application/json" ], - "description": "Returns artist playlists from Spotify Web Player private Pathfinder responses.", + "description": "Returns the Spotify playlists associated with an artist, by artist URI, `open.spotify.com` URL or id. Each playlist has a title, subtitle, description, Spotify URI, external URL and images. Some artists have no playlists, in which case `items` is empty.", "operationId": "spotify-artist-playlists", "parameters": [ { @@ -442954,7 +456577,7 @@ "consumes": [ "application/json" ], - "description": "Returns related artists from Spotify Web Player private Pathfinder responses.", + "description": "Returns the artists Spotify lists as related to a given artist, by artist URI, `open.spotify.com` URL or id. Each related artist has a title, Spotify URI, external URL and images. An invalid identifier returns `400`.", "operationId": "spotify-artist-related", "parameters": [ { @@ -443017,7 +456640,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player artist search results for a search term.", + "description": "Searches Spotify for artists matching a term, with `offset` and `limit` (1-50). Each artist has a title, Spotify URI, external URL and images. Matching artists are returned in both `results` and `artists`.", "operationId": "spotify-artists-search", "parameters": [ { @@ -443088,7 +456711,7 @@ "consumes": [ "application/json" ], - "description": "Returns Spotify Web Player audiobook metadata from private Pathfinder responses. Spotify exposes audiobooks through show URIs.", + "description": "Returns a Spotify audiobook by `uri` or `id`; Spotify identifies audiobooks with show URIs (`spotify:show:...`). The response has name, authors, narrators, publisher, description, `totalChapters`, explicit flag and cover images. Passing a podcast show instead of an audiobook returns an upstream error, and an invalid identifier returns 400.", "operationId": "spotify-audiobook", "parameters": [ { @@ -443151,7 +456774,7 @@ "consumes": [ "application/json" ], - "description": "Returns audiobook chapters from Spotify Web Player private Pathfinder responses.", + "description": "Returns the chapters of a Spotify audiobook by URI, `open.spotify.com` URL or id, with `offset` and `limit` (1-50, default 50). Each chapter has its name, description, duration in milliseconds, release date, explicit and playable flags, Spotify URI, external URL and images; `total` gives the chapter count.", "operationId": "spotify-audiobook-chapters", "parameters": [ { @@ -443228,7 +456851,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player audiobook search results for a search term. The endpoint fetches anonymous Spotify credentials at request time; caller-supplied Spotify bearer or client tokens are not required.", + "description": "Returns Spotify audiobook search results for a search term. Caller-supplied Spotify bearer or client tokens are not required.", "operationId": "spotify-audiobooks-search", "parameters": [ { @@ -443341,7 +456964,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Spotify chapter from the same private Pathfinder operation used for episodes and chapters.", + "description": "Returns a Spotify audiobook chapter by `uri` or `id`; chapters are often addressed with `spotify:episode:` identifiers. Fields include name, description, duration, release date, explicit and paywall flags, playability reasons, preview audio URL, cover images and the parent show. An invalid identifier returns 400.", "operationId": "spotify-chapter", "parameters": [ { @@ -443404,7 +457027,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player episode search results for a search term.", + "description": "Searches Spotify podcast episodes for the search term `q`, paged with `offset` (default 0) and `limit` (1 to 50). Each episode has its title, URI, description, publisher, images and Spotify URL. Episode matches appear under both `results` and `episodes`. A missing `q` returns 400.", "operationId": "spotify-episodes-search", "parameters": [ { @@ -443475,7 +457098,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify country hub content from Spotify's countryHubContent Pathfinder response. Defaults to the CHARTS content shelf for the requested country.", + "description": "Returns Spotify country hub content. Defaults to the CHARTS content shelf for the requested country.", "operationId": "spotify-featured-charts-by-country", "parameters": [ { @@ -443544,7 +457167,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized sections and items from Spotify's browsePage Pathfinder response for a Spotify genre or page URI.", + "description": "Returns the sections of a Spotify genre or browse page for `uri` (default `spotify:page:0JQ5DAB3zgCauRwnvdEQjJ`). Each section has a title, type, `totalCount` and items with title, subtitle, image and Spotify URL. `page_limit` and `section_limit` default to 10 and run 1 to 50; matching offsets default to 0.", "operationId": "spotify-genre", "parameters": [ { @@ -443635,7 +457258,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized shelves and items from Spotify's Web Player home Pathfinder response. The endpoint fetches anonymous Spotify credentials at request time; caller-supplied Spotify bearer or client tokens are not required.", + "description": "Returns Spotify home shelves and items. Caller-supplied Spotify bearer or client tokens are not required.", "operationId": "spotify-home", "parameters": [ { @@ -443719,7 +457342,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player playlist metadata and items from Spotify's fetchPlaylist Pathfinder response. Provide either uri or id; defaults to a known public playlist when omitted.", + "description": "Returns Spotify playlist metadata and items. Provide either uri or id; defaults to a known public playlist when omitted.", "operationId": "spotify-playlist", "parameters": [ { @@ -443810,7 +457433,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player playlist search results for a search term. The endpoint fetches anonymous Spotify credentials at request time; caller-supplied Spotify bearer or client tokens are not required.", + "description": "Returns Spotify playlist search results for a search term. Caller-supplied Spotify bearer or client tokens are not required.", "operationId": "spotify-playlists-search", "parameters": [ { @@ -443923,7 +457546,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify country hub shelves from Spotify's countryHubsPage Pathfinder response. The country_code parameter accepts Spotify popular-in country codes from open.spotify.com/popular-in/us.", + "description": "Returns Spotify country hub shelves. The country_code parameter accepts Spotify popular-in country codes from open.spotify.com/popular-in/us.", "operationId": "spotify-popular-by-country", "parameters": [ { @@ -443979,7 +457602,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public profile metadata and preview playlists from Spotify's Web Player user-profile service. Provide username, uri, or url; defaults to Spotify's official profile.", + "description": "Returns public Spotify profile metadata and preview playlists. Provide username, uri, or url; defaults to Spotify's official profile.", "operationId": "spotify-profile", "parameters": [ { @@ -444070,7 +457693,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public follower profiles from Spotify's Web Player user-profile service. Spotify exposes this as a public anonymous response for some profiles; private or restricted profiles may return an upstream error.", + "description": "Returns public Spotify follower profiles. Spotify exposes this publicly for some profiles; private or restricted profiles may return an upstream error.", "operationId": "spotify-profile-followers", "parameters": [ { @@ -444154,7 +457777,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized public playlists from Spotify's Web Player user-profile service. Provide username, uri, or url; defaults to Spotify's official profile.", + "description": "Returns public Spotify playlists. Provide username, uri, or url; defaults to Spotify's official profile.", "operationId": "spotify-profile-playlists", "parameters": [ { @@ -444238,7 +457861,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player profile search results for a search term. The endpoint fetches anonymous Spotify credentials at request time; caller-supplied Spotify bearer or client tokens are not required.", + "description": "Returns Spotify profile search results for a search term. Caller-supplied Spotify bearer or client tokens are not required.", "operationId": "spotify-profiles-search", "parameters": [ { @@ -444351,7 +457974,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player catalog search results across tracks, artists, albums, playlists, shows, episodes, audiobooks, and top results. The endpoint fetches anonymous Spotify credentials at request time; caller-supplied Spotify bearer or client tokens are not required.", + "description": "Returns Spotify catalog search results across tracks, artists, albums, playlists, shows, episodes, audiobooks, and top results. Caller-supplied Spotify bearer or client tokens are not required.", "operationId": "spotify-search", "parameters": [ { @@ -444478,7 +458101,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized items from Spotify's browseSection Pathfinder response for a Spotify section URI.", + "description": "Returns the items of one Spotify browse section for `uri` (default `spotify:section:0JQ5IMCbQBLqNPkcmYxQPQ`), with its title, subtitle and `totalCount`. Each item has a type, title, subtitle, images and Spotify URL. `offset` defaults to 0; `limit` runs 1 to 50 and defaults to 20.", "operationId": "spotify-section", "parameters": [ { @@ -444555,7 +458178,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player show search results for a search term.", + "description": "Searches Spotify podcast shows for the search term `q`, paged with `offset` (default 0) and `limit` (1 to 50). Each show has its title, URI, publisher, description, images and Spotify URL. Show matches appear under both `results` and `shows`. A missing `q` returns 400.", "operationId": "spotify-shows-search", "parameters": [ { @@ -444626,7 +458249,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player track metadata from Spotify's getTrack Pathfinder response. Provide either uri or id; defaults to a known public track when omitted.", + "description": "Returns Spotify track metadata. Provide either uri or id; defaults to a known public track when omitted.", "operationId": "spotify-track", "parameters": [ { @@ -444689,7 +458312,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended Spotify entities from the internalLinkRecommenderTrack Pathfinder response.", + "description": "Returns Spotify's recommendations for a track, given its URI, `open.spotify.com` URL or track id. Each recommendation has a type, title, subtitle, description, Spotify URI, external URL and images. `limit` is clamped to 1-50 and defaults to 5.", "operationId": "spotify-track-recommended", "parameters": [ { @@ -444759,7 +458382,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized albums from the similarAlbumsBasedOnThisTrack Pathfinder response.", + "description": "Lists albums similar to a Spotify track, identified by `uri` or `id`. `limit` runs 1 to 50, default 50, and `albums_only` requests albums-only recommendations. Each album has its title, subtitle, publisher, images and Spotify URL. With neither `uri` nor `id`, a known public track is used.", "operationId": "spotify-track-similar-albums", "parameters": [ { @@ -444836,7 +458459,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Spotify Web Player track search results for a search term. The endpoint fetches anonymous Spotify credentials at request time; caller-supplied Spotify bearer or client tokens are not required.", + "description": "Returns Spotify track search results for a search term. Caller-supplied Spotify bearer or client tokens are not required.", "operationId": "spotify-tracks-search", "parameters": [ { @@ -444946,7 +458569,7 @@ }, "/standard/article": { "get": { - "description": "Returns public Evening Standard article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Evening Standard article by its canonical `standard.co.uk` article `url`. The response has the title, description, publish and update times, section, authors, lead image, body `paragraphs` and a `paywalled` flag.", "operationId": "standard-article", "parameters": [ { @@ -445000,7 +458623,7 @@ }, "/standard/author": { "get": { - "description": "Returns one Evening Standard author's public profile: name, job title, bio, X/Twitter handle, and their recent articles.", + "description": "Returns an Evening Standard author profile, found by `slug` (for example `nicholas-cecil`) or by a canonical `url`; send exactly one of the two. The response has the name, job title, bio, X/Twitter link and the author's recent articles with their section. It is one page, with no further pagination.", "operationId": "standard-author", "parameters": [ { @@ -445060,7 +458683,7 @@ }, "/standard/headlines": { "get": { - "description": "Returns fresh headlines from one public Evening Standard RSS section.", + "description": "Returns the latest Evening Standard headlines for one section. `section` is required and takes a slug such as `news/london`, `news/politics`, `sport/football`, `business/markets`, `culture/theatre` or `homesandproperty/renting`. Each item has its title, URL, summary, publication time, author and image.", "operationId": "standard-headlines", "parameters": [ { @@ -445163,7 +458786,7 @@ }, "/standard/news": { "get": { - "description": "Returns fresh Evening Standard top stories from its public RSS feed.", + "description": "Returns the current Evening Standard top stories. Each item has its title, URL, summary, publication time, author and image. Takes no parameters; use `standard-headlines` for a single section.", "operationId": "standard-news", "produces": [ "application/json" @@ -445201,7 +458824,7 @@ }, "/standard/sections": { "get": { - "description": "Returns the live-verified public RSS section inventory for the Evening Standard.", + "description": "Lists the Evening Standard sections accepted by `standard-headlines`, as parent and child slugs such as `news`, `news/london`, `sport/rugby`, `going-out/restaurants` and `homesandproperty/gardening`. Each entry has the `slug`, display `name` and feed `url`.", "operationId": "standard-sections", "produces": [ "application/json" @@ -445230,7 +458853,7 @@ "consumes": [ "application/json" ], - "description": "Returns Starbucks' full menu as a category tree: top-level categories, their child categories, and every product with its product number, form, product type, sizes, default size, availability, and image. Pair a product's product_number and form with /starbucks/product to fetch full detail including nutrition. store_number optionally scopes the menu to one store, using a store number from /starbucks/stores; a store-scoped menu marks items that store does not carry with availability NotAvailableHere, while the unscoped menu reports everything as Available. market selects which country catalog to return, one of us or ca, defaulting to us; the two differ substantially (roughly 282 US products vs 253 CA, with exclusives on both sides). Only these two markets are available: every other Starbucks country site runs a different platform, and the European ones disallow API access in robots.txt.", + "description": "Returns Starbucks' full menu as a category tree: top-level categories, their child categories, and every product with its product number, form, product type, sizes, default size, availability, and image. Pair a product's product_number and form with /starbucks/product to fetch full detail including nutrition. store_number optionally scopes the menu to one store, using a store number from /starbucks/stores; a store-scoped menu marks items that store does not carry with availability NotAvailableHere, while the unscoped menu reports everything as Available. market selects which country catalog to return, one of us or ca, defaulting to us; the two differ substantially (roughly 282 US products vs 253 CA, with exclusives on both sides). Only these two markets are available.", "operationId": "starbucks-menu", "parameters": [ { @@ -445738,7 +459361,7 @@ "consumes": [ "application/json" ], - "description": "Returns the global unlock percentage for each of an app's achievements, sorted most-unlocked first. Apps without global achievement stats return an empty list. Credential-free public Steam WebAPI JSON.", + "description": "Returns the global unlock percentage for each of an app's achievements, sorted most-unlocked first. Apps without global achievement stats return an empty list.", "operationId": "steam-achievements", "parameters": [ { @@ -445789,7 +459412,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized store metadata for a single Steam app (title, type, price, developers/publishers, platforms, genres, categories, release date, metacritic, recommendation and achievement counts). cc selects the store region (and price currency) and l the text language. filters is a comma-separated subset of allowed fields to shrink the payload. Credential-free public Steam storefront JSON.", + "description": "Returns store metadata for a single Steam app (title, type, price, developers/publishers, platforms, genres, categories, release date, metacritic, recommendation and achievement counts). cc selects the store region (and price currency) and l the text language. filters is a comma-separated subset of allowed fields to shrink the payload.", "operationId": "steam-app", "parameters": [ { @@ -445866,7 +459489,7 @@ "consumes": [ "application/json" ], - "description": "Returns a catalog slice for a community tag / category via Steam's keyless IStoreQueryService, carrying each item's WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The slug is a numeric tag id or a tag name (case- and separator-insensitive, e.g. rogue_like); resolve ids via /steam/tags/list. Ordering is Steam's default relevance — for sorted or os/price-faceted browse use /steam/tags. Credential-free public Steam store query API.", + "description": "Returns a catalog slice for a community tag / category, carrying each item's WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The slug is a numeric tag id or a tag name (case- and separator-insensitive, e.g. rogue_like); resolve ids via /steam/tags/list. Ordering is Steam's default relevance — for sorted or os/price-faceted browse use /steam/tags.", "operationId": "steam-category", "parameters": [ { @@ -445972,7 +459595,7 @@ "consumes": [ "application/json" ], - "description": "Returns the live leaderboard of games ranked by current concurrent players (rank, appid, current concurrent, peak). By default each row is enriched with the game name and review summary; pass enrich=false for raw ranked app ids. Credential-free public Steam WebAPI JSON.", + "description": "Returns the live leaderboard of games ranked by current concurrent players (rank, appid, current concurrent, peak). By default each row is enriched with the game name and review summary; pass enrich=false for raw ranked app ids.", "operationId": "steam-charts-concurrent", "parameters": [ { @@ -446030,7 +459653,7 @@ "consumes": [ "application/json" ], - "description": "Returns Steam's weekly most-played chart: the top games ranked by peak concurrent players over the last week (rank, appid, previous-week rank, peak players). By default each row is enriched with the game name and review summary via a batch lookup; pass enrich=false for the raw ranked app ids only. Credential-free public Steam WebAPI JSON.", + "description": "Returns Steam's weekly most-played chart: the top games ranked by peak concurrent players over the last week (rank, appid, previous-week rank, peak players). By default each row is enriched with the game name and review summary; pass enrich=false for the raw ranked app ids only.", "operationId": "steam-charts-most-played", "parameters": [ { @@ -446088,7 +459711,7 @@ "consumes": [ "application/json" ], - "description": "Returns Steam's monthly top-releases index: one page per month, each listing that month's top-released app ids (with the month label and start date). The app-id lists are large and not name-enriched; resolve names via /steam/items. Credential-free public Steam WebAPI JSON.", + "description": "Returns Steam's monthly top-releases index: one page per month, each listing that month's top-released app ids (with the month label and start date). The app-id lists are large and not name-enriched; resolve names via /steam/items.", "operationId": "steam-charts-top-releases", "produces": [ "application/json" @@ -446123,7 +459746,7 @@ "consumes": [ "application/json" ], - "description": "Returns a batch of recent, quality user reviews recommended across the whole store (author, playtime, helpful votes, and the recommended app). Filter by review kind/sort, reviewer playtime window, review language, and store region. The upstream serves a fixed batch and, unauthenticated, does not support tag filtering or deep pagination. Credential-free public Steam storefront JSON.", + "description": "Returns a batch of recent, quality user reviews recommended across the whole store (author, playtime, helpful votes, and the recommended app). Filter by review kind/sort, reviewer playtime window, review language, and store region. The endpoint serves a fixed batch and does not support tag filtering or deep pagination.", "operationId": "steam-community-recommendations", "parameters": [ { @@ -446213,7 +459836,7 @@ "consumes": [ "application/json" ], - "description": "Returns the storefront's featured capsules for a region (per-platform featured lists plus large spotlight capsules), including discount and price fields. Credential-free public Steam storefront JSON.", + "description": "Returns the storefront's featured capsules for a region (per-platform featured lists plus large spotlight capsules), including discount and price fields.", "operationId": "steam-featured", "parameters": [ { @@ -446264,7 +459887,7 @@ "consumes": [ "application/json" ], - "description": "Returns the storefront merchandising buckets for a region: specials, top_sellers, new_releases, and coming_soon, each with its item list. Credential-free public Steam storefront JSON.", + "description": "Returns the storefront merchandising buckets for a region: specials, top_sellers, new_releases, and coming_soon, each with its item list.", "operationId": "steam-featured-categories", "parameters": [ { @@ -446315,7 +459938,7 @@ "consumes": [ "application/json" ], - "description": "Resolves up to 100 Steam app ids in one call to normalized store items via Steam's keyless IStoreBrowseService, each carrying its WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The batch enrichment primitive for the community-tag taxonomy. Credential-free public Steam store query API.", + "description": "Resolves up to 100 Steam app ids in one call to store items, each carrying its WEIGHTED community tags, review-score breakdown, developer/publisher credits, release date, platforms and price. The batch enrichment primitive for the community-tag taxonomy.", "operationId": "steam-items", "parameters": [ { @@ -446380,7 +460003,7 @@ "consumes": [ "application/json" ], - "description": "Returns recent news/announcement posts for an app (title, author, contents, feed, date). Credential-free public Steam WebAPI JSON.", + "description": "Returns recent news and announcement posts for a Steam app by numeric `appid` (for example `570`). `count` sets the number of posts (default 10, max 50) and `maxlength` caps each post body in characters (default 300, `-1` for the full body). Each post has `gid`, title, URL, author, contents, feed label and name, `date`, `is_external_url` and `tags`.", "operationId": "steam-news", "parameters": [ { @@ -446445,7 +460068,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized details for a Steam package (a purchasable bundle): name, the apps it contains, price, platforms, and release date. cc selects the store region and price currency. Credential-free public Steam storefront JSON.", + "description": "Returns details for a Steam package (a purchasable bundle): name, the apps it contains, price, platforms, and release date. cc selects the store region and price currency.", "operationId": "steam-package", "parameters": [ { @@ -446516,7 +460139,7 @@ "consumes": [ "application/json" ], - "description": "Returns the official current concurrent-players count for an app. Credential-free public Steam WebAPI JSON.", + "description": "Returns the current number of concurrent players for a Steam app, given its numeric `appid` such as `570`. The response has `appid`, `player_count` and a `source_url`. An app with no player-count data returns 404.", "operationId": "steam-players", "parameters": [ { @@ -446573,7 +460196,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of user reviews for an app with cursor pagination and an aggregate query_summary (score, positive/negative totals). Aggregate totals populate only on the first page (cursor=*). Pass the returned cursor back to page. Credential-free public Steam storefront JSON.", + "description": "Returns a page of user reviews for an app with cursor pagination and an aggregate query_summary (score, positive/negative totals). Aggregate totals populate only on the first page (cursor=*). Pass the returned cursor back to page.", "operationId": "steam-reviews", "parameters": [ { @@ -446694,7 +460317,7 @@ "consumes": [ "application/json" ], - "description": "Returns the positive/negative recommendation counts over time (the store review graph): weekly/monthly rollups plus recent daily buckets. Credential-free public Steam storefront JSON.", + "description": "Returns the positive/negative recommendation counts over time (the store review graph): weekly/monthly rollups plus recent daily buckets.", "operationId": "steam-reviews-histogram", "parameters": [ { @@ -446758,7 +460381,7 @@ "consumes": [ "application/json" ], - "description": "Resolves a search term to Steam apps via the store typeahead JSON (title, appid, price, platforms, metascore). Best for title -> appid lookup; returns roughly ten results. For faceted, paginated search use /steam/search/results. Credential-free public Steam storefront JSON.", + "description": "Resolves a search term to Steam apps via the store typeahead (title, appid, price, platforms, metascore). Best for title -> appid lookup; returns roughly ten results. For faceted, paginated search use /steam/search/results.", "operationId": "steam-search", "parameters": [ { @@ -446823,7 +460446,7 @@ "consumes": [ "application/json" ], - "description": "Runs the Steam store search with pagination and sorting and returns the result rows (appid, title, release date, review summary, price, platforms). Supports start/count paging and sort_by. Credential-free public Steam storefront JSON.", + "description": "Runs the Steam store search with pagination and sorting and returns the result rows (appid, title, release date, review summary, price, platforms). Supports start/count paging and sort_by.", "operationId": "steam-search-results", "parameters": [ { @@ -446917,7 +460540,7 @@ "consumes": [ "application/json" ], - "description": "Returns third-party ownership, concurrent-user, playtime, and review estimates for an app from SteamSpy. These are SteamSpy estimates, not official Steam figures. Credential-free public third-party JSON.", + "description": "Returns third-party ownership, concurrent-user, playtime, and review estimates for an app from SteamSpy. These are SteamSpy estimates, not official Steam figures.", "operationId": "steam-steamspy", "parameters": [ { @@ -446974,7 +460597,7 @@ "consumes": [ "application/json" ], - "description": "Browses the store by the community-tag taxonomy (Roguelike, Metroidvania, Cozy...) and the store filter facets, with no free-text term. Filter by one or more tag ids, a store category id, platform (os), a maximum price, specials-only, and hide-free-to-play; sort and page the browse-rank rows. Each row includes its community tag ids (resolve names via /steam/tags/list). Pagination runs the full result set (total is the real, fully-pageable match count); paging past total returns an empty page. Credential-free public Steam storefront JSON.", + "description": "Browses the store by the community-tag taxonomy (Roguelike, Metroidvania, Cozy...) and the store filter facets, with no free-text term. Filter by one or more tag ids, a store category id, platform (os), a maximum price, specials-only, and hide-free-to-play; sort and page the browse-rank rows. Each row includes its community tag ids (resolve names via /steam/tags/list). Pagination runs the full result set (total is the real, fully-pageable match count); paging past total returns an empty page.", "operationId": "steam-tags", "parameters": [ { @@ -447160,7 +460783,7 @@ "consumes": [ "application/json" ], - "description": "Returns Steam's popular community tags (numeric id + localized name) so callers can map a tag name to the id that /steam/tags and /steam/category expect. Credential-free public Steam storefront JSON.", + "description": "Returns Steam's popular community tags (numeric id + localized name) so callers can map a tag name to the id that /steam/tags and /steam/category expect.", "operationId": "steam-tags-list", "parameters": [ { @@ -447210,7 +460833,7 @@ "consumes": [ "application/json" ], - "description": "Returns the store's weekly top-sellers chart for a country, each rank carrying the full store item (name, price, weighted community tags, review summary, platforms). cc selects the country whose sales ranking and currency are returned. Credential-free public Steam store top-sellers API.", + "description": "Returns the store's weekly top-sellers chart for a country, each rank carrying the full store item (name, price, weighted community tags, review summary, platforms). cc selects the country whose sales ranking and currency are returned.", "operationId": "steam-top-sellers", "parameters": [ { @@ -447261,7 +460884,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from Steve Madden (https://www.stevemadden.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from Steve Madden (https://www.stevemadden.com). The storefront URL is fixed. Valid empty result pages return `200` with an empty collections array.", "operationId": "stevemadden-collections", "parameters": [ { @@ -447324,7 +460947,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one Steve Madden (https://www.stevemadden.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one Steve Madden (https://www.stevemadden.com) collection. The storefront URL is fixed; `handle` is the collection's URL slug.", "operationId": "stevemadden-collection-products", "parameters": [ { @@ -447401,7 +461024,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from Steve Madden (https://www.stevemadden.com). The storefront URL is fixed server-side.", + "description": "Lists Steve Madden static pages, 50 per request by default (`limit` up to 250), with `page` starting at 1. Each page has its handle, title, URL, plain-text content and timestamps. An empty result is a normal 200. When `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`.", "operationId": "stevemadden-pages", "parameters": [ { @@ -447464,7 +461087,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one Steve Madden (https://www.stevemadden.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one Steve Madden static page by its `handle`: id, title, URL, plain-text `content` and the created, published and updated timestamps. Page text is cleaned, not raw HTML. An unknown handle returns 404. When the reduced form is served, `transport_mode` is `ssr_embedded` and `id` is omitted.", "operationId": "stevemadden-page", "parameters": [ { @@ -447527,7 +461150,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from Steve Madden's (https://www.stevemadden.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from Steve Madden's (https://www.stevemadden.com) public product catalog. The storefront URL is fixed. Valid empty result pages return `200` with an empty products array.", "operationId": "stevemadden-products", "parameters": [ { @@ -447590,7 +461213,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one Steve Madden (https://www.stevemadden.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one Steve Madden (https://www.stevemadden.com) product handle. The storefront URL is fixed; `handle` is the product's URL slug.", "operationId": "stevemadden-product", "parameters": [ { @@ -447653,7 +461276,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one Steve Madden (https://www.stevemadden.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one Steve Madden (https://www.stevemadden.com) product handle. The storefront URL is fixed.", "operationId": "stevemadden-product-recommendations", "parameters": [ { @@ -447734,7 +461357,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from Steve Madden's (https://www.stevemadden.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from Steve Madden's (https://www.stevemadden.com) predictive search. The storefront URL is fixed.", "operationId": "stevemadden-search-suggest", "parameters": [ { @@ -447924,7 +461547,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for Steve Madden (https://www.stevemadden.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for Steve Madden (https://www.stevemadden.com). The storefront URL is fixed, so no `url` parameter is accepted.", "operationId": "stevemadden-store", "produces": [ "application/json" @@ -447971,7 +461594,7 @@ "consumes": [ "application/json" ], - "description": "Returns StockX's full brand catalog (name and URL slug for every brand in its own brand directory), suitable for building GET /stockx/search's brand parameter or GET /stockx/search's model parameter's required single-brand context. Credential-free public data from the same navigation API backing StockX's own site menu.", + "description": "Returns StockX's full brand catalog (name and URL slug for every brand in its own brand directory), suitable for building GET /stockx/search's brand parameter or GET /stockx/search's model parameter's required single-brand context.", "operationId": "stockx-brands", "produces": [ "application/json" @@ -448012,7 +461635,7 @@ "consumes": [ "application/json" ], - "description": "Returns StockX's full category/subcategory reference: the 7 top-level categories accepted by GET /stockx/search's category parameter, each with its subcategories (e.g. Shoes -> Boots, Cleats, Clogs). Credential-free public data from the same navigation API backing StockX's own site menu.", + "description": "Returns StockX's full category/subcategory reference: the 7 top-level categories accepted by GET /stockx/search's category parameter, each with its subcategories (e.g. Shoes -> Boots, Cleats, Clogs).", "operationId": "stockx-categories", "produces": [ "application/json" @@ -448053,7 +461676,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized StockX product: identity (title, brand, model, colorway, style id, retail price, release date, description, image), current market data (lowest ask, highest bid, last sale, trailing average price/sales count, delivery-speed ask tiers), individual seller listings (price, condition, size), related-product recommendations (other colorways/siblings StockX surfaces on the product page), and any promotional badges. Credential-free public data from StockX's own product-page GraphQL API.", + "description": "Returns a StockX product: identity (title, brand, model, colorway, style id, retail price, release date, description, image), current market data (lowest ask, highest bid, last sale, trailing average price/sales count, delivery-speed ask tiers), individual seller listings (price, condition, size), related-product recommendations (other colorways/siblings StockX surfaces on the product page), and any promotional badges.", "operationId": "stockx-product", "parameters": [ { @@ -448116,7 +461739,7 @@ "consumes": [ "application/json" ], - "description": "Returns a date-ordered page (release date ascending) of StockX's upcoming release calendar: new and restocked products releasing on or after the given date, with normalized product summaries, headline pricing, and each item's published release date. Credential-free public data from the same GraphQL API backing StockX's own releases page.", + "description": "Returns a date-ordered page (release date ascending) of StockX's upcoming release calendar: new and restocked products releasing on or after the given date, with product summaries, headline pricing, and each item's published release date.", "operationId": "stockx-releases", "parameters": [ { @@ -448186,7 +461809,7 @@ "consumes": [ "application/json" ], - "description": "Browses StockX's product catalog by category with optional free-text keyword search and facet filters (gender, brand, color, shoe height, activity, availability), returning normalized product summaries with headline pricing plus the total matching count. Credential-free public data from the same GraphQL API backing StockX's own category browse pages.", + "description": "Browses StockX's product catalog by category with optional free-text keyword search and facet filters (gender, brand, color, shoe height, activity, availability), returning product summaries with headline pricing plus the total matching count.", "operationId": "stockx-search", "parameters": [ { @@ -448432,7 +462055,7 @@ }, "/straitstimes/author": { "get": { - "description": "Returns a The Straits Times author's byline metadata and their recent articles from a canonical author URL.", + "description": "Returns a The Straits Times author's profile by `url`, a canonical `straitstimes.com/authors/` link: name, email when the author's page publishes one, and recent articles with title, URL, summary, author, image, `type` and publication time.", "operationId": "straitstimes-author", "parameters": [ { @@ -448486,7 +462109,7 @@ }, "/straitstimes/headlines": { "get": { - "description": "Returns fresh headlines from one public The Straits Times section.", + "description": "Returns the current headlines for one The Straits Times section. `section` is required and takes a slug such as `singapore`, `singapore/housing`, `asia/se-asia`, `business/economy`, `sport/formula-one` or `breaking-news`. Items carry the title and URL. Top-level sections such as `singapore` and `business` add summary and publication time; subsection pages such as `singapore/housing` add an image when shown.", "operationId": "straitstimes-headlines", "parameters": [ { @@ -448579,7 +462202,7 @@ }, "/straitstimes/news": { "get": { - "description": "Returns fresh The Straits Times top stories from its public top-stories page.", + "description": "Returns the current top stories from The Straits Times. It takes no parameters. Each item has its title, URL and, where the outlet gives them, a summary, author, publication time, image URL and `type`. Use the headlines endpoint for one section.", "operationId": "straitstimes-news", "produces": [ "application/json" @@ -448617,7 +462240,7 @@ }, "/straitstimes/sections": { "get": { - "description": "Returns the public The Straits Times category/section inventory used by the headlines endpoint.", + "description": "Lists The Straits Times section slugs that the headlines endpoint accepts, including nested ones such as `singapore/politics`, `asia/east-asia`, `world/europe`, `life/food`, `business/invest`, `sport/tennis`, `tech` and `breaking-news`. Each entry has a `slug`, display `name` and `url`.", "operationId": "straitstimes-sections", "produces": [ "application/json" @@ -448930,7 +462553,7 @@ "consumes": [ "application/json" ], - "description": "Returns the complete area hierarchy exposed by StreetEasy's public homepage location picker. Use area IDs with streeteasy-rentals-search.", + "description": "Lists StreetEasy's search area hierarchy: NYC and NJ roots, boroughs, neighborhoods and sub-neighborhoods. Each area has an `id`, `parentId`, `level`, `name` and `short` name. Use an `id` as a repeated `area_id` in `/streeteasy/rentals/search`. The list was 349 options on 2026-09-29 and can change.", "operationId": "streeteasy-areas", "produces": [ "application/json" @@ -449037,7 +462660,7 @@ "consumes": [ "application/json" ], - "description": "Returns every selectable public dashboard dataset, including supported bedroom and property-type variants. Use a returned dataset ID with streeteasy-market-data-series.", + "description": "Lists the 63 monthly metrics selectable in StreetEasy's Data Dashboard. Each has an `id`, display `label`, a sales or rentals `type`, a `bedrooms` segment and a `property_type`. Pass an `id` to `streeteasy-market-data-series` to get that metric's data. Takes no parameters.", "operationId": "streeteasy-market-data-catalog", "produces": [ "application/json" @@ -450055,7 +463678,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/streeteasy.RentalSearch" + "$ref": "#/definitions/streeteasy.SaleSearch" } }, "400": { @@ -450227,7 +463850,7 @@ "consumes": [ "application/json" ], - "description": "Returns the anonymous performer-page alternative, recently viewed, maybe-interested, and trending-event carousel sections. Obtain performer_slug and performer_id from a real StubHub performer URL or another StubHub result. The upstream request uses browser impersonation and requires no cookies or CSRF state.", + "description": "Returns the performer-page alternative, recently viewed, maybe-interested, and trending-event carousel sections. Obtain performer_slug and performer_id from a real StubHub performer URL or another StubHub result.", "operationId": "stubhub-carousel", "parameters": [ { @@ -450671,7 +464294,7 @@ "consumes": [ "application/json" ], - "description": "Lists a performer or team's own upcoming schedule (event name, date, venue, starting price) scraped from their StubHub page. Obtain a real performer_slug+performer_id pair from stubhub-trending's url field (e.g. https://www.stubhub.com/kansas-city-chiefs-tickets/performer/6063 -- slug \"kansas-city-chiefs-tickets\", id 6063). A zero count with an empty events list is a valid no-upcoming-events response.", + "description": "Lists a performer or team's own upcoming schedule (event name, date, venue, starting price) from their StubHub page. Obtain a real performer_slug+performer_id pair from stubhub-trending's url field (e.g. https://www.stubhub.com/kansas-city-chiefs-tickets/performer/6063 -- slug \"kansas-city-chiefs-tickets\", id 6063). A zero count with an empty events list is a valid no-upcoming-events response.", "operationId": "stubhub-performer-events", "parameters": [ { @@ -450781,7 +464404,7 @@ "consumes": [ "application/json" ], - "description": "Returns StubHub's short, changing list of performers, groupings, and categories currently suggested by its search UI. The upstream endpoint is a cookie-free GET with no query parameters.", + "description": "Returns StubHub's short, changing list of performers, groupings, and categories currently suggested by its search UI. It takes no query parameters.", "operationId": "stubhub-suggested-searches", "produces": [ "application/json" @@ -450936,7 +464559,7 @@ "consumes": [ "application/json" ], - "description": "Lists a venue's own upcoming event calendar (event name, date, starting price) scraped from its StubHub page. Obtain a real venue_slug+venue_id pair from another endpoint's event url field (e.g. https://www.stubhub.com/geha-field-at-arrowhead-stadium-tickets/venue/4467/ -- slug \"geha-field-at-arrowhead-stadium-tickets\", id 4467). A zero count with an empty events list is a valid no-upcoming-events response.", + "description": "Lists a venue's own upcoming event calendar (event name, date, starting price) from its StubHub page. Obtain a real venue_slug+venue_id pair from another endpoint's event url field (e.g. https://www.stubhub.com/geha-field-at-arrowhead-stadium-tickets/venue/4467/ -- slug \"geha-field-at-arrowhead-stadium-tickets\", id 4467). A zero count with an empty events list is a valid no-upcoming-events response.", "operationId": "stubhub-venue-events", "parameters": [ { @@ -451052,7 +464675,7 @@ }, "/stuff/author": { "get": { - "description": "Returns one Stuff author's public profile: name, job title, location, biography, headshot, email, and their recent stories.", + "description": "Returns a Stuff (New Zealand) author's profile, looked up by `slug` (for example `damien-venuto`) or canonical `url`; exactly one is required. The response has the name, `job_title`, `location`, biography, headshot, `email` and recent stories. Fields show only what the profile has; shared team bylines usually carry just a job title. An unknown author returns not found.", "operationId": "stuff-author", "parameters": [ { @@ -451112,7 +464735,7 @@ }, "/stuff/headlines": { "get": { - "description": "Returns fresh Stuff headlines from one public section feed.", + "description": "Returns the latest Stuff (New Zealand) stories for one section. `section` is required and takes one of 31 slugs, including slash-separated regional and sport ones such as `nz-news/auckland` and `sport/rugby`, plus `world-news`, `business`, `politics` and `motoring`. Each item has its title, URL, summary, publication time, author and image.", "operationId": "stuff-headlines", "parameters": [ { @@ -451193,7 +464816,7 @@ }, "/stuff/news": { "get": { - "description": "Returns fresh Stuff (New Zealand) top stories from the public site-wide feed.", + "description": "Returns the latest Stuff (New Zealand) top stories from the site-wide feed. Takes no parameters. Each item has its title, URL, summary, publication time, author and image where the feed provides them.", "operationId": "stuff-news", "produces": [ "application/json" @@ -451231,7 +464854,7 @@ }, "/stuff/sections": { "get": { - "description": "Returns the public Stuff section slugs accepted by the headlines endpoint.", + "description": "Lists the 31 Stuff sections that `stuff-headlines` accepts, including regional and sport slugs that contain a slash, such as `nz-news/auckland` and `sport/rugby`. Each entry has a `slug`, a display `name` and the section's Atom feed `url`.", "operationId": "stuff-sections", "produces": [ "application/json" @@ -452733,7 +466356,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Subway store's complete menu: every category, every product, and for each purchasable size (Footlong, 6-inch, etc.) its price, full nutrition panel (calories, fat, sodium, protein and more) and allergen disclosures. Store IDs come from a GET /subway/store result's store_id field. This endpoint currently covers US stores only: the upstream menu route it reads is not served for non-US stores, which return 404 -- see GET /subway/combos for the bundle/combo categories that are available in other markets. Categories carry is_main_category: true for human-browsable menu sections (Sandwiches, Drinks, Salads, ...) and false for Subway's own internal build/customization groupings, which are included for completeness but are not meant to be shown as menu sections on their own.", + "description": "Returns one Subway store's complete menu: every category, every product, and for each purchasable size (Footlong, 6-inch, etc.) its price, full nutrition panel (calories, fat, sodium, protein and more) and allergen disclosures. Store IDs come from a GET /subway/store result's store_id field. This endpoint currently covers US stores only: the menu is not available for non-US stores, which return 404 -- see GET /subway/combos for the bundle/combo categories that are available in other markets. Categories carry is_main_category: true for human-browsable menu sections (Sandwiches, Drinks, Salads, ...) and false for Subway's own internal build/customization groupings, which are included for completeness but are not meant to be shown as menu sections on their own.", "operationId": "subway-menu", "parameters": [ { @@ -452893,7 +466516,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of Subway's sitemap-declared store index -- 22,700+ URLs across 2 shards at time of writing, covering a country/region/city/street tree worldwide. This is the cheapest way to enumerate Subway locations, and it is the entry point Subway's own robots.txt declares. Each entry carries its URL, the locator path GET /subway/store takes, and a depth: the deepest entries are store pages, shallower ones are country, region and city directory pages listed in the same sitemap. A page past the end returns an empty list rather than an error, so a caller can walk to exhaustion.", + "description": "Returns one page of Subway's sitemap-declared store index -- 22,700+ URLs across 2 shards at time of writing, covering a country/region/city/street tree worldwide. This is the cheapest way to enumerate Subway locations. Each entry carries its URL, the locator path GET /subway/store takes, and a depth: the deepest entries are store pages, shallower ones are country, region and city directory pages listed in the same sitemap. A page past the end returns an empty list rather than an error, so a caller can walk to exhaustion.", "operationId": "subway-sitemap", "parameters": [ { @@ -453029,7 +466652,7 @@ }, "/sun/article": { "get": { - "description": "Returns public The Sun article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one The Sun article by `url`, a canonical HTTPS article link. The response has the title, description, section, authors, publication and update times, lead image URL, body `paragraphs` and a `paywalled` flag. Subscriber-only or blocked pages return an error instead.", "operationId": "sun-article", "parameters": [ { @@ -453083,7 +466706,7 @@ }, "/sun/author": { "get": { - "description": "Returns a Sun author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns a Sun author's profile by `url`, a canonical `thesun.co.uk/author//` link: name, job title, bio and recent articles with title, URL, excerpt, category and category URL. `job_title` is often empty because most Sun bylines carry only a name and bio.", "operationId": "sun-author", "parameters": [ { @@ -453137,7 +466760,7 @@ }, "/sun/headlines": { "get": { - "description": "Returns fresh headlines from one public The Sun section.", + "description": "Returns the current headlines for one The Sun section. `section` is required and takes one of `news`, `politics`, `royal-family`, `sport`, `showbiz`, `money`, `tech`, `fabulous`, `travel` or `health`. Every item has its title and URL. The `news` section also carries summary, author, publication time and image when the outlet provides them.", "operationId": "sun-headlines", "parameters": [ { @@ -453197,7 +466820,7 @@ }, "/sun/news": { "get": { - "description": "Returns fresh The Sun stories from the public RSS feed.", + "description": "Returns the current top stories from The Sun. It takes no parameters. Each item has its title, URL and, where available, a summary, author, publication time, image URL and `type`. Use the headlines endpoint to read one section.", "operationId": "sun-news", "produces": [ "application/json" @@ -453229,7 +466852,7 @@ }, "/sun/sections": { "get": { - "description": "Returns the public The Sun editorial section inventory.", + "description": "Lists the The Sun sections that the headlines endpoint accepts, such as `news`, `politics`, `royal-family`, `sport`, `showbiz`, `money`, `tech`, `fabulous`, `travel` and `health`. Each entry has a `slug`, a display `name` and a section `url`.", "operationId": "sun-sections", "produces": [ "application/json" @@ -453576,7 +467199,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Taco Bell US restaurant's complete app-ordering catalog by store number: every category, every individually orderable product, AND every combo (kind \"bundle\") it carries. This is the only endpoint in this family that publishes combos at all -- each one resolved down to its full slot composition (choices[], each with min/max selections and the product codes it defaults to when not customized), not just a name and price. Also returns the store's named ordering windows (dayparts) and, per item, which dayparts it is orderable in. Comes from a different, credential-free backend than every other endpoint in this family -- no cookie, session, or account is required. Store numbers come from GET /taco-bell/stores.", + "description": "Returns one Taco Bell US restaurant's complete app-ordering catalog by store number: every category, every individually orderable product, AND every combo (kind \"bundle\") it carries. This is the only endpoint in this family that publishes combos at all -- each one resolved down to its full slot composition (choices[], each with min/max selections and the product codes it defaults to when not customized), not just a name and price. Also returns the store's named ordering windows (dayparts) and, per item, which dayparts it is orderable in. Store numbers come from GET /taco-bell/stores.", "operationId": "taco-bell-app-menu", "parameters": [ { @@ -454100,7 +467723,7 @@ }, "/target/categories": { "get": { - "description": "Returns Target's current top-level category menu and the complete grouped shop-all directory, including category ids and canonical URLs.", + "description": "Lists Target's top-level category menu in `categories`, plus the grouped shop-all directory in `groups`. Each category has an `id` (the one used by `/target/category-products`), name, canonical URL and, when Target supplies one, an image URL. The response also gives `count` and `group_count`. Takes no parameters.", "operationId": "target-categories", "produces": [ "application/json" @@ -454310,7 +467933,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product details for one Target item, including product content, images, price, rating, category, and availability flags for the selected store.", + "description": "Returns product details for one Target item, including product content, images, price, rating, category, and availability flags for the selected store.", "operationId": "target-product", "parameters": [ { @@ -454378,7 +468001,7 @@ }, "/target/questions": { "get": { - "description": "Returns paginated product questions with their nested answers.", + "description": "Lists customer questions for a Target item given by its numeric `tcin`, each with its text, author, submission time, helpful votes and nested answers. `page` is zero-based and `per_page` runs 1 to 25. The response gives `total_pages` and `count` for paging.", "operationId": "target-questions", "parameters": [ { @@ -454443,7 +468066,7 @@ }, "/target/reviews": { "get": { - "description": "Returns paginated written reviews for a Target item. Pagination is zero-based and page 50 is the upstream maximum.", + "description": "Lists written reviews for a Target item given by its numeric `tcin`. Each review has its rating, title, text, author, submission time, helpful votes, and verified and syndicated flags. `page` is zero-based and stops at 50; `per_page` runs 1 to 25. The response gives `total` and `total_pages`.", "operationId": "target-reviews", "parameters": [ { @@ -454512,7 +468135,7 @@ "consumes": [ "application/json" ], - "description": "Searches Target products and returns normalized products plus every filter group and option available for the current result set. Pass option ids back through filter_ids as a comma-separated list. A zero total with an empty products list is a valid no-results response. The sort enum accepts `relevance`, `featured`, `price-low`, `price-high`, `rating`, `bestselling`, and `newest`.", + "description": "Searches Target products and returns products plus every filter group and option available for the current result set. Pass option ids back through filter_ids as a comma-separated list. A zero total with an empty products list is a valid no-results response. The sort enum accepts `relevance`, `featured`, `price-low`, `price-high`, `rating`, `bestselling`, and `newest`.", "operationId": "target-search", "parameters": [ { @@ -454799,7 +468422,7 @@ }, "/techcrunch/headlines": { "get": { - "description": "Returns fresh headlines from one public TechCrunch category feed.", + "description": "Returns the latest TechCrunch stories for one category. `section` is required and takes one of 22 slugs such as `artificial-intelligence`, `startups`, `venture`, `security`, `fintech`, `space` or `cryptocurrency`. Each item has its title, URL, summary, publication time and author.", "operationId": "techcrunch-headlines", "parameters": [ { @@ -454871,7 +468494,7 @@ }, "/techcrunch/news": { "get": { - "description": "Returns fresh TechCrunch top stories from its public RSS feed.", + "description": "Returns the latest TechCrunch top stories from its home feed. Takes no parameters. Each item has its title, URL, summary, publication time and author name.", "operationId": "techcrunch-news", "produces": [ "application/json" @@ -454909,7 +468532,7 @@ }, "/techcrunch/sections": { "get": { - "description": "Returns the complete public category inventory accepted by /api/v1/techcrunch/headlines.", + "description": "Lists the 22 TechCrunch categories that `techcrunch-headlines` accepts, taken from the site's primary navigation dropdown. Each entry has a stable `slug`, a display `name` and the category's feed `url`. For example, `artificial-intelligence` is named AI.", "operationId": "techcrunch-sections", "produces": [ "application/json" @@ -454935,7 +468558,7 @@ }, "/techradar/article": { "get": { - "description": "Returns public TechRadar article metadata and body paragraphs from a canonical article URL.", + "description": "Returns a TechRadar article by canonical `url` on `techradar.com`: title, description, section, authors, publication and update times, lead image, the body `paragraphs` and a `paywalled` flag.", "operationId": "techradar-article", "parameters": [ { @@ -454989,7 +468612,7 @@ }, "/techradar/author": { "get": { - "description": "Returns one TechRadar author's public profile: name, biography, social links, and one page of their recent articles.", + "description": "Returns a TechRadar author's profile, looked up by `slug` (for example `tom-power`) or canonical `url`, which may end in `/page/`; exactly one is required. `page` (1-based, default 1) overrides any page in `url`. The response has the name, `job_title`, biography, social links, one page of articles and `has_next_page`.", "operationId": "techradar-author", "parameters": [ { @@ -455056,7 +468679,7 @@ }, "/techradar/headlines": { "get": { - "description": "Returns fresh TechRadar headlines from one public section hub page.", + "description": "Returns the latest TechRadar stories for one section hub. `section` is required and takes one of 25 slugs such as `computing`, `phones`, `audio`, `gaming`, `deals`, `reviews`, `news` or `vpn`. Each item has its title, URL, summary, publication time, author and image.", "operationId": "techradar-headlines", "parameters": [ { @@ -455131,7 +468754,7 @@ }, "/techradar/news": { "get": { - "description": "Returns fresh TechRadar top stories from the public RSS feed.", + "description": "Returns TechRadar's latest top stories across the site. Takes no parameters, and `techradar-headlines` narrows by section instead. Each item has its title, URL, summary, publication time, author and image.", "operationId": "techradar-news", "produces": [ "application/json" @@ -455169,7 +468792,7 @@ }, "/techradar/sections": { "get": { - "description": "Returns the public TechRadar top-level editorial taxonomy used by the headlines endpoint.", + "description": "Lists the 25 top-level TechRadar sections that `techradar-headlines` accepts, such as `computing`, `phones`, `best`, `deals` and `how-to`. Each entry has a `slug`, a display `name` and the section page `url`.", "operationId": "techradar-sections", "produces": [ "application/json" @@ -455195,7 +468818,7 @@ }, "/telegraph/article": { "get": { - "description": "Returns public The Telegraph article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one The Telegraph article by `url`, a canonical HTTPS article link. The response has the title, description, section, authors, publication and update times, image URL, body `paragraphs` and a `paywalled` flag. Access is intermittent, and subscriber-only or blocked pages return an error.", "operationId": "telegraph-article", "parameters": [ { @@ -455249,7 +468872,7 @@ }, "/telegraph/author": { "get": { - "description": "Returns a Telegraph author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns a Telegraph author's profile by `url`, a canonical `telegraph.co.uk/authors////` link: name, job title, bio and recent articles with title, URL, excerpt and ISO-8601 `published_at`. `job_title` can be empty for contributors without a masthead credit.", "operationId": "telegraph-author", "parameters": [ { @@ -455303,7 +468926,7 @@ }, "/telegraph/headlines": { "get": { - "description": "Returns fresh headlines from one public The Telegraph section.", + "description": "Returns the current headlines for one The Telegraph section. `section` is required and takes one of `uk-news`, `world-news`, `politics`, `business`, `finance`, `technology`, `sport`, `culture`, `travel`, `lifestyle`, `health`, `science` or `opinion`. Each item has its title and URL.", "operationId": "telegraph-headlines", "parameters": [ { @@ -455366,7 +468989,7 @@ }, "/telegraph/news": { "get": { - "description": "Returns fresh public The Telegraph stories from its RSS feed when the upstream security layer permits the request.", + "description": "Returns the current top stories from The Telegraph. It takes no parameters. Each item has its title, URL and, where available, a summary, author, publication time, image URL and `type`. It can return an error when The Telegraph declines the request.", "operationId": "telegraph-news", "produces": [ "application/json" @@ -455398,7 +469021,7 @@ }, "/telegraph/sections": { "get": { - "description": "Returns the public The Telegraph editorial section inventory.", + "description": "Lists the The Telegraph sections that the headlines endpoint accepts, such as `uk-news`, `world-news`, `politics`, `finance`, `culture` and `opinion`. Each entry has a `slug`, a display `name` and a section `url`.", "operationId": "telegraph-sections", "produces": [ "application/json" @@ -455427,7 +469050,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized detail for one job posting by its numeric id (the id field returned by tes-job-search): employer, location, salary, contract terms/types, dates, and application contact/URL, plus a short excerpt of the listing description rather than the full long-form HTML copy.", + "description": "Returns detail for one job posting by its numeric id (the id field returned by tes-job-search): employer, location, salary, contract terms/types, dates, and application contact/URL, plus a short excerpt of the listing description rather than the full long-form HTML copy.", "operationId": "tes-job-detail", "parameters": [ { @@ -455490,7 +469113,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized detail for one jobs employer profile by its numeric id (the trailing id in tes-job-detail's employer_url field, e.g. .../jobs/employer/epsom-college-1039424 -- the 1039424): name, location, school type/phase/funding status/gender/age range, an about description, its postal address, and every currently-open position listed on the employer's own profile page (id, title, url -- call tes-job-detail with each id for the full posting).", + "description": "Returns detail for one jobs employer profile by its numeric id (the trailing id in tes-job-detail's employer_url field, e.g. .../jobs/employer/epsom-college-1039424 -- the 1039424): name, location, school type/phase/funding status/gender/age range, an about description, its postal address, and every currently-open position listed on the employer's own profile page (id, title, url -- call tes-job-detail with each id for the full posting).", "operationId": "tes-job-employer", "parameters": [ { @@ -455553,7 +469176,7 @@ "consumes": [ "application/json" ], - "description": "Searches Tes's (tes.com) teaching-jobs board. Returns normalized listing facts (title, employer, location, salary, contract terms/types) plus a short excerpt of the listing description, not the full long-form job-description copy, and the same live faceted-search breakdown (position/subject/workplace category trees with counts, plus contract type/term counts) the real search page renders as its filter sidebar. location is a free-text place name (a UK town/city, an international city, or a bare country name) resolved to coordinates via Tes's own location-autocomplete endpoint; omit for Tes's own default market, \"United Kingdom\". radius_miles selects the search radius around location. contract_type and contract_term are validated against Tes's own small, closed label sets. position, subject, and workplace are comma-separated passthrough filters -- Tes's own category labels are numerous and can change, so read a prior response's own facets.positions[].value (and facets.positions[].children[].value)/facets.subjects[].value/facets.workplaces[].children[].value for the live, current set rather than guessing. salary_min filters to jobs with an advertised salary at or above that amount (in the searched market's local currency); Tes's own filter panel offers only a minimum, no maximum.", + "description": "Searches Tes's (tes.com) teaching-jobs board. Returns listing facts (title, employer, location, salary, contract terms/types) plus a short excerpt of the listing description, not the full long-form job-description copy, and the same live faceted-search breakdown (position/subject/workplace category trees with counts, plus contract type/term counts) the real search page renders as its filter sidebar. location is a free-text place name (a UK town/city, an international city, or a bare country name) resolved to coordinates; omit for Tes's own default market, \"United Kingdom\". radius_miles selects the search radius around location. contract_type and contract_term are validated against Tes's own small, closed label sets. position, subject, and workplace are comma-separated filters -- Tes's own category labels are numerous and can change, so read a prior response's own facets.positions[].value (and facets.positions[].children[].value)/facets.subjects[].value/facets.workplaces[].children[].value for the live, current set rather than guessing. salary_min filters to jobs with an advertised salary at or above that amount (in the searched market's local currency); Tes's own filter panel offers only a minimum, no maximum.", "operationId": "tes-job-search", "parameters": [ { @@ -455719,7 +469342,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized detail for one teaching resource by its numeric id (the id field returned by tes-resource-search). Descriptive facts (title, subject, age range, resource type, author, price, rating, licence label), a per-file attachment list (file type, size, and a preview thumbnail -- metadata only), and the most recent page of reviews are returned -- not the downloadable resource file itself, which robots.txt already disallows scraping regardless.", + "description": "Returns detail for one teaching resource by its numeric id (the id field returned by tes-resource-search). Descriptive facts (title, subject, age range, resource type, author, price, rating, licence label), a per-file attachment list (file type, size, and a preview thumbnail -- metadata only), and the most recent page of reviews are returned -- not the downloadable resource file itself.", "operationId": "tes-resource-detail", "parameters": [ { @@ -455798,7 +469421,7 @@ "consumes": [ "application/json" ], - "description": "Searches Tes's (tes.com) teaching-resources marketplace. Returns normalized listing facts (title, author, price, rating, downloads) -- not full listing descriptions -- out of respect for Tes's general reproduction/republication restriction. query is optional: omit it (alone, or combined with key_stage/subject/on_sale) for pure filter-driven or fully unfiltered browsing, matching Tes's own search API. sort mirrors the real search page's own Sort by dropdown; key_stage and subject mirror its left-hand Refine by filters (both closed, validated enums taken from Tes's own facet taxonomy, and always resolved against Tes's own single GB-taxonomy regardless of country). country controls result currency/localisation only (confirmed live for all seven values); it does not change which key_stage/subject values are valid.", + "description": "Searches Tes's (tes.com) teaching-resources marketplace. Returns listing facts (title, author, price, rating, downloads) -- not full listing descriptions. query is optional: omit it (alone, or combined with key_stage/subject/on_sale) for pure filter-driven or fully unfiltered browsing. sort mirrors the real search page's own Sort by dropdown; key_stage and subject mirror its left-hand Refine by filters (both closed, validated enums taken from Tes's own facet taxonomy, and always resolved against Tes's own single GB-taxonomy regardless of country). country controls result currency/localisation only (confirmed live for all seven values); it does not change which key_stage/subject values are valid.", "operationId": "tes-resource-search", "parameters": [ { @@ -455933,7 +469556,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized detail for one teaching-resources author/seller shop by its username (from tes-resource-search/tes-resource-detail's author field, or the trailing path segment of author_url): display name, average rating, upload/view/download counts, a bio, and a page of that author's resource listing (id, title, price, thumbnail -- call tes-resource-detail with each id for subject/age-range/resource-type/rating/description). subject narrows the listing to one of the subject tabs shown on the shop's own page; these vary per author and are not a curated enum.", + "description": "Returns detail for one teaching-resources author/seller shop by its username (from tes-resource-search/tes-resource-detail's author field, or the trailing path segment of author_url): display name, average rating, upload/view/download counts, a bio, and a page of that author's resource listing (id, title, price, thumbnail -- call tes-resource-detail with each id for subject/age-range/resource-type/rating/description). subject narrows the listing to one of the subject tabs shown on the shop's own page; these vary per author and are not a curated enum.", "operationId": "tes-resource-shop", "parameters": [ { @@ -456012,7 +469635,7 @@ "consumes": [ "application/json" ], - "description": "Searches Tes's (tes.com) public Schools Directory by school name or location. Returns normalized listing facts (name, logo, a short description, address) for each matching school/employer. Each result's id is the same employer id tes-job-employer accepts, so a caller can go straight from a name/location search to a full employer profile (school type/phase/funding status/gender/age range, and its currently-open positions) without first needing a job posting to discover the id.", + "description": "Searches Tes's (tes.com) public Schools Directory by school name or location. Returns listing facts (name, logo, a short description, address) for each matching school/employer. Each result's id is the same employer id tes-job-employer accepts, so a caller can go straight from a name/location search to a full employer profile (school type/phase/funding status/gender/age range, and its currently-open positions) without first needing a job posting to discover the id.", "operationId": "tes-school-search", "parameters": [ { @@ -456087,7 +469710,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Tesla Careers posting by its numeric job id (the `id` field returned by the list endpoint). Parsed from tesla.com's own job detail JSON endpoint.", + "description": "Returns one Tesla Careers posting by its numeric job id (the `id` field returned by the list endpoint).", "operationId": "tesla-jobs-job", "parameters": [ { @@ -456781,7 +470404,7 @@ }, "/theblaze/article": { "get": { - "description": "Returns article metadata and body paragraphs from a canonical, publicly accessible editorial or show-story URL.", + "description": "Returns one TheBlaze (Blaze Media) article by `url`, a canonical HTTPS editorial or show-story link on `theblaze.com`; non-editorial paths and off-site URLs are rejected. The response has the title, description, section, authors, publication and update times, image URL, body `paragraphs` and a `paywalled` flag.", "operationId": "theblaze-article", "parameters": [ { @@ -456895,7 +470518,7 @@ }, "/theblaze/headlines": { "get": { - "description": "Returns headlines from a public section RSS feed. Use /theblaze/sections to discover the complete accepted section list.", + "description": "Returns up to 30 recent stories from one TheBlaze (Blaze Media) section. `section` is required, case-sensitive and must match exactly, for example `news`, `columns/opinion`, `lifestyle/men`, `tech` or a show such as `shows/relatable`. Other values are rejected. Items have a title and URL, plus summary, author, publication time and image when the outlet provides them.", "operationId": "theblaze-headlines", "parameters": [ { @@ -456989,7 +470612,7 @@ }, "/theblaze/news": { "get": { - "description": "Returns fresh news and opinion stories from the public Blaze Media RSS feed.", + "description": "Returns the latest site-wide stories from TheBlaze (Blaze Media), up to 30 items, covering news and opinion. Each item has a headline, canonical URL, publication time, byline, summary and image URL when published. It takes no parameters.", "operationId": "theblaze-news", "produces": [ "application/json" @@ -457056,7 +470679,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized collections from The Body Shop (https://www.thebodyshop.com). The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty collections array.", + "description": "Returns collections from The Body Shop (https://www.thebodyshop.com). The storefront URL is fixed. Valid empty result pages return `200` with an empty collections array.", "operationId": "thebodyshop-collections", "parameters": [ { @@ -457119,7 +470742,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from one The Body Shop (https://www.thebodyshop.com) collection. The storefront URL is fixed server-side; `handle` is the collection's URL slug.", + "description": "Returns products from one The Body Shop (https://www.thebodyshop.com) collection. The storefront URL is fixed; `handle` is the collection's URL slug.", "operationId": "thebodyshop-collection-products", "parameters": [ { @@ -457196,7 +470819,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static pages from The Body Shop (https://www.thebodyshop.com). The storefront URL is fixed server-side.", + "description": "Lists The Body Shop static pages, 50 per request by default (`limit` up to 250), with `page` starting at 1. Each page has its handle, title, URL, plain-text content and timestamps. An empty result is a normal 200. When `transport_mode` is `ssr_embedded`, items carry only `handle`, `url` and `updated_at`.", "operationId": "thebodyshop-pages", "parameters": [ { @@ -457259,7 +470882,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized static page detail for one The Body Shop (https://www.thebodyshop.com) page handle. The storefront URL is fixed server-side.", + "description": "Returns one The Body Shop static page by its `handle`: id, title, URL, plain-text `content` and the created, published and updated timestamps. Page text is cleaned, not raw HTML. An unknown handle returns 404. When the reduced form is served, `transport_mode` is `ssr_embedded` and `id` is omitted.", "operationId": "thebodyshop-page", "parameters": [ { @@ -457322,7 +470945,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized products from The Body Shop's (https://www.thebodyshop.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", + "description": "Returns products from The Body Shop's (https://www.thebodyshop.com) public product catalog. The storefront URL is fixed server-side. Valid empty result pages return `200` with an empty products array.", "operationId": "thebodyshop-products", "parameters": [ { @@ -457385,7 +471008,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized product detail for one The Body Shop (https://www.thebodyshop.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", + "description": "Returns product detail for one The Body Shop (https://www.thebodyshop.com) product handle. The storefront URL is fixed server-side; `handle` is the product's URL slug.", "operationId": "thebodyshop-product", "parameters": [ { @@ -457448,7 +471071,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized recommended products for one The Body Shop (https://www.thebodyshop.com) product handle. The route handle is resolved to a Shopify product id before fetching recommendations. The storefront URL is fixed server-side.", + "description": "Returns recommended products for one The Body Shop (https://www.thebodyshop.com) product handle. The storefront URL is fixed server-side.", "operationId": "thebodyshop-product-recommendations", "parameters": [ { @@ -457529,7 +471152,7 @@ "consumes": [ "application/json" ], - "description": "Returns products, collections, and query suggestions from The Body Shop's (https://www.thebodyshop.com) credential-free predictive search Ajax endpoint. The storefront URL is fixed server-side.", + "description": "Returns products, collections, and query suggestions from The Body Shop's (https://www.thebodyshop.com) predictive search. The storefront URL is fixed server-side.", "operationId": "thebodyshop-search-suggest", "parameters": [ { @@ -457719,7 +471342,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized storefront metadata for The Body Shop (https://www.thebodyshop.com), sourced from credential-free storefront JSON. This endpoint is a brand-pinned wrapper around the generic Shopify store family: the storefront URL is fixed server-side, so no `url` parameter is accepted. If the vanity domain blocks `/products.json`, the service may fall back to a public `*.myshopify.com` domain discovered from the storefront page, or to the storefront's own embedded page data for storefronts that expose neither.", + "description": "Returns storefront metadata for The Body Shop (https://www.thebodyshop.com). The storefront URL is fixed server-side, so no `url` parameter is accepted.", "operationId": "thebodyshop-store", "produces": [ "application/json" @@ -457763,7 +471386,7 @@ }, "/thedailybeast/article": { "get": { - "description": "Returns public The Daily Beast article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one The Daily Beast article by its canonical `url`, either a root-level slug or one under a single content vertical such as `obsessed`. The response has the title, description, section, authors, publication and update times, lead image URL, body `paragraphs` and a `paywalled` flag. Digest or index pages are not articles and return an error.", "operationId": "thedailybeast-article", "parameters": [ { @@ -457871,7 +471494,7 @@ }, "/thedailybeast/headlines": { "get": { - "description": "Returns fresh headlines from one public The Daily Beast category hub.", + "description": "Returns the current headlines of one The Daily Beast section. `section` is required and takes a slug such as `politics`, `politics/opinion`, `obsessed/reviews`, `scouted/home` or `world/china`. Each item can carry its title, URL, summary, author, publication time, lead image and `type`, and the response echoes the `section`.", "operationId": "thedailybeast-headlines", "parameters": [ { @@ -457998,7 +471621,7 @@ }, "/thedailybeast/news": { "get": { - "description": "Returns fresh The Daily Beast stories from the public outbound RSS feed.", + "description": "Returns the current top stories from The Daily Beast. It takes no parameters. Each item has its title, URL, summary, publication time, author and lead image, so it is a quick front-page view; use the headlines endpoint with a `section` slug for one category.", "operationId": "thedailybeast-news", "produces": [ "application/json" @@ -458030,7 +471653,7 @@ }, "/thedailybeast/sections": { "get": { - "description": "Returns the live public The Daily Beast category inventory (parent and child sections).", + "description": "Lists the sections of The Daily Beast that the headlines endpoint accepts, both top-level categories such as `politics` and `world` and child sub-sections such as `politics/opinion` and `world/middle-east`. Each entry has a `slug`, a display `name` and the section `url`.", "operationId": "thedailybeast-sections", "produces": [ "application/json" @@ -458056,7 +471679,7 @@ }, "/thehill/article": { "get": { - "description": "Returns public The Hill article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one The Hill article by `url`, which must be a canonical HTTPS `thehill.com` article link containing a numeric article id. The response has the title, description, section, authors, publication and update times, lead image URL, body `paragraphs` and a `paywalled` flag.", "operationId": "thehill-article", "parameters": [ { @@ -458110,7 +471733,7 @@ }, "/thehill/author": { "get": { - "description": "Returns a The Hill author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns a The Hill author's profile by `url`, a canonical `thehill.com/author//` link: name, job title, bio, image URL and recent articles with title, URL, category and category URL. `job_title` and `image_url` may be missing, and each article's `published_at` is relative text such as `10 hours ago`, not a timestamp.", "operationId": "thehill-author", "parameters": [ { @@ -458164,7 +471787,7 @@ }, "/thehill/headlines": { "get": { - "description": "Returns fresh headlines from one public The Hill RSS section.", + "description": "Returns the current headlines for one The Hill section. `section` is required and takes one of 19 slugs, including `home`, `policy`, `business`, `senate`, `national-security` and `technology`. Each item has its title and URL, plus summary, author, publication time and image when the outlet provides them, and the response echoes the `section`.", "operationId": "thehill-headlines", "parameters": [ { @@ -458233,7 +471856,7 @@ }, "/thehill/news": { "get": { - "description": "Returns fresh The Hill top stories from its public RSS feed.", + "description": "Returns the current top stories from The Hill. It takes no parameters. Each item has its title, URL and, where the outlet gives them, a summary, author, publication time, image URL and `type`. Use the headlines endpoint to read one section instead.", "operationId": "thehill-news", "produces": [ "application/json" @@ -458271,7 +471894,7 @@ }, "/thehill/sections": { "get": { - "description": "Returns the public The Hill RSS section inventory used by the headlines endpoint.", + "description": "Lists the 19 The Hill section slugs that the headlines endpoint accepts, such as `home`, `policy`, `senate`, `defense` and `technology`. Each entry has the section `slug`, its display `name` and its `url`.", "operationId": "thehill-sections", "produces": [ "application/json" @@ -458411,7 +472034,7 @@ }, "/thehindu/headlines": { "get": { - "description": "Returns fresh headlines from one public The Hindu section.", + "description": "Returns the current headlines for one The Hindu section. `section` is required and takes a slug such as `news-national`, `opinion-editorial`, `business-markets`, `sport-cricket` or `sci-tech-health`. Items carry the title, URL, summary, author, publication time and image, and the response echoes the `section`.", "operationId": "thehindu-headlines", "parameters": [ { @@ -458529,7 +472152,7 @@ }, "/thehindu/news": { "get": { - "description": "Returns fresh The Hindu top stories from its public \"Latest News\" feed.", + "description": "Returns the current stories from The Hindu's Latest News listing. It takes no parameters. Each item has its title, URL and, where available, a summary, author, publication time, image URL and `type`. For a single desk such as cricket or business, use the headlines endpoint.", "operationId": "thehindu-news", "produces": [ "application/json" @@ -458567,7 +472190,7 @@ }, "/thehindu/sections": { "get": { - "description": "Returns the public The Hindu section inventory used by the headlines endpoint.", + "description": "Lists the The Hindu section slugs that the headlines endpoint accepts, covering news, opinion, business, sport, entertainment, sci-tech, education, life and style, society, books and food, for example `news-national`, `sport-cricket` and `food-recipes`. Each entry has a `slug`, `name` and `url`.", "operationId": "thehindu-sections", "produces": [ "application/json" @@ -458779,7 +472402,7 @@ }, "/thejournal/news": { "get": { - "description": "Returns fresh TheJournal.ie stories from the public site-wide RSS feed, with real publish times.", + "description": "Returns the latest TheJournal.ie stories across all sections. Each item has a title, canonical URL, short summary, publication time (RFC 3339, UTC) and lead image. Items carry no author byline; the article endpoint supplies it. It takes no parameters.", "operationId": "thejournal-news", "produces": [ "application/json" @@ -458811,7 +472434,7 @@ }, "/thejournal/sections": { "get": { - "description": "Returns the public TheJournal.ie section inventory: the category pages and navigation topic pages this family serves headlines for.", + "description": "Lists the 22 TheJournal.ie sections that the headlines endpoint accepts, verified 2026-09-25: nine category pages such as `irish`, `politics` and `business`, plus topic pages such as `housing`, `courts`, `ukraine` and `gaza`. Each entry has a `slug`, `name` and listing page `url`. Topic pages outside the site navigation are not served.", "operationId": "thejournal-sections", "produces": [ "application/json" @@ -458837,7 +472460,7 @@ }, "/thenextweb/article": { "get": { - "description": "Returns public The Next Web article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one The Next Web article by `url`, which must be a canonical HTTPS `thenextweb.com/news/` link; off-site URLs and non-article paths are rejected. The response has the title, description, section, authors, publication and update times, image URL, body `paragraphs` and a `paywalled` flag.", "operationId": "thenextweb-article", "parameters": [ { @@ -458891,7 +472514,7 @@ }, "/thenextweb/author": { "get": { - "description": "Returns one public author profile and the story cards shown on its public author archive.", + "description": "Returns a The Next Web author's name, image URL and the story cards on their archive page. Give `slug` or a canonical `thenextweb.com/author/` `url`; `slug` is required when `url` is omitted. Each article has a title, URL, summary, author, image, `type` and publication time.", "operationId": "thenextweb-author", "parameters": [ { @@ -458951,7 +472574,7 @@ }, "/thenextweb/headlines": { "get": { - "description": "Returns article cards from the public server-rendered section page. Pagination uses a robots-disallowed JSON path and is not requested.", + "description": "Returns the story cards of one The Next Web editorial section. `section` is required and must be one of `deep-tech`, `sustainability`, `ecosystems`, `data-security`, `fintech-ecommerce`, `future-of-work`, `startups-technology`, `investors-funding`, `government-policy` or `corporates-innovation`; other values return a 400.", "operationId": "thenextweb-headlines", "parameters": [ { @@ -459011,7 +472634,7 @@ }, "/thenextweb/news": { "get": { - "description": "Returns current The Next Web stories from its public RSS feed.", + "description": "Returns the current top stories from The Next Web. It takes no parameters. Each item has the publisher's title, canonical URL, summary, publication time and author, plus the image URL when one is present.", "operationId": "thenextweb-news", "produces": [ "application/json" @@ -459078,7 +472701,7 @@ "consumes": [ "application/json" ], - "description": "Returns The RealReal's own search-box typeahead suggestions for a partial query. Credential-free public data sourced from The RealReal's own first-party catalog API.", + "description": "Returns The RealReal's own search-box typeahead suggestions for a partial query.", "operationId": "therealreal-autocomplete", "parameters": [ { @@ -459135,7 +472758,7 @@ "consumes": [ "application/json" ], - "description": "Returns The RealReal's full category (taxon) browse taxonomy: every department, category, and subcategory, nested, with each entry's id (usable directly against search's category_id), permalink (usable directly against the category endpoint's path), and live matching item count. This is reference data that changes rarely, so responses are cached. Credential-free public data sourced from The RealReal's own server-rendered category page.", + "description": "Returns The RealReal's full category (taxon) browse taxonomy: every department, category, and subcategory, nested, with each entry's id (usable directly against search's category_id), permalink (usable directly against the category endpoint's path), and live matching item count. This is reference data that changes rarely, so responses are cached.", "operationId": "therealreal-categories", "produces": [ "application/json" @@ -459176,7 +472799,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of normalized The RealReal listings browsed by category (taxon) permalink path, e.g. women/handbags. Pass a previous response's next_after back as after to fetch the next page. Credential-free public data sourced from The RealReal's own server-rendered category page.", + "description": "Returns a page of The RealReal listings browsed by category (taxon) permalink path, e.g. women/handbags. Pass a previous response's next_after back as after to fetch the next page.", "operationId": "therealreal-category", "parameters": [ { @@ -459257,7 +472880,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of normalized The RealReal listings browsed by curated collection slug, e.g. on-sale-now -- sale campaigns, editor's picks, and similar merchandising collections distinct from category/designer browsing. Pass a previous response's next_after back as after to fetch the next page. Credential-free public data sourced from The RealReal's own server-rendered collection page.", + "description": "Returns a page of The RealReal listings browsed by curated collection slug, e.g. on-sale-now -- sale campaigns, editor's picks, and similar merchandising collections distinct from category/designer browsing. Pass a previous response's next_after back as after to fetch the next page.", "operationId": "therealreal-collection", "parameters": [ { @@ -459326,7 +472949,7 @@ "consumes": [ "application/json" ], - "description": "Returns The RealReal's full published set of curated editorial and sale-campaign collection slugs (e.g. on-sale-now, hermes-birkin-bag), each usable directly against the collection endpoint's own slug field. This is reference data that changes rarely, so responses are cached. Credential-free public data sourced from The RealReal's own published sitemap.", + "description": "Returns The RealReal's full published set of curated editorial and sale-campaign collection slugs (e.g. on-sale-now, hermes-birkin-bag), each usable directly against the collection endpoint's own slug field. This is reference data that changes rarely, so responses are cached.", "operationId": "therealreal-collections", "produces": [ "application/json" @@ -459367,7 +472990,7 @@ "consumes": [ "application/json" ], - "description": "Returns The RealReal's full authentication condition-grading scale: the closed 6-tier set (Pristine, Excellent, Very Good, Good, Fair, As Is) it defines, each with an id (usable directly against search's condition_id) and live matching item count. This is reference data that changes rarely, so responses are cached. Credential-free public data sourced from The RealReal's own server-rendered category page.", + "description": "Returns The RealReal's full authentication condition-grading scale: the closed 6-tier set (Pristine, Excellent, Very Good, Good, Fair, As Is) it defines, each with an id (usable directly against search's condition_id) and live matching item count. This is reference data that changes rarely, so responses are cached.", "operationId": "therealreal-conditions", "produces": [ "application/json" @@ -459408,7 +473031,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of normalized The RealReal listings browsed by designer slug, e.g. gucci. Pass a previous response's next_after back as after to fetch the next page. Credential-free public data sourced from The RealReal's own server-rendered designer page.", + "description": "Returns a page of The RealReal listings browsed by designer slug, e.g. gucci. Pass a previous response's next_after back as after to fetch the next page.", "operationId": "therealreal-designer", "parameters": [ { @@ -459489,7 +473112,7 @@ "consumes": [ "application/json" ], - "description": "Returns every designer The RealReal recognizes in one department (not just designers with currently active listings), each with an id (usable directly against search's designer_id) and slug (usable directly against the designer endpoint). The directory is segmented by department -- pass category to select one; the response's categories field lists every accepted value. This is reference data that changes rarely, so responses are cached. Credential-free public data sourced from The RealReal's own server-rendered designer directory page.", + "description": "Returns every designer The RealReal recognizes in one department (not just designers with currently active listings), each with an id (usable directly against search's designer_id) and slug (usable directly against the designer endpoint). The directory is segmented by department -- pass category to select one; the response's categories field lists every accepted value. This is reference data that changes rarely, so responses are cached.", "operationId": "therealreal-designers", "parameters": [ { @@ -459545,7 +473168,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single normalized The RealReal listing: description, condition detail, category context, and measurements, plus the shared summary fields (name, designer, condition, price, images). Looked up by the listing's full product URL, as returned in a search/category/designer response's url field. Credential-free public data sourced from The RealReal's own server-rendered listing page.", + "description": "Returns a single The RealReal listing: description, condition detail, category context, and measurements, plus the shared summary fields (name, designer, condition, price, images). Looked up by the listing's full product URL, as returned in a search/category/designer response's url field.", "operationId": "therealreal-listing", "parameters": [ { @@ -459608,7 +473231,7 @@ "consumes": [ "application/json" ], - "description": "Searches The RealReal's authenticated luxury resale catalog by keyword, optionally combined with category, designer, condition-grade, and price-range filters, returning normalized listing summaries (name, designer, condition, price, images) plus the total matching count and an opaque pagination cursor. Pass a previous response's next_after back as after to fetch the next page. Credential-free public data sourced from The RealReal's own server-rendered search page.", + "description": "Searches The RealReal's authenticated luxury resale catalog by keyword, optionally combined with category, designer, condition-grade, and price-range filters, returning listing summaries (name, designer, condition, price, images) plus the total matching count and an opaque pagination cursor. Pass a previous response's next_after back as after to fetch the next page.", "operationId": "therealreal-search", "parameters": [ { @@ -459718,7 +473341,7 @@ "consumes": [ "application/json" ], - "description": "Returns The RealReal's own \"Similar Items\" visual-similarity recommendations for one product, looked up by the product's numeric id (from any other The RealReal endpoint's listing response id field). Credential-free public data sourced from The RealReal's own first-party catalog API.", + "description": "Returns The RealReal's own \"Similar Items\" visual-similarity recommendations for one product, looked up by the product's numeric id (from any other The RealReal endpoint's listing response id field).", "operationId": "therealreal-similar", "parameters": [ { @@ -459892,7 +473515,7 @@ }, "/thestarmy/headlines": { "get": { - "description": "Returns the current headlines of one public The Star (Malaysia) section page.", + "description": "Returns the current stories of one The Star (Malaysia) section page, usually 10 and up to 100 on column-style sections. `section` is required, for example `news-nation`, `latest-business`, `sport-badminton` or `latest-food`. Items have a title and URL, and when the page shows them a `type`, summary, byline, image and publication time. Older stories are not paginated.", "operationId": "thestarmy-headlines", "parameters": [ { @@ -460036,7 +473659,7 @@ }, "/thestarmy/news": { "get": { - "description": "Returns the current The Star (Malaysia) top stories from the public home page.", + "description": "Returns the current top stories on The Star (Malaysia) home page. It takes no parameters. Each item has a title and canonical URL, plus a short section label in `type`, a summary and a byline when the page shows them. `published_at` is omitted here; the section headlines endpoint carries it.", "operationId": "thestarmy-news", "produces": [ "application/json" @@ -460068,7 +473691,7 @@ }, "/thestarmy/sections": { "get": { - "description": "Returns the public The Star (Malaysia) story-listing sections accepted by the headlines endpoint.", + "description": "Lists the 94 The Star (Malaysia) sections that returned at least one story to an anonymous reader when checked on 2026-09-25, and that the headlines endpoint accepts. Examples are `news-latest`, `latest-nation`, `business-smebiz` and `sport-football`. Each entry has a `slug`, a `name` and the section page `url`.", "operationId": "thestarmy-sections", "produces": [ "application/json" @@ -460094,7 +473717,7 @@ }, "/theverge/article": { "get": { - "description": "Returns public The Verge article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one The Verge article by `url`, a canonical HTTPS article link. The response has the title, description, section, authors, publication and update times, lead image URL, body `paragraphs` and a `paywalled` flag. Subscriber-only or blocked pages return an error instead.", "operationId": "theverge-article", "parameters": [ { @@ -460148,7 +473771,7 @@ }, "/theverge/author": { "get": { - "description": "Returns a The Verge author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns a The Verge author's profile by `url`, a canonical `theverge.com/authors/` link: name, job title such as Senior Reporter, bio and recent articles. Each article has a title, URL, excerpt, ISO-8601 `published_at` and `category`, the post's primary Verge vertical such as Tech.", "operationId": "theverge-author", "parameters": [ { @@ -460202,7 +473825,7 @@ }, "/theverge/headlines": { "get": { - "description": "Returns fresh headlines from one public The Verge section.", + "description": "Returns the current headlines for one The Verge section. `section` is required and takes one of `tech`, `reviews`, `science`, `entertainment`, `ai`, `policy`, `gaming`, `mobile`, `apps` or `features`. Each item has its title, URL, summary, author and publication time.", "operationId": "theverge-headlines", "parameters": [ { @@ -460262,7 +473885,7 @@ }, "/theverge/news": { "get": { - "description": "Returns fresh public The Verge stories from its RSS feed.", + "description": "Returns the current top stories from The Verge. It takes no parameters. Each item has its title, URL and, where available, a summary, author, publication time, image URL and `type`. Use the headlines endpoint to read one section.", "operationId": "theverge-news", "produces": [ "application/json" @@ -460294,7 +473917,7 @@ }, "/theverge/sections": { "get": { - "description": "Returns the public The Verge editorial section inventory.", + "description": "Lists the The Verge sections that the headlines endpoint accepts: `tech`, `reviews`, `science`, `entertainment`, `ai`, `policy`, `gaming`, `mobile`, `apps` and `features`. Each entry has a `slug`, a display `name` and a section `url`.", "operationId": "theverge-sections", "produces": [ "application/json" @@ -460320,7 +473943,7 @@ }, "/thisismoney/article": { "get": { - "description": "Returns public This Is Money article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one This Is Money article by `url`, a canonical HTTPS article link. The response has the title, description, section, authors, publication and update times, image URL, body `paragraphs` and a `paywalled` flag. Pages that are subscriber-only or blocked return an error.", "operationId": "thisismoney-article", "parameters": [ { @@ -460374,7 +473997,7 @@ }, "/thisismoney/author": { "get": { - "description": "Returns a This Is Money author's byline metadata, biography, coverage topics, and recent articles from a canonical author URL.", + "description": "Returns a This Is Money author's profile by `url`, a canonical `thisismoney.co.uk/profile-/.html` link: name, job title, bio, coverage topic tags such as Money or Bills, and recent articles with title, URL, excerpt and ISO-8601 `published_at`. `job_title` and `coverage` can be empty.", "operationId": "thisismoney-author", "parameters": [ { @@ -460428,7 +474051,7 @@ }, "/thisismoney/headlines": { "get": { - "description": "Returns fresh headlines from one public This Is Money RSS section.", + "description": "Returns the current headlines for one This Is Money section. `section` is required and takes one of `money`, `markets`, `investing`, `savings`, `pensions`, `mortgages`, `property`, `cars`, `travel` or `consumer`. Each item has its title and URL, plus summary, author, publication time and image when the outlet provides them.", "operationId": "thisismoney-headlines", "parameters": [ { @@ -460488,7 +474111,7 @@ }, "/thisismoney/news": { "get": { - "description": "Returns fresh This Is Money stories from the public RSS feed.", + "description": "Returns the current top stories from This Is Money. It takes no parameters. Each item has its title, URL and, where available, a summary, author, publication time, image URL and `type`. Use the headlines endpoint to read one section.", "operationId": "thisismoney-news", "produces": [ "application/json" @@ -460520,7 +474143,7 @@ }, "/thisismoney/sections": { "get": { - "description": "Returns the public This Is Money RSS section inventory.", + "description": "Lists the This Is Money sections that the headlines endpoint accepts, such as `money`, `markets`, `savings`, `pensions`, `mortgages`, `property` and `cars`. Each entry has a `slug`, a display `name` and a section `url`.", "operationId": "thisismoney-sections", "produces": [ "application/json" @@ -460546,7 +474169,7 @@ }, "/threads/post/{username}/{code}": { "get": { - "description": "Returns the public text, author, canonical URL, and preview image for a Threads post.", + "description": "Returns one public Threads post by `username` (with or without a leading `@`) and the post `code` from its URL. The response has the post text, canonical URL, preview image URL, and the author's id, name and username. Replies and logged-in fields are not included. An unavailable post returns 404.", "operationId": "threads-post", "parameters": [ { @@ -460670,7 +474293,7 @@ }, "/threads/profile/{username}": { "get": { - "description": "Returns public profile metadata for a Threads username, including the visible biography and counts.", + "description": "Returns a public Threads profile by `username` (with or without a leading `@`): name, profile URL, biography, avatar URL, `followers_count` and `threads_count`. Counts are derived from the compact figures shown on the profile page. An unavailable profile returns 404.", "operationId": "threads-profile", "parameters": [ { @@ -460722,9 +474345,63 @@ ] } }, + "/threads/profile/{username}/media": { + "get": { + "description": "Returns the first public page shown on a profile's Media tab. Items include image and video URLs, including carousel attachments, plus post and topic metadata. The logged-out page exposes no continuation cursor or media-type filter; `pagination_limited` reports when additional results are gated by login or lack a supported cursor.", + "operationId": "threads-profile-media", + "parameters": [ + { + "description": "Threads username", + "in": "path", + "name": "username", + "required": true, + "type": "string", + "x-example": "zuck" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Wrapped profile media payload", + "schema": { + "$ref": "#/definitions/threads.profileMediaResponseDoc" + } + }, + "400": { + "description": "Invalid username", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Profile not found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Upstream error or parser drift", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve public media posts from a Threads profile", + "tags": [ + "Threads" + ] + } + }, "/threads/profile/{username}/posts": { "get": { - "description": "Returns public profile posts with an opaque continuation cursor when more posts are available.", + "description": "Lists public posts from the profile's Threads tab by `username`. Each item has its code, URL, text, creation time, image and video URLs, like, reply, repost and quote counts, reply flag and author. When `has_more` is true, pass `next_cursor` unchanged as `cursor` to fetch the next page; `pagination_limited` is true if Threads withholds a usable cursor.", "operationId": "threads-profile-posts", "parameters": [ { @@ -460782,9 +474459,171 @@ ] } }, + "/threads/profile/{username}/replies": { + "get": { + "description": "Returns the first public page shown on a profile's Replies tab. Each item preserves its actual author and public reply metadata. The logged-out page has no continuation cursor; `pagination_limited` is true when Threads reports more items without a cursor or shows a login wall for additional items.", + "operationId": "threads-profile-replies", + "parameters": [ + { + "description": "Threads username", + "in": "path", + "name": "username", + "required": true, + "type": "string", + "x-example": "zuck" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Wrapped profile replies payload", + "schema": { + "$ref": "#/definitions/threads.profileRepliesResponseDoc" + } + }, + "400": { + "description": "Invalid username", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Profile not found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Upstream error or parser drift", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve public items from a Threads profile's Replies tab", + "tags": [ + "Threads" + ] + } + }, + "/threads/profile/{username}/reposts": { + "get": { + "description": "Returns the first public page shown on a profile's Reposts tab. Each item preserves the original post author and metadata. `pagination_limited` is true when Threads gates more items behind login or reports more items without a supported cursor.", + "operationId": "threads-profile-reposts", + "parameters": [ + { + "description": "Threads username", + "in": "path", + "name": "username", + "required": true, + "type": "string", + "x-example": "zuck" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Wrapped profile reposts payload", + "schema": { + "$ref": "#/definitions/threads.profileRepostsResponseDoc" + } + }, + "400": { + "description": "Invalid username", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Profile not found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Upstream error or parser drift", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve public posts reposted by a Threads profile", + "tags": [ + "Threads" + ] + } + }, + "/threads/profile/{username}/topics": { + "get": { + "description": "Returns every topic tag listed on a public profile, including the numeric tag id and canonical `name` to pass as `q` to `/threads/search/topics`. Community topics include their community metadata.", + "operationId": "threads-profile-topics", + "parameters": [ + { + "description": "Threads username", + "in": "path", + "name": "username", + "required": true, + "type": "string", + "x-example": "zuck" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Wrapped profile topics payload", + "schema": { + "$ref": "#/definitions/threads.profileTopicsResponseDoc" + } + }, + "400": { + "description": "Invalid username", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Profile not found", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Upstream error or parser drift", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Discover public topic tags on a Threads profile", + "tags": [ + "Threads" + ] + } + }, "/threads/search": { "get": { - "description": "Returns the public first page of Threads search results for a query. Logged-out search does not expose a continuation cursor.", + "description": "Returns the public first page of Threads search results for a query. `sort` supports `top` and `recent`; `pagination_limited` marks the logged-out login wall because search has no continuation cursor. Author and date filters in Threads require login and are not exposed here.", "operationId": "threads-search", "parameters": [ { @@ -460794,6 +474633,16 @@ "required": true, "type": "string", "x-example": "openai" + }, + { + "description": "Result order; defaults to top", + "enum": [ + "top", + "recent" + ], + "in": "query", + "name": "sort", + "type": "string" } ], "produces": [ @@ -460807,7 +474656,7 @@ } }, "400": { - "description": "Invalid query", + "description": "Invalid query or sort", "schema": { "$ref": "#/definitions/app.Response" } @@ -460830,12 +474679,68 @@ ] } }, + "/threads/search/topics": { + "get": { + "description": "Returns the public first page of posts for a topic tag. Discover the required `tag_id` and its canonical query `name` from `/threads/profile/{username}/topics` or a post's `topic` metadata. Topic results have no logged-out continuation cursor; `pagination_limited` marks the login wall for more results.", + "operationId": "threads-topic-search", + "parameters": [ + { + "description": "Canonical topic query from a profile topic's `name` or a post topic's `search_query`", + "in": "query", + "name": "q", + "required": true, + "type": "string", + "x-example": "aithreads" + }, + { + "description": "Numeric Threads topic tag id", + "in": "query", + "name": "tag_id", + "required": true, + "type": "string", + "x-example": "18399895213044171" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Wrapped topic search payload", + "schema": { + "$ref": "#/definitions/threads.topicSearchResponseDoc" + } + }, + "400": { + "description": "Invalid query or topic id", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "503": { + "description": "Upstream error or parser drift", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Search posts for a public Threads topic tag", + "tags": [ + "Threads" + ] + } + }, "/ticketmaster/attraction": { "get": { "consumes": [ "application/json" ], - "description": "Returns normalized details for one Ticketmaster artist, team, or other attraction.", + "description": "Returns one Ticketmaster attraction (artist, team or other event entity) by numeric `id`: name, synopsis, image, URL, classification (segment, genre, sub-genre) and `has_artist_video`. Past performance `setlists` and `setlist_source_url` appear only when available. An unknown attraction returns 404.", "operationId": "ticketmaster-attraction", "parameters": [ { @@ -460898,7 +474803,7 @@ "consumes": [ "application/json" ], - "description": "Returns upcoming Ticketmaster events for one attraction. The sort enum accepts `relevance` and `date`.", + "description": "Lists upcoming Ticketmaster events for the attraction with numeric `id`. `page` is zero-based, 0 to 49, default 0; `sort` is `relevance` or `date` (default). Each event has title, start time, time zone, venue, attractions, presales, seat map and status flags such as `sold_out` and `cancelled`. The response gives `total`.", "operationId": "ticketmaster-attraction-events", "parameters": [ { @@ -461038,7 +474943,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated fan reviews for one attraction, including its aggregate rating and Ticketmaster's own AI-generated review summary.", + "description": "Lists fan reviews for the Ticketmaster attraction with numeric `id`, with its `average_rating`, `best_rating`, `total` and Ticketmaster's own `ai_review_summary`. Each review has a rating, title, text, nickname, city, venue and date. `offset` runs 0 to 9995 (default 0); `limit` runs 10 to 50 (default 10).", "operationId": "ticketmaster-attraction-reviews", "parameters": [ { @@ -461187,7 +475092,7 @@ }, "/ticketmaster/discover-category-events": { "get": { - "description": "Returns a zero-based paginated event feed for any category returned by ticketmaster-discover-categories.", + "description": "Lists events in a Ticketmaster discover category, identified by `category_id` from `ticketmaster-discover-categories`. `page` is zero-based, 0 to 49. Each event has title, start time, time zone, venue, attractions, presales, seat map and status flags such as `sold_out` and `cancelled`. The response gives `total` and `count`.", "operationId": "ticketmaster-discover-category-events", "parameters": [ { @@ -461244,7 +475149,7 @@ }, "/ticketmaster/discover-cities": { "get": { - "description": "Lists Ticketmaster city discovery destinations for a country with pagination.", + "description": "Lists Ticketmaster's discover city destinations for a `country` (two-letter code, default `US`). Each city has a `slug`, name, canonical URL, locale and image. `page` starts at 1 and `per_page` runs 1 to 100. The response gives `total`. Pass a city `slug` to `ticketmaster-discover-city-events`.", "operationId": "ticketmaster-discover-cities", "parameters": [ { @@ -461308,7 +475213,7 @@ }, "/ticketmaster/discover-city-events": { "get": { - "description": "Returns a zero-based paginated event feed for a city slug returned by ticketmaster-discover-cities.", + "description": "Lists events for a Ticketmaster discover city, identified by `city` (a slug from `ticketmaster-discover-cities`) and `country` (two-letter code matching the city, default `US`). It covers all municipalities grouped under that destination. `page` is zero-based, 0 to 49. Each event has title, start time, venue, attractions and status flags.", "operationId": "ticketmaster-discover-city-events", "parameters": [ { @@ -461381,7 +475286,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized details for one Ticketmaster event, including its venue, attractions, timing, availability flags, and classification.", + "description": "Returns one Ticketmaster event by `id`: title, description, start time, time zone, currency, venue, attractions, classification, presales, on-sale time, seat map URL, and flags for sold out, cancelled, postponed, rescheduled and virtual. An unknown event returns 404; a concluded or removed event returns 410.", "operationId": "ticketmaster-event", "parameters": [ { @@ -461518,7 +475423,7 @@ }, "/ticketmaster/suggest": { "get": { - "description": "Returns autocomplete suggestions for a partial query.", + "description": "Returns autocomplete suggestions for a partial artist, event, team or venue name in `q`. Each suggestion has a title, `type`, category, URL, image and, when available, an `event_count`. The response also gives the echoed `query` and the `count` of suggestions.", "operationId": "ticketmaster-suggest", "parameters": [ { @@ -461610,7 +475515,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized details and visitor information for one Ticketmaster venue.", + "description": "Returns one Ticketmaster venue by numeric `id`: name, address, city, state, country, postal code, coordinates, time zone, image, URL and visitor information as name and text entries. `seat_maps` and `city_categories` are omitted when none exist. An unknown venue returns 404.", "operationId": "ticketmaster-venue", "parameters": [ { @@ -461736,7 +475641,7 @@ "consumes": [ "application/json" ], - "description": "Returns upcoming Ticketmaster events at one venue. The sort enum accepts `relevance` and `date`.", + "description": "Lists upcoming Ticketmaster events at the venue with numeric `id`. `page` is zero-based, 0 to 49, default 0; `sort` is `relevance` or `date` (default). Each event has title, start time, time zone, attractions, presales, seat map and status flags such as `sold_out` and `cancelled`. The response gives `total`.", "operationId": "ticketmaster-venue-events", "parameters": [ { @@ -461813,7 +475718,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized details for one TicketWeb event: venue, dates, age restriction, delivery methods, and per-tier ticket pricing (base price, fee breakdown, and total) when tickets are on sale. `has_tickets` is false and `sections` is empty for a free/RSVP event with no paid tickets, a sold-out event, or an access-code-gated event -- TicketWeb's own data does not reliably distinguish these three cases at this level, so the response reports the shared observable state (no purchasable sections) rather than guessing which applies.", + "description": "Returns details for one TicketWeb event: venue, dates, age restriction, delivery methods, and per-tier ticket pricing (base price, fee breakdown, and total) when tickets are on sale. `has_tickets` is false and `sections` is empty for a free/RSVP event with no paid tickets, a sold-out event, or an access-code-gated event -- TicketWeb's own data does not reliably distinguish these three cases at this level, so the response reports the shared observable state (no purchasable sections) rather than guessing which applies.", "operationId": "ticketweb-event", "parameters": [ { @@ -462346,7 +476251,7 @@ "consumes": [ "application/json" ], - "description": "Searches Tiffany & Co.'s product catalog by free-text keyword. Returns normalized product summaries with USD pricing, live stock status, material, gemstone, collection, and designer. sort selects recommended (default), price_asc, price_desc, or newest. material, gemstone, color, product_type, gender, and designer are optional single-value filters -- see tiffany-filters for the live covered value space for each. A genuine non-matching keyword, or a filter combination with no matches, returns a well-formed empty result (zero total_products).", + "description": "Searches Tiffany & Co.'s product catalog by free-text keyword. Returns product summaries with USD pricing, live stock status, material, gemstone, collection, and designer. sort selects recommended (default), price_asc, price_desc, or newest. material, gemstone, color, product_type, gender, and designer are optional single-value filters -- see tiffany-filters for the live covered value space for each. A genuine non-matching keyword, or a filter combination with no matches, returns a well-formed empty result (zero total_products).", "operationId": "tiffany-search", "parameters": [ { @@ -462616,7 +476521,7 @@ "consumes": [ "application/json" ], - "description": "Returns the category list exposed by the TikTok Explore page.", + "description": "Returns the content categories shown on TikTok's Explore page. Each entry has the category name and its numeric type code. Takes no parameters.", "operationId": "tiktok-category", "produces": [ "application/json" @@ -462663,7 +476568,7 @@ "consumes": [ "application/json" ], - "description": "Returns top-level TikTok video comments with cursor-based pagination.", + "description": "Returns the top-level comments on a TikTok video, by the video id from its URL (`aweme_id`). Results are paged by cursor: pass the `cursor` from one response to get the next page, and read `has_more` to see whether more remain. The response also carries the total comment count.", "operationId": "tiktok-video-comments", "parameters": [ { @@ -462728,12 +476633,60 @@ ] } }, + "/tiktok/creative-center/filters": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the complete filter taxonomy for the Creative Center trend endpoints: the countries each trend tab reports, the industry ids and video content tags the filters accept, the supported lookback periods, and the video sort metrics. Use it to discover valid values for the hashtags endpoint's country_code, period, and industry_id parameters and the videos endpoint's country_code, period, sort_by, and content_label_ids parameters. This endpoint performs no upstream request and has no parameters.", + "operationId": "tiktok-creative-center-filters", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "X-RateLimit-Per-Second-Remaining": { + "description": "Number of remaining requests per second", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/creativecenter.filtersResponseDoc" + } + }, + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve TikTok Creative Center filter taxonomy", + "tags": [ + "TikTok", + "TikTok Creative Center" + ] + } + }, "/tiktok/creative-center/hashtags": { "get": { "consumes": [ "application/json" ], - "description": "Returns TikTok Creative Center's ranked trending hashtags for a country and period. TikTok gates this endpoint's full result set behind a logged-in TikTok One account: an anonymous request always receives at most 3 hashtags regardless of country or period.", + "description": "Returns TikTok Creative Center's ranked trending hashtags for a country, period, and optional industry. TikTok gates this endpoint's full result set behind a logged-in TikTok One account: an anonymous request always receives at most 3 hashtags per filter combination regardless of country, period, or industry, so selecting an industry returns that industry's own ranked top three. See the filters endpoint for the complete country, period, and industry value lists.", "operationId": "tiktok-creative-center-hashtags", "parameters": [ { @@ -462749,11 +476702,39 @@ "description": "Lookback window in days", "enum": [ 7, - 30 + 30, + 90 ], "in": "query", "name": "period", "type": "integer" + }, + { + "description": "Creative Center industry id to restrict the ranking to", + "enum": [ + "10000000000", + "11000000000", + "12000000000", + "13000000000", + "14000000000", + "15000000000", + "17000000000", + "18000000000", + "19000000000", + "21000000000", + "22000000000", + "23000000000", + "24000000000", + "25000000000", + "26000000000", + "27000000000", + "28000000000", + "29000000000" + ], + "in": "query", + "name": "industry_id", + "type": "string", + "x-example": "22000000000" } ], "produces": [ @@ -462809,12 +476790,81 @@ ] } }, + "/tiktok/creative-center/top-content": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns TikTok Creative Center's current Top Content set: four top-performing branded videos, each with the video object (anonymous MP4 and cover URLs), engagement metrics, the author profile and follower count, and (by default) the video's top comments plus keyword mention counts derived from them. The set is a daily snapshot and there is no pagination or historical query; the four titles rotate when the snapshot changes. Set include_comments=false for a smaller response with only video, author, and metrics.", + "operationId": "tiktok-creative-center-top-content", + "parameters": [ + { + "default": true, + "description": "Include each object's top comments and comment-keyword counts", + "in": "query", + "name": "include_comments", + "type": "boolean" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "X-RateLimit-Per-Second-Remaining": { + "description": "Number of remaining requests per second", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/creativecenter.topContentResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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" + } + }, + "503": { + "description": "Upstream failure", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Retrieve TikTok Creative Center top content", + "tags": [ + "TikTok", + "TikTok Creative Center" + ] + } + }, "/tiktok/creative-center/videos": { "get": { "consumes": [ "application/json" ], - "description": "Returns TikTok Creative Center's ranked trending videos for a country, period, and sort order. TikTok reports the true result-set size (see total_count/page_count in the response) but gates access to it behind a logged-in TikTok One account: an anonymous request always receives page 1 (4 videos) regardless of sort order or period. Country coverage is uneven: US, JP, ID, VN, and TH reliably return populated results; other countries have been observed to return an empty videos array (a genuine no-data response, not an error).", + "description": "Returns TikTok Creative Center's ranked trending videos for a country, period, sort order, and optional content tags. TikTok reports the true result-set size (see total_count/page_count in the response) but gates access to it behind a logged-in TikTok One account: an anonymous request always receives page 1 (4 videos) regardless of sort order or period. Country coverage is uneven: only US, JP, ID, VN, and TH have a regional edge host that returns populated results; other countries return an empty videos array (a genuine no-data response, not an error). See the filters endpoint for the complete country, period, sort, and content tag value lists.", "operationId": "tiktok-creative-center-videos", "parameters": [ { @@ -462849,12 +476899,30 @@ "type": "string" }, { - "description": "Content tag id to filter by", + "description": "Deprecated: single content tag id; use content_label_ids instead", "in": "query", "name": "content_label_id", "type": "string", "x-example": "11015" }, + { + "collectionFormat": "multi", + "description": "Content tag ids to filter by, repeatable; matches videos carrying any selected tag", + "in": "query", + "items": { + "enum": [ + "11002", + "11003", + "11010", + "11013", + "11015" + ], + "type": "string" + }, + "name": "content_label_ids", + "type": "array", + "x-example": "11003,11015" + }, { "default": false, "description": "Restrict to organic (non-paid) videos only", @@ -462921,7 +476989,7 @@ "consumes": [ "application/json" ], - "description": "Returns explore videos for a TikTok category id from the category endpoint.", + "description": "Returns the TikTok explore feed for a category, given its category type `id` from the category endpoint. The response has `itemList` with the videos, `hasMore` and a `cursor`. A feed that comes back empty is reported as an upstream error, not as an empty list.", "operationId": "tiktok-explore", "parameters": [ { @@ -462984,7 +477052,7 @@ "consumes": [ "application/json" ], - "description": "Returns the metadata payload for a TikTok hashtag page.", + "description": "Returns the details of a TikTok hashtag page by `name`, for example `christmas`. The response carries `challengeInfo` with the hashtag's metadata, such as cover images, and `shareMeta` with the share title and description. The hashtag id found here feeds `tiktok-challenge-list`.", "operationId": "tiktok-challenge", "parameters": [ { @@ -463018,6 +477086,12 @@ "$ref": "#/definitions/app.Response" } }, + "404": { + "description": "Hashtag does not exist", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, "429": { "description": "Rate limit exceeded", "schema": { @@ -463047,7 +477121,7 @@ "consumes": [ "application/json" ], - "description": "Returns the videos listed for a TikTok hashtag id with cursor-based pagination.", + "description": "Lists the videos posted under a TikTok hashtag, identified by the hashtag `id` from the hashtag detail endpoint. `cursor` defaults to 0. The response has `itemList`, `hasMore` and a `cursor`; pass that cursor back to fetch the next page.", "operationId": "tiktok-challenge-list", "parameters": [ { @@ -463112,12 +477186,1661 @@ ] } }, + "/tiktok/mobile/anchor/list": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the anchor catalogue TikTok exposes for attaching a tag, product or place to a video. Entry shapes vary by anchor type, so each entry is returned as raw JSON rather than coerced into one schema.", + "operationId": "tiktok-mobile-anchor-list", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.anchorListResponseDoc" + } + }, + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Anchor catalogue used by the video composer", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/comment/replies": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the replies to one comment as the mobile app returns them, with `cursor`, `has_more` and `total`. The measured call sends both the video id and the comment id; this route answers even in windows where the top-level comment list is degraded.", + "operationId": "tiktok-mobile-comment-replies", + "parameters": [ + { + "description": "Video id the comment belongs to", + "in": "query", + "name": "aweme_id", + "required": true, + "type": "string", + "x-example": "7680168962218511636" + }, + { + "description": "Comment id to list replies for", + "in": "query", + "name": "comment_id", + "required": true, + "type": "string", + "x-example": "7680523330713240340" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + }, + { + "default": 20, + "description": "Replies per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.commentRepliesResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 replies to a TikTok comment", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/comments": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the top-level comments of one video as the mobile app returns them: each comment has its full `user` projection, `text`, `digg_count` and `reply_comment_total`, plus `cursor`, `has_more` and `total`. This route needs a signed-in app session and throttles independently of the replies route. A page with no comments (including an empty body) is returned as an empty result, because that is the documented degraded shape in a throttle window.", + "operationId": "tiktok-mobile-comments", + "parameters": [ + { + "description": "Video id to list comments for", + "in": "query", + "name": "aweme_id", + "required": true, + "type": "string", + "x-example": "7681236055831416084" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + }, + { + "default": 20, + "description": "Comments per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.commentsResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 comments for a TikTok video", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/feed": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns one page of videos from TikTok's mobile For You feed, signed with well-formed mobile signature headers (no device or account needed). Each item carries `aweme_id`, `create_time`, `author_id`, `share_url` and the verified statistics block (`play_count`, `digg_count`, `comment_count`, `share_count`, `collect_count`, `download_count`, `forward_count`, `lose_count`, `lose_comment_count`, `whatsapp_share_count`, `repost_count`). A zero `count` uses the app's default page size; `count` is capped at 50.", + "operationId": "tiktok-mobile-feed", + "parameters": [ + { + "default": 0, + "description": "Videos to request (0 = app default, max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "headers": { + "X-RateLimit-Per-Second-Remaining": { + "description": "Number of remaining requests per second", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/tiktokmobile.feedResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 the TikTok mobile For You feed", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/feed/post": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Calls the app's primary feed route - `POST /aweme/v2/feed/`, which the Android client sends with a protobuf request body and answers with protobuf - and returns a schema-free decode: field numbers become keys, length-delimited fields become strings when printable, nested messages when they parse and base64 otherwise, plus a flat list of every string leaf. Field numbering is inferred because TikTok publishes no schema for this message; use the JSON `GET /tiktok/mobile/feed` route when you need the stable structured contract.", + "operationId": "tiktok-mobile-feed-post", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.feedPostResponseDoc" + } + }, + "429": { + "description": "Rate limit exceeded", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "500": { + "description": "Internal server error", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Fetch the app's primary feed call (POST, protobuf) decoded without a schema", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/hashtag": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns one hashtag's detail by name: `challenge_info` (cid, hashtag_name, desc, ...) and `stats` (view and video counts), exactly as the mobile API returns them. Hashtags are addressed by name; an internal id is rejected upstream.", + "operationId": "tiktok-mobile-hashtag", + "parameters": [ + { + "description": "Hashtag name without the leading #", + "in": "query", + "name": "name", + "required": true, + "type": "string", + "x-example": "readingvlog" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.hashtagInfoResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "schema": { + "$ref": "#/definitions/app.Response" + } + }, + "404": { + "description": "Hashtag 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 a TikTok hashtag", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/hashtag/posts": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Lists videos for one hashtag name as the mobile app returns them (`aweme_list` with author, music and statistics), plus `cursor` and `has_more`. `sort=fresh` is the newest list and works from any measured egress; `sort=popular` is the hot list and only answers from a US egress.", + "operationId": "tiktok-mobile-hashtag-posts", + "parameters": [ + { + "description": "Hashtag name without the leading #", + "in": "query", + "name": "name", + "required": true, + "type": "string", + "x-example": "readingvlog" + }, + { + "default": "fresh", + "description": "Listing: fresh (newest) or popular (hot)", + "enum": [ + "fresh", + "popular" + ], + "in": "query", + "name": "sort", + "type": "string" + }, + { + "default": 20, + "description": "Videos per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.hashtagPostsResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 videos for a TikTok hashtag", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/hashtags": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Searches hashtags by keyword and returns the matching hashtag objects unmodified, with `cursor` and `has_more` for paging.", + "operationId": "tiktok-mobile-hashtags", + "parameters": [ + { + "description": "Keyword to search hashtags for", + "in": "query", + "name": "keyword", + "required": true, + "type": "string", + "x-example": "reading" + }, + { + "default": 20, + "description": "Results per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.hashtagSearchResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok hashtags", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/live/effects": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the complete LIVE effects/sticker asset catalogue in one call: `data.assets` (2,032 assets, each with `id`, `name`, `describe`, `resource_url`, `resource_uri`, `md5`, `size`, `resource_type`, `download_type`, `model_requirements`, `sticker_asset_variant` and `video_resource_list`). There are no request parameters and no paging, and the body is large because the catalogue is complete.", + "operationId": "tiktok-mobile-live-effects", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.liveEffectsResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok LIVE effects", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/live/gifts": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the complete LIVE gift catalogue in one call: `data.gifts` (771 gift objects with `diamond_count`, `describe`, `duration`, `gift_resources`, `gift_skins`, `batch_gift_info` and `combo`) plus the gift config and resource maps (`gift_configs`, `gifts_info`, `doodle_templates`, `gift_name_group_map`, `gift_resource_group_map`). There are no request parameters and no paging: the response is a single complete catalogue.", + "operationId": "tiktok-mobile-live-gifts", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.liveGiftsResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok LIVE gifts", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/live/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Searches the mobile app's LIVE surface by keyword: `data` of `{type, anchor}` entries with `feedback_type` set to `live`, plus `cursor` and `has_more`. `keyword` is required; without it the gateway answers a valid but empty envelope. This is the API's first LIVE endpoint.", + "operationId": "tiktok-mobile-live-search", + "parameters": [ + { + "description": "Search keyword", + "in": "query", + "name": "keyword", + "required": true, + "type": "string", + "x-example": "lofi" + }, + { + "default": 0, + "description": "Results to request (0 = app default, max 50)", + "in": "query", + "name": "count", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.liveSearchResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok LIVE streams", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/music/beats": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the mobile app's beats/songs chart unmodified: `music_list` of the same full sound objects the pick chart returns (`id_str`, `title`, `user_count`, `album`, `artists`, `cover_*`), ordered as the app's beats list. The measured envelope carries no paging fields.", + "operationId": "tiktok-mobile-music-beats", + "parameters": [ + { + "default": 0, + "description": "Accepted for compatibility; not measured to change the page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.musicBeatsSongsResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok music beats", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/music/collections": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the mobile app's sound-collection feed unmodified: `mcf_list`, where each entry is `{collection, music_list}` (the measured default page holds 8 entries), plus `cursor` and `has_more`. This route is first-page only: the returned `cursor` is not a reusable page token, so callers should not page with it.", + "operationId": "tiktok-mobile-music-collections", + "parameters": [ + { + "default": 0, + "description": "Collections to request (0 = app default, max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Accepted for shape compatibility only; not a verified page token", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.musicCollectionFeedResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok music collections", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/music/pick": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the mobile app's sound pick/chart list: `music_list` of full sound objects (id, title, author, user_count, duration, ...) plus the chart list `mc_list` and `radio_cursor`.", + "operationId": "tiktok-mobile-music-pick", + "parameters": [ + { + "default": 20, + "description": "Sounds per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.musicPickResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok sound chart picks", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/music/posts": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Lists the videos that use one sound, as the mobile app returns them: `aweme_list` of full video objects (with `author`, `statistics` and `added_sound_music_info`), plus `cursor` and `has_more`. `music_id` is required. `count` is accepted but ignored upstream - the server returns its own default page, so page with `cursor`.", + "operationId": "tiktok-mobile-music-posts", + "parameters": [ + { + "description": "Sound (music) id", + "in": "query", + "name": "music_id", + "required": true, + "type": "string", + "x-example": "6799585653702019073" + }, + { + "default": 0, + "description": "Accepted for compatibility; the server ignores it (max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.musicFreshAwemeResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 videos for a TikTok sound", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/music/related": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns sounds related to one video: `music_list` of full sound objects, `recall_info_list` explaining why each was recalled, `similar_song_ids`, plus `cursor` and `has_more`.", + "operationId": "tiktok-mobile-music-related", + "parameters": [ + { + "description": "Video id to find related sounds for", + "in": "query", + "name": "aweme_id", + "required": true, + "type": "string", + "x-example": "7681236055831416084" + }, + { + "default": 20, + "description": "Sounds per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.musicRelatedResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 sounds related to a TikTok video", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/music/trending": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the mobile app's trending sound chart: `music_list` of full sound objects (`id_str`, `title`, `user_count`, `album`, `artists`, `cover_large`/`cover_medium`/`cover_thumb`, `binded_challenge_id`, `collect_stat`, `audition_duration`) unmodified, plus `cursor` and `has_more` for paging. This is the chart behind `music.trending`.", + "operationId": "tiktok-mobile-music-trending", + "parameters": [ + { + "default": 20, + "description": "Sounds per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.hotMusicResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok trending sounds", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/search": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Keyword search returning the mobile API result documents unmodified: each entry has `aweme_info` (a full video object with statistics), `card_profile` and search metadata, plus `cursor` and `has_more`. Keep `count` small (20 already exceeds one megabyte of upstream JSON).", + "operationId": "tiktok-mobile-search", + "parameters": [ + { + "description": "Search keyword", + "in": "query", + "name": "keyword", + "required": true, + "type": "string", + "x-example": "lofi" + }, + { + "default": 5, + "description": "Results per page (max 20)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Result offset", + "in": "query", + "name": "offset", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.searchGeneralResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok videos on the mobile API", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/search/music": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Keyword search over sounds, returning `music_info_list` of full sound objects unmodified with `cursor`, `has_more` and `total`.", + "operationId": "tiktok-mobile-search-music", + "parameters": [ + { + "description": "Search keyword", + "in": "query", + "name": "keyword", + "required": true, + "type": "string", + "x-example": "lofi" + }, + { + "default": 20, + "description": "Sounds per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Result offset", + "in": "query", + "name": "offset", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.searchMusicResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok sounds on the mobile API", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/search/place": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns TikTok's place (POI) search results for a keyword, unmodified: each row carries `poi_name`, `poi_id`, `poi_type`, `video_count`, `poi_rating`, `poi_distance`, `poi_location`, `lat`/`lng`, `img_url`, `opening_time`, `price_level` and `parent_poi`. Useful for mapping a location or category to the places TikTok knows about, and for seeing how many videos each place carries. `keyword` is required. The page is capped at 10 rows upstream and this route is first-page-only — the returned `cursor` is not a reusable page token.", + "operationId": "tiktok-mobile-search-place", + "parameters": [ + { + "description": "Place name or category to search for", + "in": "query", + "name": "keyword", + "required": true, + "type": "string", + "x-example": "pizza" + }, + { + "default": 10, + "description": "Rows to return; the upstream caps the page at 10 regardless", + "in": "query", + "name": "count", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.searchPlaceResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok places", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/search/pre-info": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the `pre_info_id` token the app attaches to a search session (with its TTL). The token is short-lived; the app requests one before the search stream and reuses it for the following calls.", + "operationId": "tiktok-mobile-search-pre-info", + "parameters": [ + { + "description": "Seed keyword (optional; the app also requests this with an empty keyword)", + "in": "query", + "name": "keyword", + "type": "string", + "x-example": "lofi" + }, + { + "default": 20, + "description": "Suggestion count (max 50)", + "in": "query", + "name": "count", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.searchPreInfoResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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": "Pre-search info token for a search session", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/search/sug": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the mobile app's search typeahead for a seed keyword: `sug_list` of suggestions, each with `content`, `sug_type`, `word_record` (`group_id`, `words_position`, `words_content`, `words_source`) and positional fields, unmodified. Useful for query expansion and for seeing the phrases the app itself associates with a seed term. `keyword` is required; without it the upstream answers a well-formed but empty envelope.", + "operationId": "tiktok-mobile-search-sug", + "parameters": [ + { + "description": "Seed keyword to expand", + "in": "query", + "name": "keyword", + "required": true, + "type": "string", + "x-example": "lofi" + }, + { + "default": 10, + "description": "Suggestions to return (max 50)", + "in": "query", + "name": "count", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.searchSuggestionResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok search suggestions", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/search/tabs": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the tab keys the mobile search screen offers for a keyword (`general`, `video`, `photos`, `user`, `music`, `live`, `place`, `hashtag`), plus the gateway's `is_failed` flag. Measured on the mobile search edge with a form POST.", + "operationId": "tiktok-mobile-search-tabs", + "parameters": [ + { + "description": "Search keyword", + "in": "query", + "name": "keyword", + "required": true, + "type": "string", + "x-example": "lofi" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.searchTabsResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 tabs available for a keyword", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/search/user": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Keyword search over users, returning `user_list` unmodified. Each `user_info` carries the populated creator statistics (follower_count, following_count, total_favorited, aweme_count, custom_verify).", + "operationId": "tiktok-mobile-search-user", + "parameters": [ + { + "description": "Search keyword (a username or display name)", + "in": "query", + "name": "keyword", + "required": true, + "type": "string", + "x-example": "mrbeast" + }, + { + "default": 20, + "description": "Users per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.searchUsersResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok users on the mobile API", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/trending/categories": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the discover-category feed unmodified: each `category_list` entry is `{aweme_list, category_type, challenge_info, click_track_url_list, desc, track_url_list}`, with `cursor` and `has_more` for paging.", + "operationId": "tiktok-mobile-trending-categories", + "parameters": [ + { + "default": 20, + "description": "Categories per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.categoryListResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok trending categories", + "tags": [ + "TikTok" + ] + } + }, + "/tiktok/mobile/trending/effects": { + "get": { + "consumes": [ + "application/json" + ], + "description": "Returns the effect/sticker discovery feed unmodified: `aweme_list` of full video objects, each additionally carrying `stickers` and `sticker_detail`, plus `feed_session_id`, `cursor` and `has_more`.", + "operationId": "tiktok-mobile-trending-effects", + "parameters": [ + { + "default": 20, + "description": "Videos per page (max 50)", + "in": "query", + "name": "count", + "type": "integer" + }, + { + "default": 0, + "description": "Pagination cursor", + "in": "query", + "name": "cursor", + "type": "integer" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/tiktokmobile.stickerDiscoverResponseDoc" + } + }, + "400": { + "description": "Invalid input", + "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 TikTok trending effects", + "tags": [ + "TikTok" + ] + } + }, "/tiktok/popular-trend/country-industry-meta": { "get": { "consumes": [ "application/json" ], - "description": "Returns the country and industry metadata used by the TikTok Creative Center popular-trend endpoints.", + "description": "Lists the country and industry filter values used by the TikTok Creative Center popular-trend endpoints. Countries have an `id` such as `AR` and a name; industries have a numeric `id` and a name such as Apparel & Accessories. A maintained fallback list is returned if TikTok's own metadata is unavailable.", "operationId": "tiktok-popular-trend-country-industry-meta", "produces": [ "application/json" @@ -463165,7 +478888,7 @@ "consumes": [ "application/json" ], - "description": "Returns the TikTok video detail payload for a video id.", + "description": "Returns TikTok's detail record for one video by video id. `itemInfo.itemStruct` holds the video's description, the author's profile and the author's statistics (such as followers, following and hearts) along with the rest of TikTok's video object; `shareMeta` holds the share title and description.", "operationId": "tiktok-post", "parameters": [ { @@ -463228,7 +478951,7 @@ "consumes": [ "application/json" ], - "description": "Returns posts from a TikTok profile by `secUid`, with optional cursor pagination and sort mode.", + "description": "Lists posts from a TikTok profile identified by `secUid`. `sort_type` is `0` latest (default), `1` popular or `2` oldest. `cursor` defaults to 0. The response has `itemList`, `hasMore` and a `cursor` to pass back to fetch the next page.", "operationId": "tiktok-profile-post", "parameters": [ { @@ -463310,7 +479033,7 @@ "consumes": [ "application/json" ], - "description": "Returns the TikTok profile payload for a public handle.", + "description": "Returns a public TikTok profile by `handler`, the username without the leading `@`. The `user` object has the id, `uniqueId`, nickname, signature, verified and private flags, region, language, avatar, bio link and `secUid`; `stats` has follower, following, heart, video and friend counts. A missing, deleted or banned handle returns 404.", "operationId": "tiktok-profile", "parameters": [ { @@ -463379,7 +479102,7 @@ "consumes": [ "application/json" ], - "description": "Searches TikTok videos by keyword with cursor-based pagination.", + "description": "Searches TikTok videos for `keyword`. `cursor` defaults to 0 and `count` defaults to 20, capped at 50. The response has the matching video items, a `cursor` and `has_more` for paging. An empty, blocked or malformed result from TikTok returns an upstream error.", "operationId": "tiktok-search", "parameters": [ { @@ -463456,7 +479179,7 @@ "consumes": [ "application/json" ], - "description": "Searches TikTok hashtags/challenges by keyword with cursor-based pagination.", + "description": "Searches TikTok hashtags (challenges) for `keyword`. `cursor` defaults to 0 and `count` defaults to 20, capped at 50. The response has `challenge_list` with each hashtag's name and id, plus a `cursor` and `has_more` for paging. An empty, blocked or malformed result returns an upstream error.", "operationId": "tiktok-search-hashtag", "parameters": [ { @@ -463533,7 +479256,7 @@ "consumes": [ "application/json" ], - "description": "Searches TikTok users by keyword with cursor-based pagination.", + "description": "Searches TikTok users for `keyword`, with `cursor` (default 0) for paging. The response has `user_list` with the matching accounts, plus a `cursor` and `has_more` to continue. Pass the returned `cursor` back to fetch the next page.", "operationId": "tiktok-search-user", "parameters": [ { @@ -464047,7 +479770,7 @@ "consumes": [ "application/json" ], - "description": "Returns available Top Ads location filters from TikTok Creative Center.", + "description": "Lists the country filters offered by TikTok Creative Center Top Ads. Each country has an `id` such as `US`, a `value` (the country name), a `label` and a `has_conversion` flag. Takes no parameters.", "operationId": "tiktok-top-ads-locations", "produces": [ "application/json" @@ -464095,7 +479818,7 @@ "consumes": [ "application/json" ], - "description": "Returns recommended Top Ads materials related to a material id.", + "description": "Lists Top Ads materials that TikTok Creative Center recommends as related to the ad with `material_id`. `page` starts at 1; `limit` defaults to 20 and is capped at 100. Each ad has its title, brand, likes, comments, shares, CTR, objectives and video info. The list can be empty for a valid id.", "operationId": "tiktok-top-ads-recommend", "parameters": [ { @@ -464175,7 +479898,7 @@ "consumes": [ "application/json" ], - "description": "Returns public Creative Center safety configuration flags related to search surfaces.", + "description": "Returns the Creative Center safety configuration flags for search: `top_ads_search`, `keyword_search`, `hashtag_search`, `creator_search`, `sound_search` and `cc_banner_key`. It carries feature flags only, not ad materials. Takes no parameters.", "operationId": "tiktok-top-ads-safety", "produces": [ "application/json" @@ -464223,7 +479946,7 @@ "consumes": [ "application/json" ], - "description": "Returns Top Ads Spotlight materials handpicked by TikTok Creative Center.", + "description": "Lists the Top Ads Spotlight materials that TikTok Creative Center hand-picks. `page` starts at 1; `limit` defaults to 20 and is capped at 100. Each ad has its title, brand, likes, comments, shares, CTR, objectives and video info. `data.pagination` gives the page, size, total and `has_more`.", "operationId": "tiktok-top-ads-spotlight", "parameters": [ { @@ -464295,7 +480018,7 @@ "consumes": [ "application/json" ], - "description": "Returns Top Ads search suggestions from TikTok Creative Center.", + "description": "Returns Top Ads search suggestions from TikTok Creative Center. `count` is the maximum number of suggestions (default 50) and `scenario` picks the suggestion scenario id (default 1). The `query` list can be empty for the default scenario.", "operationId": "tiktok-top-ads-suggestions", "parameters": [ { @@ -464365,7 +480088,7 @@ "consumes": [ "application/json" ], - "description": "Returns the current TikTok trending feed.", + "description": "Returns the current TikTok trending feed: `itemList` holds the videos, and `hasMore` and `cursor` describe paging. The response also has a `trendingTopics` field. Takes no parameters.", "operationId": "tiktok-trending", "produces": [ "application/json" @@ -464403,7 +480126,7 @@ }, "/time/article": { "get": { - "description": "Returns public TIME article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one TIME article by `url`, which must be a canonical HTTPS dated `time.com` article link. The response has the title, description, section, authors, publication and update times, lead image URL, body `paragraphs` and a `paywalled` flag.", "operationId": "time-article", "parameters": [ { @@ -464457,7 +480180,7 @@ }, "/time/author": { "get": { - "description": "Returns a TIME author's byline metadata, biography, social accounts, and recent articles from a canonical author URL.", + "description": "Returns a TIME author's profile by `url`, a canonical `time.com/author//` link: name, job title, bio, image URL, social account links and recent articles with title, URL, excerpt, section, section URL and ISO-8601 `published_at`. Not every author lists a social account.", "operationId": "time-author", "parameters": [ { @@ -464511,7 +480234,7 @@ }, "/time/headlines": { "get": { - "description": "Returns fresh TIME headlines from one public RSS section.", + "description": "Returns the current headlines for one TIME section. `section` is required and takes one of `news`, `politics`, `world`, `business`, `technology`, `health`, `entertainment`, `sports`, `ideas` or `climate`. Each item has its title and URL.", "operationId": "time-headlines", "parameters": [ { @@ -464571,7 +480294,7 @@ }, "/time/news": { "get": { - "description": "Returns fresh TIME top stories from its public RSS feed.", + "description": "Returns the current top stories from TIME. It takes no parameters. Each item has its title, URL and, where available, a summary, author, publication time, image URL and `type`. Use the headlines endpoint to read one section.", "operationId": "time-news", "produces": [ "application/json" @@ -464609,7 +480332,7 @@ }, "/time/sections": { "get": { - "description": "Returns the public TIME RSS section inventory used by the headlines endpoint.", + "description": "Lists the 10 TIME section slugs that the headlines endpoint accepts: `news`, `politics`, `world`, `business`, `technology`, `health`, `entertainment`, `sports`, `ideas` and `climate`. Each entry has a `slug`, a display `name` and a `url`.", "operationId": "time-sections", "produces": [ "application/json" @@ -464689,7 +480412,7 @@ }, "/timeslive/headlines": { "get": { - "description": "Returns current TimesLIVE stories from the public Arc section feed. Pass a slug from timeslive_sections; results are the first 15 items in the live section order.", + "description": "Returns current TimesLIVE stories for a section. Pass a slug from timeslive_sections; results are the first 15 items in the live section order.", "operationId": "timeslive-headlines", "parameters": [ { @@ -464762,7 +480485,7 @@ }, "/timeslive/news": { "get": { - "description": "Returns current TimesLIVE stories from its public anonymous Arc RSS feed. Section-specific headlines use the public TimesLIVE content feed; article access can vary by story.", + "description": "Returns current TimesLIVE stories, including section-specific headlines. Article access can vary by story.", "operationId": "timeslive-news", "produces": [ "application/json" @@ -464886,7 +480609,7 @@ }, "/timesofindia/author": { "get": { - "description": "Returns one Times of India reporter's public profile: name, job title, headshot, biography, and their recent articles.", + "description": "Returns a Times of India reporter's profile by `url`, a canonical `timesofindia.indiatimes.com/toireporter/author--.cms` link: name, job title, organization, location, email, biography, headshot and recent articles with title and URL. Fields the profile page does not publish may be empty.", "operationId": "timesofindia-author", "parameters": [ { @@ -464940,7 +480663,7 @@ }, "/timesofindia/headlines": { "get": { - "description": "Returns fresh headlines from one public Times of India section or city-edition feed.", + "description": "Returns the current headlines for one Times of India section or city edition. `section` is required, for example `top-stories`, `india`, `world`, `business`, `cricket`, `mumbai`, `delhi` or `bangalore`. Items carry the title and URL, plus summary, author, publication time and image when the outlet provides them.", "operationId": "timesofindia-headlines", "parameters": [ { @@ -465045,7 +480768,7 @@ }, "/timesofindia/news": { "get": { - "description": "Returns fresh Times of India top-stories headline metadata from its public RSS feed.", + "description": "Returns the current Times of India top stories. It takes no parameters. Each item has its title, URL, summary, publication time with its UTC offset, author and image URL. Use the headlines endpoint for a section or city edition.", "operationId": "timesofindia-news", "produces": [ "application/json" @@ -465083,7 +480806,7 @@ }, "/timesofindia/sections": { "get": { - "description": "Returns the complete public section inventory accepted by /api/v1/timesofindia/headlines: national and international topical sections, and India city editions.", + "description": "Lists the 55 Times of India sections that the headlines endpoint accepts, covering national and international topics such as `india`, `world`, `business` and `cricket`, and India city editions such as `mumbai`, `delhi` and `bangalore`. Each entry has a `slug`, a display `name` and the section feed `url`.", "operationId": "timesofindia-sections", "produces": [ "application/json" @@ -465217,7 +480940,7 @@ }, "/timesofisrael/headlines": { "get": { - "description": "Returns fresh headlines from one public Times of Israel section.", + "description": "Returns the current headlines for one Times of Israel section. `section` is required and takes one of `israel-and-the-region`, `israel-inside`, `jewish-times`, `real-estate-israel` or `tech-israel`. Each item has its title and URL.", "operationId": "timesofisrael-headlines", "parameters": [ { @@ -465272,7 +480995,7 @@ }, "/timesofisrael/news": { "get": { - "description": "Returns fresh Times of Israel top stories from its public news sitemap.", + "description": "Returns the latest Times of Israel stories. It takes no parameters. Each item has a title, URL and publication time. The list includes both regular story pages and individual liveblog-update pages, so expect some entries to be short updates.", "operationId": "timesofisrael-news", "produces": [ "application/json" @@ -465310,7 +481033,7 @@ }, "/timesofisrael/sections": { "get": { - "description": "Returns the public Times of Israel section inventory used by the headlines endpoint.", + "description": "Lists the five Times of Israel sections that the headlines endpoint accepts: `israel-and-the-region`, `israel-inside`, `jewish-times`, `real-estate-israel` and `tech-israel`. Each entry has a `slug`, a display `name` and a section `url`.", "operationId": "timesofisrael-sections", "produces": [ "application/json" @@ -465339,7 +481062,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized TMDB collection (franchise grouping), including its overview and server-rendered member movies. Credential-free public TMDB data.", + "description": "Returns a TMDB collection (a movie franchise grouping) by `id`, which can be the collection id or an id-slug. The response has the collection title, overview, `uri` and `source_url`, plus its member movies, each with id, title, overview, poster URL, release date and `uri`.", "operationId": "tmdb-collection", "parameters": [ { @@ -465402,7 +481125,7 @@ "consumes": [ "application/json" ], - "description": "Returns every genre ID advertised by TMDB's public movie and TV browse pages. Use movie values only with movie list filters and TV values only with TV list filters. Credential-free public TMDB data.", + "description": "Returns every genre ID for TMDB movie and TV browse pages. Use movie values only with movie list filters and TV values only with TV list filters.", "operationId": "tmdb-genres", "produces": [ "application/json" @@ -465443,7 +481166,7 @@ "consumes": [ "application/json" ], - "description": "Returns a TMDB movie chart (popular, top rated, now playing, or upcoming). Credential-free public TMDB data.", + "description": "Returns a page of TMDB movies from the `category` chart (`popular` by default, or `top_rated`, `now_playing`, `upcoming`), optionally refined by `sort_by`, `with_genres`, `original_language`, release dates, rating, votes and runtime. `limit` defaults to 10 (max 20). Each movie has id, title, overview, poster, release date and `uri`; `has_next_page` signals more pages.", "operationId": "tmdb-movie-list", "parameters": [ { @@ -465594,7 +481317,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized TMDB movie: overview, tagline, genres, countries, runtime, budget/revenue, top-billed cast, top crew (director/writer), and aggregate rating. Credential-free public TMDB data (themoviedb.org) — not the official api.themoviedb.org, which requires an API key.", + "description": "Returns a TMDB movie: overview, tagline, genres, countries, runtime, budget/revenue, top-billed cast, top crew (director/writer), and aggregate rating.", "operationId": "tmdb-movie", "parameters": [ { @@ -465657,7 +481380,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page from TMDB's Popular People directory, including each person's id, name, known-for titles, profile image, and detail URL. Credential-free public TMDB data.", + "description": "Returns one page from TMDB's Popular People directory, including each person's id, name, known-for titles, profile image, and detail URL.", "operationId": "tmdb-person-list", "parameters": [ { @@ -465718,7 +481441,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized TMDB person: biography, birth date, photo, and filmography (movie and TV credits). Credential-free public TMDB data.", + "description": "Returns a TMDB person by `id`: name, biography, birth date, photo URL and a filmography of movie and TV credits, most prominent first. `limit` caps the credits (default 10, max 20). Each credit has its `type` (`movie` or `tv`), id, title and `uri`. The biography may include a Wikipedia CC-BY-SA attribution note.", "operationId": "tmdb-person", "parameters": [ { @@ -465787,7 +481510,7 @@ "consumes": [ "application/json" ], - "description": "Searches TMDB movies, TV shows, people, and collections. An unscoped query interleaves results across all four types rather than returning whichever type happens to rank first upstream. Credential-free public TMDB data.", + "description": "Searches TMDB movies, TV shows, people, and collections. An unscoped query interleaves results across all four types rather than returning whichever type happens to rank first.", "operationId": "tmdb-search", "parameters": [ { @@ -465868,7 +481591,7 @@ "consumes": [ "application/json" ], - "description": "Returns a TMDB TV chart (popular, top rated, airing today, or on the air). Credential-free public TMDB data.", + "description": "Returns a page of TMDB TV shows from the `category` chart (`popular` by default, or `top_rated`, `airing_today`, `on_the_air`), optionally refined by `sort_by`, `with_genres`, `original_language`, first-air-date bounds `date_from` and `date_to`, rating, votes and runtime. `limit` defaults to 10 (max 20). A filtered page with no matches returns an empty `shows` array.", "operationId": "tmdb-tv-list", "parameters": [ { @@ -466019,7 +481742,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized TMDB TV show: overview, tagline, genres, countries, episode count, first/last air year, top-billed cast, top crew (creator), and aggregate rating. Credential-free public TMDB data.", + "description": "Returns a TMDB TV show: overview, tagline, genres, countries, episode count, first/last air year, top-billed cast, top crew (creator), and aggregate rating.", "operationId": "tmdb-tv", "parameters": [ { @@ -466079,7 +481802,7 @@ }, "/tmz/article": { "get": { - "description": "Returns public TMZ article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one TMZ article by `url`, a canonical HTTPS `tmz.com` link of the form `/////`. The response has the title, description, section, authors, publication and update times, image URL, body `paragraphs` and a `paywalled` flag.", "operationId": "tmz-article", "parameters": [ { @@ -466200,7 +481923,7 @@ }, "/tmz/headlines": { "get": { - "description": "Returns fresh headlines from one TMZ section's public hub page.", + "description": "Returns the current headlines for one TMZ section. `section` is required and must be `news` or `sports`. Each item has its title, URL and, where available, a summary, author, publication time, image and `type`, and the response echoes the `section`.", "operationId": "tmz-headlines", "parameters": [ { @@ -466252,7 +481975,7 @@ }, "/tmz/news": { "get": { - "description": "Returns fresh TMZ celebrity news top stories from the public home feed.", + "description": "Returns the current TMZ celebrity news top stories. It takes no parameters. Each item has its title, URL and, where available, an author such as TMZ Staff, a summary, publication time and image URL. Use the headlines endpoint with `sports` for sports stories.", "operationId": "tmz-news", "produces": [ "application/json" @@ -466490,7 +482213,7 @@ }, "/tokopedia/home/tabs": { "get": { - "description": "Returns the current public home-recommendation tabs. Use a returned `id` as `tab_id` with `/tokopedia/home`.", + "description": "Lists the current Tokopedia home recommendation tabs, each with its `id`, `name` and an optional image URL, plus a `fetched_at` timestamp. It takes no parameters. Pass a returned `id` as `tab_id` to `/tokopedia/home` to load that tab.", "operationId": "tokopedia-home-tabs", "produces": [ "application/json" @@ -466789,7 +482512,7 @@ }, "/tomsguide/article": { "get": { - "description": "Returns public Tom's Guide article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Tom's Guide article by `url`, a canonical HTTPS `tomsguide.com` link such as `tomsguide.com/
/`. The response has the title, description, section, authors, publication and update times, image URL, body `paragraphs` and a `paywalled` flag. On some product reviews `authors` may be empty.", "operationId": "tomsguide-article", "parameters": [ { @@ -466843,7 +482566,7 @@ }, "/tomsguide/author": { "get": { - "description": "Returns one Tom's Guide author's public profile: name, biography, social links, and one page of their recent articles.", + "description": "Returns a Tom's Guide author's name, job title, biography, social links and one page of recent articles. Give exactly one of `slug` or `url`; `page` is 1-based, defaults to 1 and overrides any page in `url`. The response also has `page` and `has_next_page`.", "operationId": "tomsguide-author", "parameters": [ { @@ -466910,7 +482633,7 @@ }, "/tomsguide/headlines": { "get": { - "description": "Returns fresh Tom's Guide headlines from one public section hub page.", + "description": "Returns the current headlines for one Tom's Guide section. `section` is required and takes one of 22 slugs, such as `ai`, `audio`, `deals`, `how-to`, `news`, `reviews`, `tvs` or `phones`. Each item has its title, URL, summary, author, publication time and image.", "operationId": "tomsguide-headlines", "parameters": [ { @@ -466982,7 +482705,7 @@ }, "/tomsguide/news": { "get": { - "description": "Returns fresh Tom's Guide top stories from the public RSS feed.", + "description": "Returns the current top stories from Tom's Guide. It takes no parameters. Each item has its title, URL and, where available, a summary, author, publication time, image URL and `type`. Use the headlines endpoint to read one section.", "operationId": "tomsguide-news", "produces": [ "application/json" @@ -467020,7 +482743,7 @@ }, "/tomsguide/sections": { "get": { - "description": "Returns the public Tom's Guide top-level content vertical taxonomy used by the headlines endpoint.", + "description": "Lists the 22 top-level Tom's Guide content verticals that the headlines endpoint accepts, such as `ai`, `best-picks`, `how-to`, `mattresses`, `reviews`, `vehicle-tech` and `phones`. Each entry has a `slug`, a display `name` and a `url`.", "operationId": "tomsguide-sections", "produces": [ "application/json" @@ -467046,7 +482769,7 @@ }, "/tomshardware/article": { "get": { - "description": "Returns public Tom's Hardware article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Tom's Hardware article by its canonical `url`, either the current `tomshardware.com/
//` form or the legacy `/reviews/,.html` form. The response has the title, description, authors, section, published and updated times, lead image, the body `paragraphs` and a `paywalled` flag.", "operationId": "tomshardware-article", "parameters": [ { @@ -467100,7 +482823,7 @@ }, "/tomshardware/author": { "get": { - "description": "Returns one Tom's Hardware author's public profile: name, biography, social links, and one page of their recent articles.", + "description": "Returns a Tom's Hardware author profile with name, job title, biography, social links and one page of recent articles. Identify the author with `slug` (such as `christian-eberle`) or an author `url`; `page` (default 1) overrides any page in the URL. `has_next_page` tells you whether more articles exist.", "operationId": "tomshardware-author", "parameters": [ { @@ -467167,7 +482890,7 @@ }, "/tomshardware/headlines": { "get": { - "description": "Returns fresh Tom's Hardware headlines from one public section hub page.", + "description": "Lists the current headlines for one Tom's Hardware section. `section` is required and takes a slug such as `gpus`, `cpus`, `laptops`, `deals`, `reviews` or `news`; use `tomshardware-sections` for the full set. Each item has its title, URL, author, publication time and lead image, plus a summary when the section's listing provides one.", "operationId": "tomshardware-headlines", "parameters": [ { @@ -467237,7 +482960,7 @@ }, "/tomshardware/news": { "get": { - "description": "Returns fresh Tom's Hardware top stories from the public RSS feed.", + "description": "Returns the latest Tom's Hardware top stories with no parameters. Each item has its title, URL, summary, author, publication time and lead image. Use the item URLs with `tomshardware-article` to read the body.", "operationId": "tomshardware-news", "produces": [ "application/json" @@ -467275,7 +482998,7 @@ }, "/tomshardware/sections": { "get": { - "description": "Returns the public Tom's Hardware top-level editorial taxonomy used by the headlines endpoint.", + "description": "Lists the 20 Tom's Hardware top-level sections that `tomshardware-headlines` accepts, including `3d-printing`, `cpus`, `gpus`, `monitors`, `news` and `reviews`. Each section carries its `slug`, display `name` and page `url`. Takes no parameters.", "operationId": "tomshardware-sections", "produces": [ "application/json" @@ -467566,7 +483289,7 @@ }, "/torontostar/sections": { "get": { - "description": "Returns the public Toronto Star section navigation accepted by the headlines endpoint.", + "description": "Lists the 69 Toronto Star sections accepted by the headlines endpoint, taken from thestar.com's main navigation. Each has a `slug`, a display `name` and a `url`. Nested sections use slash paths such as `news/gta`, `sports/hockey/pwhl` and `business/technology`. Takes no parameters.", "operationId": "torontostar-sections", "produces": [ "application/json" @@ -467646,7 +483369,7 @@ }, "/townhall/author": { "get": { - "description": "Returns one Townhall author's public profile: name, photo, bio, X profile, and their most recent stories.", + "description": "Returns a Townhall author profile by `slug` (such as `amy-curtis`) or by an author `url`; exactly one is required. The response has the name, photo, bio, X profile link and the first page of the author's archive, about 50 stories, each with its section label and a `vip` flag. Unknown authors return a not-found error.", "operationId": "townhall-author", "parameters": [ { @@ -467706,7 +483429,7 @@ }, "/townhall/headlines": { "get": { - "description": "Returns fresh headlines from one public Townhall section: the news feed, the columns feed, or a topic hub page.", + "description": "Lists headlines for one Townhall section. `section` is required: `news` and `columnists` return the 20 most recent stories, while the topic sections (such as `congress`, `economy` or `iran`) return up to 30 stories mixing news and columns. Items carry title, URL, image and, when available, author, time and summary.", "operationId": "townhall-headlines", "parameters": [ { @@ -467766,7 +483489,7 @@ }, "/townhall/news": { "get": { - "description": "Returns fresh Townhall news and column stories from the public site-wide RSS feed.", + "description": "Returns the latest Townhall stories, news and opinion columns mixed, newest first, about 50 items. Each has its title, URL, short summary, publication time, author byline and lead image. Video pages are left out. Takes no parameters.", "operationId": "townhall-news", "produces": [ "application/json" @@ -467827,7 +483550,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized TripAdvisor public typeahead candidates from the credential-free GraphQL endpoint.", + "description": "Returns TripAdvisor typeahead suggestions for the required query `q`, optionally narrowed by `limit`, `locale`, `scope_geo_id` and a `type` hint. Each result has its id, title, type, URL, image, parent location and coordinates, and may carry nested search shortcuts. Results can be locations, hotels, restaurants or attractions.", "operationId": "tripadvisor-autocomplete", "parameters": [ { @@ -467927,7 +483650,7 @@ }, "/tripadvisor/enums": { "get": { - "description": "Returns supported TripAdvisor enum values for place/listing filters, including locales, currencies, languages, listing types, filters, amenities, and category ids.", + "description": "Returns the values TripAdvisor place and listing filters accept: `locales`, `currencies`, `languages`, `listing_types`, `sorts`, `pricing_modes`, `hotel_classes`, `hotel_amenities`, `restaurant_types`, `restaurant_options`, attraction categories with their ids, and `filter_ids`. It also lists `unsupported_entity_types`. Takes no parameters.", "operationId": "tripadvisor-enums", "produces": [ "application/json" @@ -467968,7 +483691,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized TripAdvisor hotel listing results from public credential-free GraphQL listing data.", + "description": "Searches TripAdvisor hotels in the area given by the required `geo_id`. Filter with `class`, `amenities`, `price_min`, `price_max`, `pricing_mode`, `travelers_choice` and `currency`; page with `offset` and `limit`; order with `sort`. Each hotel has its title, URL, image, rating, review count, star rating, rank, price, provider, location and a review snippet when TripAdvisor supplies them.", "operationId": "tripadvisor-hotels", "parameters": [ { @@ -468110,7 +483833,7 @@ "consumes": [ "application/json" ], - "description": "Returns a rich normalized TripAdvisor place profile. Destination and bookable tour/experience pages resolve through a faster dedicated lookup; everything else comes from public place HTML, using configured browser fallbacks when direct HTML is blocked.", + "description": "Returns a rich TripAdvisor place profile.", "operationId": "tripadvisor-place", "parameters": [ { @@ -468177,7 +483900,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized TripAdvisor public reviews from credential-free GraphQL review data. Pass either id or url.", + "description": "Returns reviews for a TripAdvisor place identified by `id` (location id) or `url`. `limit` defaults to 20 (max 50); `page` is 1-based; `language`, `ratings` (1 to 5) and `sort_by` refine the list. Each review has author, title, text, dates, rating, language, helpful votes, photos and URL. A page beyond `total` returns an empty `reviews` array.", "operationId": "tripadvisor-reviews", "parameters": [ { @@ -468318,7 +484041,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized TripAdvisor place listings for hotels, restaurants, attractions, and supported attraction category types.", + "description": "Searches TripAdvisor places in the area given by the required `geo_id`, for the required `type`: `hotel`, `restaurant`, `attraction`, `all`, or an attraction category type from `/tripadvisor/enums`. Hotel and restaurant filters, `offset`, `limit`, `locale`, `currency` and `sort` are optional. Each result has title, URL, rating, review count, rank, price and location. Unsupported entity-only types return a validation error.", "operationId": "tripadvisor-search", "parameters": [ { @@ -468516,7 +484239,7 @@ "consumes": [ "application/json" ], - "description": "Returns Trip.com's own top-hotels page for a city: normalized hotel summaries (name, location, star rating, guest rating, review count, image, display price) for the hotels Trip.com features on that city's hotel-list page. Trip.com does not expose a credential-free free-text city search, so callers supply the exact city_slug and city_id pair from a known Trip.com hotel-list URL of the form https://www.trip.com/hotels/{city_slug}-hotels-list-{city_id}/. Credential-free public data sourced from Trip.com's own server-rendered hotel-list page.", + "description": "Returns Trip.com's own top-hotels page for a city: hotel summaries (name, location, star rating, guest rating, review count, image, display price) for the hotels Trip.com features on that city's hotel-list page. Trip.com does not expose a free-text city search, so callers supply the exact city_slug and city_id pair from a known Trip.com hotel-list URL of the form https://www.trip.com/hotels/{city_slug}-hotels-list-{city_id}/.", "operationId": "tripcom-hotels-search", "parameters": [ { @@ -468587,7 +484310,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Trip.com hotel-detail page: identity (name, local name, star rating, city/province/country), location (address, zone, latitude/longitude, nearby-transport description), guest rating (overall score plus cleanliness/amenities/location/service breakdown), images, description, check-in/check-out and child policy summaries, and popular facilities. Credential-free public data sourced from Trip.com's own server-rendered hotel-detail page. Pricing is not included: Trip.com's detail page only returns per-night rates alongside check-in/check-out dates, which this endpoint does not take as input -- use the search endpoint for a city's current display prices.", + "description": "Returns a Trip.com hotel-detail page: identity (name, local name, star rating, city/province/country), location (address, zone, latitude/longitude, nearby-transport description), guest rating (overall score plus cleanliness/amenities/location/service breakdown), images, description, check-in/check-out and child policy summaries, and popular facilities. Pricing is not included: Trip.com's detail page only returns per-night rates alongside check-in/check-out dates, which this endpoint does not take as input -- use the search endpoint for a city's current display prices.", "operationId": "tripcom-hotel-detail", "parameters": [ { @@ -468704,7 +484427,7 @@ "consumes": [ "application/json" ], - "description": "Returns the TrustMRR startup category directory (slug, label, description, and keywords for each category).", + "description": "Lists the TrustMRR startup categories, with the total `count`. Each category has its `slug`, `label`, short label, icon name, description, keywords and TrustMRR URL. Pass a category `slug` to `/trustmrr/category/{slug}` to list the startups in it.", "operationId": "trustmrr-categories", "produces": [ "application/json" @@ -468751,7 +484474,7 @@ "consumes": [ "application/json" ], - "description": "Returns a single TrustMRR category page and the startups listed under it, with verified revenue and MRR figures.", + "description": "Returns one TrustMRR category by `slug` (lowercase letters, digits and hyphens, for example `saas`) with the startups listed in it. Each startup has its name, slug, URL, description, current MRR, total revenue and last-30-days revenue, all in USD, plus the `on_sale` flag for startups listed for sale. Valid slugs come from `/trustmrr/categories`.", "operationId": "trustmrr-category", "parameters": [ { @@ -469005,7 +484728,7 @@ "consumes": [ "application/json" ], - "description": "Returns a paginated list of every startup in the TrustMRR directory, discovered from the site's public sitemap. Each entry is a slug you can pass to /trustmrr/startup/{slug} for the full verified profile — together these two endpoints let you enumerate and scrape the entire directory without the authenticated marketplace API.", + "description": "Returns a paginated list of every startup in the TrustMRR directory. Each entry is a slug you can pass to /trustmrr/startup/{slug} for the full verified profile — together these two endpoints let you enumerate the entire directory.", "operationId": "trustmrr-startups", "parameters": [ { @@ -469066,7 +484789,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized business-unit search results from Trustpilot's JSON business-unit search API.", + "description": "Searches Trustpilot for businesses matching a query, for a country (default `US`), with `page` and `page_size` (default 20, max 100). Each result has the display name, identifying name, TrustScore, star rating, review count, categories, website, email, phone, address and Trustpilot URL; `total_hits` gives the full match count.", "operationId": "trustpilot-business-search", "parameters": [ { @@ -469159,7 +484882,7 @@ "consumes": [ "application/json" ], - "description": "Returns a summary Trustpilot business profile parsed from the public business page.", + "description": "Returns a Trustpilot business profile by `slug`, such as `openai.com`. The profile has the name, `trust_score`, `review_count`, rating histogram, review summary and topics, categories, claimed status, website URL, reply metrics, company activity and verification flags, and an about section with description and contact details.", "operationId": "trustpilot-business", "parameters": [ { @@ -469228,7 +484951,7 @@ "consumes": [ "application/json" ], - "description": "Returns related company cards from Trustpilot's public business page rails.", + "description": "Returns the businesses Trustpilot shows as related to a given business slug such as `openai.com`. Each related business has its display name, identifying name, logo, star rating, TrustScore, review count and Trustpilot URL; the response also includes a summary of the business you asked about.", "operationId": "trustpilot-business-related", "parameters": [ { @@ -469297,7 +485020,7 @@ "consumes": [ "application/json" ], - "description": "Returns paginated Trustpilot business reviews parsed from the public review page.", + "description": "Returns one page of Trustpilot reviews for a business slug such as `openai.com`, with filters for star rating, verified reviews, reviews with a company reply, language and text search. Each review has its rating, title, body, author name, country and review count, dates, and any company reply; the response also carries the business summary and pagination totals.", "operationId": "trustpilot-business-reviews", "parameters": [ { @@ -469423,7 +485146,7 @@ "consumes": [ "application/json" ], - "description": "Returns the Trustpilot public category index grouped by top-level category.", + "description": "Lists the Trustpilot category index grouped by top-level category. Each group has its name, slug and URL, and an `items` list of subcategories with their own name, slug and URL. It takes no parameters.", "operationId": "trustpilot-categories", "produces": [ "application/json" @@ -469476,7 +485199,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized category search results from Trustpilot's JSON category search API.", + "description": "Searches Trustpilot categories for the required `q`. `size` sets the maximum number of categories (default 20, from 1 to 100), `country` is a two-letter code (default US) and `locale` uses `ll-CC` format (default `en-US`). Each category has its `category_id`, `display_name` and `top_level_category_id`.", "operationId": "trustpilot-category-search", "parameters": [ { @@ -469568,7 +485291,7 @@ "consumes": [ "application/json" ], - "description": "Returns category metadata, company cards, and side rails from Trustpilot's public category page.", + "description": "Returns a Trustpilot category by `slug` (for example `software_company`), with the companies listed on one page; `page` is 1-based and defaults to 1. Each company has its display name, `identifying_name`, `trust_score`, `stars`, `review_count`, location, contact details, categories and Trustpilot URL. Also returns breadcrumbs, newest companies and `pagination.has_next_page`.", "operationId": "trustpilot-category", "parameters": [ { @@ -469645,7 +485368,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Twitch channel's profile (partner status, team, last broadcast title) plus its current live status (started time and game/category, when live). Public data sourced from Twitch's own GraphQL API.", + "description": "Returns a Twitch channel's profile (partner status, team, last broadcast title) plus its current live status (started time and game/category, when live).", "operationId": "twitch-channel", "parameters": [ { @@ -469708,7 +485431,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Twitch channel's clips (last 7 days), most-viewed first: title, view count, duration, curator, and the game it was recorded under. Public data sourced from Twitch's own GraphQL API.", + "description": "Returns a Twitch channel's clips (last 7 days), most-viewed first: title, view count, duration, curator, and the game it was recorded under.", "operationId": "twitch-clips", "parameters": [ { @@ -469778,7 +485501,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Twitch channel's upcoming broadcast schedule -- planned segments with title, start/end time, and game/category -- starting today. A channel with no schedule configured returns an empty segments list, not an error. Public data sourced from Twitch's own GraphQL API.", + "description": "Returns a Twitch channel's upcoming broadcast schedule -- planned segments with title, start/end time, and game/category -- starting today. A channel with no schedule configured returns an empty segments list, not an error.", "operationId": "twitch-schedule", "parameters": [ { @@ -469912,7 +485635,7 @@ "consumes": [ "application/json" ], - "description": "Returns the top currently-live streams for a Twitch game/category, ranked by viewer count: title, viewer count, broadcaster, and tags. Public data sourced from Twitch's own GraphQL API.", + "description": "Returns the top currently-live streams for a Twitch game/category, ranked by viewer count: title, viewer count, broadcaster, and tags.", "operationId": "twitch-streams", "parameters": [ { @@ -469982,7 +485705,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Twitch team's full member roster, with live status and viewer count for whoever is currently live, plus team-level metadata (banner, logo, description, owner). Public data sourced from Twitch's own GraphQL API.", + "description": "Returns a Twitch team's full member roster, with live status and viewer count for whoever is currently live, plus team-level metadata (banner, logo, description, owner).", "operationId": "twitch-team", "parameters": [ { @@ -470045,7 +485768,7 @@ "consumes": [ "application/json" ], - "description": "Returns the top games/categories site-wide, ranked by total current viewers across all live streams under each one. Public data sourced from Twitch's own GraphQL API.", + "description": "Returns the top games/categories site-wide, ranked by total current viewers across all live streams under each one.", "operationId": "twitch-top-games", "parameters": [ { @@ -470101,7 +485824,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Twitch channel's past-broadcast videos (VODs), ranked by view count: title, view count, length, publish date, and the game it was recorded under. Public data sourced from Twitch's own GraphQL API.", + "description": "Returns a Twitch channel's past-broadcast videos (VODs), ranked by view count: title, view count, length, publish date, and the game it was recorded under.", "operationId": "twitch-videos", "parameters": [ { @@ -470171,7 +485894,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of a Twitch VOD's chat replay (past-broadcast chat messages), starting at a given point in the video's timeline. Paginate forward by re-requesting with the last returned comment's offset_seconds. Public data sourced from Twitch's own GraphQL API.", + "description": "Returns one page of a Twitch VOD's chat replay (past-broadcast chat messages), starting at a given point in the video's timeline. Paginate forward by re-requesting with the last returned comment's offset_seconds.", "operationId": "twitch-vod-comments", "parameters": [ { @@ -470241,7 +485964,7 @@ "consumes": [ "application/json" ], - "description": "Returns restaurants delivering to a specific location: name, rating, review count, delivery estimate, cuisine tags, and cover image. Credential-free public UberEats data.", + "description": "Returns restaurants delivering to a specific location: name, rating, review count, delivery estimate, cuisine tags, and cover image.", "operationId": "ubereats-feed", "parameters": [ { @@ -470318,7 +486041,7 @@ "consumes": [ "application/json" ], - "description": "Returns restaurants delivering to a location: name, rating, review count, delivery estimate, cuisine tags, and image. Pass a keyword to search by name/cuisine/dish, or omit it to browse the general feed for that location. Credential-free public UberEats data.", + "description": "Returns restaurants delivering to a location: name, rating, review count, delivery estimate, cuisine tags, and image. Pass a keyword to search by name/cuisine/dish, or omit it to browse the general feed for that location.", "operationId": "ubereats-search", "parameters": [ { @@ -470408,7 +486131,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized UberEats store: address, phone, rating, cuisine tags, hours tagline, and the full menu (sections with items, descriptions, and prices). Credential-free public UberEats data.", + "description": "Returns an UberEats store: address, phone, rating, cuisine tags, hours tagline, and the full menu (sections with items, descriptions, and prices).", "operationId": "ubereats-store", "parameters": [ { @@ -470471,7 +486194,7 @@ "consumes": [ "application/json" ], - "description": "Returns the full menu for an UberEats store: section titles, items, item descriptions, prices, and availability status. Credential-free public UberEats data.", + "description": "Returns the full menu for an UberEats store: section titles, items, item descriptions, prices, and availability status.", "operationId": "ubereats-store-menu", "parameters": [ { @@ -470534,7 +486257,7 @@ "consumes": [ "application/json" ], - "description": "Returns the reviews snapshot embedded in an UberEats store page: aggregate rating, review count, and a sample of recent reviews (reviewer name, text, and relative/absolute date). This is a single on-page snapshot, not a full paginated feed. A store with no written reviews returns an empty reviews list. Credential-free public UberEats data.", + "description": "Returns the reviews snapshot embedded in an UberEats store page: aggregate rating, review count, and a sample of recent reviews (reviewer name, text, and relative/absolute date). This is a single on-page snapshot, not a full paginated feed. A store with no written reviews returns an empty reviews list.", "operationId": "ubereats-store-reviews", "parameters": [ { @@ -470740,7 +486463,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of an Ulta Beauty product's normalized customer questions, each with every answer it received. product_id is taken from a search result's product_id field or a product page's URL. A product with zero questions, or a well-formed but unrecognized product_id, returns a normal, empty result rather than an error.", + "description": "Returns one page of an Ulta Beauty product's customer questions, each with every answer it received. product_id is taken from a search result's product_id field or a product page's URL. A product with zero questions, or a well-formed but unrecognized product_id, returns a normal, empty result rather than an error.", "operationId": "ulta-product-questions", "parameters": [ { @@ -470804,7 +486527,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of an Ulta Beauty product's normalized customer reviews, plus the retailer's own site-wide rating summary (rating count, average rating, recommended ratio, rating histogram) for the product. product_id is taken from a search result's product_id field or a product page's URL. A product with zero reviews, or a well-formed but unrecognized product_id, returns a normal, empty result rather than an error.", + "description": "Returns one page of an Ulta Beauty product's customer reviews, plus the retailer's own site-wide rating summary (rating count, average rating, recommended ratio, rating histogram) for the product. product_id is taken from a search result's product_id field or a product page's URL. A product with zero reviews, or a well-formed but unrecognized product_id, returns a normal, empty result rather than an error.", "operationId": "ulta-product-reviews", "parameters": [ { @@ -470938,7 +486661,7 @@ "consumes": [ "application/json" ], - "description": "Searches Ulta Beauty's product catalog by keyword, with real page-based pagination. Returns normalized products with brand, pricing, rating, and review count. An unrecognized/nonsense keyword returns a genuine empty result rather than a fallback set. Requesting a page beyond the available results returns a normal, empty result rather than an error.", + "description": "Searches Ulta Beauty's product catalog by keyword, with real page-based pagination. Returns products with brand, pricing, rating, and review count. An unrecognized/nonsense keyword returns a genuine empty result rather than a fallback set. Requesting a page beyond the available results returns a normal, empty result rather than an error.", "operationId": "ulta-search", "parameters": [ { @@ -471136,7 +486859,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Upwork freelancer profile: name, title, verification badge, overview, hourly rate, rating and review count, Job Success Score, location and local time, total jobs/hours worked, and recent client feedback (title, comment, date, client name, rating). Public data sourced from Upwork's own server-rendered profile pages via a real browser-rendering backend.", + "description": "Returns an Upwork freelancer profile: name, title, verification badge, overview, hourly rate, rating and review count, Job Success Score, location and local time, total jobs/hours worked, and recent client feedback (title, comment, date, client name, rating).", "operationId": "upwork-freelancer", "parameters": [ { @@ -471199,7 +486922,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Upwork job posting: title, full description, employment type, budget (hourly range or fixed amount), location/remote type, experience level, duration, project type, proposal count, allowed applicant countries, and a summary of the posting client (member since, location, total spend, hires, hours, industry, company size). Public data sourced from Upwork's own server-rendered job pages via a real browser-rendering backend.", + "description": "Returns an Upwork job posting: title, full description, employment type, budget (hourly range or fixed amount), location/remote type, experience level, duration, project type, proposal count, allowed applicant countries, and a summary of the posting client (member since, location, total spend, hires, hours, industry, company size).", "operationId": "upwork-job", "parameters": [ { @@ -471262,7 +486985,7 @@ "consumes": [ "application/json" ], - "description": "Searches Upwork's public job listings by free-text keyword, returning normalized job summaries (title, budget, experience level, duration, posted date, description snippet, skill tags). Public data sourced from Upwork's own server-rendered search pages via a real browser-rendering backend.", + "description": "Searches Upwork's public job listings by free-text keyword, returning job summaries (title, budget, experience level, duration, posted date, description snippet, skill tags).", "operationId": "upwork-search", "parameters": [ { @@ -471326,7 +487049,7 @@ "consumes": [ "application/json" ], - "description": "Returns per-endpoint request and credit totals for the selected UTC time range, ordered by request volume.", + "description": "Returns the signed-in user's usage broken down by endpoint, ordered by request volume. `range` is `period` (the current billing period, default), `day`, `week`, `month` or `custom`, which takes RFC3339 `from` and `to`. `limit` defaults to 20 (max 100). Each item has `requests`, `charged_requests`, `failed_requests`, `non_billable_requests`, `credits` and `overage`. Authenticated with a dashboard JWT.", "operationId": "usage-me-endpoints", "parameters": [ { @@ -471570,7 +487293,7 @@ "consumes": [ "application/json" ], - "description": "Returns JWT-authenticated request and credit consumption buckets for chart rendering. Results use UTC buckets.", + "description": "Returns the signed-in user's request usage as UTC time buckets for charts. `range` is `period` (default), `day`, `week`, `month` or `custom` (with RFC3339 `from` and `to`); `bucket` is `hour` or `day`; `endpoint` filters to one endpoint such as `google/search`. Each bucket has start, end, `requests`, `charged_requests`, `credits` and `overage`. Empty buckets are filled with zeros.", "operationId": "usage-me-timeseries", "parameters": [ { @@ -471663,7 +487386,7 @@ "consumes": [ "application/json" ], - "description": "Returns, per scraping platform, how many real users have used it (lifetime, successful requests only), its request volume, top entry endpoints, and which other platforms those users also use. Aggregated across all customers with internal, static, and console traffic excluded; recomputed at most once per 24 hours and served from cache. Powers the console dashboard's \"Explore more\" recommendation.", + "description": "Returns, per platform, how many real users have used it (lifetime, successful requests only), its request volume, top entry endpoints, and which other platforms those users also use. Aggregated across all customers with non-customer, static, and console traffic excluded; recomputed at most once per 24 hours and served from cache. Powers the console dashboard's \"Explore more\" recommendation.", "operationId": "usage-platform-adjacency", "produces": [ "application/json" @@ -471821,7 +487544,7 @@ }, "/usatoday/headlines": { "get": { - "description": "Returns the newest items from one top-level USA Today section, filtered from the same public news feed as /usatoday/news.", + "description": "Returns the newest USA Today items for one top-level section, up to 100. `section` is required and takes `news`, `sports`, `entertainment`, `life`, `money`, `tech`, `travel`, `opinion`, `cars`, `shopping`, `weather`, `politics` or `grocery`. Each item has its title, URL, published and updated times, and lead image when there is one.", "operationId": "usatoday-headlines", "parameters": [ { @@ -471928,7 +487651,7 @@ }, "/usatoday/sections": { "get": { - "description": "Lists every top-level USA Today section accepted by /usatoday/headlines, with its slug, display name, and landing-page URL.", + "description": "Lists the 13 top-level USA Today sections accepted by `usatoday-headlines`, from `news` and `sports` to `politics` and `grocery`. Each has a `slug`, a display `name` and a landing-page `url`. Takes no parameters.", "operationId": "usatoday-sections", "produces": [ "application/json" @@ -471969,7 +487692,7 @@ "consumes": [ "application/json" ], - "description": "Returns the JWT-authenticated user's safe profile fields from the validated token context.", + "description": "Returns the profile of the user who owns the `Token ` in the `Authorization` header: `id`, `username`, `email` and `plan`. Password hashes, activation tokens, API keys and billing identifiers are never returned, which makes it a quick check that a session token is valid.", "operationId": "user-me", "produces": [ "application/json" @@ -472004,7 +487727,7 @@ "consumes": [ "application/json" ], - "description": "Returns the JWT-authenticated user's API keys in masked form, including status and grace-period metadata for recently rotated keys.", + "description": "Lists the signed-in user's API keys in masked form. Each item has `id`, `masked_key`, `key_prefix`, `key_suffix`, `status` (`active`, `grace` or `revoked`), `source`, and created, updated, rotated, expiry and last-used timestamps with the last-used IP. Raw keys are not returned; the reveal endpoint, `POST /api/v1/user/me/api-keys/{id}/reveal`, retrieves one.", "operationId": "user-me-api-keys", "produces": [ "application/json" @@ -472194,7 +487917,7 @@ "consumes": [ "application/json" ], - "description": "Withdraws the authenticated user's own pending or (still within the grace window) approved deletion request.", + "description": "Withdraws the authenticated user's own pending or approved deletion request before purge. If this request scheduled Stripe cancellation and the paid-through date has not arrived, the renewal cancellation is reversed.", "operationId": "account-deletion-cancel", "produces": [ "application/json" @@ -472239,7 +487962,7 @@ "consumes": [ "application/json" ], - "description": "Returns the authenticated user's active (pending or approved) deletion request, or an empty request when none exists.", + "description": "Returns the signed-in user's active account deletion request (`pending` or `approved`), including its `status`, request time, `scheduled_purge_at`, `subscription_period_end` and the Stripe cancellation flags. A user with no active request gets a 200 with an empty request (empty `id`), not an error.", "operationId": "account-deletion-my-request", "produces": [ "application/json" @@ -472278,7 +488001,7 @@ "consumes": [ "application/json" ], - "description": "Records the authenticated user's request to delete their account. Idempotent — repeat calls while a request is pending or approved return the existing request.", + "description": "Records the authenticated user's request to delete their account. If approved with a live Stripe subscription, renewal is stopped at the current paid-through date; account access continues until expiry, then deletion runs after the existing 72-hour minimum review window. Account deletion never issues refunds or prorated credits. Idempotent — repeat calls while a request is pending or approved return the existing request.", "operationId": "account-deletion-request", "parameters": [ { @@ -472332,7 +488055,7 @@ }, "/usmagazine/article": { "get": { - "description": "Returns public Us Weekly article metadata and body paragraphs from a canonical article URL. Photo-gallery URLs are not supported.", + "description": "Returns one Us Weekly article by its canonical `url`, in the form `/
/news//`. The response has the title, description, published and updated times, section, authors, lead image and the body `paragraphs`, without sub-headings or embeds. Photo-gallery URLs and non-article pages return a 400 error.", "operationId": "usmagazine-article", "parameters": [ { @@ -472386,7 +488109,7 @@ }, "/usmagazine/author": { "get": { - "description": "Returns a Us Weekly author's biography, contact links, and recent articles from a canonical author URL.", + "description": "Returns a Us Weekly author's profile from their canonical `url` (`/author//`, required): name, biography, contact links and the newest articles, about 20. Staff and desk bylines may have no biography or links. Photo galleries are skipped and `published_at` is not set on the articles.", "operationId": "usmagazine-author", "parameters": [ { @@ -472440,7 +488163,7 @@ }, "/usmagazine/headlines": { "get": { - "description": "Returns fresh headlines from one public Us Weekly RSS section. Photo galleries are not included.", + "description": "Lists recent Us Weekly headlines for one section. `section` is required and takes `celebrity-news`, `entertainment`, `sports`, `shopping`, `crime-news`, `stylish`, `celebrity-moms`, `celebrity-body`, `food`, `reviews`, `reality-tv` or `royal-family`. Returns up to about 20 items, with photo galleries excluded; `reviews` holds only a few.", "operationId": "usmagazine-headlines", "parameters": [ { @@ -472502,7 +488225,7 @@ }, "/usmagazine/news": { "get": { - "description": "Returns fresh Us Weekly top stories from its public RSS feed.", + "description": "Returns the latest Us Weekly top stories with no parameters. Each item has its title and URL, plus summary, publication time, author and image when the outlet provides them. Only article URLs of the form `/
/news//` appear; photo galleries are left out.", "operationId": "usmagazine-news", "produces": [ "application/json" @@ -472540,7 +488263,7 @@ }, "/usmagazine/sections": { "get": { - "description": "Returns the public Us Weekly RSS section inventory used by the headlines endpoint.", + "description": "Lists the 12 Us Weekly sections accepted by `usmagazine-headlines`, from `celebrity-news` and `entertainment` to `reality-tv` and `royal-family`. Each entry has a `slug`, display `name` and section feed `url`. Takes no parameters.", "operationId": "usmagazine-sections", "produces": [ "application/json" @@ -472646,7 +488369,7 @@ "consumes": [ "application/json" ], - "description": "Searches USPTO Patent Public Search's full-text index of granted patents and published applications, returning normalized bibliographic results (title, applicant/assignee, inventors, filing and publication dates, application number, IPC/CPC classifications, page count). q accepts USPTO's full Advanced Search query syntax -- field-specific search (e.g. battery.ti., Microsoft.as.), date ranges (@pd>=20200101<=20241231), boolean and proximity operators, and wildcards -- see the markdown doc for the full field-code table and syntax reference. Public data, sourced from USPTO's own official search tool.", + "description": "Searches USPTO Patent Public Search's full-text index of granted patents and published applications, returning bibliographic results (title, applicant/assignee, inventors, filing and publication dates, application number, IPC/CPC classifications, page count). q accepts USPTO's full Advanced Search query syntax -- field-specific search (e.g. battery.ti., Microsoft.as.), date ranges (@pd>=20200101<=20241231), boolean and proximity operators, and wildcards -- see the markdown doc for the full field-code table and syntax reference.", "operationId": "usptoppubs-search", "parameters": [ { @@ -472727,7 +488450,7 @@ }, "/vanguardng/article": { "get": { - "description": "Returns public Vanguard article metadata and body paragraphs from a canonical article URL. Vanguard has no paywall.", + "description": "Returns one Vanguard (Nigeria) story by its `url`, a vanguardngr.com link in the `/YYYY/MM//` form; section pages and feeds are rejected. The response has the title, description, times, section, authors, lead image and body `paragraphs`. Vanguard has no paywall, so `paywalled` is never set.", "operationId": "vanguardng-article", "parameters": [ { @@ -472885,7 +488608,7 @@ }, "/vanguardng/headlines": { "get": { - "description": "Returns fresh headlines from one public Vanguard section feed.", + "description": "Lists up to 20 recent Vanguard stories from one category. `section` is required and takes one of 42 slugs such as `national-news`, `politics`, `business`, `sports`, `business/energy` or `more/metro`. Items carry title, URL, summary, author and publication time. An unknown section returns an invalid-params error.", "operationId": "vanguardng-headlines", "parameters": [ { @@ -472977,7 +488700,7 @@ }, "/vanguardng/news": { "get": { - "description": "Returns fresh Vanguard (Nigeria) stories from the public site-wide RSS feed.", + "description": "Returns the latest 20 Vanguard (Nigeria) stories with no parameters. Each has a title, URL, summary, publication time and image where available. `author` is the site's account name, often a desk account such as `Nwafor`; use `vanguardng-article` for the on-page byline.", "operationId": "vanguardng-news", "produces": [ "application/json" @@ -473009,7 +488732,7 @@ }, "/vanguardng/sections": { "get": { - "description": "Returns the public Vanguard editorial section inventory used by vanguardng-headlines: every category with a live feed.", + "description": "Lists the 42 Vanguard sections accepted by `vanguardng-headlines`. Each has a `slug` (nested categories contain a `/`, as in `business/energy`), a display `name` and a feed `url`. `national-news` is the site's News category and `promoted` is sponsored content. Takes no parameters.", "operationId": "vanguardng-sections", "produces": [ "application/json" @@ -473095,7 +488818,7 @@ }, "/vanityfair/author": { "get": { - "description": "Returns a Vanity Fair contributor's byline metadata, biography, headshot, social links, and recent articles from a canonical contributor URL.", + "description": "Returns a Vanity Fair contributor profile from their canonical `url` (`www.vanityfair.com/contributor/`, required). The response has the name, job title when present, biography, headshot, social links and recent articles with title, URL and publication time.", "operationId": "vanityfair-author", "parameters": [ { @@ -473149,7 +488872,7 @@ }, "/vanityfair/headlines": { "get": { - "description": "Returns fresh headlines from one Vanity Fair section's public listing page.", + "description": "Lists the current headlines for one Vanity Fair section. `section` is required and takes `hollywood`, `movies`, `television`, `award-season`, `what-is-cinema`, `culture`, `politics`, `business`, `style`, `beauty`, `fashion` or `royals`. Each item has its title and URL.", "operationId": "vanityfair-headlines", "parameters": [ { @@ -473211,7 +488934,7 @@ }, "/vanityfair/news": { "get": { - "description": "Returns fresh Vanity Fair top stories from its public RSS feed.", + "description": "Returns the latest Vanity Fair top stories and takes no parameters. Each item has its title, canonical URL, summary, author, publication time and lead image.", "operationId": "vanityfair-news", "produces": [ "application/json" @@ -473275,7 +488998,7 @@ }, "/variety/article": { "get": { - "description": "Returns public Variety article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Variety article by its canonical `variety.com` `url`, in the form `////-/`. The response has the title, description, authors, section, published and updated times, lead image, body `paragraphs` and a `paywalled` flag.", "operationId": "variety-article", "parameters": [ { @@ -473329,7 +489052,7 @@ }, "/variety/author": { "get": { - "description": "Returns one Variety author's public profile: name, biography, social links, and one page of their recent articles.", + "description": "Returns a Variety author profile with name, biography, photo, social links and one page of recent articles. Give either `slug` (such as `ellise-shafer`) or an author `url`, which may include a `/page//` segment; `page` (default 1) overrides it. `has_next_page` shows whether another page exists.", "operationId": "variety-author", "parameters": [ { @@ -473396,7 +489119,7 @@ }, "/variety/headlines": { "get": { - "description": "Returns fresh Variety headlines from one public vertical RSS feed.", + "description": "Lists fresh Variety headlines for one vertical. `section` is required and takes a slug such as `film`, `music`, `tv`, `biz`, `awards`, `gaming`, `global`, `legit` or `vip`; `variety-sections` lists all 24. Each item has its title and URL, plus summary, author, publication time and image when the outlet provides them.", "operationId": "variety-headlines", "parameters": [ { @@ -473470,7 +489193,7 @@ }, "/variety/news": { "get": { - "description": "Returns fresh Variety top stories from the public RSS feed.", + "description": "Returns the latest Variety top stories with no parameters. Each item has its title, URL, summary, author, publication time and image. Item URLs can be passed to `variety-article` for the body.", "operationId": "variety-news", "produces": [ "application/json" @@ -473508,7 +489231,7 @@ }, "/variety/sections": { "get": { - "description": "Returns the public Variety vertical taxonomy used by the headlines endpoint.", + "description": "Lists the 24 Variety verticals accepted by `variety-headlines`, such as `film`, `tv`, `music`, `biz`, `awards`, `legit` and `voices`. Each has a `slug`, a display `name` and a `url`. Takes no parameters.", "operationId": "variety-sections", "produces": [ "application/json" @@ -474062,7 +489785,7 @@ }, "/vice/article": { "get": { - "description": "Returns public VICE article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one VICE article by its canonical `url`, in the form `www.vice.com/en/article/`. The response has the title, description, authors, section, published and updated times, lead image and body `paragraphs`, plus a `paywalled` flag.", "operationId": "vice-article", "parameters": [ { @@ -474116,7 +489839,7 @@ }, "/vice/author": { "get": { - "description": "Returns a VICE contributor's byline metadata (name, headshot), biography, and recent articles from a canonical contributor URL.", + "description": "Returns a VICE contributor profile from their canonical `url` (`www.vice.com/en/contributor/`, required). The response has the name and headshot when present, the biography paragraphs and recent articles with title, URL, summary, author, publication time and image.", "operationId": "vice-author", "parameters": [ { @@ -474232,7 +489955,7 @@ }, "/vice/news": { "get": { - "description": "Returns fresh VICE stories from its public RSS feed.", + "description": "Returns the latest VICE stories with no parameters. Each item has its title and URL, plus summary, author, publication time and lead image when the outlet provides them. Pass an item URL to `vice-article` to read the story.", "operationId": "vice-news", "produces": [ "application/json" @@ -474837,7 +490560,7 @@ }, "/vox/article": { "get": { - "description": "Returns public Vox article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one Vox article by its canonical `url`: title, description, authors, section, published and updated times, lead image and the body `paragraphs`. Only public content is returned; a subscriber-only or blocked article comes back as an upstream error rather than a partial body.", "operationId": "vox-article", "parameters": [ { @@ -474891,7 +490614,7 @@ }, "/vox/author": { "get": { - "description": "Returns a Vox author's byline metadata, biography, and recent articles from a canonical author URL.", + "description": "Returns a Vox author profile from their canonical `url` (`www.vox.com/authors/`, required). The response has the name, `job_title` from the masthead (such as Senior Politics Correspondent), `bio` and recent articles, each with title, URL, excerpt, category and an ISO-8601 `published_at`.", "operationId": "vox-author", "parameters": [ { @@ -474945,7 +490668,7 @@ }, "/vox/headlines": { "get": { - "description": "Returns fresh headlines from one public Vox section.", + "description": "Lists the current Vox headlines for one section. `section` is required and takes `politics`, `culture`, `policy`, `world`, `money`, `technology`, `science-and-health`, `climate`, `future-perfect` or `explainers`. Each item has its title, URL, summary, author and publication time.", "operationId": "vox-headlines", "parameters": [ { @@ -475005,7 +490728,7 @@ }, "/vox/news": { "get": { - "description": "Returns fresh public Vox stories from its RSS feed.", + "description": "Returns the latest Vox top stories with no parameters. Each item has its title, URL, summary, author and publication time. Item URLs can be passed to `vox-article` for the body.", "operationId": "vox-news", "produces": [ "application/json" @@ -475037,7 +490760,7 @@ }, "/vox/sections": { "get": { - "description": "Returns the public Vox editorial section inventory.", + "description": "Lists the Vox editorial sections accepted by `vox-headlines`, each with a stable `slug`, a display `name` and the section `url`. Use the slugs as the `section` value. Takes no parameters.", "operationId": "vox-sections", "produces": [ "application/json" @@ -475111,7 +490834,7 @@ }, "/vrbo/properties/{property_id}": { "get": { - "description": "Reads public traveler-facing property details, grouped amenities, photos, content sections, FAQs, and aggregate rating. Tries request profiles in order; each attempt and retry uses a fresh proxy connection.", + "description": "Reads public traveler-facing property details, grouped amenities, photos, content sections, FAQs, and aggregate rating.", "operationId": "vrbo-property", "parameters": [ { @@ -475159,7 +490882,7 @@ }, "/vrbo/properties/{property_id}/rate-calendar": { "get": { - "description": "Returns public calendar dates, nightly display prices when provided, availability, check-in/out validity, and stay constraints. Resolves the property's GraphQL product ID from the server-rendered page and uses a fresh proxy connection for every request attempt.", + "description": "Returns public calendar dates, nightly display prices when provided, availability, check-in/out validity, and stay constraints.", "operationId": "vrbo-rate-calendar", "parameters": [ { @@ -475207,7 +490930,7 @@ }, "/vrbo/properties/{property_id}/reviews": { "get": { - "description": "Returns one page of public traveler reviews, aggregate count, and current sort choices. Pagination and sort values follow the public reviews query; each property-page and GraphQL request uses a fresh proxy connection.", + "description": "Returns one page of public traveler reviews, aggregate count, and current sort choices. Pagination and sort values follow the public reviews query.", "operationId": "vrbo-property-reviews", "parameters": [ { @@ -475564,7 +491287,7 @@ }, "/walesonline/headlines": { "get": { - "description": "Returns fresh headlines from one public WalesOnline section. Photo galleries are omitted because they have no readable article body.", + "description": "Lists recent WalesOnline headlines for one section, up to about 25 items. `section` is required and takes a slug such as `news/wales-news`, `news/politics`, `sport/rugby`, `sport/football` or `whats-on`; `walesonline-sections` lists all 37. Photo galleries are omitted, and an invalid value returns a 400 error.", "operationId": "walesonline-headlines", "parameters": [ { @@ -475695,7 +491418,7 @@ }, "/walesonline/sections": { "get": { - "description": "Returns the public WalesOnline editorial section inventory used by walesonline-headlines.", + "description": "Lists the 37 WalesOnline sections accepted by `walesonline-headlines`, with nested slugs such as `news/wales-news`, `sport/rugby` and `whats-on/food-drink-news`. Each has a `slug`, a display `name` and a feed `url`. Takes no parameters.", "operationId": "walesonline-sections", "produces": [ "application/json" @@ -475794,7 +491517,7 @@ "consumes": [ "application/json" ], - "description": "Returns a normalized Walmart product: price, availability, brand, images, rating, seller, description, highlights, specifications, and variants. Credential-free public Walmart data, rendered from the product page through proxied browser renderers.", + "description": "Returns a Walmart product: price, availability, brand, images, rating, seller, description, highlights, specifications, and variants.", "operationId": "walmart-product", "parameters": [ { @@ -475857,7 +491580,7 @@ "consumes": [ "application/json" ], - "description": "Returns the reviews snapshot embedded in a Walmart product page: average rating, total review count, the per-star rating breakdown, the recommended percentage, the top positive and top negative review, and a sample of recent reviews. This is a single on-page snapshot, not a full paginated feed. A product that exists but has no reviews returns zero counts and an empty reviews list. Credential-free public Walmart data, rendered from the product page through proxied browser renderers.", + "description": "Returns the reviews snapshot embedded in a Walmart product page: average rating, total review count, the per-star rating breakdown, the recommended percentage, the top positive and top negative review, and a sample of recent reviews. This is a single on-page snapshot, not a full paginated feed. A product that exists but has no reviews returns zero counts and an empty reviews list.", "operationId": "walmart-product-reviews", "parameters": [ { @@ -475920,7 +491643,7 @@ "consumes": [ "application/json" ], - "description": "Returns Walmart search results: item id, title, brand, price, image, availability, seller, and rating per product. Credential-free public Walmart data, rendered from the search page through proxied browser renderers.", + "description": "Returns Walmart search results: item id, title, brand, price, image, availability, seller, and rating per product.", "operationId": "walmart-search", "parameters": [ { @@ -476199,7 +491922,7 @@ }, "/wapo/news": { "get": { - "description": "Returns The Washington Post's current public news-sitemap feed with titles, canonical URLs, publication times, and last-modified times.", + "description": "Returns the current Washington Post news list with no parameters. Each item has its `title`, canonical `url`, `published_at` and `last_modified`, the last when the publisher supplies it. Items do not include summaries or authors.", "operationId": "wapo-news", "produces": [ "application/json" @@ -476237,7 +491960,7 @@ }, "/wapo/sections": { "get": { - "description": "Lists every Washington Post section accepted by /wapo/headlines, with its path slug, display name, and landing-page URL.", + "description": "Lists the Washington Post sections accepted by `wapo-headlines`. Each has a path `slug` such as `politics` or `business/technology`, a display `name` and a landing-page `url`. Use it to find valid `section` values. Takes no parameters.", "operationId": "wapo-sections", "produces": [ "application/json" @@ -476354,7 +492077,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Wayfair category page's product grid, with real page-based pagination. category accepts a bare Wayfair category id (\"478390\"), a \"c\"-prefixed id (\"c478390\"), a category slug (\"office-chairs-c478390\"), or a full category URL copied from wayfair.com. The trailing category id is resolved to Wayfair's current canonical URL through its published sitemap. Returns normalized products with name, brand, pricing, and image.", + "description": "Returns a Wayfair category page's product grid, with real page-based pagination. category accepts a bare Wayfair category id (\"478390\"), a \"c\"-prefixed id (\"c478390\"), a category slug (\"office-chairs-c478390\"), or a full category URL copied from wayfair.com. Returns products with name, brand, pricing, and image.", "operationId": "wayfair-category", "parameters": [ { @@ -476484,7 +492207,7 @@ }, "/wccftech/article": { "get": { - "description": "Returns metadata and body paragraphs for a canonical public Wccftech news, review, how-to, roundup, company, or best-of article URL.", + "description": "Returns one Wccftech article by its canonical `url` on `wccftech.com` or `www.wccftech.com`, covering news, reviews, how-tos, roundups and best-of pages. The response has the title, description, authors, section, times, lead image and body `paragraphs` where the site serves them, plus a `paywalled` flag.", "operationId": "wccftech-article", "parameters": [ { @@ -476538,7 +492261,7 @@ }, "/wccftech/author": { "get": { - "description": "Returns one author's public profile and recent article cards. Identify the author by slug or canonical /author// URL.", + "description": "Returns a Wccftech author profile with name, role, bio, photo and recent article cards (title, URL, summary, image, publication time). Identify the author with `slug` (such as `sarfraz`) or a canonical `/author//` `url`; one of the two is required.", "operationId": "wccftech-author", "parameters": [ { @@ -476684,7 +492407,7 @@ }, "/wccftech/sections": { "get": { - "description": "Lists all non-empty public category and topic sections, plus the Reviews, Videos, How To, and Roundups archives. Use a returned slug with wccftech-headlines; taxonomy values are refreshed from the public WordPress REST API.", + "description": "Lists all non-empty public category and topic sections, plus the Reviews, Videos, How To, and Roundups archives. Use a returned slug with wccftech-headlines.", "operationId": "wccftech-sections", "produces": [ "application/json" @@ -476716,7 +492439,7 @@ }, "/web/capabilities": { "get": { - "description": "Return supported search/map modes, effective limits, and published credit unit prices.", + "description": "Returns the account's effective web retrieval limits and options: `available_operations`, `crawl_available`, `research_available`, `search_max_results`, `map_max_urls`, `crawl_max_pages`, `max_active_jobs`, and the accepted `render_modes`, `sitemap_modes` and `query_policies`. The operations list is empty while retrieval setup is incomplete.", "operationId": "web-capabilities", "produces": [ "application/json" @@ -477090,7 +492813,7 @@ "consumes": [ "application/json" ], - "description": "Discover a bounded approximate URL inventory using robots, sitemaps, and the seed page.", + "description": "Maps a public site into a bounded, approximate URL list from its sitemaps and the seed page's links. The first request needs `url`; options are `scope`, `sitemap` (`include`, `only`, `skip`), `max_urls` (1 to 5000, default 1000) and `page_size` (1 to 500, default 100). Continue with `cursor`, optionally with `page_size`; the first page's snapshot lasts 30 minutes.", "operationId": "web-map", "parameters": [ { @@ -477184,7 +492907,7 @@ "consumes": [ "application/json" ], - "description": "Fetches a single public URL and returns clean content in the requested formats (markdown, html, raw_html, links, metadata). The request body IS the ScrapeOption object itself — e.g. {\"url\": \"https://example.com\"} — do not wrap it in an extra key. With render=auto the request starts as a fast HTTP fetch and escalates to a real browser when the page is blocked or rendered with JavaScript; backend only pins a specific headless-browser engine for the browser tier and is not a render mode. only_main_content (default true) strips navigation, headers, footers and other boilerplate before conversion. Only public pages are supported; respect each site's terms of use and robots directives. A handful of popular sites (Amazon, Reddit, Yelp, LinkedIn, and others) already have a dedicated, more reliable endpoint elsewhere in this API — a failed scrape against one of them names it. A Reddit URL that maps onto a dedicated Reddit endpoint (listings, search, comment threads, user and domain pages) is answered by that endpoint instead, and its response is returned as-is in data with an X-Routed-To header; send dedicated=false to always get the scraped page.", + "description": "Fetches a single public URL and returns clean content in the requested formats (markdown, html, raw_html, links, metadata). The request body IS the ScrapeOption object itself — e.g. {\"url\": \"https://example.com\"} — do not wrap it in an extra key. With render=auto the request starts as a fast HTTP fetch and escalates to a real browser when the page is blocked or rendered with JavaScript. only_main_content (default true) strips navigation, headers, footers and other boilerplate before conversion. Only public pages are supported; respect each site's terms of use and robots directives. A handful of popular sites (Amazon, Reddit, Yelp, LinkedIn, and others) already have a dedicated, more reliable endpoint elsewhere in this API — a failed scrape against one of them names it. A Reddit URL that maps onto a dedicated Reddit endpoint (listings, search, comment threads, user and domain pages) is answered by that endpoint instead, and its response is returned as-is in data with an X-Routed-To header; send dedicated=false to always get the scraped page.", "operationId": "web-scrape", "parameters": [ { @@ -477342,7 +493065,7 @@ "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. Also returns `unmatched_evidence` (when present) — third-party script/stylesheet host domains and a `` value the detector saw on the page but doesn't yet have a named signature for; useful for spotting a vendor worth requesting coverage for. `is_infrastructure` flags a URL whose host looks like backend CDN/DNS/cloud-vendor infrastructure rather than a real, human-navigable website. `reachable` is false only when the target could not be fetched at all (even after an automatic www./plain-HTTP retry) — `technologies` may still be partially populated from DNS-based signals alone in that case, and `failure_reason` explains what happened.", + "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 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` (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. Also returns `unmatched_evidence` (when present) — third-party script/stylesheet host domains and a `` value the detector saw on the page but doesn't yet have a named signature for; useful for spotting a vendor worth requesting coverage for. `is_infrastructure` flags a URL whose host looks like backend CDN/DNS/cloud-vendor infrastructure rather than a real, human-navigable website. `reachable` is false only when the target could not be fetched at all (even after an automatic www./plain-HTTP retry) — `technologies` may still be partially populated from DNS-based signals alone in that case, and `failure_reason` explains what happened.", "operationId": "web-techstack", "parameters": [ { @@ -477930,7 +493653,7 @@ "consumes": [ "application/json" ], - "description": "Returns one restaurant's own priced, offered item list -- real local pricing (including full combo bundle prices, which GET /wendys/item deliberately does not compute, since a combo's own price varies by what's chosen in each slot) and any store-specific promotional items, rather than Wendy's own generic/average national-menu listing (GET /wendys/menu, /wendys/item). Found via static analysis of Wendy's official Android app and confirmed credential-free: a cold, cookie-less request with just a store id returns real data, no session or account required.", + "description": "Returns one restaurant's own priced, offered item list -- real local pricing (including full combo bundle prices, which GET /wendys/item deliberately does not compute, since a combo's own price varies by what's chosen in each slot) and any store-specific promotional items, rather than Wendy's own generic/average national-menu listing (GET /wendys/menu, /wendys/item). A request with just a store id returns real data, no session or account required.", "operationId": "wendys-store-menu", "parameters": [ { @@ -477993,7 +493716,7 @@ "consumes": [ "application/json" ], - "description": "Returns one restaurant's available mobile-order arrival (\"check-in\") time slots -- the times a caller can schedule a mobile pickup order for, distinct from the restaurant's general open/close hours (GET /wendys/restaurant, /wendys/store). Found via static analysis of Wendy's official Android app and confirmed credential-free: a cold, cookie-less request with just a store id returns real available slots, no session or account required.", + "description": "Returns one restaurant's available mobile-order arrival (\"check-in\") time slots -- the times a caller can schedule a mobile pickup order for, distinct from the restaurant's general open/close hours (GET /wendys/restaurant, /wendys/store). A request with just a store id returns real available slots, no session or account required.", "operationId": "wendys-time-slots", "parameters": [ { @@ -478138,7 +493861,7 @@ "consumes": [ "application/json" ], - "description": "Returns one Whataburger store: postal address, coordinates, phone, published week of opening hours, the restaurant services (curbside, delivery) Whataburger lists for it, and a per-channel hours breakdown (dine-in, drive-thru, curbside, delivery) where the channel's hours genuinely differ from the store's top-level hours. Store paths come from GET /whataburger/sitemap -- a store's canonical, curbside and delivery page paths all describe the same physical restaurant and return the same address; the response's own path field always reports the canonical page. Passing a state or city directory path returns a 404 rather than a hollow record. Note Whataburger's ordering/menu site returns no usable response for automated requests, so there is no credential-free menu source and this family is a locator only.", + "description": "Returns one Whataburger store: postal address, coordinates, phone, published week of opening hours, the restaurant services (curbside, delivery) Whataburger lists for it, and a per-channel hours breakdown (dine-in, drive-thru, curbside, delivery) where the channel's hours genuinely differ from the store's top-level hours. Store paths come from GET /whataburger/sitemap -- a store's canonical, curbside and delivery page paths all describe the same physical restaurant and return the same address; the response's own path field always reports the canonical page. Passing a state or city directory path returns a 404 rather than a hollow record. Note there is no menu source, so this family is a locator only.", "operationId": "whataburger-store", "parameters": [ { @@ -478201,7 +493924,7 @@ "consumes": [ "application/json" ], - "description": "Returns the live and upcoming shows currently listed under a Whatnot category: seller, title, status, start time, thumbnail, and tags. Public data sourced from Whatnot's own GraphQL API.", + "description": "Returns the live and upcoming shows currently listed under a Whatnot category: seller, title, status, start time, thumbnail, and tags.", "operationId": "whatnot-browse", "parameters": [ { @@ -478264,7 +493987,7 @@ "consumes": [ "application/json" ], - "description": "Returns Whatnot's full top-level category list (e.g. \"Trading Card Games\", \"Sneakers & Streetwear\"). Each entry's slug is usable directly with /whatnot/browse's category filter. Public data sourced from Whatnot's own GraphQL API.", + "description": "Returns Whatnot's full top-level category list (e.g. \"Trading Card Games\", \"Sneakers & Streetwear\"). Each entry's slug is usable directly with /whatnot/browse's category filter.", "operationId": "whatnot-categories", "produces": [ "application/json" @@ -478305,7 +494028,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Whatnot live show's current shop feed: every product, auction, and giveaway listing currently visible in the show, each with its seller's rating. Public data sourced from Whatnot's own GraphQL API.", + "description": "Returns a Whatnot live show's current shop feed: every product, auction, and giveaway listing currently visible in the show, each with its seller's rating.", "operationId": "whatnot-live", "parameters": [ { @@ -479040,7 +494763,7 @@ }, "/wired/news": { "get": { - "description": "Returns WIRED's current public top-stories RSS feed: each story's title, canonical URL, summary, author, publication time, and lead image.", + "description": "Returns WIRED's current top stories with no parameters. Each item has its title, canonical URL, summary, author, publication time and lead image, plus a type label for the item.", "operationId": "wired-news", "produces": [ "application/json" @@ -479287,7 +495010,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Wish product's normalized customer reviews. id is taken from a search result's product_id field or a product page's URL. A product with zero reviews returns a normal, empty result rather than an error. A caller wanting more reviews should re-request with a larger count -- this endpoint does not support an offset/cursor parameter, since the upstream source does not support one.", + "description": "Returns a Wish product's customer reviews. id is taken from a search result's product_id field or a product page's URL. A product with zero reviews returns a normal, empty result rather than an error. A caller wanting more reviews should re-request with a larger count -- this endpoint does not support an offset/cursor parameter.", "operationId": "wish-product-reviews", "parameters": [ { @@ -479357,7 +495080,7 @@ "consumes": [ "application/json" ], - "description": "Searches Wish's product catalog by keyword, with real offset-based pagination. Returns normalized products with price, currency, rating, review count, and merchant id. A query with no matches returns a normal, empty result rather than an error.", + "description": "Searches Wish's product catalog by keyword, with real offset-based pagination. Returns products with price, currency, rating, review count, and merchant id. A query with no matches returns a normal, empty result rather than an error.", "operationId": "wish-search", "parameters": [ { @@ -480256,7 +495979,7 @@ "consumes": [ "application/json" ], - "description": "Returns public profile details for an X username, including visible counts and profile media when available.", + "description": "Returns the public profile of an X account by `username`, with or without a leading `@`: name, description, location, avatar and banner images, creation date, verification flags, and `metrics` for followers, following, posts, likes, listed and media. `verified_type` and `affiliate_label` appear only when the account has them. Returns 404 when the profile is not public.", "operationId": "x-profile", "parameters": [ { @@ -480697,7 +496420,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of a named, editorially curated Xbox collection (e.g. Top Free Games, Top Paid Games, Optimized for Series X|S, Xbox Play Anywhere) -- the same mechanism that powers xbox.com's own marketing hub pages. Pages forward via an opaque cursor: pass the previous response's next_cursor to fetch the next page. This is a partial, non-exhaustive list of known collection ids -- the upstream exposes no discovery endpoint for the full set. Credential-free public Xbox data, read directly from the store's own named-channel API.", + "description": "Returns one page of a named, editorially curated Xbox collection (e.g. Top Free Games, Top Paid Games, Optimized for Series X|S, Xbox Play Anywhere). Pages forward via an opaque cursor: pass the previous response's next_cursor to fetch the next page. This is a partial, non-exhaustive list of known collection ids -- there is no discovery endpoint for the full set.", "operationId": "xbox-collection", "parameters": [ { @@ -480767,7 +496490,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Xbox catalog details for a single product id: title, description, publisher, categories, supported platforms, content rating, price, preorder status, media (box art, poster, hero art), trailers, and which subscriptions (e.g. Game Pass) include it. Credential-free public Xbox data, read directly from the store's own batch product-detail API.", + "description": "Returns Xbox catalog details for a single product id: title, description, publisher, categories, supported platforms, content rating, price, preorder status, media (box art, poster, hero art), trailers, and which subscriptions (e.g. Game Pass) include it.", "operationId": "xbox-game", "parameters": [ { @@ -480913,7 +496636,7 @@ "consumes": [ "application/json" ], - "description": "Returns one page of Xbox search results for a keyword, scoped to a category (games, add-ons, or hardware) and optionally sorted/filtered with the same parameters as /xbox/browse. Cursor-paginated. Credential-free public Xbox data, read directly from the store's own per-category search API.", + "description": "Returns one page of Xbox search results for a keyword, scoped to a category (games, add-ons, or hardware) and optionally sorted/filtered with the same parameters as /xbox/browse. Cursor-paginated.", "operationId": "xbox-search", "parameters": [ { @@ -481251,7 +496974,7 @@ }, "/xda/article": { "get": { - "description": "Returns public XDA article metadata and body paragraphs from a canonical article URL.", + "description": "Returns one XDA article by its `url`, which must be a `www.xda-developers.com//` link; section hubs, author pages and the bare `xda-developers.com` host are rejected. The response has the title, description, times, section, authors, lead image and body `paragraphs`. `paywalled` is set to `true` only if the page declares the article not free.", "operationId": "xda-article", "parameters": [ { @@ -481311,7 +497034,7 @@ }, "/xda/author": { "get": { - "description": "Returns an XDA author's byline metadata, biography, social links, and recent articles from a canonical author URL.", + "description": "Returns an XDA author profile from their `https://www.xda-developers.com/author//` `url` (required; paginated author URLs are rejected). The response has the name, title, biography, image, social links and the profile's latest articles, about 20, with no older pages.", "operationId": "xda-author", "parameters": [ { @@ -481365,7 +497088,7 @@ }, "/xda/headlines": { "get": { - "description": "Returns fresh headlines from one public XDA RSS section.", + "description": "Lists 10 recent XDA items for one section. `section` is required and takes a slug such as `news`, `reviews`, `buying-guides`, `gpu`, `laptops`, `windows`, `linux-hub` or `ai-tools`; `xda-sections` lists them all. Dormant sections such as `editorials` or `beats` return old items. Other values are rejected.", "operationId": "xda-headlines", "parameters": [ { @@ -481483,7 +497206,7 @@ }, "/xda/news": { "get": { - "description": "Returns fresh XDA top stories from its public RSS feed.", + "description": "Returns about 10 of the latest XDA top stories with no parameters. Each item has its title, canonical URL, summary, publication time, author names (co-authors joined with a comma) and lead image.", "operationId": "xda-news", "produces": [ "application/json" @@ -481521,7 +497244,7 @@ }, "/xda/sections": { "get": { - "description": "Returns the public XDA RSS section inventory used by the headlines endpoint.", + "description": "Lists the XDA sections accepted by `xda-headlines`, including `news`, `reviews`, `buying-guides`, `gpu`, `laptops`, `gaming-handhelds`, `windows`, `linux-hub` and `ai-tools`. Each has a `slug`, a display `name` and a feed `url`. Takes no parameters.", "operationId": "xda-sections", "produces": [ "application/json" @@ -481958,7 +497681,7 @@ "consumes": [ "application/json" ], - "description": "Lists global Yahoo Finance calendar types supported by this integration.", + "description": "Lists the Yahoo Finance calendar types available through the API: `earnings`, `ipo`, `economic-events` and `splits`. The list is static. Takes no parameters.", "operationId": "yahoo-finance-calendars", "produces": [ "application/json" @@ -481993,7 +497716,7 @@ "consumes": [ "application/json" ], - "description": "Returns global Yahoo Finance calendar rows for earnings, IPOs, economic events, or splits.", + "description": "Returns Yahoo Finance calendar rows for the path `type`: `earnings`, `ipo`, `economic-events` or `splits`. Narrow with `start` and `end` (YYYY-MM-DD, RFC3339 or Unix seconds) and page with `limit` (max 100) and `offset`. For `earnings` only, `market_cap` sets a minimum and `filter_most_active` (default true) filters. The response echoes the window and paging with the `rows`.", "operationId": "yahoo-finance-calendar", "parameters": [ { @@ -482098,7 +497821,7 @@ "consumes": [ "application/json" ], - "description": "Returns historical price data for up to 25 symbols.", + "description": "Returns historical prices for up to 25 symbols in one POST. The body requires `symbols`; `period`, `start`, `end`, `interval`, `include_prepost` and `include_actions` are optional. Each result is one symbol, with price points (open, high, low, close, adjusted close, volume) and dividend, split and capital-gain events, or an `error` for that symbol.", "operationId": "yahoo-finance-download", "parameters": [ { @@ -482162,7 +497885,7 @@ "consumes": [ "application/json" ], - "description": "Lists Yahoo Finance industry keys that can be queried with the industry endpoint.", + "description": "Lists the Yahoo Finance industries, each with a `key` and a `name`. It takes no parameters. Pass a returned `key` to `/yahoo-finance/industries/{key}` for that industry's detail.", "operationId": "yahoo-finance-industries", "produces": [ "application/json" @@ -482197,7 +497920,7 @@ "consumes": [ "application/json" ], - "description": "Returns overview, sector linkage, top companies, growth companies, and research reports for an industry key.", + "description": "Returns Yahoo Finance detail for one industry `key` such as `semiconductors`: name, overview, its parent sector (`sector_key`, `sector_name`), top companies, top performing companies, top growth companies and research reports. Valid keys come from `/yahoo-finance/industries`.", "operationId": "yahoo-finance-industry", "parameters": [ { @@ -482260,7 +497983,7 @@ "consumes": [ "application/json" ], - "description": "Returns Yahoo Finance instrument matches for a query, optionally filtered by instrument type.", + "description": "Looks up instruments on Yahoo Finance by ticker symbol or company name, optionally filtered to one type: equity, ETF, mutual fund, index, future, currency or cryptocurrency. Page with `count` and `start`. Returns the matching instruments, each with its symbol, short name, quote type and exchange, and the total.", "operationId": "yahoo-finance-lookup", "parameters": [ { @@ -482351,7 +498074,7 @@ "consumes": [ "application/json" ], - "description": "Returns Yahoo Finance open/close status for a market such as US.", + "description": "Returns whether a Yahoo Finance market is open or closed, for the path `market` such as `US`. The response has `market` and a `status` object with the market id, name and its current open or closed state.", "operationId": "yahoo-finance-market-status", "parameters": [ { @@ -482414,7 +498137,7 @@ "consumes": [ "application/json" ], - "description": "Returns Yahoo Finance market summary rows for a market such as US.", + "description": "Returns the market summary rows for a Yahoo Finance `market` such as `US`, as a `summary` list of instruments, each with fields such as `symbol` and `shortName`.", "operationId": "yahoo-finance-market-summary", "parameters": [ { @@ -482477,7 +498200,7 @@ "consumes": [ "application/json" ], - "description": "Runs a constrained Yahoo Finance custom screener query using Yahoo's public screener JSON shape.", + "description": "Runs a custom Yahoo Finance screen from a JSON body. `query` is a tree of `operator` and `operands`: combine conditions with `AND` or `OR`, and compare a field to a value with operators such as `EQ` or `GT`. Screen equities (default), ETFs or mutual funds with `quote_type`, and page and sort with `count`, `offset`, `sort_field` and `sort_asc`. Returns the matching quotes and the total.", "operationId": "yahoo-finance-screener-custom", "parameters": [ { @@ -482541,7 +498264,7 @@ "consumes": [ "application/json" ], - "description": "Runs a predefined Yahoo Finance screener such as day_gainers or most_actives.", + "description": "Runs a predefined Yahoo Finance screener by `id`, such as `day_gainers` or `most_actives`. `count` and `offset` page the results; `sort_field` and `sort_asc` change the order. The response has the screener `title`, `description`, `total`, `meta` and the matching `quotes`. Valid ids come from `/yahoo-finance/screeners`.", "operationId": "yahoo-finance-screener", "parameters": [ { @@ -482628,7 +498351,7 @@ "consumes": [ "application/json" ], - "description": "Lists the predefined screeners supported by the Yahoo Finance integration.", + "description": "Lists the predefined Yahoo Finance screeners that can be run, such as `day_gainers`, `day_losers` and `most_actives`, as a `screeners` list of ids. It takes no parameters. Pass an id to `/yahoo-finance/screener/{id}`.", "operationId": "yahoo-finance-screeners", "produces": [ "application/json" @@ -482663,7 +498386,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Yahoo Finance quotes, news, lists, and optional research reports for a query.", + "description": "Searches Yahoo Finance for the required `q`, a ticker symbol or company name, and returns matching `quotes`, `news` and `lists`, plus `research` reports when `include_research` is set and Yahoo returns them. `quotes_count`, `news_count` and `lists_count` set how many of each; `enable_fuzzy_query` turns on fuzzy matching.", "operationId": "yahoo-finance-search", "parameters": [ { @@ -482756,7 +498479,7 @@ "consumes": [ "application/json" ], - "description": "Lists Yahoo Finance sector keys that can be queried with the sector endpoint.", + "description": "Lists the Yahoo Finance sectors, each with a `key` and a `name`. It takes no parameters. Use a returned `key` with `/yahoo-finance/sectors/{key}` to get that sector's companies, funds and industries.", "operationId": "yahoo-finance-sectors", "produces": [ "application/json" @@ -482791,7 +498514,7 @@ "consumes": [ "application/json" ], - "description": "Returns overview, top companies, ETFs, mutual funds, industries, and research reports for a sector key.", + "description": "Returns Yahoo Finance detail for one sector `key` such as `technology`: name, overview, top companies, top ETFs, top mutual funds, the sector's industries and research reports. Valid keys come from `/yahoo-finance/sectors`.", "operationId": "yahoo-finance-sector", "parameters": [ { @@ -482854,7 +498577,7 @@ "consumes": [ "application/json" ], - "description": "Returns dividends, splits, and capital gains for a symbol.", + "description": "Returns the corporate actions for a Yahoo Finance `symbol` such as `AAPL`: `dividends`, `splits` and `capital_gains`. Dividend and capital-gain entries carry a Unix timestamp and an amount; split entries carry a ratio such as `4:1`.", "operationId": "yahoo-finance-ticker-actions", "parameters": [ { @@ -482917,7 +498640,7 @@ "consumes": [ "application/json" ], - "description": "Returns recommendations, upgrades/downgrades, price targets, and estimate modules where Yahoo provides them.", + "description": "Returns analyst data for a Yahoo Finance `symbol` such as `AAPL`, as `modules` keyed by Yahoo module name: recommendation trend, upgrade and downgrade history, price targets and estimates, where Yahoo provides them.", "operationId": "yahoo-finance-ticker-analysts", "parameters": [ { @@ -482980,7 +498703,7 @@ "consumes": [ "application/json" ], - "description": "Returns Yahoo Finance calendar events for a symbol.", + "description": "Returns the calendar events Yahoo Finance holds for a `symbol` such as `AAPL`, under `modules.calendarEvents`. The response echoes the `symbol`, and the symbol is the only input.", "operationId": "yahoo-finance-ticker-calendar", "parameters": [ { @@ -483043,7 +498766,7 @@ "consumes": [ "application/json" ], - "description": "Returns capital gain events for ETF or mutual fund symbols when Yahoo provides them.", + "description": "Returns capital gain events for a Yahoo Finance `symbol`, mainly ETFs and mutual funds such as `SPY`, each with a Unix timestamp and an amount, when Yahoo provides them. The response object also has `dividends` and `splits` fields.", "operationId": "yahoo-finance-ticker-capital-gains", "parameters": [ { @@ -483106,7 +498829,7 @@ "consumes": [ "application/json" ], - "description": "Returns dividend events for a symbol.", + "description": "Returns the dividend events for a Yahoo Finance `symbol` such as `AAPL`, each with a Unix timestamp and an amount. The response object also has `splits` and `capital_gains` fields.", "operationId": "yahoo-finance-ticker-dividends", "parameters": [ { @@ -483169,7 +498892,7 @@ "consumes": [ "application/json" ], - "description": "Returns Yahoo Finance earnings modules for a symbol.", + "description": "Returns the Yahoo Finance earnings modules for a `symbol` such as `AAPL`, including `earnings` and `earningsTrend`, under `modules`. The response echoes the `symbol`, and the symbol is the only input.", "operationId": "yahoo-finance-ticker-earnings", "parameters": [ { @@ -483232,7 +498955,7 @@ "consumes": [ "application/json" ], - "description": "Returns standalone earnings-date rows from Yahoo Finance calendar HTML when Yahoo serves the table.", + "description": "Returns earnings-date rows for a Yahoo Finance `symbol`, taken from Yahoo's earnings calendar table. `limit` (max 100) and `offset` page the rows. Each row is keyed by the table's column names, such as `Earnings Date`. Returns an upstream error when Yahoo does not serve the table.", "operationId": "yahoo-finance-ticker-earnings-dates", "parameters": [ { @@ -483307,7 +499030,7 @@ "consumes": [ "application/json" ], - "description": "Returns annual, quarterly, or supported trailing income, balance sheet, or cash flow statement data.", + "description": "Returns financial statement data for a Yahoo Finance `symbol`. `statement` picks `income`, `balance-sheet` or `cash-flow` (aliases `income-statement`, `balance` and `cashflow` also work) and `period` picks `annual`, `quarterly` or `trailing`; trailing is supported for income and cash flow only. The response echoes `statement` and `period`, with the data under `modules`.", "operationId": "yahoo-finance-ticker-financials", "parameters": [ { @@ -483395,7 +499118,7 @@ "consumes": [ "application/json" ], - "description": "Returns fund profile, top holdings, equity/bond holdings, and sector weighting modules for ETF and mutual fund symbols.", + "description": "Returns fund data for an ETF or mutual fund `symbol` such as `SPY`, under `modules`: the fund profile, top holdings, equity holdings, bond holdings and sector weightings.", "operationId": "yahoo-finance-ticker-funds", "parameters": [ { @@ -483458,7 +499181,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized OHLCV points for a symbol. Use either period or start/end.", + "description": "Returns price points for a Yahoo Finance `symbol`: open, high, low, close, adjusted close and volume with timestamps. Use `period` (default `1mo`, up to `max`) or `start` and `end`, which override it. `interval` sets the candle size (default `1d`; intraday covers recent ranges only). `include_actions` adds dividend, split and capital-gain `events`.", "operationId": "yahoo-finance-ticker-history", "parameters": [ { @@ -483581,7 +499304,7 @@ "consumes": [ "application/json" ], - "description": "Returns Yahoo Finance chart metadata for a symbol.", + "description": "Returns the chart metadata Yahoo Finance holds for a `symbol` such as `AAPL`, in `meta`, for example `currency` and `exchangeName`. The symbol is the only input.", "operationId": "yahoo-finance-ticker-history-metadata", "parameters": [ { @@ -483644,7 +499367,7 @@ "consumes": [ "application/json" ], - "description": "Returns major, institutional, fund, and insider holder modules for a symbol.", + "description": "Returns holder data for a Yahoo Finance `symbol` such as `AAPL`, under `modules`: the major holders breakdown (`majorHoldersBreakdown`), institutional ownership, and the fund and insider holder modules.", "operationId": "yahoo-finance-ticker-holders", "parameters": [ { @@ -483707,7 +499430,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized profile, quote type, price, statistics, and summary modules for a symbol.", + "description": "Returns profile and quote information for a Yahoo Finance `symbol` such as `AAPL`, under `modules`: the profile, quote type (`quoteType`), price, statistics and summary modules. The symbol is the only input.", "operationId": "yahoo-finance-ticker-info", "parameters": [ { @@ -483770,7 +499493,7 @@ "consumes": [ "application/json" ], - "description": "Returns the experimental yfinance-compatible ISIN lookup result for a symbol.", + "description": "Returns the ISIN for a Yahoo Finance `symbol`, for example `US0378331005` for `AAPL`. The lookup is experimental, and the `isin` field is `-` when none can be found.", "operationId": "yahoo-finance-ticker-isin", "parameters": [ { @@ -483833,7 +499556,7 @@ "consumes": [ "application/json" ], - "description": "Returns Yahoo Finance news search results for a symbol.", + "description": "Returns the Yahoo Finance news stream for the ticker in the `symbol` path parameter, such as `AAPL`. `count` limits the items (default 8, max 250) and `tab` picks `news` (default), `all` or `press_releases`. Stories have title, provider, dates and URLs. A valid empty stream returns `news: []`.", "operationId": "yahoo-finance-ticker-news", "parameters": [ { @@ -483908,7 +499631,7 @@ "consumes": [ "application/json" ], - "description": "Returns option expiration dates and the current option chain for a symbol.", + "description": "Returns the option expiration dates (`expiration_dates`, as Unix timestamps) and the current option chain for a Yahoo Finance `symbol` such as `AAPL`. Each `options` entry has an `expiration_date` with its `calls` and `puts`; `underlying` describes the underlying security.", "operationId": "yahoo-finance-ticker-options", "parameters": [ { @@ -483971,7 +499694,7 @@ "consumes": [ "application/json" ], - "description": "Returns calls and puts for a specific Unix expiration timestamp.", + "description": "Returns the calls and puts for one expiration of a Yahoo Finance `symbol`. `expiration` is a Unix timestamp, and the options endpoint lists the available ones in `expiration_dates`. The result is an `options` entry with `expiration_date`, `calls` and `puts`.", "operationId": "yahoo-finance-ticker-options-expiration", "parameters": [ { @@ -484042,7 +499765,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized fast quote fields for one Yahoo Finance symbol.", + "description": "Returns fast quote fields for one Yahoo Finance `symbol` such as `AAPL`, for example `regularMarketPrice`, in a `quotes` list alongside the requested `symbols`. The symbol is the only input.", "operationId": "yahoo-finance-ticker-quote", "parameters": [ { @@ -484105,7 +499828,7 @@ "consumes": [ "application/json" ], - "description": "Returns Yahoo Finance SEC filing summaries for a symbol.", + "description": "Returns the SEC filing summaries Yahoo Finance lists for a `symbol` such as `AAPL`, under `modules.secFilings`. The response echoes the `symbol`, and the symbol is the only input.", "operationId": "yahoo-finance-ticker-sec-filings", "parameters": [ { @@ -484168,7 +499891,7 @@ "consumes": [ "application/json" ], - "description": "Returns current share-count fields from Yahoo key statistics.", + "description": "Returns the current share-count fields for a Yahoo Finance `symbol` such as `AAPL`, for example `sharesOutstanding`, in `shares`. The symbol is the only input, and the response echoes it as `symbol`.", "operationId": "yahoo-finance-ticker-shares", "parameters": [ { @@ -484231,7 +499954,7 @@ "consumes": [ "application/json" ], - "description": "Returns historical shares-out rows from Yahoo fundamentals timeseries.", + "description": "Returns the historical shares-outstanding series for a Yahoo Finance `symbol`. `start` and `end` accept YYYY-MM-DD, RFC3339 or Unix seconds; without them the last 18 months are returned. Each point has `timestamp`, `datetime` and `shares_out`.", "operationId": "yahoo-finance-ticker-shares-full", "parameters": [ { @@ -484306,7 +500029,7 @@ "consumes": [ "application/json" ], - "description": "Returns split events for a symbol.", + "description": "Returns the stock split events for a Yahoo Finance `symbol` such as `AAPL`, each with a Unix timestamp and a split ratio such as `4:1`. The response object also has `dividends` and `capital_gains` fields.", "operationId": "yahoo-finance-ticker-splits", "parameters": [ { @@ -484369,7 +500092,7 @@ "consumes": [ "application/json" ], - "description": "Returns ESG and sustainability modules for a symbol.", + "description": "Returns ESG and sustainability scores for a Yahoo Finance `symbol` such as `AAPL`, under `modules.esgScores`. When Yahoo recognises the ticker but has no ESG data, `esgScores` comes back empty instead of an error.", "operationId": "yahoo-finance-ticker-sustainability", "parameters": [ { @@ -484432,7 +500155,7 @@ "consumes": [ "application/json" ], - "description": "Returns the valuation table from the Yahoo Finance key statistics page when Yahoo serves the table.", + "description": "Returns the valuation measures table from Yahoo Finance key statistics for a `symbol` such as `AAPL`, as `headers` and `rows` keyed by column, for example Market Cap. Returns an upstream error when Yahoo does not serve the table.", "operationId": "yahoo-finance-ticker-valuation", "parameters": [ { @@ -484495,7 +500218,7 @@ "consumes": [ "application/json" ], - "description": "Returns trending Yahoo Finance symbols for a region.", + "description": "Returns the symbols Yahoo Finance lists as trending in a `region` such as `US`. `count` sets how many. The response has `region`, `count`, the `symbols`, and the `job_timestamp` and `start_interval` fields.", "operationId": "yahoo-finance-trending", "parameters": [ { @@ -485333,7 +501056,7 @@ "consumes": [ "application/json" ], - "description": "Returns Yahoo News's own search-box autocomplete suggestions for a partial query: a flat list of suggested news search terms.", + "description": "Returns Yahoo News search-box autocomplete suggestions for the required partial query `q`, as a flat list of suggested news search terms in `suggestions`. `count` sets how many (default 10, clamped to 1 to 20). A query with no matches returns an empty array, not an error. The response also has `query` and `fetched_at`.", "operationId": "yahoo-news-suggest", "parameters": [ { @@ -485592,7 +501315,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Yahoo web search results for a query string: title, destination URL, description, and hostname, plus page-based pagination. Yahoo wraps every result link in its own click-tracking redirect; this endpoint always returns the decoded destination URL, never the raw redirect link. Results are fetched from Yahoo's own server-rendered search page.", + "description": "Returns Yahoo web search results for a query string: title, destination URL, description, and hostname, plus page-based pagination. Yahoo wraps every result link in its own click-tracking redirect; this endpoint always returns the decoded destination URL, never the raw redirect link.", "operationId": "yahoo-search", "parameters": [ { @@ -487836,7 +503559,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized organic Yandex web results for a query: title, destination URL, display URL, and snippet, with page-based pagination. Advertisements are not returned. Yandex challenges a portion of requests with a captcha; the service retries across browser profiles and returns 503 if every attempt is challenged, so callers should retry on 503. Results are localized by Yandex to the egress location.", + "description": "Returns organic Yandex web results for a query: title, destination URL, display URL, and snippet, with page-based pagination. Advertisements are not returned. Yandex challenges a portion of requests with a captcha; the service retries and returns 503 if every attempt is challenged, so callers should retry on 503. Results are localized by Yandex to the location the request is made from.", "operationId": "yandex-search", "parameters": [ { @@ -488044,7 +503767,7 @@ }, "/yardbarker/author": { "get": { - "description": "Returns an author's public profile name, image, and story links from a canonical Yardbarker author URL.", + "description": "Returns a Yardbarker author profile from a canonical author `url` of the form `https://www.yardbarker.com/authors//` (required). The response has the name, profile image when provided and linked recent stories. Biography text and pagination are not available.", "operationId": "yardbarker-author", "parameters": [ { @@ -488104,7 +503827,7 @@ }, "/yardbarker/headlines": { "get": { - "description": "Returns recent Yardbarker headlines and short RSS summaries for one section. Call /yardbarker/sections for the complete current slug list.", + "description": "Lists recent Yardbarker headlines with short summaries for one section. `section` is required and takes a typed slug from `yardbarker-sections`, such as `sport_1`, `team_18`, `school_506` or `topic_16979`. Items have title, URL, summary, author, time and image. Unknown slugs return a 400 error.", "operationId": "yardbarker-headlines", "parameters": [ { @@ -488196,7 +503919,7 @@ }, "/yardbarker/sections": { "get": { - "description": "Returns the complete live-verified directory snapshot of Yardbarker sports, teams, schools, and topics. Use each returned slug in /yardbarker/headlines.", + "description": "Lists the 589 Yardbarker sections as a dated snapshot: 88 sports hubs, 278 team pages, 150 school pages and 73 topics. Each has a typed `slug` (such as `sport_1` or `team_18`), a display `name` and a hub `url`. Use the slug as `section` in `yardbarker-headlines`. Takes no parameters.", "operationId": "yardbarker-sections", "produces": [ "application/json" @@ -488231,7 +503954,7 @@ "consumes": [ "application/json" ], - "description": "Looks up a single Yelp business by alias or encoded id via Yelp's real Android app backend. Credential-free: no login, no API key, no cookie required from the caller.", + "description": "Looks up a single Yelp business by alias or encoded id.", "operationId": "yelp-business", "parameters": [ { @@ -488294,7 +504017,7 @@ "consumes": [ "application/json" ], - "description": "Fetches menu items for a Yelp business via Yelp's real Android app backend. Credential-free: no login, no API key, no cookie required from the caller.", + "description": "Fetches menu items for a Yelp business.", "operationId": "yelp-business-menu", "parameters": [ { @@ -488357,7 +504080,7 @@ "consumes": [ "application/json" ], - "description": "Fetches the photo gallery for a Yelp business via Yelp's real Android app backend. Credential-free: no login, no API key, no cookie required from the caller.", + "description": "Fetches the photo gallery for a Yelp business.", "operationId": "yelp-business-photos", "parameters": [ { @@ -488434,7 +504157,7 @@ "consumes": [ "application/json" ], - "description": "Fetches reviews for a Yelp business via Yelp's real Android app backend. Credential-free: no login, no API key, no cookie required from the caller.", + "description": "Fetches reviews for a Yelp business.", "operationId": "yelp-business-reviews", "parameters": [ { @@ -488511,7 +504234,7 @@ "consumes": [ "application/json" ], - "description": "Fetches thematic review snippets (extracted talking points with a supporting quote) for a Yelp business via Yelp's real Android app backend. Credential-free: no login, no API key, no cookie required from the caller.", + "description": "Fetches thematic review snippets (extracted talking points with a supporting quote) for a Yelp business.", "operationId": "yelp-business-review-highlights", "parameters": [ { @@ -488574,7 +504297,7 @@ "consumes": [ "application/json" ], - "description": "Searches a Yelp business's reviews for a keyword via Yelp's real Android app backend, returning a highlighted excerpt per match. Credential-free: no login, no API key, no cookie required from the caller.", + "description": "Searches a Yelp business's reviews for a keyword, returning a highlighted excerpt per match.", "operationId": "yelp-business-reviews-search", "parameters": [ { @@ -488645,7 +504368,7 @@ "consumes": [ "application/json" ], - "description": "Resolves a free-form address into structured location data (coordinates, city, state, zip, county) via Yelp's real Android app backend. Credential-free: no login, no API key, no cookie required from the caller. Not business-scoped.", + "description": "Resolves a free-form address into structured location data (coordinates, city, state, zip, county). Not business-scoped.", "operationId": "yelp-geocode", "parameters": [ { @@ -488708,7 +504431,7 @@ "consumes": [ "application/json" ], - "description": "Searches Yelp's real Android app business-search backend for a term and location. Credential-free: no login, no API key, no cookie required from the caller.", + "description": "Searches Yelp businesses for a term and location.", "operationId": "yelp-search", "parameters": [ { @@ -488787,7 +504510,7 @@ "consumes": [ "application/json" ], - "description": "Returns department-scoped category slugs discovered from YOOX navigation. Every returned slug is valid for yoox-search.", + "description": "Lists YOOX categories grouped by department (`women`, `men` and `kids`), each with its name, slug and URL. Every category slug is valid as `category` in YOOX search. Calls can take up to about 80 seconds, and a call that cannot finish, or one made while YOOX shows its maintenance page, returns `503`.", "operationId": "yoox-categories", "produces": [ "application/json" @@ -488822,7 +504545,7 @@ "consumes": [ "application/json" ], - "description": "Returns the department-scoped designer slugs discovered from YOOX navigation. Every returned slug is valid for yoox-search.", + "description": "Lists YOOX designers for the required `department` (`women`, `men` or `kids`), with the `count` and each designer's name, slug and URL. Every designer slug is valid as `designer` in YOOX search. A call that cannot finish within about 80 seconds returns `503`, as does one made during YOOX maintenance.", "operationId": "yoox-designers", "parameters": [ { @@ -488878,7 +504601,7 @@ "consumes": [ "application/json" ], - "description": "Returns the public product detail identified by a YOOX item id. The legacy product URL form remains accepted.", + "description": "Returns a YOOX product by item `id`, the path segment before `/item` in a product URL, for example `17734181OO`. The older `url` parameter still works instead. The response has name, brand, price, currency, `in_stock`, description, images and category. Calls can take up to about 80 seconds and return `503` if they cannot finish.", "operationId": "yoox-product", "parameters": [ { @@ -488939,7 +504662,7 @@ "consumes": [ "application/json" ], - "description": "Searches or browses YOOX's public catalog with department, category, designer, color, size, price, sale, sort, and page filters.", + "description": "Searches or browses YOOX products in the required `department`. Optional filters are `q`, `category`, `designer`, `color`, `size`, `price_min`, `price_max` and `on_sale`; `sort` takes `relevance`, `newest`, `price_asc`, `price_desc` or `discount`; `limit` is 1 to 100. Each product has brand, name, price, currency, stock status, image and URL, with `facets` for colors, sizes and sorts. May return `503`.", "operationId": "yoox-search", "parameters": [ { @@ -489073,7 +504796,7 @@ "consumes": [ "application/json" ], - "description": "Returns the caption cues for a specific YouTube video.", + "description": "Returns the caption cues for a YouTube video by its 11-character video id, in the language given by `lang` (ISO 639-1, default `en`). Each cue has its text, start time and duration. Works for both auto-generated and human-written captions.", "operationId": "youtube-captions", "parameters": [ { @@ -489137,7 +504860,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized playlist items from a channel's Playlists tab and an optional continuation token.", + "description": "Lists the playlists on a YouTube channel's Playlists tab. `id` accepts a channel id, `@handle`, `/c` or `/user` path, or a full channel URL. Each item has its playlist id, title, video count, thumbnail and URL. Pass the returned `continuation_token` back as `continuation_token` to get the next page.", "operationId": "youtube-channel-playlists", "parameters": [ { @@ -489200,7 +504923,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized video search items scoped to a specific channel, including the resolved top-level `query`.", + "description": "Searches the videos of one YouTube channel for the required `q`. `id` accepts a channel id, `@handle`, `/c` or `/user` path, or a full channel URL. Items carry the video id, title, URL, duration, view count, published text and thumbnail, and the response echoes the resolved `query`. Page with `continuation_token`.", "operationId": "youtube-channel-search", "parameters": [ { @@ -489271,7 +504994,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized short-form video entries from a channel's Shorts tab.", + "description": "Returns the first page of Shorts from a YouTube channel's Shorts tab. `id` accepts a channel id, `@handle`, `/c` or `/user` path, or a full channel URL. Each short has its position, video id, title, URL, thumbnail and view count text.", "operationId": "youtube-channel-shorts", "parameters": [ { @@ -489328,7 +505051,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized video items from a channel's Videos tab and an optional continuation token.", + "description": "Lists the videos on a YouTube channel's Videos tab. `id` accepts a channel id, `@handle`, `/c` or `/user` path, or a full channel URL. Each item has its video id, title, URL, duration, view count, published text, thumbnail, badges and live flag. Pass the returned `continuation_token` to fetch the next page.", "operationId": "youtube-channel-videos", "parameters": [ { @@ -489391,7 +505114,7 @@ "consumes": [ "application/json" ], - "description": "Returns a page of comments for a specific YouTube video.", + "description": "Returns one page of comments for a YouTube video by its 11-character `id`. Each comment has its id, content, author `user_name` and `channel_id`, `likes_count`, `reply_count` and `published_time`. Pass the previous response's `continuation_token` to get the next page; leave it empty for the first.", "operationId": "youtube-comments", "parameters": [ { @@ -489454,7 +505177,7 @@ "consumes": [ "application/json" ], - "description": "Returns playlist metadata, normalized video items, and an optional continuation token for pagination.", + "description": "Returns a YouTube playlist by playlist id or full playlist URL: title, URL, owning channel, video count and thumbnail, plus its videos with position, title, video id, duration, channel and view count. Pass the returned `continuation_token` to page through longer playlists.", "operationId": "youtube-playlist", "parameters": [ { @@ -489517,7 +505240,7 @@ "consumes": [ "application/json" ], - "description": "Returns full profile details for a YouTube channel.", + "description": "Returns the profile of a YouTube channel by `id`, which can be a channel id, `@handle`, `/c` or `/user` path, bare username or full channel URL. The profile has channel id, name and URL, bio, join date, region, profile picture, links, and `stats` with `followers_count`, `videos_count` and `views_count`.", "operationId": "youtube-profile", "parameters": [ { @@ -489983,7 +505706,7 @@ "consumes": [ "application/json" ], - "description": "Returns the transcript languages exposed by YouTube for a specific video.", + "description": "Lists the transcript languages available for a YouTube video by its 11-character video id. Each entry has the language name and code, whether the track is auto-generated, and whether it can be translated. Use it to pick a language before requesting a transcript.", "operationId": "youtube-transcript-languages", "parameters": [ { @@ -490040,7 +505763,7 @@ "consumes": [ "application/json" ], - "description": "Returns title, description, stats, and captions for a YouTube video ID.", + "description": "Returns the metadata of a YouTube video by its 11-character `id`: title, description, channel id and title, publication time, duration in seconds, and view, like and comment counts. Some fields are best-effort.", "operationId": "youtube-video", "parameters": [ { @@ -490094,7 +505817,7 @@ }, "/zalando/categories": { "get": { - "description": "Returns a Zalando country storefront's live top-level category navigation, department by department, scraped directly from that department's own storefront nav tab bar. This is the discovery source for zalando-category's category parameter — category slugs are market-specific (each storefront uses its own local-language slug), so there is no fixed value space to hardcode; this endpoint asks the upstream live instead. market is required (there is no default storefront) and accepts 25 country storefronts — see zalando-markets for the full current list with domains. department optionally restricts the response to one of women, men, or kids; omitting it returns all three. Scope note: only the top-level nav tabs (e.g. Clothing, Shoes, Sports) are returned, not each tab's own hover-revealed mega-menu of sub-categories — that panel is not present in the page's initial HTML and cannot be reached without executing JavaScript, which this endpoint's transport does not do.", + "description": "Returns a Zalando country storefront's live top-level category navigation, department by department. This is the discovery source for zalando-category's category parameter — category slugs are market-specific (each storefront uses its own local-language slug), so there is no fixed value space to hardcode; this endpoint returns the live values instead. market is required (there is no default storefront) and accepts 25 country storefronts — see zalando-markets for the full current list with domains. department optionally restricts the response to one of women, men, or kids; omitting it returns all three. Scope note: only the top-level nav tabs (e.g. Clothing, Shoes, Sports) are returned, not each tab's own hover-revealed mega-menu of sub-categories.", "operationId": "zalando-categories", "parameters": [ { @@ -490186,7 +505909,7 @@ }, "/zalando/category": { "get": { - "description": "Browses a Zalando category or brand listing by URL slug (e.g. shoes, womens-dresses, on-running) and returns the same normalized result cards as zalando-search, plus the category's upstream total_count. Category slugs are market-specific (each storefront uses its own local-language slug, e.g. \"shoes\" on de/gb, \"chaussures\" on fr, \"scarpe\" on it) — use zalando-categories to discover a market's live top-level slugs, or take one from a product's url field. market is required (there is no default storefront) and accepts 25 country storefronts — see zalando-markets for the full current list with domains.", + "description": "Browses a Zalando category or brand listing by URL slug (e.g. shoes, womens-dresses, on-running) and returns the same result cards as zalando-search, plus the category's upstream total_count. Category slugs are market-specific (each storefront uses its own local-language slug, e.g. \"shoes\" on de/gb, \"chaussures\" on fr, \"scarpe\" on it) — use zalando-categories to discover a market's live top-level slugs, or take one from a product's url field. market is required (there is no default storefront) and accepts 25 country storefronts — see zalando-markets for the full current list with domains.", "operationId": "zalando-category", "parameters": [ { @@ -490275,7 +505998,7 @@ }, "/zalando/markets": { "get": { - "description": "Returns the Zalando country storefronts currently supported by the required market parameter on zalando-search, zalando-category, and zalando-product, with each market's domain. Static, credential-free metadata with no upstream request.", + "description": "Returns the Zalando country storefronts currently supported by the required market parameter on zalando-search, zalando-category, and zalando-product, with each market's domain. Static metadata.", "operationId": "zalando-markets", "produces": [ "application/json" @@ -490307,7 +506030,7 @@ }, "/zalando/product": { "get": { - "description": "Returns normalized product details for one Zalando product, including brand, description, images, and per-size price/availability/GTIN. Pass the sku returned by zalando-search or zalando-category; Zalando's own site search resolves the sku to its canonical product page. market is required and must match the storefront the sku was found in (there is no default, and a sku is generally only listed for sale on the market(s) that carry it) — see zalando-markets for the full reference list.", + "description": "Returns product details for one Zalando product, including brand, description, images, and per-size price/availability/GTIN. Pass the sku returned by zalando-search or zalando-category; market is required and must match the storefront the sku was found in (there is no default, and a sku is generally only listed for sale on the market(s) that carry it) — see zalando-markets for the full reference list.", "operationId": "zalando-product", "parameters": [ { @@ -490402,7 +506125,7 @@ }, "/zalando/search": { "get": { - "description": "Searches a Zalando country storefront by keyword and returns normalized result cards with price, brand, and image. Returns the first page of results as rendered by Zalando plus the upstream total_count; deeper pagination is not yet supported. market is required (there is no default storefront) and accepts 25 country storefronts — see zalando-markets for the full current list with domains.", + "description": "Searches a Zalando country storefront by keyword and returns result cards with price, brand, and image. Returns the first page of results plus the upstream total_count; deeper pagination is not yet supported. market is required (there is no default storefront) and accepts 25 country storefronts — see zalando-markets for the full current list with domains.", "operationId": "zalando-search", "parameters": [ { @@ -490793,7 +506516,7 @@ "consumes": [ "application/json" ], - "description": "Searches Zappos's product catalog by keyword, with real page-based pagination. Returns normalized products with brand, pricing, sale status, rating, and review count, plus filterable facets (gender, department, shoe size, and more) each with a live result count and its own drill-down URL. Requesting a page beyond the available results returns a normal, empty result rather than an error.", + "description": "Searches Zappos's product catalog by keyword, with real page-based pagination. Returns products with brand, pricing, sale status, rating, and review count, plus filterable facets (gender, department, shoe size, and more) each with a live result count and its own drill-down URL. Requesting a page beyond the available results returns a normal, empty result rather than an error.", "operationId": "zappos-search", "parameters": [ { @@ -490955,7 +506678,7 @@ "consumes": [ "application/json" ], - "description": "Returns a Zara category's full product listing: normalized products with pricing, images, and availability, sourced from Zara's own category browse data. categoryId is a numeric id from zara-categories. Zara does not paginate this data -- the response always contains the category's complete listing in one call, not one page of it. Each entry represents one purchasable color variant rather than a color-grouped product family, matching how Zara's own category data is structured.", + "description": "Returns a Zara category's full product listing: products with pricing, images, and availability. categoryId is a numeric id from zara-categories. Zara does not paginate this data -- the response always contains the category's complete listing in one call, not one page of it. Each entry represents one purchasable color variant rather than a color-grouped product family.", "operationId": "zara-category-products", "parameters": [ { @@ -491081,7 +506804,7 @@ "consumes": [ "application/json" ], - "description": "Searches Zara product listings by keyword within one department section, with real offset-based pagination. Returns normalized products with pricing, images, availability, and every purchasable color variant, plus the upstream's own search facets. This search is best-effort relevance, not a guaranteed keyword match: for an obscure or nonsense keyword, Zara's own search falls back to a broader recommended result set instead of returning an empty list, and there is no reliable field in the response to distinguish a true keyword match from that fallback behavior. Requesting an offset beyond the available results returns a normal, empty result with is_last_page true rather than an error.", + "description": "Searches Zara product listings by keyword within one department section, with real offset-based pagination. Returns products with pricing, images, availability, and every purchasable color variant, plus the search facets. This search is best-effort relevance, not a guaranteed keyword match: for an obscure or nonsense keyword, Zara's own search falls back to a broader recommended result set instead of returning an empty list, and there is no reliable field in the response to distinguish a true keyword match from that fallback behavior. Requesting an offset beyond the available results returns a normal, empty result with is_last_page true rather than an error.", "operationId": "zara-search", "parameters": [ { @@ -491488,7 +507211,7 @@ }, "/zdnet/article": { "get": { - "description": "Returns public ZDNet article, review or how-to metadata and body paragraphs from a canonical article URL.", + "description": "Returns one ZDNet article, review or how-to by its canonical `zdnet.com` `url`. The response has the title, description, published and updated times, section labels, authors, lead image and body `paragraphs`. Video, topic and author pages are not supported and return an error instead of an empty article.", "operationId": "zdnet-article", "parameters": [ { @@ -491609,7 +507332,7 @@ }, "/zdnet/headlines": { "get": { - "description": "Returns fresh ZDNet headlines from one public topic or content-type feed.", + "description": "Lists fresh ZDNet headlines for one topic or content type. `section` is required and takes a slug such as `artificial-intelligence`, `security`, `smartphones`, `vpn`, `how-to` or `news`; `zdnet-sections` lists all of them. Video pages are dropped, and an invalid value returns a 400 error.", "operationId": "zdnet-headlines", "parameters": [ { @@ -491756,7 +507479,7 @@ }, "/zdnet/news": { "get": { - "description": "Returns fresh ZDNet top stories from the public news feed.", + "description": "Returns the latest ZDNet top stories with no parameters. Each item has its title, canonical URL, summary, publication time and author name when available. Video pages are not included.", "operationId": "zdnet-news", "produces": [ "application/json" @@ -491794,7 +507517,7 @@ }, "/zdnet/sections": { "get": { - "description": "Returns the public ZDNet topic and content-type taxonomy accepted by the headlines endpoint.", + "description": "Lists the ZDNet topic and content-type sections accepted by `zdnet-headlines`, such as `artificial-intelligence`, `security`, `smartphones`, `vpn`, `how-to` and `deals`. Each has a `slug`, a display `name` and a feed `url`. Takes no parameters.", "operationId": "zdnet-sections", "produces": [ "application/json" @@ -491835,7 +507558,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Zillow public web autocomplete candidates, including region ids and types. Zillow autocomplete does not currently return map bounds.", + "description": "Returns Zillow autocomplete candidates, including region ids and types. Zillow autocomplete does not currently return map bounds.", "operationId": "zillow-autocomplete", "parameters": [ { @@ -491913,7 +507636,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Zillow public property details using Zillow's public persisted GraphQL property payload, including optional typed sections for address parts, listing attribution, pricing, history, media, facts, schools, and nearby homes when present.", + "description": "Returns Zillow property details, including optional typed sections for address parts, listing attribution, pricing, history, media, facts, schools, and nearby homes when present.", "operationId": "zillow-property", "parameters": [ { @@ -491976,7 +507699,7 @@ "consumes": [ "application/json" ], - "description": "Returns normalized Zillow public listing search results. Callers may pass a region id from autocomplete or a complete map bounding box. When a usable region-only response contains no listings, the API retries with a viewport from Zillow's public search page if that page selects exactly the same region. Upstream blocks and transport failures return errors.", + "description": "Returns Zillow listing search results. Callers may pass a region id from autocomplete or a complete map bounding box. When a usable region-only response contains no listings, the API retries with a viewport from Zillow's search page if that page selects exactly the same region. Upstream blocks and transport failures return errors.", "operationId": "zillow-search", "parameters": [ { @@ -492090,7 +507813,7 @@ "consumes": [ "application/json" ], - "description": "Returns Zomato's own curated directory of major Indian cities -- the discovery source for the city value used by zomato-search, zomato-restaurant, zomato-restaurant-menu, zomato-collections, and zomato-collection. This is Zomato's own \"popular locations\" directory, not an exhaustive list of every city Zomato serves -- some smaller markets resolve to a real Zomato city page without appearing here. A city slug from a caller's own prior knowledge (a restaurant URL's first path segment) can still be valid even if this endpoint does not return it. Credential-free.", + "description": "Returns Zomato's own curated directory of major Indian cities -- the discovery source for the city value used by zomato-search, zomato-restaurant, zomato-restaurant-menu, zomato-collections, and zomato-collection. This is Zomato's own \"popular locations\" directory, not an exhaustive list of every city Zomato serves -- some smaller markets resolve to a real Zomato city page without appearing here. A city slug from a caller's own prior knowledge (a restaurant URL's first path segment) can still be valid even if this endpoint does not return it.", "operationId": "zomato-cities", "parameters": [ { diff --git a/pyproject.toml b/pyproject.toml index a58931b..26ef67e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "crawlora" -version = "1.47.1.dev1" +version = "1.48.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 36c7af9..f03e91c 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -268,7 +268,7 @@ def transport(_request, _timeout): def test_operation_metadata_count(self) -> None: self.assertEqual(len(OPERATIONS), OPERATION_COUNT) - self.assertEqual(OPERATION_COUNT, 3695) + self.assertEqual(OPERATION_COUNT, 3737) def test_deprecated_endpoints_are_not_generated(self) -> None: self.assertFalse(hasattr(CrawloraClient(api_key="api_test", base_url=self.base_url).google, "lens")) @@ -301,7 +301,7 @@ def test_docs_cover_operations_and_recipes(self): recipes_doc = root.joinpath("docs", "recipes.md").read_text() for expected in [ - "Total operations: `3695`", + "Total operations: `3737`", "`bing-search`", "`GET /bing/search`", "`bing.search`",