{"openapi": "3.1.0", "info": {"title": "Most Expensive Watches — ChatGPT Actions", "version": "1.0.0", "description": "Read-only watch inventory, reference market context, historical auction records and indices. Use sources and distinguish dealer asking prices from auction results. Do not send personal information.", "termsOfService": "https://mostexpensivewatches.net/terms"}, "servers": [{"url": "https://mostexpensivewatches.net"}], "security": [], "paths": {"/api/listings/search": {"get": {"operationId": "searchInventory", "summary": "Search dealer watch inventory", "description": "Use for watches for sale, budgets and availability. Sorted by in-stock status then descending asking price. Show detail_url, not buy links. Prices are dealer requests, not auction results.", "parameters": [{"name": "q", "in": "query", "required": false, "description": "Watch model, nickname or reference to match; do not include personal information.", "example": "Daytona 6263", "schema": {"type": "string"}}, {"name": "brand", "in": "query", "required": false, "description": "Exact brand name, rather than a URL slug.", "example": "Rolex", "schema": {"type": "string"}}, {"name": "material", "in": "query", "required": false, "description": "Case material filter.", "example": "Stainless Steel", "schema": {"type": "string"}}, {"name": "complication", "in": "query", "required": false, "description": "Complication substring filter.", "example": "Chronograph", "schema": {"type": "string"}}, {"name": "min_price", "in": "query", "required": false, "description": "Minimum USD asking price.", "example": 10000, "schema": {"type": "number", "minimum": 0}}, {"name": "max_price", "in": "query", "required": false, "description": "Maximum USD asking price.", "example": 50000, "schema": {"type": "number", "minimum": 0}}, {"name": "limit", "in": "query", "required": false, "description": "Maximum number of returned rows; use small pages for concise answers.", "example": 5, "schema": {"type": "integer", "minimum": 1, "maximum": 50}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": "integer"}, "limit": {"type": "integer"}, "items": {"type": "array", "items": {"$ref": "#/components/schemas/Listing"}}}}}}}}, "x-openai-isConsequential": false}}, "/api/references": {"get": {"operationId": "listReferences", "summary": "Find canonical watch references", "description": "Use to discover reference slugs and models before fetching a reference or a review.", "parameters": [{"name": "brand", "in": "query", "required": false, "description": "Exact brand name, rather than a URL slug.", "example": "Rolex", "schema": {"type": "string"}}, {"name": "limit", "in": "query", "required": false, "description": "Maximum number of returned rows; use small pages for concise answers.", "example": 5, "schema": {"type": "integer", "minimum": 1, "maximum": 250}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": "integer"}, "references": {"type": "array", "items": {"$ref": "#/components/schemas/Reference"}}}}}}}}, "x-openai-isConsequential": false}}, "/api/references/resolve": {"get": {"operationId": "resolveReference", "summary": "Resolve a watch name or reference", "description": "Use first for nicknames, model names or reference codes. Inspect matches and ask the user when the match is ambiguous.", "parameters": [{"name": "q", "in": "query", "required": true, "description": "Watch model, nickname or reference to match; do not include personal information.", "example": "Daytona 6263", "schema": {"type": "string"}}, {"name": "brand", "in": "query", "required": false, "description": "Exact brand name, rather than a URL slug.", "example": "Rolex", "schema": {"type": "string"}}, {"name": "limit", "in": "query", "required": false, "description": "Maximum number of returned rows; use small pages for concise answers.", "example": 5, "schema": {"type": "integer", "minimum": 1, "maximum": 25}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"query": {"type": "string"}, "total": {"type": "integer"}, "matches": {"type": "array", "items": {"$ref": "#/components/schemas/Reference"}}}}}}}, "400": {"description": "Missing query q"}}, "x-openai-isConsequential": false}}, "/api/references/{slug}": {"get": {"operationId": "getReferenceMarket", "summary": "Get a reference and its market evidence", "description": "Use after resolving a reference for a cautious market estimate: listing_stats is the median and range of indexed asking prices in USD, not completed transactions. Compare separately with the returned auction_lots. A zero count means no inventory evidence.", "parameters": [{"name": "slug", "in": "path", "required": true, "description": "Canonical reference slug returned by resolveReference or listReferences.", "example": "patek-philippe-nautilus-5711-1a", "schema": {"type": "string"}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"reference": {"$ref": "#/components/schemas/Reference"}, "listing_stats": {"type": "object", "properties": {"count": {"type": "integer"}, "median": {"type": "number"}, "low": {"type": "number"}, "high": {"type": "number"}}, "description": "USD asking-price statistics for matching indexed dealer listings, including unavailable listings. A count of zero means no asking-price evidence; zero values then are not a valuation."}, "listings": {"type": "array", "items": {"$ref": "#/components/schemas/Listing"}}, "auction_lots": {"type": "array", "items": {"$ref": "#/components/schemas/AuctionLot"}}}}}}}, "404": {"description": "Unknown reference"}}, "x-openai-isConsequential": false}}, "/api/brands": {"get": {"operationId": "listBrands", "summary": "List covered watch brands", "description": "Use to find a canonical brand slug and current indexed asking-price statistics.", "parameters": [], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": "integer"}, "brands": {"type": "array", "items": {"$ref": "#/components/schemas/Brand"}}}}}}}}, "x-openai-isConsequential": false}}, "/api/brands/{slug}": {"get": {"operationId": "getBrandDossier", "summary": "Get a watch brand dossier", "description": "Use for brand background, indexed inventory, reference discovery and historical auction context. Keep asking prices separate from auction results.", "parameters": [{"name": "slug", "in": "path", "required": true, "description": "Brand slug returned by listBrands.", "example": "rolex", "schema": {"type": "string"}}, {"name": "limit", "in": "query", "required": false, "description": "Maximum number of returned rows; use small pages for concise answers.", "example": 5, "schema": {"type": "integer", "minimum": 1, "maximum": 50}}, {"name": "lang", "in": "query", "required": false, "description": "Language code for localized editorial context.", "example": "en", "schema": {"type": "string"}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"brand": {"$ref": "#/components/schemas/Brand"}, "inventory": {"type": "object", "properties": {"count": {"type": "integer"}, "median": {"type": "number"}, "low": {"type": "number"}, "high": {"type": "number"}}, "description": "USD asking-price statistics for matching indexed dealer listings, including unavailable listings. A count of zero means no asking-price evidence; zero values then are not a valuation."}, "listings": {"type": "array", "items": {"$ref": "#/components/schemas/Listing"}}, "references": {"type": "array", "items": {"$ref": "#/components/schemas/Reference"}}, "auction_lots": {"type": "array", "items": {"$ref": "#/components/schemas/AuctionLot"}}}}}}}, "404": {"description": "Unknown brand"}}, "x-openai-isConsequential": false}}, "/api/auctions": {"get": {"operationId": "listAuctionResults", "summary": "List historical auction results", "description": "Use for descending price rankings of recorded lots, optionally within one brand. Coverage is the MEW corpus; cite each source and retain uncertainty and currency notes.", "parameters": [{"name": "brand", "in": "query", "required": false, "description": "Exact brand name, rather than a URL slug.", "example": "Rolex", "schema": {"type": "string"}}, {"name": "limit", "in": "query", "required": false, "description": "Maximum number of returned rows; use small pages for concise answers.", "example": 5, "schema": {"type": "integer", "minimum": 1, "maximum": 250}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": "integer"}, "auction_lots": {"type": "array", "items": {"$ref": "#/components/schemas/AuctionLot"}}}}}}}}, "x-openai-isConsequential": false}}, "/api/auctions/{slug}": {"get": {"operationId": "getAuctionResult", "summary": "Get one auction result and source", "description": "Use a slug returned by listAuctionResults to inspect a result, its source and qualifications before citing a record.", "parameters": [{"name": "slug", "in": "path", "required": true, "description": "Auction-lot slug returned by listAuctionResults.", "example": "patek-grandmaster-chime-6300a-only-watch", "schema": {"type": "string"}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"auction_lot": {"$ref": "#/components/schemas/AuctionLot"}}}}}}, "404": {"description": "Unknown auction lot"}, "410": {"description": "Withdrawn auction result"}}, "x-openai-isConsequential": false}}, "/api/auctions/upcoming": {"get": {"operationId": "listUpcomingAuctions", "summary": "List upcoming watch auctions", "description": "Use for upcoming sale dates, cities and house links. The calendar is curated; reconfirm schedules at the returned house URL.", "parameters": [{"name": "limit", "in": "query", "required": false, "description": "Maximum number of returned rows; use small pages for concise answers.", "example": 5, "schema": {"type": "integer", "minimum": 1, "maximum": 100}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": "integer"}, "calendar_url": {"type": "string"}, "upcoming": {"type": "array", "items": {"type": "object", "properties": {"house": {"type": "string"}, "name": {"type": "string"}, "date": {"type": "string"}, "city": {"type": "string"}, "country": {"type": "string"}, "url": {"type": "string"}, "summary": {"type": ["string", "null"]}}}}}}}}}}, "x-openai-isConsequential": false}}, "/api/auctions-dataset.json": {"get": {"operationId": "getAuctionRankings", "summary": "Get auction records and brand rankings", "description": "Use for the top recorded auction prices and the highest recorded result per brand. This is a limited corpus, not a complete global sales history. Cite source_url for every record and explain source notes.", "parameters": [], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"headline": {"type": ["string", "null"]}, "recordCount": {"type": "integer"}, "stats": {"type": "object", "properties": {}}, "top_records": {"type": "array", "items": {"$ref": "#/components/schemas/AuctionLot"}}, "record_by_brand": {"type": "array", "items": {"$ref": "#/components/schemas/AuctionLot"}}}}}}}}, "x-openai-isConsequential": false}}, "/data/watch-price-index.json": {"get": {"operationId": "getPriceIndex", "summary": "Get the repeat-listing price index", "description": "Use for trends in asking prices of matched repeat listings. Inspect index.status, dates, sample and caveats; this is not an index of completed sales. Cite the returned dataset URL.", "parameters": [], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string"}, "url": {"type": "string"}, "headline": {"type": ["string", "null"]}, "compiled_at": {"type": ["string", "null"]}, "index": {"type": "object", "properties": {"status": {"type": "string"}, "baseline_date": {"type": "string"}, "as_of_date": {"type": "string"}, "matched_sample": {"type": "integer"}, "change_since_baseline_pct": {"type": ["number", "null"]}}}}}}}}}, "x-openai-isConsequential": false}}, "/data/grail-index.json": {"get": {"operationId": "getGrailIndex", "summary": "Get the million-dollar auction segment index", "description": "Use for the historical seven-figure auction segment. Inspect status, coverage and sample; do not treat this as a forecast.", "parameters": [], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string"}, "url": {"type": "string"}, "headline": {"type": ["string", "null"]}, "compiled_at": {"type": ["string", "null"]}, "index": {"type": "object", "properties": {"status": {"type": "string"}, "total_lots": {"type": "integer"}, "total_value_usd": {"type": "number"}}}}}}}}}, "x-openai-isConsequential": false}}, "/api/alternatives/search": {"get": {"operationId": "searchAlternatives", "summary": "Find comparable watch references", "description": "Use a model, nickname or reference query to find alternatives with comparison rationale and asking-price context. If the resolved reference is ambiguous, resolveReference first.", "parameters": [{"name": "q", "in": "query", "required": true, "description": "Watch model, nickname or reference to match; do not include personal information.", "example": "Daytona 6263", "schema": {"type": "string"}}, {"name": "brand", "in": "query", "required": false, "description": "Exact brand name, rather than a URL slug.", "example": "Rolex", "schema": {"type": "string"}}, {"name": "lang", "in": "query", "required": false, "description": "Language code for localized editorial context.", "example": "en", "schema": {"type": "string"}}, {"name": "limit", "in": "query", "required": false, "description": "Maximum number of returned rows; use small pages for concise answers.", "example": 5, "schema": {"type": "integer", "minimum": 1, "maximum": 25}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"reference": {"$ref": "#/components/schemas/Reference"}, "listing_stats": {"type": "object", "properties": {"count": {"type": "integer"}, "median": {"type": "number"}, "low": {"type": "number"}, "high": {"type": "number"}}, "description": "USD asking-price statistics for matching indexed dealer listings, including unavailable listings. A count of zero means no asking-price evidence; zero values then are not a valuation."}, "alternatives": {"type": "array", "items": {"$ref": "#/components/schemas/Alternative"}}, "query": {"type": "string"}}}}}}, "400": {"description": "Missing query q"}}, "x-openai-isConsequential": false}}, "/api/alternatives/{slug}": {"get": {"operationId": "getReferenceAlternatives", "summary": "Compare alternatives to a known reference", "description": "Use a canonical reference slug for comparable models, reasons to compare, inventory statistics and auction-comp counts.", "parameters": [{"name": "slug", "in": "path", "required": true, "description": "Canonical reference slug returned by resolveReference or listReferences.", "example": "patek-philippe-nautilus-5711-1a", "schema": {"type": "string"}}, {"name": "lang", "in": "query", "required": false, "description": "Language code for localized editorial context.", "example": "en", "schema": {"type": "string"}}, {"name": "limit", "in": "query", "required": false, "description": "Maximum number of returned rows; use small pages for concise answers.", "example": 5, "schema": {"type": "integer", "minimum": 1, "maximum": 25}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"reference": {"$ref": "#/components/schemas/Reference"}, "listing_stats": {"type": "object", "properties": {"count": {"type": "integer"}, "median": {"type": "number"}, "low": {"type": "number"}, "high": {"type": "number"}}, "description": "USD asking-price statistics for matching indexed dealer listings, including unavailable listings. A count of zero means no asking-price evidence; zero values then are not a valuation."}, "alternatives": {"type": "array", "items": {"$ref": "#/components/schemas/Alternative"}}, "query": {"type": "string"}}}}}}, "404": {"description": "Unknown reference"}}, "x-openai-isConsequential": false}}, "/api/reviews/search": {"get": {"operationId": "searchCollectorReviews", "summary": "Search collector reviews", "description": "Use for model characteristics, collector context and buying checklists. Editorial context does not establish transaction prices.", "parameters": [{"name": "q", "in": "query", "required": false, "description": "Watch model, nickname or reference to match; do not include personal information.", "example": "Daytona 6263", "schema": {"type": "string"}}, {"name": "brand", "in": "query", "required": false, "description": "Exact brand name, rather than a URL slug.", "example": "Rolex", "schema": {"type": "string"}}, {"name": "lang", "in": "query", "required": false, "description": "Language code for localized editorial context.", "example": "en", "schema": {"type": "string"}}, {"name": "limit", "in": "query", "required": false, "description": "Maximum number of returned rows; use small pages for concise answers.", "example": 5, "schema": {"type": "integer", "minimum": 1, "maximum": 100}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"query": {"type": "string"}, "total_matches": {"type": "integer"}, "reviews": {"type": "array", "items": {"$ref": "#/components/schemas/Review"}}}}}}}}, "x-openai-isConsequential": false}}, "/api/reviews/{slug}": {"get": {"operationId": "getCollectorReview", "summary": "Get a collector review by reference", "description": "Use a canonical reference slug for editorial buying context; consult getReferenceMarket for the underlying asking-price evidence.", "parameters": [{"name": "slug", "in": "path", "required": true, "description": "Canonical reference slug returned by resolveReference or listReferences.", "example": "patek-philippe-nautilus-5711-1a", "schema": {"type": "string"}}, {"name": "lang", "in": "query", "required": false, "description": "Language code for localized editorial context.", "example": "en", "schema": {"type": "string"}}], "security": [], "responses": {"200": {"description": "Public data response; empty results and unavailable evidence are possible.", "content": {"application/json": {"schema": {"type": "object", "properties": {"review": {"$ref": "#/components/schemas/Review"}}}}}}, "404": {"description": "Unknown reference"}}, "x-openai-isConsequential": false}}}, "components": {"schemas": {"Listing": {"type": "object", "properties": {"id": {"type": "string"}, "title": {"type": "string"}, "brand": {"type": "string"}, "model": {"type": "string"}, "reference": {"type": "string"}, "price_usd": {"type": "number"}, "currency": {"type": "string"}, "available": {"type": "boolean"}, "detail_url": {"type": "string", "format": "uri", "description": "MEW /listing/<id> page. Use this link for the user."}}, "description": "Indexed dealer asking price, not an achieved sale price. Confirm current availability with the dealer."}, "Reference": {"type": "object", "properties": {"slug": {"type": "string"}, "brand": {"type": "string"}, "model": {"type": "string"}, "ref": {"type": "string"}, "case_material": {"type": "string"}, "url": {"type": "string", "format": "uri"}}}, "AuctionLot": {"type": "object", "properties": {"slug": {"type": "string"}, "brand": {"type": "string"}, "model": {"type": "string"}, "reference": {"type": ["string", "null"]}, "hammer_usd": {"type": ["number", "null"]}, "year_sold": {"type": "integer"}, "venue": {"type": "string"}, "result_currency": {"type": ["string", "null"]}, "result_amount": {"type": ["number", "null"]}, "source_url": {"type": ["string", "null"]}, "verification": {"type": ["string", "null"]}, "verification_note": {"type": ["string", "null"]}, "usd_precision": {"type": ["string", "null"]}, "url": {"type": "string", "format": "uri"}}, "description": "Historical recorded auction result. Cite source_url and retain source notes, original currency and USD precision; do not infer a premium basis absent from the record."}, "ListingStats": {"type": "object", "properties": {"count": {"type": "integer"}, "median": {"type": "number"}, "low": {"type": "number"}, "high": {"type": "number"}}, "description": "USD asking-price statistics for matching indexed dealer listings, including unavailable listings. A count of zero means no asking-price evidence; zero values then are not a valuation."}, "Brand": {"type": "object", "properties": {"name": {"type": "string"}, "slug": {"type": "string"}, "country": {"type": ["string", "null"]}, "url": {"type": "string"}, "inventory": {"type": "object", "properties": {"count": {"type": "integer"}, "median": {"type": "number"}, "low": {"type": "number"}, "high": {"type": "number"}}, "description": "USD asking-price statistics for matching indexed dealer listings, including unavailable listings. A count of zero means no asking-price evidence; zero values then are not a valuation."}}}, "Review": {"type": "object", "properties": {"slug": {"type": "string"}, "title": {"type": "string"}, "brand": {"type": "string"}, "model": {"type": "string"}, "reference": {"type": "string"}, "url": {"type": "string"}, "verdict": {"type": "string"}, "listing_stats": {"type": "object", "properties": {"count": {"type": "integer"}, "median": {"type": "number"}, "low": {"type": "number"}, "high": {"type": "number"}}, "description": "USD asking-price statistics for matching indexed dealer listings, including unavailable listings. A count of zero means no asking-price evidence; zero values then are not a valuation."}}}, "Alternative": {"type": "object", "properties": {"reference": {"$ref": "#/components/schemas/Reference"}, "why_compare": {"type": "string"}, "listing_stats": {"type": "object", "properties": {"count": {"type": "integer"}, "median": {"type": "number"}, "low": {"type": "number"}, "high": {"type": "number"}}, "description": "USD asking-price statistics for matching indexed dealer listings, including unavailable listings. A count of zero means no asking-price evidence; zero values then are not a valuation."}, "auction_comp_count": {"type": "integer"}}}, "Error": {"type": "object", "properties": {"error": {"type": "string"}}}, "Alternatives": {"type": "object", "properties": {"reference": {"$ref": "#/components/schemas/Reference"}, "listing_stats": {"type": "object", "properties": {"count": {"type": "integer"}, "median": {"type": "number"}, "low": {"type": "number"}, "high": {"type": "number"}}, "description": "USD asking-price statistics for matching indexed dealer listings, including unavailable listings. A count of zero means no asking-price evidence; zero values then are not a valuation."}, "alternatives": {"type": "array", "items": {"$ref": "#/components/schemas/Alternative"}}, "query": {"type": "string"}}}}}}