{"openapi":"3.1.0","info":{"title":"OmniTravel travelMCP directory API","version":"1.0.0","summary":"Read-only directory of MCP servers, agent skills and APIs for travel technology.","description":"Search and read the OmniTravel travelMCP directory. No authentication. CORS is open, responses cache for five minutes, and requests are limited to 120 per minute per IP. The same catalogue is available as MCP tools at https://omnitravel.ai/mcp.","contact":{"name":"OmniTravel","url":"https://omnitravel.ai"},"license":{"name":"Data provided as-is","url":"https://omnitravel.ai/faq"}},"servers":[{"url":"https://omnitravel.ai/tm-api/v1","description":"Production"}],"externalDocs":{"description":"FAQ and usage guidance","url":"https://omnitravel.ai/faq"},"tags":[{"name":"listings","description":"Tools catalogued in the directory."},{"name":"categories","description":"How the directory is organised."}],"paths":{"/":{"get":{"operationId":"getApiIndex","summary":"Self-describing index of the API.","responses":{"200":{"description":"API metadata and endpoint list.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/listings":{"get":{"operationId":"searchListings","tags":["listings"],"summary":"List or search listings.","description":"Typo-tolerant full-text search across names, taglines and descriptions.","parameters":[{"name":"q","in":"query","description":"Search phrase, for example \"hotel id mapping\".","schema":{"type":"string","maxLength":100}},{"name":"category","in":"query","description":"Category slug, for example \"room-type-mapping\".","schema":{"type":"string"}},{"name":"type","in":"query","description":"Restrict to one kind of listing.","schema":{"type":"string","enum":["mcp_server","agent_skill","client","api"]}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Matching listings.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"query":{"type":"object"},"listings":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","example":"room-matching-api"},"name":{"type":"string"},"type":{"type":"string","enum":["mcp_server","agent_skill","client","api"]},"type_label":{"type":"string"},"author":{"type":["string","null"]},"tagline":{"type":"string"},"category":{"type":["string","null"]},"category_name":{"type":["string","null"]},"official":{"type":"boolean"},"featured":{"type":"boolean"},"views":{"type":"integer"},"pricing":{"type":"object","description":"Commercial terms. amount is null for free, contact-us and unpriced listings.","properties":{"model":{"type":"string","enum":["free","paid","freemium","contact"]},"amount":{"type":["number","null"],"description":"Price in major units, for example 49.9"},"currency":{"type":"string","example":"EUR"},"period":{"type":"string","enum":["one_time","month","year","usage"]},"note":{"type":["string","null"]},"purchase_url":{"type":["string","null"],"format":"uri"}}},"url":{"type":"string","format":"uri"},"website_url":{"type":["string","null"],"format":"uri"},"repo_url":{"type":["string","null"],"format":"uri"},"updated_at":{"type":"string","format":"date-time"}},"required":["slug","name","type","tagline","url"]}}}}}}},"429":{"description":"Rate limited.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Machine-readable code.","example":"not_found"},"message":{"type":"string","description":"Human-readable explanation."},"hint":{"type":"string","description":"How to recover."}},"required":["error","message"]}}}}}}},"/listings/{slug}":{"get":{"operationId":"getListing","tags":["listings"],"summary":"One listing in full, including setup documentation.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"room-matching-api"}],"responses":{"200":{"description":"The listing.","content":{"application/json":{"schema":{"type":"object","properties":{"listing":{"type":"object","properties":{"slug":{"type":"string","example":"room-matching-api"},"name":{"type":"string"},"type":{"type":"string","enum":["mcp_server","agent_skill","client","api"]},"type_label":{"type":"string"},"author":{"type":["string","null"]},"tagline":{"type":"string"},"category":{"type":["string","null"]},"category_name":{"type":["string","null"]},"official":{"type":"boolean"},"featured":{"type":"boolean"},"views":{"type":"integer"},"pricing":{"type":"object","description":"Commercial terms. amount is null for free, contact-us and unpriced listings.","properties":{"model":{"type":"string","enum":["free","paid","freemium","contact"]},"amount":{"type":["number","null"],"description":"Price in major units, for example 49.9"},"currency":{"type":"string","example":"EUR"},"period":{"type":"string","enum":["one_time","month","year","usage"]},"note":{"type":["string","null"]},"purchase_url":{"type":["string","null"],"format":"uri"}}},"url":{"type":"string","format":"uri"},"website_url":{"type":["string","null"],"format":"uri"},"repo_url":{"type":["string","null"],"format":"uri"},"updated_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"install_snippet":{"type":["string","null"]},"documentation":{"type":["string","null"],"description":"Markdown subset."}},"required":["slug","name","type","tagline","url"]}}}}}},"404":{"description":"No listing with that slug.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Machine-readable code.","example":"not_found"},"message":{"type":"string","description":"Human-readable explanation."},"hint":{"type":"string","description":"How to recover."}},"required":["error","message"]}}}}}}},"/categories":{"get":{"operationId":"listCategories","tags":["categories"],"summary":"Every category with its listing count.","responses":{"200":{"description":"Categories.","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"categories":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"pinned":{"type":"boolean"},"listing_count":{"type":"integer"},"url":{"type":"string","format":"uri"}}}}}}}}}}}}},"components":{"schemas":{"Listing":{"type":"object","properties":{"slug":{"type":"string","example":"room-matching-api"},"name":{"type":"string"},"type":{"type":"string","enum":["mcp_server","agent_skill","client","api"]},"type_label":{"type":"string"},"author":{"type":["string","null"]},"tagline":{"type":"string"},"category":{"type":["string","null"]},"category_name":{"type":["string","null"]},"official":{"type":"boolean"},"featured":{"type":"boolean"},"views":{"type":"integer"},"pricing":{"type":"object","description":"Commercial terms. amount is null for free, contact-us and unpriced listings.","properties":{"model":{"type":"string","enum":["free","paid","freemium","contact"]},"amount":{"type":["number","null"],"description":"Price in major units, for example 49.9"},"currency":{"type":"string","example":"EUR"},"period":{"type":"string","enum":["one_time","month","year","usage"]},"note":{"type":["string","null"]},"purchase_url":{"type":["string","null"],"format":"uri"}}},"url":{"type":"string","format":"uri"},"website_url":{"type":["string","null"],"format":"uri"},"repo_url":{"type":["string","null"],"format":"uri"},"updated_at":{"type":"string","format":"date-time"}},"required":["slug","name","type","tagline","url"]},"ListingFull":{"type":"object","properties":{"slug":{"type":"string","example":"room-matching-api"},"name":{"type":"string"},"type":{"type":"string","enum":["mcp_server","agent_skill","client","api"]},"type_label":{"type":"string"},"author":{"type":["string","null"]},"tagline":{"type":"string"},"category":{"type":["string","null"]},"category_name":{"type":["string","null"]},"official":{"type":"boolean"},"featured":{"type":"boolean"},"views":{"type":"integer"},"pricing":{"type":"object","description":"Commercial terms. amount is null for free, contact-us and unpriced listings.","properties":{"model":{"type":"string","enum":["free","paid","freemium","contact"]},"amount":{"type":["number","null"],"description":"Price in major units, for example 49.9"},"currency":{"type":"string","example":"EUR"},"period":{"type":"string","enum":["one_time","month","year","usage"]},"note":{"type":["string","null"]},"purchase_url":{"type":["string","null"],"format":"uri"}}},"url":{"type":"string","format":"uri"},"website_url":{"type":["string","null"],"format":"uri"},"repo_url":{"type":["string","null"],"format":"uri"},"updated_at":{"type":"string","format":"date-time"},"description":{"type":["string","null"]},"install_snippet":{"type":["string","null"]},"documentation":{"type":["string","null"],"description":"Markdown subset."}},"required":["slug","name","type","tagline","url"]},"Error":{"type":"object","properties":{"error":{"type":"string","description":"Machine-readable code.","example":"not_found"},"message":{"type":"string","description":"Human-readable explanation."},"hint":{"type":"string","description":"How to recover."}},"required":["error","message"]}}}}